diff --git a/admin/index.html b/admin/index.html new file mode 100644 index 0000000..638dadf --- /dev/null +++ b/admin/index.html @@ -0,0 +1 @@ + diff --git a/backoffice/admin_info.php b/backoffice/admin_info.php new file mode 100644 index 0000000..e3fa7c4 --- /dev/null +++ b/backoffice/admin_info.php @@ -0,0 +1,54 @@ + +
+
+ + +
+
+ + + +
+
\ No newline at end of file diff --git a/backoffice/auth/admin_login.php b/backoffice/auth/admin_login.php new file mode 100644 index 0000000..af6a6b9 --- /dev/null +++ b/backoffice/auth/admin_login.php @@ -0,0 +1,118 @@ + + + + + + +<?=$_SITE["NAME"]?> 관리자 : 로그인 + + + + + +
+ +
+
+
+
+ + + 로그인 +
+ + +
+
+ + +
+ +
+
+
+ ※ 관리자 페이지로 접속합니다.
+ ※ 공공장소에서의 로그인시 정보 유출에 주의하시기 바랍니다. +
+
+ +
+ + +
+ + + diff --git a/backoffice/auth/auth.php b/backoffice/auth/auth.php new file mode 100644 index 0000000..6092c37 --- /dev/null +++ b/backoffice/auth/auth.php @@ -0,0 +1,24 @@ + + "; + exit; +} +// admin 페이지 허용된 아이피만 접근 +$fp = fopen("/home/www/acl.txt", "r"); +$currentIP = fread($fp, 1000); +fclose($fp); + +//공백 제거 +$currentIP = trim($currentIP); + +//CF PROXY IP로 인식하는 문제로 변경함(최준흠) +//$remoteIP=$_SERVER["HTTP_X_FORWARDED_FOR"]; +$remoteIP = $_SERVER["HTTP_CF_CONNECTING_IP"]; + +// 문자열 비교 +if (strcmp($currentIP, $remoteIP)) { + echo ""; + exit; +} diff --git a/backoffice/auth/auth_long.php b/backoffice/auth/auth_long.php new file mode 100644 index 0000000..12b80aa --- /dev/null +++ b/backoffice/auth/auth_long.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/backoffice/auth/images/login_01.gif b/backoffice/auth/images/login_01.gif new file mode 100644 index 0000000..1db7f6f Binary files /dev/null and b/backoffice/auth/images/login_01.gif differ diff --git a/backoffice/auth/images/login_02.gif b/backoffice/auth/images/login_02.gif new file mode 100644 index 0000000..50a5bab Binary files /dev/null and b/backoffice/auth/images/login_02.gif differ diff --git a/backoffice/auth/images/login_03.gif b/backoffice/auth/images/login_03.gif new file mode 100644 index 0000000..83dfa32 Binary files /dev/null and b/backoffice/auth/images/login_03.gif differ diff --git a/backoffice/auth/images/login_04.gif b/backoffice/auth/images/login_04.gif new file mode 100644 index 0000000..5e128fc Binary files /dev/null and b/backoffice/auth/images/login_04.gif differ diff --git a/backoffice/auth/images/login_05.gif b/backoffice/auth/images/login_05.gif new file mode 100644 index 0000000..5d1288d Binary files /dev/null and b/backoffice/auth/images/login_05.gif differ diff --git a/backoffice/auth/images/login_06.gif b/backoffice/auth/images/login_06.gif new file mode 100644 index 0000000..6b4e29c Binary files /dev/null and b/backoffice/auth/images/login_06.gif differ diff --git a/backoffice/auth/images/login_07.gif b/backoffice/auth/images/login_07.gif new file mode 100644 index 0000000..a6c5c1b Binary files /dev/null and b/backoffice/auth/images/login_07.gif differ diff --git a/backoffice/auth/images/login_08.gif b/backoffice/auth/images/login_08.gif new file mode 100644 index 0000000..e5397aa Binary files /dev/null and b/backoffice/auth/images/login_08.gif differ diff --git a/backoffice/auth/images/login_09.gif b/backoffice/auth/images/login_09.gif new file mode 100644 index 0000000..c4e0af4 Binary files /dev/null and b/backoffice/auth/images/login_09.gif differ diff --git a/backoffice/auth/images/login_10.gif b/backoffice/auth/images/login_10.gif new file mode 100644 index 0000000..c84c34d Binary files /dev/null and b/backoffice/auth/images/login_10.gif differ diff --git a/backoffice/auth/images/login_11.gif b/backoffice/auth/images/login_11.gif new file mode 100644 index 0000000..d018eb3 Binary files /dev/null and b/backoffice/auth/images/login_11.gif differ diff --git a/backoffice/auth/images/login_12.gif b/backoffice/auth/images/login_12.gif new file mode 100644 index 0000000..799b4e3 Binary files /dev/null and b/backoffice/auth/images/login_12.gif differ diff --git a/backoffice/auth/images/login_13.gif b/backoffice/auth/images/login_13.gif new file mode 100644 index 0000000..64d1e22 Binary files /dev/null and b/backoffice/auth/images/login_13.gif differ diff --git a/backoffice/auth/images/login_14.gif b/backoffice/auth/images/login_14.gif new file mode 100644 index 0000000..f4298fe Binary files /dev/null and b/backoffice/auth/images/login_14.gif differ diff --git a/backoffice/auth/images/login_15.gif b/backoffice/auth/images/login_15.gif new file mode 100644 index 0000000..e65a936 Binary files /dev/null and b/backoffice/auth/images/login_15.gif differ diff --git a/backoffice/auth/images/login_16.gif b/backoffice/auth/images/login_16.gif new file mode 100644 index 0000000..a0ea0f6 Binary files /dev/null and b/backoffice/auth/images/login_16.gif differ diff --git a/backoffice/auth/images/login_17.gif b/backoffice/auth/images/login_17.gif new file mode 100644 index 0000000..62e05a8 Binary files /dev/null and b/backoffice/auth/images/login_17.gif differ diff --git a/backoffice/auth/images/login_18.gif b/backoffice/auth/images/login_18.gif new file mode 100644 index 0000000..b02b055 Binary files /dev/null and b/backoffice/auth/images/login_18.gif differ diff --git a/backoffice/auth/images/login_19.gif b/backoffice/auth/images/login_19.gif new file mode 100644 index 0000000..c7fdcb0 Binary files /dev/null and b/backoffice/auth/images/login_19.gif differ diff --git a/backoffice/auth/images/login_20.gif b/backoffice/auth/images/login_20.gif new file mode 100644 index 0000000..d6710e3 Binary files /dev/null and b/backoffice/auth/images/login_20.gif differ diff --git a/backoffice/auth/images/login_21.gif b/backoffice/auth/images/login_21.gif new file mode 100644 index 0000000..f67755c Binary files /dev/null and b/backoffice/auth/images/login_21.gif differ diff --git a/backoffice/auth/images/login_22.gif b/backoffice/auth/images/login_22.gif new file mode 100644 index 0000000..87c48fa Binary files /dev/null and b/backoffice/auth/images/login_22.gif differ diff --git a/backoffice/auth/images/login_23.gif b/backoffice/auth/images/login_23.gif new file mode 100644 index 0000000..a8e8d9d Binary files /dev/null and b/backoffice/auth/images/login_23.gif differ diff --git a/backoffice/auth/images/login_24.gif b/backoffice/auth/images/login_24.gif new file mode 100644 index 0000000..4f9fc33 Binary files /dev/null and b/backoffice/auth/images/login_24.gif differ diff --git a/backoffice/auth/images/login_25.gif b/backoffice/auth/images/login_25.gif new file mode 100644 index 0000000..60cae42 Binary files /dev/null and b/backoffice/auth/images/login_25.gif differ diff --git a/backoffice/auth/images/login_26.gif b/backoffice/auth/images/login_26.gif new file mode 100644 index 0000000..cfbd497 Binary files /dev/null and b/backoffice/auth/images/login_26.gif differ diff --git a/backoffice/auth/logout.php b/backoffice/auth/logout.php new file mode 100644 index 0000000..e738385 --- /dev/null +++ b/backoffice/auth/logout.php @@ -0,0 +1,25 @@ + + + + + + + + + + Document + + + + + diff --git a/backoffice/css/basic.css b/backoffice/css/basic.css new file mode 100644 index 0000000..231fefe --- /dev/null +++ b/backoffice/css/basic.css @@ -0,0 +1,48 @@ +@charset "utf-8"; +/* basic.css는 태그의 기본속성을 초기화하고 사이트의 전체적인 기본 스타일을 정의합니다. */ +html {overflow-y:scroll;} +html, body {height:100%;} +body,p,h1,h2,h3,h4,h5,h6,ul,ol,li,dl,dt,dd,form,fieldset,legend,input,textarea,button,select,figure,figcaption{margin:0;padding:0} +body,table,input,textarea,select{font-family:'나눔고딕',NanumGothic,'맑은고딕',Malgun Gothic,'돋움',Dotum,helvetica,sans-serif;font-size:12px;line-height:18px;color:#555;} +img{border:0} +ul,ol{list-style:none} +hr {clear:both;display:none;} +li img, dd img {vertical-align:top;} +*html body img {margin:none; padding:none;} /*for IE 6*/ +fieldset {border:1px solid #ccc; padding:10px;} +legend {font-weight:bold;} +legend:before {content:"[ "} +legend:after {content:" ]"} +table caption {visibility:hidden; overflow:hidden; width:0; height:0; margin:0; padding:0; font:0/0 Arial;} +input[type="radio"], input[type="checkbox"] {vertical-align:middle !important; margin:-2px 3px 0 0 !important;} +a{color:#555;text-decoration:none} +a:hover,a:active{text-decoration:underline} +select {border:1px solid #b7b7b7;} + +/* user class */ +.clfix{*zoom:1;} /*for ie 5.5-7*/ +.clfix:after {content:" "; display:block; clear:both;} + +.clear{clear:both;} +.hide {position:absolute; width:1px; height:1px; left:0; top:0; font-size:0; line-height:0; text-indent:-9999%;} + +.pointer {cursor:pointer;} +html { filter: expression(document.execCommand("BackgroundImageCache", false, true));} + +.input {background:#fff; height:18px; border:1px solid #ccc;} +.textarea {background:#fff; border:1px solid #ccc;} + +.fl {float:left;} +.fr {float:right;} + +.space-center {text-align:center !important;} +.space-right {text-align:right !important;} +.space-left {text-align:left !important;} + +.mgb5 {margin-bottom:5px;} +.mgb10 {margin-bottom:10px;} +.mgb20 {margin-bottom:20px;} +.mgb30{margin-bottom:30px;} + +/* png24 */ +.png24 {tmp:expression(setPng24(this));} /* FOR IMG ONLY */ \ No newline at end of file diff --git a/backoffice/css/layout.css b/backoffice/css/layout.css new file mode 100644 index 0000000..8208137 --- /dev/null +++ b/backoffice/css/layout.css @@ -0,0 +1,380 @@ +@charset "utf-8"; + +/* 로그인 */ +#wrapper {*zoom:1; position:relative; height:auto !important; height:100%; min-height:100%; background:url('../images/login_bg.gif') 0 repeat-x;} /* IE5.5~7 브라우저 대응 Hack */ +#wrapper:after {content:" "; display:block; clear:both;} /* 표준계열 브라우저에 대응하는 float 해제용 가상 엘리먼트의 생성 */ + +#loginArea {position:absolute; width:661px; height:280px; left:50%; top:50%; margin:-170px 0 0 -330px;} +.memberLogin {position:relative; width:661px; height:248px;background:url('../images/login_box.png') 0 0 no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../images/login_box.png",sizingMethod='crop'); margin:0 auto 10px auto;} +.memberLogin .loginField {position:absolute;top:88px;left:274px;border:0 none;padding:0;margin:0;} +.memberLogin .loginField legend {visibility:hidden;width:0;height:0;font-size:0;} +.memberLogin .loginField .id {position:absolute;top:2px;left:0;width:260px;} +.memberLogin .loginField .pw {position:absolute;top:30px;left:0;width:260px;} +.memberLogin .loginField label {display:block;float:left;width:57px;padding:5px 0 0 0;} +.memberLogin .loginField .btnLogin {position:absolute;top:0;left:262px;} +.memberLogin .loginText {position:absolute;top:176px;left:278px; font:11px Dotum; color:#89b7d3; line-height:19px;} +#loginArea .copyright {text-align:center; font:11px Arial; color:#999999; line-height:19px;} +input.loginInput {width:194px; height:19px; background:#f2f2f1; border:1px solid #116294; color:#666; margin:0;} + +/* header */ +#admin-wrapper {position:relative; width:100%; min-width:1250px; height:auto !important; height:100%; min-height:100%; margin:0; background:url('../images/left_bg2.gif') 0 0 repeat-y;} +#admin-header {width:100%; min-width:1250px; height:105px; background:url('../images/header_bg.gif') 0 0 repeat-x; box-shadow:0 3px 3px rgba(0, 0, 0, .3);-webkit-box-shadow:0 3px 3px rgba(0, 0, 0, .3);-moz-box-shadow:0 3px 0 rgba(0, 0, 0, .3);} +#admin-header ul, #admin-header li {list-style:none;} +.admin-top-content {width:100%; height:32px; overflow:hidden;} +.admin-middle-content {width:100%; height:70px; overflow:hidden;} +.top-logo {float:left;} +.top-util {float:right; width:450px; margin:0 20px 0 0;} +.visitor-name {float:left; height:20px; line-height:30px; color:#fff;} +.util-menu {float:right;} +.util-menu li {float:left; display:inline; line-height:0; margin:0 0 0 15px;} +.admin-gnb {float:left; display:inline; padding:0 1px 0 0; background:url('../images/gnb_vline_last.gif') 100% 0 no-repeat;} +.admin-gnb li {float:left; display:inline; font-size:0; line-height:0;} + +/* left */ +.admin-snb {float:left; display:inline; position:relative; left:-200px; width:190px; margin-right:-190px; padding:15px 0 15px 0;} +.admin-snb-group {margin:0 0 10px 0;} +.snb-title {width:190px; height:31px; border-radius:5px; box-shadow:0 2px 0 rgba(255, 255, 255, .15); background:url('../images/left_title_bg2.gif') 0 0 no-repeat; margin:0 0 2px 0;} +.snb-title h2 {font-size:12px; color:#fff; line-height:31px; padding:0 0 0 10px; margin:0;} +.snb-menu {background:#fff; border:1px solid #ababab; border-radius:5px; box-shadow:0 2px 0 rgba(255, 255, 255, .15); padding:0; margin:0;} +.snb-menu li {display:block; list-style:none; font-size:12px; line-height:16px; border-top:1px solid #dedede; background:url('../images/arrow2.gif') 7px 10px no-repeat; padding:0; margin:0;} +.snb-menu li:first-child {border-top:0; box-shadow:0 1px 0 rgba(0, 0, 0, .1) inset;} +.snb-menu li a {display:block; color:#555; padding:5px 5px 6px 16px; text-decoration:none;} +.snb-menu li ul li {border-top:0; background:none;} +.admin-info {margin-top:20px; font-size:11px;} +.info-today {background:#4b545f; padding:6px; font-weight:bold; text-align:center;} +.info-today .today-day {color:#fffbbb; margin:0 2px;} +.info-today .today-time {color:#fff; margin:0 2px;} +.info-account {background:#e4e7eb; line-height:17px; padding:0 10px; color:#888;} +.info-account .account-group-head {padding:10px 5px; color:#666;} +.info-account .account-group {background:url('../images/line_dot.gif') 0 0 repeat-x; padding:10px 15px;} + +/* body */ +#admin-container {position:relative; *display:inline-block; _width /**/:100%; min-height:900px; border-right:1px solid #b4b4b4; margin:0 200px 0 211px;} +#admin-container:after{display:block;clear:both;content:" ";} +#admin-content {position:relative; padding:20px 10px 100px 10px; overflow:hidden;} + +.admin-title {font-size:16px; line-height:22px; letter-spacing:-1px; color:#000; background:url('../images/bullet3.gif') 0 4px no-repeat; border-bottom:1px solid #dedede; padding:0 0 8px 24px; margin:0 0 25px 0;} +.admin-title-middle {font-size:14px; line-height:20px; letter-spacing:-1px; color:#244364; background:url('../images/bullet4.gif') 0 4px no-repeat; padding:0 0 0 16px; margin:0 0 8px 0;} + +.admin-top {*zoom:1; position:relative; min-height:240px;} +.admin-top:after {content:" ";display:block;clear:both;} + +.admin-graph {padding-right:240px;} + +.admin-calendar {position:absolute; top:0; right:0; width:200px;} +.calendar-table {width:200px; height:240px; background:url('../images/calendar_bg.gif') 0 0 no-repeat;} +.calendar-table div.year {padding:10px 0 0; text-align:center;} +.calendar-table div.year button {display:inline-block; width:9px; height:9px; margin:4px 2px 0; text-indent:-9999px; cursor:pointer; vertical-align:top; border:0;} +.calendar-table div.year strong {color:#fff; font-family:Tahoma; font-size:12px;} +.calendar-table div.year button.prev {background:url('../images/calendar_bt_prev2.gif') 50% no-repeat;} +.calendar-table div.year button.next {background:url('../images/calendar_bt_next2.gif') 50% no-repeat;} +.calendar-table div.month {position:relative; text-align:center;} +.calendar-table div.month button {position:absolute; top:8px; width:30px; height:30px; text-indent:-9999px; cursor:pointer; vertical-align:top; border:0;} +.calendar-table div.month strong {color:#fff; font-family:Arial-Regular; font-size:38px; line-height:normal;} +.calendar-table div.month button.prev {left:38px; background:url('../images/calendar_bt_prev.gif') 50% no-repeat;} +.calendar-table div.month button.next {right:38px; background:url('../images/calendar_bt_next.gif') 50% no-repeat;} +.calendar-table table {width:95%; border-collapse:collapse; border-spacing:0; color:#fff; font-family:Tahoma; font-size:11px; text-align:center; margin:0 auto;} +.calendar-table thead th {font-weight:normal; font-size:10px;} +.calendar-table thead th.sun {color:#ffbfbf;} +.calendar-table thead th.sat {color:#83ddff;} +.calendar-table tbody td {height:22px; vertical-align:top;} +.calendar-table tbody td a {width:21px; height:21px; line-height:20px; color:#fff; display:inline-block; text-align:center; font-size:11px; box-sizing:border-box; border:1px solid transparent; text-decoration:none; } +.calendar-table tbody td a.sun {color:#ffbfbf;} +.calendar-table tbody td a.sat {color:#83ddff;} +.calendar-table tbody td.today {background:url('../images/calendar_today.gif') 50% no-repeat;} +.calendar-table tbody td.schedule-on a {text-decoration:underline;} +.calendar-layer {display:none; position:absolute; top:0; left:-390px; width:368px; height:238px; background:#fff; border:1px solid #000; z-index:101;} +.calendar-layer .contents p {height:26px; padding:14px 0 0 19px; background:#ededed;} +.calendar-layer .contents p strong {color:#333; font-size:12px; letter-spacing:-1px;} +.calendar-layer .contents p span {margin-left:12px; color:#3080de;} +.calendar-layer .contents fieldset {border:0;padding:0;margin:0;} +.calendar-layer .contents fieldset legend {font-size:0;line-height:0;position:absolute;left:-999px;text-indent:-999px;} +.calendar-layer .contents table {width:328px; border-collapse:collapse; border-spacing:0; margin:15px auto 0; border-top:1px solid #d8d8d8; border-bottom:1px solid #d8d8d8;} +.calendar-layer .contents th {padding:4px 0 4px 10px; text-align:left; font-size:11px; background:#f4f4f4; border-bottom:1px solid #d8d8d8;} +.calendar-layer .contents td {padding:4px 0 4px 10px;font-size:11px; border-bottom:1px solid #d8d8d8;} +.calendar-layer .close {position:absolute; top:11px; right:14px; width:19px; height:19px; background:url('../images/close.gif') 0 0 no-repeat; text-indent:-999px; border:0; cursor:pointer;} + +.admin-tab {overflow:hidden; background:url('../images/tab_underline.gif') 0 100% repeat-x; margin:0 0 15px 0;} +.admin-tab li {float:left; height:28px; line-height:28px; font-size:11px; font-weight:bold; background-image:url('../images/tab_bg.gif'); margin:0 1px 0 0;} +.admin-tab li a {display:block; height:28px; color:#fff; text-decoration:none; padding:0 20px; background-image:url('../images/tab_bg.gif'); background-position:100% 0;} +.admin-tab li.active {background-position:0 -28px;} +.admin-tab li.active a {color:#5e656d; background-position:100% -28px;} + +.admin-table-type1 {width:100%; border-collapse:collapse; border-spacing:0px;} +.admin-table-type1 th, +.admin-table-type1 td {padding:4px; border:1px solid #aaa;} +.admin-table-type1 td {text-align:center;} +.admin-table-type1 thead th {background:#f2f2f2;} +.admin-table-type1 tbody th {background:#f2f2f2;} +.admin-table-type1 * {vertical-align:middle;} + +.admin-table-type2 {width:100%; border-collapse:collapse; border-spacing:0px;} +.admin-table-type2 th, +.admin-table-type2 td {padding:4px; border-bottom:1px solid #aaa;} +.admin-table-type2 td {text-align:center;} +.admin-table-type2 thead th {background:#f2f2f2; border-top:1px solid #ccc;} +.admin-table-type2 tbody th {background:#f8f8f8; font-weight:normal;} + +.admin-search {*zoom:1; margin:0 0 5px 0;} +.admin-search:after {content:" "; display:block; clear:both;} +.admin-search .total {float:left;} +.admin-search .keyword {float:right;} +.admin-search * {vertical-align:middle;} + +.admin-restrictions {*zoom:1; width:90%; padding:3px 0;} +.admin-restrictions:after {content:" "; display:block; clear:both;} +.admin-restrictions li {float:left; width:200px; padding:3px 0;} + +.admin-table-main {width:100%; border-collapse:collapse; border-spacing:0px; font-size:11px;} +.admin-table-main thead th {padding:4px 10px; background:#aeb2bd; color:#fff; border:1px solid #7d838c;} +.admin-table-main tbody th {padding:4px 10px; border:1px solid #ccc; border-top:0;} +.admin-table-main tbody td {padding:4px 10px; border:1px solid #ccc; border-top:0; text-align:right;} +.admin-table-main tr.today {color:#4390dd;} +.admin-table-main tr.total {color:#ff7800; background:#f3f3f3;} +.admin-table-main * {vertical-align:middle;} + +.admin-comm {*zoom:1;} +.admin-comm:after {content:" "; display:block; clear:both;} +.admin-comm .column1 {float:left; width:23%;} +.admin-comm .column2 {float:left; width:31%;} +.admin-comm .first {margin-left:0;} +.admin-comm .last {float:right !important; margin:0;} +.admin-comm .admin-board {height:150px; border:1px solid #b3b3b3; border-radius:5px; background:#fafafa; margin:0 5px; line-height:22px;} +.admin-comm h3 {padding:6px 0 0 17px; height:28px; font-size:12px; letter-spacing:-1px;} +.admin-comm ul {padding:11px 15px 0 15px; border-top:1px solid #e0e0e0;} +.admin-comm li {position:relative; font-size:11px; color:#999; overflow:hidden;} +.admin-comm li span {position:absolute; top:0; right:0; color:#999; font-family:Tahoma;} + +/* sidebar */ +.admin-sidebar {position:absolute; top:120px; right:10px; width:180px;} +.admin-sidebar p {line-height:0; margin:0 0 6px 0;} + +/* footer */ +#admin-footer {*zoom:1; position:absolute; bottom:0; left:0; width:100%; border-top:1px solid #b4b4b4; background:#f4f4f4; padding:15px 0; margin:0; clear:both; z-index:10;} +#admin-footer:after {content:" "; clear:both; display:block;} +.footer-copyright {float:right; font-size:80%; color:#777; line-height:1.2em; font-family:Arial, Dotum; text-align:right; margin:0 20px 0 0;} +.footer-copyright strong {color:#000;} +.footer-copyright a {color:#000; font-weight:bold;} +.footer-company {float:left; color:#777; font-size:11px; line-height:1.2em; margin:0 0 0 20px;} +.footer-company span {color:#000;} + +/* sub */ +.border-box {border:1px solid #dedede;padding:15px;} +.list-dot {margin:0;padding:0;} +.list-dot li {background:url(../images/dot.gif) 0 7px no-repeat; margin:0; padding:0 0 0 10px;} + +.popup-template {width:100%;} +.popup-template ul {*zoom:1;} +.popup-template ul:after {content:" "; clear:both; display:block;} +.popup-template li {float:left; width:150px; text-align:center; color:#ad0000; padding:10px 0 5px 0;} +.popup-template li .thumb {display:block; line-height:0; margin-bottom:4px;} + +.mailsms_head {padding:20px; border:1px solid #45a7e4; font-size:14px; font-weight:bold; color:#414141; line-height:26px; margin:0 0 25px 0;} +.mailsms_content {padding:0 20px;} +.mailsms_content h4 {font-size:16px; font-weight:bold; color:#414141;} +.mailsms_content ul {list-style:none;margin:0;padding:0;line-height:1.8em;} +.mailsms_content li {margin:0 0 0 13px; text-indent:-13px;} +.mailsms_content .bank {color:#13a7d8;} +.mailsms_content .notes {color:#ef6d0e;} +.mailsms_content .form {width:560px; margin-top:20px;} +.mailsms_form table {width:100%; border-collapse:collapse; border-spacing:0px; margin:0 0 10px 0; color:#444; border-bottom:1px solid #646464; border-top:1px solid #646464;} +.mailsms_form thead th {background:#646464; color:#fff; font-size:16px; padding:10px 0;} +.mailsms_form thead td {background:#d5d5d5; border-left:1px solid #c1c1c1; padding:6px; font-weight:bold; text-align:center;} +.mailsms_form thead tr td:first-child {border-left:0;} +.mailsms_form tbody th {border-top:1px solid #c1c1c1; padding:6px; font-weight:normal;} +.mailsms_form tbody th strong {font-size:14px;} +.mailsms_form tbody td {border-left:1px solid #c1c1c1; border-top:1px solid #c1c1c1; padding:6px; text-align:center;} +.mailsms_form .btn {margin-top:10px; text-align:center;} +.mailsms_form .btn input[type=submit], +.mailsms_form .btn input[type=button] {padding:10px 20px;} +.mailsms_pop h1 {margin:0;padding:0;} +.mailsms_pop dd {margin:0;padding:0;} +.mailsms_pop .head {line-height:0; background:#0060ab;} +.mailsms_pop .content {padding:10px 5px;} +.mailsms_pop .content .top {padding:10px 5px; font-size:14px; font-weight:bold; color:#000; line-height:20px; word-break:keep-all;} +.mailsms_pop .content .total {color:#ff5a00; font-size:16px; margin:12px;} +.mailsms_pop .content .info {margin:12px;} +.mailsms_pop .content .bank {color:#13a7d8;} +.mailsms_pop .content .memo dt {background:#9bb94b; padding:3px 12px; color:#fff;} +.mailsms_pop .content .memo dd {border:1px solid #a9a9a9; padding:6px 10px;} +.mailsms_pop .content .memo textarea {outline:none;border:0;font-size:12px;line-height:1.6em;overflow:auto;} +.mailsms_charge {padding:3px 10px; font-size:12px; line-height:16px;} +.mailsms_result {width:745px;} +.mailsms_result .top {zoom:1; margin:0 0 10px 0; overflow:hidden;} +.mailsms_result .top .search {float:left;} +.mailsms_result .top .total {float:right; color:#ff5a00; font-size:16px; padding:4px 0 0 0;} +.mailsms_result_list {width:100%; border-collapse:collapse; border-spacing:0px;} +.mailsms_result_list thead th {background:#646464; color:#fff; padding:6px 0;} +.mailsms_result_list tbody td {padding:6px 0; border-bottom:1px solid #646464; border-left:1px solid #646464; text-align:center;} +.mailsms_result_list tbody tr td:first-child {border-left:0;} + +/* 페이지목록 */ +/* +.paginate {padding:20px 0;text-align:center;line-height:normal; clear:both;} +.paginate a, +.paginate strong{display:inline-block;position:relative;margin:0 -2px;padding:2px 8px;font-weight:bold;font-size:12px; font-family:Tahoma, Sans-serif;color:#333;line-height:normal;text-decoration:none;vertical-align:middle} +.paginate a:hover, +.paginate a:active, +.paginate a:focus{background-color:#f8f8f8;} +.paginate strong{color:#ff5a00} +.paginate .direction{padding:0; margin:0 4px;} +*/ +.paginate {margin:20px 0;text-align:center;line-height:normal;} +.paginate a, +.paginate strong {display:inline-block;zoom:1;*display:inline;position:relative;padding:0;margin:0 1px;width:34px;height:34px;background-color:#fafafa;border:1px solid #ccc;font-size:14px;font-weight:400;line-height:32px;color:#555;text-decoration:none;text-align:center;vertical-align:middle;} +.paginate strong {color:#fff;border-color:#555;background-color:#555;} +.paginate a.direction {background-position:50% 50%;background-repeat:no-repeat;} +.paginate a.direction span {font-size:0;line-height:0;text-indent:-999px;} +.paginate a.direction.first {background-image:url("/images/bbs/btn_first.png");} +.paginate a.direction.prev {background-image:url("/images/bbs/btn_prev.png");} +.paginate a.direction.next {background-image:url("/images/bbs/btn_next.png");} +.paginate a.direction.last {background-image:url("/images/bbs/btn_last.png");} + +/* 버튼 */ +.admin-buttons {padding:15px 0;} +.admin-buttons .cen {text-align:center;} +.admin-buttons .fr {float:right;} +.admin-buttons .fl {float:left;} +.admin-buttons a {text-decoration:none;} +.admin-buttons a,.admin-buttons input {vertical-align:top;} + +/* Text Button Package */ +.btn_pack, +.btn_pack *{display:inline-block;overflow:visible;position:relative;margin:0;padding:0;border:0;background:url('../images/btn_pack.gif') no-repeat;font-size:12px;color:#555;text-decoration:none !important;vertical-align:top;white-space:nowrap} +.btn_pack{margin-right:4px} +.btn_pack *{left:4px;cursor:pointer;_cursor:hand} +.btn_pack.medium, +.btn_pack.medium *{height:24px;line-height:24px} +.btn_pack.large, +.btn_pack.large *{height:30px;line-height:30px;letter-spacing:-1px;} +.btn_pack.xlarge, +.btn_pack.xlarge *{height:36px;line-height:36px;letter-spacing:-1px;} +.btn_pack.small, +.btn_pack.small *{height:19px;line-height:19px} +.btn_pack.medium{background-position:left 0} +.btn_pack.large{background-position:left -30px} +.btn_pack.xlarge{background-position:left -65px} +.btn_pack.small{background-position:left -106px} +.btn_pack.medium *{padding:0 10px 0 6px;background-position:right top;font-size:12px} +.btn_pack.large *{padding:0 14px 0 10px;background-position:right -30px;font-size:13px} +.btn_pack.xlarge *{padding:0 10px 0 6px;background-position:right -65px;font-size:15px} +.btn_pack.small *{padding:0 6px 0 2px;background-position:right -106px;font-size:11px} +.btn_pack *:hover, +.btn_pack *:active, +.btn_pack *:focus{color:#000} +.btn_pack.strong *{font-weight:bold !important} +.btn_pack.icon *{padding-left:20px} +.btn_pack.small.icon *{padding-left:16px} +.btn_pack.icon span{width:20px;margin-right:-20px;padding:0 !important} +.btn_pack.medium .check{background-position:4px -150px} +.btn_pack.large .check{background-position:4px -146px} +.btn_pack.xlarge .check{background-position:5px -144px} +.btn_pack.small .check{background-position:3px -153px} +.btn_pack.medium .add{background-position:-16px -150px} +.btn_pack.large .add{background-position:-14px -146px} +.btn_pack.xlarge .add{background-position:-14px -144px} +.btn_pack.small .add{background-position:-18px -153px} +.btn_pack.medium .delete{background-position:-34px -150px} +.btn_pack.large .delete{background-position:-34px -146px} +.btn_pack.xlarge .delete{background-position:-34px -144px} +.btn_pack.small .delete{background-position:-37px -153px} +.btn_pack.medium .calendar{background-position:-56px -150px} +.btn_pack.large .calendar{background-position:-56px -146px} +.btn_pack.xlarge .calendar{background-position:-56px -144px} +.btn_pack.small .calendar{background-position:-59px -153px} +.btn_pack.medium .refresh{background-position:-76px -150px} +.btn_pack.large .refresh{background-position:-76px -146px} +.btn_pack.xlarge .refresh{background-position:-76px -144px} +.btn_pack.small .refresh{background-position:-79px -153px} +.btn_pack.medium .download{background-position:-96px -151px} +.btn_pack.large .download{background-position:-96px -147px} +.btn_pack.xlarge .download{background-position:-96px -145px} +.btn_pack.small .download{background-position:-99px -154px} + +/* 버튼 */ +.buttons {*zoom:1; max-width:1000px; margin:15px auto;} +.buttons:after {content:" "; display:block; clear:both;} +.buttons .cen {text-align:center;} +.buttons .cen input[type=submit],.buttons .cen input[type=cancel],.buttons .cen button {*margin:0 2px;} +.buttons .fr {float:right;} +.buttons .fl {float:left;} +.buttons a {text-decoration:none;} +.buttons a,.buttons input {vertical-align:top;} + +.btn-pack {display:inline-block;overflow:visible;position:relative;margin:0;padding:0 10px;color:#767676;letter-spacing:-1px;text-decoration:none !important;vertical-align:top;white-space:nowrap;cursor:pointer; + border:1px solid #e4e7e9; border-bottom-color:#bbbfc8; outline:0; border-radius:3px; + box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; + box-shadow:inset 0px -1px 0px #fff,0px 1px 1px #f0f0f0; + background:#ffffff; + background:-webkit-linear-gradient(top, #ffffff 0%, #f8f8f9 100%); + background:-moz-linear-gradient(top, #ffffff 0%, #f8f8f9 100%); + background:-ms-linear-gradient(top, #ffffff 0%, #f8f8f9 100%); + background:-o-linear-gradient(top, #ffffff 0%, #f8f8f9 100%); + background:linear-gradient(top, #ffffff 0%, #f8f8f9 100%); + +} +.btn-pack.focus { + color:#fff; + border:1px solid #0059a4; border-bottom-color:#0059a4; + box-shadow:inset 0px -1px 0px #0059a4,0px 1px 1px #f0f0f0; + background:#0165ba; + background:-webkit-linear-gradient(top, #0165ba 0%, #0059a4 100%); + background:-moz-linear-gradient(top, #0165ba 0%, #0059a4 100%); + background:-ms-linear-gradient(top, #0165ba 0%, #0059a4 100%); + background:-o-linear-gradient(top, #0165ba 0%, #0059a4 100%); + background:linear-gradient(top, #0165ba 0%, #0059a4 100%); +} +.btn-pack.dark { + color:#fff; + border:1px solid #676767; border-bottom-color:#4c4c4c; + box-shadow:inset 0px -1px 0px #6b6b6b,0px 1px 1px #f0f0f0; + background:#7d7d7d; + background:-webkit-linear-gradient(top, #7d7d7d 0%, #6b6b6b 100%); + background:-moz-linear-gradient(top, #7d7d7d 0%, #6b6b6b 100%); + background:-ms-linear-gradient(top, #7d7d7d 0%, #6b6b6b 100%); + background:-o-linear-gradient(top, #7d7d7d 0%, #6b6b6b 100%); + background:linear-gradient(top, #7d7d7d 0%, #6b6b6b 100%); +} +.btn-pack.medium {height:26px;padding:0 13px;line-height:24px;font-size:12px;font-weight:700;} +.btn-pack.large {height:32px;padding:0 18px;line-height:30px;font-size:14px;font-weight:700;} +.btn-pack.xlarge {height:38px;padding:0 23px;line-height:36px;font-size:16px;font-weight:700;} +.btn-pack.small {height:21px;padding:0 10px;line-height:19px;font-size:11px;} +.btn-pack.comment {width:110px; height:62px;padding:0;line-height:60px;font-size:18px;font-weight:400;} +.btn-pack:hover, +.btn-pack:active, +.btn-pack:focus{color:#000} +.btn-pack.focus:hover, +.btn-pack.focus:active, +.btn-pack.focus:focus{color:#fff} +.btn-pack.dark:hover, +.btn-pack.dark:active, +.btn-pack.dark:focus{color:#fff} +input.btn-pack.medium ,button.btn-pack.medium {*height:28px;} +input.btn-pack.large ,button.btn-pack.large {*height:34px;} +input.btn-pack.xlarge ,button.btn-pack.xlarge {*height:40px;} +input.btn-pack.small ,button.btn-pack.small {*height:23px;} + +/* 쇼핑 테이블 */ +.shop-table {border-top:2px solid #aaa;} +.shop-table table {width:100%; border-collapse:collapse; border-spacing:0;} +.shop-table table thead th {padding:10px 5px; border-bottom:1px solid #d8d8d8; border-left:1px solid #eee; background:#f7f7f7; font-size:13px; color:#333; font-weight:normal;} +.shop-table table tbody td {padding:15px 5px; border-bottom:1px solid #d8d8d8; border-left:1px solid #eee; line-height:18px; text-align:center; word-break:break-all;} +.shop-table table tbody td img {vertical-align:middle;} +.shop-table table tbody td strong {color:#000;} +.shop-table table tbody td.space-left {text-align:left; padding-left:15px;} +.shop-table table tbody td.space-right {text-align:right; padding-right:15px;} +.shop-table table tbody td.bt p {margin:1px 0;} +.shop-table table tbody td .prod-info {*zoom:1; padding:0 0 0 80px;} +.shop-table table tbody td .prod-info:after {content:" "; display:block; clear:both;} +.shop-table table tbody td .prod-info .img {float:left; margin-left:-80px; line-height:0;} +.shop-table table tbody td .prod-info .img img {border:1px solid #eee;} +.shop-table table tbody td .prod-info .info {display:table-cell; width:100%; height:70px; vertical-align:middle;} +.shop-table table tbody td .tit {padding:0 0 2px 0; font-size:13px; font-weight:700; line-height:16px;} +.shop-table table tbody td .tit a {color:#000;} +.shop-table table tbody td .opt {color:#4d6ccd; font-size:11px;} +.shop-table table tbody td .price {color:#ff6000; font-size:13px; font-weight:700;} +.shop-table table tbody td .num {color:#888; font-size:11px;} +.shop-table table tbody td .state {color:#4d6ccd; margin-bottom:4px;} +.shop-table table tbody tr:hover td {background-color:#fafafa;} +.shop-table table tbody tr th:first-child, +.shop-table table tbody tr td:first-child {border-left:0;} \ No newline at end of file diff --git a/backoffice/css/layout_back.css b/backoffice/css/layout_back.css new file mode 100644 index 0000000..c6be0e6 --- /dev/null +++ b/backoffice/css/layout_back.css @@ -0,0 +1,142 @@ +@charset "utf-8"; + +/* 로그인 */ +#wrapper {*zoom:1; position:relative; height:auto !important;height:100%; min-height:100%; background:url('../images/login_bg.gif') 0 repeat-x;} /* IE5.5~7 브라우저 대응 Hack */ +#wrapper:after {content:" "; display:block; clear:both;} /* 표준계열 브라우저에 대응하는 float 해제용 가상 엘리먼트의 생성 */ + +#loginArea {position:absolute; width:661px; height:280px; left:50%; top:50%; margin:-170px 0 0 -330px;} +.memberLogin {position:relative; width:661px; height:248px;background:url('../images/login_box.png') 0 0 no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../images/login_box.png",sizingMethod='crop'); margin:0 auto 10px auto;} +.memberLogin .loginField {position:absolute;top:88px;left:274px;border:0 none;padding:0;margin:0;} +.memberLogin .loginField legend {visibility:hidden;width:0;height:0;font-size:0;} +.memberLogin .loginField .id {position:absolute;top:2px;left:0;width:260px;} +.memberLogin .loginField .pw {position:absolute;top:30px;left:0;width:260px;} +.memberLogin .loginField label {display:block;float:left;width:57px;padding:5px 0 0 0;} +.memberLogin .loginField .btnLogin {position:absolute;top:0;left:262px;} +.memberLogin .loginText {position:absolute;top:176px;left:278px; font:11px Dotum; color:#89b7d3; line-height:19px;} +#loginArea .copyright {text-align:center; font:11px Arial; color:#999999; line-height:19px;} +input.loginInput {width:194px; height:19px; background:#f2f2f1; border:1px solid #116294; color:#666; margin:0;} + + +/* header */ +#wrap {*zoom:1; position:relative; width:100%; min-width:970px; height:auto !important;height:100%; min-height:100%; background:url('../images/left_bg.gif') 0 repeat-y;} +#wrap:after {content:" "; display:block; clear:both;} + +#header{width:100%; height:104px;} +.topArea {*zoom:1; position:relative; width:100%; height:60px; background:url('../images/top_bg.gif') top left repeat-x; overflow:hidden;} +.topArea:after {content:" "; display:block; clear:both;} +h1.logo {position:absolute; top:0; left:0; margin:0; padding:0;} +.utilMenuSet {padding:12px 180px 0 0; text-align:right;} +.utilMenuSet p.visitorName {height:20px; line-height:1.2em; color:#424142; padding:0; margin:0;} +.utilMenuSet ul.utilMenu {float:right; margin:0; padding:0;clear:both;} +.utilMenuSet ul.utilMenu li {float:left; display:inline; list-style:none; margin:0 0 0 4px; padding:0;} +p.website {position:absolute; top:0; right:0; margin:0; padding:0;} + +.gnbArea {width:100%; height:44px; background:url('../images/gnb_bg.gif') top left repeat-x; overflow:hidden; clear:both;} +ul.gnb {display:block; padding:0 0 0 25px; margin:0;} +ul.gnb li {float:left; list-style:none; background:url('../images/gnb_vline.gif') 0 13px no-repeat; padding:0; margin:0;} +ul.gnb li a,ul.gnb li a:link {display:block; font-size:100%; color:#fff; font-family:Gulim; font-size:13px; line-height:39px; padding:0 24px 0 26px; text-decoration:none;} +ul.gnb li a:hover {color:#40b5ff; text-decoration:none;} +ul.gnb li.bg_none {background:none;} +*html #header .gnbArea ul.gnb li a {color:#fff;} /* IE6 */ +*html #header .gnbArea ul.gnb li a:hover {color:#40b5ff;} /* IE6 */ + +/* left */ +.snb {float:left; display:inline; position:relative;left:-200px; width:170px;margin-right:-170px;} +.snbTitle {width:170px; height:41px; background:url('../images/left_title_bg.jpg') no-repeat;} +.snbTitle h2 {font:14px Gulim; color:#fff; font-weight:bold; line-height:1.6em; margin:0; padding:10px 0 0 38px;} +ul.menu {padding:8px 0 0 0; margin:0 0 50px 0;} +ul.menu li {display:block; list-style:none; height:35px; padding:0; margin:0; border-bottom:1px dotted #ccc;} +ul.menu li a,ul.menu li a:link {display:block; font-size:100%; color:#333; line-height:35px; background:url('../images/bullet.gif') 13px 12px no-repeat; padding:0 0 0 30px; margin:0; text-decoration:none;} +ul.menu li a:hover {display:block; color:#ca0000; background:#deeaed url('../images/bullet.gif') 13px 12px no-repeat; text-decoration:none;} + +/* body */ +#container{*display:inline-block; _width /**/:100%; padding:0 0 30px 200px; background:url('../images/con_bg.gif') top repeat-x;} +#container:after{display:block;clear:both;content:" ";} +#content {float:left; display:inline; width:1150px; /*width:99%;*/ min-width:770px; padding:30px 0 70px 0;} + +h3.subTitle {display:block; font-size:16px; line-height:1.2em; letter-spacing:-1px; color:#40508e; background:url('../images/bullet2.gif') 0 2px no-repeat; padding:0 0 0 14px; margin:0 0 10px 0;} + +#content01 {*zoom:1; width:100%; margin-bottom:30px;} +#content01:after {content:" "; display:block; clear:both;} +#content02 {*zoom:1; width:100%; margin-bottom:30px; padding:30px 0 0 0; border-top:1px solid #eee;} +#content02:after {content:" "; display:block; clear:both;} + #conBox01 {float:left; display:inline; width:48%; min-width:375px;} + #conBox02 {float:right; display:inline; width:48%; min-width:375px; margin-left:20px;} + +ul.bbsList {display:block; list-style:none; padding:0; margin:0;} +ul.bbsList li {position:relative; display:block; height:26px; line-height:26px; background:url("../images/line_dot2.gif") bottom repeat-x;} +ul.bbsList li a {color:#333333; line-height:26px; background:url("../images/dot.gif") 4px 8px no-repeat; padding-left:13px;} +ul.bbsList li span {position:absolute; top:0; right:0; line-height:26px;} +ul.bbsList li img {vertical-align:middle;} + +.table01 {width:100%; border-collapse:collapse; border-spacing:0px;} +.table01 caption {visibility:hidden; overflow:hidden; width:0; height:0; margin:0; padding:0; font:0/0 Arial;} +.table01 thead th {padding:5px; font-weight:normal; color:#11799f; background:#edf4f6; border:1px solid #b8d0e1;} +.table01 tbody td {padding:5px; font-weight:normal; border:1px solid #b8d0e1;} + +.table02 {width:100%; border-collapse:collapse; border-spacing:0px;} +.table02 caption {visibility:hidden; overflow:hidden; width:0; height:0; margin:0; padding:0; font:0/0 Arial;} +.table02 thead th {padding:5px; font-weight:normal; color:#11799f; background:#edf4f6; border:1px solid #b8d0e1;} +.table02 tbody td {padding:5px; font-weight:normal; border-bottom:1px dotted #cccccc;} + +.space-center {text-align:center;} +.space-left {text-align:left;} +.space-right {text-align:right;} + + +/* footer */ +#footer{position:absolute; bottom:0; left:0; clear:both; width:100%; height:30px; background:#31323a; margin:0;} +p.copyright {padding:8px 20px 0 0; font-size:80%; color:#838386; line-height:1.2em; font-family:Arial, Dotum; text-align:right; margin:0;} +p.copyright strong {color:#45a7e4; font-weight:bold;} +p.copyright a {color:#45a7e4; font-weight:bold;} + + +/* sub */ +.mailsms_head {padding:20px; border:1px solid #45a7e4; font-size:14px; font-weight:bold; color:#414141; line-height:26px; margin:0 0 25px 0;} +.mailsms_content {padding:0 20px;} +.mailsms_content h4 {font-size:16px; font-weight:bold; color:#414141;} +.mailsms_content ul {list-style:none;margin:0;padding:0;line-height:1.8em;} +.mailsms_content li {margin:0 0 0 13px; text-indent:-13px;} +.mailsms_content .bank {color:#13a7d8;} +.mailsms_content .notes {color:#ef6d0e;} +.mailsms_content .form {width:560px; margin-top:20px;} +.mailsms_form table {width:100%; border-collapse:collapse; border-spacing:0px; margin:0 0 10px 0; color:#444; border-bottom:1px solid #646464; border-top:1px solid #646464;} +.mailsms_form thead th {background:#646464; color:#fff; font-size:16px; padding:10px 0;} +.mailsms_form thead td {background:#d5d5d5; border-left:1px solid #c1c1c1; padding:6px; font-weight:bold; text-align:center;} +.mailsms_form thead tr td:first-child {border-left:0;} +.mailsms_form tbody th {border-top:1px solid #c1c1c1; padding:6px; font-weight:normal;} +.mailsms_form tbody th strong {font-size:14px;} +.mailsms_form tbody td {border-left:1px solid #c1c1c1; border-top:1px solid #c1c1c1; padding:6px; text-align:center;} +.mailsms_form .btn {margin-top:10px; text-align:center;} +.mailsms_form .btn input[type=submit], +.mailsms_form .btn input[type=button] {padding:10px 20px;} +.mailsms_pop h1 {margin:0;padding:0;} +.mailsms_pop dd {margin:0;padding:0;} +.mailsms_pop .head {line-height:0; background:#0060ab;} +.mailsms_pop .content {padding:10px 5px;} +.mailsms_pop .content .top {padding:10px 5px; font-size:14px; font-weight:bold; color:#000; line-height:20px; word-break:keep-all;} +.mailsms_pop .content .total {color:#ff5a00; font-size:16px; margin:12px;} +.mailsms_pop .content .info {margin:12px;} +.mailsms_pop .content .bank {color:#13a7d8;} +.mailsms_pop .content .memo dt {background:#9bb94b; padding:3px 12px; color:#fff;} +.mailsms_pop .content .memo dd {border:1px solid #a9a9a9; padding:6px 10px;} +.mailsms_pop .content .memo textarea {outline:none;border:0;font-size:12px;line-height:1.6em;overflow:auto;} +.mailsms_charge {padding:3px 10px; font-size:12px; line-height:16px;} +.mailsms_result {width:745px;} +.mailsms_result .top {zoom:1; margin:0 0 10px 0; overflow:hidden;} +.mailsms_result .top .search {float:left;} +.mailsms_result .top .total {float:right; color:#ff5a00; font-size:16px; padding:4px 0 0 0;} +.mailsms_result_list {width:100%; border-collapse:collapse; border-spacing:0px;} +.mailsms_result_list thead th {background:#646464; color:#fff; padding:6px 0;} +.mailsms_result_list tbody td {padding:6px 0; border-bottom:1px solid #646464; border-left:1px solid #646464; text-align:center;} +.mailsms_result_list tbody tr td:first-child {border-left:0;} + +/* 페이지목록 */ +.paginate {padding:20px 0;text-align:center;line-height:normal; clear:both;} +.paginate a, +.paginate strong{display:inline-block;position:relative;margin:0 -2px;padding:2px 8px;font-weight:bold;font-size:12px; font-family:Tahoma, Sans-serif;color:#333;line-height:normal;text-decoration:none;vertical-align:middle} +.paginate a:hover, +.paginate a:active, +.paginate a:focus{background-color:#f8f8f8;} +.paginate strong{color:#ff5a00} +.paginate a.direction{padding:0; margin:0 4px;} \ No newline at end of file diff --git a/backoffice/css/style.css b/backoffice/css/style.css new file mode 100644 index 0000000..0642a9f --- /dev/null +++ b/backoffice/css/style.css @@ -0,0 +1,4 @@ +@charset "utf-8"; + +@import url("basic.css"); +@import url("layout.css"); \ No newline at end of file diff --git a/backoffice/footer.php b/backoffice/footer.php new file mode 100644 index 0000000..77dc190 --- /dev/null +++ b/backoffice/footer.php @@ -0,0 +1,11 @@ + + + + + + + + diff --git a/backoffice/footer_back.php b/backoffice/footer_back.php new file mode 100644 index 0000000..9e964d1 --- /dev/null +++ b/backoffice/footer_back.php @@ -0,0 +1,9 @@ + +
+ + + + + diff --git a/backoffice/frame_mailsms.php b/backoffice/frame_mailsms.php new file mode 100644 index 0000000..2ef4c29 --- /dev/null +++ b/backoffice/frame_mailsms.php @@ -0,0 +1,11 @@ + + +
+COOPERATION_ID :
+USER_ID :
+PASSWORD :
+CHECK_CD :
+ +
+ + diff --git a/backoffice/header.php b/backoffice/header.php new file mode 100644 index 0000000..21a508e --- /dev/null +++ b/backoffice/header.php @@ -0,0 +1,212 @@ + + + + + + + + + + + + + +<?=$_SITE["NAME"]?> 관리자 + + + + + + + + + + + + + + + + + + + + + + +
+
+
+

관리자모드

+ +
+
+
    + +
  • 관리자관리
  • + + + +
  • 제품
  • + + + + + +
  • 상품
  • + + + + + +
  • 주문
  • + + + + + +
  • 메일
  • + + + + + + +
  • 게시판
  • + +
  • 게시판
  • + + + + + + +
  • 온라인상담
  • + + + + + +
  • 회원
  • + + + + + +
  • 배너관리
  • + + + + + +
  • 팝업관리
  • + + + + + +
  • 컨텐츠관리
  • + + + + + +
  • 투표
  • + + + + + + +
  • 설문
  • + + + + + +
  • 접속통계
  • + + + + +
  • 메일/문자 발송
  • + + +
+
+
diff --git a/backoffice/header_back.php b/backoffice/header_back.php new file mode 100644 index 0000000..547f4d1 --- /dev/null +++ b/backoffice/header_back.php @@ -0,0 +1,146 @@ + + + + + + + +<?=$_SITE["NAME"]?> 관리자 + + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/backoffice/iframe_count1.php b/backoffice/iframe_count1.php new file mode 100644 index 0000000..68e620d --- /dev/null +++ b/backoffice/iframe_count1.php @@ -0,0 +1,74 @@ + + + + + + + +<?=$_SITE["NAME"]?> 관리자 + + + + + + +
+ + + + + + + + + + + diff --git a/backoffice/iframe_count2.php b/backoffice/iframe_count2.php new file mode 100644 index 0000000..7b51b7b --- /dev/null +++ b/backoffice/iframe_count2.php @@ -0,0 +1,72 @@ + + + + + + + +<?=$_SITE["NAME"]?> 관리자 + + + + + + +
+ + + + + + + + + + + diff --git a/backoffice/iframe_count3.php b/backoffice/iframe_count3.php new file mode 100644 index 0000000..5937026 --- /dev/null +++ b/backoffice/iframe_count3.php @@ -0,0 +1,72 @@ + + + + + + + +<?=$_SITE["NAME"]?> 관리자 + + + + + + +
+ + + + + + + + + + + diff --git a/backoffice/images/Thumbs.db b/backoffice/images/Thumbs.db new file mode 100644 index 0000000..d8fb850 Binary files /dev/null and b/backoffice/images/Thumbs.db differ diff --git a/backoffice/images/ad_1.jpg b/backoffice/images/ad_1.jpg new file mode 100644 index 0000000..88c5b29 Binary files /dev/null and b/backoffice/images/ad_1.jpg differ diff --git a/backoffice/images/ad_2.jpg b/backoffice/images/ad_2.jpg new file mode 100644 index 0000000..1ff61cd Binary files /dev/null and b/backoffice/images/ad_2.jpg differ diff --git a/backoffice/images/ad_3.jpg b/backoffice/images/ad_3.jpg new file mode 100644 index 0000000..cb0b5ef Binary files /dev/null and b/backoffice/images/ad_3.jpg differ diff --git a/backoffice/images/arrow.gif b/backoffice/images/arrow.gif new file mode 100644 index 0000000..b79f981 Binary files /dev/null and b/backoffice/images/arrow.gif differ diff --git a/backoffice/images/arrow2.gif b/backoffice/images/arrow2.gif new file mode 100644 index 0000000..4fc16cd Binary files /dev/null and b/backoffice/images/arrow2.gif differ diff --git a/backoffice/images/blank.gif b/backoffice/images/blank.gif new file mode 100644 index 0000000..106b957 Binary files /dev/null and b/backoffice/images/blank.gif differ diff --git a/backoffice/images/btn_add_admin.gif b/backoffice/images/btn_add_admin.gif new file mode 100644 index 0000000..208b61c Binary files /dev/null and b/backoffice/images/btn_add_admin.gif differ diff --git a/backoffice/images/btn_add_cat.gif b/backoffice/images/btn_add_cat.gif new file mode 100644 index 0000000..88d9484 Binary files /dev/null and b/backoffice/images/btn_add_cat.gif differ diff --git a/backoffice/images/btn_admin.gif b/backoffice/images/btn_admin.gif new file mode 100644 index 0000000..dc41627 Binary files /dev/null and b/backoffice/images/btn_admin.gif differ diff --git a/backoffice/images/btn_adminEdit.gif b/backoffice/images/btn_adminEdit.gif new file mode 100644 index 0000000..da4bd06 Binary files /dev/null and b/backoffice/images/btn_adminEdit.gif differ diff --git a/backoffice/images/btn_as.gif b/backoffice/images/btn_as.gif new file mode 100644 index 0000000..bbdf092 Binary files /dev/null and b/backoffice/images/btn_as.gif differ diff --git a/backoffice/images/btn_homepage.gif b/backoffice/images/btn_homepage.gif new file mode 100644 index 0000000..a81d5ca Binary files /dev/null and b/backoffice/images/btn_homepage.gif differ diff --git a/backoffice/images/btn_login.jpg b/backoffice/images/btn_login.jpg new file mode 100644 index 0000000..d856ca2 Binary files /dev/null and b/backoffice/images/btn_login.jpg differ diff --git a/backoffice/images/btn_logout.gif b/backoffice/images/btn_logout.gif new file mode 100644 index 0000000..209b4b8 Binary files /dev/null and b/backoffice/images/btn_logout.gif differ diff --git a/backoffice/images/btn_pack.gif b/backoffice/images/btn_pack.gif new file mode 100644 index 0000000..80bbaab Binary files /dev/null and b/backoffice/images/btn_pack.gif differ diff --git a/backoffice/images/btn_search.gif b/backoffice/images/btn_search.gif new file mode 100644 index 0000000..55f6fc6 Binary files /dev/null and b/backoffice/images/btn_search.gif differ diff --git a/backoffice/images/bullet.gif b/backoffice/images/bullet.gif new file mode 100644 index 0000000..36c5aa0 Binary files /dev/null and b/backoffice/images/bullet.gif differ diff --git a/backoffice/images/bullet2.gif b/backoffice/images/bullet2.gif new file mode 100644 index 0000000..45c1b8c Binary files /dev/null and b/backoffice/images/bullet2.gif differ diff --git a/backoffice/images/bullet3.gif b/backoffice/images/bullet3.gif new file mode 100644 index 0000000..703548f Binary files /dev/null and b/backoffice/images/bullet3.gif differ diff --git a/backoffice/images/bullet4.gif b/backoffice/images/bullet4.gif new file mode 100644 index 0000000..71696c3 Binary files /dev/null and b/backoffice/images/bullet4.gif differ diff --git a/backoffice/images/calendar_bg.gif b/backoffice/images/calendar_bg.gif new file mode 100644 index 0000000..0a15981 Binary files /dev/null and b/backoffice/images/calendar_bg.gif differ diff --git a/backoffice/images/calendar_bt_next.gif b/backoffice/images/calendar_bt_next.gif new file mode 100644 index 0000000..8625c77 Binary files /dev/null and b/backoffice/images/calendar_bt_next.gif differ diff --git a/backoffice/images/calendar_bt_next2.gif b/backoffice/images/calendar_bt_next2.gif new file mode 100644 index 0000000..aea6f15 Binary files /dev/null and b/backoffice/images/calendar_bt_next2.gif differ diff --git a/backoffice/images/calendar_bt_prev.gif b/backoffice/images/calendar_bt_prev.gif new file mode 100644 index 0000000..66bd9f5 Binary files /dev/null and b/backoffice/images/calendar_bt_prev.gif differ diff --git a/backoffice/images/calendar_bt_prev2.gif b/backoffice/images/calendar_bt_prev2.gif new file mode 100644 index 0000000..a93621d Binary files /dev/null and b/backoffice/images/calendar_bt_prev2.gif differ diff --git a/backoffice/images/calendar_today.gif b/backoffice/images/calendar_today.gif new file mode 100644 index 0000000..4bf86f8 Binary files /dev/null and b/backoffice/images/calendar_today.gif differ diff --git a/backoffice/images/close.gif b/backoffice/images/close.gif new file mode 100644 index 0000000..db1b187 Binary files /dev/null and b/backoffice/images/close.gif differ diff --git a/backoffice/images/con_bg.gif b/backoffice/images/con_bg.gif new file mode 100644 index 0000000..5b99f5c Binary files /dev/null and b/backoffice/images/con_bg.gif differ diff --git a/backoffice/images/dot.gif b/backoffice/images/dot.gif new file mode 100644 index 0000000..7153d77 Binary files /dev/null and b/backoffice/images/dot.gif differ diff --git a/backoffice/images/gnb10_off.gif b/backoffice/images/gnb10_off.gif new file mode 100644 index 0000000..1db8021 Binary files /dev/null and b/backoffice/images/gnb10_off.gif differ diff --git a/backoffice/images/gnb10_on.gif b/backoffice/images/gnb10_on.gif new file mode 100644 index 0000000..56d78d8 Binary files /dev/null and b/backoffice/images/gnb10_on.gif differ diff --git a/backoffice/images/gnb11_off.gif b/backoffice/images/gnb11_off.gif new file mode 100644 index 0000000..2a9becd Binary files /dev/null and b/backoffice/images/gnb11_off.gif differ diff --git a/backoffice/images/gnb11_on.gif b/backoffice/images/gnb11_on.gif new file mode 100644 index 0000000..9b85ddc Binary files /dev/null and b/backoffice/images/gnb11_on.gif differ diff --git a/backoffice/images/gnb12_off.gif b/backoffice/images/gnb12_off.gif new file mode 100644 index 0000000..f2a3971 Binary files /dev/null and b/backoffice/images/gnb12_off.gif differ diff --git a/backoffice/images/gnb12_on.gif b/backoffice/images/gnb12_on.gif new file mode 100644 index 0000000..7279328 Binary files /dev/null and b/backoffice/images/gnb12_on.gif differ diff --git a/backoffice/images/gnb13_off.gif b/backoffice/images/gnb13_off.gif new file mode 100644 index 0000000..2bceb29 Binary files /dev/null and b/backoffice/images/gnb13_off.gif differ diff --git a/backoffice/images/gnb13_on.gif b/backoffice/images/gnb13_on.gif new file mode 100644 index 0000000..a52fdde Binary files /dev/null and b/backoffice/images/gnb13_on.gif differ diff --git a/backoffice/images/gnb14_off.gif b/backoffice/images/gnb14_off.gif new file mode 100644 index 0000000..7a15554 Binary files /dev/null and b/backoffice/images/gnb14_off.gif differ diff --git a/backoffice/images/gnb14_on.gif b/backoffice/images/gnb14_on.gif new file mode 100644 index 0000000..993dd10 Binary files /dev/null and b/backoffice/images/gnb14_on.gif differ diff --git a/backoffice/images/gnb15_off.gif b/backoffice/images/gnb15_off.gif new file mode 100644 index 0000000..477504f Binary files /dev/null and b/backoffice/images/gnb15_off.gif differ diff --git a/backoffice/images/gnb15_on.gif b/backoffice/images/gnb15_on.gif new file mode 100644 index 0000000..0545a4e Binary files /dev/null and b/backoffice/images/gnb15_on.gif differ diff --git a/backoffice/images/gnb16_off.gif b/backoffice/images/gnb16_off.gif new file mode 100644 index 0000000..88c5e20 Binary files /dev/null and b/backoffice/images/gnb16_off.gif differ diff --git a/backoffice/images/gnb16_on.gif b/backoffice/images/gnb16_on.gif new file mode 100644 index 0000000..877491c Binary files /dev/null and b/backoffice/images/gnb16_on.gif differ diff --git a/backoffice/images/gnb1_off.gif b/backoffice/images/gnb1_off.gif new file mode 100644 index 0000000..162eb18 Binary files /dev/null and b/backoffice/images/gnb1_off.gif differ diff --git a/backoffice/images/gnb1_on.gif b/backoffice/images/gnb1_on.gif new file mode 100644 index 0000000..89d1e80 Binary files /dev/null and b/backoffice/images/gnb1_on.gif differ diff --git a/backoffice/images/gnb2_off.gif b/backoffice/images/gnb2_off.gif new file mode 100644 index 0000000..65e7ed6 Binary files /dev/null and b/backoffice/images/gnb2_off.gif differ diff --git a/backoffice/images/gnb2_on.gif b/backoffice/images/gnb2_on.gif new file mode 100644 index 0000000..955393d Binary files /dev/null and b/backoffice/images/gnb2_on.gif differ diff --git a/backoffice/images/gnb3_off.gif b/backoffice/images/gnb3_off.gif new file mode 100644 index 0000000..cde73df Binary files /dev/null and b/backoffice/images/gnb3_off.gif differ diff --git a/backoffice/images/gnb3_on.gif b/backoffice/images/gnb3_on.gif new file mode 100644 index 0000000..f0307fe Binary files /dev/null and b/backoffice/images/gnb3_on.gif differ diff --git a/backoffice/images/gnb4_off.gif b/backoffice/images/gnb4_off.gif new file mode 100644 index 0000000..7b05727 Binary files /dev/null and b/backoffice/images/gnb4_off.gif differ diff --git a/backoffice/images/gnb4_on.gif b/backoffice/images/gnb4_on.gif new file mode 100644 index 0000000..fc1a048 Binary files /dev/null and b/backoffice/images/gnb4_on.gif differ diff --git a/backoffice/images/gnb5_off.gif b/backoffice/images/gnb5_off.gif new file mode 100644 index 0000000..4edeb44 Binary files /dev/null and b/backoffice/images/gnb5_off.gif differ diff --git a/backoffice/images/gnb5_on.gif b/backoffice/images/gnb5_on.gif new file mode 100644 index 0000000..c4d2fd9 Binary files /dev/null and b/backoffice/images/gnb5_on.gif differ diff --git a/backoffice/images/gnb6_off.gif b/backoffice/images/gnb6_off.gif new file mode 100644 index 0000000..ed86127 Binary files /dev/null and b/backoffice/images/gnb6_off.gif differ diff --git a/backoffice/images/gnb6_on.gif b/backoffice/images/gnb6_on.gif new file mode 100644 index 0000000..899259f Binary files /dev/null and b/backoffice/images/gnb6_on.gif differ diff --git a/backoffice/images/gnb7_off.gif b/backoffice/images/gnb7_off.gif new file mode 100644 index 0000000..0a618cc Binary files /dev/null and b/backoffice/images/gnb7_off.gif differ diff --git a/backoffice/images/gnb7_on.gif b/backoffice/images/gnb7_on.gif new file mode 100644 index 0000000..d9dd7e5 Binary files /dev/null and b/backoffice/images/gnb7_on.gif differ diff --git a/backoffice/images/gnb8_off.gif b/backoffice/images/gnb8_off.gif new file mode 100644 index 0000000..a4b15e9 Binary files /dev/null and b/backoffice/images/gnb8_off.gif differ diff --git a/backoffice/images/gnb8_on.gif b/backoffice/images/gnb8_on.gif new file mode 100644 index 0000000..2e9984d Binary files /dev/null and b/backoffice/images/gnb8_on.gif differ diff --git a/backoffice/images/gnb9_off.gif b/backoffice/images/gnb9_off.gif new file mode 100644 index 0000000..15fd654 Binary files /dev/null and b/backoffice/images/gnb9_off.gif differ diff --git a/backoffice/images/gnb9_on.gif b/backoffice/images/gnb9_on.gif new file mode 100644 index 0000000..46f1203 Binary files /dev/null and b/backoffice/images/gnb9_on.gif differ diff --git a/backoffice/images/gnb_bg.gif b/backoffice/images/gnb_bg.gif new file mode 100644 index 0000000..8e1dd87 Binary files /dev/null and b/backoffice/images/gnb_bg.gif differ diff --git a/backoffice/images/gnb_vline.gif b/backoffice/images/gnb_vline.gif new file mode 100644 index 0000000..7ad21b6 Binary files /dev/null and b/backoffice/images/gnb_vline.gif differ diff --git a/backoffice/images/gnb_vline_last.gif b/backoffice/images/gnb_vline_last.gif new file mode 100644 index 0000000..f7383ed Binary files /dev/null and b/backoffice/images/gnb_vline_last.gif differ diff --git a/backoffice/images/graph_bg.gif b/backoffice/images/graph_bg.gif new file mode 100644 index 0000000..d18ee77 Binary files /dev/null and b/backoffice/images/graph_bg.gif differ diff --git a/backoffice/images/graph_bg2.gif b/backoffice/images/graph_bg2.gif new file mode 100644 index 0000000..0363dc8 Binary files /dev/null and b/backoffice/images/graph_bg2.gif differ diff --git a/backoffice/images/header_bg.gif b/backoffice/images/header_bg.gif new file mode 100644 index 0000000..5cdbd63 Binary files /dev/null and b/backoffice/images/header_bg.gif differ diff --git a/backoffice/images/k_add.gif b/backoffice/images/k_add.gif new file mode 100644 index 0000000..cb80c90 Binary files /dev/null and b/backoffice/images/k_add.gif differ diff --git a/backoffice/images/k_delete.gif b/backoffice/images/k_delete.gif new file mode 100644 index 0000000..4a05c99 Binary files /dev/null and b/backoffice/images/k_delete.gif differ diff --git a/backoffice/images/k_down.gif b/backoffice/images/k_down.gif new file mode 100644 index 0000000..670ca2b Binary files /dev/null and b/backoffice/images/k_down.gif differ diff --git a/backoffice/images/k_list.gif b/backoffice/images/k_list.gif new file mode 100644 index 0000000..2bdf5aa Binary files /dev/null and b/backoffice/images/k_list.gif differ diff --git a/backoffice/images/k_modify.gif b/backoffice/images/k_modify.gif new file mode 100644 index 0000000..0b02431 Binary files /dev/null and b/backoffice/images/k_modify.gif differ diff --git a/backoffice/images/k_up.gif b/backoffice/images/k_up.gif new file mode 100644 index 0000000..bd19dc3 Binary files /dev/null and b/backoffice/images/k_up.gif differ diff --git a/backoffice/images/left_bg.gif b/backoffice/images/left_bg.gif new file mode 100644 index 0000000..21fa7fd Binary files /dev/null and b/backoffice/images/left_bg.gif differ diff --git a/backoffice/images/left_bg2.gif b/backoffice/images/left_bg2.gif new file mode 100644 index 0000000..b56d425 Binary files /dev/null and b/backoffice/images/left_bg2.gif differ diff --git a/backoffice/images/left_title_bg.jpg b/backoffice/images/left_title_bg.jpg new file mode 100644 index 0000000..a34b923 Binary files /dev/null and b/backoffice/images/left_title_bg.jpg differ diff --git a/backoffice/images/left_title_bg2.gif b/backoffice/images/left_title_bg2.gif new file mode 100644 index 0000000..4a28a0b Binary files /dev/null and b/backoffice/images/left_title_bg2.gif differ diff --git a/backoffice/images/line_dot.gif b/backoffice/images/line_dot.gif new file mode 100644 index 0000000..5dedb66 Binary files /dev/null and b/backoffice/images/line_dot.gif differ diff --git a/backoffice/images/line_dot2.gif b/backoffice/images/line_dot2.gif new file mode 100644 index 0000000..bf78fd2 Binary files /dev/null and b/backoffice/images/line_dot2.gif differ diff --git a/backoffice/images/login_bg.gif b/backoffice/images/login_bg.gif new file mode 100644 index 0000000..616eaf0 Binary files /dev/null and b/backoffice/images/login_bg.gif differ diff --git a/backoffice/images/login_box.png b/backoffice/images/login_box.png new file mode 100644 index 0000000..a21fa67 Binary files /dev/null and b/backoffice/images/login_box.png differ diff --git a/backoffice/images/login_id.gif b/backoffice/images/login_id.gif new file mode 100644 index 0000000..84c7e97 Binary files /dev/null and b/backoffice/images/login_id.gif differ diff --git a/backoffice/images/login_id.png b/backoffice/images/login_id.png new file mode 100644 index 0000000..0ef0079 Binary files /dev/null and b/backoffice/images/login_id.png differ diff --git a/backoffice/images/login_pw.gif b/backoffice/images/login_pw.gif new file mode 100644 index 0000000..c70d0b0 Binary files /dev/null and b/backoffice/images/login_pw.gif differ diff --git a/backoffice/images/login_pw.png b/backoffice/images/login_pw.png new file mode 100644 index 0000000..afff537 Binary files /dev/null and b/backoffice/images/login_pw.png differ diff --git a/backoffice/images/logo_admin.gif b/backoffice/images/logo_admin.gif new file mode 100644 index 0000000..c8ff9de Binary files /dev/null and b/backoffice/images/logo_admin.gif differ diff --git a/backoffice/images/logo_admin.jpg b/backoffice/images/logo_admin.jpg new file mode 100644 index 0000000..ed3361b Binary files /dev/null and b/backoffice/images/logo_admin.jpg differ diff --git a/backoffice/images/logo_website.gif b/backoffice/images/logo_website.gif new file mode 100644 index 0000000..7d54a84 Binary files /dev/null and b/backoffice/images/logo_website.gif differ diff --git a/backoffice/images/logo_website.jpg b/backoffice/images/logo_website.jpg new file mode 100644 index 0000000..f6b14f7 Binary files /dev/null and b/backoffice/images/logo_website.jpg differ diff --git a/backoffice/images/mail_send.jpg b/backoffice/images/mail_send.jpg new file mode 100644 index 0000000..0aca564 Binary files /dev/null and b/backoffice/images/mail_send.jpg differ diff --git a/backoffice/images/pop_logo.gif b/backoffice/images/pop_logo.gif new file mode 100644 index 0000000..1d2ddd0 Binary files /dev/null and b/backoffice/images/pop_logo.gif differ diff --git a/backoffice/images/popup_temp1.jpg b/backoffice/images/popup_temp1.jpg new file mode 100644 index 0000000..dd9df43 Binary files /dev/null and b/backoffice/images/popup_temp1.jpg differ diff --git a/backoffice/images/popup_temp10.jpg b/backoffice/images/popup_temp10.jpg new file mode 100644 index 0000000..d6a30d1 Binary files /dev/null and b/backoffice/images/popup_temp10.jpg differ diff --git a/backoffice/images/popup_temp2.jpg b/backoffice/images/popup_temp2.jpg new file mode 100644 index 0000000..c3e8f98 Binary files /dev/null and b/backoffice/images/popup_temp2.jpg differ diff --git a/backoffice/images/popup_temp3.jpg b/backoffice/images/popup_temp3.jpg new file mode 100644 index 0000000..83ee420 Binary files /dev/null and b/backoffice/images/popup_temp3.jpg differ diff --git a/backoffice/images/popup_temp4.jpg b/backoffice/images/popup_temp4.jpg new file mode 100644 index 0000000..9bb0076 Binary files /dev/null and b/backoffice/images/popup_temp4.jpg differ diff --git a/backoffice/images/popup_temp5.jpg b/backoffice/images/popup_temp5.jpg new file mode 100644 index 0000000..8fe217b Binary files /dev/null and b/backoffice/images/popup_temp5.jpg differ diff --git a/backoffice/images/popup_temp6.jpg b/backoffice/images/popup_temp6.jpg new file mode 100644 index 0000000..bbe673a Binary files /dev/null and b/backoffice/images/popup_temp6.jpg differ diff --git a/backoffice/images/popup_temp7.jpg b/backoffice/images/popup_temp7.jpg new file mode 100644 index 0000000..c1951ee Binary files /dev/null and b/backoffice/images/popup_temp7.jpg differ diff --git a/backoffice/images/popup_temp8.jpg b/backoffice/images/popup_temp8.jpg new file mode 100644 index 0000000..cc1764f Binary files /dev/null and b/backoffice/images/popup_temp8.jpg differ diff --git a/backoffice/images/popup_temp9.jpg b/backoffice/images/popup_temp9.jpg new file mode 100644 index 0000000..4c1a4e0 Binary files /dev/null and b/backoffice/images/popup_temp9.jpg differ diff --git a/backoffice/images/sms_send.jpg b/backoffice/images/sms_send.jpg new file mode 100644 index 0000000..db73284 Binary files /dev/null and b/backoffice/images/sms_send.jpg differ diff --git a/backoffice/images/tab_bg.gif b/backoffice/images/tab_bg.gif new file mode 100644 index 0000000..dbfeabc Binary files /dev/null and b/backoffice/images/tab_bg.gif differ diff --git a/backoffice/images/tab_underline.gif b/backoffice/images/tab_underline.gif new file mode 100644 index 0000000..0bbf897 Binary files /dev/null and b/backoffice/images/tab_underline.gif differ diff --git a/backoffice/images/top.png b/backoffice/images/top.png new file mode 100644 index 0000000..cc94249 Binary files /dev/null and b/backoffice/images/top.png differ diff --git a/backoffice/images/top_bg.gif b/backoffice/images/top_bg.gif new file mode 100644 index 0000000..e9e8021 Binary files /dev/null and b/backoffice/images/top_bg.gif differ diff --git a/backoffice/images/top_m1.gif b/backoffice/images/top_m1.gif new file mode 100644 index 0000000..35962fc Binary files /dev/null and b/backoffice/images/top_m1.gif differ diff --git a/backoffice/images/top_m2.gif b/backoffice/images/top_m2.gif new file mode 100644 index 0000000..09e212f Binary files /dev/null and b/backoffice/images/top_m2.gif differ diff --git a/backoffice/images/top_m3.gif b/backoffice/images/top_m3.gif new file mode 100644 index 0000000..ac866b2 Binary files /dev/null and b/backoffice/images/top_m3.gif differ diff --git a/backoffice/images/top_m4.gif b/backoffice/images/top_m4.gif new file mode 100644 index 0000000..91ecc1d Binary files /dev/null and b/backoffice/images/top_m4.gif differ diff --git a/backoffice/images/topmenu1.gif b/backoffice/images/topmenu1.gif new file mode 100644 index 0000000..a1379be Binary files /dev/null and b/backoffice/images/topmenu1.gif differ diff --git a/backoffice/images/topmenu2.gif b/backoffice/images/topmenu2.gif new file mode 100644 index 0000000..14b1324 Binary files /dev/null and b/backoffice/images/topmenu2.gif differ diff --git a/backoffice/index.php b/backoffice/index.php new file mode 100644 index 0000000..28577c3 --- /dev/null +++ b/backoffice/index.php @@ -0,0 +1,471 @@ + 0): +for ($i=0;$i<$arrOneMiList['list']['total'];$i++) { + $sql = "insert into tbl_board_admin_tmp values ('one', '/backoffice/module/one_to_one/one_to_one_info.php?idx=','".$arrOneMiList['list'][$i]['idx']."','".$arrOneMiList['list'][$i]['subject']."','".$arrOneMiList['list'][$i]['wdate']."');"; + $rs = mysql_query($sql, $GLOBALS[dblink]); +} +endif; +//1:1 미답변 끝 + +//qna 미답변 시작 +$arrQnaMiList = getBoardListMiQna("qna", "", "", "", "4", 0); +if($arrQnaMiList['list']['total'] > 0): +for ($i=0;$i<$arrQnaMiList['list']['total'];$i++) { + $sql = "insert into tbl_board_admin_tmp values ('qna', '/backoffice/module/board/board_view.php?boardid=qna&mode=view&idx=','".$arrQnaMiList['list'][$i]['idx']."','".$arrQnaMiList['list'][$i]['subject']."','".$arrQnaMiList['list'][$i]['wdate']."');"; + $rs = mysql_query($sql, $GLOBALS[dblink]); +} +endif; +//qna 미답변 끝 + + +$arrMiList = getListByTbl("tbl_board_admin_tmp", " order by wdate desc"); //미답변게시판 +*/ + +if(!$_REQUEST[cal_date]){ + $cal_date = date("Y-m-d"); +}else{ + $cal_date = $_REQUEST[cal_date]; +} +//날짜를 - 구분자로 배열로 만듬 +$arrDate = explode("-",$cal_date); + +$arrSolarCalendar = getDiarySet(intval($arrDate[0]), intval($arrDate[1]), intval($arrDate[2])); +$arrBoardList = getBoardListSchedule("schedule", $arrSolarCalendar[first_before], $arrSolarCalendar[last_after]); + +//DB해제 +//SetDisConn($dblink); +?> + +
+ + +
+ + + + +
+
+
+

기본설정

+ +
+ + + + +
+ +
+ +

관리자메인

+ +
+ +
+
+ +
+ + +
+ + + +
+ +
+
+ + + + + + +
+

+ 일정등록 + 2014년 07월 10일 (목) +

+
+ 일정 등록 폼 + + + + + + + + + + + + + + + +
제목
내용
+
+
+
+ + 삭제 +
+
+ +
+
+
+ + + + +
+
+ +
+
+ + + +
+ + + + + + + + + + + + + + + + + $val){ + $tdclass[$i][$j] .=" schedule-on"; + } + } else { + $tdclass[$i][$j] .=""; + } + ?> + + + + + +
SUNMONTUEWEDTHUFRISAT
" style="cursor:pointer;">
+
+
+
+
+
+ +

쇼핑몰 현황

+ + + + + + + + + + + + + + + + + + + > + + + + + + + + + + + + + + + + + + + +
날짜매출액주문건수입금대기입금확인배송중거래완료
합계
+
+ + + +

+ +
+ 0){ + for ($i=0;$i<$arrList['list']['total'];$i++) { + $arrBoardList = getBoardListBase($arrList['list'][$i]['boardid'], "", "", "", "4", 0); //공지사항 + ?> +
+
+

+ +
+
+
"; + } + }} + ?> +
+ +
+
+ + diff --git a/backoffice/js/jquery-1.8.2.min.js b/backoffice/js/jquery-1.8.2.min.js new file mode 100644 index 0000000..bc3fbc8 --- /dev/null +++ b/backoffice/js/jquery-1.8.2.min.js @@ -0,0 +1,2 @@ +/*! jQuery v1.8.2 jquery.com | jquery.org/license */ +(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bS[a]=c,c}function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.2",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return a!=null?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b
a",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="
t
",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="
",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||p.guid++:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.length,e=c.shift(),f=p._queueHooks(a,b),g=function(){p.dequeue(a,b)};e==="inprogress"&&(e=c.shift(),d--),e&&(b==="fx"&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c=0)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c=0)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,d+""),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j=0:p.find(m,this,null,[f]).length),h[m]&&j.push(l);j.length&&u.push({elem:f,matches:j})}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bc(a,b,c,d){c=c||[],b=b||r;var e,f,i,j,k=b.nodeType;if(!a||typeof a!="string")return c;if(k!==1&&k!==9)return[];i=g(b);if(!i&&!d)if(e=P.exec(a))if(j=e[1]){if(k===9){f=b.getElementById(j);if(!f||!f.parentNode)return c;if(f.id===j)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(j))&&h(b,f)&&f.id===j)return c.push(f),c}else{if(e[2])return w.apply(c,x.call(b.getElementsByTagName(a),0)),c;if((j=e[3])&&_&&b.getElementsByClassName)return w.apply(c,x.call(b.getElementsByClassName(j),0)),c}return bp(a.replace(L,"$1"),b,c,d,i)}function bd(a){return function(b){var c=b.nodeName.toLowerCase();return c==="input"&&b.type===a}}function be(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}}function bf(a){return z(function(b){return b=+b,z(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function bg(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}function bh(a,b){var c,d,f,g,h,i,j,k=C[o][a];if(k)return b?0:k.slice(0);h=a,i=[],j=e.preFilter;while(h){if(!c||(d=M.exec(h)))d&&(h=h.slice(d[0].length)),i.push(f=[]);c=!1;if(d=N.exec(h))f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=d[0].replace(L," ");for(g in e.filter)(d=W[g].exec(h))&&(!j[g]||(d=j[g](d,r,!0)))&&(f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=g,c.matches=d);if(!c)break}return b?h.length:h?bc.error(a):C(a,i).slice(0)}function bi(a,b,d){var e=b.dir,f=d&&b.dir==="parentNode",g=u++;return b.first?function(b,c,d){while(b=b[e])if(f||b.nodeType===1)return a(b,c,d)}:function(b,d,h){if(!h){var i,j=t+" "+g+" ",k=j+c;while(b=b[e])if(f||b.nodeType===1){if((i=b[o])===k)return b.sizset;if(typeof i=="string"&&i.indexOf(j)===0){if(b.sizset)return b}else{b[o]=k;if(a(b,d,h))return b.sizset=!0,b;b.sizset=!1}}}else while(b=b[e])if(f||b.nodeType===1)if(a(b,d,h))return b}}function bj(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function bk(a,b,c,d,e){var f,g=[],h=0,i=a.length,j=b!=null;for(;h-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==l)||((b=c).nodeType?j(a,c,d):k(a,c,d))}];for(;i1&&bj(m),i>1&&a.slice(0,i-1).join("").replace(L,"$1"),c,i0,f=a.length>0,g=function(h,i,j,k,m){var n,o,p,q=[],s=0,u="0",x=h&&[],y=m!=null,z=l,A=h||f&&e.find.TAG("*",m&&i.parentNode||i),B=t+=z==null?1:Math.E;y&&(l=i!==r&&i,c=g.el);for(;(n=A[u])!=null;u++){if(f&&n){for(o=0;p=a[o];o++)if(p(n,i,j)){k.push(n);break}y&&(t=B,c=++g.el)}d&&((n=!p&&n)&&s--,h&&x.push(n))}s+=u;if(d&&u!==s){for(o=0;p=b[o];o++)p(x,q,i,j);if(h){if(s>0)while(u--)!x[u]&&!q[u]&&(q[u]=v.call(k));q=bk(q)}w.apply(k,q),y&&!h&&q.length>0&&s+b.length>1&&bc.uniqueSort(k)}return y&&(t=B,l=z),x};return g.el=0,d?z(g):g}function bo(a,b,c,d){var e=0,f=b.length;for(;e2&&(j=h[0]).type==="ID"&&b.nodeType===9&&!f&&e.relative[h[1].type]){b=e.find.ID(j.matches[0].replace(V,""),b,f)[0];if(!b)return c;a=a.slice(h.shift().length)}for(g=W.POS.test(a)?-1:h.length-1;g>=0;g--){j=h[g];if(e.relative[k=j.type])break;if(l=e.find[k])if(d=l(j.matches[0].replace(V,""),R.test(h[0].type)&&b.parentNode||b,f)){h.splice(g,1),a=d.length&&h.join("");if(!a)return w.apply(c,x.call(d,0)),c;break}}}return i(a,m)(d,b,f,c,R.test(a)),c}function bq(){}var c,d,e,f,g,h,i,j,k,l,m=!0,n="undefined",o=("sizcache"+Math.random()).replace(".",""),q=String,r=a.document,s=r.documentElement,t=0,u=0,v=[].pop,w=[].push,x=[].slice,y=[].indexOf||function(a){var b=0,c=this.length;for(;be.cacheLength&&delete a[b.shift()],a[c]=d},a)},B=A(),C=A(),D=A(),E="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",G=F.replace("w","w#"),H="([*^$|!~]?=)",I="\\["+E+"*("+F+")"+E+"*(?:"+H+E+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+G+")|)|)"+E+"*\\]",J=":("+F+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+I+")|[^:]|\\\\.)*|.*))\\)|)",K=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+E+"*((?:-\\d)?\\d*)"+E+"*\\)|)(?=[^-]|$)",L=new RegExp("^"+E+"+|((?:^|[^\\\\])(?:\\\\.)*)"+E+"+$","g"),M=new RegExp("^"+E+"*,"+E+"*"),N=new RegExp("^"+E+"*([\\x20\\t\\r\\n\\f>+~])"+E+"*"),O=new RegExp(J),P=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,Q=/^:not/,R=/[\x20\t\r\n\f]*[+~]/,S=/:not\($/,T=/h\d/i,U=/input|select|textarea|button/i,V=/\\(?!\\)/g,W={ID:new RegExp("^#("+F+")"),CLASS:new RegExp("^\\.("+F+")"),NAME:new RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:new RegExp("^("+F.replace("w","w*")+")"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+J),POS:new RegExp(K,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+E+"*(even|odd|(([+-]|)(\\d*)n|)"+E+"*(?:([+-]|)"+E+"*(\\d+)|))"+E+"*\\)|)","i"),needsContext:new RegExp("^"+E+"*[>+~]|"+K,"i")},X=function(a){var b=r.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}},Y=X(function(a){return a.appendChild(r.createComment("")),!a.getElementsByTagName("*").length}),Z=X(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==n&&a.firstChild.getAttribute("href")==="#"}),$=X(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),_=X(function(a){return a.innerHTML="",!a.getElementsByClassName||!a.getElementsByClassName("e").length?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length===2)}),ba=X(function(a){a.id=o+0,a.innerHTML="
",s.insertBefore(a,s.firstChild);var b=r.getElementsByName&&r.getElementsByName(o).length===2+r.getElementsByName(o+0).length;return d=!r.getElementById(o),s.removeChild(a),b});try{x.call(s.childNodes,0)[0].nodeType}catch(bb){x=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}bc.matches=function(a,b){return bc(a,null,null,b)},bc.matchesSelector=function(a,b){return bc(b,null,null,[a]).length>0},f=bc.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=f(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=f(b);return c},g=bc.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},h=bc.contains=s.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:s.compareDocumentPosition?function(a,b){return b&&!!(a.compareDocumentPosition(b)&16)}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc.attr=function(a,b){var c,d=g(a);return d||(b=b.toLowerCase()),(c=e.attrHandle[b])?c(a):d||$?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},e=bc.selectors={cacheLength:50,createPseudo:z,match:W,attrHandle:Z?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},find:{ID:d?function(a,b,c){if(typeof b.getElementById!==n&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==n&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==n&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:Y?function(a,b){if(typeof b.getElementsByTagName!==n)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c},NAME:ba&&function(a,b){if(typeof b.getElementsByName!==n)return b.getElementsByName(name)},CLASS:_&&function(a,b,c){if(typeof b.getElementsByClassName!==n&&!c)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(V,""),a[3]=(a[4]||a[5]||"").replace(V,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||bc.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&bc.error(a[0]),a},PSEUDO:function(a){var b,c;if(W.CHILD.test(a[0]))return null;if(a[3])a[2]=a[3];else if(b=a[4])O.test(b)&&(c=bh(b,!0))&&(c=b.indexOf(")",b.length-c)-b.length)&&(b=b.slice(0,c),a[0]=a[0].slice(0,c)),a[2]=b;return a.slice(0,3)}},filter:{ID:d?function(a){return a=a.replace(V,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(V,""),function(b){var c=typeof b.getAttributeNode!==n&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(V,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=B[o][a];return b||(b=B(a,new RegExp("(^|"+E+")"+a+"("+E+"|$)"))),function(a){return b.test(a.className||typeof a.getAttribute!==n&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return function(d,e){var f=bc.attr(d,a);return f==null?b==="!=":b?(f+="",b==="="?f===c:b==="!="?f!==c:b==="^="?c&&f.indexOf(c)===0:b==="*="?c&&f.indexOf(c)>-1:b==="$="?c&&f.substr(f.length-c.length)===c:b==="~="?(" "+f+" ").indexOf(c)>-1:b==="|="?f===c||f.substr(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d){return a==="nth"?function(a){var b,e,f=a.parentNode;if(c===1&&d===0)return!0;if(f){e=0;for(b=f.firstChild;b;b=b.nextSibling)if(b.nodeType===1){e++;if(a===b)break}}return e-=d,e===c||e%c===0&&e/c>=0}:function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b){var c,d=e.pseudos[a]||e.setFilters[a.toLowerCase()]||bc.error("unsupported pseudo: "+a);return d[o]?d(b):d.length>1?(c=[a,a,"",b],e.setFilters.hasOwnProperty(a.toLowerCase())?z(function(a,c){var e,f=d(a,b),g=f.length;while(g--)e=y.call(a,f[g]),a[e]=!(c[e]=f[g])}):function(a){return d(a,0,c)}):d}},pseudos:{not:z(function(a){var b=[],c=[],d=i(a.replace(L,"$1"));return d[o]?z(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)if(f=g[h])a[h]=!(b[h]=f)}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:z(function(a){return function(b){return bc(a,b).length>0}}),contains:z(function(a){return function(b){return(b.textContent||b.innerText||f(b)).indexOf(a)>-1}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!e.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},header:function(a){return T.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:bd("radio"),checkbox:bd("checkbox"),file:bd("file"),password:bd("password"),image:bd("image"),submit:be("submit"),reset:be("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return U.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement},first:bf(function(a,b,c){return[0]}),last:bf(function(a,b,c){return[b-1]}),eq:bf(function(a,b,c){return[c<0?c+b:c]}),even:bf(function(a,b,c){for(var d=0;d=0;)a.push(d);return a}),gt:bf(function(a,b,c){for(var d=c<0?c+b:c;++d",a.querySelectorAll("[selected]").length||e.push("\\["+E+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),X(function(a){a.innerHTML="

",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+E+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=new RegExp(e.join("|")),bp=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a))){var i,j,k=!0,l=o,m=d,n=d.nodeType===9&&a;if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){i=bh(a),(k=d.getAttribute("id"))?l=k.replace(c,"\\$&"):d.setAttribute("id",l),l="[id='"+l+"'] ",j=i.length;while(j--)i[j]=l+i[j].join("");m=R.test(a)&&d.parentNode||d,n=i.join(",")}if(n)try{return w.apply(f,x.call(m.querySelectorAll(n),0)),f}catch(p){}finally{k||d.removeAttribute("id")}}return b(a,d,f,g,h)},h&&(X(function(b){a=h.call(b,"div");try{h.call(b,"[test!='']:sizzle"),f.push("!=",J)}catch(c){}}),f=new RegExp(f.join("|")),bc.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!g(b)&&!f.test(c)&&(!e||!e.test(c)))try{var i=h.call(b,c);if(i||a||b.document&&b.document.nodeType!==11)return i}catch(j){}return bc(c,null,null,[b]).length>0})}(),e.pseudos.nth=e.pseudos.eq,e.filters=bq.prototype=e.pseudos,e.setFilters=new bq,bc.attr=p.attr,p.find=bc,p.expr=bc.selectors,p.expr[":"]=p.expr.pseudos,p.unique=bc.uniqueSort,p.text=bc.getText,p.isXMLDoc=bc.isXML,p.contains=bc.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X
","
"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=b===e&&bA,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(f=0;(h=a[f])!=null;f++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{s=s||bk(b),l=b.createElement("div"),s.appendChild(l),h=h.replace(bo,"<$1>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(g=n.length-1;g>=0;--g)p.nodeName(n[g],"tbody")&&!n[g].childNodes.length&&n[g].parentNode.removeChild(n[g])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l.parentNode.removeChild(l)}h.nodeType?t.push(h):p.merge(t,h)}l&&(h=l=s=null);if(!p.support.appendChecked)for(f=0;(h=t[f])!=null;f++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(f=0;(h=t[f])!=null;f++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[f+1,0].concat(r)),f+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^(none|table(?!-c[ea]).+)/,bO=/^margin/,bP=new RegExp("^("+q+")(.*)$","i"),bQ=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bR=new RegExp("^([-+])=("+q+")","i"),bS={},bT={position:"absolute",visibility:"hidden",display:"block"},bU={letterSpacing:0,fontWeight:400},bV=["Top","Right","Bottom","Left"],bW=["Webkit","O","Moz","ms"],bX=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return b$(this,!0)},hide:function(){return b$(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bX.apply(this,arguments):this.each(function(){(c?a:bZ(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bY(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bR.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bY(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bU&&(f=bU[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(b,c){var d,e,f,g,h=a.getComputedStyle(b,null),i=b.style;return h&&(d=h[c],d===""&&!p.contains(b.ownerDocument,b)&&(d=p.style(b,c)),bQ.test(d)&&bO.test(c)&&(e=i.width,f=i.minWidth,g=i.maxWidth,i.minWidth=i.maxWidth=i.width=d,d=h.width,i.width=e,i.minWidth=f,i.maxWidth=g)),d}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bQ.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth===0&&bN.test(bH(a,"display"))?p.swap(a,bT,function(){return cb(a,b,d)}):cb(a,b,d)},set:function(a,c,d){return b_(a,c,d?ca(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bQ.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bV[d]+b]=e[d]||e[d-2]||e[0];return f}},bO.test(a)||(p.cssHooks[a+b].set=b_)});var cd=/%20/g,ce=/\[\]$/,cf=/\r?\n/g,cg=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ch=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ch.test(this.nodeName)||cg.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(cf,"\r\n")}}):{name:b.name,value:c.replace(cf,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ci(d,a[d],c,f);return e.join("&").replace(cd,"+")};var cj,ck,cl=/#.*$/,cm=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,co=/^(?:GET|HEAD)$/,cp=/^\/\//,cq=/\?/,cr=/)<[^<]*)*<\/script>/gi,cs=/([?&])_=[^&]*/,ct=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,cu=p.fn.load,cv={},cw={},cx=["*/"]+["*"];try{ck=f.href}catch(cy){ck=e.createElement("a"),ck.href="",ck=ck.href}cj=ct.exec(ck.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&cu)return cu.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):c&&typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("
").append(a.replace(cr,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cB(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cB(a,b),a},ajaxSettings:{url:ck,isLocal:cn.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cx},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cz(cv),ajaxTransport:cz(cw),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cC(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cD(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=(c||y)+"",k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cm.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(cl,"").replace(cp,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=ct.exec(l.url.toLowerCase())||!1,l.crossDomain=i&&i.join(":")+(i[3]?"":i[1]==="http:"?80:443)!==cj.join(":")+(cj[3]?"":cj[1]==="http:"?80:443)),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cA(cv,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!co.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cq.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cs,"$1_="+z);l.url=A+(A===l.url?(cq.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cx+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cA(cw,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cE=[],cF=/\?/,cG=/(=)\?(?=&|$)|\?\?/,cH=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cE.pop()||p.expando+"_"+cH++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cG.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cG.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cG,"$1"+f):m?c.data=i.replace(cG,"$1"+f):k&&(c.url+=(cF.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cE.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cI,cJ=a.ActiveXObject?function(){for(var a in cI)cI[a](0,1)}:!1,cK=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cL()||cM()}:cL,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cJ&&delete cI[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cK,cJ&&(cI||(cI={},p(a).unload(cJ)),cI[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cN,cO,cP=/^(?:toggle|show|hide)$/,cQ=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cR=/queueHooks$/,cS=[cY],cT={"*":[function(a,b){var c,d,e=this.createTween(a,b),f=cQ.exec(b),g=e.cur(),h=+g||0,i=1,j=20;if(f){c=+f[2],d=f[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&h){h=p.css(e.elem,a,!0)||c||1;do i=i||".5",h=h/i,p.style(e.elem,a,h+d);while(i!==(i=e.cur()/g)&&i!==1&&--j)}e.unit=d,e.start=h,e.end=f[1]?h+(f[1]+1)*c:c}return e}]};p.Animation=p.extend(cW,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c_.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c_.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=da(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g,null)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file diff --git a/backoffice/js/myjs.js b/backoffice/js/myjs.js new file mode 100644 index 0000000..0b53f4c --- /dev/null +++ b/backoffice/js/myjs.js @@ -0,0 +1,38 @@ + +jQuery(document).ready(function(){ + // 콺 ̹ ȯ + jQuery("img.rollover").mouseover(function(){ + jQuery(this).attr("src",jQuery(this).attr("src").replace(/^(.+)_off(\.[a-z]+)$/, "$1_on$2")); + }).mouseout(function(){ + jQuery(this).attr("src",jQuery(this).attr("src").replace(/^(.+)_on(\.[a-z]+)$/, "$1_off$2")); + }); + + // + jQuery(".tab_content").hide(); + jQuery("ul.tabe>li:first").addClass("active").show(); + jQuery(".tab_content:first").show(); + + jQuery("ul.tabe>li").click(function(e) { + e.preventDefault(); + + jQuery("ul.tabe>li").removeClass("active"); + jQuery(this).addClass("active"); + jQuery(".tab_content").hide(); + + jQuery("ul.tabe>li").find('img').attr("src" ,function(iIndex,sSrc){ + return sSrc.replace('_on.gif', '_off.gif'); + }); + + jQuery("ul.tabe>li.active").find('img').attr("src",function(iIndex,sSrc){ + return sSrc.replace('_off.gif', '_on.gif'); + }); + + var activeTab = jQuery(this).find("a").attr("href"); + jQuery(activeTab).fadeIn(); + return false; + }); + + + + +});//end \ No newline at end of file diff --git a/backoffice/mailsms.php b/backoffice/mailsms.php new file mode 100644 index 0000000..578e3e5 --- /dev/null +++ b/backoffice/mailsms.php @@ -0,0 +1,14 @@ + +
+ +
+ \ No newline at end of file diff --git a/backoffice/mailsms1.php b/backoffice/mailsms1.php new file mode 100644 index 0000000..8588bb8 --- /dev/null +++ b/backoffice/mailsms1.php @@ -0,0 +1,195 @@ + +
+
+

메일,문자 발송

+ + +
+
+

문자/메일 충전

+
+ 웹사이트 문자/ 메일 발송시스템은 문자(SMS,LMS,MMS), 이메일등 각 항목별 발송에 필요한 건수를 아래에서 충전할 수 있습니다.
+ 충전은 무통장 입금으로만 가능하며, 입금후 10분이내에 충전 됩니다.
+ 문자발송 방식중 SMS는 단문(80byte이내)문자, LMS는 한글 1,000자까지 입력, MMS는 한글 1,000자+이미지 첨부가 가능합니다. +
+
+

충전방법

+
    + +
  • 1. 필요한 항목을 선택한 후 요청버튼을 클릭합니다.
  • +
  • 2. 선택항목의 해당 금액을 지정계좌로 입금합니다. 충전요청 팝업창 비고란에 입금자명을 꼭 기입해 주시기 바랍니다.
    + <입금계좌 : 국민은행 465101-01-164345 전경훈(웹사이트)>
  • +
  • 3. 계좌입금후 10분후에 확인하여 사용하실 수 있습니다.(페이지 새로고침(F5)후 사용)
  • +
  • 4. 세금계산서가 필요한 경우 사업자 등록증에 전자세금계산서를 받을 이메일 주소를 기재하여 팩스로 보내주시면 됩니다. (TEL : 1588-5241 / FAX : 02-512-4959 / 담당 : 유서린 대리)
    + ※기존 거래고객은 입금과 동시에 기존 입력정보로 전자세금계산서가 발행됩니다.(사업자등록증 전송 불필요)
    + ※기존 거래 고객중 변경사항이 있으신 고객님은 충전요청창 비고란에 변경사항이나 요청사항을 기입해 주시기 바랍니다.
  • +
+
+ +
+
+
(VAT포함)
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
문자
발송종류건당 금액금액건수선택
SMS 충전
+ (단문문자)
17.5원~22원5,500원250건
11,000원530건
22,000원1,150건
55,000원3,150건
LMS 충전
+ (한글 1,000자까지 입력)
57.9원~61.1원5,500원90건
11,000원190건
MMS 충전
+ (한글 1,000자+이미지 입력)
250원~278원5,500원18건
11,000원40건
+ +
(VAT포함)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
이메일
발송종류건당 금액금액건수선택
E-mail
+ (이메일)
2.8원~4.2원5,500원1,300건
11,000원3,000건
22,000원7,000건
55,000원20,000건
+
+
+ +
+
+ +
+
+
+ + + \ No newline at end of file diff --git a/backoffice/mailsms2.php b/backoffice/mailsms2.php new file mode 100644 index 0000000..e520f9b --- /dev/null +++ b/backoffice/mailsms2.php @@ -0,0 +1,37 @@ + + + +
+
+

메일,문자 발송

+ + +
+
+

문자/메일 발송

+
+ 문자와 메일은 자동메일/ 자동문자 포함해서 성공건수에 따라 차감되며, 최초 입력된 서비스건(문자 200건, 메일 500건)이 소진된 후에는 문자/메일 충전 메뉴에서 충전해서 사용하실 수 있습니다.
+ 웹사이트 문자/ 메일 발송 시스템은 아래에서 SMS, LMS, MMS, 이메일, 단체문자, 단체메일을 선택하여 발송할 수 있습니다.
+ 발송건수가 소진되면 발송이 되지 않으니, 그 전에 충전해서 사용해 주시기 바랍니다. + + +
+
+ +
+
+
+ \ No newline at end of file diff --git a/backoffice/mailsms3.php b/backoffice/mailsms3.php new file mode 100644 index 0000000..d95eb28 --- /dev/null +++ b/backoffice/mailsms3.php @@ -0,0 +1,124 @@ +xml_load_file($file); + } + } + + $file = "http://intra.website.co.kr:9470/mailsms_list_xml.php?user_id=".$_SITE["POSTMAN_ID"]."&s_date=".$_REQUEST[s_date]."&e_date=".$_REQUEST[e_date]."&scale=".$scale."&offset=".$offset; + $sxml = new simplexml; + $xml = $sxml->xml_load_file($file); + +} else { + + $xml_string = file_get_contents("http://intra.website.co.kr:9470/mailsms_list_xml.php?user_id=".$_SITE["POSTMAN_ID"]."&s_date=".$_REQUEST[s_date]."&e_date=".$_REQUEST[e_date]."&scale=".$scale."&offset=".$offset); + $enc = mb_detect_encoding($xml_string, array('EUC-KR', 'UTF-8', 'shift_jis', 'CN-GB')); + if($enc != 'UTF-8'){ + $xml_string = iconv($enc, 'UTF-8', $xml_string); //본인 사이트에 맞는 인코딩으로 변경 + } + $xml = simplexml_load_string($xml_string); + +} +?> +
+
+

메일,문자 발송

+ + +
+
+

충전 결과

+
+ 문자와 메일은 충전현황은 요청건별/ 월별 리스트로 확인할 수 있으며, 요청결과에 완료표기가 됩니다. +
+
+
+ +
총 충전금액 : totalprice)?>원(VAT포함)
+
+ + + + + + + + + + + + + + + + + + + + + + + totallist > 0) { + if($xml->totallist<10) { + $total = $xml->totallist; + } else { + $total = 10; + } + for($i=0; $i<$total; $i++) { + + if($xml->item[$i]->msgb=="SMS") { + $bgcolor = "#0a87a6"; + } else if($xml->item[$i]->msgb=="MMS") { + $bgcolor = "#cb36b1"; + } else if($xml->item[$i]->msgb=="LMS") { + $bgcolor = "#4ca00f"; + } else { + $bgcolor = "#000000"; + } + ?> + + + + + + + + + + + + + + + +
날짜충전내용건수금액요청결과충전완료일자
item[$i]->wdate?>item[$i]->msgb?> 충전item[$i]->pea)?>건item[$i]->price)?>원item[$i]->bank=="Y"?"충전완료":"요청중"?>item[$i]->cdate,0,10)=="0000-00-00"?"-":$xml->item[$i]->cdate?>
등록된 정보가 없습니다.
+
+ total,$scale,$pagescale,$offset,"user_idx=".$_SITE["POSTMAN_ID"]."&s_date=".$_REQUEST[s_date]."&e_date=".$_REQUEST[e_date])?> +
+
+
+
+ \ No newline at end of file diff --git a/backoffice/module/admin/admin.lib.php b/backoffice/module/admin/admin.lib.php new file mode 100644 index 0000000..728296f --- /dev/null +++ b/backoffice/module/admin/admin.lib.php @@ -0,0 +1,431 @@ + 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//관리자 등록 +function inputAdmin(){ + $sql = "insert into ".$GLOBALS["_conf_tbl"]["admin"]." SET + a_id= '".mysql_real_escape_string($_POST[id])."', + a_grade = 'ADMIN', + a_date = now() + "; + + $rsf = mysql_query($sql,$GLOBALS[dblink]); + + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($total > 0){ + return true; + }else{ + return false; + } +} + +//관리자 수정 +function updateAdmin($idx){ + //접근권한 + for($i=0; $i < count($_POST[a_auth]); $i++){ + $str_a_auth .= $_POST[a_auth][$i]; + if($i != count($_POST[a_auth])-1){ + $str_a_auth .= ","; + } + } + + $sql = "UPDATE ".$GLOBALS["_conf_tbl"]["admin"]." SET + a_pw= '".mysql_real_escape_string($_POST[a_pw])."', + a_name= '".mysql_real_escape_string($_POST[a_name])."', + a_class= '".mysql_real_escape_string($_POST[a_class])."', + a_phone= '".mysql_real_escape_string($_POST[a_phone])."', + a_email= '".mysql_real_escape_string($_POST[a_email])."', + a_grade= '".mysql_real_escape_string($_POST[a_grade])."', + a_auth= '".$str_a_auth."' + WHERE idx = '$idx' + "; + + $rsf = mysql_query($sql,$GLOBALS[dblink]); + + if($rsf){ + return true; + }else{ + return false; + } +} + +//관리자 수정 +function updateAdminAuth(){ + $tbl = $GLOBALS["_conf_tbl"]["admin_menu_code"]; + + $sql = "UPDATE ".$tbl." SET is_use = 'N' "; + $rsf = mysql_query($sql,$GLOBALS[dblink]); + //접근권한 + for($i=0; $i < count($_POST[a_auth]); $i++){ + /* + $str_a_auth .= $_POST[a_auth][$i]; + if($i != count($_POST[a_auth])-1){ + $str_a_auth .= ","; + } + echo $str_a_auth; + */ + $sql = "UPDATE ".$tbl." SET is_use = 'Y' where m_code = '".$_POST[a_auth][$i]."'"; + $rsf = mysql_query($sql,$GLOBALS[dblink]); + } + /* + $sql = "UPDATE ".$tbl." SET + a_pw= '".mysql_real_escape_string($_POST[a_pw])."', + a_name= '".mysql_real_escape_string($_POST[a_name])."', + a_class= '".mysql_real_escape_string($_POST[a_class])."', + a_phone= '".mysql_real_escape_string($_POST[a_phone])."', + a_email= '".mysql_real_escape_string($_POST[a_email])."', + a_grade= '".mysql_real_escape_string($_POST[a_grade])."', + a_auth= '".$str_a_auth."' + WHERE idx = '$idx' + "; + + $rsf = mysql_query($sql,$GLOBALS[dblink]); + */ + if($rsf){ + return true; + }else{ + return false; + } +} + +//관리자파일 삭제 +function deleteAdmin($idx){ + $sql = "DELETE FROM ".$GLOBALS["_conf_tbl"]["admin"]." WHERE idx = '$idx' "; + $rsf = mysql_query($sql,$GLOBALS[dblink]); + + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($total > 0){ + return true; + }else{ + return false; + } +} + +//관리자 로그인 로그 기록하기 +function setAdminLoginLog($id,$login){ + $sql = "INSERT INTO tbl_admin_login_log SET "; + $sql .= "a_id = '$id', "; + $sql .= "a_ip = '".$_SERVER[REMOTE_ADDR]."', "; + $sql .= "a_login = '".$login."', "; + $sql .= "a_date = now() "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_affected_rows($GLOBALS[dblink]); + + return $total_rs; +} + +//관리자 정보 가져오기 +function getAdminMenu(){ + $sql = "SELECT * "; + $sql .= "FROM ".$GLOBALS["_conf_tbl"]["admin_menu_code"]." "; + $sql .= "WHERE is_use = 'Y' order by m_name "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//관리자 정보 가져오기 +function getAdminMenu1(){ + $sql = "SELECT * "; + $sql .= "FROM ".$GLOBALS["_conf_tbl"]["admin_menu_code"]." "; + $sql .= " order by m_name "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +function updateShopSet() { + + for($i=0; $i < count($_POST[payment]); $i++){ + $str_payment .= $_POST[payment][$i]; + if($i != count($_POST[payment])-1){ + $str_payment .= ","; + } + } + + $sql = "UPDATE ".$GLOBALS["_conf_tbl"]["shop_set"]." SET + shop_name = '".mysql_real_escape_string($_POST[shop_name])."', + shop_url = '".mysql_real_escape_string($_POST[shop_url])."', + shop_url1 = '".mysql_real_escape_string($_POST[shop_url1])."', + shop_url2 = '".mysql_real_escape_string($_POST[shop_url2])."', + admin_email = '".mysql_real_escape_string($_POST[admin_email])."', + shop_title = '".mysql_real_escape_string($_POST[shop_title])."', + shop_keyword = '".mysql_real_escape_string($_POST[shop_keyword])."', + shop_content = '".mysql_real_escape_string($_POST[shop_content])."', + shop_payment = '".$str_payment."', + shop_pg_id = '".mysql_real_escape_string($_POST[shop_pg_id])."', + shop_bankinfo = '".mysql_real_escape_string($_POST[shop_bankinfo])."', + shop_delivery_company = '".mysql_real_escape_string($_POST[shop_delivery_company])."', + shop_delivery_url = '".mysql_real_escape_string($_POST[shop_delivery_url])."', + shop_delivery_gb = '".mysql_real_escape_string($_POST[delivery_gb])."', + shop_delivery_default = '".mysql_real_escape_string($_POST[shop_delivery_default])."', + shop_delivery_price = '".mysql_real_escape_string($_POST[shop_delivery_price])."', + shop_delivery_high = '".mysql_real_escape_string($_POST[shop_delivery_high])."', + shop_delivery_low = '".mysql_real_escape_string($_POST[shop_delivery_low])."', + shop_point_member = '".mysql_real_escape_string($_POST[shop_point_member])."', + shop_point_min = '".mysql_real_escape_string($_POST[shop_point_min])."', + shop_point_max = '".mysql_real_escape_string($_POST[shop_point_max])."' + "; + + $rsf = mysql_query($sql,$GLOBALS[dblink]); + + if($rsf){ + return true; + }else{ + return false; + } +} + +//오픈진행 +function updateShopSetOpen() { + if($_POST[evnType]=="1"){ + //구사이트도메인 http://www. 제외 + $old=mysql_real_escape_string($_POST[oldsite]); + //새사ㅣ트도메인 http://www. 제외 + $new=mysql_real_escape_string($_POST[newsite]); + }else{ + //구사이트도메인 http://www. 제외 + $old=mysql_real_escape_string($_POST[newsite]); + //새사ㅣ트도메인 http://www. 제외 + $new=mysql_real_escape_string($_POST[oldsite]); + } + + //상품 업데이트 + $sql_up = "update tbl_shop_good set contents=REPLACE(contents,'$old','$new')"; + $result_up=mysql_query($sql_up); + + //제품 업데이트 + $sql_up = "update tbl_product set contents=REPLACE(contents,'$old','$new')"; + $result_up=mysql_query($sql_up); + + //분류 업데이트 + $sql_up = "update tbl_category set cat_content=REPLACE(cat_content,'$old','$new')"; + $result_up=mysql_query($sql_up); + + //HTML 업데이트 + $sql_up = "update tbl_html_contents set contents=REPLACE(contents,'$old','$new')"; + $result_up=mysql_query($sql_up); + + //게시판 헤더푸터 + $sql_up = "update tbl_board_info set header=REPLACE(header,'$old','$new')"; + $result_up=mysql_query($sql_up); + + $sql_up = "update tbl_board_info set footer=REPLACE(footer,'$old','$new')"; + $result_up=mysql_query($sql_up); + + //게시판 업데이트 + $sql = "select * from tbl_board_info"; + $result=mysql_query($sql) ; + while($row=mysql_fetch_array($result)){ + $sql_up = "update tbl_board_".$row[boardid]." set contents=REPLACE(contents,'$old','$new')"; + $result_up=mysql_query($sql_up); + } + + $sql_up = "update tbl_shop_set set shop_url=REPLACE(shop_url,'$old','$new')"; + $result_up=mysql_query($sql_up); + + if($result_up){ + return true; + }else{ + return false; + } +} + +//로그초기화 +function updateLog(){ + $sql_up = "delete from tbl_websight_log"; + $result_up=mysql_query($sql_up); + $sql_up = "delete from tbl_websight_log_browser"; + $result_up=mysql_query($sql_up); + $sql_up = "delete from tbl_websight_log_counter"; + $result_up=mysql_query($sql_up); + $sql_up = "delete from tbl_websight_log_domain"; + $result_up=mysql_query($sql_up); + $sql_up = "delete from tbl_websight_log_ip"; + $result_up=mysql_query($sql_up); + $sql_up = "delete from tbl_websight_log_keyword"; + $result_up=mysql_query($sql_up); + $sql_up = "delete from tbl_websight_log_os"; + $result_up=mysql_query($sql_up); + $sql_up = "delete from tbl_websight_log_page"; + $result_up=mysql_query($sql_up); + $sql_up = "delete from tbl_websight_log_referer"; + $result_up=mysql_query($sql_up); + $sql_up = "delete from tbl_websight_log_searchengin"; + $result_up=mysql_query($sql_up); + + $sql_up = "ALTER TABLE tbl_websight_log convert to charset utf8"; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER TABLE tbl_websight_log_browser convert to charset utf8"; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER TABLE tbl_websight_log_counter convert to charset utf8"; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER TABLE tbl_websight_log_domain convert to charset utf8"; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER TABLE tbl_websight_log_ip convert to charset utf8"; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER TABLE tbl_websight_log_keyword convert to charset utf8"; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER TABLE tbl_websight_log_os convert to charset utf8"; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER TABLE tbl_websight_log_page convert to charset utf8"; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER TABLE tbl_websight_log_referer convert to charset utf8"; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER TABLE tbl_websight_log_searchengin convert to charset utf8"; + $result_up=mysql_query($sql_up); + + $sql_up = "ALTER table tbl_websight_log auto_increment = 1 "; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER table tbl_websight_log_browser auto_increment = 1 "; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER table tbl_websight_log_counter auto_increment = 1 "; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER table tbl_websight_log_domain auto_increment = 1 "; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER table tbl_websight_log_ip auto_increment = 1 "; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER table tbl_websight_log_keyword auto_increment = 1 "; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER table tbl_websight_log_os auto_increment = 1 "; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER table tbl_websight_log_page auto_increment = 1 "; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER table tbl_websight_log_referer auto_increment = 1 "; + $result_up=mysql_query($sql_up); + $sql_up = "ALTER table tbl_websight_log_searchengin auto_increment = 1 "; + $result_up=mysql_query($sql_up); + + if($result_up){ + return true; + }else{ + return false; + } +} + +//영문추가 +function addEnMode(){ + $sql_up = "alter table tbl_category add column cat_ename varchar(255) not null after cat_name;"; + $result_up=mysql_query($sql_up); + + $sql_up = "alter table tbl_product add column p_ename varchar(255) not null after p_name;"; + $result_up=mysql_query($sql_up); + + $sql_up = "ALTER TABLE tbl_category convert to charset utf8"; + $result_up=mysql_query($sql_up); + + $sql_up = "ALTER TABLE tbl_product convert to charset utf8"; + $result_up=mysql_query($sql_up); + + //게시판 업데이트 + $sql = "select * from tbl_board_info"; + $result=mysql_query($sql) ; + while($row=mysql_fetch_array($result)){ + $sql_up = "ALTER TABLE tbl_board_".$row[boardid]." convert to charset utf8"; + $result_up=mysql_query($sql_up); + } + + if($result_up){ + return true; + }else{ + return false; + } +} + +//중문추가 +function addCnMode(){ + $sql_up = "alter table tbl_category add column cat_cname varchar(255) not null after cat_name;"; + $result_up=mysql_query($sql_up); + + $sql_up = "alter table tbl_product add column p_cname varchar(255) not null after p_name;"; + $result_up=mysql_query($sql_up); + + $sql_up = "ALTER TABLE tbl_category convert to charset utf8"; + $result_up=mysql_query($sql_up); + + $sql_up = "ALTER TABLE tbl_product convert to charset utf8"; + $result_up=mysql_query($sql_up); + + //게시판 업데이트 + $sql = "select * from tbl_board_info"; + $result=mysql_query($sql) ; + while($row=mysql_fetch_array($result)){ + $sql_up = "ALTER TABLE tbl_board_".$row[boardid]." convert to charset utf8"; + $result_up=mysql_query($sql_up); + } + + if($result_up){ + return true; + }else{ + return false; + } +} + +//일본어추가 +function addJpMode(){ + $sql_up = "alter table tbl_category add column cat_jname varchar(255) not null after cat_name;"; + $result_up=mysql_query($sql_up); + + $sql_up = "alter table tbl_product add column p_jname varchar(255) not null after p_name;"; + $result_up=mysql_query($sql_up); + + $sql_up = "ALTER TABLE tbl_category convert to charset utf8"; + $result_up=mysql_query($sql_up); + + $sql_up = "ALTER TABLE tbl_product convert to charset utf8"; + $result_up=mysql_query($sql_up); + + //게시판 업데이트 + $sql = "select * from tbl_board_info"; + $result=mysql_query($sql) ; + while($row=mysql_fetch_array($result)){ + $sql_up = "ALTER TABLE tbl_board_".$row[boardid]." convert to charset utf8"; + $result_up=mysql_query($sql_up); + } + + if($result_up){ + return true; + }else{ + return false; + } +} +?> \ No newline at end of file diff --git a/backoffice/module/admin/admin.php b/backoffice/module/admin/admin.php new file mode 100644 index 0000000..16fc1f1 --- /dev/null +++ b/backoffice/module/admin/admin.php @@ -0,0 +1,137 @@ + + + +
+ +
+

관리자 관리

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + + +
No.ID권한이름비밀번호직급전화관리권한생성일관리
+ +
    - " . $arrayMenuList[trim($val)] . ""; + } + } + ?>
+
수정 삭제
생성된 관리자가 없습니다.
+ +
+ +
+ +
+ + +
+ +
+
+ diff --git a/backoffice/module/admin/admin_evn.php b/backoffice/module/admin/admin_evn.php new file mode 100644 index 0000000..87e32b9 --- /dev/null +++ b/backoffice/module/admin/admin_evn.php @@ -0,0 +1,253 @@ + 0){ + for ($i=0;$i<$arrList['list']['total'];$i++) { + //게시물 등록 + $arrBoardInfo = getBoardInfo($_conf_tbl[board_info], $arrList['list'][$i]['boardid']); + $_POST[usehtml] = "Y"; + $_POST[subject] = $arrList['list'][$i]['boardname']." 테스트 게시글 제목입니다."; + $_POST[contents] = $arrList['list'][$i]['boardname']." 테스트 게시글 내용입니다."; + $_POST[name] = "관리자"; + $RS = insertBoardArticle($arrList['list'][$i]['boardid'],$arrBoardInfo["list"][0]["thumwidth"]); + //$RS = addBoardAddTest(); + } + } + + //DB해제 + SetDisConn($dblink); + + if($RS==true){ + if($_REQUEST[rt_url]!=""){ + jsGo($_REQUEST[rt_url],"",""); + }else{ + jsGo("config.php","",""); + } + }else{ + jsMsg("테스트 게시글 등록에 실패 하였습니다."); + jsHistory("-1") ; + } + +}else if($_POST[evnMode]=="initBoard"){ + //게시판 테스트 게시글 등록 + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + $scale = "999"; + $arrList = getArticleList($_conf_tbl["board_info"], $scale, $_REQUEST[offset], ""); + + if($arrList['list']['total'] > 0){ + for ($i=0;$i<$arrList['list']['total'];$i++) { + $sql_up = "delete from tbl_board_".$arrList['list'][$i]['boardid']; + $RS=mysql_query($sql_up); + + $sql_up = "ALTER TABLE tbl_board_".$arrList['list'][$i]['boardid']." convert to charset utf8"; + $RS=mysql_query($sql_up); + + $sql_up = "ALTER TABLE tbl_board_".$arrList['list'][$i]['boardid']." auto_increment = 1"; + $RS=mysql_query($sql_up); + } + } + + $sql_up = "delete from tbl_board_files"; + $RS=mysql_query($sql_up); + + $sql_up = "ALTER TABLE tbl_board_files convert to charset utf8"; + $RS=mysql_query($sql_up); + + $sql_up = "ALTER TABLE tbl_board_files auto_increment = 1"; + $RS=mysql_query($sql_up); + + //DB해제 + SetDisConn($dblink); + + if($RS==true){ + jsGo("config.php","",""); + }else{ + jsMsg("게시판 초기화에 실패 하였습니다."); + jsHistory("-1") ; + } + +}else if($_POST[evnMode]=="updateLog"){ + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + $RS = updateLog(); + + //DB해제 + SetDisConn($dblink); + + if($RS==true){ + jsGo("config.php","",""); + }else{ + jsMsg("로그초기화에 실패 하였습니다."); + jsHistory("-1") ; + } +}else if($_POST[evnMode]=="addEnMode"){ + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + $RS = addEnMode(); + + //DB해제 + SetDisConn($dblink); + + if($RS==true){ + jsGo("config.php","",""); + }else{ + jsMsg("영문추가에 실패 하였습니다."); + jsHistory("-1") ; + } + +}else if($_POST[evnMode]=="addCnMode"){ + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + $RS = addCnMode(); + + //DB해제 + SetDisConn($dblink); + + if($RS==true){ + jsGo("config.php","",""); + }else{ + jsMsg("중문추가에 실패 하였습니다."); + jsHistory("-1") ; + } + +}else if($_POST[evnMode]=="addJpMode"){ + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + $RS = addJpMode(); + + //DB해제 + SetDisConn($dblink); + + if($RS==true){ + jsGo("config.php","",""); + }else{ + jsMsg("중문추가에 실패 하였습니다."); + jsHistory("-1") ; + } +} +?> \ No newline at end of file diff --git a/backoffice/module/admin/admin_info.php b/backoffice/module/admin/admin_info.php new file mode 100644 index 0000000..4d66c5c --- /dev/null +++ b/backoffice/module/admin/admin_info.php @@ -0,0 +1,93 @@ + +
+ +
+

관리자 관리

+ +
+ + "> + +

관리자 수정

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
아이디
비밀번호" class="input">
등급 + > + > (ROOT 일경우 아래권한에 관계없이 모든 메뉴 접근 가능) +
이름" class="input">
직급" class="input">
전화" class="input" style="width:30%">
이메일" class="input" style="width:30%">
접근권한 + +
    + +
  • ">
  • + +
+
등록일
+ +
+
+ +
+
+
+
+
+ \ No newline at end of file diff --git a/backoffice/module/admin/admin_set.php b/backoffice/module/admin/admin_set.php new file mode 100644 index 0000000..ece3dda --- /dev/null +++ b/backoffice/module/admin/admin_set.php @@ -0,0 +1,203 @@ + + + +
+ +
+

기본정보설정

+ +
+ + + +

관리자정보

+ + + + + + + + + + + "> + + + + "> + + + + "> + + + + + + + + +
홈페이지 이름" class="input" size="50">
계정명 + " class="input" size="44" onPropertyChange="javascript:setShopURL(this.value);" onkeyup="setShopURL(this.value);"> +
실도메인http://" class="input" size="44"> (http://제외)
홈페이지 URLhttp://" class="input" size="44"> (http://제외)
관리자 이메일" class="input" size="50">
+ +
+ +

홈페이지 Title

+ + + + + + + + + + + + + + + + + + + + + +
홈페이지 Title" class="input" size="50">
검색키워드" class="input" size="140">
소개글" class="input" size="140">
+ +
+ + +

">결제정보

+ "> + + + + + + + + + + + + + + + + + + +
결제방법>무통장    + >신용카드    + >에스크로    + >계좌이체    + >휴대폰
상점 ID" class="input"> 테스트아이디 : aegis
은행계좌번호 줄바꿈(엔터)으로 구분됩니다.
+ +
+ + +

">기본배송정책

+ "> + + + + + + + + + + + + + + + + + + + + + + +
배송무료> 배송비 전액무료
수신자부담> 수신자부담 (착불)
고정값> " class="input">원
구매가격별> " class="input">원 이상 구매시 " class="input">원
이하 구매시 " class="input">원
+ +
+ +

">적립금 설정

+ "> + + + + + + + + + + + + + + + + + + +
회원가입 적립금" class="input">
최소사용 적립금" class="input">
구매 총액 이상시
적립금 사용가능
" class="input">
+ +
+
+ +
+
+
+
+
+ diff --git a/backoffice/module/admin/auto_sql.php b/backoffice/module/admin/auto_sql.php new file mode 100644 index 0000000..7ec69d8 --- /dev/null +++ b/backoffice/module/admin/auto_sql.php @@ -0,0 +1,113 @@ + + +
+ +
+

관리자 관리

+

SQL문

+ =$_GET[column_snum];$i--){ + echo "alter table ".$_GET[tbl_id]." add column etc_".$i." varchar(255) not null after serial;
"; + } + ?> +
+

PHP수정

+ "; + } + ?> +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/admin/config.php b/backoffice/module/admin/config.php new file mode 100644 index 0000000..0a06edb --- /dev/null +++ b/backoffice/module/admin/config.php @@ -0,0 +1,208 @@ + + +
+ +
+

사이트설정

+

관리자 수정

+ +
+ +
+ + + + +
+ 다국어는 프로그램쪽만 추가되는부분임. 별도로 폴더생성되지않음 +
+
+ + +
+ 전체게시판 초기화는 게시글 전체삭제됩니다. 사용주의!! +
+ +
+
+ + + +
+
+ 게시판형 관리자+게시판+팝업+접속통계
+ 게시판+문의형 관리자+게시판+온라인문의+팝업+접속통계
+ 기업형 관리자+제품(분류)관리+게시판+팝업+접속통계
+ 기업형+문의형 관리자+제품(분류)관리+게시판+온라인문의+팝업+접속통계
+ 쇼핑몰 관리자+상품(분류)관리+게시판+회원관리+팝업+접속통계
+ 쇼핑몰+문의형 관리자+상품(분류)관리+게시판+온라인문의+회원관리+팝업+접속통계
+
+
+
+ + + + + + + + + + + + +
접근권한 +
    + +
  • ">
  • + +
+
+
+
+ +
+
+
+ + +
+
+ + +
+
+

컨텐츠 변경

+ 테스트섭 : " class="input" style="width:70%"/>
+ 실도메인 : " class="input" style="width:70%"/>

+ + +
+
+
+ + +
+
+

여분컬럼추가

+ ~ + 까지

+ + + + + +
+
+ +
+
+
+ +
+ + + +
+ \ No newline at end of file diff --git a/backoffice/module/admin/create_sitemap.php b/backoffice/module/admin/create_sitemap.php new file mode 100644 index 0000000..b637f2a --- /dev/null +++ b/backoffice/module/admin/create_sitemap.php @@ -0,0 +1,90 @@ + +"; +$xmlDoc.=" + + $url + $lastmod + 0.5 + daily +"; +/* 그누보드 URL 수정(.htaccess) 하신분 샘플 $url/ 뒷부분만 'Community' 수정하세요*/ +$xmlDoc.=" + + $url/Community + $lastmod + 0.5 + daily +"; + /* 카테고리샘플 시작 $url 뒷부분의 '3D_Printing', '서울' 을 자신의 사이트 맞게 수정하세요 */ +$xmlDoc.=" + + $url/bbs/board.php?bo_table=3D_Printing&sca=서울 + $lastmod + 0.5 + weekly +"; +/* 카테고리예제 끝 */ +?> + + $url/bbs/board.php?board_id=$bo"; + $temp = sql_fetch("select wdate from `$g5[write_prefix]$bo` order by wdate DESC"); + $lastmod = str_replace(" ", "T", substr($temp[wdate], 0, 30))."+00:00"; + + // if + if(!$lastmod || strlen($lastmod) < 25 || strcmp($lastmod, "+00:00")) $lastmod = "2014-12-12T00:00:00+00:00"; + +$xmlDoc.=" + $lastmod + daily + 0.9 +"; + + $query = sql_query("select wr_id, wdate from `$g5[write_prefix]$bo` where wr_is_comment='0' AND wr_option NOT LIKE '%secret%'"); + while($row = sql_fetch_array($query)) { + // list of each article +$xmlDoc.=" + + $url/bbs/board.php?board_id=$bo&wr_id=$row[wr_id] +"; + $temp = sql_fetch("select wdate from `$g5[write_prefix]$bo` where wr_parent='$row[wr_id]' order by wr_id DESC"); + $lastmod = str_replace(" ", "T", substr($temp[wdate], 0, 30))."+00:00"; + if(!$lastmod) { + $temp = sql_fetch("select wdate from `$g5[write_prefix]$bo` where wr_id='$row[wr_id]'"); + $lastmod = str_replace(" ", "T", substr($temp[wdate], 0, 30))."+00:00"; + } + if(!$lastmod) $lastmod = $g5[time_ymd]; +$xmlDoc.=" + $lastmod + weekly + 0.5 +"; + } + $i++; +} +$xmlDoc.=" +"; +$fp = fopen("./sitemap.xml","w"); +fputs($fp, $xmlDoc); +fclose($fp); +?> diff --git a/backoffice/module/admin/manual.php b/backoffice/module/admin/manual.php new file mode 100644 index 0000000..ffd4944 --- /dev/null +++ b/backoffice/module/admin/manual.php @@ -0,0 +1,237 @@ + + + +
+ +
+

메뉴얼

+
+안녕하세요, 웹사이트 개발팀 입니다.

+관리자 페이지 주소및 사용법 입니다.

+임시주소는 " target="_blank">http:// 입니다.
+관리자 페이지는 /backoffice/" target="_blank">http:///backoffice 이며
+정식 도메인 연결후에도 도메인 뒤에 /backoffice 를 넣으시면 로그인 페이지로 이동 됩니다.
+관리자페이지에 처음 접속후 아래 관리자 관리 를 통하여 비번을 변경후 사용하세요


+ +관리자 암호/비번(아래 관리에서 비번 변경가능)
+아이디 : admin
+비번 : 1111

+ +유지보수신청
+ 유지보수 신청클릭후 website.co.kr로 이동후 우측하단에 유지/보수 신청 메뉴가 있습니다
+ 홈페이지 사용중 오류나 버그 발견시 이쪽으로 접수해 주시면 따로 전화를 주시지 않아도 처리가 가능합니다.


+ + +관리자관리>관리자관리
+ 왼편메뉴 관리자 관리를 선택하시면 가운데 화면에 등록되어 있는 관리자 리스트가 나옵니다.
+상단에 있는 신규 관리자ID 에 새로운 관리자 아이디를 등록하신후 관리자추가 버튼을 누르시면
+ 새로운 관리자가 추가됩니다. 추가시 아이디는 반드시 영문으로 하세요
+ 생성된 관리자의 정보수정은 상기 메뉴에서 리스트중 해당 관리자 아이디 메뉴중 관리>수정을 누르시면 비밀번호 및 권한을 수정하실수 있습니다.
+수정메뉴 중 등급은 ROOT와 ADMIN 으로 나위며 ROOT로 할경우 모든 메뉴의 사용이 가능하니 일반 관리자는 권한을 ADMIN으로 제한하여 사용하세요
+ 아래 접근권한은 일반 관리자가 접근할수 있는 메뉴를 선택할수 있습니다.


+ + + +게시판관리>게시판관리
+왼편 게시판 관리>게시판관리 메뉴를 선택하시면 가운데 화면에 기존에 제공되고 있는 게시판이 나옵니다.
+게시판 관리를 누를시 게시판 리스트들 오픈편 끝에 관리 메뉴중 수정(삭제) 는 기존에 최적화 되어 세팅되어 있으므로
+ 별도의 세팅은 운영홈페이지에 오류를 발생시킬수 있으니 가급적 사용을 제한해 주십시요

+ + 메뉴선택후 나열된 게시판명을 클릭할경우 운영되고 있는 게시판에 게시물을 보실수 있으며 게시물의 삭제 및 수정이 가능합니다.
+글쓰기시 첨부파일의 개수는 제한이 없으며, 추가로 업로드 하실경우 글쓰기 후 수정페이지에서 계속 첨부하여 주시면 업로드가 됩니다.
+글쓰기시 첨부파일이외에 에디터 모드 사용시 노란색의 산모양과 태양(달)(이미지삽입/변경) 의 아이콘은 이미지를 에디터 모드에서 첨부하여 사용하는 것으로
+ 일반워드의 첨부와 같은 기능을 하며 이미지의 크기와 위치의 조정이 가능합니다.
+위 아이콘을 클릭하면 레이어가 나타나며, 상단에 이미지정보,링크,업로드,자세히 탭이 보이며 기본적으로 이미지정보탭이 선택되어 있습니다.
+아래 URL 부분 오른쪽 서버보기 버튼을 클릭하면 기존에 올린 이미지가 있을경우 이 이미지가 나열되며,
+없을 경우 하단에 찾아보기 버튼을 눌러 이미지를 선택후 upload 버튼을 누르면 서버에 이미지가 올라가며 이는 화면에 이미지 명으로 나타납니다.
+이 이미지를 클릭시 처음 나타난 레이어에 이미지가 보이며 하단에 예, 아니오에서 예를 누를 경우 내용 입력창에 이미지가 표시됩니다.


+ + + +온라인 문의 >온라인문의
+ 온란인 문의는 사용자가 웹페이지 내에서 등록한 문의글들을 모아 리스트로 나타냅니다.

+ +보여지는 리스트의 제목이나 오른쪽 끝의 메뉴중 수정을 누를경우 처리상황을 변경할수 있으며
+ 삭제 버튼을 누를경우 삭제됩니다.

+ +수정버튼을 누를 경우 답변상태를 미처리와 처리완료로 변경할수 있으며,
+간단한 메모를 입력하여 처리상황을 정리할수 있습니다.


+ + + +분류관리
+ 분류관리는 제품을 등록하시기전 제품이 분류될 카테고리 생성및 수정합니다.
+현재는 싸이트에 맞게 생성및 최적화 된 상태이므로 추가적인 수정및 생성 작업은 필요로 하지 않습니다.


+ + + +제품관리
+ +제품등록
+ 제품등록 제품분류로 1차 분류를 선택
+ 제품명 리스트에 보여질 제품명
+ 제품사진 등록되어질 제품은 사진 (1개 등록가능 교체시 수정에서 삭제후 다시 입력)
+간단설명 제품리스트에 제목과 함께 보여질 간단한 제품 설명기재
+ 제품설명 : 간단설명과 달리 보기페이지에서 밑에 보여질 설명으로 게시판의 입력기능과 같이
+ 에디터 기능을 사용하면 간편하게 입력이 가능합니다.

+ +제품관리
+ 가운데 화면에 등록되어 있는 제품 리스트가 나옵니다.
+이 제품들은 상단에 제품 검색 분류명으로 각각 검색이 가능하며 제품명으로도 검색하실수 있습니다.
+등록되어진 제품 우측에는 수정|삭제 메뉴가 있으며 삭제를 선택하시면 해당 제품이 삭제됩니다.
+수정을 선택하실 경우 제품 수정화면으로 이동되며 이중 정렬순서는 리스트중 가장 위에 나오게 되는 순서를 정할수 있습니다.
+높은 숫자를 기재할수록 제품을 가장 앞에 나오며 기존 제품은 0으로 되어 있으므로 1 만 기입해도 가장 앞에 나옵니다.

+ +메인표시는 홈페이지 접속 처음에 나오는것으로 이는 접속페이지에 제품리스트가 있을경우 적용됩니다.
+제품사진 : 제품사진은 기존에 사진이 등록되어 있을 경우 삭제후 새로 등록하셔야 새 사진이 입력됩니다.


+ + + +상품관리
+ +기본정보
+ 제품을 등록하는 페이지 입니다.
+상품코드 : 자동생성되면 수정및 삭제 하면 안됩니다.
+상품분류 : 해당 분류를 선택하세요
+ 상품명 : 상품명
+ 간략설명: 보기페이지나 리스트페이지에 보여질 간략한 설명입력
+ 정렬순서 : 숫자가 높을수록 앞쪽에 나타납니다. 모든 제품이 0으로 등록되기 때문에 1만 입력하여도 앞에 출력됩니다.
+ +상품추가정보
+ + +판매가: 일반회원이 구매시 가격
+ +상품진열: 판매가능 상품을 진열함으로 표시
+메인페이지 노출 : 메인페이지에 제품이 디스플레이 할경우 체크(각 상품 메인이 아닌, 프로그램 지정페이지 메인)

+ + + + +상품사진
+ 대표이미지,개별이미지중 대표이미지를 선택후 사용하세요
+ 제품에 사진을 입력후 우측에 대표이미지를 체크하시면 해당이미지가 리스트에 표시될 이미지도 설정됩니다.

+ +상품설명
+ 상품 설명을 입력


+ + + + + +주문관리
+ 주문내역이 표시됩니다.
+주문번호를 클릭시 주문정보로 이동되며, 주문상태를 변경할 경우 사용자 mypage도 변경됩니다.
+적립금지급여부: 제품에 적립금이 있을경우 체크시 적립금이 지급됩니다. (주문이 완료될 체크)
+배송일자,택배사,송장번호(사용자 mypage 에 주문배송조회에 표시될내용)


+ + +매출관리
+ 거래완료된 건에 대한 결과값을 통계로 보여줍니다.


+ + + + +적립금관리
+ 적립금 지급및 사용내역을 표시 합니다.
+지급/사용추가
+ 아이디로 검색후 해당 회원에게 포인트를 지급및 차감할수 있습니다.


+ + + + +1:1문의
+ 회원이 MYpage에서 남기신 문의글을 일대일로 답변해 드립니다.
+문의리스트의 제목을 클릭하면 답변이 가능하며, 답변상태를 답변완료로 변경시
+ 답변내용을 사용자가 Mypage 에서 확인이 가능합니다.


+ + + +회원관리>회원목록관리|회원등급관리

+ +회원목록관리
+회원목록리스트가 나옵니다.
+엑셀파일로 목록을 다운받을수 있습니다.
+수정 버튼을 클릭하면 해당 회원의 정보를 볼수있습니다.
+리스트페이지에서 수정 삭제가 가능합니다.

+ +회원등급관리
+등급별 리스트가 나옵니다.
+최하위 등급은 1부터 시작됩니다. (* 0 은 회원등급으로 적용이 안됩니다.)
+리스트페이지에서 수정 삭제가 가능합니다.


+ + + +팝업관리>팝업목록,팝업등록
+ 팝업관리>팝업목록을
+ 선택하시면 화면중앙에 기존 등록하신 팝업목록이 나열되며 화면오른쪽의 수정|관리를 누르실경우 수정 및 삭제가 가능합니다.

+ +팝업관리>팝업등록

+ +팝업제목: 팝업될 창의 제목줄입니다.
+팝업가로/세로: 팝업의 크기를 설정할수 있는 항목입니다.
+팝업상단위치: 팝업의 상단에서부터 위치할 픽셀의 크기이며
+ 팝업좌측위치: 팝업의 좌측으로부터 팝업이 위치할 픽셀의 크기입니다.
+팝업타입 : 이미지와 HTML의을 선택하실수 있으며, HTML 의 경우
+ 게시판쓰기의 에디터와 같은 기능을 사용하실수 있습니다.

+ +이미지 선택의 경우
+ 팝업이미지 의 기능으로 업로드 가능하며
+ 클릭시 이동주소는 업로드 이미지를 클릭할 경우 이동되는 웹싸이트 주소를 설정합니다.
+클릭시 타겟은 부모창과 새창으로 나뉘며, 부모창의 경우 열려져 있는 홈페이지 창에서 입력된 주소로 이동되며, 새창의 경우 새로운 창에서 입력된 주소로 이동됩니다.
+ +시작일/ 종료일 팝업의 시작과 종료일을 설정합니다.


+ + + +제품기본설명/사용법> 제품기본설명/사용법
+ 제품 설명 및 기본 사용법 메뉴를 선택하시면 중앙에 등록되어 있는content 제목이 나열되며
+ 이 제목을 클릭시 해당 내용을 수정할 수 있는 폼으로 연결 됩니다.
+ +수정화면에서 +HTML 사용 은 텍스트 편집과 HTML 소스 코드 사용으로 나뉩니다.
+HTML 모드로 사용시 아래 에디터 창에서 워드를 사용하시는 방법과 같으며, 이미지의 첨부 및
+Html tag 의 사용이 가능합니다.(게시판 사용의 내용 입력창과 같습니다.)


+ + + + + +접속통계
+ 접속통계는 시간대별/일별/월별 통계를 기본적으로 사용되며
+ +부가적인 정보로는 아래 메뉴를 보시면 됩니다.
+os,브라우져별,ip별,링크된서버,링크된주소,최초접속페이지,검색엔진별,검색키워드별,방문자로그
+ +
+
+
+ diff --git a/backoffice/module/admin/menu.php b/backoffice/module/admin/menu.php new file mode 100644 index 0000000..971cf8e --- /dev/null +++ b/backoffice/module/admin/menu.php @@ -0,0 +1,15 @@ +
+

기본정보 관리

+ + +
+ + diff --git a/backoffice/module/banner/banner.php b/backoffice/module/banner/banner.php new file mode 100644 index 0000000..66341fb --- /dev/null +++ b/backoffice/module/banner/banner.php @@ -0,0 +1,116 @@ + +
+ +
+

배너 관리

+ + + + + + + + + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + + + + +
No.배너제목타입보임정렬클릭등록일관리
수정 삭제
등록된 배너가 없습니다.
+ +
+ +
+ +
+ + +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/banner/banner_add.php b/backoffice/module/banner/banner_add.php new file mode 100644 index 0000000..1990c57 --- /dev/null +++ b/backoffice/module/banner/banner_add.php @@ -0,0 +1,102 @@ + +
+ +
+

배너 등록

+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
제목
배너
링크주소
새창 +    +    + +
보이기 +    + +
배너타입 + +
정렬순서 (숫자가 높을수록 위쪽에 나타남)
+ +
+
+ +
+
+
+
+
+ \ No newline at end of file diff --git a/backoffice/module/banner/banner_evn.php b/backoffice/module/banner/banner_evn.php new file mode 100644 index 0000000..e021dc6 --- /dev/null +++ b/backoffice/module/banner/banner_evn.php @@ -0,0 +1,64 @@ + \ No newline at end of file diff --git a/backoffice/module/banner/banner_info.php b/backoffice/module/banner/banner_info.php new file mode 100644 index 0000000..0fa6f48 --- /dev/null +++ b/backoffice/module/banner/banner_info.php @@ -0,0 +1,107 @@ + +
+ +
+

배너 수정

+ + + +
+ +"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
제목" class="input" />
배너
링크주소" class="input" />
새창 + >    + >    + +
보이기 + >    + > +
배너타입 + +
정렬순서" class="input" /> (숫자가 높을수록 위쪽에 나타남)
+
+
+ +
+
+ +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/banner/menu.php b/backoffice/module/banner/menu.php new file mode 100644 index 0000000..10c690c --- /dev/null +++ b/backoffice/module/banner/menu.php @@ -0,0 +1,10 @@ +
+

배너 관리

+ + +
+ + diff --git a/backoffice/module/board/admin_board.php b/backoffice/module/board/admin_board.php new file mode 100644 index 0000000..769d977 --- /dev/null +++ b/backoffice/module/board/admin_board.php @@ -0,0 +1,221 @@ + +
+ +
+

게시판 관리(웹사이트용) [고객용보기]

+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + 0):?> + + + "/> + + + + + + + + + + + + + + + + + + + + + + + + + + +
No.게시판ID게시판명관리자만자료실답글댓글목록쓰기읽기답글리스트개수썸네일스킨생성일관리
" class="input" style="width:80%"/> [보기] + + + + + + + + + + + + + + + + + + + + " class="input" style="width:50px;"/>" class="input" style="width:50px;"/> + + 수정| 삭제
생성된 게시판이 없습니다.
+ +
+ +
+ +
+
+ +
+
+
+ + + +
+ + +
+ + +
+
+ diff --git a/backoffice/module/board/board.php b/backoffice/module/board/board.php new file mode 100644 index 0000000..64ce195 --- /dev/null +++ b/backoffice/module/board/board.php @@ -0,0 +1,136 @@ + +
+ +
+

게시판 관리

+ + + + + + + + + + + + + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + + + + + + + + +
No.게시판ID게시판명관리자만자료실답글댓글목록쓰기읽기답글스킨생성일관리
+ + 보기 + 수정
생성된 게시판이 없습니다.
+ +
+ +
+ +
+ + +
+ + +
+
+ diff --git a/backoffice/module/board/board_evn.php b/backoffice/module/board/board_evn.php new file mode 100644 index 0000000..2306a6e --- /dev/null +++ b/backoffice/module/board/board_evn.php @@ -0,0 +1,112 @@ + \ No newline at end of file diff --git a/backoffice/module/board/board_info.php b/backoffice/module/board/board_info.php new file mode 100644 index 0000000..56dcf24 --- /dev/null +++ b/backoffice/module/board/board_info.php @@ -0,0 +1,218 @@ + + + +
+ +
+

게시판 관리

+ + + +
+ + + +
+
  수정
+
목록
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
게시판ID + 게시판스킨 + + +
게시판명 + " style="width:200px;" class="input" />제목 글자수 + " style="width:30px" class="input" /> (목록에서 글자수 많을때 컷팅)
페이지 표시갯수 + " style="width:30px" class="input" />페이지 나눔갯수 + " style="width:30px" class="input" />
가로 나눔갯수 + " style="width:30px" class="input" /> (사진 갤러리형 게시판에 사용)썸네일 가로크기 + " style="width:30px" class="input" /> (사진 갤러리형 썸네일 크기)
새글 표시일수 + " style="width:30px" class="input" />베스트 히트 횟수 + " style="width:30px" class="input" />
관리자만글쓰기 + (쓰기등급보다 우선)자료실 사용 +
답글쓰기 사용 + 게시물 댓글 사용 +
글 읽기 등급 + 글 쓰기(수정,삭제) 등급 +
답글쓰기 등급 + 목록보기 등급 +
글잠금 기능 사용 + 인트라넷으로 사용 +
카테고리 사용 + " class="input" /> 콤마 , 로 구분 (예: 공지,답글,국문,영문)
게시판 헤더 + + +
게시판 푸터 + + +
+ +
+
+ + +
+
+
+
+
+ \ No newline at end of file diff --git a/backoffice/module/board/board_view.php b/backoffice/module/board/board_view.php new file mode 100644 index 0000000..ef15214 --- /dev/null +++ b/backoffice/module/board/board_view.php @@ -0,0 +1,249 @@ +0){ + ?> + + +
+ +
+

게시물 관리

+ + 0){ + //카테고리 정보 + if($arrBoardInfo["list"][0]["category"] !=""){ + $arrBoardCategory = explode(",",$arrBoardInfo["list"][0]["category"]); + $arrBoardCatTotal = count($arrBoardCategory); + }else{ + $arrBoardCatTotal = 0; + $arrBoardCategory = null; + } + //게시판 헤더 + echo stripslashes($arrBoardInfo["list"][0]["header"]); + switch($_REQUEST[mode]){ + case("write"): + //관리자이거나 회원등급이 게시물 등록등급 이상일 경우 + if($_SESSION[$_SITE["DOMAIN"]]["ADMIN"]["ID"] || $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["LEVEL"] >= $arrBoardInfo["list"][0]["writelevel"]){ + include($_SITE["BOARD_SKIN"] .$arrBoardInfo["list"][0][skin]."/form.php"); + }else{ + jsMsg($arrLevelInfo[$arrBoardInfo["list"][0]["writelevel"]] . " 이상 글 등록이 가능 합니다."); + jsHistory("-1"); + } + break; + + case("modify"): + //관리자이거나 회원등급이 게시물 등록등급 이상일 경우 + if($_SESSION[$_SITE["DOMAIN"]]["ADMIN"]["ID"] || $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["LEVEL"] >= $arrBoardInfo["list"][0]["writelevel"]){ + $arrBoardArticle = getBoardArticleView($arrBoardInfo["list"][0]["boardid"], $_GET["category"], $_GET["idx"],"modify"); + + if($arrBoardArticle["total"] > 0){ + //글잠금이 아니거나, 인증을 했거나, 관리자일 경우 글 보여줌 + if($arrBoardArticle["list"][0][uselock]!="Y" || $_SESSION[$_SITE["DOMAIN"]][$boardid."|".$_GET["idx"]]==TRUE || $_SESSION[$_SITE["DOMAIN"]]["ADMIN"]["ID"]){ + if($arrBoardInfo["list"][0][skin]=="inquiry" && $arrBoardArticle["list"][0][depth]!="0"){ + include($_SITE["BOARD_SKIN"].$arrBoardInfo["list"][0][skin]."/form1.php"); + }else{ + include($_SITE["BOARD_SKIN"].$arrBoardInfo["list"][0][skin]."/form.php"); + } + }else{ + $_REQUEST[mode]="unlock"; + include($_SITE["BOARD_SKIN"].$arrBoardInfo["list"][0][skin]."/pass.php"); + } + }else{ + jsMsg("존재하지 않는 게시물 입니다."); + jsHistory("-1"); + } + }else{ + jsMsg($arrLevelInfo[$arrBoardInfo["list"][0]["writelevel"]] . " 이상 글 수정이 가능 합니다."); + jsHistory("-1"); + } + break; + + case("reply"): + //관리자이거나 회원등급이 게시물 등록등급 이상일 경우 + if($_SESSION[$_SITE["DOMAIN"]]["ADMIN"]["ID"] || $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["LEVEL"] >= $arrBoardInfo["list"][0]["replylevel"]){ + $arrBoardArticle = getBoardArticleView($arrBoardInfo["list"][0]["boardid"], $_GET["category"], $_GET["idx"],"reply"); + + if($arrBoardArticle["total"] > 0){ + //글잠금이 아니거나, 인증을 했거나, 관리자일 경우 글 보여줌 + if($arrBoardArticle["list"][0][uselock]!="Y" || $_SESSION[$_SITE["DOMAIN"]][$boardid."|".$_GET["idx"]]==TRUE || $_SESSION[$_SITE["DOMAIN"]]["ADMIN"]["ID"]){ + if($arrBoardInfo["list"][0][skin]=="inquiry"){ + include($_SITE["BOARD_SKIN"].$arrBoardInfo["list"][0][skin]."/form1.php"); + }else{ + include($_SITE["BOARD_SKIN"].$arrBoardInfo["list"][0][skin]."/form.php"); + } + }else{ + $_REQUEST[mode]="unlock"; + include($_SITE["BOARD_SKIN"].$arrBoardInfo["list"][0][skin]."/pass.php"); + } + }else{ + jsMsg("존재하지 않는 게시물 입니다."); + jsHistory("-1"); + } + }else{ + jsMsg($arrLevelInfo[$arrBoardInfo["list"][0]["replylevel"]] . " 이상 글 등록이 가능 합니다."); + jsHistory("-1"); + } + break; + + case("view"): + //관리자이거나 회원등급이 게시물 읽기등급 이상일 경우 + if($_SESSION[$_SITE["DOMAIN"]]["ADMIN"]["ID"] || $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["LEVEL"] >= $arrBoardInfo["list"][0]["readlevel"]){ + $arrBoardArticle = getBoardArticleView($arrBoardInfo["list"][0]["boardid"], $_GET["category"], $_GET["idx"],"read"); + + if($arrBoardArticle["total"] > 0){ + + //글잠금이 아니거나, 인증을 했거나, 관리자일 경우 글 보여줌 + if($arrBoardArticle["list"][0][uselock]!="Y" || $_SESSION[$_SITE["DOMAIN"]][$boardid."|".$_GET["idx"]]==TRUE || $_SESSION[$_SITE["DOMAIN"]]["ADMIN"]["ID"]){ + //댓글목록 가져오기 + $arrCommentList = getCommentList($arrBoardInfo["list"][0]["boardid"], $arrBoardArticle["list"][0][idx], 0, 0); + include($_SITE["BOARD_SKIN"].$arrBoardInfo["list"][0][skin]."/view.php"); + }else{ + $_REQUEST[mode]="unlock"; + include($_SITE["BOARD_SKIN"].$arrBoardInfo["list"][0][skin]."/pass.php"); + } + + }else{ + jsMsg("존재하지 않는 게시물 입니다."); + jsHistory("-1"); + } + }else{ + jsMsg($arrLevelInfo[$arrBoardInfo["list"][0]["readlevel"]] . " 이상 글 읽기가 가능 합니다."); + jsHistory("-1"); + } + break; + + case("delete"): + //관리자이거나 회원등급이 게시물 등록등급 이상일 경우 + if($_SESSION[$_SITE["DOMAIN"]]["ADMIN"]["ID"] || $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["LEVEL"] >= $arrBoardInfo["list"][0]["writelevel"]){ + include($_SITE["BOARD_SKIN"].$arrBoardInfo["list"][0][skin]."/pass.php"); + }else{ + jsMsg($arrLevelInfo[$arrBoardInfo["list"][0]["writelevel"]] . " 이상 글 삭제가 가능 합니다."); + jsHistory("-1"); + } + break; + + case("list"): + default: + //getBoardListBase : 파일첨부여부는 부르지 않음 (다중파일을 올려서 group by 를 써야하므로 일반적일때는 이걸로만) + //getBoardListBaseNFile : 파일테이블과 left join + //getBoardListBaseNMemoCnt : 베이스 + 메모카운트 + + //관리자이거나 회원등급이 게시물 목록보기등급 이상일 경우 + if($_SESSION[$_SITE["DOMAIN"]]["ADMIN"]["ID"] || $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["LEVEL"] >= $arrBoardInfo["list"][0]["listlevel"]){ + if($arrBoardInfo["list"][0][skin]=="gallery" || $arrBoardInfo["list"][0][skin]=="youtube" || $arrBoardInfo["list"][0][skin]=="event" || $arrBoardInfo["list"][0][skin]=="site" || $arrBoardInfo["list"][0][skin]=="portfolio" || $arrBoardInfo["list"][0][skin]=="certify" || $arrBoardInfo["list"][0][skin]=="news"){ + $arrBoardList = getBoardListBaseNFile($arrBoardInfo["list"][0]["boardid"], $_GET["category"], $_GET[sw], $_GET[sk], $arrBoardInfo["list"][0]["scale"], $_GET[offset]); + + }else if($arrBoardInfo["list"][0][skin]=="gallery_eng" || $arrBoardInfo["list"][0][skin]=="youtube_eng" || $arrBoardInfo["list"][0][skin]=="event_eng" || $arrBoardInfo["list"][0][skin]=="site_eng" || $arrBoardInfo["list"][0][skin]=="portfolio_eng" || $arrBoardInfo["list"][0][skin]=="certify_eng" || $arrBoardInfo["list"][0][skin]=="news_eng"){ + $arrBoardList = getBoardListBaseNFile($arrBoardInfo["list"][0]["boardid"], $_GET["category"], $_GET[sw], $_GET[sk], $arrBoardInfo["list"][0]["scale"], $_GET[offset]); + + }else if($arrBoardInfo["list"][0][skin]=="schedule"){ + //칼렌다 틀 가져오기 날짜설정 + if(!$_REQUEST[cal_date]){ + $cal_date = date("Y-m-d"); + }else{ + $cal_date = $_REQUEST[cal_date]; + } + //날짜를 - 구분자로 배열로 만듬 + $arrDate = explode("-",$cal_date); + + //양력달력 + $arrSolarCalendar = getDiarySet(intval($arrDate[0]), intval($arrDate[1]), intval($arrDate[2])); + + $arrBoardList = getBoardListSchedule($arrBoardInfo["list"][0]["boardid"], $arrSolarCalendar[first_before], $arrSolarCalendar[last_after]); + }else{ + $arrBoardList = getBoardListBaseNMemoCnt($arrBoardInfo["list"][0]["boardid"], $_GET["category"], $_GET[sw], $_GET[sk], $arrBoardInfo["list"][0]["scale"], $_GET[offset]); + } + if($boardid=="after" || $boardid=="qna"){ + include($_SITE["BOARD_SKIN"].$arrBoardInfo["list"][0][skin]."/list.php"); + }else{ + include($_SITE["BOARD_SKIN"].$arrBoardInfo["list"][0][skin]."/list.php"); + } + + }else{ + jsMsg($arrLevelInfo[$arrBoardInfo["list"][0]["listlevel"]] . " 이상 글 목록보기가 가능 합니다."); + jsHistory("-1"); + } + break; + } + ?> +
+
+ + \ No newline at end of file diff --git a/backoffice/module/board/comment_list.php b/backoffice/module/board/comment_list.php new file mode 100644 index 0000000..7bc8863 --- /dev/null +++ b/backoffice/module/board/comment_list.php @@ -0,0 +1,93 @@ + +
+ +
+

댓글 관리

+ + + +
 전체 :
+ +++++++++ + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + +
No.ID작성자내용IP주소등록일삭제
삭제
등록된 댓글이 없습니다.
+ +
+ +
+ +
+ + + +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/board/menu.php b/backoffice/module/board/menu.php new file mode 100644 index 0000000..437716f --- /dev/null +++ b/backoffice/module/board/menu.php @@ -0,0 +1,19 @@ +
+

게시판 관리

+ + +
+ + diff --git a/backoffice/module/category/category.php b/backoffice/module/category/category.php new file mode 100644 index 0000000..c320c06 --- /dev/null +++ b/backoffice/module/category/category.php @@ -0,0 +1,110 @@ + +
+ +
+

분류 관리

+ + + + + + + + + + + + + + + + + + + + + + + + 0){ + for($i=0; $i<$arrList["total"]; $i++){ + ?> + + + + + + + + + + + + "; + } + ?> + +
No.하위하위보기UP / DOWN카테고리명관리
"><?=$arrList[">&s_cat_no=">UP &s_cat_no=">DOWN">수정 + &s_cat_no=" onclick="if(confirm('[] 번호 카테고리를 정말 삭제 하시겠습니까?\n\n하위 카테고리는 현재 개 입니다.\n\n하위 카테고리도 모두 삭제되며 복구되지 않습니다.')){return true;}else{return false;}">삭제
카테고리가 존재하지 않습니다.
+ +
+
+ \ No newline at end of file diff --git a/backoffice/module/category/category_evn.php b/backoffice/module/category/category_evn.php new file mode 100644 index 0000000..897e64f --- /dev/null +++ b/backoffice/module/category/category_evn.php @@ -0,0 +1,91 @@ + \ No newline at end of file diff --git a/backoffice/module/category/category_info.php b/backoffice/module/category/category_info.php new file mode 100644 index 0000000..63b24b2 --- /dev/null +++ b/backoffice/module/category/category_info.php @@ -0,0 +1,83 @@ + + + +
+ +
+

분류 관리 수정

+ +
+ +"> + +
+
  수정
+
목록
+
+ + + + + + + + + + + + + + + +
카테고리명" style="width:200px;" class="input" />
카테고리 이미지 + 0){ + ?> + ">  |  ','');"> + + (최적사이즈: 가로 1000px ) + +
+
+
+   + +
+
+ +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/category/images/btn_view.gif b/backoffice/module/category/images/btn_view.gif new file mode 100644 index 0000000..ce88adc Binary files /dev/null and b/backoffice/module/category/images/btn_view.gif differ diff --git a/backoffice/module/category/menu.php b/backoffice/module/category/menu.php new file mode 100644 index 0000000..805c82b --- /dev/null +++ b/backoffice/module/category/menu.php @@ -0,0 +1,9 @@ +
+

분류 관리

+ + +
+ + diff --git a/backoffice/module/coupon/coupon.php b/backoffice/module/coupon/coupon.php new file mode 100644 index 0000000..db9fec7 --- /dev/null +++ b/backoffice/module/coupon/coupon.php @@ -0,0 +1,136 @@ + + + + +
+ +
+

쿠폰 관리

+ + +

이벤트 쿠폰

+ + + + + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + +
No.쿠폰명쿠폰내용할인금액유효기간발급수량발급일관리
~ 수정/발행된 쿠폰 | 삭제
등록된 쿠폰이 없습니다.
+
+
+ +

상품별 쿠폰

+ + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + +
No.상품명기간할인수량관리
~ 수정 | 발급회원보기
등록된 쿠폰이 없습니다.
+ +
+ +
+ +
+ + + +
+ + +
+
+ \ No newline at end of file diff --git a/backoffice/module/coupon/coupon_evn.php b/backoffice/module/coupon/coupon_evn.php new file mode 100644 index 0000000..8fe5986 --- /dev/null +++ b/backoffice/module/coupon/coupon_evn.php @@ -0,0 +1,166 @@ + 0){ + jsGo("coupon.php","","쿠폰을 발생하였습니다."); + }else{ + jsMsg("쿠폰 발생에 실패 하였습니다."); + jsHistory("-1") ; + } + +}else if($_POST[evnMode]=="modify"){ + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + $RS = updateCoupon(mysql_real_escape_string($_REQUEST[idx])); + + //DB해제 + SetDisConn($dblink); + + if($RS > 0){ + jsGo($_POST[returnURL],"","쿠폰정보를 수정하였습니다."); + }else{ + jsMsg("쿠폰정보 수정에 실패 하였습니다."); + jsHistory("-1") ; + } + + +}else if($_POST[evnMode]=="add_coupon"){ + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + $RS = updateUserCoupon(mysql_real_escape_string($_REQUEST[idx])); + + //DB해제 + SetDisConn($dblink); + + if($RS > 0){ +?> + +"; + $contents .= "

".stripslashes($arrInfo["list"][0]["coupon_name"])."

"; + $contents .= "
".stripslashes($arrInfo["list"][0]["coupon_content"])."
"; + $contents .= "
"; + $contents .= " 쿠폰사용기간 : ".$arrInfo["list"][0]["coupon_edate"]." 까지"; + if($arrInfo["list"][0]["over_price"] > 0) { + $saleprice = ($arrInfo["list"][0][coupon_dis]*$arrInfo["list"][0][over_price])/100; + $contents .= "
최대 ".number_format($saleprice)."원까지 할인"; + } + $contents .= "
"; + $contents .= ""; +?> + + +
+ + + + + + + + + +
+ + + + + + + \ No newline at end of file diff --git a/backoffice/module/coupon/coupon_info.php b/backoffice/module/coupon/coupon_info.php new file mode 100644 index 0000000..e76cf47 --- /dev/null +++ b/backoffice/module/coupon/coupon_info.php @@ -0,0 +1,190 @@ + +
+ +
+

쿠폰 관리

+ + + + + +
+ +"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
쿠폰명">
쿠폰설명
유효기간"> ~ + " class="input datePicker">
쿠폰적용 상한가"> (상한가 금액만큼만 할인율이 적용됨, 미기재시 제한없음)
결제금액 하한가"> (결제금액 하한가이상만 적용됨, 미기재시 제한없음)
쿠폰금액(할인율)"> + +
발급수량 + + 개, 추가발행: 숫자만 입력하세요. (수량만큼 쿠폰이 생성됩니다.) + + "> 숫자만 입력하세요. (수량만큼 쿠폰이 생성됩니다.) +
+
+
+
+ +

발행된 쿠폰현황

+ + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + + + + + + +
No.쿠폰번호회원아이디회원명사용여부사용일등록일관리
+ + 메일발송 + + 회원등록 + | 삭제
등록된 쿠폰이 없습니다.
+ +
+ + + + +
+
+ + + + +
+ +
+
+ \ No newline at end of file diff --git a/backoffice/module/html_contents/html_contents.lib.php b/backoffice/module/html_contents/html_contents.lib.php new file mode 100644 index 0000000..65b7991 --- /dev/null +++ b/backoffice/module/html_contents/html_contents.lib.php @@ -0,0 +1,96 @@ + 0){ + return true; + }else{ + return false; + } +} + + + +//컨텐츠 수정하기 +function editContents($idx){ + // 테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["html_contents"]; + + // 테이블에 입력 + $sql = "UPDATE ".$tbl." set + subject='".mysql_real_escape_string($_POST[f_subject])."', + usehtml='".mysql_real_escape_string($_POST[f_usehtml])."', + contents='".mysql_real_escape_string($_POST[f_contents])."' + WHERE idx='".mysql_real_escape_string($_POST[idx])."' + "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($rs){ + return true; + }else{ + return false; + } + +} + +//컨텐츠 삭제하기 +function deleteContents($idx){ + // 테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["html_contents"]; + + //게시판 테이블에서 삭제 + $sql = "DELETE FROM ".$tbl." + WHERE idx='".mysql_real_escape_string($_POST[idx])."' + "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($total > 0){ + return true; + }else{ + return false; + } +} + +//컨텐츠 가져오기 +function getContents($code){ + // 테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["html_contents"]; + + $sql = "SELECT * "; + $sql .= "FROM $tbl "; + $sql .= "WHERE code = '$code' "; +// echo $sql; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $row = mysql_fetch_assoc($rs); + $row[contents] = stripslashes($row[contents]); + if($row[usehtml]=="N"){ + $row[contents] = htmlspecialchars($row[contents]); + $row[contents] = nl2br($row[contents]); + } + $rtn = $row[contents]; + }else{ + $rtn = ""; + } + return $rtn; +} +?> \ No newline at end of file diff --git a/backoffice/module/html_contents/html_contents.php b/backoffice/module/html_contents/html_contents.php new file mode 100644 index 0000000..b1f37ff --- /dev/null +++ b/backoffice/module/html_contents/html_contents.php @@ -0,0 +1,108 @@ + +
+ +
+

HTML 관리

+ + + + + + + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + +
No.콘텐츠 코드콘텐츠 제목HTML생성일관리
수정 + 삭제
생성된 콘텐츠가 없습니다.
+ +
+ +
+ +
+ + +
+
+
+ + \ No newline at end of file diff --git a/backoffice/module/html_contents/html_contents_evn.php b/backoffice/module/html_contents/html_contents_evn.php new file mode 100644 index 0000000..68c749b --- /dev/null +++ b/backoffice/module/html_contents/html_contents_evn.php @@ -0,0 +1,57 @@ + \ No newline at end of file diff --git a/backoffice/module/html_contents/html_contents_info.php b/backoffice/module/html_contents/html_contents_info.php new file mode 100644 index 0000000..4b90ac7 --- /dev/null +++ b/backoffice/module/html_contents/html_contents_info.php @@ -0,0 +1,86 @@ + + + +
+ +
+

HTML 관리

+ + + +
+ + + +
+
수정
+
목록
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
콘텐츠 Code생성일
콘텐츠 제목" style="width:99%;" class="input" />HTML 사용
콘텐츠 내용 + + + +
+ +
+
+ + +
+
+
+
+
+ \ No newline at end of file diff --git a/backoffice/module/html_contents/menu.php b/backoffice/module/html_contents/menu.php new file mode 100644 index 0000000..100efcb --- /dev/null +++ b/backoffice/module/html_contents/menu.php @@ -0,0 +1,9 @@ +
+

HTML 관리

+ + +
+ + diff --git a/backoffice/module/log/log_browser_view.php b/backoffice/module/log/log_browser_view.php new file mode 100644 index 0000000..ef80587 --- /dev/null +++ b/backoffice/module/log/log_browser_view.php @@ -0,0 +1,85 @@ + +
+ +
+

접속통계

+ + + + + + + + +
+ ~ + 종류 브라우저 : +
+ + + + + +
+ + + + + + + + 0){ + for($i=0;$i<$arrList["list"]["total"];$i++){ + ?> + + + + + + + + + + + +
브라우저방문수점유율그래프
%
" height="10">
검색된 자료가 없습니다.
+
+
+ +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/log/log_daily_view.php b/backoffice/module/log/log_daily_view.php new file mode 100644 index 0000000..3511b80 --- /dev/null +++ b/backoffice/module/log/log_daily_view.php @@ -0,0 +1,91 @@ + +
+ +
+

접속통계

+ + + + + + + + +
+ ~ + +
+ + + + +
+ + + + + + + + 0){ + for($i=0;$i<$arrList["total"];$i++){ + ?> + + + + + + + + + + + + + + +
날짜방문수일/월그래프
--&e_date=--">-- () %
" height="10">
검색된 자료가 없습니다.
+
+
+
+ \ No newline at end of file diff --git a/backoffice/module/log/log_domain_view.php b/backoffice/module/log/log_domain_view.php new file mode 100644 index 0000000..712e510 --- /dev/null +++ b/backoffice/module/log/log_domain_view.php @@ -0,0 +1,86 @@ + +
+ +
+

접속통계

+ + + + + + + + +
+ ~ + 개의 링크된 도메인 : +
+ + + + + +
+ + + + + + + + 0){ + for($i=0;$i<$arrList["list"]["total"];$i++){ + ?> + + + + + + + + + + + +
도메인방문수점유율그래프
" target="_blank"> %
" height="10">
검색된 자료가 없습니다.
+
+
+ +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/log/log_hourly_view.php b/backoffice/module/log/log_hourly_view.php new file mode 100644 index 0000000..c96889e --- /dev/null +++ b/backoffice/module/log/log_hourly_view.php @@ -0,0 +1,95 @@ + +
+ +
+

접속통계

+ + + + + + + + +
+ ~ + +
+ + + + + + + + + +
AMPM
+ + + + + + + + + + + + + + + +
시간방문수시/일그래프
%
" height="10">
+
+ + + + + + + + + + + + + + + +
시간방문수시/일그래프
%
" height="10">
+
+
+
+ \ No newline at end of file diff --git a/backoffice/module/log/log_ip_view.php b/backoffice/module/log/log_ip_view.php new file mode 100644 index 0000000..55564d8 --- /dev/null +++ b/backoffice/module/log/log_ip_view.php @@ -0,0 +1,85 @@ + +
+ +
+

접속통계

+ + + + + + + + +
+ ~ + 종류 IP Address : +
+ + + + + +
+ + + + + + + + 0){ + for($i=0;$i<$arrList["list"]["total"];$i++){ + ?> + + + + + + + + + + + +
IP Address방문수점유율그래프
%
" height="10">
검색된 자료가 없습니다.
+
+
+ +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/log/log_keyword_view.php b/backoffice/module/log/log_keyword_view.php new file mode 100644 index 0000000..8a1732e --- /dev/null +++ b/backoffice/module/log/log_keyword_view.php @@ -0,0 +1,85 @@ + +
+ +
+

접속통계

+ + + + + + + + +
+ ~ + 개의 키워드 : + (방문자가 검색엔진을 통해서 왔을경우 && 키워드가 있을경우 에만 표시되므로 전체 방문자수와 키워드별 방문자수 합계가 동일하지 않음) +
+ + + + +
+ + + + + + + + 0){ + for($i=0;$i<$arrList["list"]["total"];$i++){ + ?> + + + + + + + + + + + +
키워드방문수점유율그래프
%
" height="10">
검색된 자료가 없습니다.
+
+
+ +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/log/log_log_view.php b/backoffice/module/log/log_log_view.php new file mode 100644 index 0000000..23de20d --- /dev/null +++ b/backoffice/module/log/log_log_view.php @@ -0,0 +1,97 @@ + +
+ +
+

접속통계

+ + + + + + + + +
+ ~ + 개의 기록 +
+ + + + +
+ + + + + + + + + + + 0){ + for($i=0;$i<$arrList["list"]["total"];$i++){ + ?> + > + + + + + + + + + + + + + +
No접속주소/접속페이지OS브라우저ip검색/키워드방문일
+ + + +
+ + | +
검색된 자료가 없습니다.
+
+
+ +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/log/log_monthly_view.php b/backoffice/module/log/log_monthly_view.php new file mode 100644 index 0000000..7d04f59 --- /dev/null +++ b/backoffice/module/log/log_monthly_view.php @@ -0,0 +1,80 @@ + + +
+ +
+

접속통계

+ + + + + + + + +
+ ~ + +
+ + + + +
+ + + + + + + + 0){ + for($i=0;$i<$arrList["total"];$i++){ + ?> + + + + + + + + + + + +
날짜방문수월/년그래프
--01&e_date=--31">- %
" height="10">
검색된 자료가 없습니다.
+
+
+
+ \ No newline at end of file diff --git a/backoffice/module/log/log_os_view.php b/backoffice/module/log/log_os_view.php new file mode 100644 index 0000000..b3d3885 --- /dev/null +++ b/backoffice/module/log/log_os_view.php @@ -0,0 +1,85 @@ + +
+ +
+

접속통계

+ + + + + + + + +
+ ~ + 종류 OS : +
+ + + + + +
+ + + + + + + + 0){ + for($i=0;$i<$arrList["list"]["total"];$i++){ + ?> + + + + + + + + + + + +
OS방문수점유율그래프
%
" height="10">
검색된 자료가 없습니다.
+
+
+ +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/log/log_page_view.php b/backoffice/module/log/log_page_view.php new file mode 100644 index 0000000..5613d03 --- /dev/null +++ b/backoffice/module/log/log_page_view.php @@ -0,0 +1,85 @@ + +
+ +
+

접속통계

+ + + + + + + + +
+ ~ + 개의 페이지 : +
+ + + + +
+ + + + + + + + 0){ + for($i=0;$i<$arrList["list"]["total"];$i++){ + ?> + + + + + + + + + + + +
페이지방문수점유율그래프
" target="_blank"> %
" height="10">
검색된 자료가 없습니다.
+
+
+ +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/log/log_referer_view.php b/backoffice/module/log/log_referer_view.php new file mode 100644 index 0000000..726113f --- /dev/null +++ b/backoffice/module/log/log_referer_view.php @@ -0,0 +1,85 @@ + +
+ +
+

접속통계

+ + + + + + + + +
+ ~ + 개의 링크된 주소 : +
+ + + + +
+ + + + + + + + 0){ + for($i=0;$i<$arrList["list"]["total"];$i++){ + ?> + + + + + + + + + + + +
주소방문수점유율그래프
" target="_blank"> %
" height="10">
검색된 자료가 없습니다.
+
+
+ +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/log/log_searchengin_view.php b/backoffice/module/log/log_searchengin_view.php new file mode 100644 index 0000000..89e4de9 --- /dev/null +++ b/backoffice/module/log/log_searchengin_view.php @@ -0,0 +1,85 @@ + +
+ +
+

접속통계

+ + + + + + + + +
+ ~ + 개의 검색엔진 : + (방문자가 검색엔진을 통해서 왔을경우에만 표시되므로 전체 방문자수와 검색엔진별 방문자수 합계가 동일하지 않음) +
+ + + + +
+ + + + + + + + 0){ + for($i=0;$i<$arrList["list"]["total"];$i++){ + ?> + + + + + + + + + + + +
검색엔진방문수점유율그래프
" target="_blank"> %
" height="10">
검색된 자료가 없습니다.
+
+
+ +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/log/menu.php b/backoffice/module/log/menu.php new file mode 100644 index 0000000..68fabf1 --- /dev/null +++ b/backoffice/module/log/menu.php @@ -0,0 +1,20 @@ +
+

접속통계

+ + +
+ + diff --git a/backoffice/module/mail/ajax_send_email.php b/backoffice/module/mail/ajax_send_email.php new file mode 100644 index 0000000..e4e6b26 --- /dev/null +++ b/backoffice/module/mail/ajax_send_email.php @@ -0,0 +1,91 @@ + 0){ + //남은 메일목록이 있다면 메일발송 + if($arrCount["remain_total"] > 0){ + //보낼 메일갯수만큼 루프돌면서 메일 발송 + if($arrList["total"] > 0){ + for($i=0; $i < $arrList["total"]; $i++){ + //메일발송 + sendMail($arrList["list"][$i], $arrMailInfo); + + //발송한것 체크스트링 작성 + $updateString .=$arrList["list"][$i][idx]; + if($i != $arrList["total"]-1){ + $updateString .= ","; + } + } + + //보낸메일 체크 + updateEmailList(mysql_real_escape_string($_REQUEST[idx]),$updateString); + + //보낼메일 개수정보 다시가져오기 + $arrCount = getEmailCount(mysql_real_escape_string($_REQUEST[idx])); + ?> + + + + + + + + + +
발송한것:
발송예정:
+
+ 진행상황 + + + + + +
%">%">
+
+ 현재 % 발송 + \ No newline at end of file diff --git a/backoffice/module/mail/mail.php b/backoffice/module/mail/mail.php new file mode 100644 index 0000000..8e004d4 --- /dev/null +++ b/backoffice/module/mail/mail.php @@ -0,0 +1,168 @@ + +
+ +
+

메일 관리

+ +
+ 회원가입 + 회원탈퇴 + + $val){ + ?> + + +
+ + +
+ 회원가입/탈퇴 시 제목 +
    +
  • {NAME} 회원명
  • +
+
+ +
+ +
+ 회원가입/탈퇴 시 내용 +
    +
  • {ID} 회원ID
  • +
  • {NAME} 회원명
  • +
  • {EMAIL} 이메일
  • +
  • {ZIP} 우편번호
  • +
  • {ADDRESS} 주소
  • +
  • {ADDRESSEXT} 상세주소
  • +
  • {WDATE} 가입일
  • +
  • {NDATE} 오늘
  • +
+
+ + +
+
+ 쇼핑주문 시 제목 +
    +
  • {NAME} 회원명
  • +
+
+ +
+ +
+ 내용 +
    +
  • {ID} 회원ID
  • +
  • {NAME} 회원명
  • +
  • {EMAIL} 이메일
  • +
  • {ORDERZIP} 주문자 우편번호
  • +
  • {ORDERADDRESS} 주문자 주소
  • +
  • {ORDERADDRESSEXT} 주문자 상세주소
  • +
  • {ORDERPHONE} 주문자 전화
  • +
  • {ORDERNO} 주문번호
  • +
  • {SUMMARY} 주문요약
  • +
  • {PAYTYPE} 결제방식
  • +
  • {BANKTYPE} 결제계좌
  • +
  • {TOTAL} 주문금액
  • +
  • {PAYTOTAL} 결제금액
  • +
  • {SHIPNAME} 수령자명
  • +
  • {SHIPZIP} 수령자 우편번호
  • +
  • {SHIPADDRESS} 수령자 주소
  • +
  • {SHIPADDRESSEXT} 수령자 상세주소
  • +
  • {SHIPPHONE} 수령자 전화
  • +
  • {SHIPMOBILE} 수령자 휴대전화
  • +
  • {COMMENT} 주문시 하실 말씀
  • +
+
+ + 0){ + ?> + + +

시 발송메일 설정

+
+ + "> + + + + + + + + + + + + + + + + + + + +
사용여부>
제목" class="input" />
내용 + +
+
+
+ +
+
+ +
+
+ \ No newline at end of file diff --git a/backoffice/module/mail/menu.php b/backoffice/module/mail/menu.php new file mode 100644 index 0000000..c321732 --- /dev/null +++ b/backoffice/module/mail/menu.php @@ -0,0 +1,16 @@ +
+

메일 관리

+ + +
+ + diff --git a/backoffice/module/mail/send.lib.php b/backoffice/module/mail/send.lib.php new file mode 100644 index 0000000..9a29b37 --- /dev/null +++ b/backoffice/module/mail/send.lib.php @@ -0,0 +1,207 @@ + 0){ + return true; + }else{ + return false; + } +} + + + +//메일발송 수정하기 +function editSend($idx){ + // 테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["send"]; + + // 테이블에 입력 + $sql = "UPDATE ".$tbl." set + subject='".mysql_real_escape_string($_POST[subject])."', + contents='".mysql_real_escape_string($_POST[contents])."' + WHERE idx='".mysql_real_escape_string($_POST[idx])."' + "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($rs){ + return true; + }else{ + return false; + } + +} + +//메일발송 삭제하기 +function deleteSend($idx){ + // 테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["send"]; + $tbl_email = $GLOBALS["_conf_tbl"]["send_email"]; + + $sql = "DELETE FROM ".$tbl." + WHERE idx='".mysql_real_escape_string($_POST[idx])."' + "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($total > 0){ + $sql = "DELETE FROM ".$tbl_email." + WHERE c_idx='".mysql_real_escape_string($_POST[idx])."' + "; + + return true; + }else{ + return false; + } +} + + +//메일 발송목록 가져오기 +function getEmailCount($c_idx){ + $tbl_email = $GLOBALS["_conf_tbl"]["send_email"]; + + //보낸갯수 가져오기 + $sql = "SELECT count(*) FROM $tbl_email WHERE c_idx='$c_idx' AND chk='Y' "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $send_total = mysql_result($rs,0,0); + + $list['send_total'] = $send_total; + + //남은갯수 가져오기 + $sql = "SELECT count(*) FROM $tbl_email WHERE c_idx='$c_idx' AND chk='N' "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $remain_total = mysql_result($rs,0,0); + $list['remain_total'] = $remain_total; + + //전체갯수 가져오기 + $sql = "SELECT count(*) FROM $tbl_email WHERE c_idx='$c_idx' "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_result($rs,0,0); + $list['total'] = $total; + + return $list; +} + +//메일 발송목록 가져오기 +function getEmailList($c_idx, $limit){ + $tbl_email = $GLOBALS["_conf_tbl"]["send_email"]; + + $sql = "SELECT * FROM $tbl_email WHERE c_idx='$c_idx' AND chk='N' limit $limit"; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_num_rows($rs); + + + if($total > 0){ + $list['total'] = $total; + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + return $list; +} + +//메일 발송후 업데이트 +function updateEmailList($c_idx, $strIdx){ + $tbl = $GLOBALS["_conf_tbl"]["send"]; + $tbl_email = $GLOBALS["_conf_tbl"]["send_email"]; + + //메일리스트에 업데이트 + $sql = "UPDATE $tbl_email set chk='Y' WHERE idx in ($strIdx)"; + $rs = mysql_query($sql, $GLOBALS[dblink]); + + //발송통수 설정 + $arrCount = explode(",",$strIdx); + $count_send = count($arrCount); + //메일정보에 업데이트 + $sql = "UPDATE ".$tbl." set + send_total = (send_total + $count_send) + WHERE idx='".$c_idx."' + "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + + if($rs){ + return true; + }else{ + return false; + } +} + +//메일 발송후 업데이트 +function updateMailStatus($c_idx, $strStatus, $sendTotal){ + $tbl = $GLOBALS["_conf_tbl"]["send"]; + + if($strStatus=="SEND" && $sendTotal=="0"){ + $s_sql = "s_date=now(),"; + } + + if($strStatus=="FINISH"){ + $f_sql = "e_date=now(),"; + } + + //메일정보에 업데이트 + $sql = "UPDATE ".$tbl." set + $s_sql + $f_sql + status = '$strStatus' + WHERE idx='".$c_idx."' + "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + + if($rs){ + return true; + }else{ + return false; + } +} + +//메일링 +function sendMail($arrInfo, $arrMailInfo){ + //변수치환 + $Mail_Subject = str_replace("{NAME}", $arrInfo["name"], stripslashes($arrMailInfo["list"][0]["subject"])); + $Mail_Contents = str_replace("{NAME}", $arrInfo["name"], stripslashes($arrMailInfo["list"][0]["contents"])); + $mail = new smtp("localhost"); //자체발송일 경우, 서버를 지정할수도 있음. + //$mail->debug(); + $mail->send($arrInfo["name"]."<".$arrInfo["email"].">", $GLOBALS["_SITE"]["NAME"]."<".$GLOBALS["_SITE"]["EMAIL"].">", $Mail_Subject , $Mail_Contents, "y"); + return true; +} +?> \ No newline at end of file diff --git a/backoffice/module/mail/send_add.php b/backoffice/module/mail/send_add.php new file mode 100644 index 0000000..ead7934 --- /dev/null +++ b/backoffice/module/mail/send_add.php @@ -0,0 +1,80 @@ + +
+ +
+

메일 관리

+ + + + + + + + + + + + + + +
등록목록으로 돌아가기
메일제목과 내용중에 {NAME} 입력시 회원이름으로 변경되어 발송됩니다.
+ + + + + + + + + + + + +
메일제목 메일수신신동의 회원만
메일내용  + BasePath = '/common/fckeditor/' ; + $oFCKeditor->Height = '500' ; + $oFCKeditor->ToolbarSet = 'Mini'; + $oFCKeditor->Config['EnterMode'] = 'br'; + $oFCKeditor->Config['SkinPath'] = $oFCKeditor->BasePath . 'editor/skins/silver/' ; + $oFCKeditor->Value = stripslashes($arrInfo["list"][0]["contents"]) ; + $oFCKeditor->Create() ; + ?> +
+

+ +

+ +
+
+ \ No newline at end of file diff --git a/backoffice/module/mail/send_email.php b/backoffice/module/mail/send_email.php new file mode 100644 index 0000000..9623563 --- /dev/null +++ b/backoffice/module/mail/send_email.php @@ -0,0 +1,161 @@ + +
+ +
+

메일 관리

+ + + + + + + + + + + +
메일 발송 현황1회에 + + 통씩 발송 +
+ + + + + + + + + + +
제목:
전체:
+ +
+ + + + + + + + + +
발송한것:
발송예정:
+
+ 진행상황 + + + + + +
%">%">
+
+ 현재 % 발송 +
+ 발송시작 | 발송중지 | 발송중지후 창닫기 +
+
+ +
+
+ \ No newline at end of file diff --git a/backoffice/module/mail/send_evn.php b/backoffice/module/mail/send_evn.php new file mode 100644 index 0000000..dff9b17 --- /dev/null +++ b/backoffice/module/mail/send_evn.php @@ -0,0 +1,59 @@ + \ No newline at end of file diff --git a/backoffice/module/mail/send_info.php b/backoffice/module/mail/send_info.php new file mode 100644 index 0000000..159df33 --- /dev/null +++ b/backoffice/module/mail/send_info.php @@ -0,0 +1,81 @@ + +
+ +
+

메일 관리

+ + + +
+ +"> + + + + + + + + + +
수정목록으로 돌아가기
메일제목과 내용중에 {NAME} 입력시 회원이름으로 변경되어 발송됩니다.
+ + + + + + + + + + + + +
메일 제목 ">
메일 내용  + BasePath = '/common/fckeditor/' ; + $oFCKeditor->Height = '500' ; + $oFCKeditor->ToolbarSet = 'Mini'; + $oFCKeditor->Config['EnterMode'] = 'br'; + $oFCKeditor->Config['SkinPath'] = $oFCKeditor->BasePath . 'editor/skins/silver/' ; + $oFCKeditor->Value = stripslashes($arrInfo["list"][0]["contents"]) ; + $oFCKeditor->Create() ; + ?> +
+ + +

+ +

+
+
+
+ \ No newline at end of file diff --git a/backoffice/module/mail/send_list.php b/backoffice/module/mail/send_list.php new file mode 100644 index 0000000..40a7beb --- /dev/null +++ b/backoffice/module/mail/send_list.php @@ -0,0 +1,100 @@ + +
+ +
+

메일 관리

+ + + + + + +
전체 :
+ + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + + + + + + + + +
No.메일제목상태발송입력일발송시작발송종료발송/전체관리
완료 / 수정 | 삭제
메일발송 목록이 없습니다.
+ +
+ + + + +
+ +
+ + +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/member/member.php b/backoffice/module/member/member.php new file mode 100644 index 0000000..437f7df --- /dev/null +++ b/backoffice/module/member/member.php @@ -0,0 +1,154 @@ + + + + + + +
+ +
+

회원 관리

+ + + + +

회원검색

+ + + + + + + + + + + + + + + + + + + + + +
검색범위 + +
가입일 + ~ +
키워드 + +
+
+
+
 전체 :
+ +
+ + + + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + + + +
No.등급ID성명이메일로그인횟수등록일관리
수정 + 삭제
등록된 회원이 없습니다.
+ +
+ +
+ +
+ + + +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/member/member_evn.php b/backoffice/module/member/member_evn.php new file mode 100644 index 0000000..b51d28c --- /dev/null +++ b/backoffice/module/member/member_evn.php @@ -0,0 +1,48 @@ + \ No newline at end of file diff --git a/backoffice/module/member/member_info.php b/backoffice/module/member/member_info.php new file mode 100644 index 0000000..e658ce7 --- /dev/null +++ b/backoffice/module/member/member_info.php @@ -0,0 +1,307 @@ + +
+ +
+

회원 관리

+ + + + +
+ +"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
회원등급 + +
아이디
비밀번호
비밀번호 확인
이 름
생년월일"/> + +
성별>남 >여
주 소 +
+ "> + 우편번호검색
+ + +
+
">
+
">
+
전화번호 + - + + - +
휴대번호 + - + + - +
이메일 + @ + +
SMS 수신여부 + > 예 + > 아니오 +
SMS 수신 동의일시
Email 수신여부>예 >아니오
메일수신 동의일시
로그인 횟수
최근로그인
업데이트일
회원가입일
+ +
+
+ +
+
+
+ +
+
+ + \ No newline at end of file diff --git a/backoffice/module/member/member_level.php b/backoffice/module/member/member_level.php new file mode 100644 index 0000000..41d81d9 --- /dev/null +++ b/backoffice/module/member/member_level.php @@ -0,0 +1,101 @@ + +
+ +
+

회원등급 관리

+ + + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + +
No.회원등급등급이름등록일관리
수정 삭제
생성된 회원등급이 없습니다.
+ +
+
+ +
+ +
+ + +
+
+
+ + \ No newline at end of file diff --git a/backoffice/module/member/member_level_evn.php b/backoffice/module/member/member_level_evn.php new file mode 100644 index 0000000..58de6c0 --- /dev/null +++ b/backoffice/module/member/member_level_evn.php @@ -0,0 +1,59 @@ + \ No newline at end of file diff --git a/backoffice/module/member/member_level_info.php b/backoffice/module/member/member_level_info.php new file mode 100644 index 0000000..74d0be3 --- /dev/null +++ b/backoffice/module/member/member_level_info.php @@ -0,0 +1,73 @@ + +
+ +
+

회원등급 관리

+ + +
+ + + + + + + + + + + + + + + + + + + + + + +
회원등급" style="width:200px;" class="input" />
회원등급 이름" style="width:200px;" class="input" />
생성일
+ +
+
+ +
+
+
+
+
+ \ No newline at end of file diff --git a/backoffice/module/member/member_to_csv.php b/backoffice/module/member/member_to_csv.php new file mode 100644 index 0000000..8c64b15 --- /dev/null +++ b/backoffice/module/member/member_to_csv.php @@ -0,0 +1,62 @@ + \ No newline at end of file diff --git a/backoffice/module/member/menu.php b/backoffice/module/member/menu.php new file mode 100644 index 0000000..22c6e8d --- /dev/null +++ b/backoffice/module/member/menu.php @@ -0,0 +1,14 @@ +
+

회원 관리

+ + +
+ + diff --git a/backoffice/module/member/search_member.php b/backoffice/module/member/search_member.php new file mode 100644 index 0000000..8c1d99a --- /dev/null +++ b/backoffice/module/member/search_member.php @@ -0,0 +1,139 @@ + + + + + + + +<?=$_SITE["NAME"]?> 관리자 + + + + + + + + + + + +
전체 :
+ + + + + + + + + + + + + + + + + +
검색범위 + +
가입일 + ~ +
키워드 + +
+ + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + + + + + + + +
No.등급이메일(ID) / 패스워드성명생년성별로그인횟수등록일
/ 남":""?>
등록된 회원이 없습니다.
+ +
+ + + + +
+ +
+ + + +
+ + + \ No newline at end of file diff --git a/backoffice/module/one_to_one/one_to_one.php b/backoffice/module/one_to_one/one_to_one.php new file mode 100644 index 0000000..dbbba0a --- /dev/null +++ b/backoffice/module/one_to_one/one_to_one.php @@ -0,0 +1,99 @@ + + +
+ +
+

1:1 문의관리

+ + + + + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + +
No.이름상품제목처리신청일수정 | 삭제
()">">수정 | 삭제
등록된 문의건이 없습니다.
+ +
+ +
+ +
+ + + +
+ +
+
+ + diff --git a/backoffice/module/one_to_one/one_to_one_evn.php b/backoffice/module/one_to_one/one_to_one_evn.php new file mode 100644 index 0000000..4d69e39 --- /dev/null +++ b/backoffice/module/one_to_one/one_to_one_evn.php @@ -0,0 +1,46 @@ + \ No newline at end of file diff --git a/backoffice/module/one_to_one/one_to_one_info.php b/backoffice/module/one_to_one/one_to_one_info.php new file mode 100644 index 0000000..26263b2 --- /dev/null +++ b/backoffice/module/one_to_one/one_to_one_info.php @@ -0,0 +1,85 @@ + + +
+ +
+

1:1 문의관리

+ + +
+ +"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
이름
제목
내용
답변상태 +
답변내용
+ +
+
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/backoffice/module/online/menu.php b/backoffice/module/online/menu.php new file mode 100644 index 0000000..688788a --- /dev/null +++ b/backoffice/module/online/menu.php @@ -0,0 +1,9 @@ +
+

온라인문의 관리

+ + +
+ + diff --git a/backoffice/module/online/online_evn.php b/backoffice/module/online/online_evn.php new file mode 100644 index 0000000..4686c53 --- /dev/null +++ b/backoffice/module/online/online_evn.php @@ -0,0 +1,66 @@ + + + 문의하신 내용 + ".stripslashes($arrInfo['list'][0][contents])." + + + 답변 + ".stripslashes($arrInfo['list'][0][re_contents])." + + + "; + $mail = new smtp("self"); //자체발송일 경우, 서버를 지정할수도 있음. + //$mail->debug(); //디버깅할때 + $mail->send($arrInfo["list"][0][email], $_SITE["EMAIL"], $arrInfo["list"][0][user_name] . "님 " . $tmpSubject . "에 대한 답변입니다.", $contents,"y"); + } + jsGo($_REQUEST[rt_url],"",""); + //jsGo("online_list.php?o_type=" . $arrInfo["list"][0][o_type] ,"",""); + }else{ + jsMsg("정보수정에 실패 하였습니다."); + jsHistory("-1") ; + } + + //DB해제 + SetDisConn($dblink); +}else if($_POST[evnMode]=="delete"){ + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + $idx = mysql_real_escape_string(trim($_REQUEST[idx])); + + $RS = deleteOnline($idx); + + if($RS==true){ + jsGo($_REQUEST[rt_url],"",""); + }else{ + jsMsg("정보삭제에 실패 하였습니다."); + jsHistory("-1") ; + } + + //DB해제 + SetDisConn($dblink); +} +?> \ No newline at end of file diff --git a/backoffice/module/online/online_info.php b/backoffice/module/online/online_info.php new file mode 100644 index 0000000..9de8e38 --- /dev/null +++ b/backoffice/module/online/online_info.php @@ -0,0 +1,158 @@ + +
+ +
+

온라인문의 관리

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
회사명
이름
연락처
핸드폰
이메일
제목
내용
파일첨부 + 0){?> + + ');">() + > +
+ + +
처리상태 + +
관리자메모
+
+
+ +
+
+ +
+ + +
+
+ \ No newline at end of file diff --git a/backoffice/module/online/online_list.php b/backoffice/module/online/online_list.php new file mode 100644 index 0000000..ab26a2e --- /dev/null +++ b/backoffice/module/online/online_list.php @@ -0,0 +1,98 @@ + +
+ +
+

온라인문의 관리

+ + + +
+  전체 : +
+ + + + + + + + + + + + + + + 0){?> + + + + + + + + + + + + + + + + + +
No.이름E-mail연락처처리신청일수정 삭제
() + 수정 삭제 +
등록된 신청건이 없습니다.
+ +
+ +
+ +
+ + + +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/point/point_add.php b/backoffice/module/point/point_add.php new file mode 100644 index 0000000..fff472d --- /dev/null +++ b/backoffice/module/point/point_add.php @@ -0,0 +1,120 @@ + +
+ +
+

적립금 관리

+ + +
+
+  아이디 : +
+
+ + 0){?> + + + + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
아이디
이 름
로그인 횟수
최근로그인
업데이트일
회원가입일
적립금 잔액
입력구분 + +
적립금
내용
+
+
+ +
+
+ + + + + +
검색된 회원이 없습니다. +
+ +
+
+ \ No newline at end of file diff --git a/backoffice/module/point/point_evn.php b/backoffice/module/point/point_evn.php new file mode 100644 index 0000000..48dded6 --- /dev/null +++ b/backoffice/module/point/point_evn.php @@ -0,0 +1,51 @@ + 0){ + jsGo("point_list.php","","정보를 저장하였습니다."); + }else{ + jsMsg("정보 저장에 실패 하였습니다."); + jsHistory("-1") ; + } + +}else if($_POST[evnMode]=="delete"){ + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + $RS2 = deletePoint(mysql_real_escape_string($_REQUEST[idx])); + if($RS2 == true){ + if($_POST[returnURL]){ + jsGo($_POST[returnURL],"","정상적으로 삭제 되었습니다."); + }else{ + jsGo("point_list.php","","정상적으로 삭제 되었습니다."); + } + }else{ + jsGo("point_list.php","","삭제중 오류가 발생하였습니다."); + } + + + //DB해제 + SetDisConn($dblink); + +} +?> \ No newline at end of file diff --git a/backoffice/module/point/point_list.php b/backoffice/module/point/point_list.php new file mode 100644 index 0000000..c825353 --- /dev/null +++ b/backoffice/module/point/point_list.php @@ -0,0 +1,112 @@ + +
+ +
+

적립금 관리

+ +

회원검색

+ + + + + + + + + + + + + + + + + + + + + + +
분류 + +
사용/적립일자 ~
아이디 검색
+
+
+  전체 : +
+ + + + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + + + +
No.회원사용지급잔액내용IP사용/지급일사용/지급일
지급/사용 추가
적립금 기록이 없습니다.
+ +
+ +
+ + +
+
+ \ No newline at end of file diff --git a/backoffice/module/poll/menu.php b/backoffice/module/poll/menu.php new file mode 100644 index 0000000..17df225 --- /dev/null +++ b/backoffice/module/poll/menu.php @@ -0,0 +1,10 @@ +
+

투표 관리

+ + +
+ + diff --git a/backoffice/module/poll/poll.php b/backoffice/module/poll/poll.php new file mode 100644 index 0000000..13d3002 --- /dev/null +++ b/backoffice/module/poll/poll.php @@ -0,0 +1,91 @@ + +
+ +
+

투표 관리

+ + +
+  전체 : +
+ + + + + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + + + +
No.설문제목결과보기로그인사용보이기시작일종료일등록일관리
보기수정 삭제
등록된 설문이 없습니다.
+ +
+ +
+ +
+ + +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/poll/poll_add.php b/backoffice/module/poll/poll_add.php new file mode 100644 index 0000000..456e787 --- /dev/null +++ b/backoffice/module/poll/poll_add.php @@ -0,0 +1,121 @@ + +
+ +
+

투표 등록

+ + +
+ + + + +

기본정보

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
투표제목
로그인사용 +   + +
보이기 +   + +
시작일
종료일
+
+ + +

투표항목   추가 삭제

+ + + + + + +
답안
+ +
+
+ +
+
+ +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/poll/poll_evn.php b/backoffice/module/poll/poll_evn.php new file mode 100644 index 0000000..c8000e4 --- /dev/null +++ b/backoffice/module/poll/poll_evn.php @@ -0,0 +1,64 @@ + \ No newline at end of file diff --git a/backoffice/module/poll/poll_info.php b/backoffice/module/poll/poll_info.php new file mode 100644 index 0000000..94e3dca --- /dev/null +++ b/backoffice/module/poll/poll_info.php @@ -0,0 +1,148 @@ + +
+ +
+

투표 수정

+ + +
+ +"> + + +

기본정보

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
투표제목" class="input" />
로그인사용 + >    + > +
보이기 + >    + > +
시작일
종료일
등록일
+ +
+ + + +

투표항목   추가 삭제

+ + + + + + + + + + +
답안
"> ">
+ +
+
+ +
+
+ +
+ + +
+
+ \ No newline at end of file diff --git a/backoffice/module/poll/poll_result.php b/backoffice/module/poll/poll_result.php new file mode 100644 index 0000000..82dc4e6 --- /dev/null +++ b/backoffice/module/poll/poll_result.php @@ -0,0 +1,106 @@ + +
+ +
+

투표 관리

+ + + + + +
투표 결과
+ + + + + +
+ + +
+ 기본정보 + + + + + + + + + + + + + + + + + + + + + + + + + +
투표제목
로그인사용
보이기
시작일
종료일
등록일
+
+
+ + +
+ 투표결과 + + + + + + + + + + + + + + + + + +
답안그래프득표율투표수
" height="10">
0?number_format(($arrAnswerList["list"][$i][vote]/$strAnswerTotal)*100):"0"?>%
+
+
+ +
+ +
+
+ \ No newline at end of file diff --git a/backoffice/module/popup/menu.php b/backoffice/module/popup/menu.php new file mode 100644 index 0000000..adf18de --- /dev/null +++ b/backoffice/module/popup/menu.php @@ -0,0 +1,10 @@ +
+

팝업 관리

+ + +
+ + diff --git a/backoffice/module/popup/popup_add.php b/backoffice/module/popup/popup_add.php new file mode 100644 index 0000000..528ae73 --- /dev/null +++ b/backoffice/module/popup/popup_add.php @@ -0,0 +1,285 @@ + + + + + + +
+ +
+

팝업 등록

+ + + +
+ + +
+ 목록 +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
팝업제목
시작일
종료일
팝업가로 px
팝업세로 px
팝업위치(Top) px
팝업위치(Left) px
팝업형태 +    +    + + * 레이어팝업을 이용하여 창이아닌 레이어로 공지할 수 있습니다. +
배경이미지 선택 + +
팝업타입 +    +    + * 팝업타입이 이미지 일 경우에만 클릭시 이동주소, 클릭시 타겟이 사용됨 +
팝업내용 + +
팝업 이미지
클릭시 이동주소
클릭시 타겟 +    + +
+ +
+
+ + +
+
+
+
+
+ \ No newline at end of file diff --git a/backoffice/module/popup/popup_evn.php b/backoffice/module/popup/popup_evn.php new file mode 100644 index 0000000..b603446 --- /dev/null +++ b/backoffice/module/popup/popup_evn.php @@ -0,0 +1,59 @@ + \ No newline at end of file diff --git a/backoffice/module/popup/popup_info.php b/backoffice/module/popup/popup_info.php new file mode 100644 index 0000000..4281057 --- /dev/null +++ b/backoffice/module/popup/popup_info.php @@ -0,0 +1,264 @@ + + + + + + + +
+ +
+

팝업 수정

+ + + +
+ +"> + +
+ 목록 +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
팝업제목" class="input" />
시작일" class="input datePicker" />
종료일" class="input datePicker" />
팝업가로" class="input" /> px
팝업세로" class="input" /> px
팝업위치(Top)" class="input" /> px
팝업위치(Left)" class="input" /> px
팝업형태 + >    + >    + + * 레이어팝업을 이용하여 창이아닌 레이어로 공지할 수 있습니다. +
배경이미지 선택 + +
팝업타입 + >    + >    + * 팝업타입이 이미지 일 경우에만 클릭시 이동주소, 클릭시 타겟이 사용됨 +
팝업내용 + +
팝업 이미지 " target="_blank">
클릭시 이동주소" class="input" />
클릭시 타겟 + >    + > +
등록일
+ +
+
+ + +
+
+
+
+
+ \ No newline at end of file diff --git a/backoffice/module/popup/popup_list.php b/backoffice/module/popup/popup_list.php new file mode 100644 index 0000000..8378d26 --- /dev/null +++ b/backoffice/module/popup/popup_list.php @@ -0,0 +1,89 @@ + +
+ +
+

팝업 관리

+ + + +
+  전체 : +
+ + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + +
No.팝업제목팝업타입시작일종료일생성일관리
수정 삭제
생성된 팝업이 없습니다.
+ +
+ +
+ +
+ + +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/product/menu.php b/backoffice/module/product/menu.php new file mode 100644 index 0000000..c0a23be --- /dev/null +++ b/backoffice/module/product/menu.php @@ -0,0 +1,15 @@ +
+

제품 관리

+ + +
+ + diff --git a/backoffice/module/product/product.php b/backoffice/module/product/product.php new file mode 100644 index 0000000..98e6252 --- /dev/null +++ b/backoffice/module/product/product.php @@ -0,0 +1,246 @@ + + + + +
+ +
+

제품 관리

+

제품검색

+
+ + + + + + + + + + + + + + + + + + + + +
분류선택 + + 1차 초기화는 따로위에서 함 + $_dep = $i-2; + ?> + + +
정렬 + +
제품명
+
+ +
+
+ +
 전체 :
+ + + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + + +
No.사진제품분류제품명정렬번호등록일관리
+ + + + + + + + + ":""?> + + 수정 삭제
등록된 제품이 없습니다.
+ +
+ +
+ + +
+
+ +
+ + +
+ + + + diff --git a/backoffice/module/product/product_add.php b/backoffice/module/product/product_add.php new file mode 100644 index 0000000..2016a12 --- /dev/null +++ b/backoffice/module/product/product_add.php @@ -0,0 +1,412 @@ + + +
+ +
+

제품 등록

+ +
+ + + + +

기본정보

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
제품분류 + + + + 1차 초기화는 따로위에서 함 + ?> + + +
정렬순서 (숫자가 높을수록 앞쪽에 위치함)
제품명
옵션1" class="input" />
옵션2" class="input" />
옵션3" class="input" />
옵션4" class="input" />
옵션5" class="input" />
+ +
+ + + +

제품 사진

+ + + + + + + + + + + + + +
사진 >
+ + +
+ + +

상세정보

+ + + + + + + + + + + + +
상세설명 + +
+ +
+
+ +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/backoffice/module/product/product_add.php.bak b/backoffice/module/product/product_add.php.bak new file mode 100644 index 0000000..1823003 --- /dev/null +++ b/backoffice/module/product/product_add.php.bak @@ -0,0 +1,237 @@ + +
+ +
+

제품 등록

+ + +
+ + +

기본정보

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
제품분류 + + + + 1차 초기화는 따로위에서 함?> + + +
제품명
" class="input"/>
아이콘 +
    + +
  • >
  • + "; + //$cc++; + } + } + closedir($handle); + } + ?> +
+
(FTP를 이용하여 /www/uploaded/shop_icons 폴더에 아이콘을 업로드 시키면 나타납니다.)
+
카타로그 (제품설명서 등)
+ +
+ + + +

제품 사진

+ + + + + + + + + + + + + +
사진 >
+ + +
+ + +

제품상세정보

+ + + + + + + + + + + +
제품상세정보 + +
+ + +
+
+ +
+
+
+
+
+ \ No newline at end of file diff --git a/backoffice/module/product/product_evn.php b/backoffice/module/product/product_evn.php new file mode 100644 index 0000000..f842e54 --- /dev/null +++ b/backoffice/module/product/product_evn.php @@ -0,0 +1,66 @@ + \ No newline at end of file diff --git a/backoffice/module/product/product_info.php b/backoffice/module/product/product_info.php new file mode 100644 index 0000000..8f7013a --- /dev/null +++ b/backoffice/module/product/product_info.php @@ -0,0 +1,521 @@ + + +
+ +
+

제품 관리

+ +
+ +"> + + + + +

기본정보

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
제품분류 + + + 1차 초기화는 따로위에서 함 + $_dep = $i-2; + ?> + + +
정렬순서" class="input" /> (숫자가 높을수록 앞쪽에 위치함)
제품명" class="input" />
옵션1" class="input" />
옵션2" class="input" />
옵션3" class="input" />
옵션4" class="input" />
옵션5" class="input" />
+ +
+ + +

제품 사진

+ + + + + + + 0){ + for($i=0; $i < $arrInfo["total_files"]; $i++){ + ?> + + + + + + + + + + + + + + +
업로드된 사진 + ">   ','');">   + " id="idPhoto_ori"> +
사진
+ +
+ + +

상세정보

+ + + + + + + + + + +
상세설명 + +
+ +
+
+ +
+
+ + + +
+
+ + + + \ No newline at end of file diff --git a/backoffice/module/product/product_info.php.bak b/backoffice/module/product/product_info.php.bak new file mode 100644 index 0000000..a750577 --- /dev/null +++ b/backoffice/module/product/product_info.php.bak @@ -0,0 +1,321 @@ + +
+ +
+

제품 관리

+ + + + +
+ +"> + + + +

기본정보

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
제품분류 + + + 1차 초기화는 따로위에서 함?> + + + + +
제품명"/>
" class="input"/>
정렬순서" class="input" /> (숫자가 높을수록 앞쪽에 위치함)
메인표시> 표시함
카다로그 + 0){ + ?> + "> ')"> + + (제품설명서 등) + +
아이콘 +
    + +
  • >
  • + "; + //$cc++; + } + } + closedir($handle); + } + ?> +
+
(FTP를 이용하여 /www/uploaded/shop_icons 폴더에 아이콘을 업로드 시키면 나타납니다.)
+
+ +
+ + +

제품 사진

+ + + + + + + 0){ + for($i=0; $i < $arrInfo["total_files"]; $i++){ + ?> + + + + + + + + + + + + + + +
업로드된 사진 + ">   ','');">   + " id="idPhoto_ori"> +
사진
+ +
+ + +

제품상세정보

+ + + + + + + + + +
제품상세정보 + +
+ +
+
+ +
+
+ + + +
+
+ + + \ No newline at end of file diff --git a/backoffice/module/research/menu.php b/backoffice/module/research/menu.php new file mode 100644 index 0000000..eab876a --- /dev/null +++ b/backoffice/module/research/menu.php @@ -0,0 +1,10 @@ +
+

설문 관리

+ + +
+ + diff --git a/backoffice/module/research/research.php b/backoffice/module/research/research.php new file mode 100644 index 0000000..34f0aa4 --- /dev/null +++ b/backoffice/module/research/research.php @@ -0,0 +1,91 @@ + +
+ +
+

투표 관리

+ + +
+  전체 : +
+ + + + + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + + + +
No.설문제목참여자목록로그인사용보이기시작일종료일등록일관리
목록보기수정 삭제
등록된 설문이 없습니다.
+ +
+ +
+ +
+ + +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/research/research_add.php b/backoffice/module/research/research_add.php new file mode 100644 index 0000000..96d95c3 --- /dev/null +++ b/backoffice/module/research/research_add.php @@ -0,0 +1,120 @@ + +
+ +
+

설문 등록

+ + +
+ + + + +

기본정보

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
설문제목
로그인사용 + +
보이기 +    + +
시작일
종료일
+
+ + +

설문항목   추가 삭제

+ + + + + + +
설문항목
+ +
+
+ +
+
+ +
+
+
+ \ No newline at end of file diff --git a/backoffice/module/research/research_answer_list_ajax.php b/backoffice/module/research/research_answer_list_ajax.php new file mode 100644 index 0000000..4a0e993 --- /dev/null +++ b/backoffice/module/research/research_answer_list_ajax.php @@ -0,0 +1,57 @@ + +
+ + + + + + +

> > 설문항목   추가 삭제

+ + + + + + 0){ + for($i=0;$i<$arrList["total"];$i++){ + ?> + + + + + +
설문답변
"> + " />
+ +
+
+ +
+
+ +
\ No newline at end of file diff --git a/backoffice/module/research/research_evn.php b/backoffice/module/research/research_evn.php new file mode 100644 index 0000000..8719ec8 --- /dev/null +++ b/backoffice/module/research/research_evn.php @@ -0,0 +1,83 @@ + \ No newline at end of file diff --git a/backoffice/module/research/research_info.php b/backoffice/module/research/research_info.php new file mode 100644 index 0000000..3a20a72 --- /dev/null +++ b/backoffice/module/research/research_info.php @@ -0,0 +1,227 @@ + +
+ +
+

설문 수정

+ + +
+ +"> + + + +

기본정보

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
설문제목" class="input" />
로그인사용 + > +
보이기 + >    + > +
시작일
종료일
등록일
+
+ + +

설문항목   추가 삭제

+ + + + + + + + + + + +
설문항목
"> "> ','');">
+ +
+
+ +
+
+ +
+
+
+
+ \ No newline at end of file diff --git a/backoffice/module/research/research_join_list.php b/backoffice/module/research/research_join_list.php new file mode 100644 index 0000000..bb91766 --- /dev/null +++ b/backoffice/module/research/research_join_list.php @@ -0,0 +1,70 @@ + +
+ +
+

설문 참여자 목록

+ +
+ 설문에 명이 참여하셨습니다. +
+ + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + +
No.결과보기회원IDIP Address참여일자
&user_id=">보기
설문에 참여한분이 없습니다.
+ +
+ +
+ +
+
+ \ No newline at end of file diff --git a/backoffice/module/research/research_view.php b/backoffice/module/research/research_view.php new file mode 100644 index 0000000..629b3ee --- /dev/null +++ b/backoffice/module/research/research_view.php @@ -0,0 +1,84 @@ + +
+ +
+

설문 결과

+ + + +

설문정보

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
설문제목
로그인사용
보이기
시작일
종료일
등록일
+
+ + +

설문결과

+
+ + + + + + + + + + + +
+
+ +
+
+ \ No newline at end of file diff --git a/backoffice/module/shop/accounts.php b/backoffice/module/shop/accounts.php new file mode 100644 index 0000000..8b9aa69 --- /dev/null +++ b/backoffice/module/shop/accounts.php @@ -0,0 +1,130 @@ + + + + + + +
+ +
+

매출 관리

+ +

매출조회

+
+ + + + + + + + + + + +
기간검색 + ~ + +
+
+ +
+ + + + + + + + + + + $val){?> + + + + + + 0){ + foreach ($arrList["list"] AS $list_key => $list_val){ + ?> + + + + + + + + $val){?> + + + + + + + + + + + + + $val){?> + + + + + + + + +
날짜건수상품주문금액사용적립금배송비실제결제금액
합계
매출건이 없습니다.
+ +
+
+ \ No newline at end of file diff --git a/backoffice/module/shop/good.php b/backoffice/module/shop/good.php new file mode 100644 index 0000000..b5c384c --- /dev/null +++ b/backoffice/module/shop/good.php @@ -0,0 +1,288 @@ + +
+ +
+

상품 관리

+ + + +
+

상품검색

+ + + + + + + + + + + + + + + + + + + + +
분류선택 + + 1차 초기화는 따로위에서 함 + $_dep = $i-2; + ?> + + +
정렬 + +
상품명
+
+ +
+ +
+
 전체 :
+
+
+
+ + + + + + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + + + + + +
No.사진상품분류상품명판매가정렬번호등록일관리
+ + +
":""?> + +
수정 삭제
등록된 상품이 없습니다.
+ +
+ +
+ +
+ + + + + + +
+ + + +
+
+ + diff --git a/backoffice/module/shop/good_add.php b/backoffice/module/shop/good_add.php new file mode 100644 index 0000000..4ae2fc8 --- /dev/null +++ b/backoffice/module/shop/good_add.php @@ -0,0 +1,711 @@ + +
+ +
+

상품 등록

+ + + +
+ + + +

기본정보

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
상품코드" class="input" />
상품분류 + + + + 1차 초기화는 따로위에서 함 + ?> + + +
상품명
정렬순서 (숫자가 높을수록 위쪽에 표시됨)
개별결제자 아이디 개별결제 사용시만 결제자 아이디 작성해 주시면 됩니다.
+ +
+ + +

상품 추가정보

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
브랜드" class="input" />
판매자" class="input" />
원산지/제조사" class="input" />
옵션1" class="input" />
옵션2" class="input" />
옵션3" class="input" />
옵션4" class="input" />
옵션5" class="input" />
판매가 (숫자만 입력)
적립금 + +
상품진열 + +
메인노출 여부 +   +   +
+ + +
+ +

;">상품 옵션정보   추가 삭제

+ + + + ;"> + + + + + + + + + + +
추가옵션 +
+ + + + + + + + + + + + + +
옵션명옵션항목항목설정
+
+
+ + + +
;"> + 옵션추가 + + + + + + + + + + + + + + + +
옵션명항목명가격재고옵션삭제
삭제
+ +
+ + + + + + +
+

상품 사진 |

+ +
+
+ 아래 이미지중 대표이미지로 설정된 이미지를 장바구니, 상품목록, 상품상세 이미지를 자동으로 생성(나머지는 확대이미지로 사용)
+ 이미지크기는 600px내외 1:1 비율이 적당합니다. 이미지파일의 확장자는 RGB모드의 jpg, gif, png 입니다. +
+ + + + + + + + + + + + + +
사진 >
+
+ + + +
+ +

상품 설명

+ + + + + + + + + + + + + +
상세설명 + +
+ +
+
+ +
+
+ + +
+
+
+ + + + + + + diff --git a/backoffice/module/shop/good_evn.php b/backoffice/module/shop/good_evn.php new file mode 100644 index 0000000..e60e242 --- /dev/null +++ b/backoffice/module/shop/good_evn.php @@ -0,0 +1,70 @@ + diff --git a/backoffice/module/shop/good_info.php b/backoffice/module/shop/good_info.php new file mode 100644 index 0000000..6e46598 --- /dev/null +++ b/backoffice/module/shop/good_info.php @@ -0,0 +1,819 @@ + +
+ +
+

상품 수정

+ + + + +
+ +"> + + + + + +

기본정보

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
상품코드" class="input" />
상품분류 + + + + 1차 초기화는 따로위에서 함 + $_dep = $i-2; + ?> + + +
상품명" />
정렬순서" class="input" /> (숫자가 높을수록 위쪽에 표시됨)
개별결제자 아이디" maxlength="30" class="input" /> 개별결제 사용시만 결제자 아이디 작성해 주시면 됩니다.
+ +
+ +

상품 추가정보

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
브랜드" class="input" />
판매자" class="input" />
원산지/제조사" class="input" />
옵션1" class="input" />
옵션2" class="input" />
옵션3" class="input" />
옵션4" class="input" />
옵션5" class="input" />
판매가" class="input" /> (숫자만 입력)
적립금" class="input" /> + +
상품진열>   + > +
메인노출 여부 + >
+ +
+ + +

;">상품 옵션정보   추가 삭제

+ + + + ;"> + + + + + + + + + + +
추가옵션 +
+ + + + + + + + + + + + + + + + + + + + + + + +
옵션수정후 아래의 수정을 클릭을 하시면 적용됩니다.
옵션명옵션항목항목설정
+ + " class="input" /> + + + 추가 + 수정 + 삭제 +
+
+
+ + + +
;"> + 옵션추가 + + + + + + + + + + + + + + + + + + + + + + + + + + + +
옵션명항목명가격재고옵션삭제
"/>"/>"/>"/>삭제
"/>"/>"/>"/>삭제
+ + +
+ + + + + + +
+

상품 사진 | >

+ +
+
+ 아래 이미지중 대표이미지로 설정된 이미지를 장바구니, 상품목록, 상품상세 이미지를 자동으로 생성(나머지는 확대이미지로 사용)
+ 이미지크기는 600px내외 1:1 비율이 적당합니다. 이미지파일의 확장자는 RGB모드의 jpg, gif, png 입니다. +
+ + + + + + + 0){ + for($i=0; $i < $arrInfo["total_files"]; $i++){ + ?> + + + + + + + + + + + + + + +
업로드된 사진 + + /', event);" style="cursor:pointer;">[보기]   + + + ">   + + +
사진
+
+ + + +
+ +

상품 설명

+ + + + + + + + + + + + + + +
상세설명 + +
+ + +
+
+ +
+
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/backoffice/module/shop/good_to_csv.php b/backoffice/module/shop/good_to_csv.php new file mode 100644 index 0000000..3465377 --- /dev/null +++ b/backoffice/module/shop/good_to_csv.php @@ -0,0 +1,91 @@ + "; + } else { + } + } + + echo $i+1 . ","; + echo strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$cate[$i])))) . ","; + echo strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$arrList["list"][$i][g_name])))) . ","; + echo strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$arrList["list"][$i][vendor])))) . ","; + echo strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$arrList["list"][$i][model])))) . ","; + echo strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$arrList["list"][$i][price])))) . ","; + echo $arrList['list'][$i][point_unit]=="P"?number_format(($arrList['list'][$i][point]*$arrList['list'][$i][price])/100):number_format($arrList['list'][$i][point]) . ","; + + echo strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$arrList["list"][$i][is_show])))) . ","; + echo "\"".strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$arrList["list"][$i][contents])))). "\","; + echo strip_tags(str_replace(",",".", stripslashes(substr($arrList["list"][$i][wdate],0,10)))) . "\n"; + +} +?> \ No newline at end of file diff --git a/backoffice/module/shop/menu_good.php b/backoffice/module/shop/menu_good.php new file mode 100644 index 0000000..46fd9dc --- /dev/null +++ b/backoffice/module/shop/menu_good.php @@ -0,0 +1,19 @@ +
+

상품 관리

+ + +
+ + diff --git a/backoffice/module/shop/menu_order.php b/backoffice/module/shop/menu_order.php new file mode 100644 index 0000000..7930763 --- /dev/null +++ b/backoffice/module/shop/menu_order.php @@ -0,0 +1,20 @@ +
+

주문 관리

+ + +
+ + diff --git a/backoffice/module/shop/order.php b/backoffice/module/shop/order.php new file mode 100644 index 0000000..42748b1 --- /dev/null +++ b/backoffice/module/shop/order.php @@ -0,0 +1,255 @@ + 0) { + for($oo=0; $oo < count($_REQUEST[pay_type]); $oo++){ + $paytype .= $_REQUEST[pay_type][$oo].","; + } +} +if(count($_REQUEST[order_states]) > 0) { + for($os=0; $os < count($_REQUEST[order_states]); $os++){ + $orderstate .= "/".$_REQUEST[order_states][$os]."/,"; + } +} +?> + + + + + + +
+ +
+

주문 관리

+ + + +

주문검색

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
통합검색 + +     + + + +
주문상태 + $val){?> + />    + +
처리일자>주문일    + >입금일    + >배송일    + >거래완료일    + ~ +   + + 오늘 + 어제 + 3일전 + 1주일 + 1개월 +
결제방법 + $val){?> + >    + + +
결제가격 + 원 ~ 원 +
+
+ +
+ +
+
 전체 :
+ +
+ + + + + + + + + + + + + + + + + + + 0){ + for($i=0;$i<$arrList["list"]["total"];$i++){ + //합계금액 계산 + $totalPrice = $arrList["list"][$i][total_amount]+$arrList["list"][$i][ship_amount]; + ?> + + + + + + + + + + + + + + + + + + + + + + + + +
주문번호상품명주문자주문가격배송비실결제주문상태결제방법주문일자 
&listURL="> + + ">()(비회원)주문삭제
주문내역이 없습니다.
+ +
+ +
+ +
+ + + +
+ +
+ + + + + +
+ +
+
\ No newline at end of file diff --git a/backoffice/module/shop/order_detail.php b/backoffice/module/shop/order_detail.php new file mode 100644 index 0000000..826d2fd --- /dev/null +++ b/backoffice/module/shop/order_detail.php @@ -0,0 +1,354 @@ + + + 주문번호가 있어야만 주문가능 +if($arrInfo["total"] > 0){ +?> +
+ +
+

주문 관리

+ +

주문상품 목록

+ + + + + + + + + + + + + + + + + + + + + 0){ + for($i=0;$i<$arrInfo["good_total"];$i++){ + //추가금액 계산 + $optionPrice = $arrInfo["good_list"][$i][g_opt_1_price] + $arrInfo["good_list"][$i][g_opt_2_price] + $arrInfo["good_list"][$i][g_opt_3_price] + $arrInfo["good_list"][$i][g_opt_4_price] + $arrInfo["good_list"][$i][g_opt_5_price]; + + //합계금액 계산 + $totalPrice += ($arrInfo["good_list"][$i][g_price]*$arrInfo["good_list"][$i][g_qty])+($optionPrice * $arrInfo["good_list"][$i][g_qty]); + + //적립금 계산 + $pay_plus_point += $arrInfo["good_list"][$i][g_point]; + ?> + + + + + + + + + + + + + + + + + + + +
사진상품명가격적립금수량소계
" target="_blank">/" width="60"> + " target="_blank"> +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + +
합계
배송비 +
실 결제액 +
+
구매 항목이 없습니다.
+ +
+ +
+ + "> + +

주문관리

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
주문상태 +    + +
재고처리 여부 + + 재고처리완료 + + + +
입금일자 + + +
배송일자 + +
택배사 + + +
송장번호 + +
관리자 메모 + +
+
+
+ + +
+
+
+ + +
+ +

주문정보

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
주문번호
주문내역
결제방법 + + + + + +
입금계좌
입금자명
입금자예정일
배송비 0?number_format($arrInfo["list"][0]["ship_amount"])."":"배송비무료"?>
주문가
실결제
주문하시는분
주소
전화번호
핸드폰번호
이메일
받으실분
받으실곳 +
전화번호
핸드폰번호
남기실 말씀
+ + + + + +

주문정보

+ + + + + + +
해당하는 주문내역이 없습니다.
+ + +
+
+ \ No newline at end of file diff --git a/backoffice/module/shop/order_evn.php b/backoffice/module/shop/order_evn.php new file mode 100644 index 0000000..f141faa --- /dev/null +++ b/backoffice/module/shop/order_evn.php @@ -0,0 +1,80 @@ + \ No newline at end of file diff --git a/backoffice/module/shop/order_to_csv.php b/backoffice/module/shop/order_to_csv.php new file mode 100644 index 0000000..3b33689 --- /dev/null +++ b/backoffice/module/shop/order_to_csv.php @@ -0,0 +1,146 @@ + \ No newline at end of file diff --git a/backoffice/module/shop/order_to_csv1.php b/backoffice/module/shop/order_to_csv1.php new file mode 100644 index 0000000..8b0821c --- /dev/null +++ b/backoffice/module/shop/order_to_csv1.php @@ -0,0 +1,100 @@ + + + 주문번호가 있어야만 주문가능 + + + +for ( $i=0 ; $i < $arrList["total"] ; $i++ ) { + + if ($i==0){ + $before_date=$arrList["list"][$i][order_no]; + } + + $temp_option = $arrList["list"][$i][g_opt_rel_1]."|".$arrList["list"][$i][g_opt_rel_2]; + + $temp_addr=stripslashes($arrList["list"][$i][join_address])." ".stripslashes($arrList["list"][$i][join_address_ext]); + + if ($before_date!=$arrList["list"][$i][order_no]){ + echo ","; + echo ","; + echo ","; + echo ","; + echo ","; + echo ","; + echo ","; + echo ","; + echo ","; + echo ","; + echo ","; + echo ","; + echo ","; + echo ","; + echo ","; + echo "\n"; + $before_date=$arrList["list"][$i][order_no]; + $j=0; + } + + echo $j=$j+1 . ","; + echo strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$arrList["list"][$i][order_no])))) . ","; + echo strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$arrList["list"][$i][order_name])))) . ","; + echo strip_tags(str_replace(",",".", iconv("UTF-8","EUC-KR",stripslashes($arrList["list"][$i][join_zip])))) . ","; + echo strip_tags(str_replace(",",".", iconv("UTF-8","EUC-KR",$temp_addr))) . ","; + echo strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$arrList["list"][$i][join_phone])))) . ","; + echo strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$arrList["list"][$i][join_mobile])))) . ","; + echo strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$arrList["list"][$i][g_name])))) . ","; + echo strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$temp_option)))) . ","; + echo strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$arrList["list"][$i][g_qty])))) . ","; + echo strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$arrList["list"][$i][g_price])))) . ","; + if($j==1) { + echo strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$arrList["list"][$i][shipprice])))) . ","; + } else { + echo ","; + } + echo strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$_SITE["SHOP"]["ORDER_STATE"][$arrList["list"][$i][order_state]])))) . ","; + echo strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$_SITE["SHOP"]["PAY_TYPE"][$arrList["list"][$i][pay_type]])))) . ","; + echo "\"".strip_tags(str_replace(",",".", stripslashes(iconv("UTF-8","EUC-KR",$arrList["list"][$i][order_comment])))). "\","; + echo strip_tags(str_replace(",",".", stripslashes(substr($arrList["list"][$i][join_date],0,10)))) . "\n"; + +} + +include $_SERVER[DOCUMENT_ROOT] . "/backoffice/footer.php" ; +?> \ No newline at end of file diff --git a/backoffice/module/shop/order_to_csv_test.php b/backoffice/module/shop/order_to_csv_test.php new file mode 100644 index 0000000..a145e00 --- /dev/null +++ b/backoffice/module/shop/order_to_csv_test.php @@ -0,0 +1,119 @@ +"; + +for ( $i=0 ; $i < $arrList["total"] ; $i++ ) { + + $arrInfo = getOrderInfoAdmin(mysql_real_escape_string($arrList["list"][$i][order_no])); + + if($arrInfo["good_total"]>0){ + for($j=0;$j<$arrInfo["good_total"];$j++){ + $gname[$i] .= "[".$arrAllCategory[$arrInfo["good_list"][$j][g_cat_no]]."]".stripslashes($arrInfo["good_list"][$j][g_name])."//"; + $option[$i] .= stripslashes($arrInfo["good_list"][$j][g_name]).":".$arrInfo["good_list"][$j][g_opt_1]." ".$arrInfo["good_list"][$j][g_qty]."개//"; + } + } + + $temp_addr=stripslashes($arrList["list"][$i][ship_address])." ".stripslashes($arrList["list"][$i][ship_address_ext]); + + + echo strip_tags(str_replace(",",".", stripslashes($arrList["list"][$i][ship_name]))) . ","; + echo strip_tags(str_replace(",",".", stripslashes($arrList["list"][$i][ship_zip]))) . ","; + echo strip_tags(str_replace(",",".", $temp_addr)) . ","; + echo strip_tags(str_replace(",",".", stripslashes($arrList["list"][$i][ship_phone]))) . ","; + echo strip_tags(str_replace(",",".", stripslashes($arrList["list"][$i][ship_mobile]))) . ","; + echo "1,"; + echo ","; + echo ","; + echo strip_tags(str_replace(",",".", substr($gname[$i],0,-2))) . ","; + echo strip_tags(str_replace(",",".", substr($option[$i],0,-2))) . ","; + echo strip_tags(str_replace(",",".", stripslashes($arrList["list"][$i][order_comment]))) . ","; + echo ","; + echo ","; + echo $arrList["list"][$i][order_no].","; + echo ","; + echo ","; + echo ","; + echo ","; + echo ","; + echo ","; + echo ","; + echo ","; + echo ","; + echo "
"; +} + +//DB해제 +SetDisConn($dblink); +?> \ No newline at end of file diff --git a/backoffice/module/shop/rel_good.php b/backoffice/module/shop/rel_good.php new file mode 100644 index 0000000..cc232a8 --- /dev/null +++ b/backoffice/module/shop/rel_good.php @@ -0,0 +1,272 @@ + + + + +<?=$_SITE["NAME"]?> 관리자 + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ 상품검색 + + + +
+ + + 1차 초기화는 따로위에서 함 + ?> + + + + + +
+
+
+ + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + + + + + + + + +
상품코드상품분류상품명판매가재고관리등록일
+ + + ":""?> + + + + 일반관리 | 개 + + 연계관리 | 최소: + + 관리안함 + +
등록된 상품이 없습니다.
+ +
+ + + + +
+ + + + + diff --git a/backoffice/module/shop/review/review.php b/backoffice/module/shop/review/review.php new file mode 100644 index 0000000..491c154 --- /dev/null +++ b/backoffice/module/shop/review/review.php @@ -0,0 +1,83 @@ + + + + + + +
전체 :
+ + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + + + + +
No.이름제목작성일수정 | 삭제
()수정 | 삭제
등록된 독서리뷰건이 없습니다.
+ +
+ + + + +
+ +
+ + + +
+ \ No newline at end of file diff --git a/backoffice/module/shop/review/review_evn.php b/backoffice/module/shop/review/review_evn.php new file mode 100644 index 0000000..f87ee87 --- /dev/null +++ b/backoffice/module/shop/review/review_evn.php @@ -0,0 +1,43 @@ + \ No newline at end of file diff --git a/backoffice/module/shop/review/review_info.php b/backoffice/module/shop/review/review_info.php new file mode 100644 index 0000000..6283c60 --- /dev/null +++ b/backoffice/module/shop/review/review_info.php @@ -0,0 +1,74 @@ + + + + +
+ +"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
상품">
이름()
추천 + > + > + >
제목"
내용
작성일시
IP
+ +
+ + + \ No newline at end of file diff --git a/backoffice/module/shop/shop_mycoupon.php b/backoffice/module/shop/shop_mycoupon.php new file mode 100644 index 0000000..cb22391 --- /dev/null +++ b/backoffice/module/shop/shop_mycoupon.php @@ -0,0 +1,89 @@ + + + + + + + +<?=$_SITE["NAME"]?> 관리자 + + + + + + + + +
+ +

상품명:

+ + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + + + + + +
번호회원이름회원아이디기간발급시간사용여부기능
~ 삭제
발급회원이 없습니다.
+ + + + + + +
+ +
+ + \ No newline at end of file diff --git a/backoffice/pop_mailsms.php b/backoffice/pop_mailsms.php new file mode 100644 index 0000000..2dde96e --- /dev/null +++ b/backoffice/pop_mailsms.php @@ -0,0 +1,96 @@ + + + + + + + +문자/메일 충전 + + + + + + +
+
+

website

+
+
+
+ 고객님이 선택한 사항을 확인하시고 아래의 요청버튼을 클릭하시고 해당 금액을 송금해 주시면 10분이내로 충전이 됩니다. 감사합니다. +
+
+
+ + "> + +
(VAT포함)
+ + + + + + + + + + + + + + + 0){ + foreach($_REQUEST[mailsms] AS $key => $val){ + $arrSend = explode("|", $val); + $total += $arrSend[1]; + ?> + + + + + + + + +
발송종류금액건수
충전
+
+ 총 충전금액 : 원(VAT포함) +
+
+
입금계좌
+
<국민은행 465101-01-164345 전경훈(웹사이트)>
+
+
+
비고(요청사항)
+
+
+
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/backoffice/sendmethod_popup.php b/backoffice/sendmethod_popup.php new file mode 100644 index 0000000..124ffad --- /dev/null +++ b/backoffice/sendmethod_popup.php @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/backoffice/side.php b/backoffice/side.php new file mode 100644 index 0000000..f8cd345 --- /dev/null +++ b/backoffice/side.php @@ -0,0 +1,5 @@ +
+

유지보수신청

+

맞춤개발 웹사이트

+

계약하시는 모든 고객님께 드리는 혜택!

+
\ No newline at end of file diff --git a/backoffice/simplexml.class.php b/backoffice/simplexml.class.php new file mode 100644 index 0000000..3f520fc --- /dev/null +++ b/backoffice/simplexml.class.php @@ -0,0 +1,300 @@ +ignore_level + 1; $c < $level + 1; $c++) { + if (isset($tags[$c]) && (is_numeric(trim($tags[$c])) || trim($tags[$c]))) { + if (is_numeric($tags[$c])) { + $temp .= '[' . $tags[$c] . ']'; + } else { + $temp .= '["' . $tags[$c] . '"]'; + } + } + } + $this->evalCode .= '$this->result' . $temp . "=\"" . addslashes($value) . "\";//(" . $type . ")\n"; + #echo $code. "\n"; + } + + /** + * Define the repeated tags in XML file so we can set an index + * + * @param array $array + * @return array + */ + function xml_tags($array) + { $repeats_temp = array(); + $repeats_count = array(); + $repeats = array(); + + if (is_array($array)) { + $n = count($array) - 1; + for ($i = 0; $i < $n; $i++) { + $idn = $array[$i]['tag'].$array[$i]['level']; + if(in_array($idn,$repeats_temp)){ + $repeats_count[array_search($idn,$repeats_temp)]+=1; + }else{ + array_push($repeats_temp,$idn); + $repeats_count[array_search($idn,$repeats_temp)]=1; + } + } + } + $n = count($repeats_count); + for($i=0;$i<$n;$i++){ + if($repeats_count[$i]>1){ + array_push($repeats,$repeats_temp[$i]); + } + } + unset($repeats_temp); + unset($repeats_count); + return array_unique($repeats); + } + + + /** + * Converts Array Variable to Object Variable + * + * @param array $arg_array + * @return $tmp + */ + function array2object ($arg_array) + { + + if (is_array($arg_array)) { + $keys = array_keys($arg_array); + if(!is_numeric($keys[0])) $tmp = new SimpleXMLObject; + foreach ($keys as $key) { + if (is_numeric($key)) $has_number = true; + if (is_string($key)) $has_string = true; + } + if (isset($has_number) and !isset($has_string)) { + foreach ($arg_array as $key => $value) { + $tmp[] = $this->array2object($value); + } + } elseif (isset($has_string)) { + foreach ($arg_array as $key => $value) { + if (is_string($key)) + $tmp->$key = $this->array2object($value); + } + } + } elseif (is_object($arg_array)) { + foreach ($arg_array as $key => $value) { + if (is_array($value) or is_object($value)) + $tmp->$key = $this->array2object($value); + else + $tmp->$key = $value; + } + } else { + $tmp = $arg_array; + } + return $tmp; //return the object + } + + /** + * Reindexes the whole array with ascending numbers + * + * @param array $array + * @return array + */ + function array_reindex($array) + { + if (is_array($array)) { + if(count($array) == 1 && $array[0]){ + return $this->array_reindex($array[0]); + }else{ + foreach($array as $keys => $items) { + if (is_array($items)) { + if (is_numeric($keys)) { + $array[$keys] = $this->array_reindex($items); + } else { + $array[$keys] = $this->array_reindex(array_merge(array(), $items)); + } + } + } + } + } + + return $array; + } + + + /** + * Parse the XML generation to array object + * + * @param array $array + * @return array + */ + function xml_reorganize($array) + { + $count = count($array); + $repeat = $this->xml_tags($array); + $repeatedone = false; + $tags = array(); + $k = 0; + for ($i = 0; $i < $count; $i++) { + switch ($array[$i]['type']) { + case 'open': + array_push($tags, $array[$i]['tag']); + if ($i > 0 && ($array[$i]['tag'] == $array[$i-1]['tag']) && ($array[$i-1]['type'] == 'close')) + $k++; + if (isset($array[$i]['value']) && ($array[$i]['value'] || !$this->skip_empty_values)) { + array_push($tags, '@content'); + $this->array_insert(count($tags), $tags, $array[$i]['value'], "open"); + array_pop($tags); + } + + if (in_array($array[$i]['tag'] . $array[$i]['level'], $repeat)) { + if (($repeatedone == $array[$i]['tag'] . $array[$i]['level']) && ($repeatedone)) { + array_push($tags, strval($k++)); + } else { + $repeatedone = $array[$i]['tag'] . $array[$i]['level']; + array_push($tags, strval($k)); + } + } + + if (isset($array[$i]['attributes']) && $array[$i]['attributes'] && $array[$i]['level'] != $this->ignore_level) { + array_push($tags, '@attributes'); + foreach ($array[$i]['attributes'] as $attrkey => $attr) { + array_push($tags, $attrkey); + $this->array_insert(count($tags), $tags, $attr, "open"); + array_pop($tags); + } + array_pop($tags); + } + break; + + case 'close': + array_pop($tags); + if (in_array($array[$i]['tag'] . $array[$i]['level'], $repeat)) { + if ($repeatedone == $array[$i]['tag'] . $array[$i]['level']) { + array_pop($tags); + } else { + $repeatedone = $array[$i + 1]['tag'] . $array[$i + 1]['level']; + array_pop($tags); + } + } + break; + + case 'complete': + array_push($tags, $array[$i]['tag']); + if (in_array($array[$i]['tag'] . $array[$i]['level'], $repeat)) { + if ($repeatedone == $array[$i]['tag'] . $array[$i]['level'] && $repeatedone) { + array_push($tags, strval($k)); + } else { + $repeatedone = $array[$i]['tag'] . $array[$i]['level']; + array_push($tags, strval($k)); + } + } + + if (isset($array[$i]['value']) && ($array[$i]['value'] || !$this->skip_empty_values)) { + if (isset($array[$i]['attributes']) && $array[$i]['attributes']) { + array_push($tags, '@content'); + $this->array_insert(count($tags), $tags, $array[$i]['value'], "complete"); + array_pop($tags); + } else { + $this->array_insert(count($tags), $tags, $array[$i]['value'], "complete"); + } + } + + if (isset($array[$i]['attributes']) && $array[$i]['attributes']) { + array_push($tags, '@attributes'); + foreach ($array[$i]['attributes'] as $attrkey => $attr) { + array_push($tags, $attrkey); + $this->array_insert(count($tags), $tags, $attr, "complete"); + array_pop($tags); + } + array_pop($tags); + } + + if (in_array($array[$i]['tag'] . $array[$i]['level'], $repeat)) { + array_pop($tags); + $k++; + } + + array_pop($tags); + break; + } + } + eval($this->evalCode); + $last = $this->array_reindex($this->result); + return $last; + } + + /** + * Get the XML contents and parse like SimpleXML + * + * @param string $file + * @param string $resulttype + * @param string $encoding + * @return array/object + */ + function xml_load_file($file, $resulttype = 'object', $encoding = 'UTF-8') + { + $php_errormsg=""; + $this->result=""; + $this->evalCode=""; + $values=""; + $data = file_get_contents($file); + if (!$data) + return 'Cannot open xml document: ' . (isset($php_errormsg) ? $php_errormsg : $file); + + $parser = xml_parser_create($encoding); + xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); + xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); + $ok = xml_parse_into_struct($parser, $data, $values); + if (!$ok) { + $errmsg = sprintf("XML parse error %d '%s' at line %d, column %d (byte index %d)", + xml_get_error_code($parser), + xml_error_string(xml_get_error_code($parser)), + xml_get_current_line_number($parser), + xml_get_current_column_number($parser), + xml_get_current_byte_index($parser)); + } + + xml_parser_free($parser); + if (!$ok) + return $errmsg; + if ($resulttype == 'array') + return $this->xml_reorganize($values); + // default $resulttype is 'object' + return $this->array2object($this->xml_reorganize($values)); + } +} + +?> \ No newline at end of file diff --git a/backoffice/whereis.php b/backoffice/whereis.php new file mode 100644 index 0000000..3ae6871 --- /dev/null +++ b/backoffice/whereis.php @@ -0,0 +1,159 @@ + diff --git a/bbs/default.php b/bbs/default.php new file mode 100644 index 0000000..81de289 --- /dev/null +++ b/bbs/default.php @@ -0,0 +1,352 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
공지사항 목록
번호제목작성자등록일조회수
공지안녕하십니까? 게시판 default 스킨입니다.관리자2020.00.008
20안녕하십니까? 게시판 default 스킨입니다. 새 글관리자2020.00.008
19답변 안녕하십니까? 게시판 default 스킨입니다.관리자2020.00.0010
18안녕하십니까? 게시판 default 스킨입니다. 비밀글관리자2020.00.0010
17안녕하십니까? 게시판 default 스킨입니다. 댓글(2)관리자2020.00.0010
16안녕하십니까? 게시판 default 스킨입니다.관리자2020.00.0010
15안녕하십니까? 게시판 default 스킨입니다.관리자2020.00.0010
14안녕하십니까? 게시판 default 스킨입니다.관리자2020.00.0010
13안녕하십니까? 게시판 default 스킨입니다.관리자2020.00.0010
12안녕하십니까? 게시판 default 스킨입니다.관리자2020.00.0010
11안녕하십니까? 게시판 default 스킨입니다.관리자2020.00.0010
10안녕하십니까? 게시판 default 스킨입니다.관리자2020.00.0010
+
+ +
+
+ 글쓰기 +
+
+ +
+ 처음페이지1234마지막페이지 +
+ + +
+
+
+ + + +
+
+ 글 작성 +
+
+ + +
+
+ +   + +
+
+ + + +
+
+ + + +
+
+ 내용작성 바로가기 + +   + +
+
+ +
+ +
+ + + + + + + +
추가 삭제
+
+
+ +
+
+ + 취소 +
+
+
+
+ + +


+ + + +
+
+

제목클릭시 보여지는 상세페이지입니다. 제목입력란

+
+ 관리자 + 2015-08-11 16:03:20 + 조회수 23 +
+ +
+
+ 내용이 나타납니다.
+
+
+
+
+
+
+
+
+ +
+
+ 목록 + 답변 + 삭제 + 수정 +
+
+ +
+
+
이전글
+
이전글 게시물 제목이 나타납니다.
+
+
+
다음글
+
이전글 게시물 제목이 나타납니다.
+
+
+ + + +
+
+
+
+ 댓글입력 +
+ +
+
+
+
+
+
+ +
+
+ 처음페이지1234마지막페이지 +
+
+ + +
+
+
+ + +
+
+
+
최초 글 등록시에 입력하셨던 비밀번호를 입력하세요.
+
+ + + +
+
+
+
+ \ No newline at end of file diff --git a/common/chart/MIT-LICENSE.txt b/common/chart/MIT-LICENSE.txt new file mode 100644 index 0000000..f8111b9 --- /dev/null +++ b/common/chart/MIT-LICENSE.txt @@ -0,0 +1,21 @@ +Title: MIT License + +Copyright (c) 2009-2013 Chris Leonello + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/common/chart/README.txt b/common/chart/README.txt new file mode 100644 index 0000000..8777a20 --- /dev/null +++ b/common/chart/README.txt @@ -0,0 +1,77 @@ +Title: jqPlot Readme + +Pure JavaScript plotting plugin for jQuery. + +To learn how to use jqPlot, start with the Basic Usage Instructions below. Then read the +usage.txt and jqPlotOptions.txt files included with the distribution. + +The jqPlot home page is at . + +Downloads can be found at . + +The mailing list is at . + +Examples and unit tests are at . + +Documentation is at . + +The project page and source code are at . + +Bugs, issues, feature requests: . + +Basic Usage Instructions: + +jqPlot requires jQuery (1.4+ required for certain features). jQuery 1.9.1 is included in +the distribution. To use jqPlot include jQuery, the jqPlot jQuery plugin, the jqPlot css file and +optionally the excanvas script to support IE version prior to IE 9 in your web page: + +> +> +> +> + +For usage instructions, see in usage.txt. For available options, see + in jqPlotOptions.txt. + +Building from source: + +If you've cloned the repository, you can build a distribution from source. +You need to have ant installed. You can simply +type "ant" from the jqplot directory to build the default "all" target. +There are 6 pertinent targets: clean, dist, min, docs, compress and all. Use: + +> ant -p + +to get a description of the various build targets. + +Legal Notices: + +Copyright (c) 2009-2013 Chris Leonello +jqPlot is currently available for use in all personal or commercial projects +under both the MIT and GPL version 2.0 licenses. This means that you can +choose the license that best suits your project and use it accordingly. + +Although not required, the author would appreciate an email letting him +know of any substantial use of jqPlot. You can reach the author at: +chris at jqplot or see http://www.jqplot.com/info.php . + +If you are feeling kind and generous, consider supporting the project by +making a donation at: http://www.jqplot.com/donate.php . + +jqPlot includes date instance methods and printf/sprintf functions by other authors: + +Date instance methods: + + author Ken Snyder (ken d snyder at gmail dot com) + date 2008-09-10 + version 2.0.2 (http://kendsnyder.com/sandbox/date/) + license Creative Commons Attribution License 3.0 (http://creativecommons.org/licenses/by/3.0/) + +JavaScript printf/sprintf functions. + + version 2007.04.27 + author Ash Searle + http://hexmen.com/blog/2007/03/printf-sprintf/ + http://hexmen.com/js/sprintf.js + The author (Ash Searle) has placed this code in the public domain: + "This code is unrestricted: you are free to use it however you like." diff --git a/common/chart/changes.txt b/common/chart/changes.txt new file mode 100644 index 0000000..ce990ea --- /dev/null +++ b/common/chart/changes.txt @@ -0,0 +1,458 @@ +Title: Change Log + +1.0.8: +* Issue #375: sortMergedLabels does not sort string labels +* Issue #279: Groups > 3 Causes Alignment Issues +* Issue #439: IE can't display a customized legend in Quirks mode +* Issue #482: "Undefined" error message when plotting a chart with no data +* Issue #116: Don't mix spaces and tabs for indentation +* Issue #564: Metergauge renderer not resizable when replotting +* Issue #409: MeterGaugeRenderer replot/redraw offsets center +* Issue #523: Adding rectangles to Canvas Overlay plugin +* Issue #756: jqplot.min files contain non-UTF-8 characters +* Issue #223: fillToZero does not color negative values when crossover point is 0 +* Pull Request #23: Adding rectangles to Canvas Overlay plugin +* Pull Request #28: Cross-over points of 0 will actually change colors +* Pull Request #35: Don't highlight hidden bars or show tooltips for them +* Pull Request #41: Add dutch(nl) and svenska(sv) translations for dates +* Add tooltip support for Pie Charts +* Update to latest YUI compressor + +1.0.7: +* Issue #726: Bug in sprintf %p, sometimes it outputs exponential form rather than decimal +* Issue #717: Plot's preDrawHooks not called +* Issue #707: Browser hangs with LogAxisRenderer when value is 0 +* Issue #695: Horizontal Bar Chart Negative Series Colors Not Working +* Issue #670: Examples IE7, IE8 and IE9 multipleBarColors.html failure and fix +* Issue #636: X Axis Date Renderer Single Day Not plotting +* Issue #607: Integration issue +* Issue #571: Decimal numbers not properly formatted +* Issue #552: jqPlot crashes when interval too small +* Issue #536: DateAxisRenderer invalid scaling +* Issue #534: "decimalMark" in the "jqplot.sprintf.js" +* Issue #529: Scientific notation on label values ending in 0 +* Issue #521: invalid JS in meterGaugeRenderer.js +* Issue #516: Including BezierCurveRenderer plugin and initializing jqplot with no options give error +* Issue #500: DateAxisRenderer has timezone related issues +* Issue #452: Including ALL jqPlot plugins causes an Error +* Issue #494: No point when use LogAxisRenderer and a point has a zero value +* Issue #430: getIsoWeek: invalid method call +* Issue #280: jqplot Options +* Issue #179: Spelling/grammar +* Pull Request #18: Implement getTop in CanvasAxisTickRenderer +* Pull Request #21: Performance issue when drawing pointlabels with zeros/null values +* Pull Request #24: Added suggested fix in comment #8 for issue #536 +* Pull Request #29: Removed unbalanced addition of UTC offset +* Pull Request #33: Documentation fixes (issue #179, other changes) +* Pull Request #34: Start of updating jqPlotOptions.txt +* Pull Request #37: Example and suggested fix for issues #552 and issue #536 +* Pull Request #39: Fixed trailing comma which caused issues with IE7 + +1.0.6: +* Add left sidebar navigation to examples +* Update examples for jquery 1.9.1 and jquery ui 1.10.0 +* Add colorpicker.js to distribution +* Fix some problems with examples when viewing with local file system +* Add "minified" copyright notice for minified files, similar to jquery's notice. +* Pull Request #25: jqplot.sprintf.js is no longer the last file in the concatenated jquery.jqplot.js +* Pull Request #17: Fixed bug causing custom pointLabels passed with plot data to be ignored for horizontal bar graphs. +* Pull Request #10: Build error by invalid encoding. +* Issue #714: handle tickColor in meterGaugeRenderer +* Issue #519: jsDate Polish Localization + +1.0.5: +* Updated to jQuery 1.9 + +1.0.0b2: +* Major improvements in memory usage: +** Merged in changes from Timo Besenruether to reuse canvas elements and improve + memory performance. +** Fixed all identifiable DOM leaks. +** Mergged in changes from cguillot for memory improvements in IE < 9. +* Added vertical and dashed vertical line support for canvas overlay. +* Fixed bug where initially hidden plots would not display. +* Fixed bug with point labels and null data points. +* Updated to jQuery 1.6.1. +* Improved pie slice margin calculation and fixed slice margin and pie positioning + with small slices. +* Improved bar renderer so bars always start at 0 if: +** The axis is a linear axis (not log/date). +** There are no other line types besides bars attached to the axis. +** The data on the axis is all >= 0. +** The user has not specified a pad, padMin or forceTickAt0 = true option. +* Modified tick prefix behavious so prefix no added to all ticks, even if format + string is specified. +* Fix to ensure original tick formats are applied when zooming and resetting + zoom. +* Updated auto tick format string so format adjusted when zooming. +* Modified auto tick computation to put less ticks on small plots and more + ticks on large plots. +* Update bubble render to support gradients in IE 9. + +1.0.0b1: +* Much improved tick generation algorithm to get precise rounded + tick values (Thanks Scott Prahl!). +* Auto compute tick format string if none is provided. +* Much better "slicing" of pie charts when using "sliceMargin" option to set + a gap between the slices. +* Expanded canvasOverlay plugin to create arbitrary dashed and solid + horizontal and vertical lines on top of plot. +* Added defaultColors and defaultNegativeColors options to $.jqplot.config. +* Fixed issue #318, highlighter & bar renderer incompatability. +* Improve highlighter tooltip positioning with negative bars. +* Fixed #305, mispelling of jqlotDragStart and jqlotDragStop. MUST NOW BIND + TO jqplotDragStart and jqplotDragStop. +* Fixed #290, some variables left in global scope. +* Fixed #289, OHLC line widths hard coded at 1.5. Now set by lineWidth option. +* Fixed #296 for determining databounds on log axes. +* Updated to jQuery 1.5.1 +* Fixed waterfall plot to ensure first and last bars always fill to zero. +* Added lineJoin and lineCap option to series lines. +* Bar widths now based on width of grid, not plot target for better scaling. +* Added looseZoom option to cursor so zooming can produce well rounded ticks. +* Added forceTickAt0 and forceTickAt100 options to ensure there will always + be a tick at 0 or 100 in the plot. +* Fixed bug where cursor legend didn't honor series showLabel option. + + +1.0.0a: + +* Series can now be moved forward or backward in stack to e.g. bring a line + forward when mousing over a point. +* Can now move outside of grid area while zooming. Can have zoom + constrained to grid area or allow zooming outside. +* Fixed issue #142 with tooltip drawn on top of event canvas, hiding + mouse events. +* Fixed #147 where pie slices with 0 value not rendering properly in IE. +* Fixed #130 where stack data not sorted properly. +* Fixed bug with null values not handled properly in category axes. +* Fixed #156 where pie charts not rendering on QTWebKit. +* Now using feature detection for canvas and canvas text capability + rather than browser version. +* Added enahncedLegendRenderer plugin to allow multi row/column legends + and clickable labels to show/hide series. +* Added fillToValue option to allow filled line plot to fill to an + arbitrary value. +* Added block plot plugin. +* Added funnel type charts. +* Added meter gauge type charts. +* Added plot theming support. +* $.jqplot.config.enablePlugins now false by default. +* Implemented highlighting on bar, pie, donut, funnel, etc. charts. +* Fix to pointlabels plugin to align labels properly on multi series plots. +* Added custom error handling to display error message in plot area. +* Fixed issue where would call to draw grid border of 0 width would + result in a default border being drawn. +* Added options to place legend outside of grid and shrink grid so everything + stays within plot div. +* Fixed bug in color generator so now calls to get() continually cycle + through colors just like next(). +* Added defaultAxisStart option. +* Added gradient fills to bubbles. +* Added bubble charts. +* Added showLabels option to bubble charts. +* Pass bubble radius to event callback in bubble charts. +* Fixed #207, typo in docs. +* Fixed #206 where "value" pie slice data labels were displaying wrong + value. +* Fixed #147 with 0 value slices in IE6. +* Fixed issue #241, disabled varyBarColor option in stacked charts. +* Added dataRenderer option to allow custom processors for JSON, AJAX + and anywhere else you might want to get data. +* Fixed null value handling so plot now properly skip or join over nulls. +* Fixed showTicks and showTickMarks option conflicts. +* Fixed issue #185 where pointLabels plugin incompatibility could crash + pie, donut and other plots. +* Fixed #23 and #143 to obey gridPadding option. +* Fixed #233 with highlighter tooltip separator. +* Fixed #224 where type checking failing on GWT. +* Fixed #272 with pie highlighting not working on replot. +* Memory performance improvements. +* Changes to build script so everything should build when pulled from repo. +* Fixed issue #275, IE 6/7 don't support array indexing of strings. +* Added event listener hooks for mouseUp, mouseDown, etc. to all line plots. +* Fixed bug with highlighter not working when null in data. +* Updated to jQuery 1.4.4 +* Fixed bug where donut plots showed value of radians of slice instead + of actual data. +* Reverted to excanvas r3 so IE8 no longer has to emulate IE7. +* Added tooltipContentEditor option to highlighter, allowing callback + to manipulate tooltip content at run time (thanks Tim Bunce!). +* Fixed bug where axes scale not resetting. +* Fixed bug with date axes where data bounds not properly set. +* Fixed issue where tick marks disappear if grid lines turned off. +* Updated replot method to allow passing in axes options for more control. +* Added experimental support for "broken" axes. +* Fixed bug with pies where pies with 0 valued slices did not draw correctly. +* Added canvasOverlay plugin to allow drawing of arbitrary shapes on a canvas + over the plot. +* Added option to display arbitrary text/html (message, animated gif, etc.) if + plot is constructed without data. Allow a "data loading" indicator to be shown. +* Added resetAxisValues method to manually update axis ticks without + redrawing the plot. +* Fix to labels on negative bars so label postiion of 'n' will be below a negative bar, + just as it is above a positive bar (thanks guigod!). +* Added thousands separator character (') to sprintf formatting (thanks yuichi1004!). +* Re-factored date parsing/formatting to use new jsDate module which does not + extend the Date prototype. + + +0.9.7: + +* Added Mekko chart plot type with enhanced legend and axes support. +* Implemented vertical waterfall charts. Can create waterfall plot as + option to bar chart. See examples folder of distribution. +* Enhanced plot labels for waterfall style. +* Enhanced bar plots so you can now color each bar of a series + independently with the "varyBarColor" option. +* Re-factored series drawing so that each series and series shadow drawn + on its own canvas. Allows series to be redrawn independently of each other. +* Added additional default series colors. +* Added useNegativeColors option to turn off negative color array and use + only seriesColors array to define all bar/filled line colors. +* Fix css for cursor legend. +* Modified shape renderer so rectangles can be stroked and filled. +* Re-factored date methods out of dateAxisRenderer so that date formatter + and methods can be accesses outside of dateAxisRenderer plugin. +* Fixed #132, now trigger series change event on plot target instead of drag canvas. +* Fixes issue #116 where some source files had mix of tabs and spaces + for indentation. Should have been all spaces. +* Fixed issue #126, some links broken in docs section of web site. +* Fixed issue #90, trendline plugin incompatibility with pie renderer. +* Updated samples in examples folder of distribution to include navigation + links if web server is set up to process .html files with php. + + +0.9.6: + +* New, easier to use, replot() method for placing plots in tabs, accordions, + resizable containers or for changing plot parameters programmatically. +* Updated legend renderer for pie charts to draw swatches which will + print correctly. +* Fixed issue #118 with patch from taum so autoscale option will + honor tickInterval and numberTicks options +* Fix to plot diameter calculation for initially hidden plots. +* Added examples for making plots in jQuery UI tabs and accordions. +* Fixed issue #120 where pie chart with single slice not displaying + correctly in IE and Chrome + + +0.9.5.2: + +* Fixed #102 where double clicking on plot that has zoom enabled, but + has not been zoomed resulted in error. +* Fixed bug where candlestick coloring options not working. +* Added option to turn individual series labels off in the legend. + + +0.9.5.1: + +* Fixed bug where tooltip not working with OHLC and candlestick charts. +* Added additional marker styles: plus, X and dash. + + +0.9.5: + +* Implemented "zoomProxy". zoomProxy allows zooming one plot from another + such as an overview plot. +* Zooming can now be constrained to just x or y axis. +* Enhanced cursor plugin with vertical "dataTracking" line. This is a line + at the cursor location with a readout of data points at the line location + which are displayed in the chart legend. +* Changed cursor tooltip format string. Now one format string is used for + entire tooltip. +* Added mechanisms to specify plot size when plot target is hidden or plot + height/width otherwise cannot be determined from markup. +* Added $.jqplot.config object to specify jqplot wide configuration options. + These include enablePlugins to globally set the default plugin state on/off + and defaultHeight/defaultWidth to specify default plot height/width. +* Added fillToZero option which forces filled charts to fill to zero as opposed + to axis minimum. Thus negative filled bar/line values will fill upwards to + zero axis value. +* Added option to disable stacking on individual lines. +* Changed targetId property of the plot object so it now includes a "#" before + the id string. +* Improved tick and body sizing of Open Hi Low Close and candlestick charts. +* Removed lots of web site related files from the repository. This means that, + if working from the sources, user's won't be able to build the jqplot web + site and the docs/tests that are hosted on that site. The minified and + compressed distribution packages will build fine. +* Lots of examples were added to a separate examples directory to better show + functionality of jqPlot for local testing with the distribution. +* Many various bug fixes and other minor enhancements. + + +0.9.4: + +* Implemented axis labels. Labels can be rendered in div tags or as canvas + elements supporting rotated text. +* Improved rotated axis label positioning so labels will start or end at a + tick position. +* Fixed bug where an empty data series would hang plot rendering. +* completed issue #66 for misc. improvements to documentation. +* Fixed issue #64 where the same ID's were assigned to cursor and highlighter + elements. +* Added option to legend to encode special HTML characters. +* Fixed undesirable behavior where point labels for points off the plot + were being rendered. +* Added edgeTolerance option to point label renderer to control rendering of + labels near plot edges. + + +0.9.3: + +* Preliminary support for axis labels. Currently rendered into DIV tags, + so no rotated label support. This feature is currently experimental. +* Fixed bug #52, needed space in tick div tag between style and class declarations + or plot failed in certain application doctypes. +* Fixed issue #54, miter style line join for chart lines causing spikes at steep + changes in slope. Changed miter style to round. +* Added examples for new autoscaling algorithm. +* Fixed bug #57, category axis labels disappear on redraw() +* Improved algorithm which controlled maximum number of labels that would display + on a category axis. +* Fixed bug #45 where null values causing errors in plotData and gridData. +* Fixed issue #60 where seriesColors option was not working. + + +0.9.2: + +* Fixed bug #45 where a plot could crash if series had different numbers of points. +* Fixed issue #50, added option to turn off sorting of series data. +* Fixed issue #31, implemented a better axis autoscaling algorithm and added an autoscale option. + +0.9.1: + +* Fixed bug #40, when axis pad, padMax, padMin set to 0, graph would fail to render. +* Fixed bug #41 where pie and bar charts not rendered correctly on redraw(). +* Fixed bug #11, filled stacked line plots not rendering correctly in IE. +* Fixed bug #42 where stacked charts not rendering with string date axis ticks. +* Fixed bug in redraw() method where axes ticks were not reset. +* Fixed "jqplotPreRedrawEvent" that should have been named "jqplotPostRedraw" event. + +0.9.0: + +* Added Open Hi Low Close charts, Candlestick charts and Hi Low Close charts. +* Added support for arbitrary labels on the data points. +* Enhanced highlighter plugin to allow custom formatting control of entire tooltip. +* Enhanced highlighter to support multiple y values in a data point. +* Fixed bug #38 where series with a single point with a negative value would fail. +* Improvements to examples to show what plugins to include. +* Expanded documentation for some of the plugins. + +0.8.5: + +* Added zooming ability with double click or single click options to reset zoom. +* Modified default tick spacing algorithm for date axes to give more space to ticks. +* Fixed bug #2 where tickInterval wasn't working properly. +* Added neighborThreshold option to control how close mouse must be to + point to trigger neighbor detection. +* Added double click event handler on plot. + +0.8.0: + +* Support for up to 9 y axes. +* Added option to control padding at max/min bounds of axes separately. +* Closed issue #21, added options to control grid line color and width. +* Closed issue #20, added options to filled line charts to stoke above + fill and customize fill color and transparency. +* Improved structure of on line documentation to make usage and options + docs default. +* Added much documentation on options and css styling. + +0.7.1: + +* Bug fix release +* Fixed bug #6, missing semi-colons messing up some javascript compressors. +* Fixed bug #13 where 2D ticks array of [values, labels] would fail to + renderer with DateAxisRenderer. +* Fixes bug #16 where pie renderer overwriting options for all plot types + and crashing non pie plots. +* Fixes bug #17 constrainTo dragable option mispelled as "contstrainTo". + Fixed dragable color issue when used with trend lines. + +0.7.0: + +* Pie chart support +* Enabled tooltipLocation option in highlighter. +* Highlighter Tooltip will account for mark size and highlight size when + positioning itself. +* Added ability to show just x, y or both axes in highlighter tooltip. +* Added customization of separator between axes values in highlighter tooltip. +* Modified how shadows are drawn for lines, bars and markers. Now drawn first, + so they are always behind the object. +* Adjustments to shadow parameters on lines to account for new shadow positioning. +* Added a ColorGenerator class to robustly return next available color + for a plot with wrap around to first color at end. +* Udates to docs about css file. +* Fixed bug with String x values in series and IE error on sorting (Category Axis). +* Added cursor changes in dragable plugin when cursor near dragable point. + +0.6.6b: + +* Added excanvas.js and excanvas.min.js to compressed distributions. +* Added example/test html pages I had locally into repository and to + compressed distributions. + +0.6.6a: + +* Removed absolute positioning from dom element and put back into css file. +* Duplicate of 0.6.6 with a suffix to unambiguously differentiate between + previously posted 0.6.6 release. + +0.6.6: + +* Fixed bug #5, trend line plugin failing when no trend line options specified. +* Added absolute position css spec to axis tick dom element. +* Enhancement to category axes, more intuitive handling of series with + missing data values. + +0.6.5: + +* Fixed bug #4, series of unequal data length not rendering correctly. + This is a bugfix release only. + +0.6.4: + +* Fixed bug (issue #1 in tracker) where flat line data series (all x and/or y + values are euqal) or single value data series would crash. + +0.6.3: + +* Support for stacked line (a.k.a. area) and stacked bar (horizontal and + vertical) charts. +* Refactored barRenderer to use default shape and shadow renderers. +* Added info (contacts & support information) page to web site. + +0.6.2: + +* This is a minor upgrade to docs and build only. No functionality has changed. +* Ant build script generates entire site, examples, tests and distribution. +* Improvements to documentation. + +0.6.1: + +* New sprintf implementation from Ash Searle that implements %g. +* Fix to sprintf e/f formats. +* Created new format specifier, %p and %P to preserve significance. +* Modified p/P format to better display larger numbers. +* Fixed and simplified significant digits calculation for sprintf. +* Added option to have cursor tooltip follow the mouse or not. +* Added options to change size of highlight. +* Updates to handle dates like '6-May-09'. +* Mods to improve look of web site. +* Updates to documentation. +* Added license and copyright statement to source files. + +0.6.0: + +* Added rotated text support. Uses native canvas text functionality in + browsers that support it or draws text on canvas with Hershey font +* metrics for non-supporting browsers. +* Removed lots of lint in js code. +* Moved tick css from js code into css file. +* Fix to tick positioning css. y axis ticks were positioned to wrong side of axis div. +* Re-factored axis tick renderer instantiation into the axes renderers themselves. + + +For changes prior to 0.6.0 release, please see change log at http://bitbucket.org/cleonello/jqplot/changesets/ diff --git a/common/chart/copyright.txt b/common/chart/copyright.txt new file mode 100644 index 0000000..86d4c40 --- /dev/null +++ b/common/chart/copyright.txt @@ -0,0 +1,56 @@ +/** + * jqPlot + * Pure JavaScript plotting plugin using jQuery + * + * Version: @VERSION + * + * Copyright (c) 2009-2013 Chris Leonello + * jqPlot is currently available for use in all personal or commercial projects + * under both the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL + * version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html) licenses. This means that you can + * choose the license that best suits your project and use it accordingly. + * + * Although not required, the author would appreciate an email letting him + * know of any substantial use of jqPlot. You can reach the author at: + * chris at jqplot dot com or see http://www.jqplot.com/info.php . + * + * If you are feeling kind and generous, consider supporting the project by + * making a donation at: http://www.jqplot.com/donate.php . + * + * sprintf functions contained in jqplot.sprintf.js by Ash Searle: + * + * version 2007.04.27 + * author Ash Searle + * http://hexmen.com/blog/2007/03/printf-sprintf/ + * http://hexmen.com/js/sprintf.js + * The author (Ash Searle) has placed this code in the public domain: + * "This code is unrestricted: you are free to use it however you like." + * + * included jsDate library by Chris Leonello: + * + * Copyright (c) 2010-2013 Chris Leonello + * + * jsDate is currently available for use in all personal or commercial projects + * under both the MIT and GPL version 2.0 licenses. This means that you can + * choose the license that best suits your project and use it accordingly. + * + * jsDate borrows many concepts and ideas from the Date Instance + * Methods by Ken Snyder along with some parts of Ken's actual code. + * + * Ken's origianl Date Instance Methods and copyright notice: + * + * Ken Snyder (ken d snyder at gmail dot com) + * 2008-09-10 + * version 2.0.2 (http://kendsnyder.com/sandbox/date/) + * Creative Commons Attribution License 3.0 (http://creativecommons.org/licenses/by/3.0/) + * + * jqplotToImage function based on Larry Siden's export-jqplot-to-png.js. + * Larry has generously given permission to adapt his code for inclusion + * into jqPlot. + * + * Larry's original code can be found here: + * + * https://github.com/lsiden/export-jqplot-to-png + * + * + */ diff --git a/common/chart/docs/files/MIT-LICENSE-txt.html b/common/chart/docs/files/MIT-LICENSE-txt.html new file mode 100644 index 0000000..c4200c9 --- /dev/null +++ b/common/chart/docs/files/MIT-LICENSE-txt.html @@ -0,0 +1,39 @@ + + +MIT License + + + + + + + + + +

Copyright © 2009-2013 Chris Leonello

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/changes-txt.html b/common/chart/docs/files/changes-txt.html new file mode 100644 index 0000000..abf85d6 --- /dev/null +++ b/common/chart/docs/files/changes-txt.html @@ -0,0 +1,39 @@ + + +Change Log + + + + + + + + + +

1.0.8

  • Issue #375: sortMergedLabels does not sort string labels
  • Issue #279: Groups > 3 Causes Alignment Issues
  • Issue #439: IE can’t display a customized legend in Quirks mode
  • Issue #482: “Undefined” error message when plotting a chart with no data
  • Issue #116: Don’t mix spaces and tabs for indentation
  • Issue #564: Metergauge renderer not resizable when replotting
  • Issue #409: MeterGaugeRenderer replot/redraw offsets center
  • Issue #523: Adding rectangles to Canvas Overlay plugin
  • Issue #756: jqplot.min files contain non-UTF-8 characters
  • Issue #223: fillToZero does not color negative values when crossover point is 0
  • Pull Request #23: Adding rectangles to Canvas Overlay plugin
  • Pull Request #28: Cross-over points of 0 will actually change colors
  • Pull Request #35: Don’t highlight hidden bars or show tooltips for them
  • Pull Request #41: Add dutch(nl) and svenska(sv) translations for dates
  • Add tooltip support for Pie Charts
  • Update to latest YUI compressor

1.0.7

  • Issue #726: Bug in sprintf %p, sometimes it outputs exponential form rather than decimal
  • Issue #717: Plot’s preDrawHooks not called
  • Issue #707: Browser hangs with LogAxisRenderer when value is 0
  • Issue #695: Horizontal Bar Chart Negative Series Colors Not Working
  • Issue #670: Examples IE7, IE8 and IE9 multipleBarColors.html failure and fix
  • Issue #636: X Axis Date Renderer Single Day Not plotting
  • Issue #607: Integration issue
  • Issue #571: Decimal numbers not properly formatted
  • Issue #552: jqPlot crashes when interval too small
  • Issue #536: DateAxisRenderer invalid scaling
  • Issue #534: “decimalMark” in the “jqplot.sprintf.js”
  • Issue #529: Scientific notation on label values ending in 0
  • Issue #521: invalid JS in meterGaugeRenderer.js
  • Issue #516: Including BezierCurveRenderer plugin and initializing jqplot with no options give error
  • Issue #500: DateAxisRenderer has timezone related issues
  • Issue #452: Including ALL jqPlot plugins causes an Error
  • Issue #494: No point when use LogAxisRenderer and a point has a zero value
  • Issue #430: getIsoWeek: invalid method call
  • Issue #280: jqplot Options
  • Issue #179: Spelling/grammar
  • Pull Request #18: Implement getTop in CanvasAxisTickRenderer
  • Pull Request #21: Performance issue when drawing pointlabels with zeros/null values
  • Pull Request #24: Added suggested fix in comment #8 for issue #536
  • Pull Request #29: Removed unbalanced addition of UTC offset
  • Pull Request #33: Documentation fixes (issue #179, other changes)
  • Pull Request #34: Start of updating jqPlotOptions.txt
  • Pull Request #37: Example and suggested fix for issues #552 and issue #536
  • Pull Request #39: Fixed trailing comma which caused issues with IE7

1.0.6

  • Add left sidebar navigation to examples
  • Update examples for jquery 1.9.1 and jquery ui 1.10.0
  • Add colorpicker.js to distribution
  • Fix some problems with examples when viewing with local file system
  • Add “minified” copyright notice for minified files, similar to jquery’s notice.
  • Pull Request #25: jqplot.sprintf.js is no longer the last file in the concatenated jquery.jqplot.js
  • Pull Request #17: Fixed bug causing custom pointLabels passed with plot data to be ignored for horizontal bar graphs.
  • Pull Request #10: Build error by invalid encoding.
  • Issue #714: handle tickColor in meterGaugeRenderer
  • Issue #519: jsDate Polish Localization

1.0.5

  • Updated to jQuery 1.9

1.0.0b2

  • Major improvements in memory usage: ** Merged in changes from Timo Besenruether to reuse canvas elements and improve memory performance.  ** Fixed all identifiable DOM leaks.  ** Mergged in changes from cguillot for memory improvements in IE < 9.
  • Added vertical and dashed vertical line support for canvas overlay.
  • Fixed bug where initially hidden plots would not display.
  • Fixed bug with point labels and null data points.
  • Updated to jQuery 1.6.1.
  • Improved pie slice margin calculation and fixed slice margin and pie positioning with small slices.
  • Improved bar renderer so bars always start at 0 if: ** The axis is a linear axis (not log/date).  ** There are no other line types besides bars attached to the axis.  ** The data on the axis is all >= 0.  ** The user has not specified a pad, padMin or forceTickAt0 = true option.
  • Modified tick prefix behavious so prefix no added to all ticks, even if format string is specified.
  • Fix to ensure original tick formats are applied when zooming and resetting zoom.
  • Updated auto tick format string so format adjusted when zooming.
  • Modified auto tick computation to put less ticks on small plots and more ticks on large plots.
  • Update bubble render to support gradients in IE 9.

1.0.0b1

  • Much improved tick generation algorithm to get precise rounded tick values (Thanks Scott Prahl!).
  • Auto compute tick format string if none is provided.
  • Much better “slicing” of pie charts when using “sliceMargin” option to set a gap between the slices.
  • Expanded canvasOverlay plugin to create arbitrary dashed and solid horizontal and vertical lines on top of plot.
  • Added defaultColors and defaultNegativeColors options to $.jqplot.config.
  • Fixed issue #318, highlighter & bar renderer incompatability.
  • Improve highlighter tooltip positioning with negative bars.
  • Fixed #305, mispelling of jqlotDragStart and jqlotDragStop.  MUST NOW BIND TO jqplotDragStart and jqplotDragStop.
  • Fixed #290, some variables left in global scope.
  • Fixed #289, OHLC line widths hard coded at 1.5.  Now set by lineWidth option.
  • Fixed #296 for determining databounds on log axes.
  • Updated to jQuery 1.5.1
  • Fixed waterfall plot to ensure first and last bars always fill to zero.
  • Added lineJoin and lineCap option to series lines.
  • Bar widths now based on width of grid, not plot target for better scaling.
  • Added looseZoom option to cursor so zooming can produce well rounded ticks.
  • Added forceTickAt0 and forceTickAt100 options to ensure there will always be a tick at 0 or 100 in the plot.
  • Fixed bug where cursor legend didn’t honor series showLabel option.

1.0.0a

  • Series can now be moved forward or backward in stack to e.g. bring a line forward when mousing over a point.
  • Can now move outside of grid area while zooming.  Can have zoom constrained to grid area or allow zooming outside.
  • Fixed issue #142 with tooltip drawn on top of event canvas, hiding mouse events.
  • Fixed #147 where pie slices with 0 value not rendering properly in IE.
  • Fixed #130 where stack data not sorted properly.
  • Fixed bug with null values not handled properly in category axes.
  • Fixed #156 where pie charts not rendering on QTWebKit.
  • Now using feature detection for canvas and canvas text capability rather than browser version.
  • Added enahncedLegendRenderer plugin to allow multi row/column legends and clickable labels to show/hide series.
  • Added fillToValue option to allow filled line plot to fill to an arbitrary value.
  • Added block plot plugin.
  • Added funnel type charts.
  • Added meter gauge type charts.
  • Added plot theming support.
  • $.jqplot.config.enablePlugins now false by default.
  • Implemented highlighting on bar, pie, donut, funnel, etc. charts.
  • Fix to pointlabels plugin to align labels properly on multi series plots.
  • Added custom error handling to display error message in plot area.
  • Fixed issue where would call to draw grid border of 0 width would result in a default border being drawn.
  • Added options to place legend outside of grid and shrink grid so everything stays within plot div.
  • Fixed bug in color generator so now calls to get() continually cycle through colors just like next().
  • Added defaultAxisStart option.
  • Added gradient fills to bubbles.
  • Added bubble charts.
  • Added showLabels option to bubble charts.
  • Pass bubble radius to event callback in bubble charts.
  • Fixed #207, typo in docs.
  • Fixed #206 where “value” pie slice data labels were displaying wrong value.
  • Fixed #147 with 0 value slices in IE6.
  • Fixed issue #241, disabled varyBarColor option in stacked charts.
  • Added dataRenderer option to allow custom processors for JSON, AJAX and anywhere else you might want to get data.
  • Fixed null value handling so plot now properly skip or join over nulls.
  • Fixed showTicks and showTickMarks option conflicts.
  • Fixed issue #185 where pointLabels plugin incompatibility could crash pie, donut and other plots.
  • Fixed #23 and #143 to obey gridPadding option.
  • Fixed #233 with highlighter tooltip separator.
  • Fixed #224 where type checking failing on GWT.
  • Fixed #272 with pie highlighting not working on replot.
  • Memory performance improvements.
  • Changes to build script so everything should build when pulled from repo.
  • Fixed issue #275, IE 6/7 don’t support array indexing of strings.
  • Added event listener hooks for mouseUp, mouseDown, etc. to all line plots.
  • Fixed bug with highlighter not working when null in data.
  • Updated to jQuery 1.4.4
  • Fixed bug where donut plots showed value of radians of slice instead of actual data.
  • Reverted to excanvas r3 so IE8 no longer has to emulate IE7.
  • Added tooltipContentEditor option to highlighter, allowing callback to manipulate tooltip content at run time (thanks Tim Bunce!).
  • Fixed bug where axes scale not resetting.
  • Fixed bug with date axes where data bounds not properly set.
  • Fixed issue where tick marks disappear if grid lines turned off.
  • Updated replot method to allow passing in axes options for more control.
  • Added experimental support for “broken” axes.
  • Fixed bug with pies where pies with 0 valued slices did not draw correctly.
  • Added canvasOverlay plugin to allow drawing of arbitrary shapes on a canvas over the plot.
  • Added option to display arbitrary text/html (message, animated gif, etc.) if plot is constructed without data.  Allow a “data loading” indicator to be shown.
  • Added resetAxisValues method to manually update axis ticks without redrawing the plot.
  • Fix to labels on negative bars so label postiion of ‘n’ will be below a negative bar, just as it is above a positive bar (thanks guigod!).
  • Added thousands separator character (‘) to sprintf formatting (thanks yuichi1004!).
  • Re-factored date parsing/formatting to use new jsDate module which does not extend the Date prototype.

0.9.7

  • Added Mekko chart plot type with enhanced legend and axes support.
  • Implemented vertical waterfall charts.  Can create waterfall plot as option to bar chart.  See examples folder of distribution.
  • Enhanced plot labels for waterfall style.
  • Enhanced bar plots so you can now color each bar of a series independently with the “varyBarColor” option.
  • Re-factored series drawing so that each series and series shadow drawn on its own canvas.  Allows series to be redrawn independently of each other.
  • Added additional default series colors.
  • Added useNegativeColors option to turn off negative color array and use only seriesColors array to define all bar/filled line colors.
  • Fix css for cursor legend.
  • Modified shape renderer so rectangles can be stroked and filled.
  • Re-factored date methods out of dateAxisRenderer so that date formatter and methods can be accesses outside of dateAxisRenderer plugin.
  • Fixed #132, now trigger series change event on plot target instead of drag canvas.
  • Fixes issue #116 where some source files had mix of tabs and spaces for indentation.  Should have been all spaces.
  • Fixed issue #126, some links broken in docs section of web site.
  • Fixed issue #90, trendline plugin incompatibility with pie renderer.
  • Updated samples in examples folder of distribution to include navigation links if web server is set up to process .html files with php.

0.9.6

  • New, easier to use, replot() method for placing plots in tabs, accordions, resizable containers or for changing plot parameters programmatically.
  • Updated legend renderer for pie charts to draw swatches which will print correctly.
  • Fixed issue #118 with patch from taum so autoscale option will honor tickInterval and numberTicks options
  • Fix to plot diameter calculation for initially hidden plots.
  • Added examples for making plots in jQuery UI tabs and accordions.
  • Fixed issue #120 where pie chart with single slice not displaying correctly in IE and Chrome

0.9.5.2

  • Fixed #102 where double clicking on plot that has zoom enabled, but has not been zoomed resulted in error.
  • Fixed bug where candlestick coloring options not working.
  • Added option to turn individual series labels off in the legend.

0.9.5.1

  • Fixed bug where tooltip not working with OHLC and candlestick charts.
  • Added additional marker styles: plus, X and dash.

0.9.5

  • Implemented “zoomProxy”.  zoomProxy allows zooming one plot from another such as an overview plot.
  • Zooming can now be constrained to just x or y axis.
  • Enhanced cursor plugin with vertical “dataTracking” line.  This is a line at the cursor location with a readout of data points at the line location which are displayed in the chart legend.
  • Changed cursor tooltip format string.  Now one format string is used for entire tooltip.
  • Added mechanisms to specify plot size when plot target is hidden or plot height/width otherwise cannot be determined from markup.
  • Added $.jqplot.config object to specify jqplot wide configuration options.  These include enablePlugins to globally set the default plugin state on/off and defaultHeight/defaultWidth to specify default plot height/width.
  • Added fillToZero option which forces filled charts to fill to zero as opposed to axis minimum.  Thus negative filled bar/line values will fill upwards to zero axis value.
  • Added option to disable stacking on individual lines.
  • Changed targetId property of the plot object so it now includes a “#” before the id string.
  • Improved tick and body sizing of Open Hi Low Close and candlestick charts.
  • Removed lots of web site related files from the repository.  This means that, if working from the sources, user’s won’t be able to build the jqplot web site and the docs/tests that are hosted on that site.  The minified and compressed distribution packages will build fine.
  • Lots of examples were added to a separate examples directory to better show functionality of jqPlot for local testing with the distribution.
  • Many various bug fixes and other minor enhancements.

0.9.4

  • Implemented axis labels.  Labels can be rendered in div tags or as canvas elements supporting rotated text.
  • Improved rotated axis label positioning so labels will start or end at a tick position.
  • Fixed bug where an empty data series would hang plot rendering.
  • completed issue #66 for misc. improvements to documentation.
  • Fixed issue #64 where the same ID’s were assigned to cursor and highlighter elements.
  • Added option to legend to encode special HTML characters.
  • Fixed undesirable behavior where point labels for points off the plot were being rendered.
  • Added edgeTolerance option to point label renderer to control rendering of labels near plot edges.

0.9.3

  • Preliminary support for axis labels.  Currently rendered into DIV tags, so no rotated label support.  This feature is currently experimental.
  • Fixed bug #52, needed space in tick div tag between style and class declarations or plot failed in certain application doctypes.
  • Fixed issue #54, miter style line join for chart lines causing spikes at steep changes in slope.  Changed miter style to round.
  • Added examples for new autoscaling algorithm.
  • Fixed bug #57, category axis labels disappear on redraw()
  • Improved algorithm which controlled maximum number of labels that would display on a category axis.
  • Fixed bug #45 where null values causing errors in plotData and gridData.
  • Fixed issue #60 where seriesColors option was not working.

0.9.2

  • Fixed bug #45 where a plot could crash if series had different numbers of points.
  • Fixed issue #50, added option to turn off sorting of series data.
  • Fixed issue #31, implemented a better axis autoscaling algorithm and added an autoscale option.

0.9.1

  • Fixed bug #40, when axis pad, padMax, padMin set to 0, graph would fail to render.
  • Fixed bug #41 where pie and bar charts not rendered correctly on redraw().
  • Fixed bug #11, filled stacked line plots not rendering correctly in IE.
  • Fixed bug #42 where stacked charts not rendering with string date axis ticks.
  • Fixed bug in redraw() method where axes ticks were not reset.
  • Fixed “jqplotPreRedrawEvent” that should have been named “jqplotPostRedraw” event.

0.9.0

  • Added Open Hi Low Close charts, Candlestick charts and Hi Low Close charts.
  • Added support for arbitrary labels on the data points.
  • Enhanced highlighter plugin to allow custom formatting control of entire tooltip.
  • Enhanced highlighter to support multiple y values in a data point.
  • Fixed bug #38 where series with a single point with a negative value would fail.
  • Improvements to examples to show what plugins to include.
  • Expanded documentation for some of the plugins.

0.8.5

  • Added zooming ability with double click or single click options to reset zoom.
  • Modified default tick spacing algorithm for date axes to give more space to ticks.
  • Fixed bug #2 where tickInterval wasn’t working properly.
  • Added neighborThreshold option to control how close mouse must be to point to trigger neighbor detection.
  • Added double click event handler on plot.

0.8.0

  • Support for up to 9 y axes.
  • Added option to control padding at max/min bounds of axes separately.
  • Closed issue #21, added options to control grid line color and width.
  • Closed issue #20, added options to filled line charts to stoke above fill and customize fill color and transparency.
  • Improved structure of on line documentation to make usage and options docs default.
  • Added much documentation on options and css styling.

0.7.1

  • Bug fix release
  • Fixed bug #6, missing semi-colons messing up some javascript compressors.
  • Fixed bug #13 where 2D ticks array of [values, labels] would fail to renderer with DateAxisRenderer.
  • Fixes bug #16 where pie renderer overwriting options for all plot types and crashing non pie plots.
  • Fixes bug #17 constrainTo dragable option mispelled as “contstrainTo”.  Fixed dragable color issue when used with trend lines.

0.7.0

  • Pie chart support
  • Enabled tooltipLocation option in highlighter.
  • Highlighter Tooltip will account for mark size and highlight size when positioning itself.
  • Added ability to show just x, y or both axes in highlighter tooltip.
  • Added customization of separator between axes values in highlighter tooltip.
  • Modified how shadows are drawn for lines, bars and markers.  Now drawn first, so they are always behind the object.
  • Adjustments to shadow parameters on lines to account for new shadow positioning.
  • Added a ColorGenerator class to robustly return next available color for a plot with wrap around to first color at end.
  • Udates to docs about css file.
  • Fixed bug with String x values in series and IE error on sorting (Category Axis).
  • Added cursor changes in dragable plugin when cursor near dragable point.

0.6.6b

  • Added excanvas.js and excanvas.min.js to compressed distributions.
  • Added example/test html pages I had locally into repository and to compressed distributions.

0.6.6a

  • Removed absolute positioning from dom element and put back into css file.
  • Duplicate of 0.6.6 with a suffix to unambiguously differentiate between previously posted 0.6.6 release.

0.6.6

  • Fixed bug #5, trend line plugin failing when no trend line options specified.
  • Added absolute position css spec to axis tick dom element.
  • Enhancement to category axes, more intuitive handling of series with missing data values.

0.6.5

  • Fixed bug #4, series of unequal data length not rendering correctly.  This is a bugfix release only.

0.6.4

  • Fixed bug (issue #1 in tracker) where flat line data series (all x and/or y values are euqal) or single value data series would crash.

0.6.3

  • Support for stacked line (a.k.a. area) and stacked bar (horizontal and vertical) charts.
  • Refactored barRenderer to use default shape and shadow renderers.
  • Added info (contacts & support information) page to web site.

0.6.2

  • This is a minor upgrade to docs and build only.  No functionality has changed.
  • Ant build script generates entire site, examples, tests and distribution.
  • Improvements to documentation.

0.6.1

  • New sprintf implementation from Ash Searle that implements %g.
  • Fix to sprintf e/f formats.
  • Created new format specifier, %p and %P to preserve significance.
  • Modified p/P format to better display larger numbers.
  • Fixed and simplified significant digits calculation for sprintf.
  • Added option to have cursor tooltip follow the mouse or not.
  • Added options to change size of highlight.
  • Updates to handle dates like ‘6-May-09’.
  • Mods to improve look of web site.
  • Updates to documentation.
  • Added license and copyright statement to source files.

0.6.0

  • Added rotated text support.  Uses native canvas text functionality in browsers that support it or draws text on canvas with Hershey font
  • metrics for non-supporting browsers.
  • Removed lots of lint in js code.
  • Moved tick css from js code into css file.
  • Fix to tick positioning css.  y axis ticks were positioned to wrong side of axis div.
  • Re-factored axis tick renderer instantiation into the axes renderers themselves.

For changes prior to 0.6.0 release, please see change log at http://bitbucket.org/cleonello/jqplot/changesets/

+ +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/gpl-2-0-txt.html b/common/chart/docs/files/gpl-2-0-txt.html new file mode 100644 index 0000000..be09f7c --- /dev/null +++ b/common/chart/docs/files/gpl-2-0-txt.html @@ -0,0 +1,39 @@ + + +GPL Version 2 + + + + + + + + + +

GNU GENERAL PUBLIC LICENSE Version 2, June 1991

Copyright © 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your freedom to share and change it.  By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.  This General Public License applies to most of the Free Software Foundation’s software and to any other program whose authors commit to using it.  (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.)  You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price.  Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights.  These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have.  You must make sure that they, too, receive or can get the source code.  And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author’s protection and ours, we want to make certain that everyone understands that there is no warranty for this free software.  If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors’ reputations.

Finally, any free program is threatened constantly by software patents.  We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary.  To prevent this, we have made it clear that any patent must be licensed for everyone’s free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0.  This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License.  The “Program”, below, refers to any such program or work, and a “work based on the Program” means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language.  (Hereinafter, translation is included without limitation in the term “modification”.)  Each licensee is addressed as “you”.

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope.  The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program).  Whether that is true depends on what the Program does.

1.  You may copy and distribute verbatim copies of the Program’s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2.  You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License.  (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole.  If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works.  But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3.  You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer to distribute corresponding source code.  (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for making modifications to it.  For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable.  However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

4.  You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License.  Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License.  However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

5.  You are not required to accept this License, since you have not signed it.  However, nothing else grants you permission to modify or distribute the Program or its derivative works.  These actions are prohibited by law if you do not accept this License.  Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

6.  Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions.  You may not impose any further restrictions on the recipients’ exercise of the rights granted herein.  You are not responsible for enforcing compliance by third parties to this License.

7.  If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License.  If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all.  For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices.  Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

8.  If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded.  In such case, this License incorporates the limitation as if written in the body of this License.

9.  The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time.  Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number.  If the Program specifies a version number of this License which applies to it and “any later version”, you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation.  If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

10.  If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission.  For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this.  Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

NO WARRANTY

11.  BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

12.  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+ +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/images/background.jpg b/common/chart/docs/files/images/background.jpg new file mode 100644 index 0000000..c155052 Binary files /dev/null and b/common/chart/docs/files/images/background.jpg differ diff --git a/common/chart/docs/files/images/basicline.png b/common/chart/docs/files/images/basicline.png new file mode 100644 index 0000000..1cc6bc6 Binary files /dev/null and b/common/chart/docs/files/images/basicline.png differ diff --git a/common/chart/docs/files/images/basiclogaxis.png b/common/chart/docs/files/images/basiclogaxis.png new file mode 100644 index 0000000..7c16963 Binary files /dev/null and b/common/chart/docs/files/images/basiclogaxis.png differ diff --git a/common/chart/docs/files/images/basiclogoptions.png b/common/chart/docs/files/images/basiclogoptions.png new file mode 100644 index 0000000..d91bf5f Binary files /dev/null and b/common/chart/docs/files/images/basiclogoptions.png differ diff --git a/common/chart/docs/files/images/basicoptions.png b/common/chart/docs/files/images/basicoptions.png new file mode 100644 index 0000000..4ea441c Binary files /dev/null and b/common/chart/docs/files/images/basicoptions.png differ diff --git a/common/chart/docs/files/images/dualaxis.png b/common/chart/docs/files/images/dualaxis.png new file mode 100644 index 0000000..36012b2 Binary files /dev/null and b/common/chart/docs/files/images/dualaxis.png differ diff --git a/common/chart/docs/files/images/index.php b/common/chart/docs/files/images/index.php new file mode 100644 index 0000000..e69de29 diff --git a/common/chart/docs/files/images/logo.jpg b/common/chart/docs/files/images/logo.jpg new file mode 100644 index 0000000..a12fffc Binary files /dev/null and b/common/chart/docs/files/images/logo.jpg differ diff --git a/common/chart/docs/files/images/navdocs.png b/common/chart/docs/files/images/navdocs.png new file mode 100644 index 0000000..318ab04 Binary files /dev/null and b/common/chart/docs/files/images/navdocs.png differ diff --git a/common/chart/docs/files/images/navdocsover.png b/common/chart/docs/files/images/navdocsover.png new file mode 100644 index 0000000..4a5b8ec Binary files /dev/null and b/common/chart/docs/files/images/navdocsover.png differ diff --git a/common/chart/docs/files/images/navdownload.png b/common/chart/docs/files/images/navdownload.png new file mode 100644 index 0000000..41723e7 Binary files /dev/null and b/common/chart/docs/files/images/navdownload.png differ diff --git a/common/chart/docs/files/images/navdownloadover.png b/common/chart/docs/files/images/navdownloadover.png new file mode 100644 index 0000000..881bdbf Binary files /dev/null and b/common/chart/docs/files/images/navdownloadover.png differ diff --git a/common/chart/docs/files/images/navexamples.png b/common/chart/docs/files/images/navexamples.png new file mode 100644 index 0000000..89d1fb4 Binary files /dev/null and b/common/chart/docs/files/images/navexamples.png differ diff --git a/common/chart/docs/files/images/navexamplesover.png b/common/chart/docs/files/images/navexamplesover.png new file mode 100644 index 0000000..0ea7525 Binary files /dev/null and b/common/chart/docs/files/images/navexamplesover.png differ diff --git a/common/chart/docs/files/images/navhome.png b/common/chart/docs/files/images/navhome.png new file mode 100644 index 0000000..fd55aa5 Binary files /dev/null and b/common/chart/docs/files/images/navhome.png differ diff --git a/common/chart/docs/files/images/navhomeover.png b/common/chart/docs/files/images/navhomeover.png new file mode 100644 index 0000000..63bbf7a Binary files /dev/null and b/common/chart/docs/files/images/navhomeover.png differ diff --git a/common/chart/docs/files/images/new.png b/common/chart/docs/files/images/new.png new file mode 100644 index 0000000..3eaba9c Binary files /dev/null and b/common/chart/docs/files/images/new.png differ diff --git a/common/chart/docs/files/images/sample3.png b/common/chart/docs/files/images/sample3.png new file mode 100644 index 0000000..31e644d Binary files /dev/null and b/common/chart/docs/files/images/sample3.png differ diff --git a/common/chart/docs/files/images/samplesm.png b/common/chart/docs/files/images/samplesm.png new file mode 100644 index 0000000..1b7b3ef Binary files /dev/null and b/common/chart/docs/files/images/samplesm.png differ diff --git a/common/chart/docs/files/index.php b/common/chart/docs/files/index.php new file mode 100644 index 0000000..e69de29 diff --git a/common/chart/docs/files/jqPlotCssStyling-txt.html b/common/chart/docs/files/jqPlotCssStyling-txt.html new file mode 100644 index 0000000..f577e06 --- /dev/null +++ b/common/chart/docs/files/jqPlotCssStyling-txt.html @@ -0,0 +1,39 @@ + + +jqPlot CSS Customization + + + + + + + + + +

Much of the styling of jqPlot is done by css.  The jqPlot css file is, unremarkably, jquery.jqplot.css and resides in the same directory as jqPlot itself.

There exist some styling related javascript properties on the plot objects themselves (like fontStyle, fontSize, etc.).  These can be set with the options object at plot creation.  Generally, setting these options is NOT the preferred way to customize the look of the plot.  Use the css file instead.  These options are deprecated and may disappear.  The exceptions are certain background and color options which control attributes of something renderered on a canvas.  This would be line color, grid background, etc.  These must be set by the options object.  For a list of available options, see jqPlot Options.

Objects in the plot that can be customized by css are given a css class like “.jqplot-*”.  For example, the plot title will have a “.jqplot-title” class, the axes “.jqplot-axis”, etc.

Currently assigned classes in jqPlot are as follows:

.jqplot-targetStyles for the plot target div.  These will be cascaded down to all plot elements according to css rules.
.jqplot-axisStyles for all axes
.jqplot-xaxisStyles applied to the primary x axis only.
.jqplot-yaxisStyles applied to the primary y axis only.
.jqplot-x2axis, .jqplot-x3axis, ...Styles applied to the 2nd, 3rd, etc. x axis only.
.jqplot-y2axis, .jqplot-y3axis, ...Styles applied to the 2nd, 3rd, etc.y axis only.
.jqplot-axis-tickStyles applied to all axis ticks
.jqplot-xaxis-tickStyles applied to primary x axis ticks only.
.jqplot-x2axis-tickStyles applied to secondary x axis ticks only.
.jqplot-yaxis-tickStyles applied to primary y axis ticks only.
.jqplot-y2axis-tickStyles applied to secondary y axis ticks only.
table.jqplot-table-legendStyles applied to the legend box table.
.jqplot-titleStyles applied to the title.
.jqplot-cursor-tooltipStyles applied to the cursor tooltip
.jqplot-highlighter-tooltipStyles applied to the highlighter tooltip.
div.jqplot-table-legend-swatchthe div element used for the colored swatch on the legend.

Note that axes will be assigned 2 classes like: class=”.jqplot-axis .jqplot-xaxis”.

+ +
+ + + + + + + + + + +
This document is out of date.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/jqPlotOptions-txt.html b/common/chart/docs/files/jqPlotOptions-txt.html new file mode 100644 index 0000000..a368ebb --- /dev/null +++ b/common/chart/docs/files/jqPlotOptions-txt.html @@ -0,0 +1,345 @@ + + +jqPlot Options + + + + + + + + + +

This document is out of date.  While the options described here should still be relavent and valid, it has not been updated for many new options.  Sorry for this inconvenience.

This document describes the options available to jqPlot.  These are set with the third argument to the $.jqplot(‘target’, data, options) function.  Options are described using the following convention:

property: default, // notes

This document is not complete!  Not all options are shown!  Further information about the options can be found in the online API documentation.  For details on how the options relate to the API documentation, see the Options Tutorial in the optionsTutorial.txt file.

options =
+{
+    seriesColors: [ "#4bb2c5", "#c5b47f", "#EAA228", "#579575", "#839557", "#958c12",
+        "#953579", "#4b5de4", "#d8b83f", "#ff5800", "#0085cc"],  // colors that will
+         // be assigned to the series.  If there are more series than colors, colors
+         // will wrap around and start at the beginning again.
+
+    // when fillToZero is enabled, this sets the colors to use for portions of the line below zero.
+    negativeSeriesColors: [ "#498991", "#C08840", "#9F9274", "#546D61", "#646C4A", "#6F6621",
+                            "#6E3F5F", "#4F64B0", "#A89050", "#C45923", "#187399", "#945381",
+                            "#959E5C", "#C7AF7B", "#478396", "#907294"],
+
+    sortData : true,    // if true, will sort the data passed in by the user.
+    stackSeries: false, // if true, will create a stack plot.
+                        // Currently supported by line and bar graphs.
+
+    title: '',      // Title for the plot.  Can also be specified as an object like:
+
+    title: {
+        text: '',   // title for the plot,
+        show: true,
+    },
+
+    animate : false,        // if true, the series will be animated on initial drawing.
+                            // This support is renderer-dependent; the renderer must support animation.
+    animateReplot : false,  // if true, the series will be animated after every replot() call.
+                            // Use with caution!  Replots can happen very frequently under
+                            // certain circumstances (e.g. resizing, dragging points) and
+                            // animation in these situations can cause problems.
+    captureRightClick : false,   // if true, right-click events are intercepted and a jqplotRightClick
+                                 // event will be fired.  This will also block the context menu.
+    dataRenderer : undefined, // A callable which can be used to preprocess data passed into the plot.
+                              // Will be called with 3 arguments: the plot data, a reference to the plot,
+                              // and the value of dataRendererOptions.
+
+    dataRendererOptions : undefined,    // Options that will be passed to the dataRenderer,
+                                        // if that option is supplied.  Can be of any type.
+
+    gridData : [],  // array of grid coordinates corresponding to the data points;
+                    // normally jqPlot will calculate this for you.
+
+    axesDefaults: {
+        show: false,    // whether or not to render the axis.  Determined automatically.
+        min: null,      // minimum numerical value of the axis.  Determined automatically.
+        max: null,      // maximum numerical value of the axis.  Determined automatically.
+        pad: 1.2,       // a factor multiplied by the data range on the axis to give the
+                        // axis range so that data points don't fall on the edges of the axis.
+        ticks: [],      // a 1D [val1, val2, ...], or 2D [[val, label], [val, label], ...]
+                        // array of ticks to use.  Computed automatically.
+        numberTicks: undefined,
+        renderer: $.jqplot.LinearAxisRenderer,  // renderer to use to draw the axis,
+        rendererOptions: {},    // options to pass to the renderer.  LinearAxisRenderer
+                                // has no options,
+        tickOptions: {
+            mark: 'outside',    // Where to put the tick mark on the axis
+                                // 'outside', 'inside' or 'cross'
+            showMark: true,     // whether or not to show the mark on the axis
+            showGridline: true, // whether to draw a gridline (across the whole grid) at this tick
+            isMinorTick: false, // whether this is a minor tick
+            markSize: 4,        // length the tick will extend beyond the grid in pixels.  For
+                                // 'cross', length will be added above and below the grid boundary
+            show: true,         // whether to show the tick (mark and label)
+            showLabel: true,    // whether to show the text label at the tick
+            prefix: '',         // String to prepend to the tick label.
+                                // Prefix is prepended to the formatted tick label
+            suffix: '',         // String to append to the tick label.
+                                // Suffix is appended to the formatted tick label
+            formatString: '',   // format string to use with the axis tick formatter
+            fontFamily: '',     // css spec for the font-size css attribute
+            fontSize: '',       // css spec for the font-size css attribute
+            textColor: '',      // css spec for the color attribute
+            escapeHTML: false   // true to escape HTML entities in the label
+        }
+        showTicks: true,        // whether or not to show the tick labels,
+        showTickMarks: true,    // whether or not to show the tick marks
+    },
+
+    axes: {
+        xaxis: {
+            // same options as axesDefaults
+        },
+        yaxis: {
+            // same options as axesDefaults
+        },
+        x2axis: {
+            // same options as axesDefaults
+        },
+        y2axis: {
+            // same options as axesDefaults
+        }
+    },
+
+    seriesDefaults: {
+        show: true,     // whether to render the series.
+        xaxis: 'xaxis', // either 'xaxis' or 'x2axis'.
+        yaxis: 'yaxis', // either 'yaxis' or 'y2axis'.
+        label: '',      // label to use in the legend for this line.
+        color: '',      // CSS color spec to use for the line.  Determined automatically.
+        lineWidth: 2.5, // Width of the line in pixels.
+        shadow: true,   // show shadow or not.
+        shadowAngle: 45,    // angle (degrees) of the shadow, clockwise from x axis.
+        shadowOffset: 1.25, // offset from the line of the shadow.
+        shadowDepth: 3,     // Number of strokes to make when drawing shadow.  Each
+                            // stroke offset by shadowOffset from the last.
+        shadowAlpha: 0.1,   // Opacity of the shadow.
+        showLine: true,     // whether to render the line segments or not.
+        showMarker: true,   // render the data point markers or not.
+        fill: false,        // fill under the line,
+        fillAndStroke: false,       // stroke a line at top of fill area.
+        fillColor: undefined,       // custom fill color for filled lines (default is line color).
+        fillAlpha: undefined,       // custom alpha to apply to fillColor.
+        renderer: $.jqplot.LineRenderer],    // renderer used to draw the series.
+        rendererOptions: {}, // options passed to the renderer.  LineRenderer has no options.
+        markerRenderer: $.jqplot.MarkerRenderer,    // renderer to use to draw the data
+                                                    // point markers.
+        markerOptions: {
+            show: true,             // whether to show data point markers.
+            style: 'filledCircle',  // circle, diamond, square, filledCircle.
+                                    // filledDiamond or filledSquare.
+            lineWidth: 2,       // width of the stroke drawing the marker.
+            size: 9,            // size (diameter, edge length, etc.) of the marker.
+            color: '#666666'    // color of marker, set to color of line by default.
+            shadow: true,       // whether to draw shadow on marker or not.
+            shadowAngle: 45,    // angle of the shadow.  Clockwise from x axis.
+            shadowOffset: 1,    // offset from the line of the shadow,
+            shadowDepth: 3,     // Number of strokes to make when drawing shadow.  Each stroke
+                                // offset by shadowOffset from the last.
+            shadowAlpha: 0.07   // Opacity of the shadow
+        }
+    },
+
+    series:[
+        {Each series has same options as seriesDefaults},
+        {You can override each series individually here}
+    ],
+
+    legend: {
+        show: false,
+        location: 'ne',     // compass direction, nw, n, ne, e, se, s, sw, w.
+        xoffset: 12,        // pixel offset of the legend box from the x (or x2) axis.
+        yoffset: 12,        // pixel offset of the legend box from the y (or y2) axis.
+    },
+
+    grid: {
+        drawGridLines: true,        // whether to draw lines across the grid or not.
+        gridLineColor: '#cccccc'    // Color of the grid lines.
+        background: '#fffdf6',      // CSS color spec for background color of grid.
+        borderColor: '#999999',     // CSS color spec for border around grid.
+        borderWidth: 2.0,           // pixel width of border around grid.
+        shadow: true,               // draw a shadow for grid.
+        shadowAngle: 45,            // angle of the shadow.  Clockwise from x axis.
+        shadowOffset: 1.5,          // offset from the line of the shadow.
+        shadowWidth: 3,             // width of the stroke for the shadow.
+        shadowDepth: 3,             // Number of strokes to make when drawing shadow.
+                                    // Each stroke offset by shadowOffset from the last.
+        shadowAlpha: 0.07           // Opacity of the shadow
+        renderer: $.jqplot.CanvasGridRenderer,  // renderer to use to draw the grid.
+        rendererOptions: {}         // options to pass to the renderer.  Note, the default
+                                    // CanvasGridRenderer takes no additional options.
+    },
+
+    // Size of the grid containing the plot.
+    gridDimensions: {
+        height: null,
+        width: null
+    },
+
+    // Padding to apply around the grid containing the plot.
+    gridPadding: {
+        top: null,
+        bottom: null,
+        left: null,
+        right: null
+    },
+
+    noDataIndicator : object, // For setting up a mock plot with a data loading indicator if
+                              // no data is specified.  Must have .show=true, .axes, and a
+                              // .indicator string that will be displayed.
+
+    // Plugin and renderer options.
+
+    // BarRenderer.
+    // With BarRenderer, you can specify additional options in the rendererOptions object
+    // on the series or on the seriesDefaults object.  Note, some options are re-specified
+    // (like shadowDepth) to override lineRenderer defaults from which BarRenderer inherits.
+
+    seriesDefaults: {
+        rendererOptions: {
+            barPadding: 8,      // number of pixels between adjacent bars in the same
+                                // group (same category or bin).
+            barMargin: 10,      // number of pixels between adjacent groups of bars.
+            barDirection: 'vertical', // vertical or horizontal.
+            barWidth: null,     // width of the bars.  null to calculate automatically.
+            shadowOffset: 2,    // offset from the bar edge to stroke the shadow.
+            shadowDepth: 5,     // number of strokes to make for the shadow.
+            shadowAlpha: 0.8,   // transparency of the shadow.
+        }
+    },
+
+    // Cursor
+    // Options are passed to the cursor plugin through the "cursor" object at the top
+    // level of the options object.
+
+    cursor: {
+        style: 'crosshair',     // A CSS spec for the cursor type to change the
+                                // cursor to when over plot.
+        show: true,
+        showTooltip: true,      // show a tooltip showing cursor position.
+        followMouse: false,     // whether tooltip should follow the mouse or be stationary.
+        tooltipLocation: 'se',  // location of the tooltip either relative to the mouse
+                                // (followMouse=true) or relative to the plot.  One of
+                                // the compass directions, n, ne, e, se, etc.
+        tooltipOffset: 6,       // pixel offset of the tooltip from the mouse or the axes.
+        showTooltipGridPosition: false,     // show the grid pixel coordinates of the mouse
+                                            // in the tooltip.
+        showTooltipUnitPosition: true,      // show the coordinates in data units of the mouse
+                                            // in the tooltip.
+        tooltipFormatString: '%.4P',    // sprintf style format string for tooltip values.
+        useAxesFormatters: true,        // whether to use the same formatter and formatStrings
+                                        // as used by the axes, or to use the formatString
+                                        // specified on the cursor with sprintf.
+        tooltipAxesGroups: [],  // show only specified axes groups in tooltip.  Would specify like:
+                                // [['xaxis', 'yaxis'], ['xaxis', 'y2axis']].  By default, all axes
+                                // combinations with for the series in the plot are shown.
+
+    },
+
+    // Dragable
+    // Dragable options are specified with the "dragable" object at the top level
+    // of the options object.
+    // (Note that 'dragable' is the name and spelling used by the plugin, even though
+    // the correct word is 'draggable'.)
+
+    dragable: {
+        color: undefined,       // custom color to use for the dragged point and dragged line
+                                // section. default will use a transparent variant of the line color.
+        constrainTo: 'none',    // Constrain dragging motion to an axis: 'x', 'y', or 'none'.
+    },
+
+    // Highlighter
+    // Highlighter options are specified with the "highlighter" object at the top level
+    // of the options object.
+
+    highlighter: {
+        lineWidthAdjust: 2.5,   // pixels to add to the size line stroking the data point marker
+                                // when showing highlight.  Only affects non filled data point markers.
+        sizeAdjust: 5,          // pixels to add to the size of filled markers when drawing highlight.
+        showTooltip: true,      // show a tooltip with data point values.
+        tooltipLocation: 'nw',  // location of tooltip: n, ne, e, se, s, sw, w, nw.
+        fadeTooltip: true,      // use fade effect to show/hide tooltip.
+        tooltipFadeSpeed: "fast"// slow, def, fast, or a number of milliseconds.
+        tooltipOffset: 2,       // pixel offset of tooltip from the highlight.
+        tooltipAxes: 'both',    // which axis values to display in the tooltip, x, y or both.
+        tooltipSeparator: ', '  // separator between values in the tooltip.
+        useAxesFormatters: true // use the same format string and formatters as used in the axes to
+                                // display values in the tooltip.
+        tooltipFormatString: '%.5P' // sprintf format string for the tooltip.  only used if
+                                    // useAxesFormatters is false.  Will use sprintf formatter with
+                                    // this string, not the axes formatters.
+    },
+
+    // LogAxisRenderer
+    // LogAxisRenderer add 2 options to the axes object.  These options are specified directly on
+    // the axes or axesDefaults object.
+
+    axesDefaults: {
+        base: 10,                   // the logarithmic base.
+        tickDistribution: 'even',   // 'even' or 'power'.  'even' will produce ticks with even visual
+                                    // (pixel) spacing on the axis.  'power' will produce ticks spaced by
+                                    // increasing powers of the log base.
+    },
+
+    // PieRenderer
+    // PieRenderer accepts options from the rendererOptions object of the series or seriesDefaults object.
+
+    seriesDefaults: {
+        rendererOptions: {
+            diameter: undefined, // diameter of pie, auto computed by default.
+            padding: 20,        // padding between pie and neighboring legend or plot margin.
+            sliceMargin: 0,     // gap between slices.
+            fill: true,         // render solid (filled) slices.
+            shadowOffset: 2,    // offset of the shadow from the chart.
+            shadowDepth: 5,     // Number of strokes to make when drawing shadow.  Each stroke is
+                                // offset by shadowOffset from the last.
+            shadowAlpha: 0.07   // Opacity of the shadow
+        }
+    },
+
+    // Trendline
+    // Trendline takes options on the trendline object of the series or seriesDefaults object.
+
+    seriesDefaults: {
+        trendline: {
+            show: true,         // show the trend line
+            color: '#666666',   // CSS color spec for the trend line.
+            label: '',          // label for the trend line.
+            type: 'linear',     // 'linear', 'exponential' or 'exp'
+            shadow: true,       // show the trend line shadow.
+            lineWidth: 1.5,     // width of the trend line.
+            shadowAngle: 45,    // angle of the shadow.  Clockwise from x axis.
+            shadowOffset: 1.5,  // offset from the line of the shadow.
+            shadowDepth: 3,     // Number of strokes to make when drawing shadow.
+                                // Each stroke offset by shadowOffset from the last.
+            shadowAlpha: 0.07   // Opacity of the shadow
+        }
+    }
+}

Options to be described

lineRenderer

.markerOptions? bands fill fillAndStroke fillStyle highlightColor highlightMouseDown highlightMouseOver shadow shadowOffset showLine

shadowRenderer

alpha closePath depth fill fillRect fillStyle isarc lineCap lineJoin linePattern lineWidth offset strokeStyle

shapeRenderer

clearRect closePath fill fillRect fillStyle isarc lineCap lineJoin linePattern lineWidth strokeRect strokeStyle

jqplot.effects

options.duration ; options.complete

LinearAxisRenderer

.min, .max (?) numberTicks tickInternal forceTickAt0 : false, // If true, a tick will always be drawn at 0.

markerRenderer

color fillStyle strokeStyle

canvasGridRenderer

lineWidth

+ +
+ + + + + + + + + + +
This document will help you understand how jqPlot’s options relate to the API documentation and the jqPlot object itself.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/jqplot-axisLabelRenderer-js.html b/common/chart/docs/files/jqplot-axisLabelRenderer-js.html new file mode 100644 index 0000000..0108f4f --- /dev/null +++ b/common/chart/docs/files/jqplot-axisLabelRenderer-js.html @@ -0,0 +1,47 @@ + + +$.jqplot.AxisLabelRenderer + + + + + + + + + +

Renderer to place labels on the axes.

Summary
$.jqplot.AxisLabelRendererRenderer to place labels on the axes.
Properties
showwhether or not to show the tick (mark and label).
labelThe text or html for the label.
escapeHTMLtrue to escape HTML entities in the label.
+ +

Properties

+ +

show

this.show = true

whether or not to show the tick (mark and label).

+ +

label

this.label = ''

The text or html for the label.

+ +

escapeHTML

this.escapeHTML = false

true to escape HTML entities in the label.

+ +
+ + + + + + + + + + +
this.show = true
whether or not to show the tick (mark and label).
this.label = ''
The text or html for the label.
this.escapeHTML = false
true to escape HTML entities in the label.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/jqplot-axisTickRenderer-js.html b/common/chart/docs/files/jqplot-axisTickRenderer-js.html new file mode 100644 index 0000000..d972d29 --- /dev/null +++ b/common/chart/docs/files/jqplot-axisTickRenderer-js.html @@ -0,0 +1,73 @@ + + +$.jqplot.AxisTickRenderer + + + + + + + + + +

A “tick” object showing the value of a tick/gridline on the plot.

Summary
$.jqplot.AxisTickRendererA “tick” object showing the value of a tick/gridline on the plot.
Properties
marktick mark on the axis.
showMarkwhether or not to show the mark on the axis.
showGridlinewhether or not to draw the gridline on the grid at this tick.
isMinorTickif this is a minor tick.
sizeLength of the tick beyond the grid in pixels.
markSizeLength of the tick marks in pixels.
showwhether or not to show the tick (mark and label).
showLabelwhether or not to show the label.
formatterA class of a formatter for the tick text.
prefixString to prepend to the tick label.
suffixString to append to the tick label.
formatStringstring passed to the formatter.
fontFamilycss spec for the font-family css attribute.
fontSizecss spec for the font-size css attribute.
textColorcss spec for the color attribute.
escapeHTMLtrue to escape HTML entities in the label.
+ +

Properties

+ +

mark

this.mark = 'outside'

tick mark on the axis.  One of ‘inside’, ‘outside’, ‘cross’, ‘’ or null.

+ +

showMark

this.showMark = true

whether or not to show the mark on the axis.

+ +

showGridline

this.showGridline = true

whether or not to draw the gridline on the grid at this tick.

+ +

isMinorTick

this.isMinorTick = false

if this is a minor tick.

+ +

size

this.size = 4

Length of the tick beyond the grid in pixels.  DEPRECATED: This has been superceeded by markSize

+ +

markSize

this.markSize = 6

Length of the tick marks in pixels.  For ‘cross’ style, length will be stoked above and below axis, so total length will be twice this.

+ +

show

this.show = true

whether or not to show the tick (mark and label).  Setting this to false requires more testing.  It is recommended to set showLabel and showMark to false instead.

+ +

showLabel

this.showLabel = true

whether or not to show the label.

+ +

formatter

this.formatter = $.jqplot.DefaultTickFormatter

A class of a formatter for the tick text.  sprintf by default.

+ +

prefix

this.prefix = ''

String to prepend to the tick label.  Prefix is prepended to the formatted tick label.

+ +

suffix

this.suffix = ''

String to append to the tick label.  Suffix is appended to the formatted tick label.

+ +

formatString

this.formatString = ''

string passed to the formatter.

+ +

fontFamily

this.fontFamily

css spec for the font-family css attribute.

+ +

fontSize

this.fontSize

css spec for the font-size css attribute.

+ +

textColor

this.textColor

css spec for the color attribute.

+ +

escapeHTML

this.escapeHTML = false

true to escape HTML entities in the label.

+ +
+ + + + + + + + + + +
this.mark = 'outside'
tick mark on the axis.
this.showMark = true
whether or not to show the mark on the axis.
this.showGridline = true
whether or not to draw the gridline on the grid at this tick.
this.isMinorTick = false
if this is a minor tick.
this.size = 4
Length of the tick beyond the grid in pixels.
this.markSize = 6
Length of the tick marks in pixels.
this.show = true
whether or not to show the tick (mark and label).
this.showLabel = true
whether or not to show the label.
this.formatter = $.jqplot.DefaultTickFormatter
A class of a formatter for the tick text.
this.prefix = ''
String to prepend to the tick label.
this.suffix = ''
String to append to the tick label.
this.formatString = ''
string passed to the formatter.
this.fontFamily
css spec for the font-family css attribute.
this.fontSize
css spec for the font-size css attribute.
this.textColor
css spec for the color attribute.
this.escapeHTML = false
true to escape HTML entities in the label.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/jqplot-canvasGridRenderer-js.html b/common/chart/docs/files/jqplot-canvasGridRenderer-js.html new file mode 100644 index 0000000..f33619d --- /dev/null +++ b/common/chart/docs/files/jqplot-canvasGridRenderer-js.html @@ -0,0 +1,39 @@ + + +$.jqplot.CanvasGridRenderer + + + + + + + + + +

The default jqPlot grid renderer, creating a grid on a canvas element.  The renderer has no additional options beyond the Grid class.

+ +
+ + + + + + + + + + +
Object representing the grid on which the plot is drawn.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/jqplot-core-js.html b/common/chart/docs/files/jqplot-core-js.html new file mode 100644 index 0000000..c4ecf67 --- /dev/null +++ b/common/chart/docs/files/jqplot-core-js.html @@ -0,0 +1,391 @@ + + +jqPlot Charts + + + + + + + + + +

Pure JavaScript plotting plugin for jQuery.

Summary
jqPlot ChartsPure JavaScript plotting plugin for jQuery.
Versionversion: 1.0.8 revision: 1250
Copyright & LicenseCopyright © 2009-2013 Chris Leonello jqPlot is currently available for use in all personal or commercial projects under both the MIT and GPL version 2.0 licenses.
IntroductionjqPlot requires jQuery (1.4+ required for certain features).
UsageSee jqPlot Usage
Available OptionsSee jqPlot Options for a list of options available thorugh the options object (not complete yet!)
Options UsageSee Options Tutorial
ChangesSee Change Log
$.jqplotjQuery function called by the user to create a plot.
Hooks
jqPlot Pugin Hooks
AxisAn individual axis object.
PropertiesAxes options are specified within an axes object at the top level of the plot options like so:
showWether to display the axis on the graph.
tickRendererA class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
tickOptionsOptions that will be passed to the tickRenderer, see $.jqplot.AxisTickRenderer options.
labelRendererA class of a rendering engine for creating an axis label.
labelOptionsOptions passed to the label renderer.
labelLabel for the axis
showLabeltrue to show the axis label.
minminimum value of the axis (in data units, not pixels).
maxmaximum value of the axis (in data units, not pixels).
autoscaleDEPRECATED the default scaling algorithm produces superior results.
padPadding to extend the range above and below the data bounds.
padMaxPadding to extend the range above data bounds.
padMinPadding to extend the range below data bounds.
ticks1D [val, val, ...] or 2D [[val, label], [val, label], ...] array of ticks for the axis.
numberTicksDesired number of ticks.
tickIntervalnumber of units between ticks.
rendererA class of a rendering engine that handles tick generation, scaling input data to pixel grid units and drawing the axis element.
rendererOptionsrenderer specific options.
showTicksWether to show the ticks (both marks and labels) or not.
showTickMarksWether to show the tick marks (line crossing grid) or not.
showMinorTicksWether or not to show minor ticks.
drawMajorGridlinesTrue to draw gridlines for major axis ticks.
drawMinorGridlinesTrue to draw gridlines for minor ticks.
drawMajorTickMarksTrue to draw tick marks for major axis ticks.
drawMinorTickMarksTrue to draw tick marks for minor ticks.
useSeriesColorUse the color of the first series associated with this axis for the tick marks and line bordering this axis.
borderWidthwidth of line stroked at the border of the axis.
borderColorcolor of the border adjacent to the axis.
scaleToHiddenSeriesTrue to include hidden series when computing axes bounds and scaling.
syncTickstrue to try and synchronize tick spacing across multiple axes so that ticks and grid lines line up.
tickSpacingApproximate pixel spacing between ticks on graph.
LegendLegend object.
Properties
showWether to display the legend on the graph.
locationPlacement of the legend.
labelsArray of labels to use.
showLabelstrue to show the label text on the legend.
showSwatchtrue to show the color swatches on the legend.
placement“insideGrid” places legend inside the grid area of the plot.
xoffsetDEPRECATED.
yoffsetDEPRECATED.
bordercss spec for the border around the legend box.
backgroundcss spec for the background of the legend box.
textColorcss color spec for the legend text.
fontFamilycss font-family spec for the legend text.
fontSizecss font-size spec for the legend text.
rowSpacingcss padding-top spec for the rows in the legend.
rendererOptionsrenderer specific options passed to the renderer.
predrawWether to draw the legend before the series or not.
marginTopCSS margin for the legend DOM element.
marginRightCSS margin for the legend DOM element.
marginBottomCSS margin for the legend DOM element.
marginLeftCSS margin for the legend DOM element.
escapeHtmlTrue to escape special characters with their html entity equivalents in legend text.
TitlePlot Title object.
Properties
texttext of the title;
showwhether or not to show the title
fontFamilycss font-family spec for the text.
fontSizecss font-size spec for the text.
textAligncss text-align spec for the text.
textColorcss color spec for the text.
rendererA class for creating a DOM element for the title, see $.jqplot.DivTitleRenderer.
rendererOptionsrenderer specific options passed to the renderer.
escapeHtmlTrue to escape special characters with their html entity equivalents in title text.
SeriesAn individual data series object.
PropertiesProperties will be assigned from a series array at the top level of the options.
showwhether or not to draw the series.
xaxiswhich x axis to use with this series, either ‘xaxis’ or ‘x2axis’.
yaxiswhich y axis to use with this series, either ‘yaxis’ or ‘y2axis’.
rendererA class of a renderer which will draw the series, see $.jqplot.LineRenderer.
rendererOptionsOptions to pass on to the renderer.
labelLine label to use in the legend.
showLabeltrue to show label for this series in the legend.
colorcss color spec for the series
negativeColorcss color spec used for filled (area) plots that are filled to zero and the “useNegativeColors” option is true.
lineWidthwidth of the line in pixels.
lineJoinCanvas lineJoin style between segments of series.
lineCapCanvas lineCap style at ends of line.
linePatternline pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
shadowAngleShadow angle in degrees
shadowOffsetShadow offset from line in pixels
shadowDepthNumber of times shadow is stroked, each stroke offset shadowOffset from the last.
shadowAlphaAlpha channel transparency of shadow.
breakOnNullWether line segments should be be broken at null value.
markerRendererA class of a renderer which will draw marker (e.g.
markerOptionsrenderer specific options to pass to the markerRenderer, see $.jqplot.MarkerRenderer.
showLinewhether to actually draw the line or not.
showMarkerwhether or not to show the markers at the data points.
index0 based index of this series in the plot series array.
filltrue or false, whether to fill under lines or in bars.
fillColorCSS color spec to use for fill under line.
fillAlphaAlpha transparency to apply to the fill under the line.
fillAndStrokeIf true will stroke the line (with color this.color) as well as fill under it.
disableStacktrue to not stack this series with other series in the plot.
neighborThresholdhow close or far (in pixels) the cursor must be from a point marker to detect the point.
fillToZerotrue will force bar and filled series to fill toward zero on the fill Axis.
fillToValuefill a filled series to this value on the fill axis.
fillAxisEither ‘x’ or ‘y’.
useNegativeColorstrue to color negative values differently in filled and bar charts.
GridObject representing the grid on which the plot is drawn.
Properties
drawGridlineswhether to draw the gridlines on the plot.
gridLineColorcolor of the grid lines.
gridLineWidthwidth of the grid lines.
backgroundcss spec for the background color.
borderColorcss spec for the color of the grid border.
borderWidthwidth of the border in pixels.
drawBorderTrue to draw border around grid.
shadowwhether to show a shadow behind the grid.
shadowAngleshadow angle in degrees
shadowOffsetOffset of each shadow stroke from the border in pixels
shadowWidthwidth of the stoke for the shadow
shadowDepthNumber of times shadow is stroked, each stroke offset shadowOffset from the last.
shadowColoran optional css color spec for the shadow in ‘rgba(n, n, n, n)’ form
shadowAlphaAlpha channel transparency of shadow.
rendererInstance of a renderer which will actually render the grid, see $.jqplot.CanvasGridRenderer.
rendererOptionsOptions to pass on to the renderer, see $.jqplot.CanvasGridRenderer.
jqPlotPlot object returned by call to $.jqplot.
PropertiesThese properties are specified at the top of the options object like so:
animateTrue to animate the series on initial plot draw (renderer dependent).
animateReplotTrue to animate series after a call to the replot() method.
axesup to 4 axes are supported, each with its own options, See Axis for axis specific options.
datauser’s data.
dataRendererA callable which can be used to preprocess data passed into the plot.
dataRendererOptionsOptions that will be passed to the dataRenderer.
axesDefaultsdefault options that will be applied to all axes.
seriesDefaultsdefault options that will be applied to all series.
defaultAxisStart1-D data series are internally converted into 2-D [x,y] data point arrays by jqPlot.
fillBetweenFill between 2 line series in a plot.
fontSizecss spec for the font-size attribute.
gridSee Grid for grid specific options.
legendsee <$.jqplot.TableLegendRenderer>
noDataIndicatorOptions to set up a mock plot with a data loading indicator if no data is specified.
negativeSeriesColorscolors to use for portions of the line below zero.
seriesArray of series object options.
seriesColorsAnn array of CSS color specifications that will be applied, in order, to the series in the plot.
sortDatafalse to not sort the data passed in by the user.
stackSeriestrue or false, creates a stack or “mountain” plot.
titleTitle object.
methods
initsets the plot target, checks data and applies user options to plot.
resetAxesScaleReset the specified axes min, max, numberTicks and tickInterval properties to null or reset these properties on all axes if no list of axes is provided.
reInitializereinitialize plot for replotting.
quickInitQuick reinitialization plot for replotting.
destroyReleases all resources occupied by the plot
replotDoes a reinitialization of the plot followed by a redraw.
redrawEmpties the plot target div and redraws the plot.
drawDraws all elements of the plot into the container.
drawSeriesRedraws all or just one series on the plot.
moveSeriesToFrontThis method requires jQuery 1.4+ Moves the specified series canvas in front of all other series canvases.
moveSeriesToBackThis method requires jQuery 1.4+ Moves the specified series canvas behind all other series canvases.
restorePreviousSeriesOrderThis method requires jQuery 1.4+ Restore the series canvas order to its previous state.
restoreOriginalSeriesOrderThis method requires jQuery 1.4+ Restore the series canvas order to its original order when the plot was created.
+ +

Version

version: 1.0.8 revision: 1250

+ +

Copyright & License

Copyright © 2009-2013 Chris Leonello jqPlot is currently available for use in all personal or commercial projects under both the MIT and GPL version 2.0 licenses.  This means that you can choose the license that best suits your project and use it accordingly.

See GPL Version 2 and MIT License contained within this distribution for further information.

The author would appreciate an email letting him know of any substantial use of jqPlot.  You can reach the author at: chris at jqplot dot com or see http://www.jqplot.com/info.php.  This is, of course, not required.

If you are feeling kind and generous, consider supporting the project by making a donation at: http://www.jqplot.com/donate.php.

sprintf functions contained in jqplot.sprintf.js by Ash Searle

version 2007.04.27 author Ash Searle http://hexmen.com/blog/2007/03/printf-sprintf/ http://hexmen.com/js/sprintf.js The author (Ash Searle) has placed this code in the public domain: “This code is unrestricted: you are free to use it however you like.”

+ +

Introduction

jqPlot requires jQuery (1.4+ required for certain features). jQuery 1.4.2 is included in the distribution.  To use jqPlot include jQuery, the jqPlot jQuery plugin, the jqPlot css file and optionally the excanvas script for IE support in your web page:

<!--[if lt IE 9]><script language="javascript" type="text/javascript" src="excanvas.js"></script><![endif]-->
+<script language="javascript" type="text/javascript" src="jquery-1.4.4.min.js"></script>
+<script language="javascript" type="text/javascript" src="jquery.jqplot.min.js"></script>
+<link rel="stylesheet" type="text/css" href="jquery.jqplot.css" />

jqPlot can be customized by overriding the defaults of any of the objects which make up the plot.  The general usage of jqplot is:

chart = $.jqplot('targetElemId', [dataArray,...], {optionsObject});

The options available to jqplot are detailed in jqPlot Options in the jqPlotOptions.txt file.

An actual call to $.jqplot() may look like the examples below:

chart = $.jqplot('chartdiv',  [[[1, 2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11,219.9]]]);

or

dataArray = [34,12,43,55,77];
+chart = $.jqplot('targetElemId', [dataArray, ...], {title:'My Plot', axes:{yaxis:{min:20, max:100}}});

For more inforrmation, see jqPlot Usage.

+ +

Usage

+ +

Available Options

See jqPlot Options for a list of options available thorugh the options object (not complete yet!)

+ +

Options Usage

+ +

Changes

+ +

$.jqplot

jQuery function called by the user to create a plot.

Parameters

targetID of target element to render the plot into.
dataan array of data series.
optionsuser defined options object.  See the individual classes for available options.

Properties

configobject to hold configuration information for jqPlot plot object.

attributes

enablePluginsFalse to disable plugins by default.  Plugins must then be explicitly enabled in the individual plot options.  Default: false.  This property sets the “show” property of certain plugins to true or false.  Only plugins that can be immediately active upon loading are affected.  This includes non-renderer plugins like cursor, dragable, highlighter, and trendline.
defaultHeightDefault height for plots where no css height specification exists.  This is a jqplot wide default.
defaultWidthDefault height for plots where no css height specification exists.  This is a jqplot wide default.
+ +

Hooks

+ +

jqPlot Pugin Hooks

$.jqplot.preInitHookscalled before initialization.
$.jqplot.postInitHookscalled after initialization.
$.jqplot.preParseOptionsHookscalled before user options are parsed.
$.jqplot.postParseOptionsHookscalled after user options are parsed.
$.jqplot.preDrawHookscalled before plot draw.
$.jqplot.postDrawHookscalled after plot draw.
$.jqplot.preDrawSeriesHookscalled before each series is drawn.
$.jqplot.postDrawSeriesHookscalled after each series is drawn.
$.jqplot.preDrawLegendHookscalled before the legend is drawn.
$.jqplot.addLegendRowHookscalled at the end of legend draw, so plugins can add rows to the legend table.
$.jqplot.preSeriesInitHookscalled before series is initialized.
$.jqplot.postSeriesInitHookscalled after series is initialized.
$.jqplot.preParseSeriesOptionsHookscalled before series related options are parsed.
$.jqplot.postParseSeriesOptionsHookscalled after series related options are parsed.
$.jqplot.eventListenerHookscalled at the end of plot drawing, binds listeners to the event canvas which lays on top of the grid area.
$.jqplot.preDrawSeriesShadowHookscalled before series shadows are drawn.
$.jqplot.postDrawSeriesShadowHookscalled after series shadows are drawn.
+ +

Axis

An individual axis object.  Cannot be instantiated directly, but created by the Plot object.  Axis properties can be set or overridden by the options passed in from the user.

Summary
PropertiesAxes options are specified within an axes object at the top level of the plot options like so:
showWether to display the axis on the graph.
tickRendererA class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
tickOptionsOptions that will be passed to the tickRenderer, see $.jqplot.AxisTickRenderer options.
labelRendererA class of a rendering engine for creating an axis label.
labelOptionsOptions passed to the label renderer.
labelLabel for the axis
showLabeltrue to show the axis label.
minminimum value of the axis (in data units, not pixels).
maxmaximum value of the axis (in data units, not pixels).
autoscaleDEPRECATED the default scaling algorithm produces superior results.
padPadding to extend the range above and below the data bounds.
padMaxPadding to extend the range above data bounds.
padMinPadding to extend the range below data bounds.
ticks1D [val, val, ...] or 2D [[val, label], [val, label], ...] array of ticks for the axis.
numberTicksDesired number of ticks.
tickIntervalnumber of units between ticks.
rendererA class of a rendering engine that handles tick generation, scaling input data to pixel grid units and drawing the axis element.
rendererOptionsrenderer specific options.
showTicksWether to show the ticks (both marks and labels) or not.
showTickMarksWether to show the tick marks (line crossing grid) or not.
showMinorTicksWether or not to show minor ticks.
drawMajorGridlinesTrue to draw gridlines for major axis ticks.
drawMinorGridlinesTrue to draw gridlines for minor ticks.
drawMajorTickMarksTrue to draw tick marks for major axis ticks.
drawMinorTickMarksTrue to draw tick marks for minor ticks.
useSeriesColorUse the color of the first series associated with this axis for the tick marks and line bordering this axis.
borderWidthwidth of line stroked at the border of the axis.
borderColorcolor of the border adjacent to the axis.
scaleToHiddenSeriesTrue to include hidden series when computing axes bounds and scaling.
syncTickstrue to try and synchronize tick spacing across multiple axes so that ticks and grid lines line up.
tickSpacingApproximate pixel spacing between ticks on graph.
+ +

Properties

Axes options are specified within an axes object at the top level of the plot options like so:

{
+   axes: {
+       xaxis: {min: 5},
+       yaxis: {min: 2, max: 8, numberTicks:4},
+       x2axis: {pad: 1.5},
+       y2axis: {ticks:[22, 44, 66, 88]}
+       }
+}

There are 2 x axes, ‘xaxis’ and ‘x2axis’, and 9 yaxes, ‘yaxis’, ‘y2axis’.  ‘y3axis’, ...  Any or all of which may be specified.

+ +

show

this.show = false

Wether to display the axis on the graph.

+ +

tickRenderer

this.tickRenderer = $.jqplot.AxisTickRenderer

A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.

+ +

tickOptions

this.tickOptions = {}

Options that will be passed to the tickRenderer, see $.jqplot.AxisTickRenderer options.

+ +

labelRenderer

this.labelRenderer = $.jqplot.AxisLabelRenderer

A class of a rendering engine for creating an axis label.

+ +

labelOptions

this.labelOptions = {}

Options passed to the label renderer.

+ +

label

this.label = null

Label for the axis

+ +

showLabel

this.showLabel = true

true to show the axis label.

+ +

min

this.min = null

minimum value of the axis (in data units, not pixels).

+ +

max

this.max = null

maximum value of the axis (in data units, not pixels).

+ +

autoscale

this.autoscale = false

DEPRECATED the default scaling algorithm produces superior results.

+ +

pad

this.pad = 1.2

Padding to extend the range above and below the data bounds.  The data range is multiplied by this factor to determine minimum and maximum axis bounds.  A value of 0 will be interpreted to mean no padding, and pad will be set to 1.0.

+ +

padMax

this.padMax = null

Padding to extend the range above data bounds.  The top of the data range is multiplied by this factor to determine maximum axis bounds.  A value of 0 will be interpreted to mean no padding, and padMax will be set to 1.0.

+ +

padMin

this.padMin = null

Padding to extend the range below data bounds.  The bottom of the data range is multiplied by this factor to determine minimum axis bounds.  A value of 0 will be interpreted to mean no padding, and padMin will be set to 1.0.

+ +

ticks

this.ticks = []

1D [val, val, ...] or 2D [[val, label], [val, label], ...] array of ticks for the axis.  If no label is specified, the value is formatted into an appropriate label.

+ +

numberTicks

this.numberTicks

Desired number of ticks.  Default is to compute automatically.

+ +

tickInterval

this.tickInterval

number of units between ticks.  Mutually exclusive with numberTicks.

+ +

renderer

this.renderer = $.jqplot.LinearAxisRenderer

A class of a rendering engine that handles tick generation, scaling input data to pixel grid units and drawing the axis element.

+ +

rendererOptions

this.rendererOptions = {}

renderer specific options.  See $.jqplot.LinearAxisRenderer for options.

+ +

showTicks

this.showTicks = true

Wether to show the ticks (both marks and labels) or not.  Will not override showMark and showLabel options if specified on the ticks themselves.

+ +

showTickMarks

this.showTickMarks = true

Wether to show the tick marks (line crossing grid) or not.  Overridden by showTicks and showMark option of tick itself.

+ +

showMinorTicks

this.showMinorTicks = true

Wether or not to show minor ticks.  This is renderer dependent.

+ +

drawMajorGridlines

this.drawMajorGridlines = true

True to draw gridlines for major axis ticks.

+ +

drawMinorGridlines

this.drawMinorGridlines = false

True to draw gridlines for minor ticks.

+ +

drawMajorTickMarks

this.drawMajorTickMarks = true

True to draw tick marks for major axis ticks.

+ +

drawMinorTickMarks

this.drawMinorTickMarks = true

True to draw tick marks for minor ticks.  This is renderer dependent.

+ +

useSeriesColor

this.useSeriesColor = false

Use the color of the first series associated with this axis for the tick marks and line bordering this axis.

+ +

borderWidth

this.borderWidth = null

width of line stroked at the border of the axis.  Defaults to the width of the grid boarder.

+ +

borderColor

this.borderColor = null

color of the border adjacent to the axis.  Defaults to grid border color.

+ +

scaleToHiddenSeries

this.scaleToHiddenSeries = false

True to include hidden series when computing axes bounds and scaling.

+ +

syncTicks

this.syncTicks = null

true to try and synchronize tick spacing across multiple axes so that ticks and grid lines line up.  This has an impact on autoscaling algorithm, however.  In general, autoscaling an individual axis will work better if it does not have to sync ticks.

+ +

tickSpacing

this.tickSpacing = 75

Approximate pixel spacing between ticks on graph.  Used during autoscaling.  This number will be an upper bound, actual spacing will be less.

+ +

Legend

Legend object.  Cannot be instantiated directly, but created by the Plot object.  Legend properties can be set or overridden by the options passed in from the user.

Summary
Properties
showWether to display the legend on the graph.
locationPlacement of the legend.
labelsArray of labels to use.
showLabelstrue to show the label text on the legend.
showSwatchtrue to show the color swatches on the legend.
placement“insideGrid” places legend inside the grid area of the plot.
xoffsetDEPRECATED.
yoffsetDEPRECATED.
bordercss spec for the border around the legend box.
backgroundcss spec for the background of the legend box.
textColorcss color spec for the legend text.
fontFamilycss font-family spec for the legend text.
fontSizecss font-size spec for the legend text.
rowSpacingcss padding-top spec for the rows in the legend.
rendererOptionsrenderer specific options passed to the renderer.
predrawWether to draw the legend before the series or not.
marginTopCSS margin for the legend DOM element.
marginRightCSS margin for the legend DOM element.
marginBottomCSS margin for the legend DOM element.
marginLeftCSS margin for the legend DOM element.
escapeHtmlTrue to escape special characters with their html entity equivalents in legend text.
+ +

Properties

+ +

show

this.show = false

Wether to display the legend on the graph.

+ +

location

this.location = 'ne'

Placement of the legend.  one of the compass directions: nw, n, ne, e, se, s, sw, w

+ +

labels

this.labels = []

Array of labels to use.  By default the renderer will look for labels on the series.  Labels specified in this array will override labels specified on the series.

+ +

showLabels

this.showLabels = true

true to show the label text on the legend.

+ +

showSwatch

this.showSwatches = true

true to show the color swatches on the legend.

+ +

placement

this.placement = "insideGrid"

”insideGrid” places legend inside the grid area of the plot.  “outsideGrid” places the legend outside the grid but inside the plot container, shrinking the grid to accomodate the legend.  “inside” synonym for “insideGrid”, “outside” places the legend ouside the grid area, but does not shrink the grid which can cause the legend to overflow the plot container.

+ +

xoffset

this.xoffset = 0

DEPRECATED.  Set the margins on the legend using the marginTop, marginLeft, etc. properties or via CSS margin styling of the .jqplot-table-legend class.

+ +

yoffset

this.yoffset = 0

DEPRECATED.  Set the margins on the legend using the marginTop, marginLeft, etc. properties or via CSS margin styling of the .jqplot-table-legend class.

+ +

border

this.border

css spec for the border around the legend box.

+ +

background

this.background

css spec for the background of the legend box.

+ +

textColor

this.textColor

css color spec for the legend text.

+ +

fontFamily

this.fontFamily

css font-family spec for the legend text.

+ +

fontSize

this.fontSize

css font-size spec for the legend text.

+ +

rowSpacing

this.rowSpacing = '0.5em'

css padding-top spec for the rows in the legend.

+ +

rendererOptions

this.rendererOptions = {}

renderer specific options passed to the renderer.

+ +

predraw

Wether to draw the legend before the series or not.  Used with series specific legend renderers for pie, donut, mekko charts, etc.

+ +

marginTop

this.marginTop = null

CSS margin for the legend DOM element.  This will set an element CSS style for the margin which will override any style sheet setting.  The default will be taken from the stylesheet.

+ +

marginRight

this.marginRight = null

CSS margin for the legend DOM element.  This will set an element CSS style for the margin which will override any style sheet setting.  The default will be taken from the stylesheet.

+ +

marginBottom

this.marginBottom = null

CSS margin for the legend DOM element.  This will set an element CSS style for the margin which will override any style sheet setting.  The default will be taken from the stylesheet.

+ +

marginLeft

this.marginLeft = null

CSS margin for the legend DOM element.  This will set an element CSS style for the margin which will override any style sheet setting.  The default will be taken from the stylesheet.

+ +

escapeHtml

this.escapeHtml = false

True to escape special characters with their html entity equivalents in legend text.  “<” becomes &lt; and so on, so html tags are not rendered.

+ +

Title

Plot Title object.  Cannot be instantiated directly, but created by the Plot object.  Title properties can be set or overridden by the options passed in from the user.

Parameters

texttext of the title.
Summary
Properties
texttext of the title;
showwhether or not to show the title
fontFamilycss font-family spec for the text.
fontSizecss font-size spec for the text.
textAligncss text-align spec for the text.
textColorcss color spec for the text.
rendererA class for creating a DOM element for the title, see $.jqplot.DivTitleRenderer.
rendererOptionsrenderer specific options passed to the renderer.
escapeHtmlTrue to escape special characters with their html entity equivalents in title text.
+ +

Properties

+ +

text

this.text = text

text of the title;

+ +

show

this.show = true

whether or not to show the title

+ +

fontFamily

this.fontFamily

css font-family spec for the text.

+ +

fontSize

this.fontSize

css font-size spec for the text.

+ +

textAlign

this.textAlign

css text-align spec for the text.

+ +

textColor

this.textColor

css color spec for the text.

+ +

renderer

this.renderer = $.jqplot.DivTitleRenderer

A class for creating a DOM element for the title, see $.jqplot.DivTitleRenderer.

+ +

rendererOptions

this.rendererOptions = {}

renderer specific options passed to the renderer.

+ +

escapeHtml

this.escapeHtml = false

True to escape special characters with their html entity equivalents in title text.  “<” becomes &lt; and so on, so html tags are not rendered.

+ +

Series

An individual data series object.  Cannot be instantiated directly, but created by the Plot object.  Series properties can be set or overridden by the options passed in from the user.

Summary
PropertiesProperties will be assigned from a series array at the top level of the options.
showwhether or not to draw the series.
xaxiswhich x axis to use with this series, either ‘xaxis’ or ‘x2axis’.
yaxiswhich y axis to use with this series, either ‘yaxis’ or ‘y2axis’.
rendererA class of a renderer which will draw the series, see $.jqplot.LineRenderer.
rendererOptionsOptions to pass on to the renderer.
labelLine label to use in the legend.
showLabeltrue to show label for this series in the legend.
colorcss color spec for the series
negativeColorcss color spec used for filled (area) plots that are filled to zero and the “useNegativeColors” option is true.
lineWidthwidth of the line in pixels.
lineJoinCanvas lineJoin style between segments of series.
lineCapCanvas lineCap style at ends of line.
linePatternline pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
shadowAngleShadow angle in degrees
shadowOffsetShadow offset from line in pixels
shadowDepthNumber of times shadow is stroked, each stroke offset shadowOffset from the last.
shadowAlphaAlpha channel transparency of shadow.
breakOnNullWether line segments should be be broken at null value.
markerRendererA class of a renderer which will draw marker (e.g.
markerOptionsrenderer specific options to pass to the markerRenderer, see $.jqplot.MarkerRenderer.
showLinewhether to actually draw the line or not.
showMarkerwhether or not to show the markers at the data points.
index0 based index of this series in the plot series array.
filltrue or false, whether to fill under lines or in bars.
fillColorCSS color spec to use for fill under line.
fillAlphaAlpha transparency to apply to the fill under the line.
fillAndStrokeIf true will stroke the line (with color this.color) as well as fill under it.
disableStacktrue to not stack this series with other series in the plot.
neighborThresholdhow close or far (in pixels) the cursor must be from a point marker to detect the point.
fillToZerotrue will force bar and filled series to fill toward zero on the fill Axis.
fillToValuefill a filled series to this value on the fill axis.
fillAxisEither ‘x’ or ‘y’.
useNegativeColorstrue to color negative values differently in filled and bar charts.
+ +

Properties

Properties will be assigned from a series array at the top level of the options.  If you had two series and wanted to change the color and line width of the first and set the second to use the secondary y axis with no shadow and supply custom labels for each:

{
+   series:[
+       {color: '#ff4466', lineWidth: 5, label:'good line'},
+       {yaxis: 'y2axis', shadow: false, label:'bad line'}
+   ]
+}
+ +

show

this.show = true

whether or not to draw the series.

+ +

xaxis

this.xaxis = 'xaxis'

which x axis to use with this series, either ‘xaxis’ or ‘x2axis’.

+ +

yaxis

this.yaxis = 'yaxis'

which y axis to use with this series, either ‘yaxis’ or ‘y2axis’.

+ +

renderer

this.renderer = $.jqplot.LineRenderer

A class of a renderer which will draw the series, see $.jqplot.LineRenderer.

+ +

rendererOptions

this.rendererOptions = {}

Options to pass on to the renderer.

+ +

label

this.label = ''

Line label to use in the legend.

+ +

showLabel

this.showLabel = true

true to show label for this series in the legend.

+ +

color

this.color

css color spec for the series

+ +

negativeColor

this.negativeColor

css color spec used for filled (area) plots that are filled to zero and the “useNegativeColors” option is true.

+ +

lineWidth

this.lineWidth = 2.5

width of the line in pixels.  May have different meanings depending on renderer.

+ +

lineJoin

this.lineJoin = 'round'

Canvas lineJoin style between segments of series.

+ +

lineCap

this.lineCap = 'round'

Canvas lineCap style at ends of line.

+ +

linePattern

this.linePattern = 'solid'

line pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’ characters such as ‘.-.’ or a numerical array like [draw, skip, draw, skip, ...] such as [1, 10] to draw a dotted line, [1, 10, 20, 10] to draw a dot-dash line, and so on.

+ +

shadowAngle

this.shadowAngle = 45

Shadow angle in degrees

+ +

shadowOffset

this.shadowOffset = 1.25

Shadow offset from line in pixels

+ +

shadowDepth

this.shadowDepth = 3

Number of times shadow is stroked, each stroke offset shadowOffset from the last.

+ +

shadowAlpha

this.shadowAlpha = '0.1'

Alpha channel transparency of shadow.  0 = transparent.

+ +

breakOnNull

this.breakOnNull = false

Wether line segments should be be broken at null value.  False will join point on either side of line.

+ +

markerRenderer

this.markerRenderer = $.jqplot.MarkerRenderer

A class of a renderer which will draw marker (e.g. circle, square, ...) at the data points, see $.jqplot.MarkerRenderer.

+ +

markerOptions

this.markerOptions = {}

renderer specific options to pass to the markerRenderer, see $.jqplot.MarkerRenderer.

+ +

showLine

this.showLine = true

whether to actually draw the line or not.  Series will still be renderered, even if no line is drawn.

+ +

showMarker

this.showMarker = true

whether or not to show the markers at the data points.

+ +

index

this.index

0 based index of this series in the plot series array.

+ +

fill

this.fill = false

true or false, whether to fill under lines or in bars.  May not be implemented in all renderers.

+ +

fillColor

this.fillColor

CSS color spec to use for fill under line.  Defaults to line color.

+ +

fillAlpha

this.fillAlpha

Alpha transparency to apply to the fill under the line.  Use this to adjust alpha separate from fill color.

+ +

fillAndStroke

this.fillAndStroke = false

If true will stroke the line (with color this.color) as well as fill under it.  Applies only when fill is true.

+ +

disableStack

this.disableStack = false

true to not stack this series with other series in the plot.  To render properly, non-stacked series must come after any stacked series in the plot’s data series array.  So, the plot’s data series array would look like:

[stackedSeries1, stackedSeries2, ..., nonStackedSeries1, nonStackedSeries2, ...]

disableStack will put a gap in the stacking order of series, and subsequent stacked series will not fill down through the non-stacked series and will most likely not stack properly on top of the non-stacked series.

+ +

neighborThreshold

this.neighborThreshold = 4

how close or far (in pixels) the cursor must be from a point marker to detect the point.

+ +

fillToZero

this.fillToZero = false

true will force bar and filled series to fill toward zero on the fill Axis.

+ +

fillToValue

this.fillToValue = 0

fill a filled series to this value on the fill axis.  Works in conjunction with fillToZero, so that must be true.

+ +

fillAxis

this.fillAxis = 'y'

Either ‘x’ or ‘y’.  Which axis to fill the line toward if fillToZero is true.  ‘y’ means fill up/down to 0 on the y axis for this series.

+ +

useNegativeColors

this.useNegativeColors = true

true to color negative values differently in filled and bar charts.

+ +

Grid

Object representing the grid on which the plot is drawn.  The grid in this context is the area bounded by the axes, the area which will contain the series.  Note, the series are drawn on their own canvas.  The Grid object cannot be instantiated directly, but is created by the Plot object.  Grid properties can be set or overridden by the options passed in from the user.

Summary
Properties
drawGridlineswhether to draw the gridlines on the plot.
gridLineColorcolor of the grid lines.
gridLineWidthwidth of the grid lines.
backgroundcss spec for the background color.
borderColorcss spec for the color of the grid border.
borderWidthwidth of the border in pixels.
drawBorderTrue to draw border around grid.
shadowwhether to show a shadow behind the grid.
shadowAngleshadow angle in degrees
shadowOffsetOffset of each shadow stroke from the border in pixels
shadowWidthwidth of the stoke for the shadow
shadowDepthNumber of times shadow is stroked, each stroke offset shadowOffset from the last.
shadowColoran optional css color spec for the shadow in ‘rgba(n, n, n, n)’ form
shadowAlphaAlpha channel transparency of shadow.
rendererInstance of a renderer which will actually render the grid, see $.jqplot.CanvasGridRenderer.
rendererOptionsOptions to pass on to the renderer, see $.jqplot.CanvasGridRenderer.
+ +

Properties

+ +

drawGridlines

this.drawGridlines = true

whether to draw the gridlines on the plot.

+ +

gridLineColor

this.gridLineColor = '#cccccc'

color of the grid lines.

+ +

gridLineWidth

this.gridLineWidth = 1.0

width of the grid lines.

+ +

background

this.background = '#fffdf6'

css spec for the background color.

+ +

borderColor

this.borderColor = '#999999'

css spec for the color of the grid border.

+ +

borderWidth

this.borderWidth = 2.0

width of the border in pixels.

+ +

drawBorder

this.drawBorder = true

True to draw border around grid.

+ +

shadow

this.shadow = true

whether to show a shadow behind the grid.

+ +

shadowAngle

this.shadowAngle = 45

shadow angle in degrees

+ +

shadowOffset

this.shadowOffset = 1.5

Offset of each shadow stroke from the border in pixels

+ +

shadowWidth

this.shadowWidth = 3

width of the stoke for the shadow

+ +

shadowDepth

this.shadowDepth = 3

Number of times shadow is stroked, each stroke offset shadowOffset from the last.

+ +

shadowColor

this.shadowColor = null

an optional css color spec for the shadow in ‘rgba(n, n, n, n)’ form

+ +

shadowAlpha

this.shadowAlpha = '0.07'

Alpha channel transparency of shadow.  0 = transparent.

+ +

renderer

this.renderer = $.jqplot.CanvasGridRenderer

Instance of a renderer which will actually render the grid, see $.jqplot.CanvasGridRenderer.

+ +

rendererOptions

this.rendererOptions = {}

Options to pass on to the renderer, see $.jqplot.CanvasGridRenderer.

+ +

jqPlot

Plot object returned by call to $.jqplot.  Handles parsing user options, creating sub objects (Axes, legend, title, series) and rendering the plot.

Summary
PropertiesThese properties are specified at the top of the options object like so:
animateTrue to animate the series on initial plot draw (renderer dependent).
animateReplotTrue to animate series after a call to the replot() method.
axesup to 4 axes are supported, each with its own options, See Axis for axis specific options.
datauser’s data.
dataRendererA callable which can be used to preprocess data passed into the plot.
dataRendererOptionsOptions that will be passed to the dataRenderer.
axesDefaultsdefault options that will be applied to all axes.
seriesDefaultsdefault options that will be applied to all series.
defaultAxisStart1-D data series are internally converted into 2-D [x,y] data point arrays by jqPlot.
fillBetweenFill between 2 line series in a plot.
fontSizecss spec for the font-size attribute.
gridSee Grid for grid specific options.
legendsee <$.jqplot.TableLegendRenderer>
noDataIndicatorOptions to set up a mock plot with a data loading indicator if no data is specified.
negativeSeriesColorscolors to use for portions of the line below zero.
seriesArray of series object options.
seriesColorsAnn array of CSS color specifications that will be applied, in order, to the series in the plot.
sortDatafalse to not sort the data passed in by the user.
stackSeriestrue or false, creates a stack or “mountain” plot.
titleTitle object.
methods
initsets the plot target, checks data and applies user options to plot.
resetAxesScaleReset the specified axes min, max, numberTicks and tickInterval properties to null or reset these properties on all axes if no list of axes is provided.
reInitializereinitialize plot for replotting.
quickInitQuick reinitialization plot for replotting.
destroyReleases all resources occupied by the plot
replotDoes a reinitialization of the plot followed by a redraw.
redrawEmpties the plot target div and redraws the plot.
drawDraws all elements of the plot into the container.
drawSeriesRedraws all or just one series on the plot.
moveSeriesToFrontThis method requires jQuery 1.4+ Moves the specified series canvas in front of all other series canvases.
moveSeriesToBackThis method requires jQuery 1.4+ Moves the specified series canvas behind all other series canvases.
restorePreviousSeriesOrderThis method requires jQuery 1.4+ Restore the series canvas order to its previous state.
restoreOriginalSeriesOrderThis method requires jQuery 1.4+ Restore the series canvas order to its original order when the plot was created.
+ +

Properties

These properties are specified at the top of the options object like so:

{
+    axesDefaults:{min:0},
+    series:[{color:'#6633dd'}],
+    title: 'A Plot'
+}
+ +

animate

this.animate = false

True to animate the series on initial plot draw (renderer dependent).  Actual animation functionality must be supported in the renderer.

+ +

animateReplot

this.animateReplot = false

True to animate series after a call to the replot() method.  Use with caution!  Replots can happen very frequently under certain circumstances (e.g. resizing, dragging points) and animation in these situations can cause problems.

+ +

axes

this.axes = {xaxis: new Axis('xaxis'), yaxis: new Axis('yaxis'), x2axis: new Axis('x2axis'), y2axis: new Axis('y2axis'), y3axis: new Axis('y3axis'), y4axis: new Axis('y4axis'), y5axis: new Axis('y5axis'), y6axis: new Axis('y6axis'), y7axis: new Axis('y7axis'), y8axis: new Axis('y8axis'), y9axis: new Axis('y9axis'), yMidAxis: new Axis('yMidAxis')}

up to 4 axes are supported, each with its own options, See Axis for axis specific options.

+ +

data

this.data = []

user’s data.  Data should NOT be specified in the options object, but be passed in as the second argument to the $.jqplot() function.  The data property is described here soley for reference.  The data should be in the form of an array of 2D or 1D arrays like

[ [[x1, y1], [x2, y2],...], [y1, y2, ...] ].
+ +

dataRenderer

this.dataRenderer

A callable which can be used to preprocess data passed into the plot.  Will be called with 3 arguments: the plot data, a reference to the plot, and the value of dataRendererOptions.

+ +

dataRendererOptions

this.dataRendererOptions

Options that will be passed to the dataRenderer.  Can be of any type.

+ +

axesDefaults

default options that will be applied to all axes. see Axis for axes options.

+ +

seriesDefaults

seriesDefaults: {}, series:[] }

default options that will be applied to all series. see Series for series options.

+ +

defaultAxisStart

this.defaultAxisStart = 1

1-D data series are internally converted into 2-D [x,y] data point arrays by jqPlot.  This is the default starting value for the missing x or y value.  The added data will be a monotonically increasing series (e.g.  [1, 2, 3, ...]) starting at this value.

+ +

fillBetween

this.fillBetween = { series1: null, series2: null, color: null, baseSeries: 0, fill: true }

Fill between 2 line series in a plot.  Options object: { series1: first index (0 based) of series in fill series2: second index (0 based) of series in fill color: color of fill [default fillColor of series1] baseSeries: fill will be drawn below this series (0 based index) fill: false to turn off fill [default true].  }

+ +

fontSize

this.fontSize

css spec for the font-size attribute.  Default for the entire plot.

+ +

grid

this.grid = new Grid()

See Grid for grid specific options.

+ +

legend

this.legend = new Legend()

see <$.jqplot.TableLegendRenderer>

+ +

noDataIndicator

this.noDataIndicator = { show: false, indicator: 'Loading Data...', axes: { xaxis: { min: 0, max: 10, tickInterval: 2, show: true }, yaxis: { min: 0, max: 12, tickInterval: 3, show: true } } }

Options to set up a mock plot with a data loading indicator if no data is specified.

+ +

negativeSeriesColors

this.negativeSeriesColors = $.jqplot.config.defaultNegativeColors

colors to use for portions of the line below zero.

+ +

series

this.series = []

Array of series object options. see Series for series specific options.

+ +

seriesColors

this.seriesColors = $.jqplot.config.defaultColors

Ann array of CSS color specifications that will be applied, in order, to the series in the plot.  Colors will wrap around so, if their are more series than colors, colors will be reused starting at the beginning.  For pie charts, this specifies the colors of the slices.

+ +

sortData

this.sortData = true

false to not sort the data passed in by the user.  Many bar, stacked and other graphs as well as many plugins depend on having sorted data.

+ +

stackSeries

this.stackSeries = false

true or false, creates a stack or “mountain” plot.  Not all series renderers may implement this option.

+ +

title

this.title = new Title()

Title object.  See Title for specific options.  As a shortcut, you can specify the title option as just a string like: title: ‘My Plot’ and this will create a new title object with the specified text.

+ +

methods

+ +

init

this.init = function(target,
data,
options)

sets the plot target, checks data and applies user options to plot.

+ +

resetAxesScale

this.resetAxesScale = function(axes,
options)

Reset the specified axes min, max, numberTicks and tickInterval properties to null or reset these properties on all axes if no list of axes is provided.

Parameters

axesBoolean to reset or not reset all axes or an array or object of axis names to reset.
+ +

reInitialize

this.reInitialize = function (data,
opts)

reinitialize plot for replotting. not called directly.

+ +

quickInit

this.quickInit = function ()

Quick reinitialization plot for replotting.  Does not parse options ore recreate axes and series. not called directly.

+ +

destroy

this.destroy = function()

Releases all resources occupied by the plot

+ +

replot

this.replot = function(options)

Does a reinitialization of the plot followed by a redraw.  Method could be used to interactively change plot characteristics and then replot.

Parameters

optionsOptions used for replotting.

Properties

clearfalse to not clear (empty) the plot container before replotting (default: true).
resetAxestrue to reset all axes min, max, numberTicks and tickInterval setting so axes will rescale themselves. optionally pass in list of axes to reset (e.g.  [‘xaxis’, ‘y2axis’]) (default: false).
+ +

redraw

this.redraw = function(clear)

Empties the plot target div and redraws the plot.  This enables plot data and properties to be changed and then to comletely clear the plot and redraw. redraw will not reinitialize any plot elements.  That is, axes will not be autoscaled and defaults will not be reapplied to any plot elements.  redraw is used primarily with zooming.

Parameters

clearfalse to not clear (empty) the plot container before redrawing (default: true).
+ +

draw

this.draw = function()

Draws all elements of the plot into the container.  Does not clear the container before drawing.

+ +

drawSeries

this.drawSeries = function(options,
idx)

Redraws all or just one series on the plot.  No axis scaling is performed and no other elements on the plot are redrawn. options is an options object to pass on to the series renderers.  It can be an empty object {}.  idx is the series index to redraw if only one series is to be redrawn.

+ +

moveSeriesToFront

this.moveSeriesToFront = function (idx)

This method requires jQuery 1.4+ Moves the specified series canvas in front of all other series canvases.  This effectively “draws” the specified series on top of all other series, although it is performed through DOM manipulation, no redrawing is performed.

Parameters

idx0 based index of the series to move.  This will be the index of the series as it was first passed into the jqplot function.
+ +

moveSeriesToBack

this.moveSeriesToBack = function (idx)

This method requires jQuery 1.4+ Moves the specified series canvas behind all other series canvases.

Parameters

idx0 based index of the series to move.  This will be the index of the series as it was first passed into the jqplot function.
+ +

restorePreviousSeriesOrder

this.restorePreviousSeriesOrder = function ()

This method requires jQuery 1.4+ Restore the series canvas order to its previous state.  Useful to put a series back where it belongs after moving it to the front.

+ +

restoreOriginalSeriesOrder

this.restoreOriginalSeriesOrder = function ()

This method requires jQuery 1.4+ Restore the series canvas order to its original order when the plot was created.

+ +
+ + + + + + + + + + +
This document is out of date.
This document will help you understand how jqPlot’s options relate to the API documentation and the jqPlot object itself.
this.show = false
Wether to display the axis on the graph.
this.tickRenderer = $.jqplot.AxisTickRenderer
A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
A “tick” object showing the value of a tick/gridline on the plot.
this.tickOptions = {}
Options that will be passed to the tickRenderer, see $.jqplot.AxisTickRenderer options.
this.labelRenderer = $.jqplot.AxisLabelRenderer
A class of a rendering engine for creating an axis label.
this.labelOptions = {}
Options passed to the label renderer.
this.label = null
Label for the axis
this.showLabel = true
true to show the axis label.
this.min = null
minimum value of the axis (in data units, not pixels).
this.max = null
maximum value of the axis (in data units, not pixels).
this.autoscale = false
DEPRECATED the default scaling algorithm produces superior results.
this.pad = 1.2
Padding to extend the range above and below the data bounds.
this.padMax = null
Padding to extend the range above data bounds.
this.padMin = null
Padding to extend the range below data bounds.
this.ticks = []
1D [val, val, ...] or 2D [[val, label], [val, label], ...] array of ticks for the axis.
this.numberTicks
Desired number of ticks.
this.tickInterval
number of units between ticks.
this.renderer = $.jqplot.LinearAxisRenderer
A class of a rendering engine that handles tick generation, scaling input data to pixel grid units and drawing the axis element.
this.rendererOptions = {}
renderer specific options.
this.showTicks = true
Wether to show the ticks (both marks and labels) or not.
this.showTickMarks = true
Wether to show the tick marks (line crossing grid) or not.
this.showMinorTicks = true
Wether or not to show minor ticks.
this.drawMajorGridlines = true
True to draw gridlines for major axis ticks.
this.drawMinorGridlines = false
True to draw gridlines for minor ticks.
this.drawMajorTickMarks = true
True to draw tick marks for major axis ticks.
this.drawMinorTickMarks = true
True to draw tick marks for minor ticks.
this.useSeriesColor = false
Use the color of the first series associated with this axis for the tick marks and line bordering this axis.
this.borderWidth = null
width of line stroked at the border of the axis.
this.borderColor = null
color of the border adjacent to the axis.
this.scaleToHiddenSeries = false
True to include hidden series when computing axes bounds and scaling.
this.syncTicks = null
true to try and synchronize tick spacing across multiple axes so that ticks and grid lines line up.
this.tickSpacing = 75
Approximate pixel spacing between ticks on graph.
this.show = false
Wether to display the legend on the graph.
this.location = 'ne'
Placement of the legend.
this.labels = []
Array of labels to use.
this.showLabels = true
true to show the label text on the legend.
this.showSwatches = true
true to show the color swatches on the legend.
this.placement = "insideGrid"
“insideGrid” places legend inside the grid area of the plot.
this.xoffset = 0
DEPRECATED.
this.yoffset = 0
DEPRECATED.
this.border
css spec for the border around the legend box.
this.background
css spec for the background of the legend box.
this.textColor
css color spec for the legend text.
this.fontFamily
css font-family spec for the legend text.
this.fontSize
css font-size spec for the legend text.
this.rowSpacing = '0.5em'
css padding-top spec for the rows in the legend.
this.rendererOptions = {}
renderer specific options passed to the renderer.
this.marginTop = null
CSS margin for the legend DOM element.
this.marginRight = null
CSS margin for the legend DOM element.
this.marginBottom = null
CSS margin for the legend DOM element.
this.marginLeft = null
CSS margin for the legend DOM element.
this.escapeHtml = false
True to escape special characters with their html entity equivalents in legend text.
this.text = text
text of the title;
this.show = true
whether or not to show the title
this.fontFamily
css font-family spec for the text.
this.fontSize
css font-size spec for the text.
this.textAlign
css text-align spec for the text.
this.textColor
css color spec for the text.
this.renderer = $.jqplot.DivTitleRenderer
A class for creating a DOM element for the title, see $.jqplot.DivTitleRenderer.
The default title renderer for jqPlot.
this.rendererOptions = {}
renderer specific options passed to the renderer.
this.escapeHtml = false
True to escape special characters with their html entity equivalents in title text.
this.show = true
whether or not to draw the series.
this.xaxis = 'xaxis'
which x axis to use with this series, either ‘xaxis’ or ‘x2axis’.
this.yaxis = 'yaxis'
which y axis to use with this series, either ‘yaxis’ or ‘y2axis’.
this.renderer = $.jqplot.LineRenderer
A class of a renderer which will draw the series, see $.jqplot.LineRenderer.
The default line renderer for jqPlot, this class has no options beyond the Series class.
this.rendererOptions = {}
Options to pass on to the renderer.
this.label = ''
Line label to use in the legend.
this.showLabel = true
true to show label for this series in the legend.
this.color
css color spec for the series
this.negativeColor
css color spec used for filled (area) plots that are filled to zero and the “useNegativeColors” option is true.
this.lineWidth = 2.5
width of the line in pixels.
this.lineJoin = 'round'
Canvas lineJoin style between segments of series.
this.lineCap = 'round'
Canvas lineCap style at ends of line.
this.linePattern = 'solid'
line pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
this.shadowAngle = 45
Shadow angle in degrees
this.shadowOffset = 1.25
Shadow offset from line in pixels
this.shadowDepth = 3
Number of times shadow is stroked, each stroke offset shadowOffset from the last.
this.shadowAlpha = '0.1'
Alpha channel transparency of shadow.
this.breakOnNull = false
Wether line segments should be be broken at null value.
this.markerRenderer = $.jqplot.MarkerRenderer
A class of a renderer which will draw marker (e.g.
this.markerOptions = {}
renderer specific options to pass to the markerRenderer, see $.jqplot.MarkerRenderer.
The default jqPlot marker renderer, rendering the points on the line.
this.showLine = true
whether to actually draw the line or not.
this.showMarker = true
whether or not to show the markers at the data points.
this.index
0 based index of this series in the plot series array.
this.fill = false
true or false, whether to fill under lines or in bars.
this.fillColor
CSS color spec to use for fill under line.
this.fillAlpha
Alpha transparency to apply to the fill under the line.
this.fillAndStroke = false
If true will stroke the line (with color this.color) as well as fill under it.
this.disableStack = false
true to not stack this series with other series in the plot.
this.neighborThreshold = 4
how close or far (in pixels) the cursor must be from a point marker to detect the point.
this.fillToZero = false
true will force bar and filled series to fill toward zero on the fill Axis.
this.fillToValue = 0
fill a filled series to this value on the fill axis.
this.fillAxis = 'y'
Either ‘x’ or ‘y’.
this.useNegativeColors = true
true to color negative values differently in filled and bar charts.
this.drawGridlines = true
whether to draw the gridlines on the plot.
this.gridLineColor = '#cccccc'
color of the grid lines.
this.gridLineWidth = 1.0
width of the grid lines.
this.background = '#fffdf6'
css spec for the background color.
this.borderColor = '#999999'
css spec for the color of the grid border.
this.borderWidth = 2.0
width of the border in pixels.
this.drawBorder = true
True to draw border around grid.
this.shadow = true
whether to show a shadow behind the grid.
this.shadowAngle = 45
shadow angle in degrees
this.shadowOffset = 1.5
Offset of each shadow stroke from the border in pixels
this.shadowWidth = 3
width of the stoke for the shadow
this.shadowDepth = 3
Number of times shadow is stroked, each stroke offset shadowOffset from the last.
this.shadowColor = null
an optional css color spec for the shadow in ‘rgba(n, n, n, n)’ form
this.shadowAlpha = '0.07'
Alpha channel transparency of shadow.
this.renderer = $.jqplot.CanvasGridRenderer
Instance of a renderer which will actually render the grid, see $.jqplot.CanvasGridRenderer.
The default jqPlot grid renderer, creating a grid on a canvas element.
this.rendererOptions = {}
Options to pass on to the renderer, see $.jqplot.CanvasGridRenderer.
this.animate = false
True to animate the series on initial plot draw (renderer dependent).
this.animateReplot = false
True to animate series after a call to the replot() method.
this.axes = {xaxis: new Axis('xaxis'), yaxis: new Axis('yaxis'), x2axis: new Axis('x2axis'), y2axis: new Axis('y2axis'), y3axis: new Axis('y3axis'), y4axis: new Axis('y4axis'), y5axis: new Axis('y5axis'), y6axis: new Axis('y6axis'), y7axis: new Axis('y7axis'), y8axis: new Axis('y8axis'), y9axis: new Axis('y9axis'), yMidAxis: new Axis('yMidAxis')}
up to 4 axes are supported, each with its own options, See Axis for axis specific options.
An individual axis object.
this.data = []
user’s data.
this.dataRenderer
A callable which can be used to preprocess data passed into the plot.
this.dataRendererOptions
Options that will be passed to the dataRenderer.
seriesDefaults: {}, series:[] }
default options that will be applied to all series.
this.defaultAxisStart = 1
1-D data series are internally converted into 2-D [x,y] data point arrays by jqPlot.
this.fillBetween = { series1: null, series2: null, color: null, baseSeries: 0, fill: true }
Fill between 2 line series in a plot.
this.fontSize
css spec for the font-size attribute.
this.grid = new Grid()
See Grid for grid specific options.
Object representing the grid on which the plot is drawn.
this.legend = new Legend()
see $.jqplot.TableLegendRenderer
this.noDataIndicator = { show: false, indicator: 'Loading Data...', axes: { xaxis: { min: 0, max: 10, tickInterval: 2, show: true }, yaxis: { min: 0, max: 12, tickInterval: 3, show: true } } }
Options to set up a mock plot with a data loading indicator if no data is specified.
this.negativeSeriesColors = $.jqplot.config.defaultNegativeColors
colors to use for portions of the line below zero.
this.series = []
Array of series object options.
this.seriesColors = $.jqplot.config.defaultColors
Ann array of CSS color specifications that will be applied, in order, to the series in the plot.
this.sortData = true
false to not sort the data passed in by the user.
this.stackSeries = false
true or false, creates a stack or “mountain” plot.
this.title = new Title()
Title object.
this.init = function(target,
data,
options)
sets the plot target, checks data and applies user options to plot.
this.resetAxesScale = function(axes,
options)
Reset the specified axes min, max, numberTicks and tickInterval properties to null or reset these properties on all axes if no list of axes is provided.
this.reInitialize = function (data,
opts)
reinitialize plot for replotting.
this.quickInit = function ()
Quick reinitialization plot for replotting.
this.destroy = function()
Releases all resources occupied by the plot
this.replot = function(options)
Does a reinitialization of the plot followed by a redraw.
this.redraw = function(clear)
Empties the plot target div and redraws the plot.
this.draw = function()
Draws all elements of the plot into the container.
this.drawSeries = function(options,
idx)
Redraws all or just one series on the plot.
this.moveSeriesToFront = function (idx)
This method requires jQuery 1.4+ Moves the specified series canvas in front of all other series canvases.
this.moveSeriesToBack = function (idx)
This method requires jQuery 1.4+ Moves the specified series canvas behind all other series canvases.
this.restorePreviousSeriesOrder = function ()
This method requires jQuery 1.4+ Restore the series canvas order to its previous state.
this.restoreOriginalSeriesOrder = function ()
This method requires jQuery 1.4+ Restore the series canvas order to its original order when the plot was created.
GNU GENERAL PUBLIC LICENSE Version 2, June 1991
Copyright © 2009-2013 Chris Leonello
The default jqPlot axis renderer, creating a numeric axis.
An individual data series object.
Plot Title object.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/jqplot-divTitleRenderer-js.html b/common/chart/docs/files/jqplot-divTitleRenderer-js.html new file mode 100644 index 0000000..a6f7f78 --- /dev/null +++ b/common/chart/docs/files/jqplot-divTitleRenderer-js.html @@ -0,0 +1,39 @@ + + +$.jqplot.DivTitleRenderer + + + + + + + + + +

The default title renderer for jqPlot.  This class has no options beyond the Title class.

+ +
+ + + + + + + + + + +
Plot Title object.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/jqplot-lineRenderer-js.html b/common/chart/docs/files/jqplot-lineRenderer-js.html new file mode 100644 index 0000000..08bb4be --- /dev/null +++ b/common/chart/docs/files/jqplot-lineRenderer-js.html @@ -0,0 +1,69 @@ + + +$.jqplot.LineRenderer + + + + + + + + + +

The default line renderer for jqPlot, this class has no options beyond the Series class.  Draws series as a line.

Summary
$.jqplot.LineRendererThe default line renderer for jqPlot, this class has no options beyond the Series class.
Properties
smoothTrue to draw a smoothed (interpolated) line through the data points with automatically computed number of smoothing points.
constrainSmoothingTrue to use a more accurate smoothing algorithm that will not overshoot any data points.
bandDataData used to draw error bands or confidence intervals above/below a line.
bandsBanding around line, e.g error bands or confidence intervals.
showtrue to show the bands.
colorcolor of lines at top and bottom of bands [default: series color].
showLinesTrue to show lines at top and bottom of bands [default: false].
fillTrue to fill area between bands [default: true].
fillColorcss color spec for filled area.
intervalUser specified interval above and below line for bands [default: ‘3%’’].
Properties
highlightMouseOverTrue to highlight area on a filled plot when moused over.
highlightMouseDownTrue to highlight when a mouse button is pressed over an area on a filled plot.
highlightColorcolor to use when highlighting an area on a filled plot.
+ +

Properties

+ +

smooth

this.renderer.smooth = false

True to draw a smoothed (interpolated) line through the data points with automatically computed number of smoothing points.  Set to an integer number > 2 to specify number of smoothing points to use between each data point.

+ +

constrainSmoothing

this.renderer.constrainSmoothing = true

True to use a more accurate smoothing algorithm that will not overshoot any data points.  False to allow overshoot but produce a smoother looking line.

+ +

bandData

this.renderer.bandData = []

Data used to draw error bands or confidence intervals above/below a line.

bandData can be input in 3 forms.  jqPlot will figure out which is the low band line and which is the high band line for all forms:

A 2 dimensional array like [[yl1, yl2, ...], [yu1, yu2, ...]] where [yl1, yl2, ...] are y values of the lower line and [yu1, yu2, ...] are y values of the upper line.  In this case there must be the same number of y data points as data points in the series and the bands will inherit the x values of the series.

A 2 dimensional array like [[[xl1, yl1], [xl2, yl2], ...], [[xh1, yh1], [xh2, yh2], ...]] where [xl1, yl1] are x,y data points for the lower line and [xh1, yh1] are x,y data points for the high line. x values do not have to correspond to the x values of the series and can be of any arbitrary length.

Can be of form [[yl1, yu1], [yl2, yu2], [yl3, yu3], ...] where there must be 3 or more arrays and there must be the same number of arrays as there are data points in the series.  In this case, [yl1, yu1] specifies the lower and upper y values for the 1st data point and so on.  The bands will inherit the x values from the series.

+ +

bands

Banding around line, e.g error bands or confidence intervals.

+ +

show

true to show the bands.  If bandData or interval is supplied, show will be set to true by default.

+ +

color

color of lines at top and bottom of bands [default: series color].

+ +

showLines

True to show lines at top and bottom of bands [default: false].

+ +

fill

True to fill area between bands [default: true].

+ +

fillColor

css color spec for filled area.  [default: series color].

+ +

interval

interval: '3%' }

User specified interval above and below line for bands [default: ‘3%’’].  Can be a value like 3 or a string like ‘3%’ or an upper/lower array like [1, -2] or [‘2%’, ‘-1.5%’]

+ +

Properties

+ +

highlightMouseOver

this.highlightMouseOver = true

True to highlight area on a filled plot when moused over.  This must be false to enable highlightMouseDown to highlight when clicking on an area on a filled plot.

+ +

highlightMouseDown

this.highlightMouseDown = false

True to highlight when a mouse button is pressed over an area on a filled plot.  This will be disabled if highlightMouseOver is true.

+ +

highlightColor

this.highlightColor = null

color to use when highlighting an area on a filled plot.

+ +
+ + + + + + + + + + +
An individual data series object.
this.renderer.smooth = false
True to draw a smoothed (interpolated) line through the data points with automatically computed number of smoothing points.
this.renderer.constrainSmoothing = true
True to use a more accurate smoothing algorithm that will not overshoot any data points.
this.renderer.bandData = []
Data used to draw error bands or confidence intervals above/below a line.
interval: '3%' }
User specified interval above and below line for bands [default: ‘3%’’].
this.highlightMouseOver = true
True to highlight area on a filled plot when moused over.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over an area on a filled plot.
this.highlightColor = null
color to use when highlighting an area on a filled plot.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/jqplot-linearAxisRenderer-js.html b/common/chart/docs/files/jqplot-linearAxisRenderer-js.html new file mode 100644 index 0000000..5eda31f --- /dev/null +++ b/common/chart/docs/files/jqplot-linearAxisRenderer-js.html @@ -0,0 +1,61 @@ + + +$.jqplot.LinearAxisRenderer + + + + + + + + + +

The default jqPlot axis renderer, creating a numeric axis.

Summary
$.jqplot.LinearAxisRendererThe default jqPlot axis renderer, creating a numeric axis.
Properties
breakPointsEXPERIMENTAL!! 
breakTickLabelLabel to use at the axis break if breakPoints are specified.
drawBaselineTrue to draw the axis baseline.
baselineWidthwidth of the baseline in pixels.
baselineColorCSS color spec for the baseline.
forceTickAt0This will ensure that there is always a tick mark at 0.
forceTickAt100This will ensure that there is always a tick mark at 100.
tickInsetControls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.
minorTicksNumber of ticks to add between “major” ticks.
alignTickstrue to align tick marks across opposed axes such as from the y2axis to yaxis.
+ +

Properties

+ +

breakPoints

this.breakPoints = null

EXPERIMENTAL!!  Use at your own risk!  Works only with linear axes and the default tick renderer.  Array of [start, stop] points to create a broken axis.  Broken axes have a “jump” in them, which is an immediate transition from a smaller value to a larger value.  Currently, axis ticks MUST be manually assigned if using breakPoints by using the axis ticks array option.

+ +

breakTickLabel

this.breakTickLabel = "&asymp

Label to use at the axis break if breakPoints are specified.

+ +

drawBaseline

this.drawBaseline = true

True to draw the axis baseline.

+ +

baselineWidth

this.baselineWidth = null

width of the baseline in pixels.

+ +

baselineColor

this.baselineColor = null

CSS color spec for the baseline.

+ +

forceTickAt0

this.forceTickAt0 = false

This will ensure that there is always a tick mark at 0.  If data range is strictly positive or negative, this will force 0 to be inside the axis bounds unless the appropriate axis pad (pad, padMin or padMax) is set to 0, then this will force an axis min or max value at 0.  This has know effect when any of the following options are set: autoscale, min, max, numberTicks or tickInterval.

+ +

forceTickAt100

this.forceTickAt100 = false

This will ensure that there is always a tick mark at 100.  If data range is strictly above or below 100, this will force 100 to be inside the axis bounds unless the appropriate axis pad (pad, padMin or padMax) is set to 0, then this will force an axis min or max value at 100.  This has know effect when any of the following options are set: autoscale, min, max, numberTicks or tickInterval.

+ +

tickInset

this.tickInset = 0

Controls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.  0 is no inset, 0.5 is one half a tick interval, 1 is a full tick interval, etc.

+ +

minorTicks

this.minorTicks = 0

Number of ticks to add between “major” ticks.  Major ticks are ticks supplied by user or auto computed.  Minor ticks cannot be created by user.

+ +

alignTicks

this.alignTicks = false

true to align tick marks across opposed axes such as from the y2axis to yaxis.

+ +
+ + + + + + + + + + +
this.breakPoints = null
EXPERIMENTAL!! 
this.breakTickLabel = "&asymp
Label to use at the axis break if breakPoints are specified.
this.drawBaseline = true
True to draw the axis baseline.
this.baselineWidth = null
width of the baseline in pixels.
this.baselineColor = null
CSS color spec for the baseline.
this.forceTickAt0 = false
This will ensure that there is always a tick mark at 0.
this.forceTickAt100 = false
This will ensure that there is always a tick mark at 100.
this.tickInset = 0
Controls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.
this.minorTicks = 0
Number of ticks to add between “major” ticks.
this.alignTicks = false
true to align tick marks across opposed axes such as from the y2axis to yaxis.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/jqplot-markerRenderer-js.html b/common/chart/docs/files/jqplot-markerRenderer-js.html new file mode 100644 index 0000000..0a5da0a --- /dev/null +++ b/common/chart/docs/files/jqplot-markerRenderer-js.html @@ -0,0 +1,65 @@ + + +$.jqplot.MarkerRenderer + + + + + + + + + +

The default jqPlot marker renderer, rendering the points on the line.

Summary
$.jqplot.MarkerRendererThe default jqPlot marker renderer, rendering the points on the line.
Properties
showwhether or not to show the marker.
styleOne of diamond, circle, square, x, plus, dash, filledDiamond, filledCircle, filledSquare
lineWidthsize of the line for non-filled markers.
sizeSize of the marker (diameter or circle, length of edge of square, etc.)
colorcolor of marker.
shadowwhether or not to draw a shadow on the line
shadowAngleShadow angle in degrees
shadowOffsetShadow offset from line in pixels
shadowDepthNumber of times shadow is stroked, each stroke offset shadowOffset from the last.
shadowAlphaAlpha channel transparency of shadow.
shadowRendererRenderer that will draws the shadows on the marker.
shapeRendererRenderer that will draw the marker.
+ +

Properties

+ +

show

this.show = true

whether or not to show the marker.

+ +

style

this.style = 'filledCircle'

One of diamond, circle, square, x, plus, dash, filledDiamond, filledCircle, filledSquare

+ +

lineWidth

this.lineWidth = 2

size of the line for non-filled markers.

+ +

size

this.size = 9.0

Size of the marker (diameter or circle, length of edge of square, etc.)

+ +

color

this.color = '#666666'

color of marker.  Will be set to color of series by default on init.

+ +

shadow

this.shadow = true

whether or not to draw a shadow on the line

+ +

shadowAngle

this.shadowAngle = 45

Shadow angle in degrees

+ +

shadowOffset

this.shadowOffset = 1

Shadow offset from line in pixels

+ +

shadowDepth

this.shadowDepth = 3

Number of times shadow is stroked, each stroke offset shadowOffset from the last.

+ +

shadowAlpha

this.shadowAlpha = '0.07'

Alpha channel transparency of shadow.  0 = transparent.

+ +

shadowRenderer

this.shadowRenderer = new $.jqplot.ShadowRenderer()

Renderer that will draws the shadows on the marker.

+ +

shapeRenderer

this.shapeRenderer = new $.jqplot.ShapeRenderer()

Renderer that will draw the marker.

+ +
+ + + + + + + + + + +
this.show = true
whether or not to show the marker.
this.style = 'filledCircle'
One of diamond, circle, square, x, plus, dash, filledDiamond, filledCircle, filledSquare
this.lineWidth = 2
size of the line for non-filled markers.
this.size = 9.0
Size of the marker (diameter or circle, length of edge of square, etc.)
this.color = '#666666'
color of marker.
this.shadow = true
whether or not to draw a shadow on the line
this.shadowAngle = 45
Shadow angle in degrees
this.shadowOffset = 1
Shadow offset from line in pixels
this.shadowDepth = 3
Number of times shadow is stroked, each stroke offset shadowOffset from the last.
this.shadowAlpha = '0.07'
Alpha channel transparency of shadow.
this.shadowRenderer = new $.jqplot.ShadowRenderer()
Renderer that will draws the shadows on the marker.
this.shapeRenderer = new $.jqplot.ShapeRenderer()
Renderer that will draw the marker.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/jqplot-shadowRenderer-js.html b/common/chart/docs/files/jqplot-shadowRenderer-js.html new file mode 100644 index 0000000..5d6c602 --- /dev/null +++ b/common/chart/docs/files/jqplot-shadowRenderer-js.html @@ -0,0 +1,61 @@ + + +$.jqplot.shadowRenderer + + + + + + + + + +

The default jqPlot shadow renderer, rendering shadows behind shapes.

Summary
$.jqplot.shadowRendererThe default jqPlot shadow renderer, rendering shadows behind shapes.
Properties
angleAngle of the shadow in degrees.
offsetPixel offset at the given shadow angle of each shadow stroke from the last stroke.
alphaalpha transparency of shadow stroke.
lineWidthwidth of the shadow line stroke.
lineJoinHow line segments of the shadow are joined.
lineCaphow ends of the shadow line are rendered.
fillwhether to fill the shape.
depthhow many times the shadow is stroked.
isarcwhether the shadow is an arc or not.
drawdraws an transparent black (i.e.
+ +

Properties

+ +

angle

this.angle = 45

Angle of the shadow in degrees.  Measured counter-clockwise from the x axis.

+ +

offset

this.offset = 1

Pixel offset at the given shadow angle of each shadow stroke from the last stroke.

+ +

alpha

this.alpha = 0.07

alpha transparency of shadow stroke.

+ +

lineWidth

this.lineWidth = 1.5

width of the shadow line stroke.

+ +

lineJoin

this.lineJoin = 'miter'

How line segments of the shadow are joined.

+ +

lineCap

this.lineCap = 'round'

how ends of the shadow line are rendered.

+ +

fill

this.fill = false

whether to fill the shape.

+ +

depth

this.depth = 3

how many times the shadow is stroked.  Each stroke will be offset by offset at angle degrees.

+ +

isarc

this.isarc = false

whether the shadow is an arc or not.

+ +

draw

$.jqplot.ShadowRenderer.prototype.draw = function(ctx,
points,
options)

draws an transparent black (i.e. gray) shadow.

ctxcanvas drawing context
pointsarray of points or [x, y, radius, start angle (rad), end angle (rad)]
+ +
+ + + + + + + + + + +
this.angle = 45
Angle of the shadow in degrees.
this.offset = 1
Pixel offset at the given shadow angle of each shadow stroke from the last stroke.
this.alpha = 0.07
alpha transparency of shadow stroke.
this.lineWidth = 1.5
width of the shadow line stroke.
this.lineJoin = 'miter'
How line segments of the shadow are joined.
this.lineCap = 'round'
how ends of the shadow line are rendered.
this.fill = false
whether to fill the shape.
this.depth = 3
how many times the shadow is stroked.
this.isarc = false
whether the shadow is an arc or not.
$.jqplot.ShadowRenderer.prototype.draw = function(ctx,
points,
options)
draws an transparent black (i.e.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/jqplot-shapeRenderer-js.html b/common/chart/docs/files/jqplot-shapeRenderer-js.html new file mode 100644 index 0000000..49ac244 --- /dev/null +++ b/common/chart/docs/files/jqplot-shapeRenderer-js.html @@ -0,0 +1,65 @@ + + +$.jqplot.shapeRenderer + + + + + + + + + +

The default jqPlot shape renderer.  Given a set of points will plot them and either stroke a line (fill = false) or fill them (fill = true).  If a filled shape is desired, closePath = true must also be set to close the shape.

Summary
$.jqplot.shapeRendererThe default jqPlot shape renderer.
Properties
linePatternline pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
lineJoinHow line segments of the shadow are joined.
lineCaphow ends of the shadow line are rendered.
fillwhether to fill the shape.
isarcwhether the shadow is an arc or not.
fillRecttrue to draw shape as a filled rectangle.
strokeRecttrue to draw shape as a stroked rectangle.
clearRecttrue to cear a rectangle.
strokeStylecss color spec for the stoke style
fillStylecss color spec for the fill style.
Functions
drawdraws the shape.
+ +

Properties

+ +

linePattern

this.linePattern = 'solid'

line pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’ characters such as ‘.-.’ or a numerical array like [draw, skip, draw, skip, ...] such as [1, 10] to draw a dotted line, [1, 10, 20, 10] to draw a dot-dash line, and so on.

+ +

lineJoin

this.lineJoin = 'miter'

How line segments of the shadow are joined.

+ +

lineCap

this.lineCap = 'round'

how ends of the shadow line are rendered.

+ +

fill

this.fill = false

whether to fill the shape.

+ +

isarc

this.isarc = false

whether the shadow is an arc or not.

+ +

fillRect

this.fillRect = false

true to draw shape as a filled rectangle.

+ +

strokeRect

this.strokeRect = false

true to draw shape as a stroked rectangle.

+ +

clearRect

this.clearRect = false

true to cear a rectangle.

+ +

strokeStyle

this.strokeStyle = '#999999'

css color spec for the stoke style

+ +

fillStyle

this.fillStyle = '#999999'

css color spec for the fill style.

+ +

Functions

+ +

draw

$.jqplot.ShapeRenderer.prototype.draw = function(ctx,
points,
options)

draws the shape.

ctxcanvas drawing context
pointsarray of points for shapes or [x, y, width, height] for rectangles or [x, y, radius, start angle (rad), end angle (rad)] for circles and arcs.
+ +
+ + + + + + + + + + +
this.linePattern = 'solid'
line pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
this.lineJoin = 'miter'
How line segments of the shadow are joined.
this.lineCap = 'round'
how ends of the shadow line are rendered.
this.fill = false
whether to fill the shape.
this.isarc = false
whether the shadow is an arc or not.
this.fillRect = false
true to draw shape as a filled rectangle.
this.strokeRect = false
true to draw shape as a stroked rectangle.
this.clearRect = false
true to cear a rectangle.
this.strokeStyle = '#999999'
css color spec for the stoke style
this.fillStyle = '#999999'
css color spec for the fill style.
$.jqplot.ShapeRenderer.prototype.draw = function(ctx,
points,
options)
draws the shape.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/jqplot-themeEngine-js.html b/common/chart/docs/files/jqplot-themeEngine-js.html new file mode 100644 index 0000000..38192e4 --- /dev/null +++ b/common/chart/docs/files/jqplot-themeEngine-js.html @@ -0,0 +1,191 @@ + + +$.jqplot.ThemeEngine + + + + + + + + + +

Theme Engine provides a programatic way to change some of the more common jqplot styling options such as fonts, colors and grid options.  A theme engine instance is created with each plot.  The theme engine manages a collection of themes which can be modified, added to, or applied to the plot.

The themeEngine class is not instantiated directly.  When a plot is initialized, the current plot options are scanned an a default theme named “Default” is created.  This theme is used as the basis for other themes added to the theme engine and is always available.

A theme is a simple javascript object with styling parameters for various entities of the plot.  A theme has the form:

{
+    _name:f "Default",
+    target: {
+        backgroundColor: "transparent"
+    },
+    legend: {
+        textColor: null,
+        fontFamily: null,
+        fontSize: null,
+        border: null,
+        background: null
+    },
+    title: {
+        textColor: "rgb(102, 102, 102)",
+        fontFamily: "'Trebuchet MS',Arial,Helvetica,sans-serif",
+        fontSize: "19.2px",
+        textAlign: "center"
+    },
+    seriesStyles: {},
+    series: [{
+        color: "#4bb2c5",
+        lineWidth: 2.5,
+        linePattern: "solid",
+        shadow: true,
+        fillColor: "#4bb2c5",
+        showMarker: true,
+        markerOptions: {
+            color: "#4bb2c5",
+            show: true,
+            style: 'filledCircle',
+            lineWidth: 1.5,
+            size: 4,
+            shadow: true
+        }
+    }],
+    grid: {
+        drawGridlines: true,
+        gridLineColor: "#cccccc",
+        gridLineWidth: 1,
+        backgroundColor: "#fffdf6",
+        borderColor: "#999999",
+        borderWidth: 2,
+        shadow: true
+    },
+    axesStyles: {
+        label: {},
+        ticks: {}
+    },
+    axes: {
+        xaxis: {
+            borderColor: "#999999",
+            borderWidth: 2,
+            ticks: {
+                show: true,
+                showGridline: true,
+                showLabel: true,
+                showMark: true,
+                size: 4,
+                textColor: "",
+                whiteSpace: "nowrap",
+                fontSize: "12px",
+                fontFamily: "'Trebuchet MS',Arial,Helvetica,sans-serif"
+            },
+            label: {
+                textColor: "rgb(102, 102, 102)",
+                whiteSpace: "normal",
+                fontSize: "14.6667px",
+                fontFamily: "'Trebuchet MS',Arial,Helvetica,sans-serif",
+                fontWeight: "400"
+            }
+        },
+        yaxis: {
+            borderColor: "#999999",
+            borderWidth: 2,
+            ticks: {
+                show: true,
+                showGridline: true,
+                showLabel: true,
+                showMark: true,
+                size: 4,
+                textColor: "",
+                whiteSpace: "nowrap",
+                fontSize: "12px",
+                fontFamily: "'Trebuchet MS',Arial,Helvetica,sans-serif"
+            },
+            label: {
+                textColor: null,
+                whiteSpace: null,
+                fontSize: null,
+                fontFamily: null,
+                fontWeight: null
+            }
+        },
+        x2axis: {...
+        },
+        ...
+        y9axis: {...
+        }
+    }
+}

”seriesStyles” is a style object that will be applied to all series in the plot.  It will forcibly override any styles applied on the individual series.  “axesStyles” is a style object that will be applied to all axes in the plot.  It will also forcibly override any styles on the individual axes.

The example shown above has series options for a line series.  Options for other series types are shown below:

Bar Series

{
+    color: "#4bb2c5",
+    seriesColors: ["#4bb2c5", "#EAA228", "#c5b47f", "#579575", "#839557", "#958c12", "#953579", "#4b5de4", "#d8b83f", "#ff5800", "#0085cc", "#c747a3", "#cddf54", "#FBD178", "#26B4E3", "#bd70c7"],
+    lineWidth: 2.5,
+    shadow: true,
+    barPadding: 2,
+    barMargin: 10,
+    barWidth: 15.09375,
+    highlightColors: ["rgb(129,201,214)", "rgb(129,201,214)", "rgb(129,201,214)", "rgb(129,201,214)", "rgb(129,201,214)", "rgb(129,201,214)", "rgb(129,201,214)", "rgb(129,201,214)"]
+}

Pie Series

{
+    seriesColors: ["#4bb2c5", "#EAA228", "#c5b47f", "#579575", "#839557", "#958c12", "#953579", "#4b5de4", "#d8b83f", "#ff5800", "#0085cc", "#c747a3", "#cddf54", "#FBD178", "#26B4E3", "#bd70c7"],
+    padding: 20,
+    sliceMargin: 0,
+    fill: true,
+    shadow: true,
+    startAngle: 0,
+    lineWidth: 2.5,
+    highlightColors: ["rgb(129,201,214)", "rgb(240,189,104)", "rgb(214,202,165)", "rgb(137,180,158)", "rgb(168,180,137)", "rgb(180,174,89)", "rgb(180,113,161)", "rgb(129,141,236)", "rgb(227,205,120)", "rgb(255,138,76)", "rgb(76,169,219)", "rgb(215,126,190)", "rgb(220,232,135)", "rgb(200,167,96)", "rgb(103,202,235)", "rgb(208,154,215)"]
+}

Funnel Series

{
+    color: "#4bb2c5",
+    lineWidth: 2,
+    shadow: true,
+    padding: {
+        top: 20,
+        right: 20,
+        bottom: 20,
+        left: 20
+    },
+    sectionMargin: 6,
+    seriesColors: ["#4bb2c5", "#EAA228", "#c5b47f", "#579575", "#839557", "#958c12", "#953579", "#4b5de4", "#d8b83f", "#ff5800", "#0085cc", "#c747a3", "#cddf54", "#FBD178", "#26B4E3", "#bd70c7"],
+    highlightColors: ["rgb(147,208,220)", "rgb(242,199,126)", "rgb(220,210,178)", "rgb(154,191,172)", "rgb(180,191,154)", "rgb(191,186,112)", "rgb(191,133,174)", "rgb(147,157,238)", "rgb(231,212,139)", "rgb(255,154,102)", "rgb(102,181,224)", "rgb(221,144,199)", "rgb(225,235,152)", "rgb(200,167,96)", "rgb(124,210,238)", "rgb(215,169,221)"]
+}
Summary
$.jqplot.ThemeEngineTheme Engine provides a programatic way to change some of the more common jqplot styling options such as fonts, colors and grid options.
Properties
themeshash of themes managed by the theme engine.
activeThemePointer to currently active theme
methods
getGet and return the named theme or the active theme if no name given.
getThemeNamesReturn the list of theme names in this manager in alpha-numerical order.
getThemesReturn a list of themes in alpha-numerical order by name.
removeRemove the given theme from the themeEngine.
newThemeCreate a new theme based on the default theme, adding it the themeEngine.
renameRename a theme.
copyCreate a copy of an existing theme in the themeEngine, adding it the themeEngine.
+ +

Properties

+ +

themes

this.themes = {}

hash of themes managed by the theme engine.  Indexed by theme name.

+ +

activeTheme

this.activeTheme=null

Pointer to currently active theme

+ +

methods

+ +

get

$.jqplot.ThemeEngine.prototype.get = function(name)

Get and return the named theme or the active theme if no name given.

parameter

namename of theme to get.

returns

Theme instance of given name.

+ +

getThemeNames

$.jqplot.ThemeEngine.prototype.getThemeNames = function()

Return the list of theme names in this manager in alpha-numerical order.

parameter

None

returns

A the list of theme names in this manager in alpha-numerical order.

+ +

getThemes

$.jqplot.ThemeEngine.prototype.getThemes = function()

Return a list of themes in alpha-numerical order by name.

parameter

None

returns

A list of themes in alpha-numerical order by name.

+ +

remove

$.jqplot.ThemeEngine.prototype.remove = function(name)

Remove the given theme from the themeEngine.

parameters

namename of the theme to remove.

returns

true on success, false on failure.

+ +

newTheme

$.jqplot.ThemeEngine.prototype.newTheme = function(name,
obj)

Create a new theme based on the default theme, adding it the themeEngine.

parameters

namename of the new theme.
objoptional object of styles to be applied to this new theme.

returns

new Theme object.

+ +

rename

$.jqplot.ThemeEngine.prototype.rename = function (oldName,
newName)

Rename a theme.

parameters

oldNamecurrent name of the theme.
newNamedesired name of the theme.

returns

new Theme object.

+ +

copy

$.jqplot.ThemeEngine.prototype.copy = function (sourceName,
targetName,
obj)

Create a copy of an existing theme in the themeEngine, adding it the themeEngine.

parameters

sourceNamename of the existing theme.
targetNamename of the copy.
objoptional object of style parameter to apply to the new theme.

returns

new Theme object.

+ +
+ + + + + + + + + + +
this.themes = {}
hash of themes managed by the theme engine.
this.activeTheme=null
Pointer to currently active theme
$.jqplot.ThemeEngine.prototype.get = function(name)
Get and return the named theme or the active theme if no name given.
$.jqplot.ThemeEngine.prototype.getThemeNames = function()
Return the list of theme names in this manager in alpha-numerical order.
$.jqplot.ThemeEngine.prototype.getThemes = function()
Return a list of themes in alpha-numerical order by name.
$.jqplot.ThemeEngine.prototype.remove = function(name)
Remove the given theme from the themeEngine.
$.jqplot.ThemeEngine.prototype.newTheme = function(name,
obj)
Create a new theme based on the default theme, adding it the themeEngine.
$.jqplot.ThemeEngine.prototype.rename = function (oldName,
newName)
Rename a theme.
$.jqplot.ThemeEngine.prototype.copy = function (sourceName,
targetName,
obj)
Create a copy of an existing theme in the themeEngine, adding it the themeEngine.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/jqplot-toImage-js.html b/common/chart/docs/files/jqplot-toImage-js.html new file mode 100644 index 0000000..42406a8 --- /dev/null +++ b/common/chart/docs/files/jqplot-toImage-js.html @@ -0,0 +1,39 @@ + + +$.fn + + + + + + + + + +

jQuery namespace to attach functions to jQuery elements.

+ +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/optionsTutorial-txt.html b/common/chart/docs/files/optionsTutorial-txt.html new file mode 100644 index 0000000..e39e614 --- /dev/null +++ b/common/chart/docs/files/optionsTutorial-txt.html @@ -0,0 +1,120 @@ + + +Options Tutorial + + + + + + + + + +

This document will help you understand how jqPlot’s options relate to the API documentation and the jqPlot object itself.  For a listing of options available to jqPlot, see jqPlot Options in the jqPlotOptions.txt file.

The key to effectively using jqPlot is understanding jqPlot’s options.  The online documentation is API documentation.  While it explains what attributes and methods various objects possess, it doesn’t explain how to use or set those attributes through options.  This tutorial will help explain that.

Let’s assume you are creating a plot like this:

chart = $.jqplot('chart', dataSeries, optionsObj);

First, note that you shouldn’t try to directly set attributes on the “chart” object (like chart.grid.shadow) after your call to $.jqplot().  At best this won’t do anything **(see below).  You should pass options in via the “optionsObj”.

The optionsObj really represents the plot object (jqPlot object, not to be confused with the $.jqplot function which will create a jqPlot object).  Attributes you specify on that object will be merged with attributes in the jqPlot object.  The axes, legend, series, etc. are attributes on the jqPlot object.  The jqPlot/optionsObj object looks something like (only some attributes shown):

jqPlot-|
+       |-seriesColors
+       |-textColor
+       |-fontFamily
+       |-fontSize
+       |-stackSeries
+       |-series(Array)-|
+       |               |-Series1-|
+       |               |         |-lineWidth
+       |               |         |-linePattern
+       |               |         |-shadow
+       |               |         |-showLine
+       |               |         |-showMarker
+       |               |         |-color
+       |               |-Series2...
+       |               |-...
+       |               |-SeriesN
+       |
+       |-grid(Object)-|
+       |              |-drawGridLines
+       |              |-background
+       |              |-borderColor
+       |              |-borderWidth
+       |              |-shadow
+       |
+       |-title(Object)-|
+       |               |-text
+       |               |-show
+       |               |-fontFamily
+       |               |-fontSize
+       |               |-textAlign
+       |               |-textColor
+       |
+       |-axes(Object)-|
+       |              |-xais-|
+       |              |      |-min
+       |              |      |-max
+       |              |      |-numberTicks
+       |              |      |-showTicks
+       |              |      |-showTickMarks
+       |              |      |-pad
+       |
+       | ... and so on

The optionsObj should follow the same construction as if it were a jqPlot object (with some exceptions/shortcuts I’ll mention in a moment).  So generally, when you see something like “this.drawGridLines” in the grid properties in the docs, just replace “this” with “grid” in your options object.  So it becomes optionsObj.grid.drawGridLines.  Do likewise with the other objects in the plot, replacing “this”, with the respective attribute on the plot like “legend” or “title”.  Series and Axes are handled a little differently, because series is an array and axes has 4 distinct children “xaxis”, “yaxis”, “x2axis” and “y2axis”.

So, to remove the shadow from the grid and change the grid border size you would do:

optionObj = {grid:{shadow:false, borderWidth:9.0}};

To do the same as above but also make all the text in the plot red you would do:

optionObj = {
+   textColor:"#ff0000",
+   grid:{shadow:false, borderWidth:9.0}
+}

Here is a more deeply nested example.  Say you want to specify a min and max on your y axis and use a specific color for your second series.  That would look like:

optionsObj = {
+   axes:{yaxis:{min:5, max:230}},
+   series:[{},{color:"#33ff66"}]
+}

Note that series options are an array in order of the series data you sent in to your plot.  To get to the second series, you have to put an object (even if empty) in place of the first series.

There is a handy shortcut to assign options to all axes or all series at one go.  Use axesDefaults and seriesDefaults.  So, if you wanted both x and y axes to start at 0 and you wanted all series to not show markers, you could do:

optionsObj = {axesDefaults:{min:0}, seriesDefaults:{showMarker:false}}

Another shortcut is for the plot title.  Normally, you would assign options to the title as an object.  If you specify a title option as a string, it will assign that to the title.text property automatically.  So these two are equivalent:

optionsObj = {title:{text:"My Plot"}}

and

optionsObj = {title:"My Plot"}

Where things need more explanation is with renderers, plugins and their options.  Briefly, what’s the difference between a renderer and a plugin.

A renderer is an object that is used to draw something and gets attached to an existing object in the plot in order to draw it.  A plugin does more than just provide drawing functionality to an object; it can calculate a trend line, change the cursor, provide event driven functionality, etc.  I consider renderers plugins, but plugins don’t have to be renderers.

So, how do you use renderers and plugins, and specify their options?  Some common renderers are for bar charts and category axes.  If you want to render your series as a bar chart with each set of bars showing up in a category on the x axis, you do:

optionsObj = {
+   seriesDefaults:{renderer:$.jqplot.BarRenderer},
+   axes:{xaxis:{renderer:$.jqplot.CategoryAxisRenderer}}
+}

This replaces the default renderer used for all series in the plot with a bar renderer and the x axis default renderer (but not any other axis) with a category renderer.

Now, how would I assign options to those renderers?  The renderer’s attributes may not be present in the pre-existing jqPlot object, they may be specific to the renderer.  This is done through the “rendererOptions” option on the appropriate object.  So, if I wanted my bars to be 25 pixels wide, I would do:

optionsObj = {
+   seriesDefaults:{
+       renderer:$.jqplot.BarRenderer},
+       rendererOptions:{
+           barWidth:25
+       },
+   axes:{xaxis:{renderer:$.jqplot.CategoryAxisRenderer}}
+}

Again, this is using the “seriesDefaults” option, which will apply options to all series in the plot.  You could do the same on any particular series in the plot through the “series” options array.

Plugins are free to add their own options.  For example, the highlighter plugin has its own set of options that are unique to it.  As a result, it responds to options placed in the “highlighter” attribute of your options object.  So, if I wanted to change the highlighter tooltip to fade in and out slowly and be positioned directly above the point I’m highlighting:

optionsObj = {
+    highlighter:{tooltipFadeSpeed:'slow', tooltipLocation:'n'}
+}

Other plugins, like dragable and trendlines, add their options in with the series.  (Yes, that’s the correct name for the dragable plugin; it doesn’t use the correct spelling of “draggable”.)  This is because both of those plugins can have different options for different series in the plot.  So, if you wanted to specify the color for the dragable plugin and constrain it to drag only on the x axis as well as specify the color of the trend line you could do:

series:[{
+    dragable: {
+        color: '#ff3366',
+        constrainTo: 'x'
+    },
+    trendline: {
+        color: '#cccccc'
+    }
+}]

This would apply those options to the first series only.  If you had 2 series and wanted to turn off dragging and trend lines on the second series, you could do:

series:[{
+    dragable: {
+        color: '#ff3366',
+        constrainTo: 'x'
+    },
+    trendline: {
+        color: '#cccccc'
+    }
+}, {
+   isDragable: false,
+   trendline:{
+       show: false
+   }
+}]

Note, series draggability is turned off with the “isDragable” option directly on the series itself, not with a suboption of “dragable”.  This may be improved in the future.

I hope this is helpful.  A few key points to remember:

  • When you see “this” in the api docs, you generally replace it with the name of the object (in lowercase) you are looking at in your options object.
  • seriesDefaults and axesDefaults are convenient shortcuts.
  • to assign options to a renderer, generally use the “rendererOptions”
  • plugins may add their own options attribute, like “highlighter” or “cursor”.

** Note: you can set attributes after the plot is created (like plot.grid.shadow = false), but you’ll have to issue the appropriate calls to possibly reinitialize and redraw the plot.  jqPlot can definitely handle this to change the plot after creation (this is how the dragable plugin updates the plot data and the trend line plugin recomputes itself when data changes).  This hasn’t been documented yet, however.

+ +
+ + + + + + + + + + +
This document is out of date.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/index.php b/common/chart/docs/files/plugins/index.php new file mode 100644 index 0000000..e69de29 diff --git a/common/chart/docs/files/plugins/jqplot-BezierCurveRenderer-js.html b/common/chart/docs/files/plugins/jqplot-BezierCurveRenderer-js.html new file mode 100644 index 0000000..64a16ac --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-BezierCurveRenderer-js.html @@ -0,0 +1,45 @@ + + +$.jqplot.BezierCurveRenderer.js + + + + + + + + + +

Renderer which draws lines as stacked bezier curves.  Data for the line will not be specified as an array of [x, y] data point values, but as a an array of [start piont, bezier curve] So, the line is specified as: [[xstart, ystart], [cp1x, cp1y, cp2x, cp2y, xend, yend]].

Summary
$.jqplot.BezierCurveRenderer.jsRenderer which draws lines as stacked bezier curves.
Functions
setGridDataconverts the user data values to grid coordinates and stores them in the gridData array.
makeGridDataconverts any arbitrary data values to grid coordinates and returns them.
+ +

Functions

+ +

setGridData

$.jqplot.BezierCurveRenderer.prototype.setGridData = function(plot)

converts the user data values to grid coordinates and stores them in the gridData array.  Called with scope of a series.

+ +

makeGridData

$.jqplot.BezierCurveRenderer.prototype.makeGridData = function(data,
plot)

converts any arbitrary data values to grid coordinates and returns them.  This method exists so that plugins can use a series’ linerenderer to generate grid data points without overwriting the grid data associated with that series.  Called with scope of a series.

+ +
+ + + + + + + + + + +
$.jqplot.BezierCurveRenderer.prototype.setGridData = function(plot)
converts the user data values to grid coordinates and stores them in the gridData array.
$.jqplot.BezierCurveRenderer.prototype.makeGridData = function(data,
plot)
converts any arbitrary data values to grid coordinates and returns them.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-barRenderer-js.html b/common/chart/docs/files/plugins/jqplot-barRenderer-js.html new file mode 100644 index 0000000..e8f2e03 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-barRenderer-js.html @@ -0,0 +1,69 @@ + + +$.jqplot.BarRenderer + + + + + + + + + +

A plugin renderer for jqPlot to draw a bar plot.  Draws series as a line.

Summary
$.jqplot.BarRendererA plugin renderer for jqPlot to draw a bar plot.
Properties
barPaddingNumber of pixels between adjacent bars at the same axis value.
barMarginNumber of pixels between groups of bars at adjacent axis values.
barDirection‘vertical’ = up and down bars, ‘horizontal’ = side to side bars
barWidthWidth of the bar in pixels (auto by devaul).
shadowOffsetoffset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
shadowDepthnumber of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
shadowAlphatransparency of the shadow (0 = transparent, 1 = opaque)
waterfalltrue to enable waterfall plot.
groupsgroup bars into this many groups
varyBarColortrue to color each bar of a series separately rather than have every bar of a given series the same color.
highlightMouseOverTrue to highlight slice when moused over.
highlightMouseDownTrue to highlight when a mouse button is pressed over a slice.
highlightColorsan array of colors to use when highlighting a bar.
transposedDataNOT IMPLEMENTED YET.
+ +

Properties

+ +

barPadding

this.barPadding = 8

Number of pixels between adjacent bars at the same axis value.

+ +

barMargin

this.barMargin = 10

Number of pixels between groups of bars at adjacent axis values.

+ +

barDirection

this.barDirection = 'vertical'

’vertical’ = up and down bars, ‘horizontal’ = side to side bars

+ +

barWidth

this.barWidth = null

Width of the bar in pixels (auto by devaul).  null = calculated automatically.

+ +

shadowOffset

this.shadowOffset = 2

offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.

+ +

shadowDepth

this.shadowDepth = 5

number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.

+ +

shadowAlpha

this.shadowAlpha = 0.08

transparency of the shadow (0 = transparent, 1 = opaque)

+ +

waterfall

this.waterfall = false

true to enable waterfall plot.

+ +

groups

this.groups = 1

group bars into this many groups

+ +

varyBarColor

this.varyBarColor = false

true to color each bar of a series separately rather than have every bar of a given series the same color.  If used for non-stacked multiple series bar plots, user should specify a separate ‘seriesColors’ array for each series.  Otherwise, each series will set their bars to the same color array.  This option has no Effect for stacked bar charts and is disabled.

+ +

highlightMouseOver

this.highlightMouseOver = true

True to highlight slice when moused over.  This must be false to enable highlightMouseDown to highlight when clicking on a slice.

+ +

highlightMouseDown

this.highlightMouseDown = false

True to highlight when a mouse button is pressed over a slice.  This will be disabled if highlightMouseOver is true.

+ +

highlightColors

this.highlightColors = []

an array of colors to use when highlighting a bar.

+ +

transposedData

this.transposedData = true

NOT IMPLEMENTED YET.  True if this is a horizontal bar plot and x and y values are “transposed”.  Tranposed, or “swapped”, data is required prior to rev.  894 builds of jqPlot with horizontal bars.  Allows backward compatability of bar renderer horizontal bars with old style data sets.

+ +
+ + + + + + + + + + +
this.barPadding = 8
Number of pixels between adjacent bars at the same axis value.
this.barMargin = 10
Number of pixels between groups of bars at adjacent axis values.
this.barDirection = 'vertical'
‘vertical’ = up and down bars, ‘horizontal’ = side to side bars
this.barWidth = null
Width of the bar in pixels (auto by devaul).
this.shadowOffset = 2
offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
this.shadowDepth = 5
number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
this.shadowAlpha = 0.08
transparency of the shadow (0 = transparent, 1 = opaque)
this.waterfall = false
true to enable waterfall plot.
this.groups = 1
group bars into this many groups
this.varyBarColor = false
true to color each bar of a series separately rather than have every bar of a given series the same color.
this.highlightMouseOver = true
True to highlight slice when moused over.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a slice.
this.highlightColors = []
an array of colors to use when highlighting a bar.
this.transposedData = true
NOT IMPLEMENTED YET.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-blockRenderer-js.html b/common/chart/docs/files/plugins/jqplot-blockRenderer-js.html new file mode 100644 index 0000000..0e81e1c --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-blockRenderer-js.html @@ -0,0 +1,53 @@ + + +$.jqplot.BlockRenderer + + + + + + + + + +

Plugin renderer to draw a x-y block chart.  A Block chart has data points displayed as colored squares with a text label inside.  Data must be supplied in the form:

[[x1, y1, "label 1", {css}], [x2, y2, "label 2", {css}], ...]

The label and css object are optional.  If the label is ommitted, the box will collapse unless a css height and/or width is specified.

The css object is an object specifying css properties such as:

{background:'#4f98a5', border:'3px solid gray', padding:'1px'}

Note that css properties specified with the data point override defaults specified with the series.

Summary
$.jqplot.BlockRendererPlugin renderer to draw a x-y block chart.
Properties
cssdefault css styles that will be applied to all data blocks.
escapeHtmltrue to escape html in the box label.
insertBreakstrue to turn spaces in data block label into html breaks <br />.
varyBlockColorstrue to vary the color of each block in this series according to the seriesColors array.
Methods
moveBlockMoves an individual block.
+ +

Properties

+ +

css

this.css = {padding:'2px', border:'1px solid #999', textAlign:'center'}

default css styles that will be applied to all data blocks. these values will be overridden by css styles supplied with the individulal data points.

+ +

escapeHtml

this.escapeHtml = false

true to escape html in the box label.

+ +

insertBreaks

this.insertBreaks = true

true to turn spaces in data block label into html breaks <br />.

+ +

varyBlockColors

this.varyBlockColors = false

true to vary the color of each block in this series according to the seriesColors array.  False to set each block to the color specified on this series.  This has no effect if a css background color option is specified in the renderer css options.

+ +

Methods

+ +

moveBlock

this.moveBlock = function (idx,
x,
y,
duration)

Moves an individual block.  More efficient than redrawing the whole series by calling plot.drawSeries().  Properties: idx - the 0 based index of the block or point in this series. x - the x coordinate in data units (value on x axis) to move the block to. y - the y coordinate in data units (value on the y axis) to move the block to. duration - optional parameter to create an animated movement.  Can be a number (higher is slower animation) or ‘fast’, ‘normal’ or ‘slow’.  If not provided, the element is moved without any animation.

+ +
+ + + + + + + + + + +
this.css = {padding:'2px', border:'1px solid #999', textAlign:'center'}
default css styles that will be applied to all data blocks.
this.escapeHtml = false
true to escape html in the box label.
this.insertBreaks = true
true to turn spaces in data block label into html breaks br /.
this.varyBlockColors = false
true to vary the color of each block in this series according to the seriesColors array.
this.moveBlock = function (idx,
x,
y,
duration)
Moves an individual block.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-bubbleRenderer-js.html b/common/chart/docs/files/plugins/jqplot-bubbleRenderer-js.html new file mode 100644 index 0000000..bc4657c --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-bubbleRenderer-js.html @@ -0,0 +1,71 @@ + + +$.jqplot.BubbleRenderer + + + + + + + + + +

Plugin renderer to draw a bubble chart.  A Bubble chart has data points displayed as colored circles with an optional text label inside.  To use the bubble renderer, you must include the bubble renderer like:

<script language="javascript" type="text/javascript" src="../src/plugins/jqplot.bubbleRenderer.js"></script>

Data must be supplied in the form:

[[x1, y1, r1, <label or {label:'text', color:color}>], ...]

where the label or options object is optional.

Note that all bubble colors will be the same unless the “varyBubbleColors” option is set to true.  Colors can be specified in the data array or in the seriesColors array option on the series.  If no colors are defined, the default jqPlot series of 16 colors are used.  Colors are automatically cycled around again if there are more bubbles than colors.

Bubbles are autoscaled by default to fit within the chart area while maintaining relative sizes.  If the “autoscaleBubbles” option is set to false, the r(adius) values in the data array a treated as literal pixel values for the radii of the bubbles.

Properties are passed into the bubble renderer in the rendererOptions object of the series options like:

seriesDefaults: {
+    renderer: $.jqplot.BubbleRenderer,
+    rendererOptions: {
+        bubbleAlpha: 0.7,
+        varyBubbleColors: false
+    }
+}
Summary
$.jqplot.BubbleRendererPlugin renderer to draw a bubble chart.
Properties
varyBubbleColorsTrue to vary the color of each bubble in this series according to the seriesColors array.
autoscaleBubblesTrue to scale the bubble radius based on plot size.
autoscaleMultiplierMultiplier the bubble size if autoscaleBubbles is true.
autoscalePointsFactorFactor which decreases bubble size based on how many bubbles on on the chart.
escapeHtmlTrue to escape html in bubble label text.
highlightMouseOverTrue to highlight bubbles when moused over.
highlightMouseDownTrue to highlight when a mouse button is pressed over a bubble.
highlightColorsAn array of colors to use when highlighting a slice.
bubbleAlphaAlpha transparency to apply to all bubbles in this series.
highlightAlphaAlpha transparency to apply when highlighting bubble.
bubbleGradientsTrue to color the bubbles with gradient fills instead of flat colors.
showLabelsTrue to show labels on bubbles (if any), false to not show.
+ +

Properties

+ +

varyBubbleColors

this.varyBubbleColors = true

True to vary the color of each bubble in this series according to the seriesColors array.  False to set each bubble to the color specified on this series.  This has no effect if a css background color option is specified in the renderer css options.

+ +

autoscaleBubbles

this.autoscaleBubbles = true

True to scale the bubble radius based on plot size.  False will use the radius value as provided as a raw pixel value for bubble radius.

+ +

autoscaleMultiplier

this.autoscaleMultiplier = 1.0

Multiplier the bubble size if autoscaleBubbles is true.

+ +

autoscalePointsFactor

this.autoscalePointsFactor = -0.07

Factor which decreases bubble size based on how many bubbles on on the chart.  0 means no adjustment for number of bubbles.  Negative values will decrease size of bubbles as more bubbles are added.  Values between 0 and -0.2 should work well.

+ +

escapeHtml

this.escapeHtml = true

True to escape html in bubble label text.

+ +

highlightMouseOver

this.highlightMouseOver = true

True to highlight bubbles when moused over.  This must be false to enable highlightMouseDown to highlight when clicking on a slice.

+ +

highlightMouseDown

this.highlightMouseDown = false

True to highlight when a mouse button is pressed over a bubble.  This will be disabled if highlightMouseOver is true.

+ +

highlightColors

this.highlightColors = []

An array of colors to use when highlighting a slice.  Calculated automatically if not supplied.

+ +

bubbleAlpha

this.bubbleAlpha = 1.0

Alpha transparency to apply to all bubbles in this series.

+ +

highlightAlpha

this.highlightAlpha = null

Alpha transparency to apply when highlighting bubble.  Set to value of bubbleAlpha by default.

+ +

bubbleGradients

this.bubbleGradients = false

True to color the bubbles with gradient fills instead of flat colors.  NOT AVAILABLE IN IE due to lack of excanvas support for radial gradient fills. will be ignored in IE.

+ +

showLabels

this.showLabels = true

True to show labels on bubbles (if any), false to not show.

+ +
+ + + + + + + + + + +
this.varyBubbleColors = true
True to vary the color of each bubble in this series according to the seriesColors array.
this.autoscaleBubbles = true
True to scale the bubble radius based on plot size.
this.autoscaleMultiplier = 1.0
Multiplier the bubble size if autoscaleBubbles is true.
this.autoscalePointsFactor = -0.07
Factor which decreases bubble size based on how many bubbles on on the chart.
this.escapeHtml = true
True to escape html in bubble label text.
this.highlightMouseOver = true
True to highlight bubbles when moused over.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a bubble.
this.highlightColors = []
An array of colors to use when highlighting a slice.
this.bubbleAlpha = 1.0
Alpha transparency to apply to all bubbles in this series.
this.highlightAlpha = null
Alpha transparency to apply when highlighting bubble.
this.bubbleGradients = false
True to color the bubbles with gradient fills instead of flat colors.
this.showLabels = true
True to show labels on bubbles (if any), false to not show.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-canvasAxisLabelRenderer-js.html b/common/chart/docs/files/plugins/jqplot-canvasAxisLabelRenderer-js.html new file mode 100644 index 0000000..4d3fe01 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-canvasAxisLabelRenderer-js.html @@ -0,0 +1,63 @@ + + +$.jqplot.CanvasAxisLabelRenderer + + + + + + + + + +

Renderer to draw axis labels with a canvas element to support advanced featrues such as rotated text.  This renderer uses a separate rendering engine to draw the text on the canvas.  Two modes of rendering the text are available.  If the browser has native font support for canvas fonts (currently Mozila 3.5 and Safari 4), you can enable text rendering with the canvas fillText method.  You do so by setting the “enableFontSupport” option to true.

Browsers lacking native font support will have the text drawn on the canvas using the Hershey font metrics.  Even if the “enableFontSupport” option is true non-supporting browsers will still render with the Hershey font.

Summary
$.jqplot.CanvasAxisLabelRendererRenderer to draw axis labels with a canvas element to support advanced featrues such as rotated text.
Properties
angleangle of text, measured clockwise from x axis.
showwhether or not to show the tick (mark and label).
showLabelwhether or not to show the label.
labellabel for the axis.
fontFamilyCSS spec for the font-family css attribute.
fontSizeCSS spec for font size.
fontWeight
fontStretchMultiplier to condense or expand font width.
textColorcss spec for the color attribute.
enableFontSupporttrue to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
pt2pxPoint to pixel scaling factor, used for computing height of bounding box around a label.
+ +

Properties

+ +

angle

this.angle = 0

angle of text, measured clockwise from x axis.

+ +

show

this.show = true

whether or not to show the tick (mark and label).

+ +

showLabel

this.showLabel = true

whether or not to show the label.

+ +

label

this.label = ''

label for the axis.

+ +

fontFamily

this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif'

CSS spec for the font-family css attribute.  Applies only to browsers supporting native font rendering in the canvas tag.  Currently Mozilla 3.5 and Safari 4.

+ +

fontSize

this.fontSize = '11pt'

CSS spec for font size.

+ +

fontWeight

this.fontWeight = 'normal'
CSS spec for fontWeight: normal, bold, bolder, lighter or a number 100900
+ +

fontStretch

this.fontStretch = 1.0

Multiplier to condense or expand font width.  Applies only to browsers which don’t support canvas native font rendering.

+ +

textColor

this.textColor = '#666666'

css spec for the color attribute.

+ +

enableFontSupport

this.enableFontSupport = true

true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.  If true, label will be drawn with canvas tag native support for fonts.  If false, label will be drawn with Hershey font metrics.

+ +

pt2px

this.pt2px = null

Point to pixel scaling factor, used for computing height of bounding box around a label.  The labels text renderer has a default setting of 1.4, which should be suitable for most fonts.  Leave as null to use default.  If tops of letters appear clipped, increase this.  If bounding box seems too big, decrease.  This is an issue only with the native font renderering capabilities of Mozilla 3.5 and Safari 4 since they do not provide a method to determine the font height.

+ +
+ + + + + + + + + + +
this.angle = 0
angle of text, measured clockwise from x axis.
this.show = true
whether or not to show the tick (mark and label).
this.showLabel = true
whether or not to show the label.
this.label = ''
label for the axis.
this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif'
CSS spec for the font-family css attribute.
this.fontSize = '11pt'
CSS spec for font size.
this.fontWeight = 'normal'
this.fontStretch = 1.0
Multiplier to condense or expand font width.
this.textColor = '#666666'
css spec for the color attribute.
this.enableFontSupport = true
true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
this.pt2px = null
Point to pixel scaling factor, used for computing height of bounding box around a label.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-canvasAxisTickRenderer-js.html b/common/chart/docs/files/plugins/jqplot-canvasAxisTickRenderer-js.html new file mode 100644 index 0000000..bcd03d7 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-canvasAxisTickRenderer-js.html @@ -0,0 +1,79 @@ + + +$.jqplot.CanvasAxisTickRenderer + + + + + + + + + +

Renderer to draw axis ticks with a canvas element to support advanced featrues such as rotated text.  This renderer uses a separate rendering engine to draw the text on the canvas.  Two modes of rendering the text are available.  If the browser has native font support for canvas fonts (currently Mozila 3.5 and Safari 4), you can enable text rendering with the canvas fillText method.  You do so by setting the “enableFontSupport” option to true.

Browsers lacking native font support will have the text drawn on the canvas using the Hershey font metrics.  Even if the “enableFontSupport” option is true non-supporting browsers will still render with the Hershey font.

Summary
$.jqplot.CanvasAxisTickRendererRenderer to draw axis ticks with a canvas element to support advanced featrues such as rotated text.
Properties
marktick mark on the axis.
showMarkwhether or not to show the mark on the axis.
showGridlinewhether or not to draw the gridline on the grid at this tick.
isMinorTickif this is a minor tick.
angleangle of text, measured clockwise from x axis.
markSizeLength of the tick marks in pixels.
showwhether or not to show the tick (mark and label).
showLabelwhether or not to show the label.
labelPosition‘auto’, ‘start’, ‘middle’ or ‘end’.
formatterA class of a formatter for the tick text.
formatStringstring passed to the formatter.
prefixString to prepend to the tick label.
fontFamilycss spec for the font-family css attribute.
fontSizeCSS spec for font size.
fontWeightCSS spec for fontWeight
fontStretchMultiplier to condense or expand font width.
textColorcss spec for the color attribute.
enableFontSupporttrue to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
pt2pxPoint to pixel scaling factor, used for computing height of bounding box around a label.
+ +

Properties

+ +

mark

this.mark = 'outside'

tick mark on the axis.  One of ‘inside’, ‘outside’, ‘cross’, ‘’ or null.

+ +

showMark

this.showMark = true

whether or not to show the mark on the axis.

+ +

showGridline

this.showGridline = true

whether or not to draw the gridline on the grid at this tick.

+ +

isMinorTick

this.isMinorTick = false

if this is a minor tick.

+ +

angle

this.angle = 0

angle of text, measured clockwise from x axis.

+ +

markSize

this.markSize = 4

Length of the tick marks in pixels.  For ‘cross’ style, length will be stoked above and below axis, so total length will be twice this.

+ +

show

this.show = true

whether or not to show the tick (mark and label).

+ +

showLabel

this.showLabel = true

whether or not to show the label.

+ +

labelPosition

this.labelPosition = 'auto'

’auto’, ‘start’, ‘middle’ or ‘end’.  Whether tick label should be positioned so the start, middle, or end of the tick mark.

+ +

formatter

this.formatter = $.jqplot.DefaultTickFormatter

A class of a formatter for the tick text.  The default $.jqplot.DefaultTickFormatter uses sprintf.

+ +

formatString

this.formatString = ''

string passed to the formatter.

+ +

prefix

this.prefix = ''

String to prepend to the tick label.  Prefix is prepended to the formatted tick label.

+ +

fontFamily

this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif'

css spec for the font-family css attribute.

+ +

fontSize

this.fontSize = '10pt'

CSS spec for font size.

+ +

fontWeight

this.fontWeight = 'normal'

CSS spec for fontWeight

+ +

fontStretch

this.fontStretch = 1.0

Multiplier to condense or expand font width.  Applies only to browsers which don’t support canvas native font rendering.

+ +

textColor

this.textColor = '#666666'

css spec for the color attribute.

+ +

enableFontSupport

this.enableFontSupport = true

true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.  If true, tick label will be drawn with canvas tag native support for fonts.  If false, tick label will be drawn with Hershey font metrics.

+ +

pt2px

this.pt2px = null

Point to pixel scaling factor, used for computing height of bounding box around a label.  The labels text renderer has a default setting of 1.4, which should be suitable for most fonts.  Leave as null to use default.  If tops of letters appear clipped, increase this.  If bounding box seems too big, decrease.  This is an issue only with the native font renderering capabilities of Mozilla 3.5 and Safari 4 since they do not provide a method to determine the font height.

+ +
+ + + + + + + + + + +
this.mark = 'outside'
tick mark on the axis.
this.showMark = true
whether or not to show the mark on the axis.
this.showGridline = true
whether or not to draw the gridline on the grid at this tick.
this.isMinorTick = false
if this is a minor tick.
this.angle = 0
angle of text, measured clockwise from x axis.
this.markSize = 4
Length of the tick marks in pixels.
this.show = true
whether or not to show the tick (mark and label).
this.showLabel = true
whether or not to show the label.
this.labelPosition = 'auto'
‘auto’, ‘start’, ‘middle’ or ‘end’.
this.formatter = $.jqplot.DefaultTickFormatter
A class of a formatter for the tick text.
this.formatString = ''
string passed to the formatter.
this.prefix = ''
String to prepend to the tick label.
this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif'
css spec for the font-family css attribute.
this.fontSize = '10pt'
CSS spec for font size.
this.fontWeight = 'normal'
CSS spec for fontWeight
this.fontStretch = 1.0
Multiplier to condense or expand font width.
this.textColor = '#666666'
css spec for the color attribute.
this.enableFontSupport = true
true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
this.pt2px = null
Point to pixel scaling factor, used for computing height of bounding box around a label.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-canvasOverlay-js.html b/common/chart/docs/files/plugins/jqplot-canvasOverlay-js.html new file mode 100644 index 0000000..d778677 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-canvasOverlay-js.html @@ -0,0 +1,117 @@ + + +$.jqplot.CanvasOverlay + + + + + + + + + +
Summary
$.jqplot.CanvasOverlay
Properties
objects
nameOptional name for the overlay object.
showtrue to show (draw), false to not draw.
lineWidthWidth of the line.
lineCapType of ending placed on the line [‘round’, ‘butt’, ‘square’]
colorcolor of the line
shadowwhether or not to draw a shadow on the line
shadowAngleShadow angle in degrees
shadowOffsetShadow offset from line in pixels
shadowDepthNumber of times shadow is stroked, each stroke offset shadowOffset from the last.
shadowAlphaAlpha channel transparency of shadow.
xaxisX axis to use for positioning/scaling the line.
yaxisY axis to use for positioning/scaling the line.
showTooltipShow a tooltip with data point values.
showTooltipPrecisionControls how close to line cursor must be to show tooltip.
tooltipLocationWhere to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’
fadeTooltiptrue = fade in/out tooltip, flase = show/hide tooltip
tooltipFadeSpeed‘slow’, ‘def’, ‘fast’, or number of milliseconds.
tooltipOffsetPixel offset of tooltip from the highlight.
tooltipFormatStringFormat string passed the x and y values of the cursor on the line.
xminx value for the start of the line, null to scale to axis min.
xmaxx value for the end of the line, null to scale to axis max.
LineA straight line.
Properties
start[x, y] coordinates for the start of the line.
stop[x, y] coordinates for the end of the line.
HorizontalLineA straight horizontal line.
Properties
yy value to position the line
xminx value for the start of the line, null to scale to axis min.
xmaxx value for the end of the line, null to scale to axis max.
DashedHorizontalLineA straight dashed horizontal line.
Properties
dashPatternArray of line, space settings in pixels.
VerticalLineA straight vertical line.
DashedVerticalLineA straight dashed vertical line.
Properties
dashPatternArray of line, space settings in pixels.
+ +

Properties

+ +

objects

this.objects = []
+ +

name

Optional name for the overlay object.  Can be later used to retrieve the object by name.

+ +

show

true to show (draw), false to not draw.

+ +

lineWidth

Width of the line.

+ +

lineCap

Type of ending placed on the line [‘round’, ‘butt’, ‘square’]

+ +

color

color of the line

+ +

shadow

whether or not to draw a shadow on the line

+ +

shadowAngle

Shadow angle in degrees

+ +

shadowOffset

Shadow offset from line in pixels

+ +

shadowDepth

Number of times shadow is stroked, each stroke offset shadowOffset from the last.

+ +

shadowAlpha

Alpha channel transparency of shadow.  0 = transparent.

+ +

xaxis

X axis to use for positioning/scaling the line.

+ +

yaxis

Y axis to use for positioning/scaling the line.

+ +

showTooltip

Show a tooltip with data point values.

+ +

showTooltipPrecision

Controls how close to line cursor must be to show tooltip.  Higher number = closer to line, lower number = farther from line.  1.0 = cursor must be over line.

+ +

tooltipLocation

Where to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’

+ +

fadeTooltip

true = fade in/out tooltip, flase = show/hide tooltip

+ +

tooltipFadeSpeed

’slow’, ‘def’, ‘fast’, or number of milliseconds.

+ +

tooltipOffset

Pixel offset of tooltip from the highlight.

+ +

tooltipFormatString

tooltipFormatString: '%d, %d' }

Format string passed the x and y values of the cursor on the line. e.g., ‘Dogs: %.2f, Cats: %d’.

+ +

xmin

x value for the start of the line, null to scale to axis min.

+ +

xmax

x value for the end of the line, null to scale to axis max.

+ +

Line

A straight line.

Summary
Properties
start[x, y] coordinates for the start of the line.
stop[x, y] coordinates for the end of the line.
+ +

Properties

+ +

start

[x, y] coordinates for the start of the line.

+ +

stop

stop: [] }

[x, y] coordinates for the end of the line.

+ +

HorizontalLine

A straight horizontal line.

Summary
Properties
yy value to position the line
xminx value for the start of the line, null to scale to axis min.
xmaxx value for the end of the line, null to scale to axis max.
+ +

Properties

+ +

y

y value to position the line

+ +

xmin

x value for the start of the line, null to scale to axis min.

+ +

xmax

x value for the end of the line, null to scale to axis max.

+ +

DashedHorizontalLine

A straight dashed horizontal line.

Summary
Properties
dashPatternArray of line, space settings in pixels.
+ +

Properties

+ +

dashPattern

dashPattern: [8,8] }

Array of line, space settings in pixels.  Default is 8 pixel of line, 8 pixel of space.  Note, limit to a 2 element array b/c of bug with higher order arrays.

+ +

VerticalLine

A straight vertical line.

+ +

DashedVerticalLine

A straight dashed vertical line.

Summary
Properties
dashPatternArray of line, space settings in pixels.
+ +

Properties

+ +

dashPattern

dashPattern: [8,8] }

Array of line, space settings in pixels.  Default is 8 pixel of line, 8 pixel of space.  Note, limit to a 2 element array b/c of bug with higher order arrays.

+ +
+ + + + + + + + + + +
this.objects = []
tooltipFormatString: '%d, %d' }
Format string passed the x and y values of the cursor on the line.
stop: [] }
[x, y] coordinates for the end of the line.
dashPattern: [8,8] }
Array of line, space settings in pixels.
dashPattern: [8,8] }
Array of line, space settings in pixels.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-categoryAxisRenderer-js.html b/common/chart/docs/files/plugins/jqplot-categoryAxisRenderer-js.html new file mode 100644 index 0000000..e080f66 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-categoryAxisRenderer-js.html @@ -0,0 +1,46 @@ + + +$.jqplot.CategoryAxisRenderer + + + + + + + + + +

A plugin for jqPlot to render a category style axis, with equal pixel spacing between y data values of a series.

To use this renderer, include the plugin in your source

<script type="text/javascript" language="javascript" src="plugins/jqplot.categoryAxisRenderer.js"></script>

and supply the appropriate options to your plot

{axes:{xaxis:{renderer:$.jqplot.CategoryAxisRenderer}}}
Summary
$.jqplot.CategoryAxisRendererA plugin for jqPlot to render a category style axis, with equal pixel spacing between y data values of a series.
Properties
sortMergedLabelsTrue to sort tick labels when labels are created by merging x axis values from multiple series.
tickRendererA class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
+ +

Properties

+ +

sortMergedLabels

this.sortMergedLabels = false

True to sort tick labels when labels are created by merging x axis values from multiple series.  That is, say you have two series like:

line1 = [[2006, 4],            [2008, 9], [2009, 16]];
+line2 = [[2006, 3], [2007, 7], [2008, 6]];

If no label array is specified, tick labels will be collected from the x values of the series.  With sortMergedLabels set to true, tick labels will be:

[2006, 2007, 2008, 2009]

With sortMergedLabels set to false, tick labels will be:

[2006, 2008, 2009, 2007]

Note, this property is specified on the renderOptions for the axes when creating a plot:

axes:{xaxis:{renderer:$.jqplot.CategoryAxisRenderer, rendererOptions:{sortMergedLabels:true}}}
+ +

tickRenderer

A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer. this.tickRenderer = $.jqplot.AxisTickRenderer; this.labelRenderer = $.jqplot.AxisLabelRenderer;

+ +
+ + + + + + + + + + +
this.sortMergedLabels = false
True to sort tick labels when labels are created by merging x axis values from multiple series.
A “tick” object showing the value of a tick/gridline on the plot.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-ciParser-js.html b/common/chart/docs/files/plugins/jqplot-ciParser-js.html new file mode 100644 index 0000000..1cacd93 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-ciParser-js.html @@ -0,0 +1,39 @@ + + +$.jqplot.ciParser + + + + + + + + + +

Data Renderer function which converts a custom JSON data object into jqPlot data format.  Set this as a callable on the jqplot dataRenderer plot option:

plot = $.jqplot('mychart', [data], { dataRenderer: $.jqplot.ciParser, ... });

Where data is an object in JSON format or a JSON encoded string conforming to the City Index API spec.

Note that calling the renderer function is handled internally by jqPlot.  The user does not have to call the function.  The parameters described below will automatically be passed to the ciParser function.

Parameters

dataJSON encoded string or object.
plotreference to jqPlot Plot object.

Returns

data array in jqPlot format.

+ +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-cursor-js.html b/common/chart/docs/files/plugins/jqplot-cursor-js.html new file mode 100644 index 0000000..e69c241 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-cursor-js.html @@ -0,0 +1,93 @@ + + +$.jqplot.Cursor + + + + + + + + + +

Plugin class representing the cursor as displayed on the plot.

Summary
$.jqplot.CursorPlugin class representing the cursor as displayed on the plot.
Properties
styleCSS spec for cursor style
showwhether to show the cursor or not.
showTooltipshow a cursor position tooltip.
followMouseTooltip follows the mouse, it is not at a fixed location.
tooltipLocationWhere to position tooltip.
tooltipOffsetPixel offset of tooltip from the grid boudaries or cursor center.
showTooltipGridPositionshow the grid pixel coordinates of the mouse.
showTooltipUnitPositionshow the unit (data) coordinates of the mouse.
showTooltipDataPositionUsed with showVerticalLine to show intersecting data points in the tooltip.
tooltipFormatStringsprintf format string for the tooltip.
useAxesFormattersUse the x and y axes formatters to format the text in the tooltip.
tooltipAxisGroupsShow position for the specified axes.
zoomEnable plot zooming.
looseZoomWill expand zoom range to provide more rounded tick values.
clickResetWill reset plot zoom if single click on plot without drag.
dblClickResetWill reset plot zoom if double click on plot without drag.
showVerticalLinedraw a vertical line across the plot which follows the cursor.
showHorizontalLinedraw a horizontal line across the plot which follows the cursor.
constrainZoomTo‘none’, ‘x’ or ‘y’
intersectionThresholdpixel distance from data point or marker to consider cursor lines intersecting with point.
showCursorLegendReplace the plot legend with an enhanced legend displaying intersection information.
cursorLegendFormatStringFormat string used in the cursor legend.
constrainOutsideZoomTrue to limit actual zoom area to edges of grid, even when zooming outside of plot area.
showTooltipOutsideZoomTrue will keep updating the tooltip when zooming of the grid.
methods
$.jqplot.Cursor.zoomProxylinks targetPlot to controllerPlot so that plot zooming of targetPlot will be controlled by zooming on the controllerPlot.
+ +

Properties

+ +

style

this.style = 'crosshair'

CSS spec for cursor style

+ +

show

this.show = $.jqplot.config.enablePlugins

whether to show the cursor or not.

+ +

showTooltip

this.showTooltip = true

show a cursor position tooltip.  Location of the tooltip will be controlled by followMouse and tooltipLocation.

+ +

followMouse

this.followMouse = false

Tooltip follows the mouse, it is not at a fixed location.  Tooltip will show on the grid at the location given by tooltipLocation, offset from the grid edge by tooltipOffset.

+ +

tooltipLocation

this.tooltipLocation = 'se'

Where to position tooltip.  If followMouse is true, this is relative to the cursor, otherwise, it is relative to the grid.  One of ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’

+ +

tooltipOffset

this.tooltipOffset = 6

Pixel offset of tooltip from the grid boudaries or cursor center.

+ +

showTooltipGridPosition

this.showTooltipGridPosition = false

show the grid pixel coordinates of the mouse.

+ +

showTooltipUnitPosition

this.showTooltipUnitPosition = true

show the unit (data) coordinates of the mouse.

+ +

showTooltipDataPosition

this.showTooltipDataPosition = false

Used with showVerticalLine to show intersecting data points in the tooltip.

+ +

tooltipFormatString

this.tooltipFormatString = '%.4P, %.4P'

sprintf format string for the tooltip.  Uses Ash Searle’s javascript sprintf implementation found here: http://hexmen.com/blog/2007/03/printf-sprintf/ See http://perldoc.perl.org/functions/sprintf.html for reference Note, if showTooltipDataPosition is true, the default tooltipFormatString will be set to the cursorLegendFormatString, not the default given here.

+ +

useAxesFormatters

this.useAxesFormatters = true

Use the x and y axes formatters to format the text in the tooltip.

+ +

tooltipAxisGroups

this.tooltipAxisGroups = []

Show position for the specified axes.  This is an array like [[‘xaxis’, ‘yaxis’], [‘xaxis’, ‘y2axis’]] Default is to compute automatically for all visible axes.

+ +

zoom

this.zoom = false

Enable plot zooming.

+ +

looseZoom

this.looseZoom = true

Will expand zoom range to provide more rounded tick values.  Works only with linear, log and date axes.

+ +

clickReset

this.clickReset = false

Will reset plot zoom if single click on plot without drag.

+ +

dblClickReset

this.dblClickReset = true

Will reset plot zoom if double click on plot without drag.

+ +

showVerticalLine

this.showVerticalLine = false

draw a vertical line across the plot which follows the cursor.  When the line is near a data point, a special legend and/or tooltip can be updated with the data values.

+ +

showHorizontalLine

this.showHorizontalLine = false

draw a horizontal line across the plot which follows the cursor.

+ +

constrainZoomTo

this.constrainZoomTo = 'none'

’none’, ‘x’ or ‘y’

+ +

intersectionThreshold

this.intersectionThreshold = 2

pixel distance from data point or marker to consider cursor lines intersecting with point.  If data point markers are not shown, this should be >= 1 or will often miss point intersections.

+ +

showCursorLegend

this.showCursorLegend = false

Replace the plot legend with an enhanced legend displaying intersection information.

+ +

cursorLegendFormatString

this.cursorLegendFormatString = $.jqplot.Cursor.cursorLegendFormatString

Format string used in the cursor legend.  If showTooltipDataPosition is true, this will also be the default format string used by tooltipFormatString.

+ +

constrainOutsideZoom

this.constrainOutsideZoom = true

True to limit actual zoom area to edges of grid, even when zooming outside of plot area.  That is, can’t zoom out by mousing outside plot.

+ +

showTooltipOutsideZoom

this.showTooltipOutsideZoom = false

True will keep updating the tooltip when zooming of the grid.

+ +

methods

+ +

$.jqplot.Cursor.zoomProxy

$.jqplot.Cursor.zoomProxy = function(targetPlot,
controllerPlot)

links targetPlot to controllerPlot so that plot zooming of targetPlot will be controlled by zooming on the controllerPlot. controllerPlot will not actually zoom, but acts as an overview plot.  Note, the zoom options must be set to true for zoomProxy to work.

+ +
+ + + + + + + + + + +
this.style = 'crosshair'
CSS spec for cursor style
this.show = $.jqplot.config.enablePlugins
whether to show the cursor or not.
this.showTooltip = true
show a cursor position tooltip.
this.followMouse = false
Tooltip follows the mouse, it is not at a fixed location.
this.tooltipLocation = 'se'
Where to position tooltip.
this.tooltipOffset = 6
Pixel offset of tooltip from the grid boudaries or cursor center.
this.showTooltipGridPosition = false
show the grid pixel coordinates of the mouse.
this.showTooltipUnitPosition = true
show the unit (data) coordinates of the mouse.
this.showTooltipDataPosition = false
Used with showVerticalLine to show intersecting data points in the tooltip.
this.tooltipFormatString = '%.4P, %.4P'
sprintf format string for the tooltip.
this.useAxesFormatters = true
Use the x and y axes formatters to format the text in the tooltip.
this.tooltipAxisGroups = []
Show position for the specified axes.
this.zoom = false
Enable plot zooming.
this.looseZoom = true
Will expand zoom range to provide more rounded tick values.
this.clickReset = false
Will reset plot zoom if single click on plot without drag.
this.dblClickReset = true
Will reset plot zoom if double click on plot without drag.
this.showVerticalLine = false
draw a vertical line across the plot which follows the cursor.
this.showHorizontalLine = false
draw a horizontal line across the plot which follows the cursor.
this.constrainZoomTo = 'none'
‘none’, ‘x’ or ‘y’
this.intersectionThreshold = 2
pixel distance from data point or marker to consider cursor lines intersecting with point.
this.showCursorLegend = false
Replace the plot legend with an enhanced legend displaying intersection information.
this.cursorLegendFormatString = $.jqplot.Cursor.cursorLegendFormatString
Format string used in the cursor legend.
this.constrainOutsideZoom = true
True to limit actual zoom area to edges of grid, even when zooming outside of plot area.
this.showTooltipOutsideZoom = false
True will keep updating the tooltip when zooming of the grid.
$.jqplot.Cursor.zoomProxy = function(targetPlot,
controllerPlot)
links targetPlot to controllerPlot so that plot zooming of targetPlot will be controlled by zooming on the controllerPlot.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-dateAxisRenderer-js.html b/common/chart/docs/files/plugins/jqplot-dateAxisRenderer-js.html new file mode 100644 index 0000000..08862f7 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-dateAxisRenderer-js.html @@ -0,0 +1,101 @@ + + +$.jqplot.DateAxisRenderer + + + + + + + + + +

A plugin for a jqPlot to render an axis as a series of date values.  This renderer has no options beyond those supplied by the Axis class.  It supplies its own tick formatter, so the tickOptions.formatter option should not be overridden.

Thanks to Ken Synder for his enhanced Date instance methods which are included with this code http://kendsnyder.com/sandbox/date/.

To use this renderer, include the plugin in your source

<script type="text/javascript" language="javascript" src="plugins/jqplot.dateAxisRenderer.js"></script>

and supply the appropriate options to your plot

{axes:{xaxis:{renderer:$.jqplot.DateAxisRenderer}}}

Dates can be passed into the axis in almost any recognizable value and will be parsed.  They will be rendered on the axis in the format specified by tickOptions.formatString.  e.g. tickOptions.formatString = ‘%Y-%m-%d’.

Accecptable format codes are:

Code    Result                  Description
+            == Years ==
+%Y      2008                Four-digit year
+%y      08                  Two-digit year
+            == Months ==
+%m      09                  Two-digit month
+%#m     9                   One or two-digit month
+%B      September           Full month name
+%b      Sep                 Abbreviated month name
+            == Days ==
+%d      05                  Two-digit day of month
+%#d     5                   One or two-digit day of month
+%e      5                   One or two-digit day of month
+%A      Sunday              Full name of the day of the week
+%a      Sun                 Abbreviated name of the day of the week
+%w      0                   Number of the day of the week (0 = Sunday, 6 = Saturday)
+%o      th                  The ordinal suffix string following the day of the month
+            == Hours ==
+%H      23                  Hours in 24-hour format (two digits)
+%#H     3                   Hours in 24-hour integer format (one or two digits)
+%I      11                  Hours in 12-hour format (two digits)
+%#I     3                   Hours in 12-hour integer format (one or two digits)
+%p      PM                  AM or PM
+            == Minutes ==
+%M      09                  Minutes (two digits)
+%#M     9                   Minutes (one or two digits)
+            == Seconds ==
+%S      02                  Seconds (two digits)
+%#S     2                   Seconds (one or two digits)
+%s      1206567625723       Unix timestamp (Seconds past 1970-01-01 00:00:00)
+            == Milliseconds ==
+%N      008                 Milliseconds (three digits)
+%#N     8                   Milliseconds (one to three digits)
+            == Timezone ==
+%O      360                 difference in minutes between local time and GMT
+%Z      Mountain Standard Time  Name of timezone as reported by browser
+%G      -06:00              Hours and minutes between GMT
+            == Shortcuts ==
+%F      2008-03-26          %Y-%m-%d
+%T      05:06:30            %H:%M:%S
+%X      05:06:30            %H:%M:%S
+%x      03/26/08            %m/%d/%y
+%D      03/26/08            %m/%d/%y
+%#c     Wed Mar 26 15:31:00 2008  %a %b %e %H:%M:%S %Y
+%v      3-Sep-2008          %e-%b-%Y
+%R      15:31               %H:%M
+%r      3:31:00 PM          %I:%M:%S %p
+            == Characters ==
+%n      \n                  Newline
+%t      \t                  Tab
+%%      %                   Percent Symbol
Summary
$.jqplot.DateAxisRendererA plugin for a jqPlot to render an axis as a series of date values.
Properties
tickRendererA class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
tickInsetControls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.
drawBaselineTrue to draw the axis baseline.
baselineWidthwidth of the baseline in pixels.
baselineColorCSS color spec for the baseline.
+ +

Properties

+ +

tickRenderer

A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer. this.tickRenderer = $.jqplot.AxisTickRenderer; this.labelRenderer = $.jqplot.AxisLabelRenderer;

+ +

tickInset

this.tickInset = 0

Controls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.  0 is no inset, 0.5 is one half a tick interval, 1 is a full tick interval, etc.

+ +

drawBaseline

this.drawBaseline = true

True to draw the axis baseline.

+ +

baselineWidth

this.baselineWidth = null

width of the baseline in pixels.

+ +

baselineColor

this.baselineColor = null

CSS color spec for the baseline.

+ +
+ + + + + + + + + + +
A “tick” object showing the value of a tick/gridline on the plot.
this.tickInset = 0
Controls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.
this.drawBaseline = true
True to draw the axis baseline.
this.baselineWidth = null
width of the baseline in pixels.
this.baselineColor = null
CSS color spec for the baseline.
An individual axis object.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-donutRenderer-js.html b/common/chart/docs/files/plugins/jqplot-donutRenderer-js.html new file mode 100644 index 0000000..6df519c --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-donutRenderer-js.html @@ -0,0 +1,98 @@ + + +$.jqplot.DonutRenderer + + + + + + + + + +

Plugin renderer to draw a donut chart. x values, if present, will be used as slice labels. y values give slice size.

To use this renderer, you need to include the donut renderer plugin, for example:

<script type="text/javascript" src="plugins/jqplot.donutRenderer.js"></script>

Properties described here are passed into the $.jqplot function as options on the series renderer.  For example:

plot2 = $.jqplot('chart2', [s1, s2], {
+    seriesDefaults: {
+        renderer:$.jqplot.DonutRenderer,
+        rendererOptions:{
+             sliceMargin: 2,
+             innerDiameter: 110,
+             startAngle: -90
+         }
+     }
+});

A donut plot will trigger events on the plot target according to user interaction.  All events return the event object, the series index, the point (slice) index, and the point data for the appropriate slice.

’jqplotDataMouseOver’triggered when user mouseing over a slice.
’jqplotDataHighlight’triggered the first time user mouses over a slice, if highlighting is enabled.
’jqplotDataUnhighlight’triggered when a user moves the mouse out of a highlighted slice.
’jqplotDataClick’triggered when the user clicks on a slice.
’jqplotDataRightClick’tiggered when the user right clicks on a slice if the “captureRightClick” option is set to true on the plot.
Summary
$.jqplot.DonutRendererPlugin renderer to draw a donut chart.
Properties
diameterOuter diameter of the donut, auto computed by default
innerDiameterInner diameter of the donut, auto calculated by default.
thicknessthickness of the donut, auto computed by default Overridden by if innerDiameter is specified.
paddingpadding between the donut and plot edges, legend, etc.
sliceMarginangular spacing between donut slices in degrees.
ringMarginpixel distance between rings, or multiple series in a donut plot.
filltrue or false, whether to fil the slices.
shadowOffsetoffset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
shadowAlphatransparency of the shadow (0 = transparent, 1 = opaque)
shadowDepthnumber of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
highlightMouseOverTrue to highlight slice when moused over.
highlightMouseDownTrue to highlight when a mouse button is pressed over a slice.
highlightColorsan array of colors to use when highlighting a slice.
dataLabelsEither ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
showDataLabelstrue to show data labels on slices.
dataLabelFormatStringFormat string for data labels.
dataLabelThreshold
dataLabelPositionFactorA Multiplier (0-1) of the pie radius which controls position of label on slice.
dataLabelNudgeNumber of pixels to slide the label away from (+) or toward (-) the center of the pie.
startAngleAngle to start drawing donut in degrees.
$.jqplot.DonutLegendRendererLegend Renderer specific to donut plots.
Properties
numberRowsMaximum number of rows in the legend.
numberColumnsMaximum number of columns in the legend.
+ +

Properties

+ +

diameter

this.diameter = null

Outer diameter of the donut, auto computed by default

+ +

innerDiameter

this.innerDiameter = null

Inner diameter of the donut, auto calculated by default.  If specified will override thickness value.

+ +

thickness

this.thickness = null

thickness of the donut, auto computed by default Overridden by if innerDiameter is specified.

+ +

padding

this.padding = 20

padding between the donut and plot edges, legend, etc.

+ +

sliceMargin

this.sliceMargin = 0

angular spacing between donut slices in degrees.

+ +

ringMargin

this.ringMargin = null

pixel distance between rings, or multiple series in a donut plot. null will compute ringMargin based on sliceMargin.

+ +

fill

this.fill = true

true or false, whether to fil the slices.

+ +

shadowOffset

this.shadowOffset = 2

offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.

+ +

shadowAlpha

this.shadowAlpha = 0.07

transparency of the shadow (0 = transparent, 1 = opaque)

+ +

shadowDepth

this.shadowDepth = 5

number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.

+ +

highlightMouseOver

this.highlightMouseOver = true

True to highlight slice when moused over.  This must be false to enable highlightMouseDown to highlight when clicking on a slice.

+ +

highlightMouseDown

this.highlightMouseDown = false

True to highlight when a mouse button is pressed over a slice.  This will be disabled if highlightMouseOver is true.

+ +

highlightColors

this.highlightColors = []

an array of colors to use when highlighting a slice.

+ +

dataLabels

this.dataLabels = 'percent'

Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.  Defaults to percentage of each pie slice.

+ +

showDataLabels

this.showDataLabels = false

true to show data labels on slices.

+ +

dataLabelFormatString

this.dataLabelFormatString = null

Format string for data labels.  If none, ‘%s’ is used for “label” and for arrays, ‘%d’ for value and ‘%d%%’ for percentage.

+ +

dataLabelThreshold

this.dataLabelThreshold = 3
Threshhold in percentage (0100) of pie area, below which no label will be displayed.  This applies to all label types, not just to percentage labels.
+ +

dataLabelPositionFactor

this.dataLabelPositionFactor = 0.4

A Multiplier (0-1) of the pie radius which controls position of label on slice.  Increasing will slide label toward edge of pie, decreasing will slide label toward center of pie.

+ +

dataLabelNudge

this.dataLabelNudge = 0

Number of pixels to slide the label away from (+) or toward (-) the center of the pie.

+ +

startAngle

this.startAngle = 0

Angle to start drawing donut in degrees.  According to orientation of canvas coordinate system: 0 = on the positive x axis -90 = on the positive y axis.  90 = on the negaive y axis.  180 or - 180 = on the negative x axis.

+ +

$.jqplot.DonutLegendRenderer

Legend Renderer specific to donut plots.  Set by default when user creates a donut plot.

Summary
Properties
numberRowsMaximum number of rows in the legend.
numberColumnsMaximum number of columns in the legend.
+ +

Properties

+ +

numberRows

this.numberRows = null

Maximum number of rows in the legend.  0 or null for unlimited.

+ +

numberColumns

this.numberColumns = null

Maximum number of columns in the legend.  0 or null for unlimited.

+ +
+ + + + + + + + + + +
this.diameter = null
Outer diameter of the donut, auto computed by default
this.innerDiameter = null
Inner diameter of the donut, auto calculated by default.
this.thickness = null
thickness of the donut, auto computed by default Overridden by if innerDiameter is specified.
this.padding = 20
padding between the donut and plot edges, legend, etc.
this.sliceMargin = 0
angular spacing between donut slices in degrees.
this.ringMargin = null
pixel distance between rings, or multiple series in a donut plot.
this.fill = true
true or false, whether to fil the slices.
this.shadowOffset = 2
offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
this.shadowAlpha = 0.07
transparency of the shadow (0 = transparent, 1 = opaque)
this.shadowDepth = 5
number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
this.highlightMouseOver = true
True to highlight slice when moused over.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a slice.
this.highlightColors = []
an array of colors to use when highlighting a slice.
this.dataLabels = 'percent'
Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
this.showDataLabels = false
true to show data labels on slices.
this.dataLabelFormatString = null
Format string for data labels.
this.dataLabelThreshold = 3
this.dataLabelPositionFactor = 0.4
A Multiplier (0-1) of the pie radius which controls position of label on slice.
this.dataLabelNudge = 0
Number of pixels to slide the label away from (+) or toward (-) the center of the pie.
this.startAngle = 0
Angle to start drawing donut in degrees.
this.numberRows = null
Maximum number of rows in the legend.
this.numberColumns = null
Maximum number of columns in the legend.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-dragable-js.html b/common/chart/docs/files/plugins/jqplot-dragable-js.html new file mode 100644 index 0000000..060d6b8 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-dragable-js.html @@ -0,0 +1,45 @@ + + +$.jqplot.Dragable + + + + + + + + + +

Plugin to make plotted points dragable by the user.

Summary
$.jqplot.DragablePlugin to make plotted points dragable by the user.
Properties
colorCSS color spec for the dragged point (and adjacent line segment or bar).
constrainToConstrain dragging motion to an axis or to none.
+ +

Properties

+ +

color

this.color

CSS color spec for the dragged point (and adjacent line segment or bar).

+ +

constrainTo

this.constrainTo = 'none'

Constrain dragging motion to an axis or to none.  Allowable values are ‘none’, ‘x’, ‘y’

+ +
+ + + + + + + + + + +
this.color
CSS color spec for the dragged point (and adjacent line segment or bar).
this.constrainTo = 'none'
Constrain dragging motion to an axis or to none.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-enhancedLegendRenderer-js.html b/common/chart/docs/files/plugins/jqplot-enhancedLegendRenderer-js.html new file mode 100644 index 0000000..82d7755 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-enhancedLegendRenderer-js.html @@ -0,0 +1,51 @@ + + +D:\jq\jqplot\build\plugins\jqplot.enhancedLegendRenderer.js + + + + + + + + + +
Summary
jqplot.enhancedLegendRenderer.js
Properties
numberRowsMaximum number of rows in the legend.
numberColumnsMaximum number of columns in the legend.
seriesTogglefalse to not enable series on/off toggling on the legend.
seriesToggleReplotTrue to replot the chart after toggling series on/off.
disableIEFadingtrue to toggle series with a show/hide method only and not allow fading in/out.
+ +

Properties

+ +

numberRows

this.numberRows = null

Maximum number of rows in the legend.  0 or null for unlimited.

+ +

numberColumns

this.numberColumns = null

Maximum number of columns in the legend.  0 or null for unlimited.

+ +

seriesToggle

this.seriesToggle = 'normal'

false to not enable series on/off toggling on the legend. true or a fadein/fadeout speed (number of milliseconds or ‘fast’, ‘normal’, ‘slow’) to enable show/hide of series on click of legend item.

+ +

seriesToggleReplot

this.seriesToggleReplot = false

True to replot the chart after toggling series on/off.  This will set the series show property to false.  This allows for rescaling or other maniplation of chart.  Set to an options object (e.g.  {resetAxes: true}) for replot options.

+ +

disableIEFading

this.disableIEFading = true

true to toggle series with a show/hide method only and not allow fading in/out.  This is to overcome poor performance of fade in some versions of IE.

+ +
+ + + + + + + + + + +
this.numberRows = null
Maximum number of rows in the legend.
this.numberColumns = null
Maximum number of columns in the legend.
this.seriesToggle = 'normal'
false to not enable series on/off toggling on the legend.
this.seriesToggleReplot = false
True to replot the chart after toggling series on/off.
this.disableIEFading = true
true to toggle series with a show/hide method only and not allow fading in/out.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-funnelRenderer-js.html b/common/chart/docs/files/plugins/jqplot-funnelRenderer-js.html new file mode 100644 index 0000000..9948876 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-funnelRenderer-js.html @@ -0,0 +1,87 @@ + + +$.jqplot.FunnelRenderer + + + + + + + + + +

Plugin renderer to draw a funnel chart. x values, if present, will be used as labels. y values give area size.

Funnel charts will draw a single series only.

To use this renderer, you need to include the funnel renderer plugin, for example:

<script type="text/javascript" src="plugins/jqplot.funnelRenderer.js"></script>

Properties described here are passed into the $.jqplot function as options on the series renderer.  For example:

plot2 = $.jqplot('chart2', [s1, s2], {
+    seriesDefaults: {
+        renderer:$.jqplot.FunnelRenderer,
+        rendererOptions:{
+             sectionMargin: 12,
+             widthRatio: 0.3
+         }
+     }
+});

IMPORTANT

The funnel renderer will reorder data in descending order so the largest value in the data set is first and displayed on top of the funnel.  Data will then be displayed in descending order down the funnel.  The area of each funnel section will correspond to the value of each data point relative to the sum of all values.  That is section area is proportional to section value divided by sum of all section values.

If your data is not in descending order when passed into the plot, it will be reordered when stored in the series.data property.  A copy of the unordered data is kept in the series._unorderedData property.

A funnel plot will trigger events on the plot target according to user interaction.  All events return the event object, the series index, the point (section) index, and the point data for the appropriate section.  Note the point index will referr to the ordered data, not the original unordered data.

’jqplotDataMouseOver’triggered when mousing over a section.
’jqplotDataHighlight’triggered the first time user mouses over a section, if highlighting is enabled.
’jqplotDataUnhighlight’triggered when a user moves the mouse out of a highlighted section.
’jqplotDataClick’triggered when the user clicks on a section.
’jqplotDataRightClick’tiggered when the user right clicks on a section if the “captureRightClick” option is set to true on the plot.
Summary
$.jqplot.FunnelRendererPlugin renderer to draw a funnel chart.
Properties
paddingpadding between the funnel and plot edges, legend, etc.
sectionMarginspacing between funnel sections in pixels.
filltrue or false, whether to fill the areas.
shadowOffsetoffset of the shadow from the area and offset of each succesive stroke of the shadow from the last.
shadowAlphatransparency of the shadow (0 = transparent, 1 = opaque)
shadowDepthnumber of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
highlightMouseOverTrue to highlight area when moused over.
highlightMouseDownTrue to highlight when a mouse button is pressed over a area.
highlightColorsarray of colors to use when highlighting an area.
widthRatioThe ratio of the width of the top of the funnel to the bottom.
lineWidthwidth of line if areas are stroked and not filled.
dataLabelsEither ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
showDataLabelstrue to show data labels on slices.
dataLabelFormatStringFormat string for data labels.
dataLabelThreshold
$.jqplot.FunnelLegendRendererLegend Renderer specific to funnel plots.
Properties
numberRowsMaximum number of rows in the legend.
numberColumnsMaximum number of columns in the legend.
+ +

Properties

+ +

padding

this.padding = {top: 20, right: 20, bottom: 20, left: 20}

padding between the funnel and plot edges, legend, etc.

+ +

sectionMargin

this.sectionMargin = 6

spacing between funnel sections in pixels.

+ +

fill

this.fill = true

true or false, whether to fill the areas.

+ +

shadowOffset

this.shadowOffset = 2

offset of the shadow from the area and offset of each succesive stroke of the shadow from the last.

+ +

shadowAlpha

this.shadowAlpha = 0.07

transparency of the shadow (0 = transparent, 1 = opaque)

+ +

shadowDepth

this.shadowDepth = 5

number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.

+ +

highlightMouseOver

this.highlightMouseOver = true

True to highlight area when moused over.  This must be false to enable highlightMouseDown to highlight when clicking on a area.

+ +

highlightMouseDown

this.highlightMouseDown = false

True to highlight when a mouse button is pressed over a area.  This will be disabled if highlightMouseOver is true.

+ +

highlightColors

this.highlightColors = []

array of colors to use when highlighting an area.

+ +

widthRatio

this.widthRatio = 0.2

The ratio of the width of the top of the funnel to the bottom. a ratio of 0 will make an upside down pyramid.

+ +

lineWidth

this.lineWidth = 2

width of line if areas are stroked and not filled.

+ +

dataLabels

this.dataLabels = 'percent'

Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.  Defaults to percentage of each pie slice.

+ +

showDataLabels

this.showDataLabels = false

true to show data labels on slices.

+ +

dataLabelFormatString

this.dataLabelFormatString = null

Format string for data labels.  If none, ‘%s’ is used for “label” and for arrays, ‘%d’ for value and ‘%d%%’ for percentage.

+ +

dataLabelThreshold

this.dataLabelThreshold = 3
Threshhold in percentage (0100) of pie area, below which no label will be displayed.  This applies to all label types, not just to percentage labels.
+ +

$.jqplot.FunnelLegendRenderer

Legend Renderer specific to funnel plots.  Set by default when the user creates a funnel plot.

Summary
Properties
numberRowsMaximum number of rows in the legend.
numberColumnsMaximum number of columns in the legend.
+ +

Properties

+ +

numberRows

this.numberRows = null

Maximum number of rows in the legend.  0 or null for unlimited.

+ +

numberColumns

this.numberColumns = null

Maximum number of columns in the legend.  0 or null for unlimited.

+ +
+ + + + + + + + + + +
this.padding = {top: 20, right: 20, bottom: 20, left: 20}
padding between the funnel and plot edges, legend, etc.
this.sectionMargin = 6
spacing between funnel sections in pixels.
this.fill = true
true or false, whether to fill the areas.
this.shadowOffset = 2
offset of the shadow from the area and offset of each succesive stroke of the shadow from the last.
this.shadowAlpha = 0.07
transparency of the shadow (0 = transparent, 1 = opaque)
this.shadowDepth = 5
number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
this.highlightMouseOver = true
True to highlight area when moused over.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a area.
this.highlightColors = []
array of colors to use when highlighting an area.
this.widthRatio = 0.2
The ratio of the width of the top of the funnel to the bottom.
this.lineWidth = 2
width of line if areas are stroked and not filled.
this.dataLabels = 'percent'
Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
this.showDataLabels = false
true to show data labels on slices.
this.dataLabelFormatString = null
Format string for data labels.
this.dataLabelThreshold = 3
this.numberRows = null
Maximum number of rows in the legend.
this.numberColumns = null
Maximum number of columns in the legend.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-highlighter-js.html b/common/chart/docs/files/plugins/jqplot-highlighter-js.html new file mode 100644 index 0000000..2d820e0 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-highlighter-js.html @@ -0,0 +1,80 @@ + + +$.jqplot.Highlighter + + + + + + + + + +

Plugin which will highlight data points when they are moused over.

To use this plugin, include the js file in your source:

<script type="text/javascript" src="plugins/jqplot.highlighter.js"></script>

A tooltip providing information about the data point is enabled by default.  To disable the tooltip, set “showTooltip” to false.

You can control what data is displayed in the tooltip with various options.  The “tooltipAxes” option controls whether the x, y or both data values are displayed.

Some chart types (e.g. hi-low-close) have more than one y value per data point.  To display the additional values in the tooltip, set the “yvalues” option to the desired number of y values present (3 for a hlc chart).

By default, data values will be formatted with the same formatting specifiers as used to format the axis ticks.  A custom format code can be supplied with the tooltipFormatString option.  This will apply to all values in the tooltip.

For more complete control, the “formatString” option can be set.  This Allows conplete control over tooltip formatting.  Values are passed to the format string in an order determined by the “tooltipAxes” and “yvalues” options.  So, if you have a hi-low-close chart and you just want to display the hi-low-close values in the tooltip, you could set a formatString like:

highlighter: {
+    tooltipAxes: 'y',
+    yvalues: 3,
+    formatString:'<table class="jqplot-highlighter">
+        <tr><td>hi:</td><td>%s</td></tr>
+        <tr><td>low:</td><td>%s</td></tr>
+        <tr><td>close:</td><td>%s</td></tr></table>'
+}
Summary
$.jqplot.HighlighterPlugin which will highlight data points when they are moused over.
Properties
showtrue to show the highlight.
markerRendererRenderer used to draw the marker of the highlighted point.
showMarkertrue to show the marker
lineWidthAdjustPixels to add to the lineWidth of the highlight.
sizeAdjustPixels to add to the overall size of the highlight.
showTooltipShow a tooltip with data point values.
tooltipLocationWhere to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’
fadeTooltiptrue = fade in/out tooltip, flase = show/hide tooltip
tooltipFadeSpeed‘slow’, ‘def’, ‘fast’, or number of milliseconds.
tooltipOffsetPixel offset of tooltip from the highlight.
tooltipAxesWhich axes to display in tooltip, ‘x’, ‘y’ or ‘both’, ‘xy’ or ‘yx’ ‘both’ and ‘xy’ are equivalent, ‘yx’ reverses order of labels.
useAxesFormattersUse the x and y axes formatters to format the text in the tooltip.
tooltipFormatStringsprintf format string for the tooltip.
formatStringalternative to tooltipFormatString will format the whole tooltip text, populating with x, y values as indicated by tooltipAxes option.
yvaluesNumber of y values to expect in the data point array.
bringSeriesToFrontThis option requires jQuery 1.4+ True to bring the series of the highlighted point to the front of other series.
+ +

Properties

+ +

show

this.show = $.jqplot.config.enablePlugins

true to show the highlight.

+ +

markerRenderer

this.markerRenderer = new $.jqplot.MarkerRenderer({shadow:false})

Renderer used to draw the marker of the highlighted point.  Renderer will assimilate attributes from the data point being highlighted, so no attributes need set on the renderer directly.  Default is to turn off shadow drawing on the highlighted point.

+ +

showMarker

this.showMarker = true

true to show the marker

+ +

lineWidthAdjust

this.lineWidthAdjust = 2.5

Pixels to add to the lineWidth of the highlight.

+ +

sizeAdjust

this.sizeAdjust = 5

Pixels to add to the overall size of the highlight.

+ +

showTooltip

this.showTooltip = true

Show a tooltip with data point values.

+ +

tooltipLocation

this.tooltipLocation = 'nw'

Where to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’

+ +

fadeTooltip

this.fadeTooltip = true

true = fade in/out tooltip, flase = show/hide tooltip

+ +

tooltipFadeSpeed

this.tooltipFadeSpeed = "fast"

’slow’, ‘def’, ‘fast’, or number of milliseconds.

+ +

tooltipOffset

this.tooltipOffset = 2

Pixel offset of tooltip from the highlight.

+ +

tooltipAxes

this.tooltipAxes = 'both'

Which axes to display in tooltip, ‘x’, ‘y’ or ‘both’, ‘xy’ or ‘yx’ ‘both’ and ‘xy’ are equivalent, ‘yx’ reverses order of labels.

+ +

useAxesFormatters

this.useAxesFormatters = true

Use the x and y axes formatters to format the text in the tooltip.

+ +

tooltipFormatString

this.tooltipFormatString = '%.5P'

sprintf format string for the tooltip.  Uses Ash Searle’s javascript sprintf implementation found here: http://hexmen.com/blog/2007/03/printf-sprintf/ See http://perldoc.perl.org/functions/sprintf.html for reference.  Additional “p” and “P” format specifiers added by Chris Leonello.

+ +

formatString

this.formatString = null

alternative to tooltipFormatString will format the whole tooltip text, populating with x, y values as indicated by tooltipAxes option.  So, you could have a tooltip like: ‘Date: %s, number of cats: %d’ to format the whole tooltip at one go.  If useAxesFormatters is true, values will be formatted according to Axes formatters and you can populate your tooltip string with %s placeholders.

+ +

yvalues

this.yvalues = 1

Number of y values to expect in the data point array.  Typically this is 1.  Certain plots, like OHLC, will have more y values in each data point array.

+ +

bringSeriesToFront

this.bringSeriesToFront = false

This option requires jQuery 1.4+ True to bring the series of the highlighted point to the front of other series.

+ +
+ + + + + + + + + + +
this.show = $.jqplot.config.enablePlugins
true to show the highlight.
this.markerRenderer = new $.jqplot.MarkerRenderer({shadow:false})
Renderer used to draw the marker of the highlighted point.
this.showMarker = true
true to show the marker
this.lineWidthAdjust = 2.5
Pixels to add to the lineWidth of the highlight.
this.sizeAdjust = 5
Pixels to add to the overall size of the highlight.
this.showTooltip = true
Show a tooltip with data point values.
this.tooltipLocation = 'nw'
Where to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’
this.fadeTooltip = true
true = fade in/out tooltip, flase = show/hide tooltip
this.tooltipFadeSpeed = "fast"
‘slow’, ‘def’, ‘fast’, or number of milliseconds.
this.tooltipOffset = 2
Pixel offset of tooltip from the highlight.
this.tooltipAxes = 'both'
Which axes to display in tooltip, ‘x’, ‘y’ or ‘both’, ‘xy’ or ‘yx’ ‘both’ and ‘xy’ are equivalent, ‘yx’ reverses order of labels.
this.useAxesFormatters = true
Use the x and y axes formatters to format the text in the tooltip.
this.tooltipFormatString = '%.5P'
sprintf format string for the tooltip.
this.formatString = null
alternative to tooltipFormatString will format the whole tooltip text, populating with x, y values as indicated by tooltipAxes option.
this.yvalues = 1
Number of y values to expect in the data point array.
this.bringSeriesToFront = false
This option requires jQuery 1.4+ True to bring the series of the highlighted point to the front of other series.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-logAxisRenderer-js.html b/common/chart/docs/files/plugins/jqplot-logAxisRenderer-js.html new file mode 100644 index 0000000..0a04ed8 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-logAxisRenderer-js.html @@ -0,0 +1,47 @@ + + +$.jqplot.LogAxisRenderer + + + + + + + + + +

A plugin for a jqPlot to render a logarithmic axis.

To use this renderer, include the plugin in your source

<script type="text/javascript" language="javascript" src="plugins/jqplot.logAxisRenderer.js"></script>

and supply the appropriate options to your plot

{axes:{xaxis:{renderer:$.jqplot.LogAxisRenderer}}}
Summary
$.jqplot.LogAxisRendererA plugin for a jqPlot to render a logarithmic axis.
axisDefaultsDefault properties which will be applied directly to the series.
PropertiesProperties
drawBaselineTrue to draw the axis baseline.
minorTicksNumber of ticks to add between “major” ticks.
+ +

axisDefaults

Default properties which will be applied directly to the series.

+ +

Properties

Properties

basethe logarithmic base, commonly 2, 10 or Math.E
tickDistributionDeprecated.  “power” distribution of ticks always used.  Option has no effect.
+ +

drawBaseline

this.drawBaseline = true

True to draw the axis baseline.

+ +

minorTicks

this.minorTicks = 'auto'

Number of ticks to add between “major” ticks.  Major ticks are ticks supplied by user or auto computed.  Minor ticks cannot be created by user.

+ +
+ + + + + + + + + + +
this.drawBaseline = true
True to draw the axis baseline.
this.minorTicks = 'auto'
Number of ticks to add between “major” ticks.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-mekkoAxisRenderer-js.html b/common/chart/docs/files/plugins/jqplot-mekkoAxisRenderer-js.html new file mode 100644 index 0000000..6c4f4be --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-mekkoAxisRenderer-js.html @@ -0,0 +1,49 @@ + + +$.jqplot.MekkoAxisRenderer + + + + + + + + + +

An axis renderer for a Mekko chart.  Should be used with a Mekko chart where the mekkoRenderer is used on the series.  Displays the Y axis as a range from 0 to 1 (0 to 100%) and the x axis with a tick for each series scaled to the sum of all the y values.

Summary
$.jqplot.MekkoAxisRendererAn axis renderer for a Mekko chart.
Properties
tickModeHow to space the ticks on the axis.
barLabelRendererrenderer to use to draw labels under each bar.
barLabelsarray of labels to put under each bar.
barLabelOptionsoptions object to pass to the bar label renderer.
+ +

Properties

+ +

tickMode

this.tickMode

How to space the ticks on the axis.  ‘bar’ will place a tick at the width of each bar.  This is the default for the x axis.  ‘even’ will place ticks at even intervals.  This is the default for x2 axis and y axis.  y axis cannot be changed.

+ +

barLabelRenderer

this.barLabelRenderer = $.jqplot.AxisLabelRenderer

renderer to use to draw labels under each bar.

+ +

barLabels

this.barLabels = this.barLabels || []

array of labels to put under each bar.

+ +

barLabelOptions

this.barLabelOptions = {}

options object to pass to the bar label renderer.

+ +
+ + + + + + + + + + +
this.tickMode
How to space the ticks on the axis.
this.barLabelRenderer = $.jqplot.AxisLabelRenderer
renderer to use to draw labels under each bar.
this.barLabels = this.barLabels || []
array of labels to put under each bar.
this.barLabelOptions = {}
options object to pass to the bar label renderer.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-mekkoRenderer-js.html b/common/chart/docs/files/plugins/jqplot-mekkoRenderer-js.html new file mode 100644 index 0000000..4568f66 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-mekkoRenderer-js.html @@ -0,0 +1,62 @@ + + +$.jqplot.MekkoRenderer + + + + + + + + + +

Draws a Mekko style chart which shows 3 dimensional data on a 2 dimensional graph. the $.jqplot.MekkoAxisRenderer should be used with mekko charts.  The mekko renderer overrides the default legend renderer with its own $.jqplot.MekkoLegendRenderer which allows more flexibility to specify number of rows and columns in the legend.

Data is specified per bar in the chart.  You can specify data as an array of y values, or as an array of [label, value] pairs.  Note that labels are used only on the first series.  Labels on subsequent series are ignored:

bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]];
+bar2 = [15,6,9,13,6];
+bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]];

If you want to place labels for each bar under the axis, you use the barLabels option on the axes.  The bar labels can be styled with the “.jqplot-mekko-barLabel” css class.

barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy'];
+axes:{xaxis:{barLabels:barLabels}}
Summary
$.jqplot.MekkoRendererDraws a Mekko style chart which shows 3 dimensional data on a 2 dimensional graph.
Properties
borderColorcolor of the borders between areas on the chart
showBordersTrue to draw borders lines between areas on the chart.
Functions
setGridDataconverts the user data values to grid coordinates and stores them in the gridData array.
makeGridDataconverts any arbitrary data values to grid coordinates and returns them.
$.jqplot.MekkoLegendRendererLegend renderer used by mekko charts with options for controlling number or rows and columns as well as placement outside of plot area.
Properties
numberRowsMaximum number of rows in the legend.
numberColumnsMaximum number of columns in the legend.
+ +

Properties

+ +

borderColor

this.borderColor = null

color of the borders between areas on the chart

+ +

showBorders

this.showBorders = true

True to draw borders lines between areas on the chart.  False will draw borders lines with the same color as the area.

+ +

Functions

+ +

setGridData

$.jqplot.MekkoRenderer.prototype.setGridData = function(plot)

converts the user data values to grid coordinates and stores them in the gridData array.  Will convert user data into appropriate rectangles.  Called with scope of a series.

+ +

makeGridData

$.jqplot.MekkoRenderer.prototype.makeGridData = function(data,
plot)

converts any arbitrary data values to grid coordinates and returns them.  This method exists so that plugins can use a series’ linerenderer to generate grid data points without overwriting the grid data associated with that series.  Called with scope of a series.

+ +

$.jqplot.MekkoLegendRenderer

Legend renderer used by mekko charts with options for controlling number or rows and columns as well as placement outside of plot area.

Summary
Properties
numberRowsMaximum number of rows in the legend.
numberColumnsMaximum number of columns in the legend.
+ +

Properties

+ +

numberRows

this.numberRows = null

Maximum number of rows in the legend.  0 or null for unlimited.

+ +

numberColumns

this.numberColumns = null

Maximum number of columns in the legend.  0 or null for unlimited.

+ +
+ + + + + + + + + + +
this.borderColor = null
color of the borders between areas on the chart
this.showBorders = true
True to draw borders lines between areas on the chart.
$.jqplot.MekkoRenderer.prototype.setGridData = function(plot)
converts the user data values to grid coordinates and stores them in the gridData array.
$.jqplot.MekkoRenderer.prototype.makeGridData = function(data,
plot)
converts any arbitrary data values to grid coordinates and returns them.
this.numberRows = null
Maximum number of rows in the legend.
this.numberColumns = null
Maximum number of columns in the legend.
An axis renderer for a Mekko chart.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-meterGaugeRenderer-js.html b/common/chart/docs/files/plugins/jqplot-meterGaugeRenderer-js.html new file mode 100644 index 0000000..d906706 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-meterGaugeRenderer-js.html @@ -0,0 +1,103 @@ + + +$.jqplot.MeterGaugeRenderer + + + + + + + + + +

Plugin renderer to draw a meter gauge chart.

Data consists of a single series with 1 data point to position the gauge needle.

To use this renderer, you need to include the meter gauge renderer plugin, for example:

<script type="text/javascript" src="plugins/jqplot.meterGaugeRenderer.js"></script>

Properties described here are passed into the $.jqplot function as options on the series renderer.  For example:

plot0 = $.jqplot('chart0',[[18]],{
+    title: 'Network Speed',
+    seriesDefaults: {
+        renderer: $.jqplot.MeterGaugeRenderer,
+        rendererOptions: {
+            label: 'MB/s'
+        }
+    }
+});

A meterGauge plot does not support events.

Summary
$.jqplot.MeterGaugeRendererPlugin renderer to draw a meter gauge chart.
Properties
diameterOuter diameter of the meterGauge, auto computed by default
paddingpadding between the meterGauge and plot edges, auto calculated by default.
shadowOffsetoffset of the shadow from the gauge ring and offset of each succesive stroke of the shadow from the last.
shadowAlphatransparency of the shadow (0 = transparent, 1 = opaque)
shadowDepthnumber of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
backgroundbackground color of the inside of the gauge.
ringColorcolor of the outer ring, hub, and needle of the gauge.
tickColorcolor of the tick marks around the gauge.
ringWidthwidth of the ring around the gauge.
minMinimum value on the gauge.
maxMaximum value on the gauge.
ticksArray of tick values.
showTickstrue to show ticks around gauge.
showTickLabelstrue to show tick labels next to ticks.
labelA gauge label like ‘kph’ or ‘Volts’
labelHeightAdjustNumber of Pixels to offset the label up (-) or down (+) from its default position.
labelPositionWhere to position the label, either ‘inside’ or ‘bottom’.
intervalsArray of ranges to be drawn around the gauge.
intervalColorsArray of colors to use for the intervals.
intervalInnerRadiusRadius of the inner circle of the interval ring.
intervalOuterRadiusRadius of the outer circle of the interval ring.
tickSpacingDegrees between ticks.
hubRadiusRadius of the hub at the bottom center of gauge which the needle attaches to.
tickPaddingpadding of the tick marks to the outer ring and the tick labels to marks.
needleThicknessMaximum thickness the needle.
needlePadPadding between needle and inner edge of the ring when the needle is at the min or max gauge value.
pegNeedleTrue will stop needle just below/above the min/max values if data is below/above min/max, as if the meter is “pegged”.
+ +

Properties

+ +

diameter

this.diameter = null

Outer diameter of the meterGauge, auto computed by default

+ +

padding

this.padding = null

padding between the meterGauge and plot edges, auto calculated by default.

+ +

shadowOffset

this.shadowOffset = 2

offset of the shadow from the gauge ring and offset of each succesive stroke of the shadow from the last.

+ +

shadowAlpha

this.shadowAlpha = 0.07

transparency of the shadow (0 = transparent, 1 = opaque)

+ +

shadowDepth

this.shadowDepth = 4

number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.

+ +

background

this.background = "#efefef"

background color of the inside of the gauge.

+ +

ringColor

this.ringColor = "#BBC6D0"

color of the outer ring, hub, and needle of the gauge.

+ +

tickColor

this.tickColor = "#989898"

color of the tick marks around the gauge.

+ +

ringWidth

this.ringWidth = null

width of the ring around the gauge.  Auto computed by default.

+ +

min

this.min

Minimum value on the gauge.  Auto computed by default

+ +

max

this.max

Maximum value on the gauge.  Auto computed by default

+ +

ticks

this.ticks = []

Array of tick values.  Auto computed by default.

+ +

showTicks

this.showTicks = true

true to show ticks around gauge.

+ +

showTickLabels

this.showTickLabels = true

true to show tick labels next to ticks.

+ +

label

this.label = null

A gauge label like ‘kph’ or ‘Volts’

+ +

labelHeightAdjust

this.labelHeightAdjust = 0

Number of Pixels to offset the label up (-) or down (+) from its default position.

+ +

labelPosition

this.labelPosition = 'inside'

Where to position the label, either ‘inside’ or ‘bottom’.

+ +

intervals

this.intervals = []

Array of ranges to be drawn around the gauge.  Array of form:

[value1, value2, ...]

indicating the values for the first, second, ... intervals.

+ +

intervalColors

this.intervalColors = [ "#4bb2c5", "#EAA228", "#c5b47f", "#579575", "#839557", "#958c12", "#953579", "#4b5de4", "#d8b83f", "#ff5800", "#0085cc", "#c747a3", "#cddf54", "#FBD178", "#26B4E3", "#bd70c7"]

Array of colors to use for the intervals.

+ +

intervalInnerRadius

this.intervalInnerRadius = null

Radius of the inner circle of the interval ring.

+ +

intervalOuterRadius

this.intervalOuterRadius = null

Radius of the outer circle of the interval ring.

+ +

tickSpacing

this.tickSpacing = 30

Degrees between ticks.  This is a target number, if incompatible span and ticks are supplied, a suitable spacing close to this value will be computed.

+ +

hubRadius

this.hubRadius = null

Radius of the hub at the bottom center of gauge which the needle attaches to.  Auto computed by default

+ +

tickPadding

this.tickPadding = null

padding of the tick marks to the outer ring and the tick labels to marks.  Auto computed by default.

+ +

needleThickness

this.needleThickness = null

Maximum thickness the needle.  Auto computed by default.

+ +

needlePad

this.needlePad = 6

Padding between needle and inner edge of the ring when the needle is at the min or max gauge value.

+ +

pegNeedle

this.pegNeedle = true

True will stop needle just below/above the min/max values if data is below/above min/max, as if the meter is “pegged”.

+ +
+ + + + + + + + + + +
this.diameter = null
Outer diameter of the meterGauge, auto computed by default
this.padding = null
padding between the meterGauge and plot edges, auto calculated by default.
this.shadowOffset = 2
offset of the shadow from the gauge ring and offset of each succesive stroke of the shadow from the last.
this.shadowAlpha = 0.07
transparency of the shadow (0 = transparent, 1 = opaque)
this.shadowDepth = 4
number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
this.background = "#efefef"
background color of the inside of the gauge.
this.ringColor = "#BBC6D0"
color of the outer ring, hub, and needle of the gauge.
this.tickColor = "#989898"
color of the tick marks around the gauge.
this.ringWidth = null
width of the ring around the gauge.
this.min
Minimum value on the gauge.
this.max
Maximum value on the gauge.
this.ticks = []
Array of tick values.
this.showTicks = true
true to show ticks around gauge.
this.showTickLabels = true
true to show tick labels next to ticks.
this.label = null
A gauge label like ‘kph’ or ‘Volts’
this.labelHeightAdjust = 0
Number of Pixels to offset the label up (-) or down (+) from its default position.
this.labelPosition = 'inside'
Where to position the label, either ‘inside’ or ‘bottom’.
this.intervals = []
Array of ranges to be drawn around the gauge.
this.intervalColors = [ "#4bb2c5", "#EAA228", "#c5b47f", "#579575", "#839557", "#958c12", "#953579", "#4b5de4", "#d8b83f", "#ff5800", "#0085cc", "#c747a3", "#cddf54", "#FBD178", "#26B4E3", "#bd70c7"]
Array of colors to use for the intervals.
this.intervalInnerRadius = null
Radius of the inner circle of the interval ring.
this.intervalOuterRadius = null
Radius of the outer circle of the interval ring.
this.tickSpacing = 30
Degrees between ticks.
this.hubRadius = null
Radius of the hub at the bottom center of gauge which the needle attaches to.
this.tickPadding = null
padding of the tick marks to the outer ring and the tick labels to marks.
this.needleThickness = null
Maximum thickness the needle.
this.needlePad = 6
Padding between needle and inner edge of the ring when the needle is at the min or max gauge value.
this.pegNeedle = true
True will stop needle just below/above the min/max values if data is below/above min/max, as if the meter is “pegged”.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-ohlcRenderer-js.html b/common/chart/docs/files/plugins/jqplot-ohlcRenderer-js.html new file mode 100644 index 0000000..258a7ef --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-ohlcRenderer-js.html @@ -0,0 +1,65 @@ + + +$.jqplot.OHLCRenderer + + + + + + + + + +

jqPlot Plugin to draw Open Hi Low Close, Candlestick and Hi Low Close charts.

To use this plugin, include the renderer js file in your source:

<script type="text/javascript" src="plugins/jqplot.ohlcRenderer.js"></script>

You will most likely want to use a date axis renderer for the x axis also, so include the date axis render js file also:

<script type="text/javascript" src="plugins/jqplot.dateAxisRenderer.js"></script>

Then you set the renderer in the series options on your plot

series: [{renderer:$.jqplot.OHLCRenderer}]

For OHLC and candlestick charts, data should be specified like so:

dat = [['07/06/2009',138.7,139.68,135.18,135.4], ['06/29/2009',143.46,144.66,139.79,140.02], ...]

If the data array has only 4 values per point instead of 5, the renderer will create a Hi Low Close chart instead.  In that case, data should be supplied like:

dat = [['07/06/2009',139.68,135.18,135.4], ['06/29/2009',144.66,139.79,140.02], ...]

To generate a candlestick chart instead of an OHLC chart, set the “candlestick” option to true:

series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{candleStick:true}}],
Summary
$.jqplot.OHLCRendererjqPlot Plugin to draw Open Hi Low Close, Candlestick and Hi Low Close charts.
Properties
candleSticktrue to render chart as candleStick.
tickLengthlength of the line in pixels indicating open and close price.
bodyWidthwidth of the candlestick body in pixels.
openColorcolor of the open price tick mark.
closeColorcolor of the close price tick mark.
wickColorcolor of the hi-lo line thorugh the candlestick body.
fillUpBodytrue to render an “up” day (close price greater than open price) with a filled candlestick body.
fillDownBodytrue to render a “down” day (close price lower than open price) with a filled candlestick body.
upBodyColorColor of candlestick body of an “up” day.
downBodyColorColor of candlestick body on a “down” day.
hlctrue if is a hi-low-close chart (no open price).
lineWidthWidth of the hi-low line and open/close ticks.
+ +

Properties

+ +

candleStick

this.candleStick = false

true to render chart as candleStick.  Must have an open price, cannot be a hlc chart.

+ +

tickLength

this.tickLength = 'auto'

length of the line in pixels indicating open and close price.  Default will auto calculate based on plot width and number of points displayed.

+ +

bodyWidth

this.bodyWidth = 'auto'

width of the candlestick body in pixels.  Default will auto calculate based on plot width and number of candlesticks displayed.

+ +

openColor

this.openColor = null

color of the open price tick mark.  Default is series color.

+ +

closeColor

this.closeColor = null

color of the close price tick mark.  Default is series color.

+ +

wickColor

this.wickColor = null

color of the hi-lo line thorugh the candlestick body.  Default is the series color.

+ +

fillUpBody

this.fillUpBody = false

true to render an “up” day (close price greater than open price) with a filled candlestick body.

+ +

fillDownBody

this.fillDownBody = true

true to render a “down” day (close price lower than open price) with a filled candlestick body.

+ +

upBodyColor

this.upBodyColor = null

Color of candlestick body of an “up” day.  Default is series color.

+ +

downBodyColor

this.downBodyColor = null

Color of candlestick body on a “down” day.  Default is series color.

+ +

hlc

this.hlc = false

true if is a hi-low-close chart (no open price).  This is determined automatically from the series data.

+ +

lineWidth

this.lineWidth = 1.5

Width of the hi-low line and open/close ticks.  Must be set in the rendererOptions for the series.

+ +
+ + + + + + + + + + +
this.candleStick = false
true to render chart as candleStick.
this.tickLength = 'auto'
length of the line in pixels indicating open and close price.
this.bodyWidth = 'auto'
width of the candlestick body in pixels.
this.openColor = null
color of the open price tick mark.
this.closeColor = null
color of the close price tick mark.
this.wickColor = null
color of the hi-lo line thorugh the candlestick body.
this.fillUpBody = false
true to render an “up” day (close price greater than open price) with a filled candlestick body.
this.fillDownBody = true
true to render a “down” day (close price lower than open price) with a filled candlestick body.
this.upBodyColor = null
Color of candlestick body of an “up” day.
this.downBodyColor = null
Color of candlestick body on a “down” day.
this.hlc = false
true if is a hi-low-close chart (no open price).
this.lineWidth = 1.5
Width of the hi-low line and open/close ticks.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-pieRenderer-js.html b/common/chart/docs/files/plugins/jqplot-pieRenderer-js.html new file mode 100644 index 0000000..09523d5 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-pieRenderer-js.html @@ -0,0 +1,93 @@ + + +$.jqplot.PieRenderer + + + + + + + + + +

Plugin renderer to draw a pie chart. x values, if present, will be used as slice labels. y values give slice size.

To use this renderer, you need to include the pie renderer plugin, for example:

<script type="text/javascript" src="plugins/jqplot.pieRenderer.js"></script>

Properties described here are passed into the $.jqplot function as options on the series renderer.  For example:

plot2 = $.jqplot('chart2', [s1, s2], {
+    seriesDefaults: {
+        renderer:$.jqplot.PieRenderer,
+        rendererOptions:{
+             sliceMargin: 2,
+             startAngle: -90
+         }
+     }
+});

A pie plot will trigger events on the plot target according to user interaction.  All events return the event object, the series index, the point (slice) index, and the point data for the appropriate slice.

’jqplotDataMouseOver’triggered when user mouseing over a slice.
’jqplotDataHighlight’triggered the first time user mouses over a slice, if highlighting is enabled.
’jqplotDataUnhighlight’triggered when a user moves the mouse out of a highlighted slice.
’jqplotDataClick’triggered when the user clicks on a slice.
’jqplotDataRightClick’tiggered when the user right clicks on a slice if the “captureRightClick” option is set to true on the plot.
Summary
$.jqplot.PieRendererPlugin renderer to draw a pie chart.
Properties
diameterOuter diameter of the pie, auto computed by default
paddingpadding between the pie and plot edges, legend, etc.
sliceMarginangular spacing between pie slices in degrees.
filltrue or false, whether to fil the slices.
shadowOffsetoffset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
shadowAlphatransparency of the shadow (0 = transparent, 1 = opaque)
shadowDepthnumber of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
highlightMouseOverTrue to highlight slice when moused over.
highlightMouseDownTrue to highlight when a mouse button is pressed over a slice.
highlightColorsan array of colors to use when highlighting a slice.
dataLabelsEither ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
showDataLabelstrue to show data labels on slices.
dataLabelFormatStringFormat string for data labels.
dataLabelThresholdThreshhold in percentage (0-100) of pie area, below which no label will be displayed.
dataLabelPositionFactorA Multiplier (0-1) of the pie radius which controls position of label on slice.
dataLabelNudgeNumber of pixels to slide the label away from (+) or toward (-) the center of the pie.
dataLabelCenterOnTrue to center the data label at its position.
startAngleAngle to start drawing pie in degrees.
$.jqplot.PieLegendRendererLegend Renderer specific to pie plots.
Properties
numberRowsMaximum number of rows in the legend.
numberColumnsMaximum number of columns in the legend.
+ +

Properties

+ +

diameter

this.diameter = null

Outer diameter of the pie, auto computed by default

+ +

padding

this.padding = 20

padding between the pie and plot edges, legend, etc.

+ +

sliceMargin

this.sliceMargin = 0

angular spacing between pie slices in degrees.

+ +

fill

this.fill = true

true or false, whether to fil the slices.

+ +

shadowOffset

this.shadowOffset = 2

offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.

+ +

shadowAlpha

this.shadowAlpha = 0.07

transparency of the shadow (0 = transparent, 1 = opaque)

+ +

shadowDepth

this.shadowDepth = 5

number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.

+ +

highlightMouseOver

this.highlightMouseOver = true

True to highlight slice when moused over.  This must be false to enable highlightMouseDown to highlight when clicking on a slice.

+ +

highlightMouseDown

this.highlightMouseDown = false

True to highlight when a mouse button is pressed over a slice.  This will be disabled if highlightMouseOver is true.

+ +

highlightColors

this.highlightColors = []

an array of colors to use when highlighting a slice.

+ +

dataLabels

this.dataLabels = 'percent'

Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.  Defaults to percentage of each pie slice.

+ +

showDataLabels

this.showDataLabels = false

true to show data labels on slices.

+ +

dataLabelFormatString

this.dataLabelFormatString = null

Format string for data labels.  If none, ‘%s’ is used for “label” and for arrays, ‘%d’ for value and ‘%d%%’ for percentage.

+ +

dataLabelThreshold

this.dataLabelThreshold = 3

Threshhold in percentage (0-100) of pie area, below which no label will be displayed.  This applies to all label types, not just to percentage labels.

+ +

dataLabelPositionFactor

this.dataLabelPositionFactor = 0.52

A Multiplier (0-1) of the pie radius which controls position of label on slice.  Increasing will slide label toward edge of pie, decreasing will slide label toward center of pie.

+ +

dataLabelNudge

this.dataLabelNudge = 2

Number of pixels to slide the label away from (+) or toward (-) the center of the pie.

+ +

dataLabelCenterOn

this.dataLabelCenterOn = true

True to center the data label at its position.  False to set the inside facing edge of the label at its position.

+ +

startAngle

this.startAngle = 0

Angle to start drawing pie in degrees.  According to orientation of canvas coordinate system: 0 = on the positive x axis -90 = on the positive y axis.  90 = on the negaive y axis.  180 or - 180 = on the negative x axis.

+ +

$.jqplot.PieLegendRenderer

Legend Renderer specific to pie plots.  Set by default when user creates a pie plot.

Summary
Properties
numberRowsMaximum number of rows in the legend.
numberColumnsMaximum number of columns in the legend.
+ +

Properties

+ +

numberRows

this.numberRows = null

Maximum number of rows in the legend.  0 or null for unlimited.

+ +

numberColumns

this.numberColumns = null

Maximum number of columns in the legend.  0 or null for unlimited.

+ +
+ + + + + + + + + + +
this.diameter = null
Outer diameter of the pie, auto computed by default
this.padding = 20
padding between the pie and plot edges, legend, etc.
this.sliceMargin = 0
angular spacing between pie slices in degrees.
this.fill = true
true or false, whether to fil the slices.
this.shadowOffset = 2
offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
this.shadowAlpha = 0.07
transparency of the shadow (0 = transparent, 1 = opaque)
this.shadowDepth = 5
number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
this.highlightMouseOver = true
True to highlight slice when moused over.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a slice.
this.highlightColors = []
an array of colors to use when highlighting a slice.
this.dataLabels = 'percent'
Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
this.showDataLabels = false
true to show data labels on slices.
this.dataLabelFormatString = null
Format string for data labels.
this.dataLabelThreshold = 3
Threshhold in percentage (0-100) of pie area, below which no label will be displayed.
this.dataLabelPositionFactor = 0.52
A Multiplier (0-1) of the pie radius which controls position of label on slice.
this.dataLabelNudge = 2
Number of pixels to slide the label away from (+) or toward (-) the center of the pie.
this.dataLabelCenterOn = true
True to center the data label at its position.
this.startAngle = 0
Angle to start drawing pie in degrees.
this.numberRows = null
Maximum number of rows in the legend.
this.numberColumns = null
Maximum number of columns in the legend.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-pointLabels-js.html b/common/chart/docs/files/plugins/jqplot-pointLabels-js.html new file mode 100644 index 0000000..5526113 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-pointLabels-js.html @@ -0,0 +1,72 @@ + + +$.jqplot.PointLabels + + + + + + + + + +

Plugin for putting labels at the data points.

To use this plugin, include the js file in your source:

<script type="text/javascript" src="plugins/jqplot.pointLabels.js"></script>

By default, the last value in the data ponit array in the data series is used for the label.  For most series renderers, extra data can be added to the data point arrays and the last value will be used as the label.

For instance, this series:

[[1,4], [3,5], [7,2]]

Would, by default, use the y values in the labels.  Extra data can be added to the series like so:

[[1,4,'mid'], [3 5,'hi'], [7,2,'low']]

And now the point labels would be ‘mid’, ‘low’, and ‘hi’.

Options to the point labels and a custom labels array can be passed into the “pointLabels” option on the series option like so:

series:[{pointLabels:{
+   labels:['mid', 'hi', 'low'],
+   location:'se',
+   ypadding: 12
+   }
+}]

A custom labels array in the options takes precendence over any labels in the series data.  If you have a custom labels array in the options, but still want to use values from the series array as labels, set the “labelsFromSeries” option to true.

By default, html entities (<, >, etc.) are escaped in point labels.  If you want to include actual html markup in the labels, set the “escapeHTML” option to false.

Summary
$.jqplot.PointLabelsPlugin for putting labels at the data points.
Properties
showshow the labels or not.
locationcompass location where to position the label around the point.
labelsFromSeriestrue to use labels within data point arrays.
seriesLabelIndexarray index for location of labels within data point arrays.
labelsarray of arrays of labels, one array for each series.
stackedValuetrue to display value as stacked in a stacked plot.
ypaddingvertical padding in pixels between point and label
xpaddinghorizontal padding in pixels between point and label
escapeHTMLtrue to escape html entities in the labels.
edgeToleranceNumber of pixels that the label must be away from an axis boundary in order to be drawn.
formatterA class of a formatter for the tick text.
formatStringstring passed to the formatter.
hideZerostrue to not show a label for a value which is 0.
+ +

Properties

+ +

show

this.show = $.jqplot.config.enablePlugins

show the labels or not.

+ +

location

this.location = 'n'

compass location where to position the label around the point.  ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’

+ +

labelsFromSeries

this.labelsFromSeries = false

true to use labels within data point arrays.

+ +

seriesLabelIndex

this.seriesLabelIndex = null

array index for location of labels within data point arrays. if null, will use the last element of the data point array.

+ +

labels

this.labels = []

array of arrays of labels, one array for each series.

+ +

stackedValue

this.stackedValue = false

true to display value as stacked in a stacked plot. no effect if labels is specified.

+ +

ypadding

this.ypadding = 6

vertical padding in pixels between point and label

+ +

xpadding

this.xpadding = 6

horizontal padding in pixels between point and label

+ +

escapeHTML

this.escapeHTML = true

true to escape html entities in the labels.  If you want to include markup in the labels, set to false.

+ +

edgeTolerance

this.edgeTolerance = -5

Number of pixels that the label must be away from an axis boundary in order to be drawn.  Negative values will allow overlap with the grid boundaries.

+ +

formatter

this.formatter = $.jqplot.DefaultTickFormatter

A class of a formatter for the tick text.  sprintf by default.

+ +

formatString

this.formatString = ''

string passed to the formatter.

+ +

hideZeros

this.hideZeros = false

true to not show a label for a value which is 0.

+ +
+ + + + + + + + + + +
this.show = $.jqplot.config.enablePlugins
show the labels or not.
this.location = 'n'
compass location where to position the label around the point.
this.labelsFromSeries = false
true to use labels within data point arrays.
this.seriesLabelIndex = null
array index for location of labels within data point arrays.
this.labels = []
array of arrays of labels, one array for each series.
this.stackedValue = false
true to display value as stacked in a stacked plot.
this.ypadding = 6
vertical padding in pixels between point and label
this.xpadding = 6
horizontal padding in pixels between point and label
this.escapeHTML = true
true to escape html entities in the labels.
this.edgeTolerance = -5
Number of pixels that the label must be away from an axis boundary in order to be drawn.
this.formatter = $.jqplot.DefaultTickFormatter
A class of a formatter for the tick text.
this.formatString = ''
string passed to the formatter.
this.hideZeros = false
true to not show a label for a value which is 0.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-pyramidAxisRenderer-js.html b/common/chart/docs/files/plugins/jqplot-pyramidAxisRenderer-js.html new file mode 100644 index 0000000..2e598f1 --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-pyramidAxisRenderer-js.html @@ -0,0 +1,49 @@ + + +D:\jq\jqplot\build\plugins\jqplot.pyramidAxisRenderer.js + + + + + + + + + +
Summary
jqplot.pyramidAxisRenderer.js
Properties
positionPosition of axis.
drawBaselineTrue to draw the axis baseline.
baselineWidthwidth of the baseline in pixels.
baselineColorCSS color spec for the baseline.
+ +

Properties

+ +

position

this.position = null

Position of axis.  Values are: top, bottom , left, center, right.  By default, x and x2 axes are bottom, y axis is center.

+ +

drawBaseline

this.drawBaseline = true

True to draw the axis baseline.

+ +

baselineWidth

this.baselineWidth = null

width of the baseline in pixels.

+ +

baselineColor

this.baselineColor = null

CSS color spec for the baseline.

+ +
+ + + + + + + + + + +
this.position = null
Position of axis.
this.drawBaseline = true
True to draw the axis baseline.
this.baselineWidth = null
width of the baseline in pixels.
this.baselineColor = null
CSS color spec for the baseline.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-pyramidGridRenderer-js.html b/common/chart/docs/files/plugins/jqplot-pyramidGridRenderer-js.html new file mode 100644 index 0000000..e69de29 diff --git a/common/chart/docs/files/plugins/jqplot-pyramidRenderer-js.html b/common/chart/docs/files/plugins/jqplot-pyramidRenderer-js.html new file mode 100644 index 0000000..836aa2e --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-pyramidRenderer-js.html @@ -0,0 +1,55 @@ + + +D:\jq\jqplot\build\plugins\jqplot.pyramidRenderer.js + + + + + + + + + +
Summary
jqplot.pyramidRenderer.js
Properties
barPadding
fillTrue to fill the bars.
highlightMouseOverTrue to highlight slice when moused over.
highlightMouseDownTrue to highlight when a mouse button is pressed over a slice.
highlightColorsan array of colors to use when highlighting a slice.
synchronizeHighlightIndex of another series to highlight when this series is highlighted.
offsetBarsFalse will center bars on their y value.
+ +

Properties

+ +

barPadding

this.barPadding = 10
+ +

fill

this.fill = true

True to fill the bars.

+ +

highlightMouseOver

this.highlightMouseOver = true

True to highlight slice when moused over.  This must be false to enable highlightMouseDown to highlight when clicking on a slice.

+ +

highlightMouseDown

this.highlightMouseDown = false

True to highlight when a mouse button is pressed over a slice.  This will be disabled if highlightMouseOver is true.

+ +

highlightColors

this.highlightColors = []

an array of colors to use when highlighting a slice.

+ +

synchronizeHighlight

this.synchronizeHighlight = false

Index of another series to highlight when this series is highlighted. null or false to not synchronize.

+ +

offsetBars

this.offsetBars = false

False will center bars on their y value.  True will push bars up by 1/2 bar width to fill between their y values.  If true, there needs to be 1 more tick than there are bars.

+ +
+ + + + + + + + + + +
this.barPadding = 10
this.fill = true
True to fill the bars.
this.highlightMouseOver = true
True to highlight slice when moused over.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a slice.
this.highlightColors = []
an array of colors to use when highlighting a slice.
this.synchronizeHighlight = false
Index of another series to highlight when this series is highlighted.
this.offsetBars = false
False will center bars on their y value.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/plugins/jqplot-trendline-js.html b/common/chart/docs/files/plugins/jqplot-trendline-js.html new file mode 100644 index 0000000..061d25d --- /dev/null +++ b/common/chart/docs/files/plugins/jqplot-trendline-js.html @@ -0,0 +1,67 @@ + + +$.jqplot.Trendline + + + + + + + + + +

Plugin which will automatically compute and draw trendlines for plotted data.

Summary
$.jqplot.TrendlinePlugin which will automatically compute and draw trendlines for plotted data.
Properties
showWether or not to show the trend line.
colorCSS color spec for the trend line.
rendererRenderer to use to draw the trend line.
rendererOptionsOptions to pass to the line renderer.
labelLabel for the trend line to use in the legend.
typeEither ‘exponential’, ‘exp’, or ‘linear’.
shadowtrue or false, whether or not to show the shadow.
markerRendererRenderer to use to draw markers on the line.
lineWidthWidth of the trend line.
shadowAngleAngle of the shadow on the trend line.
shadowOffsetpixel offset for each stroke of the shadow.
shadowAlphaAlpha transparency of the shadow.
shadowDepthnumber of strokes to make of the shadow.
+ +

Properties

+ +

show

this.show = $.jqplot.config.enablePlugins

Wether or not to show the trend line.

+ +

color

this.color = '#666666'

CSS color spec for the trend line.  By default this wil be the same color as the primary line.

+ +

renderer

this.renderer = new $.jqplot.LineRenderer()

Renderer to use to draw the trend line.  The data series that is plotted may not be rendered as a line.  Therefore, we use our own line renderer here to draw a trend line.

+ +

rendererOptions

this.rendererOptions = {marker:{show:false}}

Options to pass to the line renderer.  By default, markers are not shown on trend lines.

+ +

label

this.label = ''

Label for the trend line to use in the legend.

+ +

type

this.type = 'linear'

Either ‘exponential’, ‘exp’, or ‘linear’.

+ +

shadow

this.shadow = true

true or false, whether or not to show the shadow.

+ +

markerRenderer

this.markerRenderer = {show:false}

Renderer to use to draw markers on the line.  I think this is wrong.

+ +

lineWidth

this.lineWidth = 1.5

Width of the trend line.

+ +

shadowAngle

this.shadowAngle = 45

Angle of the shadow on the trend line.

+ +

shadowOffset

this.shadowOffset = 1.0

pixel offset for each stroke of the shadow.

+ +

shadowAlpha

this.shadowAlpha = 0.07

Alpha transparency of the shadow.

+ +

shadowDepth

this.shadowDepth = 3

number of strokes to make of the shadow.

+ +
+ + + + + + + + + + +
this.show = $.jqplot.config.enablePlugins
Wether or not to show the trend line.
this.color = '#666666'
CSS color spec for the trend line.
this.renderer = new $.jqplot.LineRenderer()
Renderer to use to draw the trend line.
this.rendererOptions = {marker:{show:false}}
Options to pass to the line renderer.
this.label = ''
Label for the trend line to use in the legend.
this.type = 'linear'
Either ‘exponential’, ‘exp’, or ‘linear’.
this.shadow = true
true or false, whether or not to show the shadow.
this.markerRenderer = {show:false}
Renderer to use to draw markers on the line.
this.lineWidth = 1.5
Width of the trend line.
this.shadowAngle = 45
Angle of the shadow on the trend line.
this.shadowOffset = 1.0
pixel offset for each stroke of the shadow.
this.shadowAlpha = 0.07
Alpha transparency of the shadow.
this.shadowDepth = 3
number of strokes to make of the shadow.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/files/usage-txt.html b/common/chart/docs/files/usage-txt.html new file mode 100644 index 0000000..0234daf --- /dev/null +++ b/common/chart/docs/files/usage-txt.html @@ -0,0 +1,58 @@ + + +jqPlot Usage + + + + + + + + + +

Usage Documentation

Introduction

jqPlot is a jQuery plugin to generate pure client-side javascript charts in your web pages.

The jqPlot home page is at http://www.jqplot.com/.

The project page and downloads are at http://www.bitbucket.org/cleonello/jqplot/.

Below are a few examples to demonstrate jqPlot usage.  These plots are shown as static images.  Many more examples of dynamically rendered plots can be seen on the test and examples pages here: ../../tests/.

Include the Files

jqPlot requires jQuery (1.4+ required for certain features). jQuery is included in the distribution.  To use jqPlot include jquery, the jqPlot jQuery plugin, jqPlot css file and optionally the excanvas script for IE support in your web page.  Note, excanvas is required only for IE versions below 9.  IE 9 includes native support for the canvas element and does not require excanvas:

<!--[if lt IE 9]><script language="javascript" type="text/javascript" src="excanvas.js"></script><![endif]-->
+<script language="javascript" type="text/javascript" src="jquery.min.js"></script>
+<script language="javascript" type="text/javascript" src="jquery.jqplot.min.js"></script>
+<link rel="stylesheet" type="text/css" href="jquery.jqplot.css" />

Add a plot container

Add a container (target) to your web page where you want your plot to show up.  Be sure to give your target a width and a height:

<div id="chartdiv" style="height:400px;width:300px; "></div>

Create a plot

Then, create the actual plot by calling the $.jqplot plugin with the id of your target and some data:

$.jqplot('chartdiv',  [[[1, 2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11,219.9]]]);

Which will produce a chart like:

Plot Options

You can customize the plot by passing options to the $.jqplot function.  Options are described in jqPlot Options in the jqPlotOptions.txt file.  An example of options usage:

$.jqplot('chartdiv',  [[[1, 2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11,219.9]]],
+{ title:'Exponential Line',
+  axes:{yaxis:{min:-10, max:240}},
+  series:[{color:'#5FAB78'}]
+});

Which will produce a plot like:

Using Plugins

You can use jqPlot plugins (that is, plugins to the jqPlot plugin) by including them in your html after you include the jqPlot plugin.  Here is how to include the log axis plugin:

<link rel="stylesheet" type="text/css" href="jquery.jqplot.css" />
+<!--[if IE]><script language="javascript" type="text/javascript" src="excanvas.js"></script><![endif]-->
+<script language="javascript" type="text/javascript" src="jquery.min.js"></script>
+<script language="javascript" type="text/javascript" src="jquery.jqplot.min.js"></script>
+<script language="javascript" type="text/javascript" src="jqplot.logAxisRenderer.js"></script>

Important note: For jqplot builds r529 and above (0.9.7r529 and higher), you must explicitly enable plugins via either the { show: true } plugin option to the plot or by using the $.jqplot.config.enablePlugins = true; config options set on the page before plot creation.  Only plugins that can be immediately active upon loading are affected.  This includes non-renderer plugins like cursor, dragable, highlighter, and trendline.

Here is the same $.jqplot call but with a log y axis:

$.jqplot('chartdiv',  [[[1, 2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11,219.9]]],
+{ title:'Exponential Line',
+  axes:{yaxis:{renderer: $.jqplot.LogAxisRenderer}},
+  series:[{color:'#5FAB78'}]
+});

Which produces a plot like:

You can further customize with options specific to the log axis plugin:

$.jqplot('chartdiv',  [[[1, 2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11,219.9]]],
+{ title:'Exponential Line',
+  axes:{yaxis:{renderer: $.jqplot.LogAxisRenderer, tickDistribution:'power'}},
+  series:[{color:'#5FAB78'}]
+});

Which makes a plot like:

For a full list of options, see jqPlot Options in the jqPlotOptions.txt file.

You can add as many plugins as you wish.  Order is generally not important.  Some plugins, like the highlighter plugin which highlights data points near the mouse, don’t need any extra options or setup to function.  Highlighter does have additional options which the user can set.

Other plugins, the barRenderer for example, provide functionality that must be specified in the chart options object.  To render a series as a bar graph with the bar renderer, you would first include the plugin after jqPlot:

<script language="javascript" type="text/javascript" src="plugins/jqplot.barRenderer.min.js"></script>

Then you would create a chart like:

$.jqplot('chartdiv',  [[34.53, 56.32, 25.1, 18.6]], {series:[{renderer:$.jqplot.BarRenderer}]});

Here the default LineRenderer is replaced by a BarRenderer to generate a bar graph for the first (and only) series.

+ +
+ + + + + + + + + + +
This document is out of date.
+ + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index.html b/common/chart/docs/index.html new file mode 100644 index 0000000..295fd4a --- /dev/null +++ b/common/chart/docs/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/common/chart/docs/index/Classes.html b/common/chart/docs/index/Classes.html new file mode 100644 index 0000000..27e9036 --- /dev/null +++ b/common/chart/docs/index/Classes.html @@ -0,0 +1,70 @@ + + +Class Index + + + + + + + + + +
Class Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
$#!
 $.fn
 $.jqplot
 $.jqplot.AxisLabelRenderer
 $.jqplot.AxisTickRenderer
 $.jqplot.BarRenderer
 $.jqplot.BezierCurveRenderer.js
 $.jqplot.BlockRenderer
 $.jqplot.BubbleRenderer
 $.jqplot.CanvasAxisLabelRenderer
 $.jqplot.CanvasAxisTickRenderer
 $.jqplot.CanvasGridRenderer
 $.jqplot.CanvasOverlay
 $.jqplot.CategoryAxisRenderer
 $.jqplot.ciParser
 $.jqplot.Cursor
 $.jqplot.DateAxisRenderer
 $.jqplot.DivTitleRenderer
 $.jqplot.DonutLegendRenderer
 $.jqplot.DonutRenderer
 $.jqplot.Dragable
 $.jqplot.FunnelLegendRenderer
 $.jqplot.FunnelRenderer
 $.jqplot.Highlighter
 $.jqplot.LinearAxisRenderer
 $.jqplot.LineRenderer
 $.jqplot.LogAxisRenderer
 $.jqplot.MarkerRenderer
 $.jqplot.MekkoAxisRenderer
 $.jqplot.MekkoLegendRenderer
 $.jqplot.MekkoRenderer
 $.jqplot.MeterGaugeRenderer
 $.jqplot.OHLCRenderer
 $.jqplot.PieLegendRenderer
 $.jqplot.PieRenderer
 $.jqplot.PointLabels
 $.jqplot.shadowRenderer
 $.jqplot.shapeRenderer
 $.jqplot.ThemeEngine
 $.jqplot.Trendline
A
 Axis
D
 DashedHorizontalLine
 DashedVerticalLine
G
 Grid
H
 HorizontalLine
J
 jqPlot
L
 Legend
 Line
S
 Series
T
 Title
V
 VerticalLine
+ +
jQuery namespace to attach functions to jQuery elements.
jQuery function called by the user to create a plot.
Renderer to place labels on the axes.
A “tick” object showing the value of a tick/gridline on the plot.
A plugin renderer for jqPlot to draw a bar plot.
Renderer which draws lines as stacked bezier curves.
Plugin renderer to draw a x-y block chart.
Plugin renderer to draw a bubble chart.
Renderer to draw axis labels with a canvas element to support advanced featrues such as rotated text.
Renderer to draw axis ticks with a canvas element to support advanced featrues such as rotated text.
The default jqPlot grid renderer, creating a grid on a canvas element.
A plugin for jqPlot to render a category style axis, with equal pixel spacing between y data values of a series.
Data Renderer function which converts a custom JSON data object into jqPlot data format.
Plugin class representing the cursor as displayed on the plot.
A plugin for a jqPlot to render an axis as a series of date values.
The default title renderer for jqPlot.
Legend Renderer specific to donut plots.
Plugin renderer to draw a donut chart.
Plugin to make plotted points dragable by the user.
Legend Renderer specific to funnel plots.
Plugin renderer to draw a funnel chart.
Plugin which will highlight data points when they are moused over.
The default jqPlot axis renderer, creating a numeric axis.
The default line renderer for jqPlot, this class has no options beyond the Series class.
A plugin for a jqPlot to render a logarithmic axis.
The default jqPlot marker renderer, rendering the points on the line.
An axis renderer for a Mekko chart.
Legend renderer used by mekko charts with options for controlling number or rows and columns as well as placement outside of plot area.
Draws a Mekko style chart which shows 3 dimensional data on a 2 dimensional graph.
Plugin renderer to draw a meter gauge chart.
jqPlot Plugin to draw Open Hi Low Close, Candlestick and Hi Low Close charts.
Legend Renderer specific to pie plots.
Plugin renderer to draw a pie chart.
Plugin for putting labels at the data points.
The default jqPlot shadow renderer, rendering shadows behind shapes.
The default jqPlot shape renderer.
Theme Engine provides a programatic way to change some of the more common jqplot styling options such as fonts, colors and grid options.
Plugin which will automatically compute and draw trendlines for plotted data.
+ + + +
An individual axis object.
+ + + +
A straight dashed horizontal line.
A straight dashed vertical line.
+ + + +
Object representing the grid on which the plot is drawn.
+ + + +
A straight horizontal line.
+ + + +
Plot object returned by call to $.jqplot.
+ + + +
Legend object.
A straight line.
+ + + +
An individual data series object.
+ + + +
Plot Title object.
+ + + +
A straight vertical line.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index/Files.html b/common/chart/docs/index/Files.html new file mode 100644 index 0000000..faac129 --- /dev/null +++ b/common/chart/docs/index/Files.html @@ -0,0 +1,34 @@ + + +File Index + + + + + + + + + +
File Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
J
 jqplot.enhancedLegendRenderer.js
 jqplot.pyramidAxisRenderer.js
 jqplot.pyramidRenderer.js
+ + + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index/Functions.html b/common/chart/docs/index/Functions.html new file mode 100644 index 0000000..60d24d5 --- /dev/null +++ b/common/chart/docs/index/Functions.html @@ -0,0 +1,70 @@ + + +Function Index + + + + + + + + + +
Function Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
C
 copy, $.jqplot.ThemeEngine
D
 destroy, jqPlot
 draw
 drawSeries, jqPlot
G
 get, $.jqplot.ThemeEngine
 getThemeNames, $.jqplot.ThemeEngine
 getThemes, $.jqplot.ThemeEngine
I
 init, jqPlot
M
 makeGridData
 moveBlock, $.jqplot.BlockRenderer
 moveSeriesToBack, jqPlot
 moveSeriesToFront, jqPlot
N
 newTheme, $.jqplot.ThemeEngine
Q
 quickInit, jqPlot
R
 redraw, jqPlot
 reInitialize, jqPlot
 remove, $.jqplot.ThemeEngine
 rename, $.jqplot.ThemeEngine
 replot, jqPlot
 resetAxesScale, jqPlot
 restoreOriginalSeriesOrder, jqPlot
 restorePreviousSeriesOrder, jqPlot
S
 setGridData
Z
 zoomProxy, $.jqplot.Cursor.$.jqplot.Cursor
+ +
$.jqplot.ThemeEngine.prototype.copy = function (sourceName,
targetName,
obj)
Create a copy of an existing theme in the themeEngine, adding it the themeEngine.
+ + + +
this.destroy = function()
Releases all resources occupied by the plot
$.jqplot.ShadowRenderer.prototype.draw = function(ctx,
points,
options)
draws an transparent black (i.e.
$.jqplot.ShapeRenderer.prototype.draw = function(ctx,
points,
options)
draws the shape.
this.draw = function()
Draws all elements of the plot into the container.
this.drawSeries = function(options,
idx)
Redraws all or just one series on the plot.
+ + + +
$.jqplot.ThemeEngine.prototype.get = function(name)
Get and return the named theme or the active theme if no name given.
$.jqplot.ThemeEngine.prototype.getThemeNames = function()
Return the list of theme names in this manager in alpha-numerical order.
$.jqplot.ThemeEngine.prototype.getThemes = function()
Return a list of themes in alpha-numerical order by name.
+ + + +
this.init = function(target,
data,
options)
sets the plot target, checks data and applies user options to plot.
+ + + +
$.jqplot.BezierCurveRenderer.prototype.makeGridData = function(data,
plot)
converts any arbitrary data values to grid coordinates and returns them.
$.jqplot.MekkoRenderer.prototype.makeGridData = function(data,
plot)
converts any arbitrary data values to grid coordinates and returns them.
this.moveBlock = function (idx,
x,
y,
duration)
Moves an individual block.
this.moveSeriesToBack = function (idx)
This method requires jQuery 1.4+ Moves the specified series canvas behind all other series canvases.
this.moveSeriesToFront = function (idx)
This method requires jQuery 1.4+ Moves the specified series canvas in front of all other series canvases.
+ + + +
$.jqplot.ThemeEngine.prototype.newTheme = function(name,
obj)
Create a new theme based on the default theme, adding it the themeEngine.
+ + + +
this.quickInit = function ()
Quick reinitialization plot for replotting.
+ + + +
this.redraw = function(clear)
Empties the plot target div and redraws the plot.
this.reInitialize = function (data,
opts)
reinitialize plot for replotting.
$.jqplot.ThemeEngine.prototype.remove = function(name)
Remove the given theme from the themeEngine.
$.jqplot.ThemeEngine.prototype.rename = function (oldName,
newName)
Rename a theme.
this.replot = function(options)
Does a reinitialization of the plot followed by a redraw.
this.resetAxesScale = function(axes,
options)
Reset the specified axes min, max, numberTicks and tickInterval properties to null or reset these properties on all axes if no list of axes is provided.
this.restoreOriginalSeriesOrder = function ()
This method requires jQuery 1.4+ Restore the series canvas order to its original order when the plot was created.
this.restorePreviousSeriesOrder = function ()
This method requires jQuery 1.4+ Restore the series canvas order to its previous state.
+ + + +
$.jqplot.BezierCurveRenderer.prototype.setGridData = function(plot)
converts the user data values to grid coordinates and stores them in the gridData array.
$.jqplot.MekkoRenderer.prototype.setGridData = function(plot)
converts the user data values to grid coordinates and stores them in the gridData array.
+ + + +
$.jqplot.Cursor.zoomProxy = function(targetPlot,
controllerPlot)
links targetPlot to controllerPlot so that plot zooming of targetPlot will be controlled by zooming on the controllerPlot.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index/General.html b/common/chart/docs/index/General.html new file mode 100644 index 0000000..95189fc --- /dev/null +++ b/common/chart/docs/index/General.html @@ -0,0 +1,42 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
$#!
 $.fn
 $.jqplot
 $.jqplot.AxisLabelRenderer
 $.jqplot.AxisTickRenderer
 $.jqplot.BarRenderer
 $.jqplot.BezierCurveRenderer.js
 $.jqplot.BlockRenderer
 $.jqplot.BubbleRenderer
 $.jqplot.CanvasAxisLabelRenderer
 $.jqplot.CanvasAxisTickRenderer
 $.jqplot.CanvasGridRenderer
 $.jqplot.CanvasOverlay
 $.jqplot.CategoryAxisRenderer
 $.jqplot.ciParser
 $.jqplot.Cursor
 $.jqplot.DateAxisRenderer
 $.jqplot.DivTitleRenderer
 $.jqplot.DonutLegendRenderer
 $.jqplot.DonutRenderer
 $.jqplot.Dragable
 $.jqplot.FunnelLegendRenderer
 $.jqplot.FunnelRenderer
 $.jqplot.Highlighter
 $.jqplot.LinearAxisRenderer
 $.jqplot.LineRenderer
 $.jqplot.LogAxisRenderer
 $.jqplot.MarkerRenderer
 $.jqplot.MekkoAxisRenderer
 $.jqplot.MekkoLegendRenderer
 $.jqplot.MekkoRenderer
 $.jqplot.MeterGaugeRenderer
 $.jqplot.OHLCRenderer
 $.jqplot.PieLegendRenderer
 $.jqplot.PieRenderer
 $.jqplot.PointLabels
 $.jqplot.shadowRenderer
 $.jqplot.shapeRenderer
 $.jqplot.ThemeEngine
 $.jqplot.Trendline
A
 activeTheme, $.jqplot.ThemeEngine
 addLegendRowHooks, $.jqplot.$.jqplot
 alignTicks, $.jqplot.LinearAxisRenderer
 alpha, $.jqplot.shadowRenderer
 angle
 animate, jqPlot
 animateReplot, jqPlot
 autoscale, Axis
 autoscaleBubbles, $.jqplot.BubbleRenderer
 autoscaleMultiplier, $.jqplot.BubbleRenderer
 autoscalePointsFactor, $.jqplot.BubbleRenderer
 Available Options
 axes, jqPlot
 axesDefaults, jqPlot
 Axis
 axisDefaults, $.jqplot.LogAxisRenderer
B
 background
 bandData, $.jqplot.LineRenderer
 bands, $.jqplot.LineRenderer
 barDirection, $.jqplot.BarRenderer
 barLabelOptions, $.jqplot.MekkoAxisRenderer
 barLabelRenderer, $.jqplot.MekkoAxisRenderer
 barLabels, $.jqplot.MekkoAxisRenderer
 barMargin, $.jqplot.BarRenderer
 barPadding
 barWidth, $.jqplot.BarRenderer
 baselineColor
 baselineWidth
 bodyWidth, $.jqplot.OHLCRenderer
 border, Legend
 borderColor
 borderWidth
 breakOnNull, Series
 breakPoints, $.jqplot.LinearAxisRenderer
 breakTickLabel, $.jqplot.LinearAxisRenderer
 bringSeriesToFront, $.jqplot.Highlighter
 bubbleAlpha, $.jqplot.BubbleRenderer
 bubbleGradients, $.jqplot.BubbleRenderer
+ +
jQuery namespace to attach functions to jQuery elements.
jQuery function called by the user to create a plot.
Renderer to place labels on the axes.
A “tick” object showing the value of a tick/gridline on the plot.
A plugin renderer for jqPlot to draw a bar plot.
Renderer which draws lines as stacked bezier curves.
Plugin renderer to draw a x-y block chart.
Plugin renderer to draw a bubble chart.
Renderer to draw axis labels with a canvas element to support advanced featrues such as rotated text.
Renderer to draw axis ticks with a canvas element to support advanced featrues such as rotated text.
The default jqPlot grid renderer, creating a grid on a canvas element.
A plugin for jqPlot to render a category style axis, with equal pixel spacing between y data values of a series.
Data Renderer function which converts a custom JSON data object into jqPlot data format.
Plugin class representing the cursor as displayed on the plot.
A plugin for a jqPlot to render an axis as a series of date values.
The default title renderer for jqPlot.
Legend Renderer specific to donut plots.
Plugin renderer to draw a donut chart.
Plugin to make plotted points dragable by the user.
Legend Renderer specific to funnel plots.
Plugin renderer to draw a funnel chart.
Plugin which will highlight data points when they are moused over.
The default jqPlot axis renderer, creating a numeric axis.
The default line renderer for jqPlot, this class has no options beyond the Series class.
A plugin for a jqPlot to render a logarithmic axis.
The default jqPlot marker renderer, rendering the points on the line.
An axis renderer for a Mekko chart.
Legend renderer used by mekko charts with options for controlling number or rows and columns as well as placement outside of plot area.
Draws a Mekko style chart which shows 3 dimensional data on a 2 dimensional graph.
Plugin renderer to draw a meter gauge chart.
jqPlot Plugin to draw Open Hi Low Close, Candlestick and Hi Low Close charts.
Legend Renderer specific to pie plots.
Plugin renderer to draw a pie chart.
Plugin for putting labels at the data points.
The default jqPlot shadow renderer, rendering shadows behind shapes.
The default jqPlot shape renderer.
Theme Engine provides a programatic way to change some of the more common jqplot styling options such as fonts, colors and grid options.
Plugin which will automatically compute and draw trendlines for plotted data.
+ + + +
this.activeTheme=null
Pointer to currently active theme
called at the end of legend draw, so plugins can add rows to the legend table.
this.alignTicks = false
true to align tick marks across opposed axes such as from the y2axis to yaxis.
this.alpha = 0.07
alpha transparency of shadow stroke.
this.angle = 0
angle of text, measured clockwise from x axis.
this.angle = 0
angle of text, measured clockwise from x axis.
this.angle = 45
Angle of the shadow in degrees.
this.animate = false
True to animate the series on initial plot draw (renderer dependent).
this.animateReplot = false
True to animate series after a call to the replot() method.
this.autoscale = false
DEPRECATED the default scaling algorithm produces superior results.
this.autoscaleBubbles = true
True to scale the bubble radius based on plot size.
this.autoscaleMultiplier = 1.0
Multiplier the bubble size if autoscaleBubbles is true.
this.autoscalePointsFactor = -0.07
Factor which decreases bubble size based on how many bubbles on on the chart.
See jqPlot Options for a list of options available thorugh the options object (not complete yet!)
this.axes = {xaxis: new Axis('xaxis'), yaxis: new Axis('yaxis'), x2axis: new Axis('x2axis'), y2axis: new Axis('y2axis'), y3axis: new Axis('y3axis'), y4axis: new Axis('y4axis'), y5axis: new Axis('y5axis'), y6axis: new Axis('y6axis'), y7axis: new Axis('y7axis'), y8axis: new Axis('y8axis'), y9axis: new Axis('y9axis'), yMidAxis: new Axis('yMidAxis')}
up to 4 axes are supported, each with its own options, See Axis for axis specific options.
default options that will be applied to all axes.
An individual axis object.
Default properties which will be applied directly to the series.
+ + + +
this.background = "#efefef"
background color of the inside of the gauge.
this.background = '#fffdf6'
css spec for the background color.
this.background
css spec for the background of the legend box.
this.renderer.bandData = []
Data used to draw error bands or confidence intervals above/below a line.
Banding around line, e.g error bands or confidence intervals.
this.barDirection = 'vertical'
‘vertical’ = up and down bars, ‘horizontal’ = side to side bars
this.barLabelOptions = {}
options object to pass to the bar label renderer.
this.barLabelRenderer = $.jqplot.AxisLabelRenderer
renderer to use to draw labels under each bar.
this.barLabels = this.barLabels || []
array of labels to put under each bar.
this.barMargin = 10
Number of pixels between groups of bars at adjacent axis values.
this.barPadding = 10
this.barPadding = 8
Number of pixels between adjacent bars at the same axis value.
this.barWidth = null
Width of the bar in pixels (auto by devaul).
this.baselineColor = null
CSS color spec for the baseline.
this.baselineColor = null
CSS color spec for the baseline.
this.baselineColor = null
CSS color spec for the baseline.
this.baselineWidth = null
width of the baseline in pixels.
this.baselineWidth = null
width of the baseline in pixels.
this.baselineWidth = null
width of the baseline in pixels.
this.bodyWidth = 'auto'
width of the candlestick body in pixels.
this.border
css spec for the border around the legend box.
this.borderColor = null
color of the borders between areas on the chart
this.borderColor = null
color of the border adjacent to the axis.
this.borderColor = '#999999'
css spec for the color of the grid border.
this.borderWidth = null
width of line stroked at the border of the axis.
this.borderWidth = 2.0
width of the border in pixels.
this.breakOnNull = false
Wether line segments should be be broken at null value.
this.breakPoints = null
EXPERIMENTAL!! 
this.breakTickLabel = "&asymp
Label to use at the axis break if breakPoints are specified.
this.bringSeriesToFront = false
This option requires jQuery 1.4+ True to bring the series of the highlighted point to the front of other series.
this.bubbleAlpha = 1.0
Alpha transparency to apply to all bubbles in this series.
this.bubbleGradients = false
True to color the bubbles with gradient fills instead of flat colors.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index/General2.html b/common/chart/docs/index/General2.html new file mode 100644 index 0000000..7aef197 --- /dev/null +++ b/common/chart/docs/index/General2.html @@ -0,0 +1,42 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
C
 candleStick, $.jqplot.OHLCRenderer
 Change Log
 Changes
 clearRect, $.jqplot.shapeRenderer
 clickReset, $.jqplot.Cursor
 closeColor, $.jqplot.OHLCRenderer
 color
 constrainOutsideZoom, $.jqplot.Cursor
 constrainSmoothing, $.jqplot.LineRenderer
 constrainTo, $.jqplot.Dragable
 constrainZoomTo, $.jqplot.Cursor
 copy, $.jqplot.ThemeEngine
 Copyright&License
 css, $.jqplot.BlockRenderer
 cursorLegendFormatString, $.jqplot.Cursor
D
 DashedHorizontalLine
 DashedVerticalLine
 dashPattern
 data, jqPlot
 dataLabelCenterOn, $.jqplot.PieRenderer
 dataLabelFormatString
 dataLabelNudge
 dataLabelPositionFactor
 dataLabels
 dataLabelThreshold
 dataRenderer, jqPlot
 dataRendererOptions, jqPlot
 dblClickReset, $.jqplot.Cursor
 defaultAxisStart, jqPlot
 depth, $.jqplot.shadowRenderer
 destroy, jqPlot
 diameter
 disableIEFading
 disableStack, Series
 downBodyColor, $.jqplot.OHLCRenderer
 draw
 drawBaseline
 drawBorder, Grid
 drawGridlines, Grid
 drawMajorGridlines, Axis
 drawMajorTickMarks, Axis
 drawMinorGridlines, Axis
 drawMinorTickMarks, Axis
 drawSeries, jqPlot
E
 edgeTolerance, $.jqplot.PointLabels
 enableFontSupport
 escapeHtml
 escapeHTML
 eventListenerHooks, $.jqplot.$.jqplot
+ +
this.candleStick = false
true to render chart as candleStick.
See Change Log
this.clearRect = false
true to cear a rectangle.
this.clickReset = false
Will reset plot zoom if single click on plot without drag.
this.closeColor = null
color of the close price tick mark.
color of the line
this.color
CSS color spec for the dragged point (and adjacent line segment or bar).
color of lines at top and bottom of bands [default: series color].
this.color = '#666666'
color of marker.
this.color = '#666666'
CSS color spec for the trend line.
this.color
css color spec for the series
this.constrainOutsideZoom = true
True to limit actual zoom area to edges of grid, even when zooming outside of plot area.
this.renderer.constrainSmoothing = true
True to use a more accurate smoothing algorithm that will not overshoot any data points.
this.constrainTo = 'none'
Constrain dragging motion to an axis or to none.
this.constrainZoomTo = 'none'
‘none’, ‘x’ or ‘y’
$.jqplot.ThemeEngine.prototype.copy = function (sourceName,
targetName,
obj)
Create a copy of an existing theme in the themeEngine, adding it the themeEngine.
Copyright © 2009-2013 Chris Leonello jqPlot is currently available for use in all personal or commercial projects under both the MIT and GPL version 2.0 licenses.
this.css = {padding:'2px', border:'1px solid #999', textAlign:'center'}
default css styles that will be applied to all data blocks.
this.cursorLegendFormatString = $.jqplot.Cursor.cursorLegendFormatString
Format string used in the cursor legend.
+ + + +
A straight dashed horizontal line.
A straight dashed vertical line.
dashPattern: [8,8] }
Array of line, space settings in pixels.
dashPattern: [8,8] }
Array of line, space settings in pixels.
this.data = []
user’s data.
this.dataLabelCenterOn = true
True to center the data label at its position.
this.dataLabelFormatString = null
Format string for data labels.
this.dataLabelFormatString = null
Format string for data labels.
this.dataLabelFormatString = null
Format string for data labels.
this.dataLabelNudge = 0
Number of pixels to slide the label away from (+) or toward (-) the center of the pie.
this.dataLabelNudge = 2
Number of pixels to slide the label away from (+) or toward (-) the center of the pie.
this.dataLabelPositionFactor = 0.4
A Multiplier (0-1) of the pie radius which controls position of label on slice.
this.dataLabelPositionFactor = 0.52
A Multiplier (0-1) of the pie radius which controls position of label on slice.
this.dataLabels = 'percent'
Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
this.dataLabels = 'percent'
Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
this.dataLabels = 'percent'
Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
this.dataLabelThreshold = 3
this.dataLabelThreshold = 3
this.dataLabelThreshold = 3
Threshhold in percentage (0-100) of pie area, below which no label will be displayed.
this.dataRenderer
A callable which can be used to preprocess data passed into the plot.
this.dataRendererOptions
Options that will be passed to the dataRenderer.
this.dblClickReset = true
Will reset plot zoom if double click on plot without drag.
this.defaultAxisStart = 1
1-D data series are internally converted into 2-D [x,y] data point arrays by jqPlot.
this.depth = 3
how many times the shadow is stroked.
this.destroy = function()
Releases all resources occupied by the plot
this.diameter = null
Outer diameter of the donut, auto computed by default
this.diameter = null
Outer diameter of the meterGauge, auto computed by default
this.diameter = null
Outer diameter of the pie, auto computed by default
this.disableIEFading = true
true to toggle series with a show/hide method only and not allow fading in/out.
this.disableStack = false
true to not stack this series with other series in the plot.
this.downBodyColor = null
Color of candlestick body on a “down” day.
$.jqplot.ShadowRenderer.prototype.draw = function(ctx,
points,
options)
draws an transparent black (i.e.
$.jqplot.ShapeRenderer.prototype.draw = function(ctx,
points,
options)
draws the shape.
this.draw = function()
Draws all elements of the plot into the container.
this.drawBaseline = true
True to draw the axis baseline.
this.drawBaseline = true
True to draw the axis baseline.
this.drawBaseline = true
True to draw the axis baseline.
this.drawBaseline = true
True to draw the axis baseline.
this.drawBorder = true
True to draw border around grid.
this.drawGridlines = true
whether to draw the gridlines on the plot.
this.drawMajorGridlines = true
True to draw gridlines for major axis ticks.
this.drawMajorTickMarks = true
True to draw tick marks for major axis ticks.
this.drawMinorGridlines = false
True to draw gridlines for minor ticks.
this.drawMinorTickMarks = true
True to draw tick marks for minor ticks.
this.drawSeries = function(options,
idx)
Redraws all or just one series on the plot.
+ + + +
this.edgeTolerance = -5
Number of pixels that the label must be away from an axis boundary in order to be drawn.
this.enableFontSupport = true
true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
this.enableFontSupport = true
true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
this.escapeHtml = false
true to escape html in the box label.
this.escapeHtml = true
True to escape html in bubble label text.
this.escapeHtml = false
True to escape special characters with their html entity equivalents in legend text.
this.escapeHtml = false
True to escape special characters with their html entity equivalents in title text.
this.escapeHTML = false
true to escape HTML entities in the label.
this.escapeHTML = false
true to escape HTML entities in the label.
this.escapeHTML = true
true to escape html entities in the labels.
called at the end of plot drawing, binds listeners to the event canvas which lays on top of the grid area.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index/General3.html b/common/chart/docs/index/General3.html new file mode 100644 index 0000000..9415c02 --- /dev/null +++ b/common/chart/docs/index/General3.html @@ -0,0 +1,42 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
F
 fadeTooltip
 fill
 fillAlpha, Series
 fillAndStroke, Series
 fillAxis, Series
 fillBetween, jqPlot
 fillColor
 fillDownBody, $.jqplot.OHLCRenderer
 fillRect, $.jqplot.shapeRenderer
 fillStyle, $.jqplot.shapeRenderer
 fillToValue, Series
 fillToZero, Series
 fillUpBody, $.jqplot.OHLCRenderer
 followMouse, $.jqplot.Cursor
 fontFamily
 fontSize
 fontStretch
 fontWeight
 forceTickAt0, $.jqplot.LinearAxisRenderer
 forceTickAt100, $.jqplot.LinearAxisRenderer
 formatString
 formatter
 Functions
G
 get, $.jqplot.ThemeEngine
 getThemeNames, $.jqplot.ThemeEngine
 getThemes, $.jqplot.ThemeEngine
 GPL Version 2
 grid, jqPlot
 Grid
 gridLineColor, Grid
 gridLineWidth, Grid
 groups, $.jqplot.BarRenderer
H
 hideZeros, $.jqplot.PointLabels
 highlightAlpha, $.jqplot.BubbleRenderer
 highlightColor, $.jqplot.LineRenderer
 highlightColors
 highlightMouseDown
 highlightMouseOver
 hlc, $.jqplot.OHLCRenderer
 Hooks, $.jqplot
 HorizontalLine
 hubRadius, $.jqplot.MeterGaugeRenderer
+ +
true = fade in/out tooltip, flase = show/hide tooltip
this.fadeTooltip = true
true = fade in/out tooltip, flase = show/hide tooltip
this.fill = true
True to fill the bars.
this.fill = true
true or false, whether to fil the slices.
this.fill = true
true or false, whether to fill the areas.
True to fill area between bands [default: true].
this.fill = true
true or false, whether to fil the slices.
this.fill = false
whether to fill the shape.
this.fill = false
whether to fill the shape.
this.fill = false
true or false, whether to fill under lines or in bars.
this.fillAlpha
Alpha transparency to apply to the fill under the line.
this.fillAndStroke = false
If true will stroke the line (with color this.color) as well as fill under it.
this.fillAxis = 'y'
Either ‘x’ or ‘y’.
this.fillBetween = { series1: null, series2: null, color: null, baseSeries: 0, fill: true }
Fill between 2 line series in a plot.
css color spec for filled area.
this.fillColor
CSS color spec to use for fill under line.
this.fillDownBody = true
true to render a “down” day (close price lower than open price) with a filled candlestick body.
this.fillRect = false
true to draw shape as a filled rectangle.
this.fillStyle = '#999999'
css color spec for the fill style.
this.fillToValue = 0
fill a filled series to this value on the fill axis.
this.fillToZero = false
true will force bar and filled series to fill toward zero on the fill Axis.
this.fillUpBody = false
true to render an “up” day (close price greater than open price) with a filled candlestick body.
this.followMouse = false
Tooltip follows the mouse, it is not at a fixed location.
this.fontFamily
css spec for the font-family css attribute.
this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif'
CSS spec for the font-family css attribute.
this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif'
css spec for the font-family css attribute.
this.fontFamily
css font-family spec for the legend text.
this.fontFamily
css font-family spec for the text.
this.fontSize
css spec for the font-size css attribute.
this.fontSize = '11pt'
CSS spec for font size.
this.fontSize = '10pt'
CSS spec for font size.
this.fontSize
css spec for the font-size attribute.
this.fontSize
css font-size spec for the legend text.
this.fontSize
css font-size spec for the text.
this.fontStretch = 1.0
Multiplier to condense or expand font width.
this.fontStretch = 1.0
Multiplier to condense or expand font width.
this.fontWeight = 'normal'
this.fontWeight = 'normal'
CSS spec for fontWeight
this.forceTickAt0 = false
This will ensure that there is always a tick mark at 0.
this.forceTickAt100 = false
This will ensure that there is always a tick mark at 100.
this.formatString = ''
string passed to the formatter.
this.formatString = ''
string passed to the formatter.
this.formatString = null
alternative to tooltipFormatString will format the whole tooltip text, populating with x, y values as indicated by tooltipAxes option.
this.formatString = ''
string passed to the formatter.
this.formatter = $.jqplot.DefaultTickFormatter
A class of a formatter for the tick text.
this.formatter = $.jqplot.DefaultTickFormatter
A class of a formatter for the tick text.
this.formatter = $.jqplot.DefaultTickFormatter
A class of a formatter for the tick text.
+ + + +
$.jqplot.ThemeEngine.prototype.get = function(name)
Get and return the named theme or the active theme if no name given.
$.jqplot.ThemeEngine.prototype.getThemeNames = function()
Return the list of theme names in this manager in alpha-numerical order.
$.jqplot.ThemeEngine.prototype.getThemes = function()
Return a list of themes in alpha-numerical order by name.
GNU GENERAL PUBLIC LICENSE Version 2, June 1991
this.grid = new Grid()
See Grid for grid specific options.
Object representing the grid on which the plot is drawn.
this.gridLineColor = '#cccccc'
color of the grid lines.
this.gridLineWidth = 1.0
width of the grid lines.
this.groups = 1
group bars into this many groups
+ + + +
this.hideZeros = false
true to not show a label for a value which is 0.
this.highlightAlpha = null
Alpha transparency to apply when highlighting bubble.
this.highlightColor = null
color to use when highlighting an area on a filled plot.
this.highlightColors = []
an array of colors to use when highlighting a slice.
this.highlightColors = []
an array of colors to use when highlighting a bar.
this.highlightColors = []
An array of colors to use when highlighting a slice.
this.highlightColors = []
an array of colors to use when highlighting a slice.
this.highlightColors = []
array of colors to use when highlighting an area.
this.highlightColors = []
an array of colors to use when highlighting a slice.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a slice.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a slice.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a bubble.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a slice.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a area.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over an area on a filled plot.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a slice.
this.highlightMouseOver = true
True to highlight slice when moused over.
this.highlightMouseOver = true
True to highlight slice when moused over.
this.highlightMouseOver = true
True to highlight bubbles when moused over.
this.highlightMouseOver = true
True to highlight slice when moused over.
this.highlightMouseOver = true
True to highlight area when moused over.
this.highlightMouseOver = true
True to highlight area on a filled plot when moused over.
this.highlightMouseOver = true
True to highlight slice when moused over.
this.hlc = false
true if is a hi-low-close chart (no open price).
A straight horizontal line.
this.hubRadius = null
Radius of the hub at the bottom center of gauge which the needle attaches to.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index/General4.html b/common/chart/docs/index/General4.html new file mode 100644 index 0000000..dc22f7e --- /dev/null +++ b/common/chart/docs/index/General4.html @@ -0,0 +1,46 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
I
 index, Series
 init, jqPlot
 innerDiameter, $.jqplot.DonutRenderer
 insertBreaks, $.jqplot.BlockRenderer
 intersectionThreshold, $.jqplot.Cursor
 interval, $.jqplot.LineRenderer
 intervalColors, $.jqplot.MeterGaugeRenderer
 intervalInnerRadius, $.jqplot.MeterGaugeRenderer
 intervalOuterRadius, $.jqplot.MeterGaugeRenderer
 intervals, $.jqplot.MeterGaugeRenderer
 Introduction
 isarc
 isMinorTick
J
 jqPlot
 jqPlot Charts
 jqPlot CSS Customization
 jqPlot Options
 jqPlot Pugin Hooks, $.jqplot
 jqPlot Usage
 jqplot.enhancedLegendRenderer.js
 jqplot.pyramidAxisRenderer.js
 jqplot.pyramidRenderer.js
L
 label
 labelHeightAdjust, $.jqplot.MeterGaugeRenderer
 labelOptions, Axis
 labelPosition
 labelRenderer, Axis
 labels
 labelsFromSeries, $.jqplot.PointLabels
 legend, jqPlot
 Legend
 Line
 lineCap
 lineJoin
 linePattern
 lineWidth
 lineWidthAdjust, $.jqplot.Highlighter
 location
 looseZoom, $.jqplot.Cursor
M
 makeGridData
 marginBottom, Legend
 marginLeft, Legend
 marginRight, Legend
 marginTop, Legend
 mark
 markerOptions, Series
 markerRenderer
 markSize
 max
 methods
 Methods, $.jqplot.BlockRenderer
 min
 minorTicks
 MIT License
 moveBlock, $.jqplot.BlockRenderer
 moveSeriesToBack, jqPlot
 moveSeriesToFront, jqPlot
+ +
this.index
0 based index of this series in the plot series array.
this.init = function(target,
data,
options)
sets the plot target, checks data and applies user options to plot.
this.innerDiameter = null
Inner diameter of the donut, auto calculated by default.
this.insertBreaks = true
true to turn spaces in data block label into html breaks br /.
this.intersectionThreshold = 2
pixel distance from data point or marker to consider cursor lines intersecting with point.
interval: '3%' }
User specified interval above and below line for bands [default: ‘3%’’].
this.intervalColors = [ "#4bb2c5", "#EAA228", "#c5b47f", "#579575", "#839557", "#958c12", "#953579", "#4b5de4", "#d8b83f", "#ff5800", "#0085cc", "#c747a3", "#cddf54", "#FBD178", "#26B4E3", "#bd70c7"]
Array of colors to use for the intervals.
this.intervalInnerRadius = null
Radius of the inner circle of the interval ring.
this.intervalOuterRadius = null
Radius of the outer circle of the interval ring.
this.intervals = []
Array of ranges to be drawn around the gauge.
jqPlot requires jQuery (1.4+ required for certain features).
this.isarc = false
whether the shadow is an arc or not.
this.isarc = false
whether the shadow is an arc or not.
this.isMinorTick = false
if this is a minor tick.
this.isMinorTick = false
if this is a minor tick.
+ + + +
Plot object returned by call to $.jqplot.
Pure JavaScript plotting plugin for jQuery.
Much of the styling of jqPlot is done by css.
This document is out of date.
+ + + +
this.label = ''
The text or html for the label.
this.label = ''
label for the axis.
this.label = null
A gauge label like ‘kph’ or ‘Volts’
this.label = ''
Label for the trend line to use in the legend.
this.label = null
Label for the axis
this.label = ''
Line label to use in the legend.
this.labelHeightAdjust = 0
Number of Pixels to offset the label up (-) or down (+) from its default position.
this.labelOptions = {}
Options passed to the label renderer.
this.labelPosition = 'auto'
‘auto’, ‘start’, ‘middle’ or ‘end’.
this.labelPosition = 'inside'
Where to position the label, either ‘inside’ or ‘bottom’.
this.labelRenderer = $.jqplot.AxisLabelRenderer
A class of a rendering engine for creating an axis label.
this.labels = []
array of arrays of labels, one array for each series.
this.labels = []
Array of labels to use.
this.labelsFromSeries = false
true to use labels within data point arrays.
this.legend = new Legend()
see $.jqplot.TableLegendRenderer
Legend object.
A straight line.
Type of ending placed on the line [‘round’, ‘butt’, ‘square’]
this.lineCap = 'round'
how ends of the shadow line are rendered.
this.lineCap = 'round'
how ends of the shadow line are rendered.
this.lineCap = 'round'
Canvas lineCap style at ends of line.
this.lineJoin = 'miter'
How line segments of the shadow are joined.
this.lineJoin = 'miter'
How line segments of the shadow are joined.
this.lineJoin = 'round'
Canvas lineJoin style between segments of series.
this.linePattern = 'solid'
line pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
this.linePattern = 'solid'
line pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
Width of the line.
this.lineWidth = 2
width of line if areas are stroked and not filled.
this.lineWidth = 2
size of the line for non-filled markers.
this.lineWidth = 1.5
Width of the hi-low line and open/close ticks.
this.lineWidth = 1.5
width of the shadow line stroke.
this.lineWidth = 1.5
Width of the trend line.
this.lineWidth = 2.5
width of the line in pixels.
this.lineWidthAdjust = 2.5
Pixels to add to the lineWidth of the highlight.
this.location = 'n'
compass location where to position the label around the point.
this.location = 'ne'
Placement of the legend.
this.looseZoom = true
Will expand zoom range to provide more rounded tick values.
+ + + +
$.jqplot.BezierCurveRenderer.prototype.makeGridData = function(data,
plot)
converts any arbitrary data values to grid coordinates and returns them.
$.jqplot.MekkoRenderer.prototype.makeGridData = function(data,
plot)
converts any arbitrary data values to grid coordinates and returns them.
this.marginBottom = null
CSS margin for the legend DOM element.
this.marginLeft = null
CSS margin for the legend DOM element.
this.marginRight = null
CSS margin for the legend DOM element.
this.marginTop = null
CSS margin for the legend DOM element.
this.mark = 'outside'
tick mark on the axis.
this.mark = 'outside'
tick mark on the axis.
this.markerOptions = {}
renderer specific options to pass to the markerRenderer, see $.jqplot.MarkerRenderer.
this.markerRenderer = new $.jqplot.MarkerRenderer({shadow:false})
Renderer used to draw the marker of the highlighted point.
this.markerRenderer = {show:false}
Renderer to use to draw markers on the line.
this.markerRenderer = $.jqplot.MarkerRenderer
A class of a renderer which will draw marker (e.g.
this.markSize = 6
Length of the tick marks in pixels.
this.markSize = 4
Length of the tick marks in pixels.
this.max
Maximum value on the gauge.
this.max = null
maximum value of the axis (in data units, not pixels).
this.min
Minimum value on the gauge.
this.min = null
minimum value of the axis (in data units, not pixels).
this.minorTicks = 0
Number of ticks to add between “major” ticks.
this.minorTicks = 'auto'
Number of ticks to add between “major” ticks.
Copyright © 2009-2013 Chris Leonello
this.moveBlock = function (idx,
x,
y,
duration)
Moves an individual block.
this.moveSeriesToBack = function (idx)
This method requires jQuery 1.4+ Moves the specified series canvas behind all other series canvases.
this.moveSeriesToFront = function (idx)
This method requires jQuery 1.4+ Moves the specified series canvas in front of all other series canvases.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index/General5.html b/common/chart/docs/index/General5.html new file mode 100644 index 0000000..00714de --- /dev/null +++ b/common/chart/docs/index/General5.html @@ -0,0 +1,50 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
N
 name, $.jqplot.CanvasOverlay
 needlePad, $.jqplot.MeterGaugeRenderer
 needleThickness, $.jqplot.MeterGaugeRenderer
 negativeColor, Series
 negativeSeriesColors, jqPlot
 neighborThreshold, Series
 newTheme, $.jqplot.ThemeEngine
 noDataIndicator, jqPlot
 numberColumns
 numberRows
 numberTicks, Axis
O
 objects, $.jqplot.CanvasOverlay
 offset, $.jqplot.shadowRenderer
 offsetBars
 openColor, $.jqplot.OHLCRenderer
 Options Tutorial
 Options Usage
P
 pad, Axis
 padding
 padMax, Axis
 padMin, Axis
 pegNeedle, $.jqplot.MeterGaugeRenderer
 placement, Legend
 position
 postDrawHooks, $.jqplot.$.jqplot
 postDrawSeriesHooks, $.jqplot.$.jqplot
 postDrawSeriesShadowHooks, $.jqplot.$.jqplot
 postInitHooks, $.jqplot.$.jqplot
 postParseOptionsHooks, $.jqplot.$.jqplot
 postParseSeriesOptionsHooks, $.jqplot.$.jqplot
 postSeriesInitHooks, $.jqplot.$.jqplot
 predraw, Legend
 preDrawHooks, $.jqplot.$.jqplot
 preDrawLegendHooks, $.jqplot.$.jqplot
 preDrawSeriesHooks, $.jqplot.$.jqplot
 preDrawSeriesShadowHooks, $.jqplot.$.jqplot
 prefix
 preInitHooks, $.jqplot.$.jqplot
 preParseOptionsHooks, $.jqplot.$.jqplot
 preParseSeriesOptionsHooks, $.jqplot.$.jqplot
 preSeriesInitHooks, $.jqplot.$.jqplot
 Properties
 pt2px
Q
 quickInit, jqPlot
R
 redraw, jqPlot
 reInitialize, jqPlot
 remove, $.jqplot.ThemeEngine
 rename, $.jqplot.ThemeEngine
 renderer
 rendererOptions
 replot, jqPlot
 resetAxesScale, jqPlot
 restoreOriginalSeriesOrder, jqPlot
 restorePreviousSeriesOrder, jqPlot
 ringColor, $.jqplot.MeterGaugeRenderer
 ringMargin, $.jqplot.DonutRenderer
 ringWidth, $.jqplot.MeterGaugeRenderer
 rowSpacing, Legend
+ +
Optional name for the overlay object.
this.needlePad = 6
Padding between needle and inner edge of the ring when the needle is at the min or max gauge value.
this.needleThickness = null
Maximum thickness the needle.
this.negativeColor
css color spec used for filled (area) plots that are filled to zero and the “useNegativeColors” option is true.
this.negativeSeriesColors = $.jqplot.config.defaultNegativeColors
colors to use for portions of the line below zero.
this.neighborThreshold = 4
how close or far (in pixels) the cursor must be from a point marker to detect the point.
$.jqplot.ThemeEngine.prototype.newTheme = function(name,
obj)
Create a new theme based on the default theme, adding it the themeEngine.
this.noDataIndicator = { show: false, indicator: 'Loading Data...', axes: { xaxis: { min: 0, max: 10, tickInterval: 2, show: true }, yaxis: { min: 0, max: 12, tickInterval: 3, show: true } } }
Options to set up a mock plot with a data loading indicator if no data is specified.
this.numberColumns = null
Maximum number of columns in the legend.
this.numberColumns = null
Maximum number of columns in the legend.
this.numberColumns = null
Maximum number of columns in the legend.
this.numberColumns = null
Maximum number of columns in the legend.
this.numberColumns = null
Maximum number of columns in the legend.
this.numberRows = null
Maximum number of rows in the legend.
this.numberRows = null
Maximum number of rows in the legend.
this.numberRows = null
Maximum number of rows in the legend.
this.numberRows = null
Maximum number of rows in the legend.
this.numberRows = null
Maximum number of rows in the legend.
this.numberTicks
Desired number of ticks.
+ + + +
this.objects = []
this.offset = 1
Pixel offset at the given shadow angle of each shadow stroke from the last stroke.
this.offsetBars = false
False will center bars on their y value.
this.openColor = null
color of the open price tick mark.
This document will help you understand how jqPlot’s options relate to the API documentation and the jqPlot object itself.
See Options Tutorial
+ + + +
this.pad = 1.2
Padding to extend the range above and below the data bounds.
this.padding = 20
padding between the donut and plot edges, legend, etc.
this.padding = {top: 20, right: 20, bottom: 20, left: 20}
padding between the funnel and plot edges, legend, etc.
this.padding = null
padding between the meterGauge and plot edges, auto calculated by default.
this.padding = 20
padding between the pie and plot edges, legend, etc.
this.padMax = null
Padding to extend the range above data bounds.
this.padMin = null
Padding to extend the range below data bounds.
this.pegNeedle = true
True will stop needle just below/above the min/max values if data is below/above min/max, as if the meter is “pegged”.
this.placement = "insideGrid"
“insideGrid” places legend inside the grid area of the plot.
this.position = null
Position of axis.
called after plot draw.
called after each series is drawn.
called after series shadows are drawn.
called after initialization.
called after user options are parsed.
called after series related options are parsed.
called after series is initialized.
Wether to draw the legend before the series or not.
called before plot draw.
called before the legend is drawn.
called before each series is drawn.
called before series shadows are drawn.
this.prefix = ''
String to prepend to the tick label.
this.prefix = ''
String to prepend to the tick label.
called before initialization.
called before user options are parsed.
called before series related options are parsed.
called before series is initialized.
Properties
Axes options are specified within an axes object at the top level of the plot options like so:
These properties are specified at the top of the options object like so:
Properties will be assigned from a series array at the top level of the options.
this.pt2px = null
Point to pixel scaling factor, used for computing height of bounding box around a label.
this.pt2px = null
Point to pixel scaling factor, used for computing height of bounding box around a label.
+ + + +
this.quickInit = function ()
Quick reinitialization plot for replotting.
+ + + +
this.redraw = function(clear)
Empties the plot target div and redraws the plot.
this.reInitialize = function (data,
opts)
reinitialize plot for replotting.
$.jqplot.ThemeEngine.prototype.remove = function(name)
Remove the given theme from the themeEngine.
$.jqplot.ThemeEngine.prototype.rename = function (oldName,
newName)
Rename a theme.
this.renderer = new $.jqplot.LineRenderer()
Renderer to use to draw the trend line.
this.renderer = $.jqplot.LinearAxisRenderer
A class of a rendering engine that handles tick generation, scaling input data to pixel grid units and drawing the axis element.
this.renderer = $.jqplot.CanvasGridRenderer
Instance of a renderer which will actually render the grid, see $.jqplot.CanvasGridRenderer.
this.renderer = $.jqplot.LineRenderer
A class of a renderer which will draw the series, see $.jqplot.LineRenderer.
this.renderer = $.jqplot.DivTitleRenderer
A class for creating a DOM element for the title, see $.jqplot.DivTitleRenderer.
this.rendererOptions = {marker:{show:false}}
Options to pass to the line renderer.
this.rendererOptions = {}
renderer specific options.
this.rendererOptions = {}
Options to pass on to the renderer, see $.jqplot.CanvasGridRenderer.
this.rendererOptions = {}
renderer specific options passed to the renderer.
this.rendererOptions = {}
Options to pass on to the renderer.
this.rendererOptions = {}
renderer specific options passed to the renderer.
this.replot = function(options)
Does a reinitialization of the plot followed by a redraw.
this.resetAxesScale = function(axes,
options)
Reset the specified axes min, max, numberTicks and tickInterval properties to null or reset these properties on all axes if no list of axes is provided.
this.restoreOriginalSeriesOrder = function ()
This method requires jQuery 1.4+ Restore the series canvas order to its original order when the plot was created.
this.restorePreviousSeriesOrder = function ()
This method requires jQuery 1.4+ Restore the series canvas order to its previous state.
this.ringColor = "#BBC6D0"
color of the outer ring, hub, and needle of the gauge.
this.ringMargin = null
pixel distance between rings, or multiple series in a donut plot.
this.ringWidth = null
width of the ring around the gauge.
this.rowSpacing = '0.5em'
css padding-top spec for the rows in the legend.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index/General6.html b/common/chart/docs/index/General6.html new file mode 100644 index 0000000..4a6d594 --- /dev/null +++ b/common/chart/docs/index/General6.html @@ -0,0 +1,34 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
S
 scaleToHiddenSeries, Axis
 sectionMargin, $.jqplot.FunnelRenderer
 series, jqPlot
 Series
 seriesColors, jqPlot
 seriesDefaults, jqPlot
 seriesLabelIndex, $.jqplot.PointLabels
 seriesToggle
 seriesToggleReplot
 setGridData
 shadow
 shadowAlpha
 shadowAngle
 shadowColor, Grid
 shadowDepth
 shadowOffset
 shadowRenderer, $.jqplot.MarkerRenderer
 shadowWidth, Grid
 shapeRenderer, $.jqplot.MarkerRenderer
 show
 showBorders, $.jqplot.MekkoRenderer
 showCursorLegend, $.jqplot.Cursor
 showDataLabels
 showGridline
 showHorizontalLine, $.jqplot.Cursor
 showLabel
 showLabels
 showLine, Series
 showLines, $.jqplot.LineRenderer
 showMark
 showMarker
 showMinorTicks, Axis
 showSwatch, Legend
 showTickLabels, $.jqplot.MeterGaugeRenderer
 showTickMarks, Axis
 showTicks
 showTooltip
 showTooltipDataPosition, $.jqplot.Cursor
 showTooltipGridPosition, $.jqplot.Cursor
 showTooltipOutsideZoom, $.jqplot.Cursor
 showTooltipPrecision, $.jqplot.CanvasOverlay
 showTooltipUnitPosition, $.jqplot.Cursor
 showVerticalLine, $.jqplot.Cursor
 size
 sizeAdjust, $.jqplot.Highlighter
 sliceMargin
 smooth, $.jqplot.LineRenderer
 sortData, jqPlot
 sortMergedLabels, $.jqplot.CategoryAxisRenderer
 stackedValue, $.jqplot.PointLabels
 stackSeries, jqPlot
 start, Line
 startAngle
 stop, Line
 strokeRect, $.jqplot.shapeRenderer
 strokeStyle, $.jqplot.shapeRenderer
 style
 suffix, $.jqplot.AxisTickRenderer
 synchronizeHighlight
 syncTicks, Axis
+ +
this.scaleToHiddenSeries = false
True to include hidden series when computing axes bounds and scaling.
this.sectionMargin = 6
spacing between funnel sections in pixels.
this.series = []
Array of series object options.
An individual data series object.
this.seriesColors = $.jqplot.config.defaultColors
Ann array of CSS color specifications that will be applied, in order, to the series in the plot.
seriesDefaults: {}, series:[] }
default options that will be applied to all series.
this.seriesLabelIndex = null
array index for location of labels within data point arrays.
this.seriesToggle = 'normal'
false to not enable series on/off toggling on the legend.
this.seriesToggleReplot = false
True to replot the chart after toggling series on/off.
$.jqplot.BezierCurveRenderer.prototype.setGridData = function(plot)
converts the user data values to grid coordinates and stores them in the gridData array.
$.jqplot.MekkoRenderer.prototype.setGridData = function(plot)
converts the user data values to grid coordinates and stores them in the gridData array.
whether or not to draw a shadow on the line
this.shadow = true
whether or not to draw a shadow on the line
this.shadow = true
true or false, whether or not to show the shadow.
this.shadow = true
whether to show a shadow behind the grid.
this.shadowAlpha = 0.08
transparency of the shadow (0 = transparent, 1 = opaque)
Alpha channel transparency of shadow.
this.shadowAlpha = 0.07
transparency of the shadow (0 = transparent, 1 = opaque)
this.shadowAlpha = 0.07
transparency of the shadow (0 = transparent, 1 = opaque)
this.shadowAlpha = '0.07'
Alpha channel transparency of shadow.
this.shadowAlpha = 0.07
transparency of the shadow (0 = transparent, 1 = opaque)
this.shadowAlpha = 0.07
transparency of the shadow (0 = transparent, 1 = opaque)
this.shadowAlpha = 0.07
Alpha transparency of the shadow.
this.shadowAlpha = '0.07'
Alpha channel transparency of shadow.
this.shadowAlpha = '0.1'
Alpha channel transparency of shadow.
Shadow angle in degrees
this.shadowAngle = 45
Shadow angle in degrees
this.shadowAngle = 45
Angle of the shadow on the trend line.
this.shadowAngle = 45
shadow angle in degrees
this.shadowAngle = 45
Shadow angle in degrees
this.shadowColor = null
an optional css color spec for the shadow in ‘rgba(n, n, n, n)’ form
this.shadowDepth = 5
number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
Number of times shadow is stroked, each stroke offset shadowOffset from the last.
this.shadowDepth = 5
number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
this.shadowDepth = 5
number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
this.shadowDepth = 3
Number of times shadow is stroked, each stroke offset shadowOffset from the last.
this.shadowDepth = 4
number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
this.shadowDepth = 5
number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
this.shadowDepth = 3
number of strokes to make of the shadow.
this.shadowDepth = 3
Number of times shadow is stroked, each stroke offset shadowOffset from the last.
this.shadowDepth = 3
Number of times shadow is stroked, each stroke offset shadowOffset from the last.
this.shadowOffset = 2
offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
Shadow offset from line in pixels
this.shadowOffset = 2
offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
this.shadowOffset = 2
offset of the shadow from the area and offset of each succesive stroke of the shadow from the last.
this.shadowOffset = 1
Shadow offset from line in pixels
this.shadowOffset = 2
offset of the shadow from the gauge ring and offset of each succesive stroke of the shadow from the last.
this.shadowOffset = 2
offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
this.shadowOffset = 1.0
pixel offset for each stroke of the shadow.
this.shadowOffset = 1.5
Offset of each shadow stroke from the border in pixels
this.shadowOffset = 1.25
Shadow offset from line in pixels
this.shadowRenderer = new $.jqplot.ShadowRenderer()
Renderer that will draws the shadows on the marker.
this.shadowWidth = 3
width of the stoke for the shadow
this.shapeRenderer = new $.jqplot.ShapeRenderer()
Renderer that will draw the marker.
this.show = true
whether or not to show the tick (mark and label).
this.show = true
whether or not to show the tick (mark and label).
this.show = true
whether or not to show the tick (mark and label).
this.show = true
whether or not to show the tick (mark and label).
true to show (draw), false to not draw.
this.show = $.jqplot.config.enablePlugins
whether to show the cursor or not.
this.show = $.jqplot.config.enablePlugins
true to show the highlight.
true to show the bands.
this.show = true
whether or not to show the marker.
this.show = $.jqplot.config.enablePlugins
show the labels or not.
this.show = $.jqplot.config.enablePlugins
Wether or not to show the trend line.
this.show = false
Wether to display the axis on the graph.
this.show = false
Wether to display the legend on the graph.
this.show = true
whether or not to draw the series.
this.show = true
whether or not to show the title
this.showBorders = true
True to draw borders lines between areas on the chart.
this.showCursorLegend = false
Replace the plot legend with an enhanced legend displaying intersection information.
this.showDataLabels = false
true to show data labels on slices.
this.showDataLabels = false
true to show data labels on slices.
this.showDataLabels = false
true to show data labels on slices.
this.showGridline = true
whether or not to draw the gridline on the grid at this tick.
this.showGridline = true
whether or not to draw the gridline on the grid at this tick.
this.showHorizontalLine = false
draw a horizontal line across the plot which follows the cursor.
this.showLabel = true
whether or not to show the label.
this.showLabel = true
whether or not to show the label.
this.showLabel = true
whether or not to show the label.
this.showLabel = true
true to show the axis label.
this.showLabel = true
true to show label for this series in the legend.
this.showLabels = true
True to show labels on bubbles (if any), false to not show.
this.showLabels = true
true to show the label text on the legend.
this.showLine = true
whether to actually draw the line or not.
True to show lines at top and bottom of bands [default: false].
this.showMark = true
whether or not to show the mark on the axis.
this.showMark = true
whether or not to show the mark on the axis.
this.showMarker = true
true to show the marker
this.showMarker = true
whether or not to show the markers at the data points.
this.showMinorTicks = true
Wether or not to show minor ticks.
this.showSwatches = true
true to show the color swatches on the legend.
this.showTickLabels = true
true to show tick labels next to ticks.
this.showTickMarks = true
Wether to show the tick marks (line crossing grid) or not.
this.showTicks = true
true to show ticks around gauge.
this.showTicks = true
Wether to show the ticks (both marks and labels) or not.
Show a tooltip with data point values.
this.showTooltip = true
show a cursor position tooltip.
this.showTooltip = true
Show a tooltip with data point values.
this.showTooltipDataPosition = false
Used with showVerticalLine to show intersecting data points in the tooltip.
this.showTooltipGridPosition = false
show the grid pixel coordinates of the mouse.
this.showTooltipOutsideZoom = false
True will keep updating the tooltip when zooming of the grid.
Controls how close to line cursor must be to show tooltip.
this.showTooltipUnitPosition = true
show the unit (data) coordinates of the mouse.
this.showVerticalLine = false
draw a vertical line across the plot which follows the cursor.
this.size = 4
Length of the tick beyond the grid in pixels.
this.size = 9.0
Size of the marker (diameter or circle, length of edge of square, etc.)
this.sizeAdjust = 5
Pixels to add to the overall size of the highlight.
this.sliceMargin = 0
angular spacing between donut slices in degrees.
this.sliceMargin = 0
angular spacing between pie slices in degrees.
this.renderer.smooth = false
True to draw a smoothed (interpolated) line through the data points with automatically computed number of smoothing points.
this.sortData = true
false to not sort the data passed in by the user.
this.sortMergedLabels = false
True to sort tick labels when labels are created by merging x axis values from multiple series.
this.stackedValue = false
true to display value as stacked in a stacked plot.
this.stackSeries = false
true or false, creates a stack or “mountain” plot.
[x, y] coordinates for the start of the line.
this.startAngle = 0
Angle to start drawing donut in degrees.
this.startAngle = 0
Angle to start drawing pie in degrees.
stop: [] }
[x, y] coordinates for the end of the line.
this.strokeRect = false
true to draw shape as a stroked rectangle.
this.strokeStyle = '#999999'
css color spec for the stoke style
this.style = 'crosshair'
CSS spec for cursor style
this.style = 'filledCircle'
One of diamond, circle, square, x, plus, dash, filledDiamond, filledCircle, filledSquare
this.suffix = ''
String to append to the tick label.
this.synchronizeHighlight = false
Index of another series to highlight when this series is highlighted.
this.syncTicks = null
true to try and synchronize tick spacing across multiple axes so that ticks and grid lines line up.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index/General7.html b/common/chart/docs/index/General7.html new file mode 100644 index 0000000..5963e12 --- /dev/null +++ b/common/chart/docs/index/General7.html @@ -0,0 +1,58 @@ + + +Index + + + + + + + + + +
Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
T
 text, Title
 textAlign, Title
 textColor
 themes, $.jqplot.ThemeEngine
 thickness, $.jqplot.DonutRenderer
 tickColor, $.jqplot.MeterGaugeRenderer
 tickInset
 tickInterval, Axis
 tickLength, $.jqplot.OHLCRenderer
 tickMode, $.jqplot.MekkoAxisRenderer
 tickOptions, Axis
 tickPadding, $.jqplot.MeterGaugeRenderer
 tickRenderer
 ticks
 tickSpacing
 title, jqPlot
 Title
 tooltipAxes, $.jqplot.Highlighter
 tooltipAxisGroups, $.jqplot.Cursor
 tooltipFadeSpeed
 tooltipFormatString
 tooltipLocation
 tooltipOffset
 transposedData, $.jqplot.BarRenderer
 type, $.jqplot.Trendline
U
 upBodyColor, $.jqplot.OHLCRenderer
 Usage
 useAxesFormatters
 useNegativeColors, Series
 useSeriesColor, Axis
V
 varyBarColor, $.jqplot.BarRenderer
 varyBlockColors, $.jqplot.BlockRenderer
 varyBubbleColors, $.jqplot.BubbleRenderer
 Version
 VerticalLine
W
 waterfall, $.jqplot.BarRenderer
 wickColor, $.jqplot.OHLCRenderer
 widthRatio, $.jqplot.FunnelRenderer
X
 xaxis
 xmax
 xmin
 xoffset, Legend
 xpadding, $.jqplot.PointLabels
Y
 y, HorizontalLine
 yaxis
 yoffset, Legend
 ypadding, $.jqplot.PointLabels
 yvalues, $.jqplot.Highlighter
Z
 zoom, $.jqplot.Cursor
 zoomProxy, $.jqplot.Cursor.$.jqplot.Cursor
+ +
this.text = text
text of the title;
this.textAlign
css text-align spec for the text.
this.textColor
css spec for the color attribute.
this.textColor = '#666666'
css spec for the color attribute.
this.textColor = '#666666'
css spec for the color attribute.
this.textColor
css color spec for the legend text.
this.textColor
css color spec for the text.
this.themes = {}
hash of themes managed by the theme engine.
this.thickness = null
thickness of the donut, auto computed by default Overridden by if innerDiameter is specified.
this.tickColor = "#989898"
color of the tick marks around the gauge.
this.tickInset = 0
Controls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.
this.tickInset = 0
Controls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.
this.tickInterval
number of units between ticks.
this.tickLength = 'auto'
length of the line in pixels indicating open and close price.
this.tickMode
How to space the ticks on the axis.
this.tickOptions = {}
Options that will be passed to the tickRenderer, see $.jqplot.AxisTickRenderer options.
this.tickPadding = null
padding of the tick marks to the outer ring and the tick labels to marks.
A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
this.tickRenderer = $.jqplot.AxisTickRenderer
A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
this.ticks = []
Array of tick values.
this.ticks = []
1D [val, val, ...] or 2D [[val, label], [val, label], ...] array of ticks for the axis.
this.tickSpacing = 30
Degrees between ticks.
this.tickSpacing = 75
Approximate pixel spacing between ticks on graph.
this.title = new Title()
Title object.
Plot Title object.
this.tooltipAxes = 'both'
Which axes to display in tooltip, ‘x’, ‘y’ or ‘both’, ‘xy’ or ‘yx’ ‘both’ and ‘xy’ are equivalent, ‘yx’ reverses order of labels.
this.tooltipAxisGroups = []
Show position for the specified axes.
‘slow’, ‘def’, ‘fast’, or number of milliseconds.
this.tooltipFadeSpeed = "fast"
‘slow’, ‘def’, ‘fast’, or number of milliseconds.
tooltipFormatString: '%d, %d' }
Format string passed the x and y values of the cursor on the line.
this.tooltipFormatString = '%.4P, %.4P'
sprintf format string for the tooltip.
this.tooltipFormatString = '%.5P'
sprintf format string for the tooltip.
Where to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’
this.tooltipLocation = 'se'
Where to position tooltip.
this.tooltipLocation = 'nw'
Where to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’
Pixel offset of tooltip from the highlight.
this.tooltipOffset = 6
Pixel offset of tooltip from the grid boudaries or cursor center.
this.tooltipOffset = 2
Pixel offset of tooltip from the highlight.
this.transposedData = true
NOT IMPLEMENTED YET.
this.type = 'linear'
Either ‘exponential’, ‘exp’, or ‘linear’.
+ + + +
this.upBodyColor = null
Color of candlestick body of an “up” day.
See jqPlot Usage
this.useAxesFormatters = true
Use the x and y axes formatters to format the text in the tooltip.
this.useAxesFormatters = true
Use the x and y axes formatters to format the text in the tooltip.
this.useNegativeColors = true
true to color negative values differently in filled and bar charts.
this.useSeriesColor = false
Use the color of the first series associated with this axis for the tick marks and line bordering this axis.
+ + + +
this.varyBarColor = false
true to color each bar of a series separately rather than have every bar of a given series the same color.
this.varyBlockColors = false
true to vary the color of each block in this series according to the seriesColors array.
this.varyBubbleColors = true
True to vary the color of each bubble in this series according to the seriesColors array.
version: 1.0.8 revision: 1250
A straight vertical line.
+ + + +
this.waterfall = false
true to enable waterfall plot.
this.wickColor = null
color of the hi-lo line thorugh the candlestick body.
this.widthRatio = 0.2
The ratio of the width of the top of the funnel to the bottom.
+ + + +
X axis to use for positioning/scaling the line.
this.xaxis = 'xaxis'
which x axis to use with this series, either ‘xaxis’ or ‘x2axis’.
x value for the end of the line, null to scale to axis max.
x value for the end of the line, null to scale to axis max.
x value for the start of the line, null to scale to axis min.
x value for the start of the line, null to scale to axis min.
this.xoffset = 0
DEPRECATED.
this.xpadding = 6
horizontal padding in pixels between point and label
+ + + +
y value to position the line
Y axis to use for positioning/scaling the line.
this.yaxis = 'yaxis'
which y axis to use with this series, either ‘yaxis’ or ‘y2axis’.
this.yoffset = 0
DEPRECATED.
this.ypadding = 6
vertical padding in pixels between point and label
this.yvalues = 1
Number of y values to expect in the data point array.
+ + + +
this.zoom = false
Enable plot zooming.
$.jqplot.Cursor.zoomProxy = function(targetPlot,
controllerPlot)
links targetPlot to controllerPlot so that plot zooming of targetPlot will be controlled by zooming on the controllerPlot.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index/Hooks.html b/common/chart/docs/index/Hooks.html new file mode 100644 index 0000000..ef10808 --- /dev/null +++ b/common/chart/docs/index/Hooks.html @@ -0,0 +1,46 @@ + + +Hook Index + + + + + + + + + +
Hook Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
A
 addLegendRowHooks, $.jqplot.$.jqplot
E
 eventListenerHooks, $.jqplot.$.jqplot
J
 jqPlot Pugin Hooks, $.jqplot
P
 postDrawHooks, $.jqplot.$.jqplot
 postDrawSeriesHooks, $.jqplot.$.jqplot
 postDrawSeriesShadowHooks, $.jqplot.$.jqplot
 postInitHooks, $.jqplot.$.jqplot
 postParseOptionsHooks, $.jqplot.$.jqplot
 postParseSeriesOptionsHooks, $.jqplot.$.jqplot
 postSeriesInitHooks, $.jqplot.$.jqplot
 preDrawHooks, $.jqplot.$.jqplot
 preDrawLegendHooks, $.jqplot.$.jqplot
 preDrawSeriesHooks, $.jqplot.$.jqplot
 preDrawSeriesShadowHooks, $.jqplot.$.jqplot
 preInitHooks, $.jqplot.$.jqplot
 preParseOptionsHooks, $.jqplot.$.jqplot
 preParseSeriesOptionsHooks, $.jqplot.$.jqplot
 preSeriesInitHooks, $.jqplot.$.jqplot
+ +
called at the end of legend draw, so plugins can add rows to the legend table.
+ + + +
called at the end of plot drawing, binds listeners to the event canvas which lays on top of the grid area.
+ + + + + + + +
called after plot draw.
called after each series is drawn.
called after series shadows are drawn.
called after initialization.
called after user options are parsed.
called after series related options are parsed.
called after series is initialized.
called before plot draw.
called before the legend is drawn.
called before each series is drawn.
called before series shadows are drawn.
called before initialization.
called before user options are parsed.
called before series related options are parsed.
called before series is initialized.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index/Properties.html b/common/chart/docs/index/Properties.html new file mode 100644 index 0000000..d743365 --- /dev/null +++ b/common/chart/docs/index/Properties.html @@ -0,0 +1,42 @@ + + +Property Index + + + + + + + + + +
Property Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
A
 activeTheme, $.jqplot.ThemeEngine
 alignTicks, $.jqplot.LinearAxisRenderer
 alpha, $.jqplot.shadowRenderer
 angle
 animate, jqPlot
 animateReplot, jqPlot
 autoscale, Axis
 autoscaleBubbles, $.jqplot.BubbleRenderer
 autoscaleMultiplier, $.jqplot.BubbleRenderer
 autoscalePointsFactor, $.jqplot.BubbleRenderer
 axes, jqPlot
 axesDefaults, jqPlot
 axisDefaults, $.jqplot.LogAxisRenderer
B
 background
 bandData, $.jqplot.LineRenderer
 barDirection, $.jqplot.BarRenderer
 barLabelOptions, $.jqplot.MekkoAxisRenderer
 barLabelRenderer, $.jqplot.MekkoAxisRenderer
 barLabels, $.jqplot.MekkoAxisRenderer
 barMargin, $.jqplot.BarRenderer
 barPadding
 barWidth, $.jqplot.BarRenderer
 baselineColor
 baselineWidth
 bodyWidth, $.jqplot.OHLCRenderer
 border, Legend
 borderColor
 borderWidth
 breakOnNull, Series
 breakPoints, $.jqplot.LinearAxisRenderer
 breakTickLabel, $.jqplot.LinearAxisRenderer
 bringSeriesToFront, $.jqplot.Highlighter
 bubbleAlpha, $.jqplot.BubbleRenderer
 bubbleGradients, $.jqplot.BubbleRenderer
C
 candleStick, $.jqplot.OHLCRenderer
 clearRect, $.jqplot.shapeRenderer
 clickReset, $.jqplot.Cursor
 closeColor, $.jqplot.OHLCRenderer
 color
 constrainOutsideZoom, $.jqplot.Cursor
 constrainSmoothing, $.jqplot.LineRenderer
 constrainTo, $.jqplot.Dragable
 constrainZoomTo, $.jqplot.Cursor
 css, $.jqplot.BlockRenderer
 cursorLegendFormatString, $.jqplot.Cursor
+ +
this.activeTheme=null
Pointer to currently active theme
this.alignTicks = false
true to align tick marks across opposed axes such as from the y2axis to yaxis.
this.alpha = 0.07
alpha transparency of shadow stroke.
this.angle = 0
angle of text, measured clockwise from x axis.
this.angle = 0
angle of text, measured clockwise from x axis.
this.angle = 45
Angle of the shadow in degrees.
this.animate = false
True to animate the series on initial plot draw (renderer dependent).
this.animateReplot = false
True to animate series after a call to the replot() method.
this.autoscale = false
DEPRECATED the default scaling algorithm produces superior results.
this.autoscaleBubbles = true
True to scale the bubble radius based on plot size.
this.autoscaleMultiplier = 1.0
Multiplier the bubble size if autoscaleBubbles is true.
this.autoscalePointsFactor = -0.07
Factor which decreases bubble size based on how many bubbles on on the chart.
this.axes = {xaxis: new Axis('xaxis'), yaxis: new Axis('yaxis'), x2axis: new Axis('x2axis'), y2axis: new Axis('y2axis'), y3axis: new Axis('y3axis'), y4axis: new Axis('y4axis'), y5axis: new Axis('y5axis'), y6axis: new Axis('y6axis'), y7axis: new Axis('y7axis'), y8axis: new Axis('y8axis'), y9axis: new Axis('y9axis'), yMidAxis: new Axis('yMidAxis')}
up to 4 axes are supported, each with its own options, See Axis for axis specific options.
default options that will be applied to all axes.
Default properties which will be applied directly to the series.
+ + + +
this.background = "#efefef"
background color of the inside of the gauge.
this.background = '#fffdf6'
css spec for the background color.
this.background
css spec for the background of the legend box.
this.renderer.bandData = []
Data used to draw error bands or confidence intervals above/below a line.
this.barDirection = 'vertical'
‘vertical’ = up and down bars, ‘horizontal’ = side to side bars
this.barLabelOptions = {}
options object to pass to the bar label renderer.
this.barLabelRenderer = $.jqplot.AxisLabelRenderer
renderer to use to draw labels under each bar.
this.barLabels = this.barLabels || []
array of labels to put under each bar.
this.barMargin = 10
Number of pixels between groups of bars at adjacent axis values.
this.barPadding = 10
this.barPadding = 8
Number of pixels between adjacent bars at the same axis value.
this.barWidth = null
Width of the bar in pixels (auto by devaul).
this.baselineColor = null
CSS color spec for the baseline.
this.baselineColor = null
CSS color spec for the baseline.
this.baselineColor = null
CSS color spec for the baseline.
this.baselineWidth = null
width of the baseline in pixels.
this.baselineWidth = null
width of the baseline in pixels.
this.baselineWidth = null
width of the baseline in pixels.
this.bodyWidth = 'auto'
width of the candlestick body in pixels.
this.border
css spec for the border around the legend box.
this.borderColor = null
color of the borders between areas on the chart
this.borderColor = null
color of the border adjacent to the axis.
this.borderColor = '#999999'
css spec for the color of the grid border.
this.borderWidth = null
width of line stroked at the border of the axis.
this.borderWidth = 2.0
width of the border in pixels.
this.breakOnNull = false
Wether line segments should be be broken at null value.
this.breakPoints = null
EXPERIMENTAL!! 
this.breakTickLabel = "&asymp
Label to use at the axis break if breakPoints are specified.
this.bringSeriesToFront = false
This option requires jQuery 1.4+ True to bring the series of the highlighted point to the front of other series.
this.bubbleAlpha = 1.0
Alpha transparency to apply to all bubbles in this series.
this.bubbleGradients = false
True to color the bubbles with gradient fills instead of flat colors.
+ + + +
this.candleStick = false
true to render chart as candleStick.
this.clearRect = false
true to cear a rectangle.
this.clickReset = false
Will reset plot zoom if single click on plot without drag.
this.closeColor = null
color of the close price tick mark.
color of the line
this.color
CSS color spec for the dragged point (and adjacent line segment or bar).
color of lines at top and bottom of bands [default: series color].
this.color = '#666666'
color of marker.
this.color = '#666666'
CSS color spec for the trend line.
this.color
css color spec for the series
this.constrainOutsideZoom = true
True to limit actual zoom area to edges of grid, even when zooming outside of plot area.
this.renderer.constrainSmoothing = true
True to use a more accurate smoothing algorithm that will not overshoot any data points.
this.constrainTo = 'none'
Constrain dragging motion to an axis or to none.
this.constrainZoomTo = 'none'
‘none’, ‘x’ or ‘y’
this.css = {padding:'2px', border:'1px solid #999', textAlign:'center'}
default css styles that will be applied to all data blocks.
this.cursorLegendFormatString = $.jqplot.Cursor.cursorLegendFormatString
Format string used in the cursor legend.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index/Properties2.html b/common/chart/docs/index/Properties2.html new file mode 100644 index 0000000..5287ad1 --- /dev/null +++ b/common/chart/docs/index/Properties2.html @@ -0,0 +1,42 @@ + + +Property Index + + + + + + + + + +
Property Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
D
 dashPattern
 data, jqPlot
 dataLabelCenterOn, $.jqplot.PieRenderer
 dataLabelFormatString
 dataLabelNudge
 dataLabelPositionFactor
 dataLabels
 dataLabelThreshold
 dataRenderer, jqPlot
 dataRendererOptions, jqPlot
 dblClickReset, $.jqplot.Cursor
 defaultAxisStart, jqPlot
 depth, $.jqplot.shadowRenderer
 diameter
 disableIEFading
 disableStack, Series
 downBodyColor, $.jqplot.OHLCRenderer
 drawBaseline
 drawBorder, Grid
 drawGridlines, Grid
 drawMajorGridlines, Axis
 drawMajorTickMarks, Axis
 drawMinorGridlines, Axis
 drawMinorTickMarks, Axis
E
 edgeTolerance, $.jqplot.PointLabels
 enableFontSupport
 escapeHtml
 escapeHTML
F
 fadeTooltip
 fill
 fillAlpha, Series
 fillAndStroke, Series
 fillAxis, Series
 fillBetween, jqPlot
 fillColor
 fillDownBody, $.jqplot.OHLCRenderer
 fillRect, $.jqplot.shapeRenderer
 fillStyle, $.jqplot.shapeRenderer
 fillToValue, Series
 fillToZero, Series
 fillUpBody, $.jqplot.OHLCRenderer
 followMouse, $.jqplot.Cursor
 fontFamily
 fontSize
 fontStretch
 fontWeight
 forceTickAt0, $.jqplot.LinearAxisRenderer
 forceTickAt100, $.jqplot.LinearAxisRenderer
 formatString
 formatter
+ +
dashPattern: [8,8] }
Array of line, space settings in pixels.
dashPattern: [8,8] }
Array of line, space settings in pixels.
this.data = []
user’s data.
this.dataLabelCenterOn = true
True to center the data label at its position.
this.dataLabelFormatString = null
Format string for data labels.
this.dataLabelFormatString = null
Format string for data labels.
this.dataLabelFormatString = null
Format string for data labels.
this.dataLabelNudge = 0
Number of pixels to slide the label away from (+) or toward (-) the center of the pie.
this.dataLabelNudge = 2
Number of pixels to slide the label away from (+) or toward (-) the center of the pie.
this.dataLabelPositionFactor = 0.4
A Multiplier (0-1) of the pie radius which controls position of label on slice.
this.dataLabelPositionFactor = 0.52
A Multiplier (0-1) of the pie radius which controls position of label on slice.
this.dataLabels = 'percent'
Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
this.dataLabels = 'percent'
Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
this.dataLabels = 'percent'
Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
this.dataLabelThreshold = 3
this.dataLabelThreshold = 3
this.dataLabelThreshold = 3
Threshhold in percentage (0-100) of pie area, below which no label will be displayed.
this.dataRenderer
A callable which can be used to preprocess data passed into the plot.
this.dataRendererOptions
Options that will be passed to the dataRenderer.
this.dblClickReset = true
Will reset plot zoom if double click on plot without drag.
this.defaultAxisStart = 1
1-D data series are internally converted into 2-D [x,y] data point arrays by jqPlot.
this.depth = 3
how many times the shadow is stroked.
this.diameter = null
Outer diameter of the donut, auto computed by default
this.diameter = null
Outer diameter of the meterGauge, auto computed by default
this.diameter = null
Outer diameter of the pie, auto computed by default
this.disableIEFading = true
true to toggle series with a show/hide method only and not allow fading in/out.
this.disableStack = false
true to not stack this series with other series in the plot.
this.downBodyColor = null
Color of candlestick body on a “down” day.
this.drawBaseline = true
True to draw the axis baseline.
this.drawBaseline = true
True to draw the axis baseline.
this.drawBaseline = true
True to draw the axis baseline.
this.drawBaseline = true
True to draw the axis baseline.
this.drawBorder = true
True to draw border around grid.
this.drawGridlines = true
whether to draw the gridlines on the plot.
this.drawMajorGridlines = true
True to draw gridlines for major axis ticks.
this.drawMajorTickMarks = true
True to draw tick marks for major axis ticks.
this.drawMinorGridlines = false
True to draw gridlines for minor ticks.
this.drawMinorTickMarks = true
True to draw tick marks for minor ticks.
+ + + +
this.edgeTolerance = -5
Number of pixels that the label must be away from an axis boundary in order to be drawn.
this.enableFontSupport = true
true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
this.enableFontSupport = true
true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
this.escapeHtml = false
true to escape html in the box label.
this.escapeHtml = true
True to escape html in bubble label text.
this.escapeHtml = false
True to escape special characters with their html entity equivalents in legend text.
this.escapeHtml = false
True to escape special characters with their html entity equivalents in title text.
this.escapeHTML = false
true to escape HTML entities in the label.
this.escapeHTML = false
true to escape HTML entities in the label.
this.escapeHTML = true
true to escape html entities in the labels.
+ + + +
true = fade in/out tooltip, flase = show/hide tooltip
this.fadeTooltip = true
true = fade in/out tooltip, flase = show/hide tooltip
this.fill = true
True to fill the bars.
this.fill = true
true or false, whether to fil the slices.
this.fill = true
true or false, whether to fill the areas.
True to fill area between bands [default: true].
this.fill = true
true or false, whether to fil the slices.
this.fill = false
whether to fill the shape.
this.fill = false
whether to fill the shape.
this.fill = false
true or false, whether to fill under lines or in bars.
this.fillAlpha
Alpha transparency to apply to the fill under the line.
this.fillAndStroke = false
If true will stroke the line (with color this.color) as well as fill under it.
this.fillAxis = 'y'
Either ‘x’ or ‘y’.
this.fillBetween = { series1: null, series2: null, color: null, baseSeries: 0, fill: true }
Fill between 2 line series in a plot.
css color spec for filled area.
this.fillColor
CSS color spec to use for fill under line.
this.fillDownBody = true
true to render a “down” day (close price lower than open price) with a filled candlestick body.
this.fillRect = false
true to draw shape as a filled rectangle.
this.fillStyle = '#999999'
css color spec for the fill style.
this.fillToValue = 0
fill a filled series to this value on the fill axis.
this.fillToZero = false
true will force bar and filled series to fill toward zero on the fill Axis.
this.fillUpBody = false
true to render an “up” day (close price greater than open price) with a filled candlestick body.
this.followMouse = false
Tooltip follows the mouse, it is not at a fixed location.
this.fontFamily
css spec for the font-family css attribute.
this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif'
CSS spec for the font-family css attribute.
this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif'
css spec for the font-family css attribute.
this.fontFamily
css font-family spec for the legend text.
this.fontFamily
css font-family spec for the text.
this.fontSize
css spec for the font-size css attribute.
this.fontSize = '11pt'
CSS spec for font size.
this.fontSize = '10pt'
CSS spec for font size.
this.fontSize
css spec for the font-size attribute.
this.fontSize
css font-size spec for the legend text.
this.fontSize
css font-size spec for the text.
this.fontStretch = 1.0
Multiplier to condense or expand font width.
this.fontStretch = 1.0
Multiplier to condense or expand font width.
this.fontWeight = 'normal'
this.fontWeight = 'normal'
CSS spec for fontWeight
this.forceTickAt0 = false
This will ensure that there is always a tick mark at 0.
this.forceTickAt100 = false
This will ensure that there is always a tick mark at 100.
this.formatString = ''
string passed to the formatter.
this.formatString = ''
string passed to the formatter.
this.formatString = null
alternative to tooltipFormatString will format the whole tooltip text, populating with x, y values as indicated by tooltipAxes option.
this.formatString = ''
string passed to the formatter.
this.formatter = $.jqplot.DefaultTickFormatter
A class of a formatter for the tick text.
this.formatter = $.jqplot.DefaultTickFormatter
A class of a formatter for the tick text.
this.formatter = $.jqplot.DefaultTickFormatter
A class of a formatter for the tick text.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index/Properties3.html b/common/chart/docs/index/Properties3.html new file mode 100644 index 0000000..7c2d31c --- /dev/null +++ b/common/chart/docs/index/Properties3.html @@ -0,0 +1,46 @@ + + +Property Index + + + + + + + + + +
Property Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
G
 grid, jqPlot
 gridLineColor, Grid
 gridLineWidth, Grid
 groups, $.jqplot.BarRenderer
H
 hideZeros, $.jqplot.PointLabels
 highlightAlpha, $.jqplot.BubbleRenderer
 highlightColor, $.jqplot.LineRenderer
 highlightColors
 highlightMouseDown
 highlightMouseOver
 hlc, $.jqplot.OHLCRenderer
 hubRadius, $.jqplot.MeterGaugeRenderer
I
 index, Series
 innerDiameter, $.jqplot.DonutRenderer
 insertBreaks, $.jqplot.BlockRenderer
 intersectionThreshold, $.jqplot.Cursor
 interval, $.jqplot.LineRenderer
 intervalColors, $.jqplot.MeterGaugeRenderer
 intervalInnerRadius, $.jqplot.MeterGaugeRenderer
 intervalOuterRadius, $.jqplot.MeterGaugeRenderer
 intervals, $.jqplot.MeterGaugeRenderer
 isarc
 isMinorTick
L
 label
 labelHeightAdjust, $.jqplot.MeterGaugeRenderer
 labelOptions, Axis
 labelPosition
 labelRenderer, Axis
 labels
 labelsFromSeries, $.jqplot.PointLabels
 legend, jqPlot
 lineCap
 lineJoin
 linePattern
 lineWidth
 lineWidthAdjust, $.jqplot.Highlighter
 location
 looseZoom, $.jqplot.Cursor
+ +
this.grid = new Grid()
See Grid for grid specific options.
this.gridLineColor = '#cccccc'
color of the grid lines.
this.gridLineWidth = 1.0
width of the grid lines.
this.groups = 1
group bars into this many groups
+ + + +
this.hideZeros = false
true to not show a label for a value which is 0.
this.highlightAlpha = null
Alpha transparency to apply when highlighting bubble.
this.highlightColor = null
color to use when highlighting an area on a filled plot.
this.highlightColors = []
an array of colors to use when highlighting a slice.
this.highlightColors = []
an array of colors to use when highlighting a bar.
this.highlightColors = []
An array of colors to use when highlighting a slice.
this.highlightColors = []
an array of colors to use when highlighting a slice.
this.highlightColors = []
array of colors to use when highlighting an area.
this.highlightColors = []
an array of colors to use when highlighting a slice.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a slice.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a slice.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a bubble.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a slice.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a area.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over an area on a filled plot.
this.highlightMouseDown = false
True to highlight when a mouse button is pressed over a slice.
this.highlightMouseOver = true
True to highlight slice when moused over.
this.highlightMouseOver = true
True to highlight slice when moused over.
this.highlightMouseOver = true
True to highlight bubbles when moused over.
this.highlightMouseOver = true
True to highlight slice when moused over.
this.highlightMouseOver = true
True to highlight area when moused over.
this.highlightMouseOver = true
True to highlight area on a filled plot when moused over.
this.highlightMouseOver = true
True to highlight slice when moused over.
this.hlc = false
true if is a hi-low-close chart (no open price).
this.hubRadius = null
Radius of the hub at the bottom center of gauge which the needle attaches to.
+ + + +
this.index
0 based index of this series in the plot series array.
this.innerDiameter = null
Inner diameter of the donut, auto calculated by default.
this.insertBreaks = true
true to turn spaces in data block label into html breaks br /.
this.intersectionThreshold = 2
pixel distance from data point or marker to consider cursor lines intersecting with point.
interval: '3%' }
User specified interval above and below line for bands [default: ‘3%’’].
this.intervalColors = [ "#4bb2c5", "#EAA228", "#c5b47f", "#579575", "#839557", "#958c12", "#953579", "#4b5de4", "#d8b83f", "#ff5800", "#0085cc", "#c747a3", "#cddf54", "#FBD178", "#26B4E3", "#bd70c7"]
Array of colors to use for the intervals.
this.intervalInnerRadius = null
Radius of the inner circle of the interval ring.
this.intervalOuterRadius = null
Radius of the outer circle of the interval ring.
this.intervals = []
Array of ranges to be drawn around the gauge.
this.isarc = false
whether the shadow is an arc or not.
this.isarc = false
whether the shadow is an arc or not.
this.isMinorTick = false
if this is a minor tick.
this.isMinorTick = false
if this is a minor tick.
+ + + +
this.label = ''
The text or html for the label.
this.label = ''
label for the axis.
this.label = null
A gauge label like ‘kph’ or ‘Volts’
this.label = ''
Label for the trend line to use in the legend.
this.label = null
Label for the axis
this.label = ''
Line label to use in the legend.
this.labelHeightAdjust = 0
Number of Pixels to offset the label up (-) or down (+) from its default position.
this.labelOptions = {}
Options passed to the label renderer.
this.labelPosition = 'auto'
‘auto’, ‘start’, ‘middle’ or ‘end’.
this.labelPosition = 'inside'
Where to position the label, either ‘inside’ or ‘bottom’.
this.labelRenderer = $.jqplot.AxisLabelRenderer
A class of a rendering engine for creating an axis label.
this.labels = []
array of arrays of labels, one array for each series.
this.labels = []
Array of labels to use.
this.labelsFromSeries = false
true to use labels within data point arrays.
this.legend = new Legend()
see $.jqplot.TableLegendRenderer
Type of ending placed on the line [‘round’, ‘butt’, ‘square’]
this.lineCap = 'round'
how ends of the shadow line are rendered.
this.lineCap = 'round'
how ends of the shadow line are rendered.
this.lineCap = 'round'
Canvas lineCap style at ends of line.
this.lineJoin = 'miter'
How line segments of the shadow are joined.
this.lineJoin = 'miter'
How line segments of the shadow are joined.
this.lineJoin = 'round'
Canvas lineJoin style between segments of series.
this.linePattern = 'solid'
line pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
this.linePattern = 'solid'
line pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
Width of the line.
this.lineWidth = 2
width of line if areas are stroked and not filled.
this.lineWidth = 2
size of the line for non-filled markers.
this.lineWidth = 1.5
Width of the hi-low line and open/close ticks.
this.lineWidth = 1.5
width of the shadow line stroke.
this.lineWidth = 1.5
Width of the trend line.
this.lineWidth = 2.5
width of the line in pixels.
this.lineWidthAdjust = 2.5
Pixels to add to the lineWidth of the highlight.
this.location = 'n'
compass location where to position the label around the point.
this.location = 'ne'
Placement of the legend.
this.looseZoom = true
Will expand zoom range to provide more rounded tick values.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index/Properties4.html b/common/chart/docs/index/Properties4.html new file mode 100644 index 0000000..88c2ce7 --- /dev/null +++ b/common/chart/docs/index/Properties4.html @@ -0,0 +1,50 @@ + + +Property Index + + + + + + + + + +
Property Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
M
 marginBottom, Legend
 marginLeft, Legend
 marginRight, Legend
 marginTop, Legend
 mark
 markerOptions, Series
 markerRenderer
 markSize
 max
 min
 minorTicks
N
 name, $.jqplot.CanvasOverlay
 needlePad, $.jqplot.MeterGaugeRenderer
 needleThickness, $.jqplot.MeterGaugeRenderer
 negativeColor, Series
 negativeSeriesColors, jqPlot
 neighborThreshold, Series
 noDataIndicator, jqPlot
 numberColumns
 numberRows
 numberTicks, Axis
O
 objects, $.jqplot.CanvasOverlay
 offset, $.jqplot.shadowRenderer
 offsetBars
 openColor, $.jqplot.OHLCRenderer
P
 pad, Axis
 padding
 padMax, Axis
 padMin, Axis
 pegNeedle, $.jqplot.MeterGaugeRenderer
 placement, Legend
 position
 predraw, Legend
 prefix
 pt2px
R
 renderer
 rendererOptions
 ringColor, $.jqplot.MeterGaugeRenderer
 ringMargin, $.jqplot.DonutRenderer
 ringWidth, $.jqplot.MeterGaugeRenderer
 rowSpacing, Legend
+ +
this.marginBottom = null
CSS margin for the legend DOM element.
this.marginLeft = null
CSS margin for the legend DOM element.
this.marginRight = null
CSS margin for the legend DOM element.
this.marginTop = null
CSS margin for the legend DOM element.
this.mark = 'outside'
tick mark on the axis.
this.mark = 'outside'
tick mark on the axis.
this.markerOptions = {}
renderer specific options to pass to the markerRenderer, see $.jqplot.MarkerRenderer.
this.markerRenderer = new $.jqplot.MarkerRenderer({shadow:false})
Renderer used to draw the marker of the highlighted point.
this.markerRenderer = {show:false}
Renderer to use to draw markers on the line.
this.markerRenderer = $.jqplot.MarkerRenderer
A class of a renderer which will draw marker (e.g.
this.markSize = 6
Length of the tick marks in pixels.
this.markSize = 4
Length of the tick marks in pixels.
this.max
Maximum value on the gauge.
this.max = null
maximum value of the axis (in data units, not pixels).
this.min
Minimum value on the gauge.
this.min = null
minimum value of the axis (in data units, not pixels).
this.minorTicks = 0
Number of ticks to add between “major” ticks.
this.minorTicks = 'auto'
Number of ticks to add between “major” ticks.
+ + + +
Optional name for the overlay object.
this.needlePad = 6
Padding between needle and inner edge of the ring when the needle is at the min or max gauge value.
this.needleThickness = null
Maximum thickness the needle.
this.negativeColor
css color spec used for filled (area) plots that are filled to zero and the “useNegativeColors” option is true.
this.negativeSeriesColors = $.jqplot.config.defaultNegativeColors
colors to use for portions of the line below zero.
this.neighborThreshold = 4
how close or far (in pixels) the cursor must be from a point marker to detect the point.
this.noDataIndicator = { show: false, indicator: 'Loading Data...', axes: { xaxis: { min: 0, max: 10, tickInterval: 2, show: true }, yaxis: { min: 0, max: 12, tickInterval: 3, show: true } } }
Options to set up a mock plot with a data loading indicator if no data is specified.
this.numberColumns = null
Maximum number of columns in the legend.
this.numberColumns = null
Maximum number of columns in the legend.
this.numberColumns = null
Maximum number of columns in the legend.
this.numberColumns = null
Maximum number of columns in the legend.
this.numberColumns = null
Maximum number of columns in the legend.
this.numberRows = null
Maximum number of rows in the legend.
this.numberRows = null
Maximum number of rows in the legend.
this.numberRows = null
Maximum number of rows in the legend.
this.numberRows = null
Maximum number of rows in the legend.
this.numberRows = null
Maximum number of rows in the legend.
this.numberTicks
Desired number of ticks.
+ + + +
this.objects = []
this.offset = 1
Pixel offset at the given shadow angle of each shadow stroke from the last stroke.
this.offsetBars = false
False will center bars on their y value.
this.openColor = null
color of the open price tick mark.
+ + + +
this.pad = 1.2
Padding to extend the range above and below the data bounds.
this.padding = 20
padding between the donut and plot edges, legend, etc.
this.padding = {top: 20, right: 20, bottom: 20, left: 20}
padding between the funnel and plot edges, legend, etc.
this.padding = null
padding between the meterGauge and plot edges, auto calculated by default.
this.padding = 20
padding between the pie and plot edges, legend, etc.
this.padMax = null
Padding to extend the range above data bounds.
this.padMin = null
Padding to extend the range below data bounds.
this.pegNeedle = true
True will stop needle just below/above the min/max values if data is below/above min/max, as if the meter is “pegged”.
this.placement = "insideGrid"
“insideGrid” places legend inside the grid area of the plot.
this.position = null
Position of axis.
Wether to draw the legend before the series or not.
this.prefix = ''
String to prepend to the tick label.
this.prefix = ''
String to prepend to the tick label.
this.pt2px = null
Point to pixel scaling factor, used for computing height of bounding box around a label.
this.pt2px = null
Point to pixel scaling factor, used for computing height of bounding box around a label.
+ + + +
this.renderer = new $.jqplot.LineRenderer()
Renderer to use to draw the trend line.
this.renderer = $.jqplot.LinearAxisRenderer
A class of a rendering engine that handles tick generation, scaling input data to pixel grid units and drawing the axis element.
this.renderer = $.jqplot.CanvasGridRenderer
Instance of a renderer which will actually render the grid, see $.jqplot.CanvasGridRenderer.
this.renderer = $.jqplot.LineRenderer
A class of a renderer which will draw the series, see $.jqplot.LineRenderer.
this.renderer = $.jqplot.DivTitleRenderer
A class for creating a DOM element for the title, see $.jqplot.DivTitleRenderer.
this.rendererOptions = {marker:{show:false}}
Options to pass to the line renderer.
this.rendererOptions = {}
renderer specific options.
this.rendererOptions = {}
Options to pass on to the renderer, see $.jqplot.CanvasGridRenderer.
this.rendererOptions = {}
renderer specific options passed to the renderer.
this.rendererOptions = {}
Options to pass on to the renderer.
this.rendererOptions = {}
renderer specific options passed to the renderer.
this.ringColor = "#BBC6D0"
color of the outer ring, hub, and needle of the gauge.
this.ringMargin = null
pixel distance between rings, or multiple series in a donut plot.
this.ringWidth = null
width of the ring around the gauge.
this.rowSpacing = '0.5em'
css padding-top spec for the rows in the legend.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index/Properties5.html b/common/chart/docs/index/Properties5.html new file mode 100644 index 0000000..6cb2602 --- /dev/null +++ b/common/chart/docs/index/Properties5.html @@ -0,0 +1,34 @@ + + +Property Index + + + + + + + + + +
Property Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
S
 scaleToHiddenSeries, Axis
 sectionMargin, $.jqplot.FunnelRenderer
 series, jqPlot
 seriesColors, jqPlot
 seriesDefaults, jqPlot
 seriesLabelIndex, $.jqplot.PointLabels
 seriesToggle
 seriesToggleReplot
 shadow
 shadowAlpha
 shadowAngle
 shadowColor, Grid
 shadowDepth
 shadowOffset
 shadowRenderer, $.jqplot.MarkerRenderer
 shadowWidth, Grid
 shapeRenderer, $.jqplot.MarkerRenderer
 show
 showBorders, $.jqplot.MekkoRenderer
 showCursorLegend, $.jqplot.Cursor
 showDataLabels
 showGridline
 showHorizontalLine, $.jqplot.Cursor
 showLabel
 showLabels
 showLine, Series
 showLines, $.jqplot.LineRenderer
 showMark
 showMarker
 showMinorTicks, Axis
 showSwatch, Legend
 showTickLabels, $.jqplot.MeterGaugeRenderer
 showTickMarks, Axis
 showTicks
 showTooltip
 showTooltipDataPosition, $.jqplot.Cursor
 showTooltipGridPosition, $.jqplot.Cursor
 showTooltipOutsideZoom, $.jqplot.Cursor
 showTooltipPrecision, $.jqplot.CanvasOverlay
 showTooltipUnitPosition, $.jqplot.Cursor
 showVerticalLine, $.jqplot.Cursor
 size
 sizeAdjust, $.jqplot.Highlighter
 sliceMargin
 smooth, $.jqplot.LineRenderer
 sortData, jqPlot
 sortMergedLabels, $.jqplot.CategoryAxisRenderer
 stackedValue, $.jqplot.PointLabels
 stackSeries, jqPlot
 start, Line
 startAngle
 stop, Line
 strokeRect, $.jqplot.shapeRenderer
 strokeStyle, $.jqplot.shapeRenderer
 style
 suffix, $.jqplot.AxisTickRenderer
 synchronizeHighlight
 syncTicks, Axis
+ +
this.scaleToHiddenSeries = false
True to include hidden series when computing axes bounds and scaling.
this.sectionMargin = 6
spacing between funnel sections in pixels.
this.series = []
Array of series object options.
this.seriesColors = $.jqplot.config.defaultColors
Ann array of CSS color specifications that will be applied, in order, to the series in the plot.
seriesDefaults: {}, series:[] }
default options that will be applied to all series.
this.seriesLabelIndex = null
array index for location of labels within data point arrays.
this.seriesToggle = 'normal'
false to not enable series on/off toggling on the legend.
this.seriesToggleReplot = false
True to replot the chart after toggling series on/off.
whether or not to draw a shadow on the line
this.shadow = true
whether or not to draw a shadow on the line
this.shadow = true
true or false, whether or not to show the shadow.
this.shadow = true
whether to show a shadow behind the grid.
this.shadowAlpha = 0.08
transparency of the shadow (0 = transparent, 1 = opaque)
Alpha channel transparency of shadow.
this.shadowAlpha = 0.07
transparency of the shadow (0 = transparent, 1 = opaque)
this.shadowAlpha = 0.07
transparency of the shadow (0 = transparent, 1 = opaque)
this.shadowAlpha = '0.07'
Alpha channel transparency of shadow.
this.shadowAlpha = 0.07
transparency of the shadow (0 = transparent, 1 = opaque)
this.shadowAlpha = 0.07
transparency of the shadow (0 = transparent, 1 = opaque)
this.shadowAlpha = 0.07
Alpha transparency of the shadow.
this.shadowAlpha = '0.07'
Alpha channel transparency of shadow.
this.shadowAlpha = '0.1'
Alpha channel transparency of shadow.
Shadow angle in degrees
this.shadowAngle = 45
Shadow angle in degrees
this.shadowAngle = 45
Angle of the shadow on the trend line.
this.shadowAngle = 45
shadow angle in degrees
this.shadowAngle = 45
Shadow angle in degrees
this.shadowColor = null
an optional css color spec for the shadow in ‘rgba(n, n, n, n)’ form
this.shadowDepth = 5
number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
Number of times shadow is stroked, each stroke offset shadowOffset from the last.
this.shadowDepth = 5
number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
this.shadowDepth = 5
number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
this.shadowDepth = 3
Number of times shadow is stroked, each stroke offset shadowOffset from the last.
this.shadowDepth = 4
number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
this.shadowDepth = 5
number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
this.shadowDepth = 3
number of strokes to make of the shadow.
this.shadowDepth = 3
Number of times shadow is stroked, each stroke offset shadowOffset from the last.
this.shadowDepth = 3
Number of times shadow is stroked, each stroke offset shadowOffset from the last.
this.shadowOffset = 2
offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
Shadow offset from line in pixels
this.shadowOffset = 2
offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
this.shadowOffset = 2
offset of the shadow from the area and offset of each succesive stroke of the shadow from the last.
this.shadowOffset = 1
Shadow offset from line in pixels
this.shadowOffset = 2
offset of the shadow from the gauge ring and offset of each succesive stroke of the shadow from the last.
this.shadowOffset = 2
offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
this.shadowOffset = 1.0
pixel offset for each stroke of the shadow.
this.shadowOffset = 1.5
Offset of each shadow stroke from the border in pixels
this.shadowOffset = 1.25
Shadow offset from line in pixels
this.shadowRenderer = new $.jqplot.ShadowRenderer()
Renderer that will draws the shadows on the marker.
this.shadowWidth = 3
width of the stoke for the shadow
this.shapeRenderer = new $.jqplot.ShapeRenderer()
Renderer that will draw the marker.
this.show = true
whether or not to show the tick (mark and label).
this.show = true
whether or not to show the tick (mark and label).
this.show = true
whether or not to show the tick (mark and label).
this.show = true
whether or not to show the tick (mark and label).
true to show (draw), false to not draw.
this.show = $.jqplot.config.enablePlugins
whether to show the cursor or not.
this.show = $.jqplot.config.enablePlugins
true to show the highlight.
true to show the bands.
this.show = true
whether or not to show the marker.
this.show = $.jqplot.config.enablePlugins
show the labels or not.
this.show = $.jqplot.config.enablePlugins
Wether or not to show the trend line.
this.show = false
Wether to display the axis on the graph.
this.show = false
Wether to display the legend on the graph.
this.show = true
whether or not to draw the series.
this.show = true
whether or not to show the title
this.showBorders = true
True to draw borders lines between areas on the chart.
this.showCursorLegend = false
Replace the plot legend with an enhanced legend displaying intersection information.
this.showDataLabels = false
true to show data labels on slices.
this.showDataLabels = false
true to show data labels on slices.
this.showDataLabels = false
true to show data labels on slices.
this.showGridline = true
whether or not to draw the gridline on the grid at this tick.
this.showGridline = true
whether or not to draw the gridline on the grid at this tick.
this.showHorizontalLine = false
draw a horizontal line across the plot which follows the cursor.
this.showLabel = true
whether or not to show the label.
this.showLabel = true
whether or not to show the label.
this.showLabel = true
whether or not to show the label.
this.showLabel = true
true to show the axis label.
this.showLabel = true
true to show label for this series in the legend.
this.showLabels = true
True to show labels on bubbles (if any), false to not show.
this.showLabels = true
true to show the label text on the legend.
this.showLine = true
whether to actually draw the line or not.
True to show lines at top and bottom of bands [default: false].
this.showMark = true
whether or not to show the mark on the axis.
this.showMark = true
whether or not to show the mark on the axis.
this.showMarker = true
true to show the marker
this.showMarker = true
whether or not to show the markers at the data points.
this.showMinorTicks = true
Wether or not to show minor ticks.
this.showSwatches = true
true to show the color swatches on the legend.
this.showTickLabels = true
true to show tick labels next to ticks.
this.showTickMarks = true
Wether to show the tick marks (line crossing grid) or not.
this.showTicks = true
true to show ticks around gauge.
this.showTicks = true
Wether to show the ticks (both marks and labels) or not.
Show a tooltip with data point values.
this.showTooltip = true
show a cursor position tooltip.
this.showTooltip = true
Show a tooltip with data point values.
this.showTooltipDataPosition = false
Used with showVerticalLine to show intersecting data points in the tooltip.
this.showTooltipGridPosition = false
show the grid pixel coordinates of the mouse.
this.showTooltipOutsideZoom = false
True will keep updating the tooltip when zooming of the grid.
Controls how close to line cursor must be to show tooltip.
this.showTooltipUnitPosition = true
show the unit (data) coordinates of the mouse.
this.showVerticalLine = false
draw a vertical line across the plot which follows the cursor.
this.size = 4
Length of the tick beyond the grid in pixels.
this.size = 9.0
Size of the marker (diameter or circle, length of edge of square, etc.)
this.sizeAdjust = 5
Pixels to add to the overall size of the highlight.
this.sliceMargin = 0
angular spacing between donut slices in degrees.
this.sliceMargin = 0
angular spacing between pie slices in degrees.
this.renderer.smooth = false
True to draw a smoothed (interpolated) line through the data points with automatically computed number of smoothing points.
this.sortData = true
false to not sort the data passed in by the user.
this.sortMergedLabels = false
True to sort tick labels when labels are created by merging x axis values from multiple series.
this.stackedValue = false
true to display value as stacked in a stacked plot.
this.stackSeries = false
true or false, creates a stack or “mountain” plot.
[x, y] coordinates for the start of the line.
this.startAngle = 0
Angle to start drawing donut in degrees.
this.startAngle = 0
Angle to start drawing pie in degrees.
stop: [] }
[x, y] coordinates for the end of the line.
this.strokeRect = false
true to draw shape as a stroked rectangle.
this.strokeStyle = '#999999'
css color spec for the stoke style
this.style = 'crosshair'
CSS spec for cursor style
this.style = 'filledCircle'
One of diamond, circle, square, x, plus, dash, filledDiamond, filledCircle, filledSquare
this.suffix = ''
String to append to the tick label.
this.synchronizeHighlight = false
Index of another series to highlight when this series is highlighted.
this.syncTicks = null
true to try and synchronize tick spacing across multiple axes so that ticks and grid lines line up.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index/Properties6.html b/common/chart/docs/index/Properties6.html new file mode 100644 index 0000000..0972bc6 --- /dev/null +++ b/common/chart/docs/index/Properties6.html @@ -0,0 +1,58 @@ + + +Property Index + + + + + + + + + +
Property Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
T
 text, Title
 textAlign, Title
 textColor
 themes, $.jqplot.ThemeEngine
 thickness, $.jqplot.DonutRenderer
 tickColor, $.jqplot.MeterGaugeRenderer
 tickInset
 tickInterval, Axis
 tickLength, $.jqplot.OHLCRenderer
 tickMode, $.jqplot.MekkoAxisRenderer
 tickOptions, Axis
 tickPadding, $.jqplot.MeterGaugeRenderer
 tickRenderer
 ticks
 tickSpacing
 title, jqPlot
 tooltipAxes, $.jqplot.Highlighter
 tooltipAxisGroups, $.jqplot.Cursor
 tooltipFadeSpeed
 tooltipFormatString
 tooltipLocation
 tooltipOffset
 transposedData, $.jqplot.BarRenderer
 type, $.jqplot.Trendline
U
 upBodyColor, $.jqplot.OHLCRenderer
 useAxesFormatters
 useNegativeColors, Series
 useSeriesColor, Axis
V
 varyBarColor, $.jqplot.BarRenderer
 varyBlockColors, $.jqplot.BlockRenderer
 varyBubbleColors, $.jqplot.BubbleRenderer
W
 waterfall, $.jqplot.BarRenderer
 wickColor, $.jqplot.OHLCRenderer
 widthRatio, $.jqplot.FunnelRenderer
X
 xaxis
 xmax
 xmin
 xoffset, Legend
 xpadding, $.jqplot.PointLabels
Y
 y, HorizontalLine
 yaxis
 yoffset, Legend
 ypadding, $.jqplot.PointLabels
 yvalues, $.jqplot.Highlighter
Z
 zoom, $.jqplot.Cursor
+ +
this.text = text
text of the title;
this.textAlign
css text-align spec for the text.
this.textColor
css spec for the color attribute.
this.textColor = '#666666'
css spec for the color attribute.
this.textColor = '#666666'
css spec for the color attribute.
this.textColor
css color spec for the legend text.
this.textColor
css color spec for the text.
this.themes = {}
hash of themes managed by the theme engine.
this.thickness = null
thickness of the donut, auto computed by default Overridden by if innerDiameter is specified.
this.tickColor = "#989898"
color of the tick marks around the gauge.
this.tickInset = 0
Controls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.
this.tickInset = 0
Controls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.
this.tickInterval
number of units between ticks.
this.tickLength = 'auto'
length of the line in pixels indicating open and close price.
this.tickMode
How to space the ticks on the axis.
this.tickOptions = {}
Options that will be passed to the tickRenderer, see $.jqplot.AxisTickRenderer options.
this.tickPadding = null
padding of the tick marks to the outer ring and the tick labels to marks.
A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
this.tickRenderer = $.jqplot.AxisTickRenderer
A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
this.ticks = []
Array of tick values.
this.ticks = []
1D [val, val, ...] or 2D [[val, label], [val, label], ...] array of ticks for the axis.
this.tickSpacing = 30
Degrees between ticks.
this.tickSpacing = 75
Approximate pixel spacing between ticks on graph.
this.title = new Title()
Title object.
this.tooltipAxes = 'both'
Which axes to display in tooltip, ‘x’, ‘y’ or ‘both’, ‘xy’ or ‘yx’ ‘both’ and ‘xy’ are equivalent, ‘yx’ reverses order of labels.
this.tooltipAxisGroups = []
Show position for the specified axes.
‘slow’, ‘def’, ‘fast’, or number of milliseconds.
this.tooltipFadeSpeed = "fast"
‘slow’, ‘def’, ‘fast’, or number of milliseconds.
tooltipFormatString: '%d, %d' }
Format string passed the x and y values of the cursor on the line.
this.tooltipFormatString = '%.4P, %.4P'
sprintf format string for the tooltip.
this.tooltipFormatString = '%.5P'
sprintf format string for the tooltip.
Where to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’
this.tooltipLocation = 'se'
Where to position tooltip.
this.tooltipLocation = 'nw'
Where to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’
Pixel offset of tooltip from the highlight.
this.tooltipOffset = 6
Pixel offset of tooltip from the grid boudaries or cursor center.
this.tooltipOffset = 2
Pixel offset of tooltip from the highlight.
this.transposedData = true
NOT IMPLEMENTED YET.
this.type = 'linear'
Either ‘exponential’, ‘exp’, or ‘linear’.
+ + + +
this.upBodyColor = null
Color of candlestick body of an “up” day.
this.useAxesFormatters = true
Use the x and y axes formatters to format the text in the tooltip.
this.useAxesFormatters = true
Use the x and y axes formatters to format the text in the tooltip.
this.useNegativeColors = true
true to color negative values differently in filled and bar charts.
this.useSeriesColor = false
Use the color of the first series associated with this axis for the tick marks and line bordering this axis.
+ + + +
this.varyBarColor = false
true to color each bar of a series separately rather than have every bar of a given series the same color.
this.varyBlockColors = false
true to vary the color of each block in this series according to the seriesColors array.
this.varyBubbleColors = true
True to vary the color of each bubble in this series according to the seriesColors array.
+ + + +
this.waterfall = false
true to enable waterfall plot.
this.wickColor = null
color of the hi-lo line thorugh the candlestick body.
this.widthRatio = 0.2
The ratio of the width of the top of the funnel to the bottom.
+ + + +
X axis to use for positioning/scaling the line.
this.xaxis = 'xaxis'
which x axis to use with this series, either ‘xaxis’ or ‘x2axis’.
x value for the end of the line, null to scale to axis max.
x value for the end of the line, null to scale to axis max.
x value for the start of the line, null to scale to axis min.
x value for the start of the line, null to scale to axis min.
this.xoffset = 0
DEPRECATED.
this.xpadding = 6
horizontal padding in pixels between point and label
+ + + +
y value to position the line
Y axis to use for positioning/scaling the line.
this.yaxis = 'yaxis'
which y axis to use with this series, either ‘yaxis’ or ‘y2axis’.
this.yoffset = 0
DEPRECATED.
this.ypadding = 6
vertical padding in pixels between point and label
this.yvalues = 1
Number of y values to expect in the data point array.
+ + + +
this.zoom = false
Enable plot zooming.
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/index/index.php b/common/chart/docs/index/index.php new file mode 100644 index 0000000..e69de29 diff --git a/common/chart/docs/javascript/index.php b/common/chart/docs/javascript/index.php new file mode 100644 index 0000000..e69de29 diff --git a/common/chart/docs/javascript/main.js b/common/chart/docs/javascript/main.js new file mode 100644 index 0000000..91991f5 --- /dev/null +++ b/common/chart/docs/javascript/main.js @@ -0,0 +1,836 @@ +// This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure +// Natural Docs is licensed under the GPL + + +// +// Browser Styles +// ____________________________________________________________________________ + +var agt=navigator.userAgent.toLowerCase(); +var browserType; +var browserVer; + +if (agt.indexOf("opera") != -1) + { + browserType = "Opera"; + + if (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1) + { browserVer = "Opera7"; } + else if (agt.indexOf("opera 8") != -1 || agt.indexOf("opera/8") != -1) + { browserVer = "Opera8"; } + else if (agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1) + { browserVer = "Opera9"; } + } + +else if (agt.indexOf("applewebkit") != -1) + { + browserType = "Safari"; + + if (agt.indexOf("version/3") != -1) + { browserVer = "Safari3"; } + else if (agt.indexOf("safari/4") != -1) + { browserVer = "Safari2"; } + } + +else if (agt.indexOf("khtml") != -1) + { + browserType = "Konqueror"; + } + +else if (agt.indexOf("msie") != -1) + { + browserType = "IE"; + + if (agt.indexOf("msie 6") != -1) + { browserVer = "IE6"; } + else if (agt.indexOf("msie 7") != -1) + { browserVer = "IE7"; } + } + +else if (agt.indexOf("gecko") != -1) + { + browserType = "Firefox"; + + if (agt.indexOf("rv:1.7") != -1) + { browserVer = "Firefox1"; } + else if (agt.indexOf("rv:1.8)") != -1 || agt.indexOf("rv:1.8.0") != -1) + { browserVer = "Firefox15"; } + else if (agt.indexOf("rv:1.8.1") != -1) + { browserVer = "Firefox2"; } + } + + +// +// Support Functions +// ____________________________________________________________________________ + + +function GetXPosition(item) + { + var position = 0; + + if (item.offsetWidth != null) + { + while (item != document.body && item != null) + { + position += item.offsetLeft; + item = item.offsetParent; + }; + }; + + return position; + }; + + +function GetYPosition(item) + { + var position = 0; + + if (item.offsetWidth != null) + { + while (item != document.body && item != null) + { + position += item.offsetTop; + item = item.offsetParent; + }; + }; + + return position; + }; + + +function MoveToPosition(item, x, y) + { + // Opera 5 chokes on the px extension, so it can use the Microsoft one instead. + + if (item.style.left != null) + { + item.style.left = x + "px"; + item.style.top = y + "px"; + } + else if (item.style.pixelLeft != null) + { + item.style.pixelLeft = x; + item.style.pixelTop = y; + }; + }; + + +// +// Menu +// ____________________________________________________________________________ + + +function ToggleMenu(id) + { + if (!window.document.getElementById) + { return; }; + + var display = window.document.getElementById(id).style.display; + + if (display == "none") + { display = "block"; } + else + { display = "none"; } + + window.document.getElementById(id).style.display = display; + } + +function HideAllBut(ids, max) + { + if (document.getElementById) + { + ids.sort( function(a,b) { return a - b; } ); + var number = 1; + + while (number < max) + { + if (ids.length > 0 && number == ids[0]) + { ids.shift(); } + else + { + document.getElementById("MGroupContent" + number).style.display = "none"; + }; + + number++; + }; + }; + } + + +// +// Tooltips +// ____________________________________________________________________________ + + +var tooltipTimer = 0; + +function ShowTip(event, tooltipID, linkID) + { + if (tooltipTimer) + { clearTimeout(tooltipTimer); }; + + var docX = event.clientX + window.pageXOffset; + var docY = event.clientY + window.pageYOffset; + + var showCommand = "ReallyShowTip('" + tooltipID + "', '" + linkID + "', " + docX + ", " + docY + ")"; + + tooltipTimer = setTimeout(showCommand, 1000); + } + +function ReallyShowTip(tooltipID, linkID, docX, docY) + { + tooltipTimer = 0; + + var tooltip; + var link; + + if (document.getElementById) + { + tooltip = document.getElementById(tooltipID); + link = document.getElementById(linkID); + } +/* else if (document.all) + { + tooltip = eval("document.all['" + tooltipID + "']"); + link = eval("document.all['" + linkID + "']"); + } +*/ + if (tooltip) + { + var left = GetXPosition(link); + var top = GetYPosition(link); + top += link.offsetHeight; + + + // The fallback method is to use the mouse X and Y relative to the document. We use a separate if and test if its a number + // in case some browser snuck through the above if statement but didn't support everything. + + if (!isFinite(top) || top == 0) + { + left = docX; + top = docY; + } + + // Some spacing to get it out from under the cursor. + + top += 10; + + // Make sure the tooltip doesnt get smushed by being too close to the edge, or in some browsers, go off the edge of the + // page. We do it here because Konqueror does get offsetWidth right even if it doesnt get the positioning right. + + if (tooltip.offsetWidth != null) + { + var width = tooltip.offsetWidth; + var docWidth = document.body.clientWidth; + + if (left + width > docWidth) + { left = docWidth - width - 1; } + + // If there's a horizontal scroll bar we could go past zero because it's using the page width, not the window width. + if (left < 0) + { left = 0; }; + } + + MoveToPosition(tooltip, left, top); + tooltip.style.visibility = "visible"; + } + } + +function HideTip(tooltipID) + { + if (tooltipTimer) + { + clearTimeout(tooltipTimer); + tooltipTimer = 0; + } + + var tooltip; + + if (document.getElementById) + { tooltip = document.getElementById(tooltipID); } + else if (document.all) + { tooltip = eval("document.all['" + tooltipID + "']"); } + + if (tooltip) + { tooltip.style.visibility = "hidden"; } + } + + +// +// Blockquote fix for IE +// ____________________________________________________________________________ + + +function NDOnLoad() + { + if (browserVer == "IE6") + { + var scrollboxes = document.getElementsByTagName('blockquote'); + + if (scrollboxes.item(0)) + { + NDDoResize(); + window.onresize=NDOnResize; + }; + }; + }; + + +var resizeTimer = 0; + +function NDOnResize() + { + if (resizeTimer != 0) + { clearTimeout(resizeTimer); }; + + resizeTimer = setTimeout(NDDoResize, 250); + }; + + +function NDDoResize() + { + var scrollboxes = document.getElementsByTagName('blockquote'); + + var i; + var item; + + i = 0; + while (item = scrollboxes.item(i)) + { + item.style.width = 100; + i++; + }; + + i = 0; + while (item = scrollboxes.item(i)) + { + item.style.width = item.parentNode.offsetWidth; + i++; + }; + + clearTimeout(resizeTimer); + resizeTimer = 0; + } + + + +/* ________________________________________________________________________________________________________ + + Class: SearchPanel + ________________________________________________________________________________________________________ + + A class handling everything associated with the search panel. + + Parameters: + + name - The name of the global variable that will be storing this instance. Is needed to be able to set timeouts. + mode - The mode the search is going to work in. Pass CommandLineOption()>, so the + value will be something like "HTML" or "FramedHTML". + + ________________________________________________________________________________________________________ +*/ + + +function SearchPanel(name, mode, resultsPath) + { + if (!name || !mode || !resultsPath) + { alert("Incorrect parameters to SearchPanel."); }; + + + // Group: Variables + // ________________________________________________________________________ + + /* + var: name + The name of the global variable that will be storing this instance of the class. + */ + this.name = name; + + /* + var: mode + The mode the search is going to work in, such as "HTML" or "FramedHTML". + */ + this.mode = mode; + + /* + var: resultsPath + The relative path from the current HTML page to the results page directory. + */ + this.resultsPath = resultsPath; + + /* + var: keyTimeout + The timeout used between a keystroke and when a search is performed. + */ + this.keyTimeout = 0; + + /* + var: keyTimeoutLength + The length of in thousandths of a second. + */ + this.keyTimeoutLength = 500; + + /* + var: lastSearchValue + The last search string executed, or an empty string if none. + */ + this.lastSearchValue = ""; + + /* + var: lastResultsPage + The last results page. The value is only relevant if is set. + */ + this.lastResultsPage = ""; + + /* + var: deactivateTimeout + + The timeout used between when a control is deactivated and when the entire panel is deactivated. Is necessary + because a control may be deactivated in favor of another control in the same panel, in which case it should stay + active. + */ + this.deactivateTimout = 0; + + /* + var: deactivateTimeoutLength + The length of in thousandths of a second. + */ + this.deactivateTimeoutLength = 200; + + + + + // Group: DOM Elements + // ________________________________________________________________________ + + + // Function: DOMSearchField + this.DOMSearchField = function() + { return document.getElementById("MSearchField"); }; + + // Function: DOMSearchType + this.DOMSearchType = function() + { return document.getElementById("MSearchType"); }; + + // Function: DOMPopupSearchResults + this.DOMPopupSearchResults = function() + { return document.getElementById("MSearchResults"); }; + + // Function: DOMPopupSearchResultsWindow + this.DOMPopupSearchResultsWindow = function() + { return document.getElementById("MSearchResultsWindow"); }; + + // Function: DOMSearchPanel + this.DOMSearchPanel = function() + { return document.getElementById("MSearchPanel"); }; + + + + + // Group: Event Handlers + // ________________________________________________________________________ + + + /* + Function: OnSearchFieldFocus + Called when focus is added or removed from the search field. + */ + this.OnSearchFieldFocus = function(isActive) + { + this.Activate(isActive); + }; + + + /* + Function: OnSearchFieldChange + Called when the content of the search field is changed. + */ + this.OnSearchFieldChange = function() + { + if (this.keyTimeout) + { + clearTimeout(this.keyTimeout); + this.keyTimeout = 0; + }; + + var searchValue = this.DOMSearchField().value.replace(/ +/g, ""); + + if (searchValue != this.lastSearchValue) + { + if (searchValue != "") + { + this.keyTimeout = setTimeout(this.name + ".Search()", this.keyTimeoutLength); + } + else + { + if (this.mode == "HTML") + { this.DOMPopupSearchResultsWindow().style.display = "none"; }; + this.lastSearchValue = ""; + }; + }; + }; + + + /* + Function: OnSearchTypeFocus + Called when focus is added or removed from the search type. + */ + this.OnSearchTypeFocus = function(isActive) + { + this.Activate(isActive); + }; + + + /* + Function: OnSearchTypeChange + Called when the search type is changed. + */ + this.OnSearchTypeChange = function() + { + var searchValue = this.DOMSearchField().value.replace(/ +/g, ""); + + if (searchValue != "") + { + this.Search(); + }; + }; + + + + // Group: Action Functions + // ________________________________________________________________________ + + + /* + Function: CloseResultsWindow + Closes the results window. + */ + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = "none"; + this.Activate(false, true); + }; + + + /* + Function: Search + Performs a search. + */ + this.Search = function() + { + this.keyTimeout = 0; + + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + var searchTopic = this.DOMSearchType().value; + + var pageExtension = searchValue.substr(0,1); + + if (pageExtension.match(/^[a-z]/i)) + { pageExtension = pageExtension.toUpperCase(); } + else if (pageExtension.match(/^[0-9]/)) + { pageExtension = 'Numbers'; } + else + { pageExtension = "Symbols"; }; + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + // indexSectionsWithContent is defined in searchdata.js + if (indexSectionsWithContent[searchTopic][pageExtension] == true) + { + resultsPage = this.resultsPath + '/' + searchTopic + pageExtension + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else + { + resultsPage = this.resultsPath + '/NoResults.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + }; + + var resultsFrame; + if (this.mode == "HTML") + { resultsFrame = window.frames.MSearchResults; } + else if (this.mode == "FramedHTML") + { resultsFrame = window.top.frames['Content']; }; + + + if (resultsPage != this.lastResultsPage || + + // Bug in IE. If everything becomes hidden in a run, none of them will be able to be reshown in the next for some + // reason. It counts the right number of results, and you can even read the display as "block" after setting it, but it + // just doesn't work in IE 6 or IE 7. So if we're on the right page but the previous search had no results, reload the + // page anyway to get around the bug. + (browserType == "IE" && hasResultsPage && + (!resultsFrame.searchResults || resultsFrame.searchResults.lastMatchCount == 0)) ) + + { + resultsFrame.location.href = resultsPageWithSearch; + } + + // So if the results page is right and there's no IE bug, reperform the search on the existing page. We have to check if there + // are results because NoResults.html doesn't have any JavaScript, and it would be useless to do anything on that page even + // if it did. + else if (hasResultsPage) + { + // We need to check if this exists in case the frame is present but didn't finish loading. + if (resultsFrame.searchResults) + { resultsFrame.searchResults.Search(searchValue); } + + // Otherwise just reload instead of waiting. + else + { resultsFrame.location.href = resultsPageWithSearch; }; + }; + + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (this.mode == "HTML" && domPopupSearchResultsWindow.style.display != "block") + { + var domSearchType = this.DOMSearchType(); + + var left = GetXPosition(domSearchType); + var top = GetYPosition(domSearchType) + domSearchType.offsetHeight; + + MoveToPosition(domPopupSearchResultsWindow, left, top); + domPopupSearchResultsWindow.style.display = 'block'; + }; + + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + }; + + + + // Group: Activation Functions + // Functions that handle whether the entire panel is active or not. + // ________________________________________________________________________ + + + /* + Function: Activate + + Activates or deactivates the search panel, resetting things to their default values if necessary. You can call this on every + control's OnBlur() and it will handle not deactivating the entire panel when focus is just switching between them transparently. + + Parameters: + + isActive - Whether you're activating or deactivating the panel. + ignoreDeactivateDelay - Set if you're positive the action will deactivate the panel and thus want to skip the delay. + */ + this.Activate = function(isActive, ignoreDeactivateDelay) + { + // We want to ignore isActive being false while the results window is open. + if (isActive || (this.mode == "HTML" && this.DOMPopupSearchResultsWindow().style.display == "block")) + { + if (this.inactivateTimeout) + { + clearTimeout(this.inactivateTimeout); + this.inactivateTimeout = 0; + }; + + this.DOMSearchPanel().className = 'MSearchPanelActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == 'Search') + { searchField.value = ""; } + } + else if (!ignoreDeactivateDelay) + { + this.inactivateTimeout = setTimeout(this.name + ".InactivateAfterTimeout()", this.inactivateTimeoutLength); + } + else + { + this.InactivateAfterTimeout(); + }; + }; + + + /* + Function: InactivateAfterTimeout + + Called by , which is set by . Inactivation occurs on a timeout because a control may + receive OnBlur() when focus is really transferring to another control in the search panel. In this case we don't want to + actually deactivate the panel because not only would that cause a visible flicker but it could also reset the search value. + So by doing it on a timeout instead, there's a short period where the second control's OnFocus() can cancel the deactivation. + */ + this.InactivateAfterTimeout = function() + { + this.inactivateTimeout = 0; + + this.DOMSearchPanel().className = 'MSearchPanelInactive'; + this.DOMSearchField().value = "Search"; + + this.lastSearchValue = ""; + this.lastResultsPage = ""; + }; + }; + + + + +/* ________________________________________________________________________________________________________ + + Class: SearchResults + _________________________________________________________________________________________________________ + + The class that handles everything on the search results page. + _________________________________________________________________________________________________________ +*/ + + +function SearchResults(name, mode) + { + /* + var: mode + The mode the search is going to work in, such as "HTML" or "FramedHTML". + */ + this.mode = mode; + + /* + var: lastMatchCount + The number of matches from the last run of . + */ + this.lastMatchCount = 0; + + + /* + Function: Toggle + Toggles the visibility of the passed element ID. + */ + this.Toggle = function(id) + { + if (this.mode == "FramedHTML") + { return; }; + + var parentElement = document.getElementById(id); + + var element = parentElement.firstChild; + + while (element && element != parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'ISubIndex') + { + if (element.style.display == 'block') + { element.style.display = "none"; } + else + { element.style.display = 'block'; } + }; + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { element = element.firstChild; } + else if (element.nextSibling) + { element = element.nextSibling; } + else + { + do + { + element = element.parentNode; + } + while (element && element != parentElement && !element.nextSibling); + + if (element && element != parentElement) + { element = element.nextSibling; }; + }; + }; + }; + + + /* + Function: Search + + Searches for the passed string. If there is no parameter, it takes it from the URL query. + + Always returns true, since other documents may try to call it and that may or may not be possible. + */ + this.Search = function(search) + { + if (!search) + { + search = window.location.search; + search = search.substring(1); // Remove the leading ? + search = unescape(search); + }; + + search = search.replace(/^ +/, ""); + search = search.replace(/ +$/, ""); + search = search.toLowerCase(); + + if (search.match(/[^a-z0-9]/)) // Just a little speedup so it doesn't have to go through the below unnecessarily. + { + search = search.replace(/\_/g, "_und"); + search = search.replace(/\ +/gi, "_spc"); + search = search.replace(/\~/g, "_til"); + search = search.replace(/\!/g, "_exc"); + search = search.replace(/\@/g, "_att"); + search = search.replace(/\#/g, "_num"); + search = search.replace(/\$/g, "_dol"); + search = search.replace(/\%/g, "_pct"); + search = search.replace(/\^/g, "_car"); + search = search.replace(/\&/g, "_amp"); + search = search.replace(/\*/g, "_ast"); + search = search.replace(/\(/g, "_lpa"); + search = search.replace(/\)/g, "_rpa"); + search = search.replace(/\-/g, "_min"); + search = search.replace(/\+/g, "_plu"); + search = search.replace(/\=/g, "_equ"); + search = search.replace(/\{/g, "_lbc"); + search = search.replace(/\}/g, "_rbc"); + search = search.replace(/\[/g, "_lbk"); + search = search.replace(/\]/g, "_rbk"); + search = search.replace(/\:/g, "_col"); + search = search.replace(/\;/g, "_sco"); + search = search.replace(/\"/g, "_quo"); + search = search.replace(/\'/g, "_apo"); + search = search.replace(/\/g, "_ran"); + search = search.replace(/\,/g, "_com"); + search = search.replace(/\./g, "_per"); + search = search.replace(/\?/g, "_que"); + search = search.replace(/\//g, "_sla"); + search = search.replace(/[^a-z0-9\_]i/gi, "_zzz"); + }; + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); + + if (search.length <= rowMatchName.length && rowMatchName.substr(0, search.length) == search) + { + row.style.display = "block"; + matches++; + } + else + { row.style.display = "none"; }; + }; + + i++; + }; + + document.getElementById("Searching").style.display="none"; + + if (matches == 0) + { document.getElementById("NoMatches").style.display="block"; } + else + { document.getElementById("NoMatches").style.display="none"; } + + this.lastMatchCount = matches; + + return true; + }; + }; + diff --git a/common/chart/docs/javascript/searchdata.js b/common/chart/docs/javascript/searchdata.js new file mode 100644 index 0000000..72083b4 --- /dev/null +++ b/common/chart/docs/javascript/searchdata.js @@ -0,0 +1,182 @@ +var indexSectionsWithContent = { + "General": { + "Symbols": true, + "Numbers": false, + "A": true, + "B": true, + "C": true, + "D": true, + "E": true, + "F": true, + "G": true, + "H": true, + "I": true, + "J": true, + "K": false, + "L": true, + "M": true, + "N": true, + "O": true, + "P": true, + "Q": true, + "R": true, + "S": true, + "T": true, + "U": true, + "V": true, + "W": true, + "X": true, + "Y": true, + "Z": true + }, + "Functions": { + "Symbols": false, + "Numbers": false, + "A": false, + "B": false, + "C": true, + "D": true, + "E": false, + "F": false, + "G": true, + "H": false, + "I": true, + "J": false, + "K": false, + "L": false, + "M": true, + "N": true, + "O": false, + "P": false, + "Q": true, + "R": true, + "S": true, + "T": false, + "U": false, + "V": false, + "W": false, + "X": false, + "Y": false, + "Z": true + }, + "Files": { + "Symbols": false, + "Numbers": false, + "A": false, + "B": false, + "C": false, + "D": false, + "E": false, + "F": false, + "G": false, + "H": false, + "I": false, + "J": true, + "K": false, + "L": false, + "M": false, + "N": false, + "O": false, + "P": false, + "Q": false, + "R": false, + "S": false, + "T": false, + "U": false, + "V": false, + "W": false, + "X": false, + "Y": false, + "Z": false + }, + "Classes": { + "Symbols": true, + "Numbers": false, + "A": true, + "B": false, + "C": false, + "D": true, + "E": false, + "F": false, + "G": true, + "H": true, + "I": false, + "J": true, + "K": false, + "L": true, + "M": false, + "N": false, + "O": false, + "P": false, + "Q": false, + "R": false, + "S": true, + "T": true, + "U": false, + "V": true, + "W": false, + "X": false, + "Y": false, + "Z": false + }, + "Hooks": { + "Symbols": false, + "Numbers": false, + "A": true, + "B": false, + "C": false, + "D": false, + "E": true, + "F": false, + "G": false, + "H": false, + "I": false, + "J": true, + "K": false, + "L": false, + "M": false, + "N": false, + "O": false, + "P": true, + "Q": false, + "R": false, + "S": false, + "T": false, + "U": false, + "V": false, + "W": false, + "X": false, + "Y": false, + "Z": false + }, + "Properties": { + "Symbols": false, + "Numbers": false, + "A": true, + "B": true, + "C": true, + "D": true, + "E": true, + "F": true, + "G": true, + "H": true, + "I": true, + "J": false, + "K": false, + "L": true, + "M": true, + "N": true, + "O": true, + "P": true, + "Q": false, + "R": true, + "S": true, + "T": true, + "U": true, + "V": true, + "W": true, + "X": true, + "Y": true, + "Z": true + } + } \ No newline at end of file diff --git a/common/chart/docs/search/ClassesA.html b/common/chart/docs/search/ClassesA.html new file mode 100644 index 0000000..2f4dab5 --- /dev/null +++ b/common/chart/docs/search/ClassesA.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/ClassesD.html b/common/chart/docs/search/ClassesD.html new file mode 100644 index 0000000..135eeb6 --- /dev/null +++ b/common/chart/docs/search/ClassesD.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/ClassesG.html b/common/chart/docs/search/ClassesG.html new file mode 100644 index 0000000..36f121b --- /dev/null +++ b/common/chart/docs/search/ClassesG.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/ClassesH.html b/common/chart/docs/search/ClassesH.html new file mode 100644 index 0000000..c411b32 --- /dev/null +++ b/common/chart/docs/search/ClassesH.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/ClassesJ.html b/common/chart/docs/search/ClassesJ.html new file mode 100644 index 0000000..b225009 --- /dev/null +++ b/common/chart/docs/search/ClassesJ.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/ClassesL.html b/common/chart/docs/search/ClassesL.html new file mode 100644 index 0000000..6a93b81 --- /dev/null +++ b/common/chart/docs/search/ClassesL.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/ClassesS.html b/common/chart/docs/search/ClassesS.html new file mode 100644 index 0000000..53823e7 --- /dev/null +++ b/common/chart/docs/search/ClassesS.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/ClassesSymbols.html b/common/chart/docs/search/ClassesSymbols.html new file mode 100644 index 0000000..b626a98 --- /dev/null +++ b/common/chart/docs/search/ClassesSymbols.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/search/ClassesT.html b/common/chart/docs/search/ClassesT.html new file mode 100644 index 0000000..782f11d --- /dev/null +++ b/common/chart/docs/search/ClassesT.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/ClassesV.html b/common/chart/docs/search/ClassesV.html new file mode 100644 index 0000000..62d2e7c --- /dev/null +++ b/common/chart/docs/search/ClassesV.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/FilesJ.html b/common/chart/docs/search/FilesJ.html new file mode 100644 index 0000000..3c66afa --- /dev/null +++ b/common/chart/docs/search/FilesJ.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/FunctionsC.html b/common/chart/docs/search/FunctionsC.html new file mode 100644 index 0000000..40135d3 --- /dev/null +++ b/common/chart/docs/search/FunctionsC.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
copy, $.jqplot.ThemeEngine
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/FunctionsD.html b/common/chart/docs/search/FunctionsD.html new file mode 100644 index 0000000..2c2bed5 --- /dev/null +++ b/common/chart/docs/search/FunctionsD.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
destroy, jqPlot
drawSeries, jqPlot
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/FunctionsG.html b/common/chart/docs/search/FunctionsG.html new file mode 100644 index 0000000..561eabc --- /dev/null +++ b/common/chart/docs/search/FunctionsG.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
get, $.jqplot.ThemeEngine
getThemeNames, $.jqplot.ThemeEngine
getThemes, $.jqplot.ThemeEngine
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/FunctionsI.html b/common/chart/docs/search/FunctionsI.html new file mode 100644 index 0000000..4509098 --- /dev/null +++ b/common/chart/docs/search/FunctionsI.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
init, jqPlot
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/FunctionsM.html b/common/chart/docs/search/FunctionsM.html new file mode 100644 index 0000000..0b6446c --- /dev/null +++ b/common/chart/docs/search/FunctionsM.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
moveBlock, $.jqplot.BlockRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/FunctionsN.html b/common/chart/docs/search/FunctionsN.html new file mode 100644 index 0000000..7cc60bf --- /dev/null +++ b/common/chart/docs/search/FunctionsN.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
newTheme, $.jqplot.ThemeEngine
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/FunctionsQ.html b/common/chart/docs/search/FunctionsQ.html new file mode 100644 index 0000000..9d06ebc --- /dev/null +++ b/common/chart/docs/search/FunctionsQ.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
quickInit, jqPlot
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/FunctionsR.html b/common/chart/docs/search/FunctionsR.html new file mode 100644 index 0000000..fac0dbc --- /dev/null +++ b/common/chart/docs/search/FunctionsR.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
redraw, jqPlot
reInitialize, jqPlot
remove, $.jqplot.ThemeEngine
rename, $.jqplot.ThemeEngine
replot, jqPlot
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/FunctionsS.html b/common/chart/docs/search/FunctionsS.html new file mode 100644 index 0000000..bab767c --- /dev/null +++ b/common/chart/docs/search/FunctionsS.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/FunctionsZ.html b/common/chart/docs/search/FunctionsZ.html new file mode 100644 index 0000000..4b364e9 --- /dev/null +++ b/common/chart/docs/search/FunctionsZ.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
zoomProxy, $.jqplot.Cursor.$.jqplot.Cursor
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralA.html b/common/chart/docs/search/GeneralA.html new file mode 100644 index 0000000..f62a230 --- /dev/null +++ b/common/chart/docs/search/GeneralA.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
activeTheme, $.jqplot.ThemeEngine
addLegendRowHooks, $.jqplot.$.jqplot
alignTicks, $.jqplot.LinearAxisRenderer
alpha, $.jqplot.shadowRenderer
animate, jqPlot
autoscale, Axis
autoscaleBubbles, $.jqplot.BubbleRenderer
autoscaleMultiplier, $.jqplot.BubbleRenderer
autoscalePointsFactor, $.jqplot.BubbleRenderer
axes, jqPlot
axesDefaults, jqPlot
axisDefaults, $.jqplot.LogAxisRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralB.html b/common/chart/docs/search/GeneralB.html new file mode 100644 index 0000000..06a9703 --- /dev/null +++ b/common/chart/docs/search/GeneralB.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
bandData, $.jqplot.LineRenderer
bands, $.jqplot.LineRenderer
barDirection, $.jqplot.BarRenderer
barLabelOptions, $.jqplot.MekkoAxisRenderer
barLabelRenderer, $.jqplot.MekkoAxisRenderer
barLabels, $.jqplot.MekkoAxisRenderer
barMargin, $.jqplot.BarRenderer
barWidth, $.jqplot.BarRenderer
bodyWidth, $.jqplot.OHLCRenderer
border, Legend
breakOnNull, Series
breakPoints, $.jqplot.LinearAxisRenderer
breakTickLabel, $.jqplot.LinearAxisRenderer
bringSeriesToFront, $.jqplot.Highlighter
bubbleAlpha, $.jqplot.BubbleRenderer
bubbleGradients, $.jqplot.BubbleRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralC.html b/common/chart/docs/search/GeneralC.html new file mode 100644 index 0000000..20bb76e --- /dev/null +++ b/common/chart/docs/search/GeneralC.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
candleStick, $.jqplot.OHLCRenderer
clearRect, $.jqplot.shapeRenderer
clickReset, $.jqplot.Cursor
closeColor, $.jqplot.OHLCRenderer
constrainOutsideZoom, $.jqplot.Cursor
constrainSmoothing, $.jqplot.LineRenderer
constrainTo, $.jqplot.Dragable
constrainZoomTo, $.jqplot.Cursor
copy, $.jqplot.ThemeEngine
css, $.jqplot.BlockRenderer
cursorLegendFormatString, $.jqplot.Cursor
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralD.html b/common/chart/docs/search/GeneralD.html new file mode 100644 index 0000000..3c759ce --- /dev/null +++ b/common/chart/docs/search/GeneralD.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/search/GeneralE.html b/common/chart/docs/search/GeneralE.html new file mode 100644 index 0000000..5f3a920 --- /dev/null +++ b/common/chart/docs/search/GeneralE.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
edgeTolerance, $.jqplot.PointLabels
eventListenerHooks, $.jqplot.$.jqplot
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralF.html b/common/chart/docs/search/GeneralF.html new file mode 100644 index 0000000..c1af77c --- /dev/null +++ b/common/chart/docs/search/GeneralF.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/search/GeneralG.html b/common/chart/docs/search/GeneralG.html new file mode 100644 index 0000000..092df15 --- /dev/null +++ b/common/chart/docs/search/GeneralG.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
get, $.jqplot.ThemeEngine
getThemeNames, $.jqplot.ThemeEngine
getThemes, $.jqplot.ThemeEngine
grid, jqPlot
groups, $.jqplot.BarRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralH.html b/common/chart/docs/search/GeneralH.html new file mode 100644 index 0000000..ff6d067 --- /dev/null +++ b/common/chart/docs/search/GeneralH.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
hideZeros, $.jqplot.PointLabels
highlightAlpha, $.jqplot.BubbleRenderer
highlightColor, $.jqplot.LineRenderer
hlc, $.jqplot.OHLCRenderer
Hooks, $.jqplot
hubRadius, $.jqplot.MeterGaugeRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralI.html b/common/chart/docs/search/GeneralI.html new file mode 100644 index 0000000..7873ee4 --- /dev/null +++ b/common/chart/docs/search/GeneralI.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
index, Series
init, jqPlot
innerDiameter, $.jqplot.DonutRenderer
insertBreaks, $.jqplot.BlockRenderer
intersectionThreshold, $.jqplot.Cursor
interval, $.jqplot.LineRenderer
intervalColors, $.jqplot.MeterGaugeRenderer
intervalInnerRadius, $.jqplot.MeterGaugeRenderer
intervalOuterRadius, $.jqplot.MeterGaugeRenderer
intervals, $.jqplot.MeterGaugeRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralJ.html b/common/chart/docs/search/GeneralJ.html new file mode 100644 index 0000000..fe56030 --- /dev/null +++ b/common/chart/docs/search/GeneralJ.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralL.html b/common/chart/docs/search/GeneralL.html new file mode 100644 index 0000000..0fc1289 --- /dev/null +++ b/common/chart/docs/search/GeneralL.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/search/GeneralM.html b/common/chart/docs/search/GeneralM.html new file mode 100644 index 0000000..53789fa --- /dev/null +++ b/common/chart/docs/search/GeneralM.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/search/GeneralN.html b/common/chart/docs/search/GeneralN.html new file mode 100644 index 0000000..1329a23 --- /dev/null +++ b/common/chart/docs/search/GeneralN.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
name, $.jqplot.CanvasOverlay
needlePad, $.jqplot.MeterGaugeRenderer
needleThickness, $.jqplot.MeterGaugeRenderer
newTheme, $.jqplot.ThemeEngine
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralO.html b/common/chart/docs/search/GeneralO.html new file mode 100644 index 0000000..bac068d --- /dev/null +++ b/common/chart/docs/search/GeneralO.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
objects, $.jqplot.CanvasOverlay
offset, $.jqplot.shadowRenderer
openColor, $.jqplot.OHLCRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralP.html b/common/chart/docs/search/GeneralP.html new file mode 100644 index 0000000..c872de1 --- /dev/null +++ b/common/chart/docs/search/GeneralP.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
pad, Axis
padMax, Axis
padMin, Axis
pegNeedle, $.jqplot.MeterGaugeRenderer
placement, Legend
postDrawHooks, $.jqplot.$.jqplot
postDrawSeriesHooks, $.jqplot.$.jqplot
postDrawSeriesShadowHooks, $.jqplot.$.jqplot
postInitHooks, $.jqplot.$.jqplot
postParseOptionsHooks, $.jqplot.$.jqplot
postParseSeriesOptionsHooks, $.jqplot.$.jqplot
postSeriesInitHooks, $.jqplot.$.jqplot
predraw, Legend
preDrawHooks, $.jqplot.$.jqplot
preDrawLegendHooks, $.jqplot.$.jqplot
preDrawSeriesHooks, $.jqplot.$.jqplot
preDrawSeriesShadowHooks, $.jqplot.$.jqplot
preInitHooks, $.jqplot.$.jqplot
preParseOptionsHooks, $.jqplot.$.jqplot
preParseSeriesOptionsHooks, $.jqplot.$.jqplot
preSeriesInitHooks, $.jqplot.$.jqplot
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralQ.html b/common/chart/docs/search/GeneralQ.html new file mode 100644 index 0000000..9d06ebc --- /dev/null +++ b/common/chart/docs/search/GeneralQ.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
quickInit, jqPlot
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralR.html b/common/chart/docs/search/GeneralR.html new file mode 100644 index 0000000..830dac9 --- /dev/null +++ b/common/chart/docs/search/GeneralR.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
redraw, jqPlot
reInitialize, jqPlot
remove, $.jqplot.ThemeEngine
rename, $.jqplot.ThemeEngine
replot, jqPlot
ringColor, $.jqplot.MeterGaugeRenderer
ringMargin, $.jqplot.DonutRenderer
ringWidth, $.jqplot.MeterGaugeRenderer
rowSpacing, Legend
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralS.html b/common/chart/docs/search/GeneralS.html new file mode 100644 index 0000000..4cfc865 --- /dev/null +++ b/common/chart/docs/search/GeneralS.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
sectionMargin, $.jqplot.FunnelRenderer
series, jqPlot
seriesColors, jqPlot
seriesLabelIndex, $.jqplot.PointLabels
shadowRenderer, $.jqplot.MarkerRenderer
shapeRenderer, $.jqplot.MarkerRenderer
showBorders, $.jqplot.MekkoRenderer
showCursorLegend, $.jqplot.Cursor
showHorizontalLine, $.jqplot.Cursor
showLine, Series
showLines, $.jqplot.LineRenderer
showSwatch, Legend
showTickLabels, $.jqplot.MeterGaugeRenderer
showTooltipDataPosition, $.jqplot.Cursor
showTooltipGridPosition, $.jqplot.Cursor
showTooltipOutsideZoom, $.jqplot.Cursor
showTooltipPrecision, $.jqplot.CanvasOverlay
showTooltipUnitPosition, $.jqplot.Cursor
showVerticalLine, $.jqplot.Cursor
sizeAdjust, $.jqplot.Highlighter
smooth, $.jqplot.LineRenderer
sortData, jqPlot
sortMergedLabels, $.jqplot.CategoryAxisRenderer
stackedValue, $.jqplot.PointLabels
stackSeries, jqPlot
start, Line
stop, Line
strokeRect, $.jqplot.shapeRenderer
strokeStyle, $.jqplot.shapeRenderer
suffix, $.jqplot.AxisTickRenderer
syncTicks, Axis
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralSymbols.html b/common/chart/docs/search/GeneralSymbols.html new file mode 100644 index 0000000..b626a98 --- /dev/null +++ b/common/chart/docs/search/GeneralSymbols.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/search/GeneralT.html b/common/chart/docs/search/GeneralT.html new file mode 100644 index 0000000..20f4ead --- /dev/null +++ b/common/chart/docs/search/GeneralT.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
text, Title
textAlign, Title
themes, $.jqplot.ThemeEngine
thickness, $.jqplot.DonutRenderer
tickColor, $.jqplot.MeterGaugeRenderer
tickLength, $.jqplot.OHLCRenderer
tickMode, $.jqplot.MekkoAxisRenderer
tickPadding, $.jqplot.MeterGaugeRenderer
title, jqPlot
tooltipAxes, $.jqplot.Highlighter
tooltipAxisGroups, $.jqplot.Cursor
transposedData, $.jqplot.BarRenderer
type, $.jqplot.Trendline
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralU.html b/common/chart/docs/search/GeneralU.html new file mode 100644 index 0000000..31bcbf1 --- /dev/null +++ b/common/chart/docs/search/GeneralU.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
upBodyColor, $.jqplot.OHLCRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralV.html b/common/chart/docs/search/GeneralV.html new file mode 100644 index 0000000..51af427 --- /dev/null +++ b/common/chart/docs/search/GeneralV.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
varyBarColor, $.jqplot.BarRenderer
varyBlockColors, $.jqplot.BlockRenderer
varyBubbleColors, $.jqplot.BubbleRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralW.html b/common/chart/docs/search/GeneralW.html new file mode 100644 index 0000000..ce58976 --- /dev/null +++ b/common/chart/docs/search/GeneralW.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
waterfall, $.jqplot.BarRenderer
wickColor, $.jqplot.OHLCRenderer
widthRatio, $.jqplot.FunnelRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralX.html b/common/chart/docs/search/GeneralX.html new file mode 100644 index 0000000..c86d547 --- /dev/null +++ b/common/chart/docs/search/GeneralX.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
xoffset, Legend
xpadding, $.jqplot.PointLabels
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralY.html b/common/chart/docs/search/GeneralY.html new file mode 100644 index 0000000..8f6ea7a --- /dev/null +++ b/common/chart/docs/search/GeneralY.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
y, HorizontalLine
yoffset, Legend
ypadding, $.jqplot.PointLabels
yvalues, $.jqplot.Highlighter
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/GeneralZ.html b/common/chart/docs/search/GeneralZ.html new file mode 100644 index 0000000..1e8baa0 --- /dev/null +++ b/common/chart/docs/search/GeneralZ.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
zoom, $.jqplot.Cursor
zoomProxy, $.jqplot.Cursor.$.jqplot.Cursor
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/HooksA.html b/common/chart/docs/search/HooksA.html new file mode 100644 index 0000000..82b17cd --- /dev/null +++ b/common/chart/docs/search/HooksA.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
addLegendRowHooks, $.jqplot.$.jqplot
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/HooksE.html b/common/chart/docs/search/HooksE.html new file mode 100644 index 0000000..fe46493 --- /dev/null +++ b/common/chart/docs/search/HooksE.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
eventListenerHooks, $.jqplot.$.jqplot
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/HooksJ.html b/common/chart/docs/search/HooksJ.html new file mode 100644 index 0000000..f94e003 --- /dev/null +++ b/common/chart/docs/search/HooksJ.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/HooksP.html b/common/chart/docs/search/HooksP.html new file mode 100644 index 0000000..eb28c71 --- /dev/null +++ b/common/chart/docs/search/HooksP.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
postDrawHooks, $.jqplot.$.jqplot
postDrawSeriesHooks, $.jqplot.$.jqplot
postDrawSeriesShadowHooks, $.jqplot.$.jqplot
postInitHooks, $.jqplot.$.jqplot
postParseOptionsHooks, $.jqplot.$.jqplot
postParseSeriesOptionsHooks, $.jqplot.$.jqplot
postSeriesInitHooks, $.jqplot.$.jqplot
preDrawHooks, $.jqplot.$.jqplot
preDrawLegendHooks, $.jqplot.$.jqplot
preDrawSeriesHooks, $.jqplot.$.jqplot
preDrawSeriesShadowHooks, $.jqplot.$.jqplot
preInitHooks, $.jqplot.$.jqplot
preParseOptionsHooks, $.jqplot.$.jqplot
preParseSeriesOptionsHooks, $.jqplot.$.jqplot
preSeriesInitHooks, $.jqplot.$.jqplot
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/NoResults.html b/common/chart/docs/search/NoResults.html new file mode 100644 index 0000000..d2459c0 --- /dev/null +++ b/common/chart/docs/search/NoResults.html @@ -0,0 +1,15 @@ + + + + + + + + + + + + +
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesA.html b/common/chart/docs/search/PropertiesA.html new file mode 100644 index 0000000..386d9e8 --- /dev/null +++ b/common/chart/docs/search/PropertiesA.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
activeTheme, $.jqplot.ThemeEngine
alignTicks, $.jqplot.LinearAxisRenderer
alpha, $.jqplot.shadowRenderer
animate, jqPlot
autoscale, Axis
autoscaleBubbles, $.jqplot.BubbleRenderer
autoscaleMultiplier, $.jqplot.BubbleRenderer
autoscalePointsFactor, $.jqplot.BubbleRenderer
axes, jqPlot
axesDefaults, jqPlot
axisDefaults, $.jqplot.LogAxisRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesB.html b/common/chart/docs/search/PropertiesB.html new file mode 100644 index 0000000..a6cef46 --- /dev/null +++ b/common/chart/docs/search/PropertiesB.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
bandData, $.jqplot.LineRenderer
barDirection, $.jqplot.BarRenderer
barLabelOptions, $.jqplot.MekkoAxisRenderer
barLabelRenderer, $.jqplot.MekkoAxisRenderer
barLabels, $.jqplot.MekkoAxisRenderer
barMargin, $.jqplot.BarRenderer
barWidth, $.jqplot.BarRenderer
bodyWidth, $.jqplot.OHLCRenderer
border, Legend
breakOnNull, Series
breakPoints, $.jqplot.LinearAxisRenderer
breakTickLabel, $.jqplot.LinearAxisRenderer
bringSeriesToFront, $.jqplot.Highlighter
bubbleAlpha, $.jqplot.BubbleRenderer
bubbleGradients, $.jqplot.BubbleRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesC.html b/common/chart/docs/search/PropertiesC.html new file mode 100644 index 0000000..a30bf3d --- /dev/null +++ b/common/chart/docs/search/PropertiesC.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
candleStick, $.jqplot.OHLCRenderer
clearRect, $.jqplot.shapeRenderer
clickReset, $.jqplot.Cursor
closeColor, $.jqplot.OHLCRenderer
constrainOutsideZoom, $.jqplot.Cursor
constrainSmoothing, $.jqplot.LineRenderer
constrainTo, $.jqplot.Dragable
constrainZoomTo, $.jqplot.Cursor
css, $.jqplot.BlockRenderer
cursorLegendFormatString, $.jqplot.Cursor
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesD.html b/common/chart/docs/search/PropertiesD.html new file mode 100644 index 0000000..e0380ea --- /dev/null +++ b/common/chart/docs/search/PropertiesD.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/search/PropertiesE.html b/common/chart/docs/search/PropertiesE.html new file mode 100644 index 0000000..5bb760f --- /dev/null +++ b/common/chart/docs/search/PropertiesE.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
edgeTolerance, $.jqplot.PointLabels
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesF.html b/common/chart/docs/search/PropertiesF.html new file mode 100644 index 0000000..cf90670 --- /dev/null +++ b/common/chart/docs/search/PropertiesF.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/search/PropertiesG.html b/common/chart/docs/search/PropertiesG.html new file mode 100644 index 0000000..3a7573d --- /dev/null +++ b/common/chart/docs/search/PropertiesG.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
grid, jqPlot
groups, $.jqplot.BarRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesH.html b/common/chart/docs/search/PropertiesH.html new file mode 100644 index 0000000..ca8f802 --- /dev/null +++ b/common/chart/docs/search/PropertiesH.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
hideZeros, $.jqplot.PointLabels
highlightAlpha, $.jqplot.BubbleRenderer
highlightColor, $.jqplot.LineRenderer
hlc, $.jqplot.OHLCRenderer
hubRadius, $.jqplot.MeterGaugeRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesI.html b/common/chart/docs/search/PropertiesI.html new file mode 100644 index 0000000..289adc8 --- /dev/null +++ b/common/chart/docs/search/PropertiesI.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
index, Series
innerDiameter, $.jqplot.DonutRenderer
insertBreaks, $.jqplot.BlockRenderer
intersectionThreshold, $.jqplot.Cursor
interval, $.jqplot.LineRenderer
intervalColors, $.jqplot.MeterGaugeRenderer
intervalInnerRadius, $.jqplot.MeterGaugeRenderer
intervalOuterRadius, $.jqplot.MeterGaugeRenderer
intervals, $.jqplot.MeterGaugeRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesL.html b/common/chart/docs/search/PropertiesL.html new file mode 100644 index 0000000..2465230 --- /dev/null +++ b/common/chart/docs/search/PropertiesL.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/chart/docs/search/PropertiesM.html b/common/chart/docs/search/PropertiesM.html new file mode 100644 index 0000000..80a53cb --- /dev/null +++ b/common/chart/docs/search/PropertiesM.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
marginBottom, Legend
marginLeft, Legend
marginRight, Legend
marginTop, Legend
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesN.html b/common/chart/docs/search/PropertiesN.html new file mode 100644 index 0000000..cf927b0 --- /dev/null +++ b/common/chart/docs/search/PropertiesN.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
name, $.jqplot.CanvasOverlay
needlePad, $.jqplot.MeterGaugeRenderer
needleThickness, $.jqplot.MeterGaugeRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesO.html b/common/chart/docs/search/PropertiesO.html new file mode 100644 index 0000000..e3e5f59 --- /dev/null +++ b/common/chart/docs/search/PropertiesO.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
objects, $.jqplot.CanvasOverlay
offset, $.jqplot.shadowRenderer
openColor, $.jqplot.OHLCRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesP.html b/common/chart/docs/search/PropertiesP.html new file mode 100644 index 0000000..f1a4b16 --- /dev/null +++ b/common/chart/docs/search/PropertiesP.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
pad, Axis
padMax, Axis
padMin, Axis
pegNeedle, $.jqplot.MeterGaugeRenderer
placement, Legend
predraw, Legend
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesR.html b/common/chart/docs/search/PropertiesR.html new file mode 100644 index 0000000..a462e09 --- /dev/null +++ b/common/chart/docs/search/PropertiesR.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
ringColor, $.jqplot.MeterGaugeRenderer
ringMargin, $.jqplot.DonutRenderer
ringWidth, $.jqplot.MeterGaugeRenderer
rowSpacing, Legend
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesS.html b/common/chart/docs/search/PropertiesS.html new file mode 100644 index 0000000..712da7f --- /dev/null +++ b/common/chart/docs/search/PropertiesS.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
sectionMargin, $.jqplot.FunnelRenderer
series, jqPlot
seriesColors, jqPlot
seriesLabelIndex, $.jqplot.PointLabels
shadowRenderer, $.jqplot.MarkerRenderer
shapeRenderer, $.jqplot.MarkerRenderer
showBorders, $.jqplot.MekkoRenderer
showCursorLegend, $.jqplot.Cursor
showHorizontalLine, $.jqplot.Cursor
showLine, Series
showLines, $.jqplot.LineRenderer
showSwatch, Legend
showTickLabels, $.jqplot.MeterGaugeRenderer
showTooltipDataPosition, $.jqplot.Cursor
showTooltipGridPosition, $.jqplot.Cursor
showTooltipOutsideZoom, $.jqplot.Cursor
showTooltipPrecision, $.jqplot.CanvasOverlay
showTooltipUnitPosition, $.jqplot.Cursor
showVerticalLine, $.jqplot.Cursor
sizeAdjust, $.jqplot.Highlighter
smooth, $.jqplot.LineRenderer
sortData, jqPlot
sortMergedLabels, $.jqplot.CategoryAxisRenderer
stackedValue, $.jqplot.PointLabels
stackSeries, jqPlot
start, Line
stop, Line
strokeRect, $.jqplot.shapeRenderer
strokeStyle, $.jqplot.shapeRenderer
suffix, $.jqplot.AxisTickRenderer
syncTicks, Axis
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesT.html b/common/chart/docs/search/PropertiesT.html new file mode 100644 index 0000000..bc107de --- /dev/null +++ b/common/chart/docs/search/PropertiesT.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
text, Title
textAlign, Title
themes, $.jqplot.ThemeEngine
thickness, $.jqplot.DonutRenderer
tickColor, $.jqplot.MeterGaugeRenderer
tickLength, $.jqplot.OHLCRenderer
tickMode, $.jqplot.MekkoAxisRenderer
tickPadding, $.jqplot.MeterGaugeRenderer
title, jqPlot
tooltipAxes, $.jqplot.Highlighter
tooltipAxisGroups, $.jqplot.Cursor
transposedData, $.jqplot.BarRenderer
type, $.jqplot.Trendline
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesU.html b/common/chart/docs/search/PropertiesU.html new file mode 100644 index 0000000..df97c19 --- /dev/null +++ b/common/chart/docs/search/PropertiesU.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
upBodyColor, $.jqplot.OHLCRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesV.html b/common/chart/docs/search/PropertiesV.html new file mode 100644 index 0000000..ebd8349 --- /dev/null +++ b/common/chart/docs/search/PropertiesV.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
varyBarColor, $.jqplot.BarRenderer
varyBlockColors, $.jqplot.BlockRenderer
varyBubbleColors, $.jqplot.BubbleRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesW.html b/common/chart/docs/search/PropertiesW.html new file mode 100644 index 0000000..ce58976 --- /dev/null +++ b/common/chart/docs/search/PropertiesW.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
waterfall, $.jqplot.BarRenderer
wickColor, $.jqplot.OHLCRenderer
widthRatio, $.jqplot.FunnelRenderer
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesX.html b/common/chart/docs/search/PropertiesX.html new file mode 100644 index 0000000..c86d547 --- /dev/null +++ b/common/chart/docs/search/PropertiesX.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
xoffset, Legend
xpadding, $.jqplot.PointLabels
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesY.html b/common/chart/docs/search/PropertiesY.html new file mode 100644 index 0000000..8f6ea7a --- /dev/null +++ b/common/chart/docs/search/PropertiesY.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
y, HorizontalLine
yoffset, Legend
ypadding, $.jqplot.PointLabels
yvalues, $.jqplot.Highlighter
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/PropertiesZ.html b/common/chart/docs/search/PropertiesZ.html new file mode 100644 index 0000000..9da6ccf --- /dev/null +++ b/common/chart/docs/search/PropertiesZ.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + +
Loading...
zoom, $.jqplot.Cursor
Searching...
No Matches
\ No newline at end of file diff --git a/common/chart/docs/search/index.php b/common/chart/docs/search/index.php new file mode 100644 index 0000000..e69de29 diff --git a/common/chart/docs/styles/1.css b/common/chart/docs/styles/1.css new file mode 100644 index 0000000..134199a --- /dev/null +++ b/common/chart/docs/styles/1.css @@ -0,0 +1,767 @@ +/* + IMPORTANT: If you're editing this file in the output directory of one of + your projects, your changes will be overwritten the next time you run + Natural Docs. Instead, copy this file to your project directory, make your + changes, and you can use it with -s. Even better would be to make a CSS + file in your project directory with only your changes, which you can then + use with -s [original style] [your changes]. + + On the other hand, if you're editing this file in the Natural Docs styles + directory, the changes will automatically be applied to all your projects + that use this style the next time Natural Docs is run on them. + + This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure + Natural Docs is licensed under the GPL +*/ + +body { + font: 10pt Verdana, Arial, sans-serif; + color: #000000; + margin: 0; padding: 0; + } + +.ContentPage, +.IndexPage, +.FramedMenuPage { + background-color: #E8E8E8; + } +.FramedContentPage, +.FramedIndexPage, +.FramedSearchResultsPage, +.PopupSearchResultsPage { + background-color: #FFFFFF; + } + + +a:link, +a:visited { color: #900000; text-decoration: none } +a:hover { color: #900000; text-decoration: underline } +a:active { color: #FF0000; text-decoration: underline } + +td { + vertical-align: top } + +img { border: 0; } + + +/* + Comment out this line to use web-style paragraphs (blank line between + paragraphs, no indent) instead of print-style paragraphs (no blank line, + indented.) +*/ +p { + text-indent: 5ex; margin: 0 } + + +/* Opera doesn't break with just wbr, but will if you add this. */ +.Opera wbr:after { + content: "\00200B"; + } + + +/* Blockquotes are used as containers for things that may need to scroll. */ +blockquote { + padding: 0; + margin: 0; + overflow: auto; + } + + +.Firefox1 blockquote { + padding-bottom: .5em; + } + +/* Turn off scrolling when printing. */ +@media print { + blockquote { + overflow: visible; + } + .IE blockquote { + width: auto; + } + } + + + +#Menu { + font-size: 9pt; + padding: 10px 0 0 0; + } +.ContentPage #Menu, +.IndexPage #Menu { + position: absolute; + top: 0; + left: 0; + width: 31ex; + overflow: hidden; + } +.ContentPage .Firefox #Menu, +.IndexPage .Firefox #Menu { + width: 27ex; + } + + + .MTitle { + font-size: 16pt; font-weight: bold; font-variant: small-caps; + text-align: center; + padding: 5px 10px 15px 10px; + border-bottom: 1px dotted #000000; + margin-bottom: 15px } + + .MSubTitle { + font-size: 9pt; font-weight: normal; font-variant: normal; + margin-top: 1ex; margin-bottom: 5px } + + + .MEntry a:link, + .MEntry a:hover, + .MEntry a:visited { color: #606060; margin-right: 0 } + .MEntry a:active { color: #A00000; margin-right: 0 } + + + .MGroup { + font-variant: small-caps; font-weight: bold; + margin: 1em 0 1em 10px; + } + + .MGroupContent { + font-variant: normal; font-weight: normal } + + .MGroup a:link, + .MGroup a:hover, + .MGroup a:visited { color: #545454; margin-right: 10px } + .MGroup a:active { color: #A00000; margin-right: 10px } + + + .MFile, + .MText, + .MLink, + .MIndex { + padding: 1px 17px 2px 10px; + margin: .25em 0 .25em 0; + } + + .MText { + font-size: 8pt; font-style: italic } + + .MLink { + font-style: italic } + + #MSelected { + color: #000000; background-color: #FFFFFF; + /* Replace padding with border. */ + padding: 0 10px 0 10px; + border-width: 1px 2px 2px 0; border-style: solid; border-color: #000000; + margin-right: 5px; + } + + /* Close off the left side when its in a group. */ + .MGroup #MSelected { + padding-left: 9px; border-left-width: 1px } + + /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */ + .Firefox #MSelected { + -moz-border-radius-topright: 10px; + -moz-border-radius-bottomright: 10px } + .Firefox .MGroup #MSelected { + -moz-border-radius-topleft: 10px; + -moz-border-radius-bottomleft: 10px } + + + #MSearchPanel { + padding: 0px 6px; + margin: .25em 0; + } + + + #MSearchField { + font: italic 9pt Verdana, sans-serif; + color: #606060; + background-color: #E8E8E8; + border: none; + padding: 2px 4px; + width: 100%; + } + /* Only Opera gets it right. */ + .Firefox #MSearchField, + .IE #MSearchField, + .Safari #MSearchField { + width: 94%; + } + .Opera9 #MSearchField, + .Konqueror #MSearchField { + width: 97%; + } + .FramedMenuPage .Firefox #MSearchField, + .FramedMenuPage .Safari #MSearchField, + .FramedMenuPage .Konqueror #MSearchField { + width: 98%; + } + + /* Firefox doesn't do this right in frames without #MSearchPanel added on. + It's presence doesn't hurt anything other browsers. */ + #MSearchPanel.MSearchPanelInactive:hover #MSearchField { + background-color: #FFFFFF; + border: 1px solid #C0C0C0; + padding: 1px 3px; + } + .MSearchPanelActive #MSearchField { + background-color: #FFFFFF; + border: 1px solid #C0C0C0; + font-style: normal; + padding: 1px 3px; + } + + #MSearchType { + visibility: hidden; + font: 8pt Verdana, sans-serif; + width: 98%; + padding: 0; + border: 1px solid #C0C0C0; + } + .MSearchPanelActive #MSearchType, + /* As mentioned above, Firefox doesn't do this right in frames without #MSearchPanel added on. */ + #MSearchPanel.MSearchPanelInactive:hover #MSearchType, + #MSearchType:focus { + visibility: visible; + color: #606060; + } + #MSearchType option#MSearchEverything { + font-weight: bold; + } + + .Opera8 .MSearchPanelInactive:hover, + .Opera8 .MSearchPanelActive { + margin-left: -1px; + } + + + iframe#MSearchResults { + width: 60ex; + height: 15em; + } + #MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000000; + background-color: #E8E8E8; + } + #MSearchResultsWindowClose { + font-weight: bold; + font-size: 8pt; + display: block; + padding: 2px 5px; + } + #MSearchResultsWindowClose:link, + #MSearchResultsWindowClose:visited { + color: #000000; + text-decoration: none; + } + #MSearchResultsWindowClose:active, + #MSearchResultsWindowClose:hover { + color: #800000; + text-decoration: none; + background-color: #F4F4F4; + } + + + + +#Content { + padding-bottom: 15px; + } + +.ContentPage #Content { + border-width: 0 0 1px 1px; + border-style: solid; + border-color: #000000; + background-color: #FFFFFF; + font-size: 9pt; /* To make 31ex match the menu's 31ex. */ + margin-left: 31ex; + } +.ContentPage .Firefox #Content { + margin-left: 27ex; + } + + + + .CTopic { + font-size: 10pt; + margin-bottom: 3em; + } + + + .CTitle { + font-size: 12pt; font-weight: bold; + border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0; + margin: 0 15px .5em 15px } + + .CGroup .CTitle { + font-size: 16pt; font-variant: small-caps; + padding-left: 15px; padding-right: 15px; + border-width: 0 0 2px 0; border-color: #000000; + margin-left: 0; margin-right: 0 } + + .CClass .CTitle, + .CInterface .CTitle, + .CDatabase .CTitle, + .CDatabaseTable .CTitle, + .CSection .CTitle { + font-size: 18pt; + color: #FFFFFF; background-color: #A0A0A0; + padding: 10px 15px 10px 15px; + border-width: 2px 0; border-color: #000000; + margin-left: 0; margin-right: 0 } + + #MainTopic .CTitle { + font-size: 20pt; + color: #FFFFFF; background-color: #7070C0; + padding: 10px 15px 10px 15px; + border-width: 0 0 3px 0; border-color: #000000; + margin-left: 0; margin-right: 0 } + + .CBody { + margin-left: 15px; margin-right: 15px } + + + .CToolTip { + position: absolute; visibility: hidden; + left: 0; top: 0; + background-color: #FFFFE0; + padding: 5px; + border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000; + font-size: 8pt; + } + + .Opera .CToolTip { + max-width: 98%; + } + + /* Scrollbars would be useless. */ + .CToolTip blockquote { + overflow: hidden; + } + .IE6 .CToolTip blockquote { + overflow: visible; + } + + .CHeading { + font-weight: bold; font-size: 10pt; + margin: 1.5em 0 .5em 0; + } + + .CBody pre { + font: 10pt "Courier New", Courier, monospace; + margin: 1em 0; + } + + .CBody ul { + /* I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever. + Reapply it here as padding. */ + padding-left: 15px; padding-right: 15px; + margin: .5em 5ex .5em 5ex; + } + + .CDescriptionList { + margin: .5em 5ex 0 5ex } + + .CDLEntry { + font: 10pt "Courier New", Courier, monospace; color: #808080; + padding-bottom: .25em; + white-space: nowrap } + + .CDLDescription { + font-size: 10pt; /* For browsers that don't inherit correctly, like Opera 5. */ + padding-bottom: .5em; padding-left: 5ex } + + + .CTopic img { + text-align: center; + display: block; + margin: 1em auto; + } + .CImageCaption { + font-variant: small-caps; + font-size: 8pt; + color: #808080; + text-align: center; + position: relative; + top: 1em; + } + + .CImageLink { + color: #808080; + font-style: italic; + } + a.CImageLink:link, + a.CImageLink:visited, + a.CImageLink:hover { color: #808080 } + + + + + +.Prototype { + font: 10pt "Courier New", Courier, monospace; + padding: 5px 3ex; + border-width: 1px; border-style: solid; + margin: 0 5ex 1.5em 5ex; + } + + .Prototype td { + font-size: 10pt; + } + + .PDefaultValue, + .PDefaultValuePrefix, + .PTypePrefix { + color: #8F8F8F; + } + .PTypePrefix { + text-align: right; + } + .PAfterParameters { + vertical-align: bottom; + } + + .IE .Prototype table { + padding: 0; + } + + .CFunction .Prototype { + background-color: #F4F4F4; border-color: #D0D0D0 } + .CProperty .Prototype { + background-color: #F4F4FF; border-color: #C0C0E8 } + .CVariable .Prototype { + background-color: #FFFFF0; border-color: #E0E0A0 } + + .CClass .Prototype { + border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0; + background-color: #F4F4F4; + } + .CInterface .Prototype { + border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0D0; + background-color: #F4F4FF; + } + + .CDatabaseIndex .Prototype, + .CConstant .Prototype { + background-color: #D0D0D0; border-color: #000000 } + .CType .Prototype, + .CEnumeration .Prototype { + background-color: #FAF0F0; border-color: #E0B0B0; + } + .CDatabaseTrigger .Prototype, + .CEvent .Prototype, + .CDelegate .Prototype { + background-color: #F0FCF0; border-color: #B8E4B8 } + + .CToolTip .Prototype { + margin: 0 0 .5em 0; + white-space: nowrap; + } + + + + + +.Summary { + margin: 1.5em 5ex 0 5ex } + + .STitle { + font-size: 12pt; font-weight: bold; + margin-bottom: .5em } + + + .SBorder { + background-color: #FFFFF0; + padding: 15px; + border: 1px solid #C0C060 } + + /* In a frame IE 6 will make them too long unless you set the width to 100%. Without frames it will be correct without a width + or slightly too long (but not enough to scroll) with a width. This arbitrary weirdness simply astounds me. IE 7 has the same + problem with frames, haven't tested it without. */ + .FramedContentPage .IE .SBorder { + width: 100% } + + /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */ + .Firefox .SBorder { + -moz-border-radius: 20px } + + + .STable { + font-size: 9pt; width: 100% } + + .SEntry { + width: 30% } + .SDescription { + width: 70% } + + + .SMarked { + background-color: #F8F8D8 } + + .SDescription { padding-left: 2ex } + .SIndent1 .SEntry { padding-left: 1.5ex } .SIndent1 .SDescription { padding-left: 3.5ex } + .SIndent2 .SEntry { padding-left: 3.0ex } .SIndent2 .SDescription { padding-left: 5.0ex } + .SIndent3 .SEntry { padding-left: 4.5ex } .SIndent3 .SDescription { padding-left: 6.5ex } + .SIndent4 .SEntry { padding-left: 6.0ex } .SIndent4 .SDescription { padding-left: 8.0ex } + .SIndent5 .SEntry { padding-left: 7.5ex } .SIndent5 .SDescription { padding-left: 9.5ex } + + .SDescription a { color: #800000} + .SDescription a:active { color: #A00000 } + + .SGroup td { + padding-top: .5em; padding-bottom: .25em } + + .SGroup .SEntry { + font-weight: bold; font-variant: small-caps } + + .SGroup .SEntry a { color: #800000 } + .SGroup .SEntry a:active { color: #F00000 } + + + .SMain td, + .SClass td, + .SDatabase td, + .SDatabaseTable td, + .SSection td { + font-size: 10pt; + padding-bottom: .25em } + + .SClass td, + .SDatabase td, + .SDatabaseTable td, + .SSection td { + padding-top: 1em } + + .SMain .SEntry, + .SClass .SEntry, + .SDatabase .SEntry, + .SDatabaseTable .SEntry, + .SSection .SEntry { + font-weight: bold; + } + + .SMain .SEntry a, + .SClass .SEntry a, + .SDatabase .SEntry a, + .SDatabaseTable .SEntry a, + .SSection .SEntry a { color: #000000 } + + .SMain .SEntry a:active, + .SClass .SEntry a:active, + .SDatabase .SEntry a:active, + .SDatabaseTable .SEntry a:active, + .SSection .SEntry a:active { color: #A00000 } + + + + + +.ClassHierarchy { + margin: 0 15px 1em 15px } + + .CHEntry { + border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0; + margin-bottom: 3px; + padding: 2px 2ex; + font-size: 10pt; + background-color: #F4F4F4; color: #606060; + } + + .Firefox .CHEntry { + -moz-border-radius: 4px; + } + + .CHCurrent .CHEntry { + font-weight: bold; + border-color: #000000; + color: #000000; + } + + .CHChildNote .CHEntry { + font-style: italic; + font-size: 8pt; + } + + .CHIndent { + margin-left: 3ex; + } + + .CHEntry a:link, + .CHEntry a:visited, + .CHEntry a:hover { + color: #606060; + } + .CHEntry a:active { + color: #800000; + } + + + + + +#Index { + background-color: #FFFFFF; + } + +/* As opposed to .PopupSearchResultsPage #Index */ +.IndexPage #Index, +.FramedIndexPage #Index, +.FramedSearchResultsPage #Index { + padding: 15px; + } + +.IndexPage #Index { + border-width: 0 0 1px 1px; + border-style: solid; + border-color: #000000; + font-size: 9pt; /* To make 27ex match the menu's 27ex. */ + margin-left: 27ex; + } + + + .IPageTitle { + font-size: 20pt; font-weight: bold; + color: #FFFFFF; background-color: #7070C0; + padding: 10px 15px 10px 15px; + border-width: 0 0 3px 0; border-color: #000000; border-style: solid; + margin: -15px -15px 0 -15px } + + .FramedSearchResultsPage .IPageTitle { + margin-bottom: 15px; + } + + .INavigationBar { + font-size: 10pt; + text-align: center; + background-color: #FFFFF0; + padding: 5px; + border-bottom: solid 1px black; + margin: 0 -15px 15px -15px; + } + + .INavigationBar a { + font-weight: bold } + + .IHeading { + font-size: 16pt; font-weight: bold; + padding: 2.5em 0 .5em 0; + text-align: center; + width: 3.5ex; + } + #IFirstHeading { + padding-top: 0; + } + + .IEntry { + font-size: 10pt; + padding-left: 1ex; + } + .PopupSearchResultsPage .IEntry { + font-size: 8pt; + padding: 1px 5px; + } + .PopupSearchResultsPage .Opera9 .IEntry, + .FramedSearchResultsPage .Opera9 .IEntry { + text-align: left; + } + .FramedSearchResultsPage .IEntry { + padding: 0; + } + + .ISubIndex { + padding-left: 3ex; padding-bottom: .5em } + .PopupSearchResultsPage .ISubIndex { + display: none; + } + + /* While it may cause some entries to look like links when they aren't, I found it's much easier to read the + index if everything's the same color. */ + .ISymbol { + font-weight: bold; color: #900000 } + + .IndexPage .ISymbolPrefix, + .FramedIndexPage .ISymbolPrefix { + font-size: 10pt; + text-align: right; + color: #C47C7C; + background-color: #F8F8F8; + border-right: 3px solid #E0E0E0; + border-left: 1px solid #E0E0E0; + padding: 0 1px 0 2px; + } + .PopupSearchResultsPage .ISymbolPrefix, + .FramedSearchResultsPage .ISymbolPrefix { + color: #900000; + } + .PopupSearchResultsPage .ISymbolPrefix { + font-size: 8pt; + } + + .IndexPage #IFirstSymbolPrefix, + .FramedIndexPage #IFirstSymbolPrefix { + border-top: 1px solid #E0E0E0; + } + .IndexPage #ILastSymbolPrefix, + .FramedIndexPage #ILastSymbolPrefix { + border-bottom: 1px solid #E0E0E0; + } + .IndexPage #IOnlySymbolPrefix, + .FramedIndexPage #IOnlySymbolPrefix { + border-top: 1px solid #E0E0E0; + border-bottom: 1px solid #E0E0E0; + } + + a.IParent, + a.IFile { + display: block; + } + + .PopupSearchResultsPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + } + .FramedSearchResultsPage .SRStatus { + font-size: 10pt; + font-style: italic; + } + + .SRResult { + display: none; + } + + + +#Footer { + font-size: 8pt; + color: #989898; + text-align: right; + } + +#Footer p { + text-indent: 0; + margin-bottom: .5em; + } + +.ContentPage #Footer, +.IndexPage #Footer { + text-align: right; + margin: 2px; + } + +.FramedMenuPage #Footer { + text-align: center; + margin: 5em 10px 10px 10px; + padding-top: 1em; + border-top: 1px solid #C8C8C8; + } + + #Footer a:link, + #Footer a:hover, + #Footer a:visited { color: #989898 } + #Footer a:active { color: #A00000 } + diff --git a/common/chart/docs/styles/2.css b/common/chart/docs/styles/2.css new file mode 100644 index 0000000..12117d4 --- /dev/null +++ b/common/chart/docs/styles/2.css @@ -0,0 +1,174 @@ +html, body { + height: 100%; +} + +/* +div.Firefox { + height: 100%; +} +*/ + +.MTitle { + font-variant: normal; +} + +.MLink { + font-style: normal; +} + +.CBody { +margin-left: 30px; +margin-right: 30px; +} + +p { + text-indent: 0; + margin-bottom: 1em; + } + +.CBody p { +/* + padding-top: 4px; + padding-bottom: 4px; +*/ +} + +#Menu { + margin-top: 94px; + border: 0px; +} + +body.ContentPage { + background-image: url('../../images/background.jpg'); + background-color: #818181; + background-position: left top; + background-repeat: repeat-x; +} + +.MGroup a:link, +.MGroup a:hover, +.MGroup a:visited { color: #bfbfbf; margin-right: 10px } +.MGroup a:active { color: #f58f07; margin-right: 10px } + + +.MEntry a:link, +.MEntry a:hover, +.MEntry a:visited { color: #bfbfbf; margin-right: 0 } +.MEntry a:active { color: #f58f07; margin-right: 0 } + +#Footer { + color: #bfbfbf; +} + +#Footer a:link, #Footer a:hover, #Footer a:visited { + color: #5c93f0; +} + +#MainTopic div.CTitle.logo { + color: #292929; + font-size: 0px; + font-style: normal; + font-weight: normal; + border-width: 0px; + padding: 0px; + margin: 0px; + background-position: left top; + background-repeat: no-repeat; + background-image: url('../../images/logo.jpg'); + background-color: #292929; + height: 94px; + position: relative; + +} + +#MainTopic h1.CTitle a { + display: none; +} + + +#MainTopic div.CBody p:first-child { + margin-top: 24px; +} + +.ContentPage #Content { + border: 0px; +/* height: 100%; */ +} + +#IPageLogo { + width: 780px; + color: #292929; + font-style: normal; + font-weight: normal; + border-width: 0px; + padding: 0px; + margin: 0px; + background-position: left top; + background-repeat: no-repeat; + background-image: url('../../images/logo.jpg'); + background-color: #292929; + height: 94px; + position: relative; + left: 27ex; +} + +#Menu, #IPageLogo { + font-size: 9pt; +} + +body.IndexPage { + background-image: url('../../images/background.jpg'); +} + +/*#IPageLogo:hover { + cursor: pointer; +}*/ + +.IPageTitle { + background-color:#FFFFF0; + color: #333333; + border: 0px; +} + + + +div.nav { + position:relative; + top: 70px; + text-align: right; +} + +a.nav span { + font-size: 11px; + position: relative; + bottom: 2px; +} + +a.nav:visited { + text-decoration: none; + border: 0px; + color: #aaaaaa; +} + +a.nav, a.nav:link { + border: 0px; + text-decoration: none; + font-family: Tahoma, "Helvetica Neue", "Trebuchet MS", Verdana, Arial, sans-serif; + font-size: 16px; + color: #aaaaaa; + margin-right: 11px; +} + +a.nav:hover { + text-decoration: none; + border: 0px; + color: #E0771C; +} + +a.nav:active { + text-decoration: none; + border: 0px; + color: #E0771C; +} + + diff --git a/common/chart/docs/styles/index.php b/common/chart/docs/styles/index.php new file mode 100644 index 0000000..e69de29 diff --git a/common/chart/docs/styles/main.css b/common/chart/docs/styles/main.css new file mode 100644 index 0000000..a672a94 --- /dev/null +++ b/common/chart/docs/styles/main.css @@ -0,0 +1,2 @@ +@import URL("1.css"); +@import URL("2.css"); diff --git a/common/chart/examples/KCPsample4.csv b/common/chart/examples/KCPsample4.csv new file mode 100644 index 0000000..e56dcdb --- /dev/null +++ b/common/chart/examples/KCPsample4.csv @@ -0,0 +1,25 @@ +Product or service,v01,v02,v03,v04,v05,v06,v07,v08,v09,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20 +Rice,15.8442,13.0993,11.2898,10.7892,10.252,9.0165,8.5287,7.7442,6.9867,6.5213,5.9473,5.4766,4.9214,4.6398,3.8935,3.5228,3.0128,2.4847,2.0357,1.0672 +Bread and other cereals,1.7703,2.2535,2.2753,2.7927,2.2509,2.4341,2.5518,2.5547,2.4204,2.4186,2.4261,2.2927,2.4386,2.2295,2.2203,1.915,1.8791,1.7941,1.6567,0.9296 +Meat,8.3728,8.1221,8.3989,7.9758,8.8246,8.2377,8.432,7.8466,7.5343,7.1171,6.9801,6.9349,5.8307,5.7089,4.927,4.2237,3.6872,3.1429,2.581,1.3766 +Fish and seafood,9.1249,8.7326,7.6122,7.8577,7.1625,6.8527,6.5158,6.1715,6.1298,5.8702,5.3456,4.9906,4.4424,4.3022,3.5298,3.405,2.9977,2.4159,2.0832,1.1499 +Fruits and vegetables,8.0508,7.7875,7.6534,7.4448,7.3702,7.4188,7.3882,7.1647,6.9617,6.6576,6.6077,6.4823,5.9117,5.8149,5.505,5.5355,5.0907,4.569,4.3049,2.6325 +Other food products,10.4408,9.8278,9.9293,9.5176,9.6658,9.2359,9.2842,8.6497,8.7656,8.2962,8.155,7.7294,7.3674,6.9888,6.2995,5.7314,5.2703,4.6947,3.9614,2.2509 +Catering services,4.1883,4.7514,5.3198,5.8819,5.1732,5.5764,6.1713,6.7915,6.8511,7.2681,7.1461,8.109,9.2649,9.5322,11.2138,12.8299,12.9621,13.8936,13.7828,10.0525 +Non-alcoholic beverages,0.6641,0.8454,0.9018,1.0461,1.0113,1.235,1.279,1.3049,1.5024,1.4471,1.5358,1.5796,1.6471,1.6443,1.6562,1.6763,1.6097,1.5039,1.3752,0.864 +Alcoholic beverages,0.5221,0.6997,0.8513,0.8849,0.9168,0.9099,0.8339,0.9921,1.1169,1.1764,1.1936,1.1415,1.1181,1.2889,1.1378,1.023,1.1283,1.0417,0.9839,0.587 +Tobacco and narcotics,1.0969,1.188,1.0713,1.2803,1.1787,1.148,1.3229,1.1726,1.3764,1.3887,1.4011,1.3034,1.4368,1.5017,1.4899,1.4123,1.3168,1.1407,0.8458,0.38 +Clothing and footwear,2.275,2.5511,3.1025,2.9834,3.2857,3.7625,3.1928,3.7071,4.0364,3.629,3.9258,3.2208,3.7113,3.3166,3.4775,3.429,3.6121,3.4569,3.8416,4.1323 +Rentals (actual or imputed) and maintenance and repair of the dwelling,16.0654,15.719,16.3773,16.0175,15.8853,16.132,16.1309,16.3491,15.8512,16.4743,16.2862,15.7327,16.2793,16.6329,17.4903,17.4425,17.3413,18.3527,18.5029,15.2763 +Water supply and miscellaneous services related to the dwelling,1.1145,1.176,1.1183,1.0411,1.0058,1.0796,1.0321,1.0714,1.1117,1.0278,1.136,1.1397,1.1556,1.2206,1.2871,1.2361,1.2111,1.2312,1.1545,0.7881 +Electricity gas and other fuels,4.5928,4.7558,4.8855,4.4684,4.6677,4.6038,4.7789,4.6098,4.4171,4.5078,4.4137,4.4645,4.2693,4.2836,4.1709,4.159,3.8423,3.9957,3.6816,2.5785 +Furnishing household equipment and routine household maintenance,2.1027,2.1576,2.0721,2.0623,2.3498,2.2573,2.2866,2.3766,2.2488,2.3665,2.3445,2.2474,2.3345,2.2479,2.158,2.355,2.0744,2.2269,3.0474,3.8925 +Health,1.2709,1.6007,1.3996,1.612,1.4649,1.5875,1.7056,1.7315,1.7378,2.0401,2.3265,2.1096,2.0513,2.1548,2.0634,2.2206,1.8427,2.4817,2.3066,2.1685 +Transport,4.6414,5.6167,5.9571,6.5372,7.0242,7.6332,7.9823,8.3906,9.112,9.6872,10.2014,11.0074,11.375,11.6753,12.0489,12.0692,13.2962,13.2183,14.6559,32.0912 +Communication,0.2334,0.3642,0.5267,0.5911,0.8888,1.1633,1.0997,1.76,1.9811,2.1708,2.931,3.2634,3.6254,4.107,4.6944,5.0941,5.9984,6.2419,6.6059,5.8353 +Recreation and culture,2.2553,2.8903,2.9564,3.2839,3.4822,3.255,3.1666,3.4245,3.4066,3.8536,3.6333,4.0331,4.4847,4.3552,4.2768,4.1439,4.7196,4.6585,4.4286,3.921 +Education,0.3437,0.3282,0.4805,0.3881,0.4796,0.9766,0.6589,0.6443,1.0423,0.7941,1.064,1.5504,1.3977,1.5226,1.8344,1.9186,2.3022,2.8188,2.8424,2.7792 +Personal care,3.4466,3.5641,3.5711,3.4219,3.2835,3.3569,3.3416,3.4544,3.3675,3.2806,3.118,3.1881,3.2252,3.0588,3.0051,2.9868,3.0361,2.8972,2.9611,2.2867 +Other miscellaneous goods and services,1.5831,1.9691,2.2498,2.122,2.3766,2.1273,2.3165,2.0884,2.0421,2.0067,1.8809,2.0027,1.7115,1.7734,1.6204,1.6702,1.769,1.7391,2.3607,2.9604 +Food and non-alcoholic beverages,58.4561,55.4196,53.3806,53.3059,51.7105,50.007,50.1509,48.2276,47.1521,45.5962,44.1436,43.5952,41.8242,40.8606,39.2451,38.8396,36.5095,34.4988,31.7809,20.3231 +Non food,41.5439,44.5804,46.6194,46.6941,48.2895,49.993,49.8491,51.7724,52.8479,54.4038,55.8564,56.4048,58.1758,59.1394,60.7549,61.1604,63.4905,65.5012,68.2191,79.6769 diff --git a/common/chart/examples/ages.json b/common/chart/examples/ages.json new file mode 100644 index 0000000..8691618 --- /dev/null +++ b/common/chart/examples/ages.json @@ -0,0 +1,5 @@ +[[1043353182,539695335,503657847,28.24,27.51,29.01,51.78], +[0.0085318435343400800,0.0088774027062416400,0.0094714560875224100,0.0101640893891056000,0.0108249758696292000,0.0113773174183149000,0.0117954271696904000,0.0120868766491156000,0.0122726357410028000,0.0123620512208843000,0.0124092312631522000,0.0123929933989534000,0.0123170841477326000,0.0121788940682660000,0.0119848553256476000,0.0117367932349178000,0.0114334768233470000,0.0110840887113746000,0.0107005336950161000,0.0102889073661635000,0.0098746874267631800,0.0094727992165526500,0.0091066817836288100,0.0087853078056091400,0.0085176451289595700,0.0082955898249666400,0.0081021034227657000,0.0079410857437656400,0.0078129432771183200,0.0077041517746791700,0.0076076629996558600,0.0075063773837400400,0.0074212932416191700,0.0073577960797626100,0.0073199937766648000,0.0072872222696609900,0.0072249036551971000,0.0071436496521446000,0.0070535868312601700,0.0069442503777637000,0.0068032069975035000,0.0066093294501292200,0.0063936409488174700,0.0061768176372133200,0.0059737878831400300,0.0057724507581444500,0.0055456647375558400,0.0053139201135624000,0.0050952395722700100,0.0048873227886988200,0.0046839194356973000,0.0044709211871979300,0.0042683374557587400,0.0040886232834079100,0.0039394433696905200,0.0038097165950705600,0.0036797119436340500,0.0035595490798891500,0.0034559622921317600,0.0033586853733251200,0.0032515219944251700,0.0031141174480235800,0.0029601056879342400,0.0027997057390388600,0.0026388958299152400,0.0024706340765107900,0.0022829305753990900,0.0020900571013307600,0.0019037152224417700,0.0017251049256371200,0.0015499961243315000,0.0013709889555399900,0.0011982773790103000,0.0010401790931594200,0.0009015220565900700,0.0007812832602556460,0.0006749752626942340,0.0005833580512023270,0.0005061657847658260,0.0004399544894590220,0.0003808034210932470,0.0003273788998735520,0.0002794993115460400,0.0002369793671257210,0.0001995479850687680,0.0001668101805315270,0.0001383186716039340,0.0001138075253115040,0.0000929924552954457,0.0000755223736670678,0.0000610047525059652,0.0000490638302928227,0.0000396489252832302,0.0000330891826825378,0.0000281195284929135,0.0001070412478036410], +[0.0071192629623232800,0.0072839317935624000,0.0075693293189514500,0.0079091875498352200,0.0082360857829773300,0.0084979038169712600,0.0086893986451354100,0.0088353986277422900,0.0089633895658643000,0.0090878796761182500,0.0092337667384807200,0.0093792123312149900,0.0095192745279032600,0.0096463104169553400,0.0097588790000607600,0.0098544841215461300,0.0099282199747865200,0.0099763812248601700,0.0099957597226035700,0.0099801585489242500,0.0099375446097938400,0.0098709094654945100,0.0097926096630396900,0.0097014318757340600,0.0095968423362564000,0.0094699215837397400,0.0093120985109391200,0.0091337644254482100,0.0089445678055607600,0.0087423328014590000,0.0085321350430430500,0.0083104164267343500,0.0081040369311665900,0.0079207770770160300,0.0077675098774536000,0.0076284130950824500,0.0074765938644635800,0.0073237591351693500,0.0071772210497332700,0.0070244435483804400,0.0068550745015274400,0.0066526057090785200,0.0064404461001358000,0.0062305720357510500,0.0060342707683446500,0.0058408705961082800,0.0056264339860478000,0.0054065565344313600,0.0051920462742280000,0.0049765895152515200,0.0047558832991186200,0.0045207003388048400,0.0042899070487080500,0.0040745089551306800,0.0038817655555785800,0.0037053224400247200,0.0035332134254902200,0.0033727187145046400,0.0032284905944481100,0.0030937679725170100,0.0029582187048090100,0.0028081834596732200,0.0026513461722362800,0.0024926069125082600,0.0023353006048059200,0.0021744630786167700,0.0020021420693961100,0.0018298895084829500,0.0016671380010344600,0.0015153637133401800,0.0013712248188900700,0.0012284616818527500,0.0010934572254154500,0.0009707133813897040,0.0008622603131043950,0.0007661899219731710,0.0006786114871838230,0.0006005435486257860,0.0005322956370150040,0.0004715229254612440,0.0004158721219136000,0.0003645948643149670,0.0003176904909297340,0.0002751152300590630,0.0002367021156783720,0.0002021700726755280,0.0001712214234345020,0.0001437557719387760,0.0001197138111336940,0.0000989925882290494,0.0000814263200020563,0.0000667991474109870,0.0000549164545704749,0.0000455518367647343,0.0000384480445034309,0.0001437755914949950], +[1.284165231,1.3059697282,1.3408259576,1.3770498469,1.4083776842,1.4346340126,1.4545779876,1.4658887137,1.4671638972,1.457608962,1.4400548643,1.4158684686,1.3864911961,1.3528812542,1.3159697978,1.27622903,1.2340137083,1.1905291022,1.1471037258,1.1047013276,1.0647737249,1.0283340659,0.9964942039,0.9703629438,0.9510519527,0.9386721807,0.932316307,0.9316292996,0.9359838821,0.9443012277,0.9554470086,0.9678781103,0.9812761433,0.9953894103,1.0098153246,1.0236249732,1.035479081,1.0451994053,1.0530930686,1.0593183708,1.0634438538,1.0645809137,1.0637641578,1.0623066923,1.0608111193,1.0589993944,1.0561690641,1.0531914677,1.0515722425,1.052330754,1.0553372965,1.0597522653,1.0661637808,1.0752634417,1.0874733411,1.1017415355,1.1159815378,1.1309096828,1.1470504754,1.1633078085,1.1777943775,1.1882903501,1.1963378464,1.2035708256,1.2108560457,1.2175013424,1.2218302494,1.2239011525,1.223611334,1.2198647763,1.2112533925,1.1958739376,1.1742717733,1.1482333683,1.1203430352,1.0926602484,1.0658097999,1.040887396,1.0189501507,0.9998112064,0.9811922123,0.9621730704,0.9427349027,0.9230154312,0.903354613,0.8841353287,0.8656369091,0.8483181293,0.8323701879,0.8174967062,0.8028084248,0.7870522949,0.7736454722,0.7783827557,0.7836945697,0.7977724963], +[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,"95+", ""]] \ No newline at end of file diff --git a/common/chart/examples/ajax-loader.gif b/common/chart/examples/ajax-loader.gif new file mode 100644 index 0000000..3288d10 Binary files /dev/null and b/common/chart/examples/ajax-loader.gif differ diff --git a/common/chart/examples/area.html b/common/chart/examples/area.html new file mode 100644 index 0000000..2965058 --- /dev/null +++ b/common/chart/examples/area.html @@ -0,0 +1,289 @@ + + + + + + Filled (Area) Charts + + + + + + + + + + + + + +
+
+
+ + + + + + +

Area charts support highlighting and mouse events by default. The options and handlers and callbacks are essentially the same as with bar, pie, donut and funnel charts. One notable exception for area charts is that no data point index will be provided to the callback and the entire data set for the highlighted area will be returned. This is because the area is not associated with one particular data point, but with the entire data set of the series.

+ +
Moused Over: Nothing
+ +
+ +

For the chart below, mouseover has been disabled and click handling is enabled by setting "highlightMouseDown: true". For "fillToZero" area charts that have both negative and positive values as shown below, clicking in either the positive of negative regions will generate the same result.

+ +
You Clicked: Nothing yet
+ +
+ +
+ +
I'm a tooltip.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + diff --git a/common/chart/examples/axisLabelTests.html b/common/chart/examples/axisLabelTests.html new file mode 100644 index 0000000..05c69be --- /dev/null +++ b/common/chart/examples/axisLabelTests.html @@ -0,0 +1,217 @@ + + + + + + Axis Labels + + + + + + + + + + + + + +
+
+
+ + + + +

jqPlot support axis labels through the "label" option of each axis. The default label renderer creates labels in div tags, which allows full css control over every label. Labels are assigned css classes like "jqplot-axis_name-label" where "axis_name" will be xaxis, yaxis, etc.

+ +
+ +

+
+
+

By including the "jqplot.canvasTextRenderer.min.js" and "jqplot.canvasAxisLabelRenderer.min.js" plugins, you can render label text directly onto canvas elements. This allows text to be rotated and yaxes will have their labels rotated 90 degrees by default. By default the labels will be rendered using the Hershey font metrics and not stroked as text. Most recent browsers (include IE 9) support native text rendering in canvas elements.

+ +
+ +

+
+      
+

If a visitors is using a browser suppporting native canvas fonts, the plot belowsupported browser, they will see the labels in the plot below rendered as 12 pt Georgia (or their system serif font if Georgia is unavailable). If they are on an unsupported browser, they will see the default Hershey font.

+ +
+ +

+
+
+  
+
+  
+
+  
+
+
+
+
+
+
+
+
+
+    
+    
+    
+    
+
+
+
+
+  
+  
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/axisLabelsRotatedText.html b/common/chart/examples/axisLabelsRotatedText.html new file mode 100644 index 0000000..e78e864 --- /dev/null +++ b/common/chart/examples/axisLabelsRotatedText.html @@ -0,0 +1,289 @@ + + + + + + Axis Labels and Rotated Text + + + + + + + + + + + + + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + diff --git a/common/chart/examples/axisScalingForceTickAt.html b/common/chart/examples/axisScalingForceTickAt.html new file mode 100644 index 0000000..43a6c1c --- /dev/null +++ b/common/chart/examples/axisScalingForceTickAt.html @@ -0,0 +1,300 @@ + + + + + + Force Plot to Have Tick at 0 or 100 + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + +
+

+
+

+
+

+
+

+
+

+
+ +
+ + +
+
+ + +
+ +

+
+
+
+
+
+
+    
+    
+    
+    
+
+
+  
+  
+  
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/bandedLine.html b/common/chart/examples/bandedLine.html new file mode 100644 index 0000000..4e6c898 --- /dev/null +++ b/common/chart/examples/bandedLine.html @@ -0,0 +1,370 @@ + + + + + + Error Bands and Confidence Intervals + + + + + + + + + + + + + +
+
+
+ + + +

Bands (like confidence intervals or error bands) can be added to line charts through the "bands" option of the line renderer. The band data can be automatically computed or manually assigned. If assigned manually, the simpliest approach is to set the "rendererOptions: { bandData: [] }" array on the series. Note that band data is taken into account when axes scale themselves so bands will not get clipped.

+ + +

Band data can be supplied as arrays of [x,y] values. One array for the upper band line and one for the lower band line.

+ +
+

+
+
+

The number of points in the band data arrays does not have to correspond to the number of points in the data series. Also, band data will be drawn as smoothed lines if the data series is smoothed.

+ +
+

+
+

In this example, band data is supplied as an array of arrays of y values for the low and hi bands. X values for the bands are taken from the x values of the series. The band data is of the form: [ [y low 1, y hi 1], [y low 2, y hi 2], ... ] and there must be a corresponding array of low/hi y values for each x value in the data series.

+ +
+

+
+

The band data can also be supplied as an array of [low y values], [hi y values]. In this case there must also be an equal number of low y values and hi y values as there are data points in the series. X values for the low and hi bands will be taken from the series data. Additionally, the order of low/hi values does not matter as long as they are consistent. jqPlot will figure out which is the low values and which are the high values.

+ +
+

+
+

Band data does not have to be provided. By default, jqPlot will compute +/- 3% band intervals if the "rendererOptions: { bands: { show: true } }" option is set. The band intervals can be customized as well through the "rendererOptions: { bands: { interval: [number|string|arry] } }" option. Valid intervals are:

+ +
    +
  • '1.7' - will add bands at y +/- 1.7 above and below the line.
  • +
  • '10%' - will compute +/- 10% interval bands.
  • +
  • [3, '-10%'] - will add bands at y + 3 and y - 10% above and below the line.
  • +
+ +

Examples of such interval specifications are shown below:

+ +
+

+ 
+

+
+ 
+

+    
+

You can also customize the fill color of the bands and turn on/off band lines. By default, bands respond to the mouse over event, but they can be set to respond to mouse down as well.

+
+

+
+

Note, the plots on this page all extend the following pre-defined theme:

+ +

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    
+    
+    
+
+
+    
+    
+    
+    
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/bar-charts.html b/common/chart/examples/bar-charts.html new file mode 100644 index 0000000..9c61555 --- /dev/null +++ b/common/chart/examples/bar-charts.html @@ -0,0 +1,279 @@ + + + + + + Vertical and Horizontal Bar Charts + + + + + + + + + + + + + +
+
+
+ + + + + + + +
+ +

+
+    
+ +

+
+    

Click on a bar in the plot below to update the text box.

+

You Clicked: + Nothing yet. +

+
+ +

+
+  
+  
+
+
+
+    
+
+
+
+
+
+
+    
+    
+    
+    
+
+
+
+
+    
+    
+    
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/barLineAnimated.html b/common/chart/examples/barLineAnimated.html new file mode 100644 index 0000000..045fee7 --- /dev/null +++ b/common/chart/examples/barLineAnimated.html @@ -0,0 +1,225 @@ + + + + + + Animated Charts + + + + + + + + + + + + + +
+
+
+ + + + +
+ +

This plot animates the bars bottom to top and the line series left to right upon initial page load. Since the animateReplot: true option is set, the bars and line will also animate upon calls to plot1.replot( { resetAxes: true } ).

+ +

+
+
+ 
+
+
+
+
+
+    
+    
+    
+    
+
+
+  
+  
+   
+  
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/barTest.html b/common/chart/examples/barTest.html new file mode 100644 index 0000000..999ddf5 --- /dev/null +++ b/common/chart/examples/barTest.html @@ -0,0 +1,358 @@ + + + + + + Bar Charts + + + + + + + + + + + + + +
+
+
+ + + + +

Below is a default bar plot. Bars will highlight on mouseover. Events are triggered when you mouseover a bar and also when you click on a bar. Here We capture the 'jqplotDataClick' event and display the clicked series index, point index and data values. When series data is assigned as a 1-dimensional array as in this example, jqPlot automatically converts it into a 2-dimensional array for plotting. So a series defined as [2, 6, 7, 10] will become [[1,2], [2,6], [3,7], [4,10]].

+ +

You Clicked: Nothing yet
+ +
+

+
+    

The plot target also fires a 'jqplotDataMouseOver' when the cursor is moused over a bar even if highlighting is turned off. This event will fire continuously as the user mouses over the bar. 'jqplotDataHighlight' fires only once when the user first passes over the bar. Additionally, a 'jqplotDataUnhighlight' event is fired when the user moves out of a bar (if highlighting is enabled).

+ +

Moused Over: Nothing
+ +
+

+    
+    
Moused Over: Nothing
+
Clicked: Nothing
+ +
+

+    
+    

The next example has the plot's 'captureRightClick' option set to true. This causes the plot to fire a 'jqplotRightClick' event the the user clicks the right mouse button over a bar. Here, the 'highlightMouseDown' option is also set to true. This will highlight a slice on mouse down instead of on move over. Highlighting will occur for either left or right click.

+ +
You Right Clicked: Nothing yet
+ +
+

+    
+    
+

+    
+    
+

+        
+

A pie chart is added to test for incompatibilities.

+
+

+
+

The next example shows the placement of point labels on negative bars. They should be placed on the opposite position. That is, if it is placed 'north' to the positive bars, then it should be placed 'south' to the negative bars.

+
+

+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+
+   
+
+     
+
+
+
+
+
+    
+    
+    
+    
+
+
+  
+  
+  
+  
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/bezierCurve.html b/common/chart/examples/bezierCurve.html new file mode 100644 index 0000000..ebe97ed --- /dev/null +++ b/common/chart/examples/bezierCurve.html @@ -0,0 +1,185 @@ + + + + + + Bezier Curve Plots + + + + + + + + + + + + + +
+
+
+ + + + +

The Bezier curve renderer can distinguish between two different input data formats. This first example has the data passed in as 2 data points, the second one defining the Bezier curve to the end point. With this format, non-default axes renderers will require specifying the minimum and maximum on the axes.

+
+    [[xstart, ystart], [cp1x, cp1y, cp2x, cp2y, xend, yend]];
+
+
+

This second example has the data broken out into 4 points, which will be assembled to define the Bezier Curve. With this format, any axes renderer can be used without explicitly specifying the minimum and maximum.

+
+    [[xstart, ystart], [cp1x, cp1y], [cp2x, cp2y], [xend, yend]];
+
+
+

Here is an example using a date axis renderer with Bezier curves. The data looks like:

+
+    [['01/01/2010', 6], ['02/01/2010', 9], ['03/01/2010', 8], ['04/01/2010', 3]]
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + diff --git a/common/chart/examples/blockPlot.html b/common/chart/examples/blockPlot.html new file mode 100644 index 0000000..ed7fd5a --- /dev/null +++ b/common/chart/examples/blockPlot.html @@ -0,0 +1,259 @@ + + + + + + Block Plots + + + + + + + + + + + + + +
+
+
+ + + + +

Below is an example block plot. This plot also uses the Enhanced Legend Renderer plugin. Clicking on an item in the legend will toggle display of the appropriate series.

+ +
+ +

Blocks can be moved by selecting the series, the point, and an optional duration parameter. If specified, duration will animate the movement. Duration is either a number in milliseconds, or the keywords 'fast' or 'slow'. Higher numbers will cause a slower animation.

+ Series: + Point: + Duration: + X: + Y: + +

+    
+    
+    

This second chart is like the first except the "varyBlockColors" renderer option is set to true. This will vary the color of each block in a series separately. This allows displaying a third dimension to the data such as grouping beverage products by producer and by category such as "cola", "tea", "energy drink", etc.

+ +

Also, the legend has its "showSwatches" option set to false, since the blocks of each series will be of varying color and won't correspond to one swatch color. This still enables the user to show and hide the series by clicking on a label in the legend.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + diff --git a/common/chart/examples/bubble-plots.html b/common/chart/examples/bubble-plots.html new file mode 100644 index 0000000..d82a0ba --- /dev/null +++ b/common/chart/examples/bubble-plots.html @@ -0,0 +1,273 @@ + + + + + + Bubble Plots + + + + + + + + + + + + + +
+
+
+ + + + + + +

Bubble charts represent 3 dimensional data. First, a basic bubble chart with the "bubbleGradients: true" option to specify gradient fills. Radial gradients are not supported in IE version before IE 9 and will be automatically disabled.

+ +
+ +

+
+
+

Data is passed in to a bubble chart as a series of [x, y, radius, <label or object>]. The optional fourth element of the data point can either be either a label string or an object having 'label' and/or 'color' properties to assign to the bubble.

+ +

By default, all bubbles are scaled according to the size of the plot area. The radius value in the data point will be adjusted to fit the bubbles in the chart. If the "autoscaleBubbles" option is set to false, the radius value in the data will be taken as a literal pixel value for the radius of the points.

+ +

Next are some basic customizations of bubble appearance with the "bubbleAlpha" and "highlightAlpha" options.

+ +
+ +

+
+
+

In the following example, display of a custom toolip and highlighting of a custom table legend is performed by binding to the "jqplotDataHighlight" and "jqplotDataUnhighlight" events. The custom legend table here is dynamically created with a few lines of jQuery (O.K., it could be done in one line) based on the data array of the plot.

+ + + + + + +
CompanyR Value
+ +

+
+
+
+  
+
+
+
+
+
+
+
+
+
+    
+    
+    
+    
+
+
+
+
+    
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/bubbleChart.html b/common/chart/examples/bubbleChart.html new file mode 100644 index 0000000..c5fc74b --- /dev/null +++ b/common/chart/examples/bubbleChart.html @@ -0,0 +1,324 @@ + + + + + + Bubble Charts + + + + + + + + + + + + + +
+
+
+ + + + + + + +

Bubble charts represent 3 dimensional data. Data is passed in to a bubble chart as a series of [x, y, radius, <label or object>]. The optional fourth element of the data point can either be either a label string or an object having 'label' and/or 'color' properties to assign to the bubble.

+ +

By default, all bubbles are scaled according to the size of the plot area. The radius value in the data point will be adjusted to fit the bubbles in the chart. If the "autoscaleBubbles" option is set to false, the radius value in the data will be taken as a literal pixel value for the radius of the points.

+ +

The below chart show basic customization of bubble appearance with the "bubbleAlpha" and "highlightAlpha" options.

+ +
+

+
+
+
+
+    
+    
+
CompanyR Value
+

+
+

Below is a basic bubble chart showing usage of the optional label and color properties passed in with the data.

+ +
+

+
+

The next chart uses the "bubbleGradients: true" option to specify gradient fills on the bubbles. Radial gradients are not supported in IE* and will be automatically disabled.

+ +
+ +

*Radial gradients are not supported in IE 7 and IE 8 because they are not supported in the excanvas emulation layer used by jqPlot to render charts in IE 7 and IE 8. jqPlot renders charts using the HTML canvas element which is supported by nearly every browser including IE 9. Excanvas translates the canvas rendering to VML rendering for IE 7 and 8, but unfortunately does not properly handle radial gradients.

+ +

+
+

The following bubble chart shows the "autoscalePointsFactor" and "autoscaleMultiplier" options which can be used to control bubble scaling. The "autoscalePointsFactor" options controls bubble scaling with the number of points on the plot. A negative value will decrease bubble size and number of bubbles increases. The "autoscaleMultiplier" will makes all bubbles larger or smaller for values greater or less than 1.0.

+ +

This chart also demonstrates some of the highlighting options. Bubble highlighting is controlled with the "highlightMouseOver" and "highlightMouseDown" boolean options. Here the "highlightMouseDown: true" option is set which causes the plot to highlight on mousedown (click). This automatically sets the "highlightMouseOver" option to false.

+ +

Events are also trigger with plot interaction. Specifically, "jqplotDataHighlight", "jqplotDataUnhighlight", "jqplotDataClick" and "jqplotDataRightClick" events are triggered. Handlers are passed an event object, the series index, the point index, and the bubble data.

+ +
+

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    
+    
+    
+
+
+  
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/candlestick-charts.html b/common/chart/examples/candlestick-charts.html new file mode 100644 index 0000000..588435e --- /dev/null +++ b/common/chart/examples/candlestick-charts.html @@ -0,0 +1,269 @@ + + + + + + Open Hi Low Close and Candlestick Charts + + + + + + + + + + + + + +
+
+
+ + + + +

OHLC, HLC and Candlestick charts are all created using the $.jqplot.OHLCRenderer plugin. The plots on this page make use of the highlighter plugin which shows a customized tooltip as the mouse moves over a data point.

+
+ +

+
+
+ +

+
+

The previous plots use the following data set. jqPlot will parse most human readable date formats. It is always safest, however, to pass a date in as a JavaScript timestamp rather than have jqPlot parse an arbitrary date string.

+ +

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    
+    
+    
+
+
+
+
+    
+    
+    
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/candlestick.html b/common/chart/examples/candlestick.html new file mode 100644 index 0000000..12fcffd --- /dev/null +++ b/common/chart/examples/candlestick.html @@ -0,0 +1,380 @@ + + + + + + Candlestick and Open Hi Low Close Charts + + + + + + + + + + + + + +
+
+
+ + + + +
+

+
+

+
+

+
+

+
+

+

The examples on this page use the folowing code:

+

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    
+    
+    
+
+
+
+
+    
+    
+    
+    
+    
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/canvas-overlay.html b/common/chart/examples/canvas-overlay.html new file mode 100644 index 0000000..08543df --- /dev/null +++ b/common/chart/examples/canvas-overlay.html @@ -0,0 +1,291 @@ + + + + + + Draw Lines on Plots - Canvas Overlay + + + + + + + + + + + + + +
+
+
+ + + + + +
+ + + +

+
+    
+

+
+  
+  
+
+
+
+
+
+
+
+
+    
+    
+    
+    
+
+
+
+
+  
+  
+  
+  
+  
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/colorpicker/i18n/index.php b/common/chart/examples/colorpicker/i18n/index.php new file mode 100644 index 0000000..e69de29 diff --git a/common/chart/examples/colorpicker/images/bar-alpha.png b/common/chart/examples/colorpicker/images/bar-alpha.png new file mode 100644 index 0000000..2950dae Binary files /dev/null and b/common/chart/examples/colorpicker/images/bar-alpha.png differ diff --git a/common/chart/examples/colorpicker/images/bar-opacity.png b/common/chart/examples/colorpicker/images/bar-opacity.png new file mode 100644 index 0000000..e42ad08 Binary files /dev/null and b/common/chart/examples/colorpicker/images/bar-opacity.png differ diff --git a/common/chart/examples/colorpicker/images/bar-pointer.png b/common/chart/examples/colorpicker/images/bar-pointer.png new file mode 100644 index 0000000..6e980cf Binary files /dev/null and b/common/chart/examples/colorpicker/images/bar-pointer.png differ diff --git a/common/chart/examples/colorpicker/images/bar.png b/common/chart/examples/colorpicker/images/bar.png new file mode 100644 index 0000000..80eb2bb Binary files /dev/null and b/common/chart/examples/colorpicker/images/bar.png differ diff --git a/common/chart/examples/colorpicker/images/index.html b/common/chart/examples/colorpicker/images/index.html new file mode 100644 index 0000000..e69de29 diff --git a/common/chart/examples/colorpicker/images/map-opacity.png b/common/chart/examples/colorpicker/images/map-opacity.png new file mode 100644 index 0000000..6756cee Binary files /dev/null and b/common/chart/examples/colorpicker/images/map-opacity.png differ diff --git a/common/chart/examples/colorpicker/images/map-pointer.png b/common/chart/examples/colorpicker/images/map-pointer.png new file mode 100644 index 0000000..6499296 Binary files /dev/null and b/common/chart/examples/colorpicker/images/map-pointer.png differ diff --git a/common/chart/examples/colorpicker/images/map.png b/common/chart/examples/colorpicker/images/map.png new file mode 100644 index 0000000..853d38c Binary files /dev/null and b/common/chart/examples/colorpicker/images/map.png differ diff --git a/common/chart/examples/colorpicker/images/preview-opacity.png b/common/chart/examples/colorpicker/images/preview-opacity.png new file mode 100644 index 0000000..0dd9a2f Binary files /dev/null and b/common/chart/examples/colorpicker/images/preview-opacity.png differ diff --git a/common/chart/examples/colorpicker/images/ui-colorpicker.png b/common/chart/examples/colorpicker/images/ui-colorpicker.png new file mode 100644 index 0000000..e244c68 Binary files /dev/null and b/common/chart/examples/colorpicker/images/ui-colorpicker.png differ diff --git a/common/chart/examples/colorpicker/index.html b/common/chart/examples/colorpicker/index.html new file mode 100644 index 0000000..78bee8c --- /dev/null +++ b/common/chart/examples/colorpicker/index.html @@ -0,0 +1,229 @@ + + + + jQuery Colorpicker + + + + + + + + + + + + +

jQuery ColorPicker

+ +
+ + +
+

Basic <input> example, without any options

+ +
+ +
+

Basic element (<span>> example, without any options

+ +
+ +
+

Fully-featured example

+ +
+ +
+

Localized to Dutch (nl)

+ +
+ +
+

Limit to websafe colors

+ +
+ +
+

Alternative field class

+ + +
Background-color on outside, text color here
+
+
+ +
+

Events

+ +
+
+ +
+

Output formatting HSLA

+ + +
+ +
+

Output format list

+ You can specify a list of output formats, the first perfect match for the color is output. + + +
+ +
+

Dialog with Colorpicker popup (demonstrates z-index)

+ +
+ Basic <input> example, without any options: +
+ Basic element example, without any options: +
+
+ +
+

Modal (and showCancelButton, closeOnEscape, showCloseButton)

+ +
+ +
+

Input formatting

+ Demonstrates the ability to parse common color formats as input. + +
+ +
+

Popup from any element (<em>)

+ Just click on this Emphasized word to show the colorpicker. +
+
+ + + + diff --git a/common/chart/examples/colorpicker/jquery.colorpicker.css b/common/chart/examples/colorpicker/jquery.colorpicker.css new file mode 100644 index 0000000..3ad5df5 --- /dev/null +++ b/common/chart/examples/colorpicker/jquery.colorpicker.css @@ -0,0 +1,199 @@ +.ui-colorpicker, +.ui-dialog.ui-colorpicker { + width: auto; + white-space: nowrap; + + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.ui-colorpicker-inline { + position: static; +} + +.ui-colorpicker-buttonset { + float: left; + margin-left: .4em; +} + +.ui-colorpicker-buttonset .ui-button { + margin: .5em 0 .5em 0; + cursor: pointer; +} + +.ui-colorpicker-buttonpane { + background-image: none; + margin: .7em 0 0 0; + padding: 0 .2em; + border-left: 0; + border-right: 0; + border-bottom: 0; +} + +.ui-colorpicker-buttonpane button { + float: right; + margin: .5em .2em .4em; + cursor: pointer; + padding: .2em .6em .3em .6em; + width: auto; + overflow: visible; +} + +.ui-colorpicker-buttonpane button.ui-colorpicker-current { + float: left; +} + +.ui-colorpicker table { + font-size: 100%; /* Reset browser table font-size */ + margin: 0; +} + +.ui-colorpicker table td { + vertical-align: top; +} + +.ui-colorpicker-padding-left { + padding-left: 10px; +} +.ui-colorpicker-padding-top { + padding-top: 10px; +} + +.ui-colorpicker-border { + border: 1px inset; + display: inline-block; +} + +/* Bar & map */ +.ui-colorpicker-map > *, +.ui-colorpicker-bar > * { + position: absolute; + cursor: crosshair; +} + +.ui-colorpicker-map-pointer, +.ui-colorpicker-bar-pointer { + position: absolute; +} +/* Map */ +.ui-colorpicker-map, +.ui-colorpicker-map > * { + display: block; + width: 256px; + height: 256px; + overflow: hidden; +} + +.ui-colorpicker-map-layer-1, +.ui-colorpicker-map-layer-2 { + background: url(images/map.png) no-repeat; +} + +.ui-colorpicker-map-layer-alpha { + background: url(images/map-opacity.png); +} + +.ui-colorpicker-map-pointer { + display: inline-block; + width: 15px; + height: 15px; + background: url(images/map-pointer.png) no-repeat; +} + +/* Bar */ +.ui-colorpicker-bar, +.ui-colorpicker-bar > * { + display: block; + width: 20px; + height: 256px; + overflow: hidden; + background-repeat: repeat-x; +} + +.ui-colorpicker-bar-layer-1, +.ui-colorpicker-bar-layer-2, +.ui-colorpicker-bar-layer-3, +.ui-colorpicker-bar-layer-4 { + background: url(images/bar.png) repeat-x; +} + +.ui-colorpicker-bar-layer-alpha { + background: url(images/bar-opacity.png); +} + +.ui-colorpicker-bar-layer-alphabar { + background: url(images/bar-alpha.png); +} + +.ui-colorpicker-bar-pointer { + display: inline-block; + width: 20px; + height: 7px; + background: url(images/bar-pointer.png) no-repeat; +} + +/* Preview */ +.ui-colorpicker-preview { + text-align: center; +} + +.ui-colorpicker-preview-initial { + cursor: pointer; +} + +.ui-colorpicker-preview-initial, +.ui-colorpicker-preview-current { + width: 50px; + height: 20px; + display: inline-block; +} + +.ui-colorpicker-preview-initial-alpha, +.ui-colorpicker-preview-current-alpha { + width: 50px; + height: 20px; + display: inline-block; + background: url(images/preview-opacity.png) repeat; +} + +/* Inputs */ +.ui-colorpicker-rgb label, +.ui-colorpicker-hsv label, +.ui-colorpicker-hsl label, +.ui-colorpicker-lab label, +.ui-colorpicker-cmyk label, +.ui-colorpicker-alpha label { + width: 1.5em; + display: inline-block; +} + +.ui-colorpicker-number { + margin: .1em; + width: 4em; +} + +/* Hex */ +.ui-colorpicker-hex { + text-align: center; +} + +/* Swatches */ +.ui-colorpicker-swatches { + width: 84px; + height: 256px; + overflow: auto; + background-color: #f8f8f8; +} + +.ui-colorpicker-swatch { + cursor: pointer; + float: left; + width: 11px; + height: 11px; + border-right: 1px solid black; + border-bottom: 1px solid black; +} \ No newline at end of file diff --git a/common/chart/examples/colorpicker/jquery.colorpicker.js b/common/chart/examples/colorpicker/jquery.colorpicker.js new file mode 100644 index 0000000..ad9ce88 --- /dev/null +++ b/common/chart/examples/colorpicker/jquery.colorpicker.js @@ -0,0 +1,2565 @@ +/*jslint devel: true, bitwise: true, regexp: true, browser: true, confusion: true, unparam: true, eqeq: true, white: true, nomen: true, plusplus: true, maxerr: 50, indent: 4 */ +/*globals jQuery,Color */ + +/* + * ColorPicker + * + * Copyright (c) 2011-2012 Martijn W. van der Lee + * Licensed under the MIT. + * + * Full-featured colorpicker for jQueryUI with full theming support. + * Most images from jPicker by Christopher T. Tillman. + * Sourcecode created from scratch by Martijn W. van der Lee. + */ + +(function ($) { + "use strict"; + + $.colorpicker = new function() { + this.regional = []; + this.regional[''] = { + ok: 'OK', + cancel: 'Cancel', + none: 'None', + button: 'Color', + title: 'Pick a color', + transparent: 'Transparent', + hsvH: 'H', + hsvS: 'S', + hsvV: 'V', + rgbR: 'R', + rgbG: 'G', + rgbB: 'B', + labL: 'L', + labA: 'a', + labB: 'b', + hslH: 'H', + hslS: 'S', + hslL: 'L', + cmykC: 'C', + cmykM: 'M', + cmykY: 'Y', + cmykK: 'K', + alphaA: 'A' + }; + }; + + var _colorpicker_index = 0, + + _container_popup = '', + + _container_inline = '
', + + _parts_lists = { + 'full': ['header', 'map', 'bar', 'hex', 'hsv', 'rgb', 'alpha', 'lab', 'cmyk', 'preview', 'swatches', 'footer'], + 'popup': ['map', 'bar', 'hex', 'hsv', 'rgb', 'alpha', 'preview', 'footer'], + 'draggable': ['header', 'map', 'bar', 'hex', 'hsv', 'rgb', 'alpha', 'preview', 'footer'], + 'inline': ['map', 'bar', 'hex', 'hsv', 'rgb', 'alpha', 'preview'] + }, + + _intToHex = function (dec) { + var result = Math.round(dec).toString(16); + if (result.length === 1) { + result = ('0' + result); + } + return result.toLowerCase(); + }, + + _formats = { + '#HEX': function(color) { + return _formatColor('#rxgxbx', color); + } + , '#HEX3': function(color) { + var hex3 = _formats.HEX3(color); + return hex3 === false? false : '#'+hex3; + } + , 'HEX': function(color) { + return _formatColor('rxgxbx', color); + } + , 'HEX3': function(color) { + var rgb = color.getRGB(), + r = Math.round(rgb.r * 255), + g = Math.round(rgb.g * 255), + b = Math.round(rgb.b * 255); + + if (((r >>> 4) == (r &= 0xf)) + && ((g >>> 4) == (g &= 0xf)) + && ((b >>> 4) == (b &= 0xf))) { + return r.toString(16)+g.toString(16)+b.toString(16); + } + return false; + } + , 'RGB': function(color) { + return color.getAlpha() >= 1 + ? _formatColor('rgb(rd,gd,bd)', color) + : false; + } + , 'RGBA': function(color) { + return _formatColor('rgba(rd,gd,bd,af)', color); + } + , 'RGB%': function(color) { + return color.getAlpha() >= 1 + ? _formatColor('rgb(rp%,gp%,bp%)', color) + : false; + } + , 'RGBA%': function(color) { + return _formatColor('rgba(rp%,gp%,bp%,af)', color); + } + , 'HSL': function(color) { + return color.getAlpha() >= 1 + ? _formatColor('hsl(hd,sd,vd)', color) + : false; + } + , 'HSLA': function(color) { + return _formatColor('hsla(hd,sd,vd,af)', color); + } + , 'HSL%': function(color) { + return color.getAlpha() >= 1 + ? _formatColor('hsl(hp%,sp%,vp%)', color) + : false; + } + , 'HSLA%': function(color) { + return _formatColor('hsla(hp%,sp%,vp%,af)', color); + } + , 'NAME': function(color) { + return _closestName(color); + } + , 'EXACT': function(color) { //@todo experimental. Implement a good fallback list + return _exactName(color); + } + }, + + _formatColor = function (formats, color) { + var that = this, + text = null, + types = { 'x': function(v) {return _intToHex(v * 255);} + , 'd': function(v) {return Math.round(v * 255);} + , 'f': function(v) {return v;} + , 'p': function(v) {return v * 100;} + }, + channels = color.getChannels(); + + if (!$.isArray(formats)) { + formats = [formats]; + } + + $.each(formats, function(index, format) { + if (_formats[format]) { + text = _formats[format](color); + return (text === false); + } else { + text = format.replace(/\\?[argbhsvcmykLAB][xdfp]/g, function(m) { + if (m.match(/^\\/)) { + return m.slice(1); + } + return types[m.charAt(1)](channels[m.charAt(0)]); + }); + return false; + } + }); + + return text; + }, + + _colors = { + 'black': {r: 0, g: 0, b: 0}, + 'dimgray': {r: 0.4117647058823529, g: 0.4117647058823529, b: 0.4117647058823529}, + 'gray': {r: 0.5019607843137255, g: 0.5019607843137255, b: 0.5019607843137255}, + 'darkgray': {r: 0.6627450980392157, g: 0.6627450980392157, b: 0.6627450980392157}, + 'silver': {r: 0.7529411764705882, g: 0.7529411764705882, b: 0.7529411764705882}, + 'lightgrey': {r: 0.8274509803921568, g: 0.8274509803921568, b: 0.8274509803921568}, + 'gainsboro': {r: 0.8627450980392157, g: 0.8627450980392157, b: 0.8627450980392157}, + 'whitesmoke': {r: 0.9607843137254902, g: 0.9607843137254902, b: 0.9607843137254902}, + 'white': {r: 1, g: 1, b: 1}, + 'rosybrown': {r: 0.7372549019607844, g: 0.5607843137254902, b: 0.5607843137254902}, + 'indianred': {r: 0.803921568627451, g: 0.3607843137254902, b: 0.3607843137254902}, + 'brown': {r: 0.6470588235294118, g: 0.16470588235294117, b: 0.16470588235294117}, + 'firebrick': {r: 0.6980392156862745, g: 0.13333333333333333, b: 0.13333333333333333}, + 'lightcoral': {r: 0.9411764705882353, g: 0.5019607843137255, b: 0.5019607843137255}, + 'maroon': {r: 0.5019607843137255, g: 0, b: 0}, + 'darkred': {r: 0.5450980392156862, g: 0, b: 0}, + 'red': {r: 1, g: 0, b: 0}, + 'snow': {r: 1, g: 0.9803921568627451, b: 0.9803921568627451}, + 'salmon': {r: 0.9803921568627451, g: 0.5019607843137255, b: 0.4470588235294118}, + 'mistyrose': {r: 1, g: 0.8941176470588236, b: 0.8823529411764706}, + 'tomato': {r: 1, g: 0.38823529411764707, b: 0.2784313725490196}, + 'darksalmon': {r: 0.9137254901960784, g: 0.5882352941176471, b: 0.47843137254901963}, + 'orangered': {r: 1, g: 0.27058823529411763, b: 0}, + 'coral': {r: 1, g: 0.4980392156862745, b: 0.3137254901960784}, + 'lightsalmon': {r: 1, g: 0.6274509803921569, b: 0.47843137254901963}, + 'sienna': {r: 0.6274509803921569, g: 0.3215686274509804, b: 0.17647058823529413}, + 'seashell': {r: 1, g: 0.9607843137254902, b: 0.9333333333333333}, + 'chocolate': {r: 0.8235294117647058, g: 0.4117647058823529, b: 0.11764705882352941}, + 'saddlebrown': {r: 0.5450980392156862, g: 0.27058823529411763, b: 0.07450980392156863}, + 'sandybrown': {r: 0.9568627450980393, g: 0.6431372549019608, b: 0.3764705882352941}, + 'peachpuff': {r: 1, g: 0.8549019607843137, b: 0.7254901960784313}, + 'peru': {r: 0.803921568627451, g: 0.5215686274509804, b: 0.24705882352941178}, + 'linen': {r: 0.9803921568627451, g: 0.9411764705882353, b: 0.9019607843137255}, + 'darkorange': {r: 1, g: 0.5490196078431373, b: 0}, + 'bisque': {r: 1, g: 0.8941176470588236, b: 0.7686274509803922}, + 'burlywood': {r: 0.8705882352941177, g: 0.7215686274509804, b: 0.5294117647058824}, + 'tan': {r: 0.8235294117647058, g: 0.7058823529411765, b: 0.5490196078431373}, + 'antiquewhite': {r: 0.9803921568627451, g: 0.9215686274509803, b: 0.8431372549019608}, + 'navajowhite': {r: 1, g: 0.8705882352941177, b: 0.6784313725490196}, + 'blanchedalmond': {r: 1, g: 0.9215686274509803, b: 0.803921568627451}, + 'papayawhip': {r: 1, g: 0.9372549019607843, b: 0.8352941176470589}, + 'orange': {r: 1, g: 0.6470588235294118, b: 0}, + 'moccasin': {r: 1, g: 0.8941176470588236, b: 0.7098039215686275}, + 'wheat': {r: 0.9607843137254902, g: 0.8705882352941177, b: 0.7019607843137254}, + 'oldlace': {r: 0.9921568627450981, g: 0.9607843137254902, b: 0.9019607843137255}, + 'floralwhite': {r: 1, g: 0.9803921568627451, b: 0.9411764705882353}, + 'goldenrod': {r: 0.8549019607843137, g: 0.6470588235294118, b: 0.12549019607843137}, + 'darkgoldenrod': {r: 0.7215686274509804, g: 0.5254901960784314, b: 0.043137254901960784}, + 'cornsilk': {r: 1, g: 0.9725490196078431, b: 0.8627450980392157}, + 'gold': {r: 1, g: 0.8431372549019608, b: 0}, + 'palegoldenrod': {r: 0.9333333333333333, g: 0.9098039215686274, b: 0.6666666666666666}, + 'khaki': {r: 0.9411764705882353, g: 0.9019607843137255, b: 0.5490196078431373}, + 'lemonchiffon': {r: 1, g: 0.9803921568627451, b: 0.803921568627451}, + 'darkkhaki': {r: 0.7411764705882353, g: 0.7176470588235294, b: 0.4196078431372549}, + 'beige': {r: 0.9607843137254902, g: 0.9607843137254902, b: 0.8627450980392157}, + 'lightgoldenrodyellow': {r: 0.9803921568627451, g: 0.9803921568627451, b: 0.8235294117647058}, + 'olive': {r: 0.5019607843137255, g: 0.5019607843137255, b: 0}, + 'yellow': {r: 1, g: 1, b: 0}, + 'lightyellow': {r: 1, g: 1, b: 0.8784313725490196}, + 'ivory': {r: 1, g: 1, b: 0.9411764705882353}, + 'olivedrab': {r: 0.4196078431372549, g: 0.5568627450980392, b: 0.13725490196078433}, + 'yellowgreen': {r: 0.6039215686274509, g: 0.803921568627451, b: 0.19607843137254902}, + 'darkolivegreen': {r: 0.3333333333333333, g: 0.4196078431372549, b: 0.1843137254901961}, + 'greenyellow': {r: 0.6784313725490196, g: 1, b: 0.1843137254901961}, + 'lawngreen': {r: 0.48627450980392156, g: 0.9882352941176471, b: 0}, + 'chartreuse': {r: 0.4980392156862745, g: 1, b: 0}, + 'darkseagreen': {r: 0.5607843137254902, g: 0.7372549019607844, b: 0.5607843137254902}, + 'forestgreen': {r: 0.13333333333333333, g: 0.5450980392156862, b: 0.13333333333333333}, + 'limegreen': {r: 0.19607843137254902, g: 0.803921568627451, b: 0.19607843137254902}, + 'lightgreen': {r: 0.5647058823529412, g: 0.9333333333333333, b: 0.5647058823529412}, + 'palegreen': {r: 0.596078431372549, g: 0.984313725490196, b: 0.596078431372549}, + 'darkgreen': {r: 0, g: 0.39215686274509803, b: 0}, + 'green': {r: 0, g: 0.5019607843137255, b: 0}, + 'lime': {r: 0, g: 1, b: 0}, + 'honeydew': {r: 0.9411764705882353, g: 1, b: 0.9411764705882353}, + 'mediumseagreen': {r: 0.23529411764705882, g: 0.7019607843137254, b: 0.44313725490196076}, + 'seagreen': {r: 0.1803921568627451, g: 0.5450980392156862, b: 0.3411764705882353}, + 'springgreen': {r: 0, g: 1, b: 0.4980392156862745}, + 'mintcream': {r: 0.9607843137254902, g: 1, b: 0.9803921568627451}, + 'mediumspringgreen': {r: 0, g: 0.9803921568627451, b: 0.6039215686274509}, + 'mediumaquamarine': {r: 0.4, g: 0.803921568627451, b: 0.6666666666666666}, + 'aquamarine': {r: 0.4980392156862745, g: 1, b: 0.8313725490196079}, + 'turquoise': {r: 0.25098039215686274, g: 0.8784313725490196, b: 0.8156862745098039}, + 'lightseagreen': {r: 0.12549019607843137, g: 0.6980392156862745, b: 0.6666666666666666}, + 'mediumturquoise': {r: 0.2823529411764706, g: 0.8196078431372549, b: 0.8}, + 'darkslategray': {r: 0.1843137254901961, g: 0.30980392156862746, b: 0.30980392156862746}, + 'paleturquoise': {r: 0.6862745098039216, g: 0.9333333333333333, b: 0.9333333333333333}, + 'teal': {r: 0, g: 0.5019607843137255, b: 0.5019607843137255}, + 'darkcyan': {r: 0, g: 0.5450980392156862, b: 0.5450980392156862}, + 'darkturquoise': {r: 0, g: 0.807843137254902, b: 0.8196078431372549}, + 'aqua': {r: 0, g: 1, b: 1}, + 'cyan': {r: 0, g: 1, b: 1}, + 'lightcyan': {r: 0.8784313725490196, g: 1, b: 1}, + 'azure': {r: 0.9411764705882353, g: 1, b: 1}, + 'cadetblue': {r: 0.37254901960784315, g: 0.6196078431372549, b: 0.6274509803921569}, + 'powderblue': {r: 0.6901960784313725, g: 0.8784313725490196, b: 0.9019607843137255}, + 'lightblue': {r: 0.6784313725490196, g: 0.8470588235294118, b: 0.9019607843137255}, + 'deepskyblue': {r: 0, g: 0.7490196078431373, b: 1}, + 'skyblue': {r: 0.5294117647058824, g: 0.807843137254902, b: 0.9215686274509803}, + 'lightskyblue': {r: 0.5294117647058824, g: 0.807843137254902, b: 0.9803921568627451}, + 'steelblue': {r: 0.27450980392156865, g: 0.5098039215686274, b: 0.7058823529411765}, + 'aliceblue': {r: 0.9411764705882353, g: 0.9725490196078431, b: 1}, + 'dodgerblue': {r: 0.11764705882352941, g: 0.5647058823529412, b: 1}, + 'slategray': {r: 0.4392156862745098, g: 0.5019607843137255, b: 0.5647058823529412}, + 'lightslategray': {r: 0.4666666666666667, g: 0.5333333333333333, b: 0.6}, + 'lightsteelblue': {r: 0.6901960784313725, g: 0.7686274509803922, b: 0.8705882352941177}, + 'cornflowerblue': {r: 0.39215686274509803, g: 0.5843137254901961, b: 0.9294117647058824}, + 'royalblue': {r: 0.2549019607843137, g: 0.4117647058823529, b: 0.8823529411764706}, + 'midnightblue': {r: 0.09803921568627451, g: 0.09803921568627451, b: 0.4392156862745098}, + 'lavender': {r: 0.9019607843137255, g: 0.9019607843137255, b: 0.9803921568627451}, + 'navy': {r: 0, g: 0, b: 0.5019607843137255}, + 'darkblue': {r: 0, g: 0, b: 0.5450980392156862}, + 'mediumblue': {r: 0, g: 0, b: 0.803921568627451}, + 'blue': {r: 0, g: 0, b: 1}, + 'ghostwhite': {r: 0.9725490196078431, g: 0.9725490196078431, b: 1}, + 'darkslateblue': {r: 0.2823529411764706, g: 0.23921568627450981, b: 0.5450980392156862}, + 'slateblue': {r: 0.41568627450980394, g: 0.35294117647058826, b: 0.803921568627451}, + 'mediumslateblue': {r: 0.4823529411764706, g: 0.40784313725490196, b: 0.9333333333333333}, + 'mediumpurple': {r: 0.5764705882352941, g: 0.4392156862745098, b: 0.8588235294117647}, + 'blueviolet': {r: 0.5411764705882353, g: 0.16862745098039217, b: 0.8862745098039215}, + 'indigo': {r: 0.29411764705882354, g: 0, b: 0.5098039215686274}, + 'darkorchid': {r: 0.6, g: 0.19607843137254902, b: 0.8}, + 'darkviolet': {r: 0.5803921568627451, g: 0, b: 0.8274509803921568}, + 'mediumorchid': {r: 0.7294117647058823, g: 0.3333333333333333, b: 0.8274509803921568}, + 'thistle': {r: 0.8470588235294118, g: 0.7490196078431373, b: 0.8470588235294118}, + 'plum': {r: 0.8666666666666667, g: 0.6274509803921569, b: 0.8666666666666667}, + 'violet': {r: 0.9333333333333333, g: 0.5098039215686274, b: 0.9333333333333333}, + 'purple': {r: 0.5019607843137255, g: 0, b: 0.5019607843137255}, + 'darkmagenta': {r: 0.5450980392156862, g: 0, b: 0.5450980392156862}, + 'magenta': {r: 1, g: 0, b: 1}, + 'fuchsia': {r: 1, g: 0, b: 1}, + 'orchid': {r: 0.8549019607843137, g: 0.4392156862745098, b: 0.8392156862745098}, + 'mediumvioletred': {r: 0.7803921568627451, g: 0.08235294117647059, b: 0.5215686274509804}, + 'deeppink': {r: 1, g: 0.0784313725490196, b: 0.5764705882352941}, + 'hotpink': {r: 1, g: 0.4117647058823529, b: 0.7058823529411765}, + 'palevioletred': {r: 0.8588235294117647, g: 0.4392156862745098, b: 0.5764705882352941}, + 'lavenderblush': {r: 1, g: 0.9411764705882353, b: 0.9607843137254902}, + 'crimson': {r: 0.8627450980392157, g: 0.0784313725490196, b: 0.23529411764705882}, + 'pink': {r: 1, g: 0.7529411764705882, b: 0.796078431372549}, + 'lightpink': {r: 1, g: 0.7137254901960784, b: 0.7568627450980392} + }, + + _exactName = function(color) { + var name = false; + + $.each(_colors, function(n, color_b) { + if (color.equals(new Color(color_b.r, color_b.g, color_b.b))) { + name = n; + return false; + } + }); + + return name; + }, + + _closestName = function(color) { + var rgb = color.getRGB(), + distance = null, + name = false, + d; + + $.each(_colors, function(n, color_b) { + d = color.distance(new Color(color_b.r, color_b.g, color_b.b)); + if (d < distance || distance === null) { + name = n; + if (d == 0) { + return false; // can't get much closer than 0 + } + distance = d; + } + }); + + return name; + }, + + _parseHex = function(color) { + var c, + m; + + // {#}rrggbb + m = /^#?([a-fA-F0-9]{1,6})$/.exec(color); + if (m) { + c = parseInt(m[1], 16); + return new Color( + ((c >> 16) & 0xFF) / 255, + ((c >> 8) & 0xFF) / 255, + (c & 0xFF) / 255 + ); + } + + return false; + }, + + _parseColor = function(color) { + var name = $.trim(color).toLowerCase(), + m; + + if (color == '') { + return new Color(); + } + + if (_colors[name]) { + return new Color(_colors[name].r, _colors[name].g, _colors[name].b); + } + + // rgba(r,g,b,a) + m = /^rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)$/.exec(color); + if (m) { + return new Color( + m[1] / 255, + m[2] / 255, + m[3] / 255, + parseFloat(m[4]) + ); + } + + // hsla(r,g,b,a) + m = /^hsla?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)$/.exec(color); + if (m) { + return (new Color()).setHSL( + m[1] / 255, + m[2] / 255, + m[3] / 255).setAlpha(parseFloat(m[4])); + } + + // rgba(r%,g%,b%,a%) + m = /^rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)$/.exec(color); + if (m) { + return new Color( + m[1] / 100, + m[2] / 100, + m[3] / 100, + m[4] / 100 + ); + } + + // hsla(r%,g%,b%,a%) + m = /^hsla?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)$/.exec(color); + if (m) { + return (new Color()).setHSL( + m[1] / 100, + m[2] / 100, + m[3] / 100).setAlpha(m[4] / 100); + } + + // #rrggbb + m = /^#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/.exec(color); + if (m) { + return new Color( + parseInt(m[1], 16) / 255, + parseInt(m[2], 16) / 255, + parseInt(m[3], 16) / 255 + ); + } + + // #rgb + m = /^#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/.exec(color); + if (m) { + return new Color( + parseInt(m[1] + m[1], 16) / 255, + parseInt(m[2] + m[2], 16) / 255, + parseInt(m[3] + m[3], 16) / 255 + ); + } + + return _parseHex(color); + }, + + _layoutTable = function(layout, callback) { + var bitmap, + x, + y, + width, height, + columns, rows, + index, + cell, + html, + w, + h, + colspan, + walked; + + layout.sort(function(a, b) { + if (a.pos[1] == b.pos[1]) { + return a.pos[0] - b.pos[0]; + } + return a.pos[1] - b.pos[1]; + }); + + // Determine dimensions of the table + width = 0; + height = 0; + $.each (layout, function(index, part) { + width = Math.max(width, part.pos[0] + part.pos[2]); + height = Math.max(height, part.pos[1] + part.pos[3]); + }); + + // Initialize bitmap + bitmap = []; + for (x = 0; x < width; ++x) { + bitmap.push([]); + } + + // Mark rows and columns which have layout assigned + rows = []; + columns = []; + $.each(layout, function(index, part) { + // mark columns + for (x = 0; x < part.pos[2]; x += 1) { + columns[part.pos[0] + x] = true; + } + for (y = 0; y < part.pos[3]; y += 1) { + rows[part.pos[1] + y] = true; + } + }); + + // Generate the table + html = ''; + cell = layout[index = 0]; + for (y = 0; y < height; ++y) { + html += ''; + for (x = 0; x < width; x) { + if (typeof cell !== 'undefined' && x == cell.pos[0] && y == cell.pos[1]) { + // Create a "real" cell + html += callback(cell, x, y); + + for (h = 0; h < cell.pos[3]; h +=1) { + for (w = 0; w < cell.pos[2]; w +=1) { + bitmap[x + w][y + h] = true; + } + } + + x += cell.pos[2]; + cell = layout[++index]; + } else { + // Fill in the gaps + colspan = 0; + walked = false; + + while (x < width && bitmap[x][y] === undefined && (cell === undefined || y < cell.pos[1] || (y == cell.pos[1] && x < cell.pos[0]))) { + if (columns[x] === true) { + colspan += 1; + } + walked = true; + x += 1; + } + + if (colspan > 0) { + html += ''; + } else if (!walked) { + x += 1; + } + } + } + html += ''; + } + + return '' + html + '
'; + }, + + _parts = { + header: function (inst) { + var that = this, + e = null, + _html =function() { + var title = inst.options.title || inst._getRegional('title'), + html = '' + title + ''; + + if (!inst.inline && inst.options.showCloseButton) { + html += '' + + 'close'; + } + + return '
' + html + '
'; + }; + + this.init = function() { + e = $(_html()).prependTo(inst.dialog); + + var close = $('.ui-dialog-titlebar-close', e); + inst._hoverable(close); + inst._focusable(close); + close.click(function(event) { + event.preventDefault(); + inst.close(); + }); + + if (!inst.inline && inst.options.draggable) { + inst.dialog.draggable({ + handle: e + }); + } + }; + }, + + map: function (inst) { + var that = this, + e = null, + mousemove_timeout = null, + _mousedown, _mouseup, _mousemove, _html; + + _mousedown = function (event) { + if (!inst.opened) { + return; + } + + var div = $('.ui-colorpicker-map-layer-pointer', e), + offset = div.offset(), + width = div.width(), + height = div.height(), + x = event.pageX - offset.left, + y = event.pageY - offset.top; + + if (x >= 0 && x < width && y >= 0 && y < height) { + event.stopImmediatePropagation(); + event.preventDefault(); + e.unbind('mousedown', _mousedown); + $(document).bind('mouseup', _mouseup); + $(document).bind('mousemove', _mousemove); + _mousemove(event); + } + }; + + _mouseup = function (event) { + event.stopImmediatePropagation(); + event.preventDefault(); + $(document).unbind('mouseup', _mouseup); + $(document).unbind('mousemove', _mousemove); + e.bind('mousedown', _mousedown); + }; + + _mousemove = function (event) { + event.stopImmediatePropagation(); + event.preventDefault(); + + if (event.pageX === that.x && event.pageY === that.y) { + return; + } + that.x = event.pageX; + that.y = event.pageY; + + var div = $('.ui-colorpicker-map-layer-pointer', e), + offset = div.offset(), + width = div.width(), + height = div.height(), + x = event.pageX - offset.left, + y = event.pageY - offset.top; + + x = Math.max(0, Math.min(x / width, 1)); + y = Math.max(0, Math.min(y / height, 1)); + + // interpret values + switch (inst.mode) { + case 'h': + inst.color.setHSV(null, x, 1 - y); + break; + + case 's': + case 'a': + inst.color.setHSV(x, null, 1 - y); + break; + + case 'v': + inst.color.setHSV(x, 1 - y, null); + break; + + case 'r': + inst.color.setRGB(null, 1 - y, x); + break; + + case 'g': + inst.color.setRGB(1 - y, null, x); + break; + + case 'b': + inst.color.setRGB(x, 1 - y, null); + break; + } + + inst._change(); + }; + + _html = function () { + var html = '
' + + ' ' + + ' ' + + (inst.options.alpha ? ' ' : '') + + '
'; + return html; + }; + + this.update = function () { + switch (inst.mode) { + case 'h': + $('.ui-colorpicker-map-layer-1', e).css({'background-position': '0 0', 'opacity': ''}).show(); + $('.ui-colorpicker-map-layer-2', e).hide(); + break; + + case 's': + case 'a': + $('.ui-colorpicker-map-layer-1', e).css({'background-position': '0 -260px', 'opacity': ''}).show(); + $('.ui-colorpicker-map-layer-2', e).css({'background-position': '0 -520px', 'opacity': ''}).show(); + break; + + case 'v': + $(e).css('background-color', 'black'); + $('.ui-colorpicker-map-layer-1', e).css({'background-position': '0 -780px', 'opacity': ''}).show(); + $('.ui-colorpicker-map-layer-2', e).hide(); + break; + + case 'r': + $('.ui-colorpicker-map-layer-1', e).css({'background-position': '0 -1040px', 'opacity': ''}).show(); + $('.ui-colorpicker-map-layer-2', e).css({'background-position': '0 -1300px', 'opacity': ''}).show(); + break; + + case 'g': + $('.ui-colorpicker-map-layer-1', e).css({'background-position': '0 -1560px', 'opacity': ''}).show(); + $('.ui-colorpicker-map-layer-2', e).css({'background-position': '0 -1820px', 'opacity': ''}).show(); + break; + + case 'b': + $('.ui-colorpicker-map-layer-1', e).css({'background-position': '0 -2080px', 'opacity': ''}).show(); + $('.ui-colorpicker-map-layer-2', e).css({'background-position': '0 -2340px', 'opacity': ''}).show(); + break; + } + that.repaint(); + }; + + this.repaint = function () { + var div = $('.ui-colorpicker-map-layer-pointer', e), + x = 0, + y = 0; + + switch (inst.mode) { + case 'h': + x = inst.color.getHSV().s * div.width(); + y = (1 - inst.color.getHSV().v) * div.width(); + $(e).css('background-color', inst.color.copy().normalize().toCSS()); + break; + + case 's': + case 'a': + x = inst.color.getHSV().h * div.width(); + y = (1 - inst.color.getHSV().v) * div.width(); + $('.ui-colorpicker-map-layer-2', e).css('opacity', 1 - inst.color.getHSV().s); + break; + + case 'v': + x = inst.color.getHSV().h * div.width(); + y = (1 - inst.color.getHSV().s) * div.width(); + $('.ui-colorpicker-map-layer-1', e).css('opacity', inst.color.getHSV().v); + break; + + case 'r': + x = inst.color.getRGB().b * div.width(); + y = (1 - inst.color.getRGB().g) * div.width(); + $('.ui-colorpicker-map-layer-2', e).css('opacity', inst.color.getRGB().r); + break; + + case 'g': + x = inst.color.getRGB().b * div.width(); + y = (1 - inst.color.getRGB().r) * div.width(); + $('.ui-colorpicker-map-layer-2', e).css('opacity', inst.color.getRGB().g); + break; + + case 'b': + x = inst.color.getRGB().r * div.width(); + y = (1 - inst.color.getRGB().g) * div.width(); + $('.ui-colorpicker-map-layer-2', e).css('opacity', inst.color.getRGB().b); + break; + } + + if (inst.options.alpha) { + $('.ui-colorpicker-map-layer-alpha', e).css('opacity', 1 - inst.color.getAlpha()); + } + + $('.ui-colorpicker-map-pointer', e).css({ + 'left': x - 7, + 'top': y - 7 + }); + }; + + this.init = function () { + e = $(_html()).appendTo($('.ui-colorpicker-map-container', inst.dialog)); + + e.bind('mousedown', _mousedown); + }; + }, + + bar: function (inst) { + var that = this, + e = null, + _mousedown, _mouseup, _mousemove, _html; + + _mousedown = function (event) { + if (!inst.opened) { + return; + } + + var div = $('.ui-colorpicker-bar-layer-pointer', e), + offset = div.offset(), + width = div.width(), + height = div.height(), + x = event.pageX - offset.left, + y = event.pageY - offset.top; + + if (x >= 0 && x < width && y >= 0 && y < height) { + event.stopImmediatePropagation(); + event.preventDefault(); + e.unbind('mousedown', _mousedown); + $(document).bind('mouseup', _mouseup); + $(document).bind('mousemove', _mousemove); + _mousemove(event); + } + }; + + _mouseup = function (event) { + event.stopImmediatePropagation(); + event.preventDefault(); + $(document).unbind('mouseup', _mouseup); + $(document).unbind('mousemove', _mousemove); + e.bind('mousedown', _mousedown); + }; + + _mousemove = function (event) { + event.stopImmediatePropagation(); + event.preventDefault(); + + if (event.pageY === that.y) { + return; + } + that.y = event.pageY; + + var div = $('.ui-colorpicker-bar-layer-pointer', e), + offset = div.offset(), + height = div.height(), + y = event.pageY - offset.top; + + y = Math.max(0, Math.min(y / height, 1)); + + // interpret values + switch (inst.mode) { + case 'h': + inst.color.setHSV(1 - y, null, null); + break; + + case 's': + inst.color.setHSV(null, 1 - y, null); + break; + + case 'v': + inst.color.setHSV(null, null, 1 - y); + break; + + case 'r': + inst.color.setRGB(1 - y, null, null); + break; + + case 'g': + inst.color.setRGB(null, 1 - y, null); + break; + + case 'b': + inst.color.setRGB(null, null, 1 - y); + break; + + case 'a': + inst.color.setAlpha(1 - y); + break; + } + + inst._change(); + }; + + _html = function () { + var html = '
' + + ' ' + + ' ' + + ' ' + + ' '; + + if (inst.options.alpha) { + html += ' ' + + ' '; + } + + html += '
'; + + return html; + }; + + this.update = function () { + switch (inst.mode) { + case 'h': + case 's': + case 'v': + case 'r': + case 'g': + case 'b': + $('.ui-colorpicker-bar-layer-alpha', e).show(); + $('.ui-colorpicker-bar-layer-alphabar', e).hide(); + break; + + case 'a': + $('.ui-colorpicker-bar-layer-alpha', e).hide(); + $('.ui-colorpicker-bar-layer-alphabar', e).show(); + break; + } + + switch (inst.mode) { + case 'h': + $('.ui-colorpicker-bar-layer-1', e).css({'background-position': '0 0', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-2', e).hide(); + $('.ui-colorpicker-bar-layer-3', e).hide(); + $('.ui-colorpicker-bar-layer-4', e).hide(); + break; + + case 's': + $('.ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -260px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -520px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-3', e).hide(); + $('.ui-colorpicker-bar-layer-4', e).hide(); + break; + + case 'v': + $('.ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -520px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-2', e).hide(); + $('.ui-colorpicker-bar-layer-3', e).hide(); + $('.ui-colorpicker-bar-layer-4', e).hide(); + break; + + case 'r': + $('.ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -1560px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -1300px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -780px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -1040px', 'opacity': ''}).show(); + break; + + case 'g': + $('.ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -2600px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -2340px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -1820px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -2080px', 'opacity': ''}).show(); + break; + + case 'b': + $('.ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -3640px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -3380px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -2860px', 'opacity': ''}).show(); + $('.ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -3120px', 'opacity': ''}).show(); + break; + + case 'a': + $('.ui-colorpicker-bar-layer-1', e).hide(); + $('.ui-colorpicker-bar-layer-2', e).hide(); + $('.ui-colorpicker-bar-layer-3', e).hide(); + $('.ui-colorpicker-bar-layer-4', e).hide(); + break; + } + that.repaint(); + }; + + this.repaint = function () { + var div = $('.ui-colorpicker-bar-layer-pointer', e), + y = 0; + + switch (inst.mode) { + case 'h': + y = (1 - inst.color.getHSV().h) * div.height(); + break; + + case 's': + y = (1 - inst.color.getHSV().s) * div.height(); + $('.ui-colorpicker-bar-layer-2', e).css('opacity', 1 - inst.color.getHSV().v); + $(e).css('background-color', inst.color.copy().normalize().toCSS()); + break; + + case 'v': + y = (1 - inst.color.getHSV().v) * div.height(); + $(e).css('background-color', inst.color.copy().normalize().toCSS()); + break; + + case 'r': + y = (1 - inst.color.getRGB().r) * div.height(); + $('.ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.getRGB().b - inst.color.getRGB().g))); + $('.ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.getRGB().g - inst.color.getRGB().b))); + $('.ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.getRGB().b, inst.color.getRGB().g)); + break; + + case 'g': + y = (1 - inst.color.getRGB().g) * div.height(); + $('.ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.getRGB().b - inst.color.getRGB().r))); + $('.ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.getRGB().r - inst.color.getRGB().b))); + $('.ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.getRGB().r, inst.color.getRGB().b)); + break; + + case 'b': + y = (1 - inst.color.getRGB().b) * div.height(); + $('.ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.getRGB().r - inst.color.getRGB().g))); + $('.ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.getRGB().g - inst.color.getRGB().r))); + $('.ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.getRGB().r, inst.color.getRGB().g)); + break; + + case 'a': + y = (1 - inst.color.getAlpha()) * div.height(); + $(e).css('background-color', inst.color.copy().normalize().toCSS()); + break; + } + + if (inst.mode !== 'a') { + $('.ui-colorpicker-bar-layer-alpha', e).css('opacity', 1 - inst.color.getAlpha()); + } + + $('.ui-colorpicker-bar-pointer', e).css('top', y - 3); + }; + + this.init = function () { + e = $(_html()).appendTo($('.ui-colorpicker-bar-container', inst.dialog)); + + e.bind('mousedown', _mousedown); + }; + }, + + preview: function (inst) { + var that = this, + e = null, + _html; + + _html = function () { + return '
' + + '
' + + '
' + + '
'; + }; + + this.init = function () { + e = $(_html()).appendTo($('.ui-colorpicker-preview-container', inst.dialog)); + + $('.ui-colorpicker-preview-initial', e).click(function () { + inst.color = inst.currentColor.copy(); + inst._change(); + }); + + }; + + this.update = function () { + if (inst.options.alpha) { + $('.ui-colorpicker-preview-initial-alpha, .ui-colorpicker-preview-current-alpha', e).show(); + } else { + $('.ui-colorpicker-preview-initial-alpha, .ui-colorpicker-preview-current-alpha', e).hide(); + } + + this.repaint(); + }; + + this.repaint = function () { + $('.ui-colorpicker-preview-initial', e).css('background-color', inst.currentColor.toCSS()).attr('title', inst.currentColor.toHex()); + $('.ui-colorpicker-preview-initial-alpha', e).css('opacity', 1 - inst.currentColor.getAlpha()); + $('.ui-colorpicker-preview-current', e).css('background-color', inst.color.toCSS()).attr('title', inst.color.toHex()); + $('.ui-colorpicker-preview-current-alpha', e).css('opacity', 1 - inst.color.getAlpha()); + }; + }, + + hsv: function (inst) { + var that = this, + e = null, + _html; + + _html = function () { + var html = ''; + + if (inst.options.hsv) { + html += '
°
' + + '
%
' + + '
%
'; + } + + return '
' + html + '
'; + }; + + this.init = function () { + e = $(_html()).appendTo($('.ui-colorpicker-hsv-container', inst.dialog)); + + $('.ui-colorpicker-mode', e).click(function () { + inst.mode = $(this).val(); + inst._updateAllParts(); + }); + + $('.ui-colorpicker-number', e).bind('change keyup', function () { + inst.color.setHSV( + $('.ui-colorpicker-hsv-h .ui-colorpicker-number', e).val() / 360, + $('.ui-colorpicker-hsv-s .ui-colorpicker-number', e).val() / 100, + $('.ui-colorpicker-hsv-v .ui-colorpicker-number', e).val() / 100 + ); + inst._change(); + }); + }; + + this.repaint = function () { + var hsv = inst.color.getHSV(); + hsv.h *= 360; + hsv.s *= 100; + hsv.v *= 100; + + $.each(hsv, function (index, value) { + var input = $('.ui-colorpicker-hsv-' + index + ' .ui-colorpicker-number', e); + value = Math.round(value); + if (input.val() !== value) { + input.val(value); + } + }); + }; + + this.update = function () { + $('.ui-colorpicker-mode', e).each(function () { + $(this).attr('checked', $(this).val() === inst.mode); + }); + this.repaint(); + }; + }, + + rgb: function (inst) { + var that = this, + e = null, + _html; + + _html = function () { + var html = ''; + + if (inst.options.rgb) { + html += '
' + + '
' + + '
'; + } + + return '
' + html + '
'; + }; + + this.init = function () { + e = $(_html()).appendTo($('.ui-colorpicker-rgb-container', inst.dialog)); + + $('.ui-colorpicker-mode', e).click(function () { + inst.mode = $(this).val(); + inst._updateAllParts(); + }); + + $('.ui-colorpicker-number', e).bind('change keyup', function () { + inst.color.setRGB( + $('.ui-colorpicker-rgb-r .ui-colorpicker-number', e).val() / 255, + $('.ui-colorpicker-rgb-g .ui-colorpicker-number', e).val() / 255, + $('.ui-colorpicker-rgb-b .ui-colorpicker-number', e).val() / 255 + ); + + inst._change(); + }); + }; + + this.repaint = function () { + $.each(inst.color.getRGB(), function (index, value) { + var input = $('.ui-colorpicker-rgb-' + index + ' .ui-colorpicker-number', e); + value = Math.round(value * 255); + if (input.val() !== value) { + input.val(value); + } + }); + }; + + this.update = function () { + $('.ui-colorpicker-mode', e).each(function () { + $(this).attr('checked', $(this).val() === inst.mode); + }); + this.repaint(); + }; + }, + + lab: function (inst) { + var that = this, + part = null, + html = function () { + var html = ''; + + if (inst.options.hsv) { + html += '
' + + '
' + + '
'; + } + + return '
' + html + '
'; + }; + + this.init = function () { + var data = 0; + + part = $(html()).appendTo($('.ui-colorpicker-lab-container', inst.dialog)); + + $('.ui-colorpicker-number', part).on('change keyup', function (event) { + inst.color.setLAB( + parseInt($('.ui-colorpicker-lab-l .ui-colorpicker-number', part).val(), 10) / 100, + (parseInt($('.ui-colorpicker-lab-a .ui-colorpicker-number', part).val(), 10) + 128) / 255, + (parseInt($('.ui-colorpicker-lab-b .ui-colorpicker-number', part).val(), 10) + 128) / 255 + ); + inst._change(); + }); + }; + + this.repaint = function () { + var lab = inst.color.getLAB(); + lab.l *= 100; + lab.a = (lab.a * 255) - 128; + lab.b = (lab.b * 255) - 128; + + $.each(lab, function (index, value) { + var input = $('.ui-colorpicker-lab-' + index + ' .ui-colorpicker-number', part); + value = Math.round(value); + if (input.val() !== value) { + input.val(value); + } + }); + }; + + this.update = function () { + this.repaint(); + }; + + }, + + cmyk: function (inst) { + var that = this, + part = null, + html = function () { + var html = ''; + + if (inst.options.hsv) { + html += '
%
' + + '
%
' + + '
%
' + + '
%
'; + } + + return '
' + html + '
'; + }; + + this.init = function () { + part = $(html()).appendTo($('.ui-colorpicker-cmyk-container', inst.dialog)); + + $('.ui-colorpicker-number', part).on('change keyup', function (event) { + inst.color.setCMYK( + parseInt($('.ui-colorpicker-cmyk-c .ui-colorpicker-number', part).val(), 10) / 100, + parseInt($('.ui-colorpicker-cmyk-m .ui-colorpicker-number', part).val(), 10) / 100, + parseInt($('.ui-colorpicker-cmyk-y .ui-colorpicker-number', part).val(), 10) / 100, + parseInt($('.ui-colorpicker-cmyk-k .ui-colorpicker-number', part).val(), 10) / 100 + ); + inst._change(); + }); + }; + + this.repaint = function () { + $.each(inst.color.getCMYK(), function (index, value) { + var input = $('.ui-colorpicker-cmyk-' + index + ' .ui-colorpicker-number', part); + value = Math.round(value * 100); + if (input.val() !== value) { + input.val(value); + } + }); + }; + + this.update = function () { + this.repaint(); + }; + + }, + + alpha: function (inst) { + var that = this, + e = null, + _html; + + _html = function () { + var html = ''; + + if (inst.options.alpha) { + html += '
%
'; + } + + return '
' + html + '
'; + }; + + this.init = function () { + e = $(_html()).appendTo($('.ui-colorpicker-alpha-container', inst.dialog)); + + $('.ui-colorpicker-mode', e).click(function () { + inst.mode = $(this).val(); + inst._updateAllParts(); + }); + + $('.ui-colorpicker-number', e).bind('change keyup', function () { + inst.color.setAlpha($('.ui-colorpicker-a .ui-colorpicker-number', e).val() / 100); + inst._change(); + }); + }; + + this.update = function () { + $('.ui-colorpicker-mode', e).each(function () { + $(this).attr('checked', $(this).val() === inst.mode); + }); + this.repaint(); + }; + + this.repaint = function () { + var input = $('.ui-colorpicker-a .ui-colorpicker-number', e), + value = Math.round(inst.color.getAlpha() * 100); + if (!input.is(':focus') && input.val() !== value) { + input.val(value); + } + }; + }, + + hex: function (inst) { + var that = this, + e = null, + _html; + + _html = function () { + var html = ''; + + if (inst.options.alpha) { + html += ''; + } + + html += ''; + + return '
' + html + '
'; + }; + + this.init = function () { + e = $(_html()).appendTo($('.ui-colorpicker-hex-container', inst.dialog)); + + // repeat here makes the invalid input disappear faster + $('.ui-colorpicker-hex-input', e).bind('change keydown keyup', function (a, b, c) { + if (/[^a-fA-F0-9]/.test($(this).val())) { + $(this).val($(this).val().replace(/[^a-fA-F0-9]/, '')); + } + }); + + $('.ui-colorpicker-hex-input', e).bind('change keyup', function () { + // repeat here makes sure that the invalid input doesn't get parsed + inst.color = _parseHex($(this).val()).setAlpha(inst.color.getAlpha()); + inst._change(); + }); + + $('.ui-colorpicker-hex-alpha', e).bind('change keydown keyup', function () { + if (/[^a-fA-F0-9]/.test($(this).val())) { + $(this).val($(this).val().replace(/[^a-fA-F0-9]/, '')); + } + }); + + $('.ui-colorpicker-hex-alpha', e).bind('change keyup', function () { + inst.color.setAlpha(parseInt($('.ui-colorpicker-hex-alpha', e).val(), 16) / 255); + inst._change(); + }); + }; + + this.update = function () { + this.repaint(); + }; + + this.repaint = function () { + if (!$('.ui-colorpicker-hex-input', e).is(':focus')) { + $('.ui-colorpicker-hex-input', e).val(inst.color.toHex(true)); + } + + if (!$('.ui-colorpicker-hex-alpha', e).is(':focus')) { + $('.ui-colorpicker-hex-alpha', e).val(_intToHex(inst.color.getAlpha() * 255)); + } + }; + }, + + swatches: function (inst) { + var that = this, + part = null, + html = function () { + var html = ''; + + $.each(inst.options.swatches, function (name, color) { + var c = new Color(color.r, color.g, color.b), + css = c.toCSS(); + html += '
'; + }); + + return '
' + html + '
'; + }; + + this.init = function () { + part = $(html()).appendTo($('.ui-colorpicker-swatches-container', inst.dialog)); + + $('.ui-colorpicker-swatch', part).click(function () { + inst.color = _parseColor($(this).css('background-color')); + inst._change(); + }); + }; + }, + + footer: function (inst) { + var that = this, + part = null, + id_transparent = 'ui-colorpicker-special-transparent-'+_colorpicker_index, + id_none = 'ui-colorpicker-special-none-'+_colorpicker_index, + html = function () { + var html = ''; + + if (inst.options.alpha || (!inst.inline && inst.options.showNoneButton)) { + html += '
'; + + if (inst.options.alpha) { + html += ''; + } + if (!inst.inline && inst.options.showNoneButton) { + html += ''; + } + html += '
'; + } + + if (!inst.inline) { + html += '
'; + if (inst.options.showCancelButton) { + html += ''; + } + html += ''; + html += '
'; + } + + return '
' + html + '
'; + }; + + this.init = function () { + part = $(html()).appendTo(inst.dialog); + + $('.ui-colorpicker-ok', part).button().click(function () { + inst.close(); + }); + + $('.ui-colorpicker-cancel', part).button().click(function () { + inst.color = inst.currentColor.copy(); + inst._change(inst.color.set); + inst.close(); + }); + + //inst._getRegional('transparent') + $('.ui-colorpicker-buttonset', part).buttonset(); + + $('.ui-colorpicker-special-color', part).click(function () { + inst._change(); + }); + + $('#'+id_none, part).click(function () { + inst._change(false); + }); + + $('#'+id_transparent, part).click(function () { + inst.color.setAlpha(0); + inst._change(); + }); + }; + + this.repaint = function () { + if (!inst.color.set) { + $('.ui-colorpicker-special-none', part).attr('checked', true).button( "refresh" ); + } else if (inst.color.getAlpha() == 0) { + $('.ui-colorpicker-special-transparent', part).attr('checked', true).button( "refresh" ); + } else { + $('input', part).attr('checked', false).button( "refresh" ); + } + + $('.ui-colorpicker-cancel', part).button(inst.changed ? 'enable' : 'disable'); + }; + + this.update = function () {}; + } + }, + + Color = function () { + var spaces = { rgb: {r: 0, g: 0, b: 0}, + hsv: {h: 0, s: 0, v: 0}, + hsl: {h: 0, s: 0, l: 0}, + lab: {l: 0, a: 0, b: 0}, + cmyk: {c: 0, m: 0, y: 0, k: 1} + }, + a = 1, + args = arguments, + _clip = function(v) { + if (isNaN(v) || v === null) { + return 0; + } + if (typeof v == 'string') { + v = parseInt(v, 10); + } + return Math.max(0, Math.min(v, 1)); + }, + _hexify = function (number) { + var digits = '0123456789abcdef', + lsd = number % 16, + msd = (number - lsd) / 16, + hexified = digits.charAt(msd) + digits.charAt(lsd); + return hexified; + }, + _rgb_to_xyz = function(rgb) { + var r = (rgb.r > 0.04045) ? Math.pow((rgb.r + 0.055) / 1.055, 2.4) : rgb.r / 12.92, + g = (rgb.g > 0.04045) ? Math.pow((rgb.g + 0.055) / 1.055, 2.4) : rgb.g / 12.92, + b = (rgb.b > 0.04045) ? Math.pow((rgb.b + 0.055) / 1.055, 2.4) : rgb.b / 12.92; + + return { + x: r * 0.4124 + g * 0.3576 + b * 0.1805, + y: r * 0.2126 + g * 0.7152 + b * 0.0722, + z: r * 0.0193 + g * 0.1192 + b * 0.9505 + }; + }, + _xyz_to_rgb = function(xyz) { + var rgb = { + r: xyz.x * 3.2406 + xyz.y * -1.5372 + xyz.z * -0.4986, + g: xyz.x * -0.9689 + xyz.y * 1.8758 + xyz.z * 0.0415, + b: xyz.x * 0.0557 + xyz.y * -0.2040 + xyz.z * 1.0570 + }; + + rgb.r = (rgb.r > 0.0031308) ? 1.055 * Math.pow(rgb.r, (1 / 2.4)) - 0.055 : 12.92 * rgb.r; + rgb.g = (rgb.g > 0.0031308) ? 1.055 * Math.pow(rgb.g, (1 / 2.4)) - 0.055 : 12.92 * rgb.g; + rgb.b = (rgb.b > 0.0031308) ? 1.055 * Math.pow(rgb.b, (1 / 2.4)) - 0.055 : 12.92 * rgb.b; + + return rgb; + }, + _rgb_to_hsv = function(rgb) { + var minVal = Math.min(rgb.r, rgb.g, rgb.b), + maxVal = Math.max(rgb.r, rgb.g, rgb.b), + delta = maxVal - minVal, + del_R, del_G, del_B, + hsv = { + h: 0, + s: 0, + v: maxVal + }; + + if (delta === 0) { + hsv.h = 0; + hsv.s = 0; + } else { + hsv.s = delta / maxVal; + + del_R = (((maxVal - rgb.r) / 6) + (delta / 2)) / delta; + del_G = (((maxVal - rgb.g) / 6) + (delta / 2)) / delta; + del_B = (((maxVal - rgb.b) / 6) + (delta / 2)) / delta; + + if (rgb.r === maxVal) { + hsv.h = del_B - del_G; + } else if (rgb.g === maxVal) { + hsv.h = (1 / 3) + del_R - del_B; + } else if (rgb.b === maxVal) { + hsv.h = (2 / 3) + del_G - del_R; + } + + if (hsv.h < 0) { + hsv.h += 1; + } else if (hsv.h > 1) { + hsv.h -= 1; + } + } + + return hsv; + }, + _hsv_to_rgb = function(hsv) { + var rgb = { + r: 0, + g: 0, + b: 0 + }, + var_h, + var_i, + var_1, + var_2, + var_3; + + if (hsv.s === 0) { + rgb.r = rgb.g = rgb.b = hsv.v; + } else { + var_h = hsv.h === 1 ? 0 : hsv.h * 6; + var_i = Math.floor(var_h); + var_1 = hsv.v * (1 - hsv.s); + var_2 = hsv.v * (1 - hsv.s * (var_h - var_i)); + var_3 = hsv.v * (1 - hsv.s * (1 - (var_h - var_i))); + + if (var_i === 0) { + rgb.r = hsv.v; + rgb.g = var_3; + rgb.b = var_1; + } else if (var_i === 1) { + rgb.r = var_2; + rgb.g = hsv.v; + rgb.b = var_1; + } else if (var_i === 2) { + rgb.r = var_1; + rgb.g = hsv.v; + rgb.b = var_3; + } else if (var_i === 3) { + rgb.r = var_1; + rgb.g = var_2; + rgb.b = hsv.v; + } else if (var_i === 4) { + rgb.r = var_3; + rgb.g = var_1; + rgb.b = hsv.v; + } else { + rgb.r = hsv.v; + rgb.g = var_1; + rgb.b = var_2; + } + } + + return rgb; + }, + _rgb_to_hsl = function(rgb) { + var minVal = Math.min(rgb.r, rgb.g, rgb.b), + maxVal = Math.max(rgb.r, rgb.g, rgb.b), + delta = maxVal - minVal, + del_R, del_G, del_B, + hsl = { + h: 0, + s: 0, + l: (maxVal + minVal) / 2 + }; + + if (delta === 0) { + hsl.h = 0; + hsl.s = 0; + } else { + hsl.s = hsl.l < 0.5 ? delta / (maxVal + minVal) : delta / (2 - maxVal - minVal); + + del_R = (((maxVal - rgb.r) / 6) + (delta / 2)) / delta; + del_G = (((maxVal - rgb.g) / 6) + (delta / 2)) / delta; + del_B = (((maxVal - rgb.b) / 6) + (delta / 2)) / delta; + + if (rgb.r === maxVal) { + hsl.h = del_B - del_G; + } else if (rgb.g === maxVal) { + hsl.h = (1 / 3) + del_R - del_B; + } else if (rgb.b === maxVal) { + hsl.h = (2 / 3) + del_G - del_R; + } + + if (hsl.h < 0) { + hsl.h += 1; + } else if (hsl.h > 1) { + hsl.h -= 1; + } + } + + return hsl; + }, + _hsl_to_rgb = function(hsl) { + var var_1, + var_2, + hue_to_rgb = function(v1, v2, vH) { + if (vH < 0) { + vH += 1; + } + if (vH > 1) { + vH -= 1; + } + if ((6 * vH) < 1) { + return v1 + (v2 - v1) * 6 * vH; + } + if ((2 * vH) < 1) { + return v2; + } + if ((3 * vH) < 2) { + return v1 + (v2 - v1) * ((2 / 3) - vH) * 6; + } + return v1; + }; + + if (hsl.s === 0) { + return { + r: hsl.l, + g: hsl.l, + b: hsl.l + }; + } + + var_2 = (hsl.l < 0.5) ? hsl.l * (1 + hsl.s) : (hsl.l + hsl.s) - (hsl.s * hsl.l); + var_1 = 2 * hsl.l - var_2; + + return { + r: hue_to_rgb(var_1, var_2, hsl.h + (1 / 3)), + g: hue_to_rgb(var_1, var_2, hsl.h), + b: hue_to_rgb(var_1, var_2, hsl.h - (1 / 3)) + }; + }, + _xyz_to_lab = function(xyz) { + // CIE-L*ab D65 1931 + var x = xyz.x / 0.95047, + y = xyz.y, + z = xyz.z / 1.08883; + + x = (x > 0.008856) ? Math.pow(x, (1/3)) : (7.787 * x) + (16/116); + y = (y > 0.008856) ? Math.pow(y, (1/3)) : (7.787 * y) + (16/116); + z = (z > 0.008856) ? Math.pow(z, (1/3)) : (7.787 * z) + (16/116); + + return { + l: ((116 * y) - 16) / 100, // [0,100] + a: ((500 * (x - y)) + 128) / 255, // [-128,127] + b: ((200 * (y - z)) + 128) / 255 // [-128,127] + }; + }, + _lab_to_xyz = function(lab) { + var lab2 = { + l: lab.l * 100, + a: (lab.a * 255) - 128, + b: (lab.b * 255) - 128 + }, + xyz = { + x: 0, + y: (lab2.l + 16) / 116, + z: 0 + }; + + xyz.x = lab2.a / 500 + xyz.y; + xyz.z = xyz.y - lab2.b / 200; + + xyz.x = (Math.pow(xyz.x, 3) > 0.008856) ? Math.pow(xyz.x, 3) : (xyz.x - 16 / 116) / 7.787; + xyz.y = (Math.pow(xyz.y, 3) > 0.008856) ? Math.pow(xyz.y, 3) : (xyz.y - 16 / 116) / 7.787; + xyz.z = (Math.pow(xyz.z, 3) > 0.008856) ? Math.pow(xyz.z, 3) : (xyz.z - 16 / 116) / 7.787; + + xyz.x *= 0.95047; + xyz.y *= 1; + xyz.z *= 1.08883; + + return xyz; + }, + _rgb_to_cmy = function(rgb) { + return { + c: 1 - (rgb.r), + m: 1 - (rgb.g), + y: 1 - (rgb.b) + }; + }, + _cmy_to_rgb = function(cmy) { + return { + r: 1 - (cmy.c), + g: 1 - (cmy.m), + b: 1 - (cmy.y) + }; + }, + _cmy_to_cmyk = function(cmy) { + var K = 1; + + if (cmy.c < K) { + K = cmy.c; + } + if (cmy.m < K) { + K = cmy.m; + } + if (cmy.y < K) { + K = cmy.y; + } + + if (K == 1) { + return { + c: 0, + m: 0, + y: 0, + k: 1 + }; + } + + return { + c: (cmy.c - K) / (1 - K), + m: (cmy.m - K) / (1 - K), + y: (cmy.y - K) / (1 - K), + k: K + }; + }, + _cmyk_to_cmy = function(cmyk) { + return { + c: cmyk.c * (1 - cmyk.k) + cmyk.k, + m: cmyk.m * (1 - cmyk.k) + cmyk.k, + y: cmyk.y * (1 - cmyk.k) + cmyk.k + }; + }; + + this.set = true; + + this.setAlpha = function(_a) { + if (_a !== null) { + a = _clip(_a); + } + + return this; + }; + + this.getAlpha = function() { + return a; + }; + + this.setRGB = function(r, g, b) { + spaces = {rgb: this.getRGB()}; + if (r !== null) { + spaces.rgb.r = _clip(r); + } + if (g !== null) { + spaces.rgb.g = _clip(g); + } + if (b !== null) { + spaces.rgb.b = _clip(b); + } + + return this; + }; + + this.setHSV = function(h, s, v) { + spaces = {hsv: this.getHSV()}; + if (h !== null) { + spaces.hsv.h = _clip(h); + } + if (s !== null) { + spaces.hsv.s = _clip(s); + } + if (v !== null) { + spaces.hsv.v = _clip(v); + } + + return this; + }; + + this.setHSL = function(h, s, l) { + spaces = {hsl: this.getHSL()}; + if (h !== null) { + spaces.hsl.h = _clip(h); + } + if (s !== null) { + spaces.hsl.s = _clip(s); + } + if (l !== null) { + spaces.hsl.l = _clip(l); + } + + return this; + }; + + this.setLAB = function(l, a, b) { + spaces = {lab: this.getLAB()}; + if (l !== null) { + spaces.lab.l = _clip(l); + } + if (a !== null) { + spaces.lab.a = _clip(a); + } + if (b !== null) { + spaces.lab.b = _clip(b); + } + + return this; + }; + + this.setCMYK = function(c, m, y, k) { + spaces = {cmyk: this.getCMYK()}; + if (c !== null) { + spaces.cmyk.c = _clip(c); + } + if (m !== null) { + spaces.cmyk.m = _clip(m); + } + if (y !== null) { + spaces.cmyk.y = _clip(y); + } + if (k !== null) { + spaces.cmyk.k = _clip(k); + } + + return this; + }; + + this.getRGB = function() { + if (!spaces.rgb) { + spaces.rgb = spaces.lab ? _xyz_to_rgb(_lab_to_xyz(spaces.lab)) + : spaces.hsv ? _hsv_to_rgb(spaces.hsv) + : spaces.hsl ? _hsl_to_rgb(spaces.hsl) + : spaces.cmyk ? _cmy_to_rgb(_cmyk_to_cmy(spaces.cmyk)) + : {r: 0, g: 0, b: 0}; + spaces.rgb.r = _clip(spaces.rgb.r); + spaces.rgb.g = _clip(spaces.rgb.g); + spaces.rgb.b = _clip(spaces.rgb.b); + } + return $.extend({}, spaces.rgb); + }; + + this.getHSV = function() { + if (!spaces.hsv) { + spaces.hsv = spaces.lab ? _rgb_to_hsv(this.getRGB()) + : spaces.rgb ? _rgb_to_hsv(spaces.rgb) + : spaces.hsl ? _rgb_to_hsv(this.getRGB()) + : spaces.cmyk ? _rgb_to_hsv(this.getRGB()) + : {h: 0, s: 0, v: 0}; + spaces.hsv.h = _clip(spaces.hsv.h); + spaces.hsv.s = _clip(spaces.hsv.s); + spaces.hsv.v = _clip(spaces.hsv.v); + } + return $.extend({}, spaces.hsv); + }; + + this.getHSL = function() { + if (!spaces.hsl) { + spaces.hsl = spaces.rgb ? _rgb_to_hsl(spaces.rgb) + : spaces.hsv ? _rgb_to_hsl(this.getRGB()) + : spaces.cmyk ? _rgb_to_hsl(this.getRGB()) + : spaces.hsv ? _rgb_to_hsl(this.getRGB()) + : {h: 0, s: 0, l: 0}; + spaces.hsl.h = _clip(spaces.hsl.h); + spaces.hsl.s = _clip(spaces.hsl.s); + spaces.hsl.l = _clip(spaces.hsl.l); + } + return $.extend({}, spaces.hsl); + }; + + this.getCMYK = function() { + if (!spaces.cmyk) { + spaces.cmyk = spaces.rgb ? _cmy_to_cmyk(_rgb_to_cmy(spaces.rgb)) + : spaces.hsv ? _cmy_to_cmyk(_rgb_to_cmy(this.getRGB())) + : spaces.hsl ? _cmy_to_cmyk(_rgb_to_cmy(this.getRGB())) + : spaces.lab ? _cmy_to_cmyk(_rgb_to_cmy(this.getRGB())) + : {c: 0, m: 0, y: 0, k: 1}; + spaces.cmyk.c = _clip(spaces.cmyk.c); + spaces.cmyk.m = _clip(spaces.cmyk.m); + spaces.cmyk.y = _clip(spaces.cmyk.y); + spaces.cmyk.k = _clip(spaces.cmyk.k); + } + return $.extend({}, spaces.cmyk); + }; + + this.getLAB = function() { + if (!spaces.lab) { + spaces.lab = spaces.rgb ? _xyz_to_lab(_rgb_to_xyz(spaces.rgb)) + : spaces.hsv ? _xyz_to_lab(_rgb_to_xyz(this.getRGB())) + : spaces.hsl ? _xyz_to_lab(_rgb_to_xyz(this.getRGB())) + : spaces.cmyk ? _xyz_to_lab(_rgb_to_xyz(this.getRGB())) + : {l: 0, a: 0, b: 0}; + spaces.lab.l = _clip(spaces.lab.l); + spaces.lab.a = _clip(spaces.lab.a); + spaces.lab.b = _clip(spaces.lab.b); + } + return $.extend({}, spaces.lab); + }; + + this.getChannels = function() { + return { + r: this.getRGB().r, + g: this.getRGB().g, + b: this.getRGB().b, + a: this.getAlpha(), + h: this.getHSV().h, + s: this.getHSV().s, + v: this.getHSV().v, + c: this.getCMYK().c, + m: this.getCMYK().m, + y: this.getCMYK().y, + k: this.getCMYK().k, + L: this.getLAB().l, + A: this.getLAB().a, + B: this.getLAB().b + }; + }; + + this.getSpaces = function() { + return $.extend(true, {}, spaces); + }; + + this.setSpaces = function(new_spaces) { + spaces = new_spaces; + return this; + }; + + this.distance = function(color) { + var space = 'lab', + getter = 'get'+space.toUpperCase(), + a = this[getter](), + b = color[getter](), + distance = 0, + channel; + + for (channel in a) { + distance += Math.pow(a[channel] - b[channel], 2); + } + + return distance; + }; + + this.equals = function(color) { + var a = this.getRGB(), + b = color.getRGB(); + + return this.getAlpha() == color.getAlpha() + && a.r == b.r + && a.g == b.g + && a.b == b.b; + }; + + this.limit = function(steps) { + steps -= 1; + var rgb = this.getRGB(); + this.setRGB( + Math.round(rgb.r * steps) / steps, + Math.round(rgb.g * steps) / steps, + Math.round(rgb.b * steps) / steps + ); + }; + + this.toHex = function() { + var rgb = this.getRGB(); + return _hexify(rgb.r * 255) + _hexify(rgb.g * 255) + _hexify(rgb.b * 255); + }; + + this.toCSS = function() { + return '#' + this.toHex(); + }; + + this.normalize = function() { + this.setHSV(null, 1, 1); + return this; + }; + + this.copy = function() { + var spaces = this.getSpaces(), + a = this.getAlpha(); + return new Color(spaces, a); + }; + + // Construct + if (args.length == 2) { + this.setSpaces(args[0]); + this.setAlpha(args[1] === 0 ? 0 : args[1] || 1); + } + if (args.length > 2) { + this.setRGB(args[0], args[1], args[2]); + this.setAlpha(args[3] === 0 ? 0 : args[3] || 1); + } + }; + + $.widget("vanderlee.colorpicker", { + options: { + alpha: false, // Show alpha controls and mode + altAlpha: true, // change opacity of altField as well? + altField: '', // selector for DOM elements which change background color on change. + altOnChange: true, // true to update on each change, false to update only on close. + altProperties: 'background-color', // comma separated list of any of 'background-color', 'color', 'border-color', 'outline-color' + autoOpen: false, // Open dialog automatically upon creation + buttonColorize: false, + buttonImage: 'images/ui-colorpicker.png', + buttonImageOnly: false, + buttonText: null, // Text on the button and/or title of button image. + closeOnEscape: true, // Close the dialog when the escape key is pressed. + closeOnOutside: true, // Close the dialog when clicking outside the dialog (not for inline) + color: '#00FF00', // Initial color (for inline only) + colorFormat: 'HEX', // Format string for output color format + draggable: true, // Make popup dialog draggable if header is visible. + duration: 'fast', + hsv: true, // Show HSV controls and modes + inline: true, // Show any divs as inline by default + layout: { + map: [0, 0, 1, 5], // Left, Top, Width, Height (in table cells). + bar: [1, 0, 1, 5], + preview: [2, 0, 1, 1], + hsv: [2, 1, 1, 1], + rgb: [2, 2, 1, 1], + alpha: [2, 3, 1, 1], + hex: [2, 4, 1, 1], + lab: [3, 1, 1, 1], + cmyk: [3, 2, 1, 2], + swatches: [4, 0, 1, 5] + }, + limit: '', // Limit color "resolution": '', 'websafe', 'nibble', 'binary', 'name' + modal: false, // Modal dialog? + mode: 'h', // Initial editing mode, h, s, v, r, g, b or a + parts: '', // leave empty for automatic selection + regional: '', + rgb: true, // Show RGB controls and modes + showAnim: 'fadeIn', + showCancelButton: true, + showNoneButton: false, + showCloseButton: true, + showOn: 'focus', // 'focus', 'button', 'both' + showOptions: {}, + swatches: null, + title: null, + + close: null, + init: null, + select: null, + open: null + }, + + _create: function () { + var that = this, + text; + + ++_colorpicker_index; + + that.widgetEventPrefix = 'color'; + + that.opened = false; + that.generated = false; + that.inline = false; + that.changed = false; + + that.dialog = null; + that.button = null; + that.image = null; + that.overlay = null; + + that.mode = that.options.mode; + + if (that.options.swatches === null) { + that.options.swatches = _colors; + } + + if (this.element[0].nodeName.toLowerCase() === 'input' || !that.options.inline) { + that._setColor(that.element.val()); + + this._callback('init'); + + $('body').append(_container_popup); + that.dialog = $('.ui-colorpicker:last'); + + // Click outside/inside + $(document).mousedown(function (event) { + if (!that.opened || event.target === that.element[0] || that.overlay) { + return; + } + + // Check if clicked on any part of dialog + if (that.dialog.is(event.target) || that.dialog.has(event.target).length > 0) { + that.element.blur(); // inside window! + return; + } + + // Check if clicked on button + var p, + parents = $(event.target).parents(); + for (p = 0; p <= parents.length; ++p) { + if (that.button !== null && parents[p] === that.button[0]) { + return; + } + } + + // no closeOnOutside + if (!that.options.closeOnOutside) { + return; + } + + that.close(); + }); + + $(document).keydown(function (event) { + if (event.keyCode == 27 && that.opened && that.options.closeOnEscape) { + that.close(); + } + }); + + if (that.options.showOn === 'focus' || that.options.showOn === 'both') { + that.element.on('focus click', function () { + that.open(); + }); + } + if (that.options.showOn === 'button' || that.options.showOn === 'both') { + if (that.options.buttonImage !== '') { + text = that.options.buttonText || that._getRegional('button'); + + that.image = $('').attr({ + 'src': that.options.buttonImage, + 'alt': text, + 'title': text + }); + + that._setImageBackground(); + } + + if (that.options.buttonImageOnly && that.image) { + that.button = that.image; + } else { + that.button = $('').html(that.image || that.options.buttonText).button(); + that.image = that.image ? $('img', that.button).first() : null; + } + that.button.insertAfter(that.element).click(function () { + that[that.opened ? 'close' : 'open'](); + }); + } + + if (that.options.autoOpen) { + that.open(); + } + + that.element.keydown(function (event) { + if (event.keyCode === 9) { + that.close(); + } + }).keyup(function (event) { + var color = _parseColor(that.element.val()); + if (!that.color.equals(color)) { + that.color = color; + that._change(); + } + }); + } else { + that.inline = true; + + $(this.element).html(_container_inline); + that.dialog = $('.ui-colorpicker', this.element); + + that._generate(); + + that.opened = true; + } + + return this; + }, + + _setOption: function(key, value){ + var that = this; + + switch (key) { + case "disabled": + if (value) { + that.dialog.addClass('ui-colorpicker-disabled'); + } else { + that.dialog.removeClass('ui-colorpicker-disabled'); + } + break; + } + + $.Widget.prototype._setOption.apply(that, arguments); + }, + + /* setBackground */ + _setImageBackground: function() { + if (this.image && this.options.buttonColorize) { + this.image.css('background-color', this.color.set? _formatColor('RGBA', this.color) : ''); + } + }, + + /** + * If an alternate field is specified, set it according to the current color. + */ + _setAltField: function () { + if (this.options.altOnChange && this.options.altField && this.options.altProperties) { + var index, + property, + properties = this.options.altProperties.split(','); + + for (index = 0; index <= properties.length; ++index) { + property = $.trim(properties[index]); + switch (property) { + case 'color': + case 'background-color': + case 'outline-color': + case 'border-color': + $(this.options.altField).css(property, this.color.set? this.color.toCSS() : ''); + break; + } + } + + if (this.options.altAlpha) { + $(this.options.altField).css('opacity', this.color.set? this.color.getAlpha() : ''); + } + } + }, + + _setColor: function(text) { + this.color = _parseColor(text); + this.currentColor = this.color.copy(); + + this._setImageBackground(); + this._setAltField(); + }, + + setColor: function(text) { + this._setColor(text); + this._change(this.color.set); + }, + + _generate: function () { + var that = this, + index, + part, + parts_list, + layout_parts; + + // Set color based on element? + that._setColor(that.inline? that.options.color : that.element.val()); + + // Determine the parts to include in this colorpicker + if (typeof that.options.parts === 'string') { + if (_parts_lists[that.options.parts]) { + parts_list = _parts_lists[that.options.parts]; + } else { + // automatic + parts_list = _parts_lists[that.inline ? 'inline' : 'popup']; + } + } else { + parts_list = that.options.parts; + } + + // Add any parts to the internal parts list + that.parts = {}; + $.each(parts_list, function(index, part) { + if (_parts[part]) { + that.parts[part] = new _parts[part](that); + } + }); + + if (!that.generated) { + layout_parts = []; + + $.each(that.options.layout, function(part, pos) { + if (that.parts[part]) { + layout_parts.push({ + 'part': part, + 'pos': pos + }); + } + }); + + $(_layoutTable(layout_parts, function(cell, x, y) { + var classes = ['ui-colorpicker-' + cell.part + '-container']; + + if (x > 0) { + classes.push('ui-colorpicker-padding-left'); + } + + if (y > 0) { + classes.push('ui-colorpicker-padding-top'); + } + + return ' 1 ? ' colspan="' + cell.pos[2] + '"' : '') + + (cell.pos[3] > 1 ? ' rowspan="' + cell.pos[3] + '"' : '') + + ' valign="top">'; + })).appendTo(that.dialog).addClass('ui-dialog-content ui-widget-content'); + + that._initAllParts(); + that._updateAllParts(); + that.generated = true; + } + }, + + _effectGeneric: function (element, show, slide, fade, callback) { + var that = this; + + if ($.effects && $.effects[that.options.showAnim]) { + element[show](that.options.showAnim, that.options.showOptions, that.options.duration, callback); + } else { + element[(that.options.showAnim === 'slideDown' ? + slide + : (that.options.showAnim === 'fadeIn' ? + fade + : show))]((that.options.showAnim ? that.options.duration : null), callback); + if (!that.options.showAnim || !that.options.duration) { + callback(); + } + } + }, + + _effectShow: function(element, callback) { + this._effectGeneric(element, 'show', 'slideDown', 'fadeIn', callback); + }, + + _effectHide: function(element, callback) { + this._effectGeneric(element, 'hide', 'slideUp', 'fadeOut', callback); + }, + + open: function() { + var that = this, + offset, + bottom, + right, + height, + width, + x, + y, + zIndex; + + if (!that.opened) { + that._generate(); + + offset = that.element.offset(); + bottom = $(window).height() + $(window).scrollTop(); + right = $(window).width() + $(window).scrollLeft(); + height = that.dialog.outerHeight(); + width = that.dialog.outerWidth(); + x = offset.left; + y = offset.top + that.element.outerHeight(); + + if (x + width > right) { + x = Math.max(0, right - width); + } + + if (y + height > bottom) { + if (offset.top - height >= $(window).scrollTop()) { + y = offset.top - height; + } else { + y = Math.max(0, bottom - height); + } + } + + that.dialog.css({'left': x, 'top': y}); + + // Automatically find highest z-index. + zIndex = 0; + $(that.element[0]).parents().each(function() { + var z = $(this).css('z-index'); + if ((typeof(z) === 'number' || typeof(z) === 'string') && z !== '' && !isNaN(z)) { + zIndex = z; + return false; + } + }); + + //@todo zIndexOffset option, to raise above other elements? + that.dialog.css('z-index', zIndex += 2); + + that.overlay = that.options.modal ? new $.ui.dialog.overlay(that) : null; + + that._effectShow(this.dialog); + that.opened = true; + that._callback('open', true); + + // Without waiting for domready the width of the map is 0 and we + // wind up with the cursor stuck in the upper left corner + $(function() { + that._repaintAllParts(); + }); + } + }, + + close: function () { + var that = this; + + that.currentColor = that.color.copy(); + that.changed = false; + + // tear down the interface + that._effectHide(that.dialog, function () { + that.dialog.empty(); + that.generated = false; + + that.opened = false; + that._callback('close', true); + }); + + if (that.overlay) { + that.overlay.destroy(); + } + }, + + destroy: function() { + this.element.unbind(); + + if (this.image !== null) { + this.image.remove(); + } + + if (this.button !== null) { + this.button.remove(); + } + + if (this.dialog !== null) { + this.dialog.remove(); + } + + if (this.overlay) { + this.overlay.destroy(); + } + }, + + _callback: function (callback, spaces) { + var that = this, + data, + lab; + + if (that.color.set) { + data = { + formatted: _formatColor(that.options.colorFormat, that.color) + }; + + lab = that.color.getLAB(); + lab.a = (lab.a * 2) - 1; + lab.b = (lab.b * 2) - 1; + + if (spaces === true) { + data.a = that.color.getAlpha(); + data.rgb = that.color.getRGB(); + data.hsv = that.color.getHSV(); + data.cmyk = that.color.getCMYK(); + data.hsl = that.color.getHSL(); + data.lab = lab; + } + + return that._trigger(callback, null, data); + } else { + return that._trigger(callback, null, { + formatted: '' + }); + } + }, + + _initAllParts: function () { + $.each(this.parts, function (index, part) { + if (part.init) { + part.init(); + } + }); + }, + + _updateAllParts: function () { + $.each(this.parts, function (index, part) { + if (part.update) { + part.update(); + } + }); + }, + + _repaintAllParts: function () { + $.each(this.parts, function (index, part) { + if (part.repaint) { + part.repaint(); + } + }); + }, + + _change: function (set /* = true */) { + this.color.set = (set !== false); + + this.changed = true; + + // Limit color palette + switch (this.options.limit) { + case 'websafe': + this.color.limit(6); + break; + + case 'nibble': + this.color.limit(16); + break; + + case 'binary': + this.color.limit(2); + break; + + case 'name': + var name = _closestName(this.color); + this.color.setRGB(_colors[name].r, _colors[name].g, _colors[name].b); + break; + } + + // update input element content + if (!this.inline) { + if (!this.color.set) { + this.element.val(''); + } else if (!this.color.equals(_parseColor(this.element.val()))) { + this.element.val(_formatColor(this.options.colorFormat, this.color)); + } + + this._setImageBackground(); + this._setAltField(); + } + + if (this.opened) { + this._repaintAllParts(); + } + + // callback + this._callback('select'); + }, + + // This will be deprecated by jQueryUI 1.9 widget + _hoverable: function (e) { + e.hover(function () { + e.addClass("ui-state-hover"); + }, function () { + e.removeClass("ui-state-hover"); + }); + }, + + // This will be deprecated by jQueryUI 1.9 widget + _focusable: function (e) { + e.focus(function () { + e.addClass("ui-state-focus"); + }).blur(function () { + e.removeClass("ui-state-focus"); + }); + }, + + _getRegional: function(name) { + return $.colorpicker.regional[this.options.regional][name] !== undefined ? + $.colorpicker.regional[this.options.regional][name] : $.colorpicker.regional[''][name]; + } + }); +}(jQuery)); \ No newline at end of file diff --git a/common/chart/examples/cursor-highlighter.html b/common/chart/examples/cursor-highlighter.html new file mode 100644 index 0000000..fea3eef --- /dev/null +++ b/common/chart/examples/cursor-highlighter.html @@ -0,0 +1,232 @@ + + + + + + Data Point Highlighting, Tooltips and Cursor Tracking + + + + + + + + + + + + + +
+
+
+ + + + +

The Highlighter plugin will highlight data points near the mouse and display an optional tooltip with the data point value. By default, the tooltip values will be formatted with the same formatter as used to display the axes tick values. The text format can be customized with an optional sprintf style format string.

+ +
+ +

+
+

The Cursor plugin changes the mouse cursor when it enters the graph area and displays an optional tooltip with the mouse position. The tooltip can be in a fixed location, or it can follow the mouse. The pointer style, set to "crosshair" by default, can also be customized. Tooltip values are formatted similar to the Highlighter plugin. By default they use the axes formatters, but can be customized with a sprintf format string.

+ +
+ +

+
+

Tooltips can be displayed with Pie Charts. Cursor tracking doesn't work with Pie Charts since they do not have points or axes, so the tooltip is based on the highlighter and always follows the mouse. You may wish to change the background and border colors of the highlighter tooltip for use with Pie Charts, since the default tooltip colors are designed to be displayed on top of a white background, while the Pie Chart slices provide a darker color background for the tooltips. To change the tooltip colors or other attributes, modify the jqplot-highlighter-tooltip class in jquery.jqplot.min.css.

+ +
+ +

+
+
+  
+
+
+
+    
+    
+    
+
+
+
+
+    
+    
+    
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/customHighlighterCursorTrendline.html b/common/chart/examples/customHighlighterCursorTrendline.html new file mode 100644 index 0000000..02ce051 --- /dev/null +++ b/common/chart/examples/customHighlighterCursorTrendline.html @@ -0,0 +1,164 @@ + + + + + + Highlighting, Dragging Points, Cursor and Trend Lines + + + + + + + + + + + + + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + diff --git a/common/chart/examples/dashboardWidget.html b/common/chart/examples/dashboardWidget.html new file mode 100644 index 0000000..d7bfb3b --- /dev/null +++ b/common/chart/examples/dashboardWidget.html @@ -0,0 +1,272 @@ + + + + + + Animated Dashboard Sample - Filled Line with Log Axis + + + + + + + + + + + + + +
+
+
+ + + + + + + +
+
Hi Powered Data
+
+
+
+
+ +

+
+    
+
+
+
+
+
+
+
+    
+    
+    
+    
+
+
+
+    
+    
+    
+    
+    
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/dashedLines.html b/common/chart/examples/dashedLines.html new file mode 100644 index 0000000..7938aa8 --- /dev/null +++ b/common/chart/examples/dashedLines.html @@ -0,0 +1,287 @@ + + + + + + Dashed Lines with Smoothing + + + + + + + + + + + + + +
+
+
+ + + + + + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + diff --git a/common/chart/examples/data-renderers.html b/common/chart/examples/data-renderers.html new file mode 100644 index 0000000..2fb8d41 --- /dev/null +++ b/common/chart/examples/data-renderers.html @@ -0,0 +1,204 @@ + + + + + + AJAX and JSON Data Loading via Data Renderers + + + + + + + + + + + + + +
+
+
+ + + + +

Data renderers allow jqPlot to pull data from any external source (e.g. a function implementing an AJAX call). Simply assign the external source to the "dataRenderer" plot option. The only requirement on data renderers is that it must return a valid jqPlot data array.

+ +
+ +

+
+
+

Data renderers get passed options by the plot. The signiture for a data renderer is:

+ + +
+function(userData, plotObject, options) {
+  ...
+  return data;
+}
+
+ + +

Where userData is whatever data was passed into the plot, plotObject is a reference back to the plot itself, and options are any options passed into the plots "dataRendererOption" option. The following example shows a more complicated example which uses ajax pulls data from an external json data source.

+ +
+ +

+
+
+
+
+  
+
+
+
+
+
+
+
+
+    
+    
+    
+    
+
+
+
+
+    
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/date-axes.html b/common/chart/examples/date-axes.html new file mode 100644 index 0000000..8693270 --- /dev/null +++ b/common/chart/examples/date-axes.html @@ -0,0 +1,188 @@ + + + + + + Date Axes + + + + + + + + + + + + + +
+
+
+ + + +

Date axes support is provided through the dateAxisRenderer plugin. Date axes expand javascripts native date handling capabilities. This allow dates to be input in almost any unambiguous form, not just in milliseconds!

+ +

Note, although jqPlot will parse most any human readable date, it is safest to use javascript time stamps when possible. Also, it is best to specify a date and time and not just a date alone. This is due to inconsistent browser handling of local time vs. UTC with bare dates.

+ +
+ +

+
+

Date Axes also provide powerful formatting features. This allows custom formatter strings to be used to format axis tick labels precisely the way you want.

+ +
+ +

+  
+
+ +

+  
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    
+    
+    
+
+
+
+
+    
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/dateAxisLogAxisZooming.html b/common/chart/examples/dateAxisLogAxisZooming.html new file mode 100644 index 0000000..e1367d4 --- /dev/null +++ b/common/chart/examples/dateAxisLogAxisZooming.html @@ -0,0 +1,161 @@ + + + + + + Zooming with Date and Log Axes + + + + + + + + + + + + + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + diff --git a/common/chart/examples/dateAxisRenderer.html b/common/chart/examples/dateAxisRenderer.html new file mode 100644 index 0000000..1cc73b9 --- /dev/null +++ b/common/chart/examples/dateAxisRenderer.html @@ -0,0 +1,352 @@ + + + + + + Date Axes 2 + + + + + + + + + + + + + +
+
+
+ + + + +

Date axis renderer with default settings. Ticks are given wider spacing by default since date axes typically have longer tick labels.

+
+

Date axis recognizes rotated tick labels. It will space ticks a little closer when labels are rotated.

+
+

If you want more or less ticks, specify the "numberTicks" options. Date axes will try to produce the desired number of ticks, but may adjust to get a nice interval.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + diff --git a/common/chart/examples/draw-rectangles.html b/common/chart/examples/draw-rectangles.html new file mode 100644 index 0000000..6f6aa91 --- /dev/null +++ b/common/chart/examples/draw-rectangles.html @@ -0,0 +1,194 @@ + + + + + + Draw Rectangles on Plots + + + + + + + + + + + + + +
+
+
+ + + + +

These examples use rectangle overlays to show various ranges. +xmin, xmax, ymin, ymax are all optional -- the rectangle will go to the end of the plot area if they are not specified. +Colors are specified in the canvas drawing format (use rgba for transparency). +

+ +
+ + + +

+
+    
+ +

+  
+    
+ +

+  
+
+  
+
+
+
+
+
+
+
+
+
+    
+    
+    
+    
+
+
+
+
+  
+  
+  
+  
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/example.js b/common/chart/examples/example.js new file mode 100644 index 0000000..6529b9b --- /dev/null +++ b/common/chart/examples/example.js @@ -0,0 +1,114 @@ +$(document).ready(function(){ + if (!$.jqplot._noCodeBlock) { + $('script.code').each(function(index) { + if ($('pre.code').eq(index).length ) { + $('pre.code').eq(index).text($(this).html()); + } + else { + // var str = $(this).text(); + // $('div.jqplot-target').eq(index).after($('
'+str+'
')); + var pre = $('
');
+                $('div.jqplot-target').eq(index).after(pre);
+                pre.text($(this).html());
+                pre = null;
+            }
+        });
+
+        $('script.common').each(function(index) {
+            $('pre.common').eq(index).text($(this).html());
+        });
+
+        var elstr='';
+        if ($('script.include, link.include').length > 0) {
+
+            if ($('pre.include').length == 0) {
+                var temp = [
+                    '
', + '

The charts on this page depend on the following files:

', + '
',
+                    '
' + ]; + + temp = $(temp.join('\n')); + $('div#example-content').append(temp); + temp = null; + } + + + $('script.include').each(function(index) { + if (elstr !== '') { + elstr += '\n'; + } + elstr += ''; + }); + + $('link.include').each(function(index) { + if (elstr !== '') { + elstr += '\n'; + } + elstr += ''; + }) + + $('pre.include').text(elstr); + } + + else { + $('pre.include').remove(); + $('div.include').remove(); + } + } + + if (!$.jqplot.use_excanvas) { + $('div.jqplot-target').each(function(){ + var outerDiv = $(document.createElement('div')); + var header = $(document.createElement('div')); + var div = $(document.createElement('div')); + + outerDiv.append(header); + outerDiv.append(div); + + outerDiv.addClass('jqplot-image-container'); + header.addClass('jqplot-image-container-header'); + div.addClass('jqplot-image-container-content'); + + header.html('Right Click to Save Image As...'); + + var close = $(document.createElement('a')); + close.addClass('jqplot-image-container-close'); + close.html('Close'); + close.attr('href', '#'); + close.click(function() { + $(this).parents('div.jqplot-image-container').hide(500); + }) + header.append(close); + + $(this).after(outerDiv); + outerDiv.hide(); + + outerDiv = header = div = close = null; + + if (!$.jqplot._noToImageButton) { + var btn = $(document.createElement('button')); + btn.text('View Plot Image'); + btn.addClass('jqplot-image-button'); + btn.bind('click', {chart: $(this)}, function(evt) { + var imgelem = evt.data.chart.jqplotToImageElem(); + var div = $(this).nextAll('div.jqplot-image-container').first(); + div.children('div.jqplot-image-container-content').empty(); + div.children('div.jqplot-image-container-content').append(imgelem); + div.show(500); + div = null; + }); + + $(this).after(btn); + btn.after('
'); + btn = null; + } + }); + } + + SyntaxHighlighter.defaults['toolbar'] = true; + SyntaxHighlighter.all(); + + $(document).unload(function() {$('*').unbind(); }); +}); \ No newline at end of file diff --git a/common/chart/examples/example.min.js b/common/chart/examples/example.min.js new file mode 100644 index 0000000..1c91451 --- /dev/null +++ b/common/chart/examples/example.min.js @@ -0,0 +1 @@ +$(document).ready(function(){if(!$.jqplot._noCodeBlock){$("script.code").each(function(c){if($("pre.code").eq(c).length){$("pre.code").eq(c).text($(this).html())}else{var d=$('
');$("div.jqplot-target").eq(c).after(d);d.text($(this).html());d=null}});$("script.common").each(function(c){$("pre.common").eq(c).text($(this).html())});var b="";if($("script.include, link.include").length>0){if($("pre.include").length==0){var a=['
','

The charts on this page depend on the following files:

','
',"
"];a=$(a.join("\n"));$("div#example-content").append(a);a=null}$("script.include").each(function(c){if(b!==""){b+="\n"}b+=' + + + + + +
+
+
+ + + + + + + +
+ +

Enter 2 series to fill between:

+ + + + + + + +

+
+
+    
+
+
+
+
+
+
+    
+    
+    
+    
+
+
+
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/hiddenPlotsInTabs.html b/common/chart/examples/hiddenPlotsInTabs.html new file mode 100644 index 0000000..1e962ef --- /dev/null +++ b/common/chart/examples/hiddenPlotsInTabs.html @@ -0,0 +1,285 @@ + + + + + + Hidden Plots + + + + + + + + + + + + + +
+
+
+ + + + + + +

This page demonstrates placing plots within jQuery UI widgets. Tab 2 and tab 3 contain plots. Using a combination of alternate sizing specification and the jqplot "replot" method the plots are properly displayed when their containers are shown.

+ +

The alternate sizing specifications for setting plot height and width are needed because a hidden element (or child of a hidden element) has no size. The first example in tab 2 uses custom "data-height" and "data-width" attributes on the plot target element. The second example uses "width" and "height" properties specified on the options object passed into the $.jqplot() function.

+ +

The default plot size is 300px wide by 400px high. The default setting can be overridden by specifying different values to the $.jqplot.config.defaultHeight and $.jqplot.config.defaultWidth properties. Height and width values are taken in this order of precedence: +

+ +
    +
  1. The css properties of the plot target if available (not available with display:none;).
  2. +
  3. Options object passed into the $.jqplot() function.
  4. +
  5. Custom data-height and data-width attributes on the plot target.
  6. +
  7. The config defaults.
  8. +
+ +
+ +
+ Tabs 2 and 3 have plots. Since tabs 2 and 3 are initially inactive, their contents (and the plots) are initially hidden. +
+ +
+

This plot was in an initially hidden container. Its height and width are set by the "data-height" and "data-width" properties of the plot container.

+
+
+ +
+

This plot is in an initially hidden container. Its height and width are set by the 'height' and 'width' properties of the options object passed into the plot constructor.

+
+
+ +
+ +

In the accordion below, section 2 contains a plot. Sizing plots in hidden accordion sections is very similar to sizing in a tab widget. Because of the default animation on accordions, however, the plot will not draw itself until the entire accordion panel is shown.

+ +
+ +

Section 1

+
+ Here is section 1 there is no plot. Section 2 has a plot that will display once the section is completely shown. +
+ +

Section 2

+
+

+ This plot also has its height and width set with the data-height and data-width attributes. Note, if you want the accordion widget to properly size itself before the plot is shown, you must also specify a css height and width on the plot target. +

+
+
+ +
+ +

Code for generating the plots follows. It is critical to bind the callback to the UI widgets "show" or "change" method which calls the plots "replot" method. Without this, the plot won't properly redraw itself when its container becomes visible.

+ +

+ Note in the ui.index and plot._drawCount properties in the tabsshow callback. ui.index gives the index of the activated tab. plot._drawCount keeps track of how many times the plot was visibly drawn (or redrawn/replotted). Generally, replot only needs to be called the first time the plot is visibly drawn, hence the check for plot._drawCount === 0. +

+ +

+
+ 
+
+
+
+
+
+
+    
+    
+    
+    
+
+
+
+  
+  
+  
+  
+   
+  
+
+
+
+        
+ +
+
+ + + + + + diff --git a/common/chart/examples/images/bar-alpha.png b/common/chart/examples/images/bar-alpha.png new file mode 100644 index 0000000..2950dae Binary files /dev/null and b/common/chart/examples/images/bar-alpha.png differ diff --git a/common/chart/examples/images/bar-opacity.png b/common/chart/examples/images/bar-opacity.png new file mode 100644 index 0000000..e42ad08 Binary files /dev/null and b/common/chart/examples/images/bar-opacity.png differ diff --git a/common/chart/examples/images/bar-pointer.png b/common/chart/examples/images/bar-pointer.png new file mode 100644 index 0000000..6e980cf Binary files /dev/null and b/common/chart/examples/images/bar-pointer.png differ diff --git a/common/chart/examples/images/bar.png b/common/chart/examples/images/bar.png new file mode 100644 index 0000000..80eb2bb Binary files /dev/null and b/common/chart/examples/images/bar.png differ diff --git a/common/chart/examples/images/index.html b/common/chart/examples/images/index.html new file mode 100644 index 0000000..e69de29 diff --git a/common/chart/examples/images/logo.jpg b/common/chart/examples/images/logo.jpg new file mode 100644 index 0000000..a12fffc Binary files /dev/null and b/common/chart/examples/images/logo.jpg differ diff --git a/common/chart/examples/images/map-opacity.png b/common/chart/examples/images/map-opacity.png new file mode 100644 index 0000000..6756cee Binary files /dev/null and b/common/chart/examples/images/map-opacity.png differ diff --git a/common/chart/examples/images/map-pointer.png b/common/chart/examples/images/map-pointer.png new file mode 100644 index 0000000..6499296 Binary files /dev/null and b/common/chart/examples/images/map-pointer.png differ diff --git a/common/chart/examples/images/map.png b/common/chart/examples/images/map.png new file mode 100644 index 0000000..853d38c Binary files /dev/null and b/common/chart/examples/images/map.png differ diff --git a/common/chart/examples/images/preview-opacity.png b/common/chart/examples/images/preview-opacity.png new file mode 100644 index 0000000..0dd9a2f Binary files /dev/null and b/common/chart/examples/images/preview-opacity.png differ diff --git a/common/chart/examples/images/ui-colorpicker.png b/common/chart/examples/images/ui-colorpicker.png new file mode 100644 index 0000000..e244c68 Binary files /dev/null and b/common/chart/examples/images/ui-colorpicker.png differ diff --git a/common/chart/examples/index.html b/common/chart/examples/index.html new file mode 100644 index 0000000..c4f1f18 --- /dev/null +++ b/common/chart/examples/index.html @@ -0,0 +1,128 @@ + + + + + + Examples + + + + + + + + + + + + + +
+
+
+ + + +There are lots of examples showing basic chart functionality as well as zoom proxies, dynamic replotting, Mekko charts, trend lines, block plots, log axes, filled line (area) plots, and...well you get the picture. When you download a distribution, you'll get over 90 examples of plot types, features and functionality! The examples are a great way to understand what jqPlot is capable of, and to learn how to use the library. + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + diff --git a/common/chart/examples/jquery-ui/css/index.html b/common/chart/examples/jquery-ui/css/index.html new file mode 100644 index 0000000..e69de29 diff --git a/common/chart/examples/jquery-ui/css/smoothness/images/index.html b/common/chart/examples/jquery-ui/css/smoothness/images/index.html new file mode 100644 index 0000000..e69de29 diff --git a/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png b/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000..5b5dab2 Binary files /dev/null and b/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png differ diff --git a/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png b/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png new file mode 100644 index 0000000..ac8b229 Binary files /dev/null and b/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png differ diff --git a/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png b/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000..ad3d634 Binary files /dev/null and b/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png differ diff --git a/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png b/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 0000000..42ccba2 Binary files /dev/null and b/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png differ diff --git a/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png b/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 0000000..5a46b47 Binary files /dev/null and b/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png differ diff --git a/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png b/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 0000000..86c2baa Binary files /dev/null and b/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png differ diff --git a/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png b/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000..4443fdc Binary files /dev/null and b/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png differ diff --git a/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 0000000..7c9fa6c Binary files /dev/null and b/common/chart/examples/jquery-ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ diff --git a/common/chart/examples/jquery-ui/css/smoothness/images/ui-icons_222222_256x240.png b/common/chart/examples/jquery-ui/css/smoothness/images/ui-icons_222222_256x240.png new file mode 100644 index 0000000..b273ff1 Binary files /dev/null and b/common/chart/examples/jquery-ui/css/smoothness/images/ui-icons_222222_256x240.png differ diff --git a/common/chart/examples/jquery-ui/css/smoothness/images/ui-icons_2e83ff_256x240.png b/common/chart/examples/jquery-ui/css/smoothness/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000..09d1cdc Binary files /dev/null and b/common/chart/examples/jquery-ui/css/smoothness/images/ui-icons_2e83ff_256x240.png differ diff --git a/common/chart/examples/jquery-ui/css/smoothness/images/ui-icons_454545_256x240.png b/common/chart/examples/jquery-ui/css/smoothness/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000..59bd45b Binary files /dev/null and b/common/chart/examples/jquery-ui/css/smoothness/images/ui-icons_454545_256x240.png differ diff --git a/common/chart/examples/jquery-ui/css/smoothness/images/ui-icons_888888_256x240.png b/common/chart/examples/jquery-ui/css/smoothness/images/ui-icons_888888_256x240.png new file mode 100644 index 0000000..6d02426 Binary files /dev/null and b/common/chart/examples/jquery-ui/css/smoothness/images/ui-icons_888888_256x240.png differ diff --git a/common/chart/examples/jquery-ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png b/common/chart/examples/jquery-ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000..2ab019b Binary files /dev/null and b/common/chart/examples/jquery-ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png differ diff --git a/common/chart/examples/jquery-ui/css/smoothness/index.html b/common/chart/examples/jquery-ui/css/smoothness/index.html new file mode 100644 index 0000000..e69de29 diff --git a/common/chart/examples/jquery-ui/css/smoothness/jquery-ui.css b/common/chart/examples/jquery-ui/css/smoothness/jquery-ui.css new file mode 100644 index 0000000..0f1a7e7 --- /dev/null +++ b/common/chart/examples/jquery-ui/css/smoothness/jquery-ui.css @@ -0,0 +1,568 @@ +/* + * jQuery UI CSS Framework 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* + * jQuery UI CSS Framework 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } +.ui-widget-content a { color: #222222; } +.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; } +.ui-widget-header a { color: #222222; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; } +.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* + * jQuery UI Resizable 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizable#theming + */ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; } +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* + * jQuery UI Selectable 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectable#theming + */ +.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } +/* + * jQuery UI Accordion 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Accordion#theming + */ +/* IE/Win - Fix animation bug - #4615 */ +.ui-accordion { width: 100%; } +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } +.ui-accordion .ui-accordion-content-active { display: block; } +/* + * jQuery UI Autocomplete 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete#theming + */ +.ui-autocomplete { position: absolute; cursor: default; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ + +/* + * jQuery UI Menu 1.8.16 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Menu#theming + */ +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; + float: left; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin:0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration:none; + display:block; + padding:.2em .4em; + line-height:1.5; + zoom:1; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} +/* + * jQuery UI Button 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Button#theming + */ +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } +.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } +.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 7px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ +/* + * jQuery UI Dialog 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog#theming + */ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } +.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/* + * jQuery UI Slider 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider#theming + */ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/* + * jQuery UI Tabs 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs#theming + */ +.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/* + * jQuery UI Datepicker 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Datepicker#theming + */ +.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/* + * jQuery UI Progressbar 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar#theming + */ +.ui-progressbar { height:2em; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/common/chart/examples/jquery-ui/css/smoothness/jquery-ui.min.css b/common/chart/examples/jquery-ui/css/smoothness/jquery-ui.min.css new file mode 100644 index 0000000..08821f5 --- /dev/null +++ b/common/chart/examples/jquery-ui/css/smoothness/jquery-ui.min.css @@ -0,0 +1 @@ +.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.ui-helper-clearfix{display:inline-block;}/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}.ui-helper-clearfix{display:block;}/* end clearfix */ .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em;}.ui-widget .ui-widget{font-size:1em;}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222;}.ui-widget-content a{color:#222;}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold;}.ui-widget-header a{color:#222;}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none;}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-hover a,.ui-state-hover a:hover{color:#212121;text-decoration:none;}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none;}.ui-widget :active{outline:none;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636;}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a;}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png);}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png);}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png);}.ui-icon-carat-1-n{background-position:0 0;}.ui-icon-carat-1-ne{background-position:-16px 0;}.ui-icon-carat-1-e{background-position:-32px 0;}.ui-icon-carat-1-se{background-position:-48px 0;}.ui-icon-carat-1-s{background-position:-64px 0;}.ui-icon-carat-1-sw{background-position:-80px 0;}.ui-icon-carat-1-w{background-position:-96px 0;}.ui-icon-carat-1-nw{background-position:-112px 0;}.ui-icon-carat-2-n-s{background-position:-128px 0;}.ui-icon-carat-2-e-w{background-position:-144px 0;}.ui-icon-triangle-1-n{background-position:0 -16px;}.ui-icon-triangle-1-ne{background-position:-16px -16px;}.ui-icon-triangle-1-e{background-position:-32px -16px;}.ui-icon-triangle-1-se{background-position:-48px -16px;}.ui-icon-triangle-1-s{background-position:-64px -16px;}.ui-icon-triangle-1-sw{background-position:-80px -16px;}.ui-icon-triangle-1-w{background-position:-96px -16px;}.ui-icon-triangle-1-nw{background-position:-112px -16px;}.ui-icon-triangle-2-n-s{background-position:-128px -16px;}.ui-icon-triangle-2-e-w{background-position:-144px -16px;}.ui-icon-arrow-1-n{background-position:0 -32px;}.ui-icon-arrow-1-ne{background-position:-16px -32px;}.ui-icon-arrow-1-e{background-position:-32px -32px;}.ui-icon-arrow-1-se{background-position:-48px -32px;}.ui-icon-arrow-1-s{background-position:-64px -32px;}.ui-icon-arrow-1-sw{background-position:-80px -32px;}.ui-icon-arrow-1-w{background-position:-96px -32px;}.ui-icon-arrow-1-nw{background-position:-112px -32px;}.ui-icon-arrow-2-n-s{background-position:-128px -32px;}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}.ui-icon-arrow-2-e-w{background-position:-160px -32px;}.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}.ui-icon-arrowstop-1-n{background-position:-192px -32px;}.ui-icon-arrowstop-1-e{background-position:-208px -32px;}.ui-icon-arrowstop-1-s{background-position:-224px -32px;}.ui-icon-arrowstop-1-w{background-position:-240px -32px;}.ui-icon-arrowthick-1-n{background-position:0 -48px;}.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}.ui-icon-arrowthick-1-e{background-position:-32px -48px;}.ui-icon-arrowthick-1-se{background-position:-48px -48px;}.ui-icon-arrowthick-1-s{background-position:-64px -48px;}.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}.ui-icon-arrowthick-1-w{background-position:-96px -48px;}.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}.ui-icon-arrow-4{background-position:0 -80px;}.ui-icon-arrow-4-diag{background-position:-16px -80px;}.ui-icon-extlink{background-position:-32px -80px;}.ui-icon-newwin{background-position:-48px -80px;}.ui-icon-refresh{background-position:-64px -80px;}.ui-icon-shuffle{background-position:-80px -80px;}.ui-icon-transfer-e-w{background-position:-96px -80px;}.ui-icon-transferthick-e-w{background-position:-112px -80px;}.ui-icon-folder-collapsed{background-position:0 -96px;}.ui-icon-folder-open{background-position:-16px -96px;}.ui-icon-document{background-position:-32px -96px;}.ui-icon-document-b{background-position:-48px -96px;}.ui-icon-note{background-position:-64px -96px;}.ui-icon-mail-closed{background-position:-80px -96px;}.ui-icon-mail-open{background-position:-96px -96px;}.ui-icon-suitcase{background-position:-112px -96px;}.ui-icon-comment{background-position:-128px -96px;}.ui-icon-person{background-position:-144px -96px;}.ui-icon-print{background-position:-160px -96px;}.ui-icon-trash{background-position:-176px -96px;}.ui-icon-locked{background-position:-192px -96px;}.ui-icon-unlocked{background-position:-208px -96px;}.ui-icon-bookmark{background-position:-224px -96px;}.ui-icon-tag{background-position:-240px -96px;}.ui-icon-home{background-position:0 -112px;}.ui-icon-flag{background-position:-16px -112px;}.ui-icon-calendar{background-position:-32px -112px;}.ui-icon-cart{background-position:-48px -112px;}.ui-icon-pencil{background-position:-64px -112px;}.ui-icon-clock{background-position:-80px -112px;}.ui-icon-disk{background-position:-96px -112px;}.ui-icon-calculator{background-position:-112px -112px;}.ui-icon-zoomin{background-position:-128px -112px;}.ui-icon-zoomout{background-position:-144px -112px;}.ui-icon-search{background-position:-160px -112px;}.ui-icon-wrench{background-position:-176px -112px;}.ui-icon-gear{background-position:-192px -112px;}.ui-icon-heart{background-position:-208px -112px;}.ui-icon-star{background-position:-224px -112px;}.ui-icon-link{background-position:-240px -112px;}.ui-icon-cancel{background-position:0 -128px;}.ui-icon-plus{background-position:-16px -128px;}.ui-icon-plusthick{background-position:-32px -128px;}.ui-icon-minus{background-position:-48px -128px;}.ui-icon-minusthick{background-position:-64px -128px;}.ui-icon-close{background-position:-80px -128px;}.ui-icon-closethick{background-position:-96px -128px;}.ui-icon-key{background-position:-112px -128px;}.ui-icon-lightbulb{background-position:-128px -128px;}.ui-icon-scissors{background-position:-144px -128px;}.ui-icon-clipboard{background-position:-160px -128px;}.ui-icon-copy{background-position:-176px -128px;}.ui-icon-contact{background-position:-192px -128px;}.ui-icon-image{background-position:-208px -128px;}.ui-icon-video{background-position:-224px -128px;}.ui-icon-script{background-position:-240px -128px;}.ui-icon-alert{background-position:0 -144px;}.ui-icon-info{background-position:-16px -144px;}.ui-icon-notice{background-position:-32px -144px;}.ui-icon-help{background-position:-48px -144px;}.ui-icon-check{background-position:-64px -144px;}.ui-icon-bullet{background-position:-80px -144px;}.ui-icon-radio-off{background-position:-96px -144px;}.ui-icon-radio-on{background-position:-112px -144px;}.ui-icon-pin-w{background-position:-128px -144px;}.ui-icon-pin-s{background-position:-144px -144px;}.ui-icon-play{background-position:0 -160px;}.ui-icon-pause{background-position:-16px -160px;}.ui-icon-seek-next{background-position:-32px -160px;}.ui-icon-seek-prev{background-position:-48px -160px;}.ui-icon-seek-end{background-position:-64px -160px;}.ui-icon-seek-start{background-position:-80px -160px;}.ui-icon-seek-first{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px;}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}.ui-accordion{width:100%;}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}.ui-accordion .ui-accordion-li-fix{display:inline;}.ui-accordion .ui-accordion-header-active{border-bottom:0!important;}.ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;}.ui-accordion-icons .ui-accordion-header a{padding-left:2.2em;}.ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}.ui-accordion .ui-accordion-content-active{display:block;}.ui-autocomplete{position:absolute;cursor:default;}* html .ui-autocomplete{width:1px;}.ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left;}.ui-menu .ui-menu{margin-top:-3px;}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1;}.ui-menu .ui-menu-item a.ui-state-hover,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.ui-button .ui-button-text{display:block;line-height:1.4;}.ui-button-text-only .ui-button-text{padding:.4em 1em;}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}input.ui-button{padding:.4em 1em;}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}button.ui-button::-moz-focus-inner{border:0;padding:0;}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}.ui-draggable .ui-dialog-titlebar{cursor:move;}.ui-slider{position:relative;text-align:left;}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}.ui-slider-horizontal{height:.8em;}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}.ui-slider-horizontal .ui-slider-range{top:0;height:100%;}.ui-slider-horizontal .ui-slider-range-min{left:0;}.ui-slider-horizontal .ui-slider-range-max{right:0;}.ui-slider-vertical{width:.8em;height:100px;}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}.ui-slider-vertical .ui-slider-range{left:0;width:100%;}.ui-slider-vertical .ui-slider-range-min{bottom:0;}.ui-slider-vertical .ui-slider-range-max{top:0;}.ui-tabs{position:relative;padding:.2em;zoom:1;}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}.ui-tabs .ui-tabs-hide{display:none!important;}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px;}.ui-datepicker .ui-datepicker-prev{left:2px;}.ui-datepicker .ui-datepicker-next{right:2px;}.ui-datepicker .ui-datepicker-prev-hover{left:1px;}.ui-datepicker .ui-datepicker-next-hover{right:1px;}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}.ui-datepicker select.ui-datepicker-month-year{width:100%;}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%;}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}.ui-datepicker td{border:0;padding:1px;}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}.ui-datepicker.ui-datepicker-multi{width:auto;}.ui-datepicker-multi .ui-datepicker-group{float:left;}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}.ui-datepicker-row-break{clear:both;width:100%;font-size:0;}.ui-datepicker-rtl{direction:rtl;}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}.ui-datepicker-rtl .ui-datepicker-group{float:right;}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}.ui-progressbar{height:2em;text-align:left;}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;} \ No newline at end of file diff --git a/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png new file mode 100644 index 0000000..954e22d Binary files /dev/null and b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png differ diff --git a/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png new file mode 100644 index 0000000..64ece57 Binary files /dev/null and b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png differ diff --git a/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png new file mode 100644 index 0000000..abdc010 Binary files /dev/null and b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png differ diff --git a/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png new file mode 100644 index 0000000..9b383f4 Binary files /dev/null and b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png differ diff --git a/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png new file mode 100644 index 0000000..a23baad Binary files /dev/null and b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png differ diff --git a/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 0000000..42ccba2 Binary files /dev/null and b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png differ diff --git a/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png new file mode 100644 index 0000000..39d5824 Binary files /dev/null and b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png differ diff --git a/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png new file mode 100644 index 0000000..f127367 Binary files /dev/null and b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png differ diff --git a/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png new file mode 100644 index 0000000..359397a Binary files /dev/null and b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png differ diff --git a/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png new file mode 100644 index 0000000..a641a37 Binary files /dev/null and b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png differ diff --git a/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png new file mode 100644 index 0000000..85e63e9 Binary files /dev/null and b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png differ diff --git a/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png new file mode 100644 index 0000000..e117eff Binary files /dev/null and b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png differ diff --git a/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png new file mode 100644 index 0000000..42f8f99 Binary files /dev/null and b/common/chart/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png differ diff --git a/common/chart/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.css b/common/chart/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.css new file mode 100644 index 0000000..cd66d53 --- /dev/null +++ b/common/chart/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.css @@ -0,0 +1,612 @@ +/* + * jQuery UI CSS Framework 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } +/* + * jQuery UI Accordion 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Accordion#theming + */ +/* IE/Win - Fix animation bug - #4615 */ +.ui-accordion { width: 100%; } +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-heading { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +.ui-accordion-icons .ui-accordion-heading { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } +.ui-accordion .ui-accordion-content-active { display: block; } +/* + * jQuery UI Autocomplete 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete#theming + */ +.ui-autocomplete { position: absolute; cursor: default; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ +/* + * jQuery UI Button 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Button#theming + */ +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } +.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } +.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 7px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ +/* + * jQuery UI Datepicker 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Datepicker#theming + */ +.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/* + * jQuery UI Dialog 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog#theming + */ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } +.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/* + * jQuery UI Menu 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Menu#theming + */ +.ui-menu { list-style:none; padding: 2px; margin: 0; display:block; outline: none; } +.ui-menu .ui-menu { margin-top: -3px; position: absolute; } +.ui-menu .ui-menu-item { margin: 0; padding: 0; zoom: 1; width: 100%; } +.ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; zoom: 1; font-weight: normal; } +.ui-menu .ui-menu-item a.ui-state-focus, +.ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; } + +.ui-menu li.ui-state-disabled { font-weight: normal; padding: .0em .4em; margin: .4em 0 .2em; line-height: 1.5; } + +/* icon support */ +.ui-menu-icons { position: relative; } +.ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; } + +/* left-aligned */ +.ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; } + +/* right-aligned */ +.ui-menu .ui-menu-icon { position: static; float: right; } +/* + * jQuery UI Menubar 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + */ +.ui-menubar { list-style: none; margin: 0; padding-left: 0; } + +.ui-menubar-item { float: left; } + +.ui-menubar .ui-button { float: left; font-weight: normal; border-top-width: 0 !important; border-bottom-width: 0 !important; margin: 0; outline: none; } +.ui-menubar .ui-menubar-link { border-right: 1px dashed transparent; border-left: 1px dashed transparent; } + +.ui-menubar .ui-menu { width: 200px; position: absolute; z-index: 9999; } +/* + * jQuery UI Progressbar 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar#theming + */ +.ui-progressbar { height:2em; text-align: left; overflow: hidden; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/* + * jQuery UI Resizable 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizable#theming + */ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; } +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* + * jQuery UI Selectable 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectable#theming + */ +.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } +/* + * jQuery UI Slider 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider#theming + */ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/* + * jQuery UI Spinner 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Spinner#theming + */ +.ui-spinner { position:relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; } +.ui-spinner-input { border: none; background: none; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; } +.ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; z-index: 100; text-align: center; vertical-align: middle; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; } +.ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* more specificity required here to overide default borders */ +.ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } /* vertical centre icon */ +.ui-spinner-up { top: 0; } +.ui-spinner-down { bottom: 0; } + +/* TR overrides */ +span.ui-spinner { background: none; } +.ui-spinner .ui-icon-triangle-1-s { + /* need to fix icons sprite */ + background-position:-65px -16px; +} +/* + * jQuery UI Tabs 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs#theming + */ +.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } +.ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; } +.ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } +/* + * jQuery UI Tooltip 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tooltip#theming + */ +.ui-tooltip { + padding:8px; + position:absolute; + z-index:9999; + -o-box-shadow: 0 0 5px #aaa; + -moz-box-shadow: 0 0 5px #aaa; + -webkit-box-shadow: 0 0 5px #aaa; + box-shadow: 0 0 5px #aaa; +} +/* Fades and background-images don't work well together in IE6, drop the image */ +* html .ui-tooltip { + background-image: none; +} +body .ui-tooltip { border-width:2px; } +/* + * jQuery UI CSS Framework 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/ + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; } +.ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; } +.ui-widget-content a { color: #222222/*{fcContent}*/; } +.ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; } +.ui-widget-header a { color: #222222/*{fcHeader}*/; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; } +.ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-on { background-position: -96px -144px; } +.ui-icon-radio-off { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; -khtml-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; } +.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; -khtml-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; } +.ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -khtml-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; } \ No newline at end of file diff --git a/common/chart/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.min.css b/common/chart/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.min.css new file mode 100644 index 0000000..56a9be1 --- /dev/null +++ b/common/chart/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.min.css @@ -0,0 +1,10 @@ +/* + * jQuery UI CSS Framework 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ +.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.ui-helper-clearfix{display:inline-block;}/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}.ui-helper-clearfix{display:block;}/* end clearfix */ .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-accordion{width:100%;}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}.ui-accordion .ui-accordion-header-active{border-bottom:0!important;}.ui-accordion .ui-accordion-heading{display:block;font-size:1em;padding:.5em .5em .5em .7em;}.ui-accordion-icons .ui-accordion-heading{padding-left:2.2em;}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}.ui-accordion .ui-accordion-content-active{display:block;}.ui-autocomplete{position:absolute;cursor:default;}* html .ui-autocomplete{width:1px;}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.ui-button .ui-button-text{display:block;line-height:1.4;}.ui-button-text-only .ui-button-text{padding:.4em 1em;}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}input.ui-button{padding:.4em 1em;}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}button.ui-button::-moz-focus-inner{border:0;padding:0;}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px;}.ui-datepicker .ui-datepicker-prev{left:2px;}.ui-datepicker .ui-datepicker-next{right:2px;}.ui-datepicker .ui-datepicker-prev-hover{left:1px;}.ui-datepicker .ui-datepicker-next-hover{right:1px;}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}.ui-datepicker select.ui-datepicker-month-year{width:100%;}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%;}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}.ui-datepicker td{border:0;padding:1px;}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}.ui-datepicker.ui-datepicker-multi{width:auto;}.ui-datepicker-multi .ui-datepicker-group{float:left;}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}.ui-datepicker-row-break{clear:both;width:100%;font-size:0;}.ui-datepicker-rtl{direction:rtl;}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}.ui-datepicker-rtl .ui-datepicker-group{float:right;}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}.ui-draggable .ui-dialog-titlebar{cursor:move;}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none;}.ui-menu .ui-menu{margin-top:-3px;position:absolute;}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;width:100%;}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;zoom:1;font-weight:normal;}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}.ui-menu li.ui-state-disabled{font-weight:normal;padding:.0em .4em;margin:.4em 0 .2em;line-height:1.5;}.ui-menu-icons{position:relative;}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em;}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em;}.ui-menu .ui-menu-icon{position:static;float:right;}.ui-menubar{list-style:none;margin:0;padding-left:0;}.ui-menubar-item{float:left;}.ui-menubar .ui-button{float:left;font-weight:normal;border-top-width:0!important;border-bottom-width:0!important;margin:0;outline:none;}.ui-menubar .ui-menubar-link{border-right:1px dashed transparent;border-left:1px dashed transparent;}.ui-menubar .ui-menu{width:200px;position:absolute;z-index:9999;}.ui-progressbar{height:2em;text-align:left;overflow:hidden;}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}.ui-slider{position:relative;text-align:left;}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}.ui-slider-horizontal{height:.8em;}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}.ui-slider-horizontal .ui-slider-range{top:0;height:100%;}.ui-slider-horizontal .ui-slider-range-min{left:0;}.ui-slider-horizontal .ui-slider-range-max{right:0;}.ui-slider-vertical{width:.8em;height:100px;}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}.ui-slider-vertical .ui-slider-range{left:0;width:100%;}.ui-slider-vertical .ui-slider-range-min{bottom:0;}.ui-slider-vertical .ui-slider-range-max{top:0;}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle;}.ui-spinner-input{border:none;background:none;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px;}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;z-index:100;text-align:center;vertical-align:middle;position:absolute;cursor:default;display:block;overflow:hidden;right:0;}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none;}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0;}.ui-spinner-up{top:0;}.ui-spinner-down{bottom:0;}span.ui-spinner{background:none;}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px;}.ui-tabs{position:relative;padding:.2em;zoom:1;}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom:0!important;padding:0;white-space:nowrap;}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px;}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text;}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}.ui-tooltip{padding:8px;position:absolute;z-index:9999;-o-box-shadow:0 0 5px #aaa;-moz-box-shadow:0 0 5px #aaa;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa;}* html .ui-tooltip{background-image:none;}body .ui-tooltip{border-width:2px;}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em;}.ui-widget .ui-widget{font-size:1em;}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222;}.ui-widget-content a{color:#222;}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold;}.ui-widget-header a{color:#222;}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none;}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-hover a,.ui-state-hover a:hover{color:#212121;text-decoration:none;}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none;}.ui-widget :active{outline:none;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636;}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a;}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png);}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png);}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png);}.ui-icon-carat-1-n{background-position:0 0;}.ui-icon-carat-1-ne{background-position:-16px 0;}.ui-icon-carat-1-e{background-position:-32px 0;}.ui-icon-carat-1-se{background-position:-48px 0;}.ui-icon-carat-1-s{background-position:-64px 0;}.ui-icon-carat-1-sw{background-position:-80px 0;}.ui-icon-carat-1-w{background-position:-96px 0;}.ui-icon-carat-1-nw{background-position:-112px 0;}.ui-icon-carat-2-n-s{background-position:-128px 0;}.ui-icon-carat-2-e-w{background-position:-144px 0;}.ui-icon-triangle-1-n{background-position:0 -16px;}.ui-icon-triangle-1-ne{background-position:-16px -16px;}.ui-icon-triangle-1-e{background-position:-32px -16px;}.ui-icon-triangle-1-se{background-position:-48px -16px;}.ui-icon-triangle-1-s{background-position:-64px -16px;}.ui-icon-triangle-1-sw{background-position:-80px -16px;}.ui-icon-triangle-1-w{background-position:-96px -16px;}.ui-icon-triangle-1-nw{background-position:-112px -16px;}.ui-icon-triangle-2-n-s{background-position:-128px -16px;}.ui-icon-triangle-2-e-w{background-position:-144px -16px;}.ui-icon-arrow-1-n{background-position:0 -32px;}.ui-icon-arrow-1-ne{background-position:-16px -32px;}.ui-icon-arrow-1-e{background-position:-32px -32px;}.ui-icon-arrow-1-se{background-position:-48px -32px;}.ui-icon-arrow-1-s{background-position:-64px -32px;}.ui-icon-arrow-1-sw{background-position:-80px -32px;}.ui-icon-arrow-1-w{background-position:-96px -32px;}.ui-icon-arrow-1-nw{background-position:-112px -32px;}.ui-icon-arrow-2-n-s{background-position:-128px -32px;}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}.ui-icon-arrow-2-e-w{background-position:-160px -32px;}.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}.ui-icon-arrowstop-1-n{background-position:-192px -32px;}.ui-icon-arrowstop-1-e{background-position:-208px -32px;}.ui-icon-arrowstop-1-s{background-position:-224px -32px;}.ui-icon-arrowstop-1-w{background-position:-240px -32px;}.ui-icon-arrowthick-1-n{background-position:0 -48px;}.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}.ui-icon-arrowthick-1-e{background-position:-32px -48px;}.ui-icon-arrowthick-1-se{background-position:-48px -48px;}.ui-icon-arrowthick-1-s{background-position:-64px -48px;}.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}.ui-icon-arrowthick-1-w{background-position:-96px -48px;}.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}.ui-icon-arrow-4{background-position:0 -80px;}.ui-icon-arrow-4-diag{background-position:-16px -80px;}.ui-icon-extlink{background-position:-32px -80px;}.ui-icon-newwin{background-position:-48px -80px;}.ui-icon-refresh{background-position:-64px -80px;}.ui-icon-shuffle{background-position:-80px -80px;}.ui-icon-transfer-e-w{background-position:-96px -80px;}.ui-icon-transferthick-e-w{background-position:-112px -80px;}.ui-icon-folder-collapsed{background-position:0 -96px;}.ui-icon-folder-open{background-position:-16px -96px;}.ui-icon-document{background-position:-32px -96px;}.ui-icon-document-b{background-position:-48px -96px;}.ui-icon-note{background-position:-64px -96px;}.ui-icon-mail-closed{background-position:-80px -96px;}.ui-icon-mail-open{background-position:-96px -96px;}.ui-icon-suitcase{background-position:-112px -96px;}.ui-icon-comment{background-position:-128px -96px;}.ui-icon-person{background-position:-144px -96px;}.ui-icon-print{background-position:-160px -96px;}.ui-icon-trash{background-position:-176px -96px;}.ui-icon-locked{background-position:-192px -96px;}.ui-icon-unlocked{background-position:-208px -96px;}.ui-icon-bookmark{background-position:-224px -96px;}.ui-icon-tag{background-position:-240px -96px;}.ui-icon-home{background-position:0 -112px;}.ui-icon-flag{background-position:-16px -112px;}.ui-icon-calendar{background-position:-32px -112px;}.ui-icon-cart{background-position:-48px -112px;}.ui-icon-pencil{background-position:-64px -112px;}.ui-icon-clock{background-position:-80px -112px;}.ui-icon-disk{background-position:-96px -112px;}.ui-icon-calculator{background-position:-112px -112px;}.ui-icon-zoomin{background-position:-128px -112px;}.ui-icon-zoomout{background-position:-144px -112px;}.ui-icon-search{background-position:-160px -112px;}.ui-icon-wrench{background-position:-176px -112px;}.ui-icon-gear{background-position:-192px -112px;}.ui-icon-heart{background-position:-208px -112px;}.ui-icon-star{background-position:-224px -112px;}.ui-icon-link{background-position:-240px -112px;}.ui-icon-cancel{background-position:0 -128px;}.ui-icon-plus{background-position:-16px -128px;}.ui-icon-plusthick{background-position:-32px -128px;}.ui-icon-minus{background-position:-48px -128px;}.ui-icon-minusthick{background-position:-64px -128px;}.ui-icon-close{background-position:-80px -128px;}.ui-icon-closethick{background-position:-96px -128px;}.ui-icon-key{background-position:-112px -128px;}.ui-icon-lightbulb{background-position:-128px -128px;}.ui-icon-scissors{background-position:-144px -128px;}.ui-icon-clipboard{background-position:-160px -128px;}.ui-icon-copy{background-position:-176px -128px;}.ui-icon-contact{background-position:-192px -128px;}.ui-icon-image{background-position:-208px -128px;}.ui-icon-video{background-position:-224px -128px;}.ui-icon-script{background-position:-240px -128px;}.ui-icon-alert{background-position:0 -144px;}.ui-icon-info{background-position:-16px -144px;}.ui-icon-notice{background-position:-32px -144px;}.ui-icon-help{background-position:-48px -144px;}.ui-icon-check{background-position:-64px -144px;}.ui-icon-bullet{background-position:-80px -144px;}.ui-icon-radio-on{background-position:-96px -144px;}.ui-icon-radio-off{background-position:-112px -144px;}.ui-icon-pin-w{background-position:-128px -144px;}.ui-icon-pin-s{background-position:-144px -144px;}.ui-icon-play{background-position:0 -160px;}.ui-icon-pause{background-position:-16px -160px;}.ui-icon-seek-next{background-position:-32px -160px;}.ui-icon-seek-prev{background-position:-48px -160px;}.ui-icon-seek-end{background-position:-64px -160px;}.ui-icon-seek-start{background-position:-80px -160px;}.ui-icon-seek-first{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px;}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;} \ No newline at end of file diff --git a/common/chart/examples/jquery-ui/css/ui-lightness/jquery-ui.css b/common/chart/examples/jquery-ui/css/ui-lightness/jquery-ui.css new file mode 100644 index 0000000..5547c7b --- /dev/null +++ b/common/chart/examples/jquery-ui/css/ui-lightness/jquery-ui.css @@ -0,0 +1,568 @@ +/* + * jQuery UI CSS Framework 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* + * jQuery UI CSS Framework 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; } +.ui-widget-content a { color: #333333; } +.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } +.ui-widget-header a { color: #ffffff; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; } +.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; } +.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } + +/* Overlays */ +.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); } +.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/* + * jQuery UI Resizable 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizable#theming + */ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; } +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* + * jQuery UI Selectable 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectable#theming + */ +.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } +/* + * jQuery UI Accordion 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Accordion#theming + */ +/* IE/Win - Fix animation bug - #4615 */ +.ui-accordion { width: 100%; } +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } +.ui-accordion .ui-accordion-content-active { display: block; } +/* + * jQuery UI Autocomplete 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete#theming + */ +.ui-autocomplete { position: absolute; cursor: default; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ + +/* + * jQuery UI Menu 1.8.16 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Menu#theming + */ +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; + float: left; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin:0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration:none; + display:block; + padding:.2em .4em; + line-height:1.5; + zoom:1; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} +/* + * jQuery UI Button 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Button#theming + */ +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } +.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } +.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 7px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ +/* + * jQuery UI Dialog 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog#theming + */ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } +.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/* + * jQuery UI Slider 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider#theming + */ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/* + * jQuery UI Tabs 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs#theming + */ +.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/* + * jQuery UI Datepicker 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Datepicker#theming + */ +.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/* + * jQuery UI Progressbar 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar#theming + */ +.ui-progressbar { height:2em; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/common/chart/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css b/common/chart/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css new file mode 100644 index 0000000..78f7d3d --- /dev/null +++ b/common/chart/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css @@ -0,0 +1 @@ +.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.ui-helper-clearfix{display:inline-block;}/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}.ui-helper-clearfix{display:block;}/* end clearfix */ .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em;}.ui-widget .ui-widget{font-size:1em;}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em;}.ui-widget-content{border:1px solid #ddd;background:#eee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x;color:#333;}.ui-widget-content a{color:#333;}.ui-widget-header{border:1px solid #e78f08;background:#f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x;color:#fff;font-weight:bold;}.ui-widget-header a{color:#fff;}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#1c94c4;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#1c94c4;text-decoration:none;}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #fbcb09;background:#fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#c77405;}.ui-state-hover a,.ui-state-hover a:hover{color:#c77405;text-decoration:none;}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #fbd850;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#eb8f00;}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#eb8f00;text-decoration:none;}.ui-widget :active{outline:none;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fed22f;background:#ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x;color:#363636;}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat;color:#fff;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff;}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}.ui-state-default .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png);}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png);}.ui-state-active .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png);}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_228ef1_256x240.png);}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_ffd27a_256x240.png);}.ui-icon-carat-1-n{background-position:0 0;}.ui-icon-carat-1-ne{background-position:-16px 0;}.ui-icon-carat-1-e{background-position:-32px 0;}.ui-icon-carat-1-se{background-position:-48px 0;}.ui-icon-carat-1-s{background-position:-64px 0;}.ui-icon-carat-1-sw{background-position:-80px 0;}.ui-icon-carat-1-w{background-position:-96px 0;}.ui-icon-carat-1-nw{background-position:-112px 0;}.ui-icon-carat-2-n-s{background-position:-128px 0;}.ui-icon-carat-2-e-w{background-position:-144px 0;}.ui-icon-triangle-1-n{background-position:0 -16px;}.ui-icon-triangle-1-ne{background-position:-16px -16px;}.ui-icon-triangle-1-e{background-position:-32px -16px;}.ui-icon-triangle-1-se{background-position:-48px -16px;}.ui-icon-triangle-1-s{background-position:-64px -16px;}.ui-icon-triangle-1-sw{background-position:-80px -16px;}.ui-icon-triangle-1-w{background-position:-96px -16px;}.ui-icon-triangle-1-nw{background-position:-112px -16px;}.ui-icon-triangle-2-n-s{background-position:-128px -16px;}.ui-icon-triangle-2-e-w{background-position:-144px -16px;}.ui-icon-arrow-1-n{background-position:0 -32px;}.ui-icon-arrow-1-ne{background-position:-16px -32px;}.ui-icon-arrow-1-e{background-position:-32px -32px;}.ui-icon-arrow-1-se{background-position:-48px -32px;}.ui-icon-arrow-1-s{background-position:-64px -32px;}.ui-icon-arrow-1-sw{background-position:-80px -32px;}.ui-icon-arrow-1-w{background-position:-96px -32px;}.ui-icon-arrow-1-nw{background-position:-112px -32px;}.ui-icon-arrow-2-n-s{background-position:-128px -32px;}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}.ui-icon-arrow-2-e-w{background-position:-160px -32px;}.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}.ui-icon-arrowstop-1-n{background-position:-192px -32px;}.ui-icon-arrowstop-1-e{background-position:-208px -32px;}.ui-icon-arrowstop-1-s{background-position:-224px -32px;}.ui-icon-arrowstop-1-w{background-position:-240px -32px;}.ui-icon-arrowthick-1-n{background-position:0 -48px;}.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}.ui-icon-arrowthick-1-e{background-position:-32px -48px;}.ui-icon-arrowthick-1-se{background-position:-48px -48px;}.ui-icon-arrowthick-1-s{background-position:-64px -48px;}.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}.ui-icon-arrowthick-1-w{background-position:-96px -48px;}.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}.ui-icon-arrow-4{background-position:0 -80px;}.ui-icon-arrow-4-diag{background-position:-16px -80px;}.ui-icon-extlink{background-position:-32px -80px;}.ui-icon-newwin{background-position:-48px -80px;}.ui-icon-refresh{background-position:-64px -80px;}.ui-icon-shuffle{background-position:-80px -80px;}.ui-icon-transfer-e-w{background-position:-96px -80px;}.ui-icon-transferthick-e-w{background-position:-112px -80px;}.ui-icon-folder-collapsed{background-position:0 -96px;}.ui-icon-folder-open{background-position:-16px -96px;}.ui-icon-document{background-position:-32px -96px;}.ui-icon-document-b{background-position:-48px -96px;}.ui-icon-note{background-position:-64px -96px;}.ui-icon-mail-closed{background-position:-80px -96px;}.ui-icon-mail-open{background-position:-96px -96px;}.ui-icon-suitcase{background-position:-112px -96px;}.ui-icon-comment{background-position:-128px -96px;}.ui-icon-person{background-position:-144px -96px;}.ui-icon-print{background-position:-160px -96px;}.ui-icon-trash{background-position:-176px -96px;}.ui-icon-locked{background-position:-192px -96px;}.ui-icon-unlocked{background-position:-208px -96px;}.ui-icon-bookmark{background-position:-224px -96px;}.ui-icon-tag{background-position:-240px -96px;}.ui-icon-home{background-position:0 -112px;}.ui-icon-flag{background-position:-16px -112px;}.ui-icon-calendar{background-position:-32px -112px;}.ui-icon-cart{background-position:-48px -112px;}.ui-icon-pencil{background-position:-64px -112px;}.ui-icon-clock{background-position:-80px -112px;}.ui-icon-disk{background-position:-96px -112px;}.ui-icon-calculator{background-position:-112px -112px;}.ui-icon-zoomin{background-position:-128px -112px;}.ui-icon-zoomout{background-position:-144px -112px;}.ui-icon-search{background-position:-160px -112px;}.ui-icon-wrench{background-position:-176px -112px;}.ui-icon-gear{background-position:-192px -112px;}.ui-icon-heart{background-position:-208px -112px;}.ui-icon-star{background-position:-224px -112px;}.ui-icon-link{background-position:-240px -112px;}.ui-icon-cancel{background-position:0 -128px;}.ui-icon-plus{background-position:-16px -128px;}.ui-icon-plusthick{background-position:-32px -128px;}.ui-icon-minus{background-position:-48px -128px;}.ui-icon-minusthick{background-position:-64px -128px;}.ui-icon-close{background-position:-80px -128px;}.ui-icon-closethick{background-position:-96px -128px;}.ui-icon-key{background-position:-112px -128px;}.ui-icon-lightbulb{background-position:-128px -128px;}.ui-icon-scissors{background-position:-144px -128px;}.ui-icon-clipboard{background-position:-160px -128px;}.ui-icon-copy{background-position:-176px -128px;}.ui-icon-contact{background-position:-192px -128px;}.ui-icon-image{background-position:-208px -128px;}.ui-icon-video{background-position:-224px -128px;}.ui-icon-script{background-position:-240px -128px;}.ui-icon-alert{background-position:0 -144px;}.ui-icon-info{background-position:-16px -144px;}.ui-icon-notice{background-position:-32px -144px;}.ui-icon-help{background-position:-48px -144px;}.ui-icon-check{background-position:-64px -144px;}.ui-icon-bullet{background-position:-80px -144px;}.ui-icon-radio-off{background-position:-96px -144px;}.ui-icon-radio-on{background-position:-112px -144px;}.ui-icon-pin-w{background-position:-128px -144px;}.ui-icon-pin-s{background-position:-144px -144px;}.ui-icon-play{background-position:0 -160px;}.ui-icon-pause{background-position:-16px -160px;}.ui-icon-seek-next{background-position:-32px -160px;}.ui-icon-seek-prev{background-position:-48px -160px;}.ui-icon-seek-end{background-position:-64px -160px;}.ui-icon-seek-start{background-position:-80px -160px;}.ui-icon-seek-first{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px;}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}.ui-widget-overlay{background:#666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat;opacity:.50;filter:Alpha(Opacity=50);}.ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x;opacity:.20;filter:Alpha(Opacity=20);-moz-border-radius:5px;-khtml-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}.ui-accordion{width:100%;}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}.ui-accordion .ui-accordion-li-fix{display:inline;}.ui-accordion .ui-accordion-header-active{border-bottom:0!important;}.ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;}.ui-accordion-icons .ui-accordion-header a{padding-left:2.2em;}.ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}.ui-accordion .ui-accordion-content-active{display:block;}.ui-autocomplete{position:absolute;cursor:default;}* html .ui-autocomplete{width:1px;}.ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left;}.ui-menu .ui-menu{margin-top:-3px;}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1;}.ui-menu .ui-menu-item a.ui-state-hover,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.ui-button .ui-button-text{display:block;line-height:1.4;}.ui-button-text-only .ui-button-text{padding:.4em 1em;}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}input.ui-button{padding:.4em 1em;}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}button.ui-button::-moz-focus-inner{border:0;padding:0;}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}.ui-draggable .ui-dialog-titlebar{cursor:move;}.ui-slider{position:relative;text-align:left;}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}.ui-slider-horizontal{height:.8em;}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}.ui-slider-horizontal .ui-slider-range{top:0;height:100%;}.ui-slider-horizontal .ui-slider-range-min{left:0;}.ui-slider-horizontal .ui-slider-range-max{right:0;}.ui-slider-vertical{width:.8em;height:100px;}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}.ui-slider-vertical .ui-slider-range{left:0;width:100%;}.ui-slider-vertical .ui-slider-range-min{bottom:0;}.ui-slider-vertical .ui-slider-range-max{top:0;}.ui-tabs{position:relative;padding:.2em;zoom:1;}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}.ui-tabs .ui-tabs-hide{display:none!important;}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px;}.ui-datepicker .ui-datepicker-prev{left:2px;}.ui-datepicker .ui-datepicker-next{right:2px;}.ui-datepicker .ui-datepicker-prev-hover{left:1px;}.ui-datepicker .ui-datepicker-next-hover{right:1px;}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}.ui-datepicker select.ui-datepicker-month-year{width:100%;}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%;}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}.ui-datepicker td{border:0;padding:1px;}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}.ui-datepicker.ui-datepicker-multi{width:auto;}.ui-datepicker-multi .ui-datepicker-group{float:left;}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}.ui-datepicker-row-break{clear:both;width:100%;font-size:0;}.ui-datepicker-rtl{direction:rtl;}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}.ui-datepicker-rtl .ui-datepicker-group{float:right;}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}.ui-progressbar{height:2em;text-align:left;}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;} \ No newline at end of file diff --git a/common/chart/examples/jquery-ui/index.html b/common/chart/examples/jquery-ui/index.html new file mode 100644 index 0000000..e69de29 diff --git a/common/chart/examples/jquery-ui/js/index.html b/common/chart/examples/jquery-ui/js/index.html new file mode 100644 index 0000000..e69de29 diff --git a/common/chart/examples/jquery-ui/js/jquery-ui.min.js b/common/chart/examples/jquery-ui/js/jquery-ui.min.js new file mode 100644 index 0000000..14c9064 --- /dev/null +++ b/common/chart/examples/jquery-ui/js/jquery-ui.min.js @@ -0,0 +1,791 @@ +/*! + * jQuery UI 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.16", +keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({propAttr:c.fn.prop||c.fn.attr,_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d= +this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this, +"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart": +"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight, +outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a, +"tabindex"),d=isNaN(b);return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&& +a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted= +false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +;/* + * jQuery UI Position 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Position + */ +(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY, +left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+= +k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-= +m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left= +d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+= +a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b), +g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery); +;/* + * jQuery UI Draggable 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== +"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= +this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;if(b.iframeFix)d(b.iframeFix===true?"iframe":b.iframeFix).each(function(){d('
').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")});return true},_mouseStart:function(a){var b=this.options; +this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}); +this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);d.ui.ddmanager&&d.ui.ddmanager.dragStart(this,a);return true}, +_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b= +false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration, +10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},_mouseUp:function(a){this.options.iframeFix===true&&d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});d.ui.ddmanager&&d.ui.ddmanager.dragStop(this,a);return d.ui.mouse.prototype._mouseUp.call(this,a)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle|| +!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone().removeAttr("id"):this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&& +a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent= +this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"), +10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"), +10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[a.containment=="document"?0:d(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,a.containment=="document"?0:d(window).scrollTop()-this.offset.relative.top-this.offset.parent.top, +(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){a=d(a.containment);var b=a[0];if(b){a.offset();var c=d(b).css("overflow")!= +"hidden";this.containment=[(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0),(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0),(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"), +10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=a}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+ +this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&& +!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,h=a.pageY;if(this.originalPosition){var g;if(this.containment){if(this.relative_container){g=this.relative_container.offset();g=[this.containment[0]+g.left,this.containment[1]+g.top,this.containment[2]+g.left,this.containment[3]+g.top]}else g=this.containment;if(a.pageX-this.offset.click.leftg[2])e=g[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>g[3])h=g[3]+this.offset.click.top}if(b.grid){h=b.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/b.grid[1])*b.grid[1]:this.originalPageY;h=g?!(h-this.offset.click.topg[3])?h:!(h-this.offset.click.topg[2])?e:!(e-this.offset.click.left=0;i--){var j=c.snapElements[i].left,l=j+c.snapElements[i].width,k=c.snapElements[i].top,m=k+c.snapElements[i].height;if(j-e=j&&f<=l||h>=j&&h<=l||fl)&&(e>= +i&&e<=k||g>=i&&g<=k||ek);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), +top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= +this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", +nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== +String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,l);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); +this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){if(!a.disabled){e(this).removeClass("ui-resizable-autohide");b._handles.show()}},function(){if(!a.disabled)if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy(); +var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a= +false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"}); +this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff= +{width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis]; +if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false}, +_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f, +{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateVirtualBoundaries:function(b){var a=this.options,c,d,f;a={minWidth:k(a.minWidth)?a.minWidth:0,maxWidth:k(a.maxWidth)?a.maxWidth:Infinity,minHeight:k(a.minHeight)?a.minHeight:0,maxHeight:k(a.maxHeight)?a.maxHeight: +Infinity};if(this._aspectRatio||b){b=a.minHeight*this.aspectRatio;d=a.minWidth/this.aspectRatio;c=a.maxHeight*this.aspectRatio;f=a.maxWidth/this.aspectRatio;if(b>a.minWidth)a.minWidth=b;if(d>a.minHeight)a.minHeight=d;if(cb.width,h=k(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,l=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&l)b.left=i-a.minWidth;if(d&&l)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left= +null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+ +a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+ +c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]); +b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.16"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(), +10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top- +f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var l=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:l.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(l.css("position"))){c._revertToRelativePosition=true;l.css({position:"absolute",top:"auto",left:"auto"})}l.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType? +e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a= +e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing, +step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement= +e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset; +var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left: +a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top- +d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition, +f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25, +display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b= +e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height= +d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},k=function(b){return!isNaN(parseInt(b,10))}})(jQuery); +;/* + * jQuery UI Selectable 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), +selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("
")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, +c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting", +c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d= +this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var a=this.options;this.containerCache={};this.element.addClass("ui-sortable"); +this.refresh();this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a=== +"disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&& +!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top, +left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]}; +this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!= +document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a); +return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0], +e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset(); +c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"): +this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null, +dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")}, +toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+jg&&b+la[this.floating?"width":"height"]?j:g0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith(); +if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), +this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h=0;b--){var c=this.items[b];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b= +this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f= +d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")|| +0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out", +a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h- +f)this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g- +this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this, +this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop", +a,this._uiHash());for(e=0;e li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"); +a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); +if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion", +function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a= +this.options;if(a.icons){c("").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"); +this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons(); +b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target); +a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+ +c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options; +if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); +if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(), +e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight|| +e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false", +"aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.16", +animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/); +f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide", +paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery); +;/* + * jQuery UI Autocomplete 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.position.js + */ +(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.propAttr("readOnly"))){g= +false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!= +a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)}; +this.menu=d("
    ").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&& +a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"); +d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&& +b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source= +this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length").data("item.autocomplete",b).append(d("").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, +"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery); +(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", +-1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.scrollTop(),c=this.element.height();if(b<0)this.element.scrollTop(g+b);else b>=c&&this.element.scrollTop(g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id"); +this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b, +this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| +this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| +this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(a.empty()).text(),e=this.options.icons,f=e.primary&&e.secondary,d=[];if(e.primary||e.secondary){if(this.options.text)d.push("ui-button-text-icon"+(f?"s":e.primary?"-primary":"-secondary"));e.primary&&a.prepend("");e.secondary&&a.append("");if(!this.options.text){d.push(f?"ui-button-icons-only": +"ui-button-icon-only");this.hasTitle||a.attr("title",c)}}else d.push("ui-button-text-only");a.addClass(d.join(" "))}}});b.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(a,c){a==="disabled"&&this.buttons.button("option",a,c);b.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var a=this.element.css("direction")=== +"ltr";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(a?"ui-corner-left":"ui-corner-right").end().filter(":last").addClass(a?"ui-corner-right":"ui-corner-left").end().end()},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"); +b.Widget.prototype.destroy.call(this)}})})(jQuery); +;/* + * jQuery UI Dialog 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.button.js + * jquery.ui.draggable.js + * jquery.ui.mouse.js + * jquery.ui.position.js + * jquery.ui.resizable.js + */ +(function(c,l){var m={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},n={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},o=c.attrFn||{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true,click:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false, +position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("
    ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+ +b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&!i.isDefaultPrevented()&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("
    ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), +h=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").addClass("ui-dialog-title").attr("id", +e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); +a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!== +b.uiDialog[0]){e=c(this).css("z-index");isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()};c.ui.dialog.maxZ+=1; +d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target=== +f[0]&&e.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("
    ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("
    ").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a, +function(){return!(d=true)});if(d){c.each(a,function(f,h){h=c.isFunction(h)?{click:h,text:f}:h;var i=c('').click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.each(h,function(j,k){if(j!=="click")j in o?i[j](k):i.attr(j,k)});c.fn.button&&i.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close", +handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition, +originalSize:f.originalSize,position:f.position,size:f.size}}a=a===l?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize", +f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "): +[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f); +if(g in m)e=true;if(g in n)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"): +e.removeClass("ui-dialog-disabled");break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||" "));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a= +this.options,b,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height- +b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.16",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "), +create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&& +c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(b.range==="min"||b.range==="max"?" ui-slider-range-"+b.range:""))}for(var j=c.length;j"); +this.handles=c.add(d(e.join("")).appendTo(a.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){b.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(b.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle", +g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!a.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!a._keySliding){a._keySliding=true;d(this).addClass("ui-state-active");i=a._start(g,l);if(i===false)return}break}m=a.options.step;i=a.options.values&&a.options.values.length? +(h=a.values(l)):(h=a.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=a._valueMin();break;case d.ui.keyCode.END:h=a._valueMax();break;case d.ui.keyCode.PAGE_UP:h=a._trimAlignValue(i+(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=a._trimAlignValue(i-(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===a._valueMax())return;h=a._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===a._valueMin())return;h=a._trimAlignValue(i- +m);break}a._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(a._keySliding){a._keySliding=false;a._stop(g,k);a._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy(); +return this},_mouseCapture:function(a){var b=this.options,c,f,e,j,g;if(b.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:a.pageX,y:a.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(b.range===true&&this.values(1)===b.min){g+=1;e=d(this.handles[g])}if(this._start(a,g)===false)return false; +this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();b=e.offset();this._clickOffset=!d(a.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:a.pageX-b.left-e.width()/2,top:a.pageY-b.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(a,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(a){var b= +this._normValueFromMouse({x:a.pageX,y:a.pageY});this._slide(a,this._handleIndex,b);return false},_mouseStop:function(a){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(a,this._handleIndex);this._change(a,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b;if(this.orientation==="horizontal"){b= +this.elementSize.width;a=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{b=this.elementSize.height;a=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}b=a/b;if(b>1)b=1;if(b<0)b=0;if(this.orientation==="vertical")b=1-b;a=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+b*a)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b); +c.values=this.values()}return this._trigger("start",a,c)},_slide:function(a,b,c){var f;if(this.options.values&&this.options.values.length){f=this.values(b?0:1);if(this.options.values.length===2&&this.options.range===true&&(b===0&&c>f||b===1&&c1){this.options.values[a]=this._trimAlignValue(b);this._refreshValue();this._change(null,a)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b;a=a-c;if(Math.abs(c)*2>=b)a+=c>0?b:-b;return parseFloat(a.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var a= +this.options.range,b=this.options,c=this,f=!this._animateOff?b.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,b.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({width:e- +g+"%"},{queue:false,duration:b.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:b.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,b.animate);if(a==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[f?"animate":"css"]({width:e+"%"}, +b.animate);if(a==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:b.animate});if(a==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},b.animate);if(a==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:b.animate})}}});d.extend(d.ui.slider,{version:"1.8.16"})})(jQuery); +;/* + * jQuery UI Tabs 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
    ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
  • #{label}
  • "},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&& +e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b= +d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| +(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); +this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= +this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); +if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); +this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+ +g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", +function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")}; +this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected= +-1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; +d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e= +d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b, +e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]); +j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove(); +if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null, +this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this}, +load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c, +"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, +url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.16"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k'))}function N(a){return a.bind("mouseout", +function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");b.length&&b.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");if(!(d.datepicker._isDisabledDatepicker(J.inline?a.parent()[0]:J.input[0])||!b.length)){b.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); +b.addClass("ui-state-hover");b.hasClass("ui-datepicker-prev")&&b.addClass("ui-datepicker-prev-hover");b.hasClass("ui-datepicker-next")&&b.addClass("ui-datepicker-next-hover")}})}function H(a,b){d.extend(a,b);for(var c in b)if(b[c]==null||b[c]==C)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.16"}});var B=(new Date).getTime(),J;d.extend(M.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv}, +setDefaults:function(a){H(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g, +"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:N(d('
    '))}},_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", +function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b);b.settings.disabled&&this._disableDatepicker(a)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&b.append.remove();if(c){b.append=d(''+c+"");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c== +"focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('').addClass(this._triggerClass).html(f==""?c:d("").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker(): +d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;gh){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a, +b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),true);this._updateDatepicker(b);this._updateAlternate(b);b.settings.disabled&&this._disableDatepicker(a);b.dpDiv.css("display","block")}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+= +1;this._dialogInput=d('');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}H(a.settings,e||{});b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/ +2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b= +d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e= +a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().removeClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a, +"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().addClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f== +a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input", +a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);if(d.datepicker._curInst&&d.datepicker._curInst!=b){d.datepicker._datepickerShowing&&d.datepicker._triggerOnClose(d.datepicker._curInst);d.datepicker._curInst.dpDiv.stop(true,true)}var c=d.datepicker._get(b,"beforeShow");c=c?c.apply(a,[a,b]):{};if(c!==false){H(b.settings,c);b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value= +"";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b); +c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.datepicker._datepickerShowing= +true;d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}}},_updateDatepicker:function(a){this.maxRows=4;var b=d.datepicker._getBorders(a.dpDiv);J=a;a.dpDiv.empty().append(this._generateHTML(a));var c=a.dpDiv.find("iframe.ui-datepicker-cover");c.length&&c.css({left:-b[0],top:-b[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}); +a.dpDiv.find("."+this._dayOverClass+" a").mouseover();b=this._getNumberOfMonths(a);c=b[1];a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");c>1&&a.dpDiv.addClass("ui-datepicker-multi-"+c).css("width",17*c+"em");a.dpDiv[(b[0]!=1||b[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&& +!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var e=a.yearshtml;setTimeout(function(){e===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);e=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(), +h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b= +this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_triggerOnClose:function(a){var b=this._get(a,"onClose");if(b)b.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a])},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b); +this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();d.datepicker._triggerOnClose(b);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")}, +_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"): +0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e["selected"+(c=="M"? +"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a); +this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField"); +if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"? +b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=A+1-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,j-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=j||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd", +COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames: +null)||this._defaults.monthNames;var i=function(o){(o=k+1 +12?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&& +a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay? +new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&nn;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a)); +n=this._canAdjustMonth(a,-1,m,g)?''+n+"":f?"":''+n+"";var s=this._get(a,"nextText");s=!h?s:this.formatDate(s,this._daylightSavingAdjust(new Date(m, +g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?''+s+"":f?"":''+s+"";j=this._get(a,"currentText");s=this._get(a,"gotoCurrent")&& +a.currentDay?u:b;j=!h?j:this.formatDate(j,s,this._getFormatConfig(a));h=!a.inline?'":"";e=e?'
    '+(c?h:"")+(this._isInRange(a,s)?'":"")+(c?"":h)+"
    ":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");s=this._get(a,"dayNames");this._get(a,"dayNamesShort");var q=this._get(a,"dayNamesMin"),A=this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),D=this._get(a,"showOtherMonths"),K=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var E=this._getDefaultDate(a),w="",x=0;x1)switch(G){case 0:y+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-1:y+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:y+=" ui-datepicker-group-middle";t="";break}y+='">'}y+='
    '+(/all|left/.test(t)&& +x==0?c?f:n:"")+(/all|right/.test(t)&&x==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,x>0||G>0,A,v)+'
    ';var z=j?'":"";for(t=0;t<7;t++){var r=(t+h)%7;z+="=5?' class="ui-datepicker-week-end"':"")+'>'+q[r]+""}y+=z+"";z=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay, +z);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;z=Math.ceil((t+z)/7);this.maxRows=z=l?this.maxRows>z?this.maxRows:z:z;r=this._daylightSavingAdjust(new Date(m,g,1-t));for(var Q=0;Q";var R=!j?"":'";for(t=0;t<7;t++){var I=p?p.apply(a.input?a.input[0]:null,[r]):[true,""],F=r.getMonth()!=g,L=F&&!K||!I[0]||k&&ro;R+='";r.setDate(r.getDate()+1);r=this._daylightSavingAdjust(r)}y+=R+""}g++;if(g>11){g=0;m++}y+="
    '+this._get(a,"weekHeader")+"
    '+this._get(a,"calculateWeek")(r)+""+(F&&!D?" ":L?''+ +r.getDate()+"":''+r.getDate()+"")+"
    "+(l?""+(i[0]>0&&G==i[1]-1?'
    ':""):"");O+=y}w+=O}w+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'': +"");a._keyEvent=false;return w},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='
    ',o="";if(h||!j)o+=''+i[b]+"";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='"}u||(k+=o+(h||!(j&&l)?" ":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+=''+c+"";else{g=this._get(a,"yearRange").split(":");var s=(new Date).getFullYear();i=function(q){q=q.match(/c[+-].*/)?c+parseInt(q.substring(1),10):q.match(/[+-].*/)?s+parseInt(q,10):parseInt(q,10);return isNaN(q)?s:q};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b, +e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="
    ";return k},_adjustInstDate:function(a,b,c){var e=a.drawYear+(c=="Y"?b:0),f=a.drawMonth+ +(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&ba?a:b},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");if(b)b.apply(a.input? +a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);c=this._daylightSavingAdjust(new Date(c, +e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a, +"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=function(a){if(!this.length)return this; +if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));return this.each(function(){typeof a== +"string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new M;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.16";window["DP_jQuery_"+B]=d})(jQuery); +;/* + * jQuery UI Progressbar 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("
    ").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); +this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100* +this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.16"})})(jQuery); +;/* + * jQuery UI Effects 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/ + */ +jQuery.effects||function(f,j){function m(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1], +16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return n.transparent;return n[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return m(b)}function o(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle, +a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function p(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d= +a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function l(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor", +"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=m(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var n={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0, +0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211, +211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},q=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b, +d){if(f.isFunction(b)){d=b;b=null}return this.queue(function(){var e=f(this),g=e.attr("style")||" ",h=p(o.call(this)),r,v=e.attr("class");f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});r=p(o.call(this));e.attr("class",v);e.animate(u(h,r),{queue:false,duration:a,easing:b,complete:function(){f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments);f.dequeue(this)}})})}; +f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this, +[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.16",save:function(c,a){for(var b=0;b").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}), +d=document.activeElement;c.wrap(b);if(c[0]===d||f.contains(c[0],d))f(d).focus();b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(e,g){a[g]=c.css(g);if(isNaN(parseInt(a[g],10)))a[g]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){var a,b=document.activeElement; +if(c.parent().is(".ui-effects-wrapper")){a=c.parent().replaceWith(c);if(c[0]===b||f.contains(c[0],b))f(b).focus();return a}return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)}); +return d.call(this,b)},_show:f.fn.show,show:function(c){if(l(c))return this._show.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(l(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(l(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this, +arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/ +2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b, +d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c, +a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b, +d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+ +e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery); +;/* + * jQuery UI Effects Fade 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Fade + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Fold 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Fold + * + * Depends: + * jquery.effects.core.js + */ +(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1], +10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery); +;/* + * jQuery UI Effects Highlight 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Highlight + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&& +this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Pulsate 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Pulsate + * + * Depends: + * jquery.effects.core.js + */ +(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments); +b.dequeue()})})}})(jQuery); +; \ No newline at end of file diff --git a/common/chart/examples/jquery-ui/js/jquery.effects.blind.min.js b/common/chart/examples/jquery-ui/js/jquery.effects.blind.min.js new file mode 100644 index 0000000..101c15d --- /dev/null +++ b/common/chart/examples/jquery-ui/js/jquery.effects.blind.min.js @@ -0,0 +1,14 @@ +/* + * jQuery UI Effects Blind 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Blind + * + * Depends: + * jquery.effects.core.js + */ +(function(b){var n=/up|down|vertical/,o=/up|left|vertical|horizontal/;b.effects.effect.blind=function(g,p){var a=b(this),i=["position","top","bottom","left","right","height","width"],l=b.effects.setMode(a,g.mode||"hide"),e=g.direction||"up",f=n.test(e),h=f?"height":"width",m=f?"top":"left";e=o.test(e);var j={},k=l==="show",c,d;a.parent().is(".ui-effects-wrapper")?b.effects.save(a.parent(),i):b.effects.save(a,i);a.show();d=parseInt(a.css("top"),10);c=b.effects.createWrapper(a).css({overflow:"hidden"}); +d=f?c[h]()+d:c[h]();j[h]=k?d:0;if(!e){a.css(f?"bottom":"right",0).css(f?"top":"left","").css({position:"absolute"});j[m]=k?0:d}if(k){c.css(h,0);e||c.css(m,d)}c.animate(j,{duration:g.duration,easing:g.easing,queue:false,complete:function(){l==="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);p()}})}})(jQuery); diff --git a/common/chart/examples/jquery-ui/js/jquery.effects.core.min.js b/common/chart/examples/jquery-ui/js/jquery.effects.core.min.js new file mode 100644 index 0000000..9e92123 --- /dev/null +++ b/common/chart/examples/jquery-ui/js/jquery.effects.core.min.js @@ -0,0 +1,32 @@ +/* + * jQuery UI Effects 1.9pre + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/ + */ +jQuery.effects||function(f,m){function r(c){var a;if(c&&c.constructor===Array&&c.length===3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1], +16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return s.transparent;return s[f.trim(c).toLowerCase()]}function t(){var c=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(d=c.length;d--;){b=c[d];if(typeof c[b]==="string")a[f.camelCase(b)]=c[b]}else for(b in c)if(typeof c[b]=== +"string")a[b]=c[b];return a}function o(c,a,b,d){if(f.isPlainObject(c))return c;c={effect:c};if(a===m)a={};if(f.isFunction(a)){d=a;b=null;a={}}if(f.type(a)==="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a&&f.extend(c,a);b=b||a.duration;c.duration=f.fx.off?0:typeof b==="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;c.complete=d||a.complete;return c}function q(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects.effect[c]){if(u&& +f.effects[c])return false;return true}return false}var u=f.uiBackCompat!==false;f.effects={effect:{}};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){var d;d=b.elem;var e=a,g;do{g=f.curCSS(d,e);if(g!=""&&g!=="transparent"||f.nodeName(d,"body"))break;e="backgroundColor"}while(d=d.parentNode);d=r(g);b.start=d;b.end=r(b.end);b.colorInit=true}b.elem.style[a]= +"rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var s={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139, +0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192, +203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},w=["add","remove","toggle"],x={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(c,a){f.fx.step[a]=function(b){if(b.end!=="none"&&!b.setAttr||b.pos===1&&!b.setAttr){jQuery.style(b.elem,a,b.end);b.setAttr= +true}}});f.effects.animateClass=function(c,a,b,d){var e=f.speed(a,b,d);return this.queue(function(){var g=f(this),h=g.attr("class")||"",n,j=e.children?g.find("*").andSelf():g;j=j.map(function(){var k=f(this);return{el:k,originalStyleAttr:k.attr("style")||" ",start:t.call(this)}});f.each(w,function(k,i){if(c[i])g[i+"Class"](c[i])});n=g.attr("class");j=j.map(function(){this.end=t.call(this.el[0]);var k=this.start,i=this.end,v={},l,p;for(l in i){p=i[l];if(k[l]!=p)if(!x[l])if(f.fx.step[l]||!isNaN(parseFloat(p)))v[l]= +p}this.diff=v;return this});g.attr("class",h);j=j.map(function(){var k=this,i=f.Deferred();this.el.animate(this.diff,{duration:e.duration,easing:e.easing,queue:false,complete:function(){i.resolve(k)}});return i.promise()});f.when.apply(f,j.get()).done(function(){g.attr("class",n);f.each(arguments,function(){if(typeof this.el.attr("style")==="object"){this.el.attr("style").cssText="";this.el.attr("style").cssText=this.originalStyleAttr}else this.el.attr("style",this.originalStyleAttr)});e.complete.call(g[0])})})}; +f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a==="boolean"||a===m?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this, +[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.9pre",save:function(c,a){for(var b=0;b").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}), +d={width:c.width(),height:c.height()},e=document.activeElement;c.wrap(b);if(c[0]===e||f.contains(c[0],e))f(e).focus();b=c.parent();if(c.css("position")==="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(g,h){a[h]=c.css(h);if(isNaN(parseInt(a[h],10)))a[h]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}c.css(d);return b.css(a).show()}, +removeWrapper:function(c){var a=document.activeElement;if(c.parent().is(".ui-effects-wrapper")){c.parent().replaceWith(c);if(c[0]===a||f.contains(c[0],a))f(a).focus()}return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){var h=c.cssUnit(g);if(h[0]>0)d[g]=h[0]*b+h[1]});return d}});f.fn.extend({effect:function(){function c(h){function n(){f.isFunction(k)&&k.call(j[0]);f.isFunction(h)&&h()}var j=f(this),k=a.complete,i=a.mode;(j.is(":hidden")?i==="hide":i==="show")?n():e.call(j[0], +a,n)}var a=o.apply(this,arguments),b=a.mode,d=a.queue,e=f.effects.effect[a.effect],g=!e&&u&&f.effects[a.effect];if(f.fx.off||!(e||g))return b?this[b](a.duration,a.complete):this.each(function(){a.complete&&a.complete.call(this)});return e?d===false?this.each(c):this.queue(d||"fx",c):g.call(this,{options:a,duration:a.duration,callback:a.complete,mode:a.mode})},_show:f.fn.show,show:function(c){if(q(c))return this._show.apply(this,arguments);else{var a=o.apply(this,arguments);a.mode="show";return this.effect.call(this, +a)}},_hide:f.fn.hide,hide:function(c){if(q(c))return this._hide.apply(this,arguments);else{var a=o.apply(this,arguments);a.mode="hide";return this.effect.call(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(q(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=o.apply(this,arguments);a.mode="toggle";return this.effect.call(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a), +e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a, +b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2* +((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+ +b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=e*0.3,h=d;if(a==0)return b;if((a/=e)==1)return b+d;if(h + + +// Create a jquery plugin that prints the given element. +jQuery.fn.print = function(){ + // NOTE: We are trimming the jQuery collection down to the + // first element in the collection. + if (this.size() > 1){ + this.eq( 0 ).print(); + return; + } else if (!this.size()){ + return; + } + + var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target'); + // var imgelem = chart.jqplotToImageElem(); + var imageElemStr = chart.jqplotToImageElemStr(); + // var statsrows = $(this).closest('div.quintile-outer-container').find('table.stats-table tr'); + var statsTable = $('
    ').append($(this).closest('div.quintile-outer-container').find('table.stats-table').clone()); + // var rowstyles = window.getComputedStyle(statsrows.get(0), ''); + + // ASSERT: At this point, we know that the current jQuery + // collection (as defined by THIS), contains only one + // printable element. + + // Create a random name for the print frame. + var strFrameName = ("printer-" + (new Date()).getTime()); + + // Create an iFrame with the new name. + var jFrame = $( "'); + this.iefix = $(this.update.id+'_iefix'); + } + if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50); + }, + + fixIEOverlapping: function() { + Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)}); + this.iefix.style.zIndex = 1; + this.update.style.zIndex = 2; + Element.show(this.iefix); + }, + + hide: function() { + this.stopIndicator(); + if(Element.getStyle(this.update, 'display')!='none') this.options.onHide(this.element, this.update); + if(this.iefix) Element.hide(this.iefix); + }, + + startIndicator: function() { + if(this.options.indicator) Element.show(this.options.indicator); + }, + + stopIndicator: function() { + if(this.options.indicator) Element.hide(this.options.indicator); + }, + + onKeyPress: function(event) { + if(this.active) + switch(event.keyCode) { + case Event.KEY_TAB: + case Event.KEY_RETURN: + this.selectEntry(); + Event.stop(event); + case Event.KEY_ESC: + this.hide(); + this.active = false; + Event.stop(event); + return; + case Event.KEY_LEFT: + case Event.KEY_RIGHT: + return; + case Event.KEY_UP: + this.markPrevious(); + this.render(); + Event.stop(event); + return; + case Event.KEY_DOWN: + this.markNext(); + this.render(); + Event.stop(event); + return; + } + else + if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN || + (Prototype.Browser.WebKit > 0 && event.keyCode == 0)) return; + + this.changed = true; + this.hasFocus = true; + + if(this.observer) clearTimeout(this.observer); + this.observer = + setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000); + }, + + activate: function() { + this.changed = false; + this.hasFocus = true; + this.getUpdatedChoices(); + }, + + onHover: function(event) { + var element = Event.findElement(event, 'LI'); + if(this.index != element.autocompleteIndex) + { + this.index = element.autocompleteIndex; + this.render(); + } + Event.stop(event); + }, + + onClick: function(event) { + var element = Event.findElement(event, 'LI'); + this.index = element.autocompleteIndex; + this.selectEntry(); + this.hide(); + }, + + onBlur: function(event) { + // needed to make click events working + setTimeout(this.hide.bind(this), 250); + this.hasFocus = false; + this.active = false; + }, + + render: function() { + if(this.entryCount > 0) { + for (var i = 0; i < this.entryCount; i++) + this.index==i ? + Element.addClassName(this.getEntry(i),"selected") : + Element.removeClassName(this.getEntry(i),"selected"); + if(this.hasFocus) { + this.show(); + this.active = true; + } + } else { + this.active = false; + this.hide(); + } + }, + + markPrevious: function() { + if(this.index > 0) this.index--; + else this.index = this.entryCount-1; + this.getEntry(this.index).scrollIntoView(true); + }, + + markNext: function() { + if(this.index < this.entryCount-1) this.index++; + else this.index = 0; + this.getEntry(this.index).scrollIntoView(false); + }, + + getEntry: function(index) { + return this.update.firstChild.childNodes[index]; + }, + + getCurrentEntry: function() { + return this.getEntry(this.index); + }, + + selectEntry: function() { + this.active = false; + this.updateElement(this.getCurrentEntry()); + }, + + updateElement: function(selectedElement) { + if (this.options.updateElement) { + this.options.updateElement(selectedElement); + return; + } + var value = ''; + if (this.options.select) { + var nodes = $(selectedElement).select('.' + this.options.select) || []; + if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select); + } else + value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal'); + + var bounds = this.getTokenBounds(); + if (bounds[0] != -1) { + var newValue = this.element.value.substr(0, bounds[0]); + var whitespace = this.element.value.substr(bounds[0]).match(/^\s+/); + if (whitespace) + newValue += whitespace[0]; + this.element.value = newValue + value + this.element.value.substr(bounds[1]); + } else { + this.element.value = value; + } + this.oldElementValue = this.element.value; + this.element.focus(); + + if (this.options.afterUpdateElement) + this.options.afterUpdateElement(this.element, selectedElement); + }, + + updateChoices: function(choices) { + if(!this.changed && this.hasFocus) { + this.update.innerHTML = choices; + Element.cleanWhitespace(this.update); + Element.cleanWhitespace(this.update.down()); + + if(this.update.firstChild && this.update.down().childNodes) { + this.entryCount = + this.update.down().childNodes.length; + for (var i = 0; i < this.entryCount; i++) { + var entry = this.getEntry(i); + entry.autocompleteIndex = i; + this.addObservers(entry); + } + } else { + this.entryCount = 0; + } + + this.stopIndicator(); + this.index = 0; + + if(this.entryCount==1 && this.options.autoSelect) { + this.selectEntry(); + this.hide(); + } else { + this.render(); + } + } + }, + + addObservers: function(element) { + Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this)); + Event.observe(element, "click", this.onClick.bindAsEventListener(this)); + }, + + onObserverEvent: function() { + this.changed = false; + this.tokenBounds = null; + if(this.getToken().length>=this.options.minChars) { + this.getUpdatedChoices(); + } else { + this.active = false; + this.hide(); + } + this.oldElementValue = this.element.value; + }, + + getToken: function() { + var bounds = this.getTokenBounds(); + return this.element.value.substring(bounds[0], bounds[1]).strip(); + }, + + getTokenBounds: function() { + if (null != this.tokenBounds) return this.tokenBounds; + var value = this.element.value; + if (value.strip().empty()) return [-1, 0]; + var diff = arguments.callee.getFirstDifferencePos(value, this.oldElementValue); + var offset = (diff == this.oldElementValue.length ? 1 : 0); + var prevTokenPos = -1, nextTokenPos = value.length; + var tp; + for (var index = 0, l = this.options.tokens.length; index < l; ++index) { + tp = value.lastIndexOf(this.options.tokens[index], diff + offset - 1); + if (tp > prevTokenPos) prevTokenPos = tp; + tp = value.indexOf(this.options.tokens[index], diff + offset); + if (-1 != tp && tp < nextTokenPos) nextTokenPos = tp; + } + return (this.tokenBounds = [prevTokenPos + 1, nextTokenPos]); + } +}); + +Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos = function(newS, oldS) { + var boundary = Math.min(newS.length, oldS.length); + for (var index = 0; index < boundary; ++index) + if (newS[index] != oldS[index]) + return index; + return boundary; +}; + +Ajax.Autocompleter = Class.create(Autocompleter.Base, { + initialize: function(element, update, url, options) { + this.baseInitialize(element, update, options); + this.options.asynchronous = true; + this.options.onComplete = this.onComplete.bind(this); + this.options.defaultParams = this.options.parameters || null; + this.url = url; + }, + + getUpdatedChoices: function() { + this.startIndicator(); + + var entry = encodeURIComponent(this.options.paramName) + '=' + + encodeURIComponent(this.getToken()); + + this.options.parameters = this.options.callback ? + this.options.callback(this.element, entry) : entry; + + if(this.options.defaultParams) + this.options.parameters += '&' + this.options.defaultParams; + + new Ajax.Request(this.url, this.options); + }, + + onComplete: function(request) { + this.updateChoices(request.responseText); + } +}); + +// The local array autocompleter. Used when you'd prefer to +// inject an array of autocompletion options into the page, rather +// than sending out Ajax queries, which can be quite slow sometimes. +// +// The constructor takes four parameters. The first two are, as usual, +// the id of the monitored textbox, and id of the autocompletion menu. +// The third is the array you want to autocomplete from, and the fourth +// is the options block. +// +// Extra local autocompletion options: +// - choices - How many autocompletion choices to offer +// +// - partialSearch - If false, the autocompleter will match entered +// text only at the beginning of strings in the +// autocomplete array. Defaults to true, which will +// match text at the beginning of any *word* in the +// strings in the autocomplete array. If you want to +// search anywhere in the string, additionally set +// the option fullSearch to true (default: off). +// +// - fullSsearch - Search anywhere in autocomplete array strings. +// +// - partialChars - How many characters to enter before triggering +// a partial match (unlike minChars, which defines +// how many characters are required to do any match +// at all). Defaults to 2. +// +// - ignoreCase - Whether to ignore case when autocompleting. +// Defaults to true. +// +// It's possible to pass in a custom function as the 'selector' +// option, if you prefer to write your own autocompletion logic. +// In that case, the other options above will not apply unless +// you support them. + +Autocompleter.Local = Class.create(Autocompleter.Base, { + initialize: function(element, update, array, options) { + this.baseInitialize(element, update, options); + this.options.array = array; + }, + + getUpdatedChoices: function() { + this.updateChoices(this.options.selector(this)); + }, + + setOptions: function(options) { + this.options = Object.extend({ + choices: 10, + partialSearch: true, + partialChars: 2, + ignoreCase: true, + fullSearch: false, + selector: function(instance) { + var ret = []; // Beginning matches + var partial = []; // Inside matches + var entry = instance.getToken(); + var count = 0; + + for (var i = 0; i < instance.options.array.length && + ret.length < instance.options.choices ; i++) { + + var elem = instance.options.array[i]; + var foundPos = instance.options.ignoreCase ? + elem.toLowerCase().indexOf(entry.toLowerCase()) : + elem.indexOf(entry); + + while (foundPos != -1) { + if (foundPos == 0 && elem.length != entry.length) { + ret.push("
  • " + elem.substr(0, entry.length) + "" + + elem.substr(entry.length) + "
  • "); + break; + } else if (entry.length >= instance.options.partialChars && + instance.options.partialSearch && foundPos != -1) { + if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) { + partial.push("
  • " + elem.substr(0, foundPos) + "" + + elem.substr(foundPos, entry.length) + "" + elem.substr( + foundPos + entry.length) + "
  • "); + break; + } + } + + foundPos = instance.options.ignoreCase ? + elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) : + elem.indexOf(entry, foundPos + 1); + + } + } + if (partial.length) + ret = ret.concat(partial.slice(0, instance.options.choices - ret.length)); + return "
      " + ret.join('') + "
    "; + } + }, options || { }); + } +}); + +// AJAX in-place editor and collection editor +// Full rewrite by Christophe Porteneuve (April 2007). + +// Use this if you notice weird scrolling problems on some browsers, +// the DOM might be a bit confused when this gets called so do this +// waits 1 ms (with setTimeout) until it does the activation +Field.scrollFreeActivate = function(field) { + setTimeout(function() { + Field.activate(field); + }, 1); +}; + +Ajax.InPlaceEditor = Class.create({ + initialize: function(element, url, options) { + this.url = url; + this.element = element = $(element); + this.prepareOptions(); + this._controls = { }; + arguments.callee.dealWithDeprecatedOptions(options); // DEPRECATION LAYER!!! + Object.extend(this.options, options || { }); + if (!this.options.formId && this.element.id) { + this.options.formId = this.element.id + '-inplaceeditor'; + if ($(this.options.formId)) + this.options.formId = ''; + } + if (this.options.externalControl) + this.options.externalControl = $(this.options.externalControl); + if (!this.options.externalControl) + this.options.externalControlOnly = false; + this._originalBackground = this.element.getStyle('background-color') || 'transparent'; + this.element.title = this.options.clickToEditText; + this._boundCancelHandler = this.handleFormCancellation.bind(this); + this._boundComplete = (this.options.onComplete || Prototype.emptyFunction).bind(this); + this._boundFailureHandler = this.handleAJAXFailure.bind(this); + this._boundSubmitHandler = this.handleFormSubmission.bind(this); + this._boundWrapperHandler = this.wrapUp.bind(this); + this.registerListeners(); + }, + checkForEscapeOrReturn: function(e) { + if (!this._editing || e.ctrlKey || e.altKey || e.shiftKey) return; + if (Event.KEY_ESC == e.keyCode) + this.handleFormCancellation(e); + else if (Event.KEY_RETURN == e.keyCode) + this.handleFormSubmission(e); + }, + createControl: function(mode, handler, extraClasses) { + var control = this.options[mode + 'Control']; + var text = this.options[mode + 'Text']; + if ('button' == control) { + var btn = document.createElement('input'); + btn.type = 'submit'; + btn.value = text; + btn.className = 'editor_' + mode + '_button'; + if ('cancel' == mode) + btn.onclick = this._boundCancelHandler; + this._form.appendChild(btn); + this._controls[mode] = btn; + } else if ('link' == control) { + var link = document.createElement('a'); + link.href = '#'; + link.appendChild(document.createTextNode(text)); + link.onclick = 'cancel' == mode ? this._boundCancelHandler : this._boundSubmitHandler; + link.className = 'editor_' + mode + '_link'; + if (extraClasses) + link.className += ' ' + extraClasses; + this._form.appendChild(link); + this._controls[mode] = link; + } + }, + createEditField: function() { + var text = (this.options.loadTextURL ? this.options.loadingText : this.getText()); + var fld; + if (1 >= this.options.rows && !/\r|\n/.test(this.getText())) { + fld = document.createElement('input'); + fld.type = 'text'; + var size = this.options.size || this.options.cols || 0; + if (0 < size) fld.size = size; + } else { + fld = document.createElement('textarea'); + fld.rows = (1 >= this.options.rows ? this.options.autoRows : this.options.rows); + fld.cols = this.options.cols || 40; + } + fld.name = this.options.paramName; + fld.value = text; // No HTML breaks conversion anymore + fld.className = 'editor_field'; + if (this.options.submitOnBlur) + fld.onblur = this._boundSubmitHandler; + this._controls.editor = fld; + if (this.options.loadTextURL) + this.loadExternalText(); + this._form.appendChild(this._controls.editor); + }, + createForm: function() { + var ipe = this; + function addText(mode, condition) { + var text = ipe.options['text' + mode + 'Controls']; + if (!text || condition === false) return; + ipe._form.appendChild(document.createTextNode(text)); + }; + this._form = $(document.createElement('form')); + this._form.id = this.options.formId; + this._form.addClassName(this.options.formClassName); + this._form.onsubmit = this._boundSubmitHandler; + this.createEditField(); + if ('textarea' == this._controls.editor.tagName.toLowerCase()) + this._form.appendChild(document.createElement('br')); + if (this.options.onFormCustomization) + this.options.onFormCustomization(this, this._form); + addText('Before', this.options.okControl || this.options.cancelControl); + this.createControl('ok', this._boundSubmitHandler); + addText('Between', this.options.okControl && this.options.cancelControl); + this.createControl('cancel', this._boundCancelHandler, 'editor_cancel'); + addText('After', this.options.okControl || this.options.cancelControl); + }, + destroy: function() { + if (this._oldInnerHTML) + this.element.innerHTML = this._oldInnerHTML; + this.leaveEditMode(); + this.unregisterListeners(); + }, + enterEditMode: function(e) { + if (this._saving || this._editing) return; + this._editing = true; + this.triggerCallback('onEnterEditMode'); + if (this.options.externalControl) + this.options.externalControl.hide(); + this.element.hide(); + this.createForm(); + this.element.parentNode.insertBefore(this._form, this.element); + if (!this.options.loadTextURL) + this.postProcessEditField(); + if (e) Event.stop(e); + }, + enterHover: function(e) { + if (this.options.hoverClassName) + this.element.addClassName(this.options.hoverClassName); + if (this._saving) return; + this.triggerCallback('onEnterHover'); + }, + getText: function() { + return this.element.innerHTML.unescapeHTML(); + }, + handleAJAXFailure: function(transport) { + this.triggerCallback('onFailure', transport); + if (this._oldInnerHTML) { + this.element.innerHTML = this._oldInnerHTML; + this._oldInnerHTML = null; + } + }, + handleFormCancellation: function(e) { + this.wrapUp(); + if (e) Event.stop(e); + }, + handleFormSubmission: function(e) { + var form = this._form; + var value = $F(this._controls.editor); + this.prepareSubmission(); + var params = this.options.callback(form, value) || ''; + if (Object.isString(params)) + params = params.toQueryParams(); + params.editorId = this.element.id; + if (this.options.htmlResponse) { + var options = Object.extend({ evalScripts: true }, this.options.ajaxOptions); + Object.extend(options, { + parameters: params, + onComplete: this._boundWrapperHandler, + onFailure: this._boundFailureHandler + }); + new Ajax.Updater({ success: this.element }, this.url, options); + } else { + var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); + Object.extend(options, { + parameters: params, + onComplete: this._boundWrapperHandler, + onFailure: this._boundFailureHandler + }); + new Ajax.Request(this.url, options); + } + if (e) Event.stop(e); + }, + leaveEditMode: function() { + this.element.removeClassName(this.options.savingClassName); + this.removeForm(); + this.leaveHover(); + this.element.style.backgroundColor = this._originalBackground; + this.element.show(); + if (this.options.externalControl) + this.options.externalControl.show(); + this._saving = false; + this._editing = false; + this._oldInnerHTML = null; + this.triggerCallback('onLeaveEditMode'); + }, + leaveHover: function(e) { + if (this.options.hoverClassName) + this.element.removeClassName(this.options.hoverClassName); + if (this._saving) return; + this.triggerCallback('onLeaveHover'); + }, + loadExternalText: function() { + this._form.addClassName(this.options.loadingClassName); + this._controls.editor.disabled = true; + var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); + Object.extend(options, { + parameters: 'editorId=' + encodeURIComponent(this.element.id), + onComplete: Prototype.emptyFunction, + onSuccess: function(transport) { + this._form.removeClassName(this.options.loadingClassName); + var text = transport.responseText; + if (this.options.stripLoadedTextTags) + text = text.stripTags(); + this._controls.editor.value = text; + this._controls.editor.disabled = false; + this.postProcessEditField(); + }.bind(this), + onFailure: this._boundFailureHandler + }); + new Ajax.Request(this.options.loadTextURL, options); + }, + postProcessEditField: function() { + var fpc = this.options.fieldPostCreation; + if (fpc) + $(this._controls.editor)['focus' == fpc ? 'focus' : 'activate'](); + }, + prepareOptions: function() { + this.options = Object.clone(Ajax.InPlaceEditor.DefaultOptions); + Object.extend(this.options, Ajax.InPlaceEditor.DefaultCallbacks); + [this._extraDefaultOptions].flatten().compact().each(function(defs) { + Object.extend(this.options, defs); + }.bind(this)); + }, + prepareSubmission: function() { + this._saving = true; + this.removeForm(); + this.leaveHover(); + this.showSaving(); + }, + registerListeners: function() { + this._listeners = { }; + var listener; + $H(Ajax.InPlaceEditor.Listeners).each(function(pair) { + listener = this[pair.value].bind(this); + this._listeners[pair.key] = listener; + if (!this.options.externalControlOnly) + this.element.observe(pair.key, listener); + if (this.options.externalControl) + this.options.externalControl.observe(pair.key, listener); + }.bind(this)); + }, + removeForm: function() { + if (!this._form) return; + this._form.remove(); + this._form = null; + this._controls = { }; + }, + showSaving: function() { + this._oldInnerHTML = this.element.innerHTML; + this.element.innerHTML = this.options.savingText; + this.element.addClassName(this.options.savingClassName); + this.element.style.backgroundColor = this._originalBackground; + this.element.show(); + }, + triggerCallback: function(cbName, arg) { + if ('function' == typeof this.options[cbName]) { + this.options[cbName](this, arg); + } + }, + unregisterListeners: function() { + $H(this._listeners).each(function(pair) { + if (!this.options.externalControlOnly) + this.element.stopObserving(pair.key, pair.value); + if (this.options.externalControl) + this.options.externalControl.stopObserving(pair.key, pair.value); + }.bind(this)); + }, + wrapUp: function(transport) { + this.leaveEditMode(); + // Can't use triggerCallback due to backward compatibility: requires + // binding + direct element + this._boundComplete(transport, this.element); + } +}); + +Object.extend(Ajax.InPlaceEditor.prototype, { + dispose: Ajax.InPlaceEditor.prototype.destroy +}); + +Ajax.InPlaceCollectionEditor = Class.create(Ajax.InPlaceEditor, { + initialize: function($super, element, url, options) { + this._extraDefaultOptions = Ajax.InPlaceCollectionEditor.DefaultOptions; + $super(element, url, options); + }, + + createEditField: function() { + var list = document.createElement('select'); + list.name = this.options.paramName; + list.size = 1; + this._controls.editor = list; + this._collection = this.options.collection || []; + if (this.options.loadCollectionURL) + this.loadCollection(); + else + this.checkForExternalText(); + this._form.appendChild(this._controls.editor); + }, + + loadCollection: function() { + this._form.addClassName(this.options.loadingClassName); + this.showLoadingText(this.options.loadingCollectionText); + var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); + Object.extend(options, { + parameters: 'editorId=' + encodeURIComponent(this.element.id), + onComplete: Prototype.emptyFunction, + onSuccess: function(transport) { + var js = transport.responseText.strip(); + if (!/^\[.*\]$/.test(js)) // TODO: improve sanity check + throw('Server returned an invalid collection representation.'); + this._collection = eval(js); + this.checkForExternalText(); + }.bind(this), + onFailure: this.onFailure + }); + new Ajax.Request(this.options.loadCollectionURL, options); + }, + + showLoadingText: function(text) { + this._controls.editor.disabled = true; + var tempOption = this._controls.editor.firstChild; + if (!tempOption) { + tempOption = document.createElement('option'); + tempOption.value = ''; + this._controls.editor.appendChild(tempOption); + tempOption.selected = true; + } + tempOption.update((text || '').stripScripts().stripTags()); + }, + + checkForExternalText: function() { + this._text = this.getText(); + if (this.options.loadTextURL) + this.loadExternalText(); + else + this.buildOptionList(); + }, + + loadExternalText: function() { + this.showLoadingText(this.options.loadingText); + var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); + Object.extend(options, { + parameters: 'editorId=' + encodeURIComponent(this.element.id), + onComplete: Prototype.emptyFunction, + onSuccess: function(transport) { + this._text = transport.responseText.strip(); + this.buildOptionList(); + }.bind(this), + onFailure: this.onFailure + }); + new Ajax.Request(this.options.loadTextURL, options); + }, + + buildOptionList: function() { + this._form.removeClassName(this.options.loadingClassName); + this._collection = this._collection.map(function(entry) { + return 2 === entry.length ? entry : [entry, entry].flatten(); + }); + var marker = ('value' in this.options) ? this.options.value : this._text; + var textFound = this._collection.any(function(entry) { + return entry[0] == marker; + }.bind(this)); + this._controls.editor.update(''); + var option; + this._collection.each(function(entry, index) { + option = document.createElement('option'); + option.value = entry[0]; + option.selected = textFound ? entry[0] == marker : 0 == index; + option.appendChild(document.createTextNode(entry[1])); + this._controls.editor.appendChild(option); + }.bind(this)); + this._controls.editor.disabled = false; + Field.scrollFreeActivate(this._controls.editor); + } +}); + +//**** DEPRECATION LAYER FOR InPlace[Collection]Editor! **** +//**** This only exists for a while, in order to let **** +//**** users adapt to the new API. Read up on the new **** +//**** API and convert your code to it ASAP! **** + +Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions = function(options) { + if (!options) return; + function fallback(name, expr) { + if (name in options || expr === undefined) return; + options[name] = expr; + }; + fallback('cancelControl', (options.cancelLink ? 'link' : (options.cancelButton ? 'button' : + options.cancelLink == options.cancelButton == false ? false : undefined))); + fallback('okControl', (options.okLink ? 'link' : (options.okButton ? 'button' : + options.okLink == options.okButton == false ? false : undefined))); + fallback('highlightColor', options.highlightcolor); + fallback('highlightEndColor', options.highlightendcolor); +}; + +Object.extend(Ajax.InPlaceEditor, { + DefaultOptions: { + ajaxOptions: { }, + autoRows: 3, // Use when multi-line w/ rows == 1 + cancelControl: 'link', // 'link'|'button'|false + cancelText: 'cancel', + clickToEditText: 'Click to edit', + externalControl: null, // id|elt + externalControlOnly: false, + fieldPostCreation: 'activate', // 'activate'|'focus'|false + formClassName: 'inplaceeditor-form', + formId: null, // id|elt + highlightColor: '#ffff99', + highlightEndColor: '#ffffff', + hoverClassName: '', + htmlResponse: true, + loadingClassName: 'inplaceeditor-loading', + loadingText: 'Loading...', + okControl: 'button', // 'link'|'button'|false + okText: 'ok', + paramName: 'value', + rows: 1, // If 1 and multi-line, uses autoRows + savingClassName: 'inplaceeditor-saving', + savingText: 'Saving...', + size: 0, + stripLoadedTextTags: false, + submitOnBlur: false, + textAfterControls: '', + textBeforeControls: '', + textBetweenControls: '' + }, + DefaultCallbacks: { + callback: function(form) { + return Form.serialize(form); + }, + onComplete: function(transport, element) { + // For backward compatibility, this one is bound to the IPE, and passes + // the element directly. It was too often customized, so we don't break it. + new Effect.Highlight(element, { + startcolor: this.options.highlightColor, keepBackgroundImage: true }); + }, + onEnterEditMode: null, + onEnterHover: function(ipe) { + ipe.element.style.backgroundColor = ipe.options.highlightColor; + if (ipe._effect) + ipe._effect.cancel(); + }, + onFailure: function(transport, ipe) { + alert('Error communication with the server: ' + transport.responseText.stripTags()); + }, + onFormCustomization: null, // Takes the IPE and its generated form, after editor, before controls. + onLeaveEditMode: null, + onLeaveHover: function(ipe) { + ipe._effect = new Effect.Highlight(ipe.element, { + startcolor: ipe.options.highlightColor, endcolor: ipe.options.highlightEndColor, + restorecolor: ipe._originalBackground, keepBackgroundImage: true + }); + } + }, + Listeners: { + click: 'enterEditMode', + keydown: 'checkForEscapeOrReturn', + mouseover: 'enterHover', + mouseout: 'leaveHover' + } +}); + +Ajax.InPlaceCollectionEditor.DefaultOptions = { + loadingCollectionText: 'Loading options...' +}; + +// Delayed observer, like Form.Element.Observer, +// but waits for delay after last key input +// Ideal for live-search fields + +Form.Element.DelayedObserver = Class.create({ + initialize: function(element, delay, callback) { + this.delay = delay || 0.5; + this.element = $(element); + this.callback = callback; + this.timer = null; + this.lastValue = $F(this.element); + Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this)); + }, + delayedListener: function(event) { + if(this.lastValue == $F(this.element)) return; + if(this.timer) clearTimeout(this.timer); + this.timer = setTimeout(this.onTimerEvent.bind(this), this.delay * 1000); + this.lastValue = $F(this.element); + }, + onTimerEvent: function() { + this.timer = null; + this.callback(this.element, $F(this.element)); + } +}); \ No newline at end of file diff --git a/common/js/scriptaculous/dragdrop.js b/common/js/scriptaculous/dragdrop.js new file mode 100644 index 0000000..07c98e2 --- /dev/null +++ b/common/js/scriptaculous/dragdrop.js @@ -0,0 +1,975 @@ +// script.aculo.us dragdrop.js v1.8.2, Tue Nov 18 18:30:58 +0100 2008 + +// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) +// (c) 2005-2008 Sammi Williams (http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz) +// +// script.aculo.us is freely distributable under the terms of an MIT-style license. +// For details, see the script.aculo.us web site: http://script.aculo.us/ + +if(Object.isUndefined(Effect)) + throw("dragdrop.js requires including script.aculo.us' effects.js library"); + +var Droppables = { + drops: [], + + remove: function(element) { + this.drops = this.drops.reject(function(d) { return d.element==$(element) }); + }, + + add: function(element) { + element = $(element); + var options = Object.extend({ + greedy: true, + hoverclass: null, + tree: false + }, arguments[1] || { }); + + // cache containers + if(options.containment) { + options._containers = []; + var containment = options.containment; + if(Object.isArray(containment)) { + containment.each( function(c) { options._containers.push($(c)) }); + } else { + options._containers.push($(containment)); + } + } + + if(options.accept) options.accept = [options.accept].flatten(); + + Element.makePositioned(element); // fix IE + options.element = element; + + this.drops.push(options); + }, + + findDeepestChild: function(drops) { + deepest = drops[0]; + + for (i = 1; i < drops.length; ++i) + if (Element.isParent(drops[i].element, deepest.element)) + deepest = drops[i]; + + return deepest; + }, + + isContained: function(element, drop) { + var containmentNode; + if(drop.tree) { + containmentNode = element.treeNode; + } else { + containmentNode = element.parentNode; + } + return drop._containers.detect(function(c) { return containmentNode == c }); + }, + + isAffected: function(point, element, drop) { + return ( + (drop.element!=element) && + ((!drop._containers) || + this.isContained(element, drop)) && + ((!drop.accept) || + (Element.classNames(element).detect( + function(v) { return drop.accept.include(v) } ) )) && + Position.within(drop.element, point[0], point[1]) ); + }, + + deactivate: function(drop) { + if(drop.hoverclass) + Element.removeClassName(drop.element, drop.hoverclass); + this.last_active = null; + }, + + activate: function(drop) { + if(drop.hoverclass) + Element.addClassName(drop.element, drop.hoverclass); + this.last_active = drop; + }, + + show: function(point, element) { + if(!this.drops.length) return; + var drop, affected = []; + + this.drops.each( function(drop) { + if(Droppables.isAffected(point, element, drop)) + affected.push(drop); + }); + + if(affected.length>0) + drop = Droppables.findDeepestChild(affected); + + if(this.last_active && this.last_active != drop) this.deactivate(this.last_active); + if (drop) { + Position.within(drop.element, point[0], point[1]); + if(drop.onHover) + drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element)); + + if (drop != this.last_active) Droppables.activate(drop); + } + }, + + fire: function(event, element) { + if(!this.last_active) return; + Position.prepare(); + + if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active)) + if (this.last_active.onDrop) { + this.last_active.onDrop(element, this.last_active.element, event); + return true; + } + }, + + reset: function() { + if(this.last_active) + this.deactivate(this.last_active); + } +}; + +var Draggables = { + drags: [], + observers: [], + + register: function(draggable) { + if(this.drags.length == 0) { + this.eventMouseUp = this.endDrag.bindAsEventListener(this); + this.eventMouseMove = this.updateDrag.bindAsEventListener(this); + this.eventKeypress = this.keyPress.bindAsEventListener(this); + + Event.observe(document, "mouseup", this.eventMouseUp); + Event.observe(document, "mousemove", this.eventMouseMove); + Event.observe(document, "keypress", this.eventKeypress); + } + this.drags.push(draggable); + }, + + unregister: function(draggable) { + this.drags = this.drags.reject(function(d) { return d==draggable }); + if(this.drags.length == 0) { + Event.stopObserving(document, "mouseup", this.eventMouseUp); + Event.stopObserving(document, "mousemove", this.eventMouseMove); + Event.stopObserving(document, "keypress", this.eventKeypress); + } + }, + + activate: function(draggable) { + if(draggable.options.delay) { + this._timeout = setTimeout(function() { + Draggables._timeout = null; + window.focus(); + Draggables.activeDraggable = draggable; + }.bind(this), draggable.options.delay); + } else { + window.focus(); // allows keypress events if window isn't currently focused, fails for Safari + this.activeDraggable = draggable; + } + }, + + deactivate: function() { + this.activeDraggable = null; + }, + + updateDrag: function(event) { + if(!this.activeDraggable) return; + var pointer = [Event.pointerX(event), Event.pointerY(event)]; + // Mozilla-based browsers fire successive mousemove events with + // the same coordinates, prevent needless redrawing (moz bug?) + if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return; + this._lastPointer = pointer; + + this.activeDraggable.updateDrag(event, pointer); + }, + + endDrag: function(event) { + if(this._timeout) { + clearTimeout(this._timeout); + this._timeout = null; + } + if(!this.activeDraggable) return; + this._lastPointer = null; + this.activeDraggable.endDrag(event); + this.activeDraggable = null; + }, + + keyPress: function(event) { + if(this.activeDraggable) + this.activeDraggable.keyPress(event); + }, + + addObserver: function(observer) { + this.observers.push(observer); + this._cacheObserverCallbacks(); + }, + + removeObserver: function(element) { // element instead of observer fixes mem leaks + this.observers = this.observers.reject( function(o) { return o.element==element }); + this._cacheObserverCallbacks(); + }, + + notify: function(eventName, draggable, event) { // 'onStart', 'onEnd', 'onDrag' + if(this[eventName+'Count'] > 0) + this.observers.each( function(o) { + if(o[eventName]) o[eventName](eventName, draggable, event); + }); + if(draggable.options[eventName]) draggable.options[eventName](draggable, event); + }, + + _cacheObserverCallbacks: function() { + ['onStart','onEnd','onDrag'].each( function(eventName) { + Draggables[eventName+'Count'] = Draggables.observers.select( + function(o) { return o[eventName]; } + ).length; + }); + } +}; + +/*--------------------------------------------------------------------------*/ + +var Draggable = Class.create({ + initialize: function(element) { + var defaults = { + handle: false, + reverteffect: function(element, top_offset, left_offset) { + var dur = Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02; + new Effect.Move(element, { x: -left_offset, y: -top_offset, duration: dur, + queue: {scope:'_draggable', position:'end'} + }); + }, + endeffect: function(element) { + var toOpacity = Object.isNumber(element._opacity) ? element._opacity : 1.0; + new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity, + queue: {scope:'_draggable', position:'end'}, + afterFinish: function(){ + Draggable._dragging[element] = false + } + }); + }, + zindex: 1000, + revert: false, + quiet: false, + scroll: false, + scrollSensitivity: 20, + scrollSpeed: 15, + snap: false, // false, or xy or [x,y] or function(x,y){ return [x,y] } + delay: 0 + }; + + if(!arguments[1] || Object.isUndefined(arguments[1].endeffect)) + Object.extend(defaults, { + starteffect: function(element) { + element._opacity = Element.getOpacity(element); + Draggable._dragging[element] = true; + new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7}); + } + }); + + var options = Object.extend(defaults, arguments[1] || { }); + + this.element = $(element); + + if(options.handle && Object.isString(options.handle)) + this.handle = this.element.down('.'+options.handle, 0); + + if(!this.handle) this.handle = $(options.handle); + if(!this.handle) this.handle = this.element; + + if(options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) { + options.scroll = $(options.scroll); + this._isScrollChild = Element.childOf(this.element, options.scroll); + } + + Element.makePositioned(this.element); // fix IE + + this.options = options; + this.dragging = false; + + this.eventMouseDown = this.initDrag.bindAsEventListener(this); + Event.observe(this.handle, "mousedown", this.eventMouseDown); + + Draggables.register(this); + }, + + destroy: function() { + Event.stopObserving(this.handle, "mousedown", this.eventMouseDown); + Draggables.unregister(this); + }, + + currentDelta: function() { + return([ + parseInt(Element.getStyle(this.element,'left') || '0'), + parseInt(Element.getStyle(this.element,'top') || '0')]); + }, + + initDrag: function(event) { + if(!Object.isUndefined(Draggable._dragging[this.element]) && + Draggable._dragging[this.element]) return; + if(Event.isLeftClick(event)) { + // abort on form elements, fixes a Firefox issue + var src = Event.element(event); + if((tag_name = src.tagName.toUpperCase()) && ( + tag_name=='INPUT' || + tag_name=='SELECT' || + tag_name=='OPTION' || + tag_name=='BUTTON' || + tag_name=='TEXTAREA')) return; + + var pointer = [Event.pointerX(event), Event.pointerY(event)]; + var pos = Position.cumulativeOffset(this.element); + this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) }); + + Draggables.activate(this); + Event.stop(event); + } + }, + + startDrag: function(event) { + this.dragging = true; + if(!this.delta) + this.delta = this.currentDelta(); + + if(this.options.zindex) { + this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0); + this.element.style.zIndex = this.options.zindex; + } + + if(this.options.ghosting) { + this._clone = this.element.cloneNode(true); + this._originallyAbsolute = (this.element.getStyle('position') == 'absolute'); + if (!this._originallyAbsolute) + Position.absolutize(this.element); + this.element.parentNode.insertBefore(this._clone, this.element); + } + + if(this.options.scroll) { + if (this.options.scroll == window) { + var where = this._getWindowScroll(this.options.scroll); + this.originalScrollLeft = where.left; + this.originalScrollTop = where.top; + } else { + this.originalScrollLeft = this.options.scroll.scrollLeft; + this.originalScrollTop = this.options.scroll.scrollTop; + } + } + + Draggables.notify('onStart', this, event); + + if(this.options.starteffect) this.options.starteffect(this.element); + }, + + updateDrag: function(event, pointer) { + if(!this.dragging) this.startDrag(event); + + if(!this.options.quiet){ + Position.prepare(); + Droppables.show(pointer, this.element); + } + + Draggables.notify('onDrag', this, event); + + this.draw(pointer); + if(this.options.change) this.options.change(this); + + if(this.options.scroll) { + this.stopScrolling(); + + var p; + if (this.options.scroll == window) { + with(this._getWindowScroll(this.options.scroll)) { p = [ left, top, left+width, top+height ]; } + } else { + p = Position.page(this.options.scroll); + p[0] += this.options.scroll.scrollLeft + Position.deltaX; + p[1] += this.options.scroll.scrollTop + Position.deltaY; + p.push(p[0]+this.options.scroll.offsetWidth); + p.push(p[1]+this.options.scroll.offsetHeight); + } + var speed = [0,0]; + if(pointer[0] < (p[0]+this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[0]+this.options.scrollSensitivity); + if(pointer[1] < (p[1]+this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[1]+this.options.scrollSensitivity); + if(pointer[0] > (p[2]-this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[2]-this.options.scrollSensitivity); + if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[3]-this.options.scrollSensitivity); + this.startScrolling(speed); + } + + // fix AppleWebKit rendering + if(Prototype.Browser.WebKit) window.scrollBy(0,0); + + Event.stop(event); + }, + + finishDrag: function(event, success) { + this.dragging = false; + + if(this.options.quiet){ + Position.prepare(); + var pointer = [Event.pointerX(event), Event.pointerY(event)]; + Droppables.show(pointer, this.element); + } + + if(this.options.ghosting) { + if (!this._originallyAbsolute) + Position.relativize(this.element); + delete this._originallyAbsolute; + Element.remove(this._clone); + this._clone = null; + } + + var dropped = false; + if(success) { + dropped = Droppables.fire(event, this.element); + if (!dropped) dropped = false; + } + if(dropped && this.options.onDropped) this.options.onDropped(this.element); + Draggables.notify('onEnd', this, event); + + var revert = this.options.revert; + if(revert && Object.isFunction(revert)) revert = revert(this.element); + + var d = this.currentDelta(); + if(revert && this.options.reverteffect) { + if (dropped == 0 || revert != 'failure') + this.options.reverteffect(this.element, + d[1]-this.delta[1], d[0]-this.delta[0]); + } else { + this.delta = d; + } + + if(this.options.zindex) + this.element.style.zIndex = this.originalZ; + + if(this.options.endeffect) + this.options.endeffect(this.element); + + Draggables.deactivate(this); + Droppables.reset(); + }, + + keyPress: function(event) { + if(event.keyCode!=Event.KEY_ESC) return; + this.finishDrag(event, false); + Event.stop(event); + }, + + endDrag: function(event) { + if(!this.dragging) return; + this.stopScrolling(); + this.finishDrag(event, true); + Event.stop(event); + }, + + draw: function(point) { + var pos = Position.cumulativeOffset(this.element); + if(this.options.ghosting) { + var r = Position.realOffset(this.element); + pos[0] += r[0] - Position.deltaX; pos[1] += r[1] - Position.deltaY; + } + + var d = this.currentDelta(); + pos[0] -= d[0]; pos[1] -= d[1]; + + if(this.options.scroll && (this.options.scroll != window && this._isScrollChild)) { + pos[0] -= this.options.scroll.scrollLeft-this.originalScrollLeft; + pos[1] -= this.options.scroll.scrollTop-this.originalScrollTop; + } + + var p = [0,1].map(function(i){ + return (point[i]-pos[i]-this.offset[i]) + }.bind(this)); + + if(this.options.snap) { + if(Object.isFunction(this.options.snap)) { + p = this.options.snap(p[0],p[1],this); + } else { + if(Object.isArray(this.options.snap)) { + p = p.map( function(v, i) { + return (v/this.options.snap[i]).round()*this.options.snap[i] }.bind(this)); + } else { + p = p.map( function(v) { + return (v/this.options.snap).round()*this.options.snap }.bind(this)); + } + }} + + var style = this.element.style; + if((!this.options.constraint) || (this.options.constraint=='horizontal')) + style.left = p[0] + "px"; + if((!this.options.constraint) || (this.options.constraint=='vertical')) + style.top = p[1] + "px"; + + if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering + }, + + stopScrolling: function() { + if(this.scrollInterval) { + clearInterval(this.scrollInterval); + this.scrollInterval = null; + Draggables._lastScrollPointer = null; + } + }, + + startScrolling: function(speed) { + if(!(speed[0] || speed[1])) return; + this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed]; + this.lastScrolled = new Date(); + this.scrollInterval = setInterval(this.scroll.bind(this), 10); + }, + + scroll: function() { + var current = new Date(); + var delta = current - this.lastScrolled; + this.lastScrolled = current; + if(this.options.scroll == window) { + with (this._getWindowScroll(this.options.scroll)) { + if (this.scrollSpeed[0] || this.scrollSpeed[1]) { + var d = delta / 1000; + this.options.scroll.scrollTo( left + d*this.scrollSpeed[0], top + d*this.scrollSpeed[1] ); + } + } + } else { + this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000; + this.options.scroll.scrollTop += this.scrollSpeed[1] * delta / 1000; + } + + Position.prepare(); + Droppables.show(Draggables._lastPointer, this.element); + Draggables.notify('onDrag', this); + if (this._isScrollChild) { + Draggables._lastScrollPointer = Draggables._lastScrollPointer || $A(Draggables._lastPointer); + Draggables._lastScrollPointer[0] += this.scrollSpeed[0] * delta / 1000; + Draggables._lastScrollPointer[1] += this.scrollSpeed[1] * delta / 1000; + if (Draggables._lastScrollPointer[0] < 0) + Draggables._lastScrollPointer[0] = 0; + if (Draggables._lastScrollPointer[1] < 0) + Draggables._lastScrollPointer[1] = 0; + this.draw(Draggables._lastScrollPointer); + } + + if(this.options.change) this.options.change(this); + }, + + _getWindowScroll: function(w) { + var T, L, W, H; + with (w.document) { + if (w.document.documentElement && documentElement.scrollTop) { + T = documentElement.scrollTop; + L = documentElement.scrollLeft; + } else if (w.document.body) { + T = body.scrollTop; + L = body.scrollLeft; + } + if (w.innerWidth) { + W = w.innerWidth; + H = w.innerHeight; + } else if (w.document.documentElement && documentElement.clientWidth) { + W = documentElement.clientWidth; + H = documentElement.clientHeight; + } else { + W = body.offsetWidth; + H = body.offsetHeight; + } + } + return { top: T, left: L, width: W, height: H }; + } +}); + +Draggable._dragging = { }; + +/*--------------------------------------------------------------------------*/ + +var SortableObserver = Class.create({ + initialize: function(element, observer) { + this.element = $(element); + this.observer = observer; + this.lastValue = Sortable.serialize(this.element); + }, + + onStart: function() { + this.lastValue = Sortable.serialize(this.element); + }, + + onEnd: function() { + Sortable.unmark(); + if(this.lastValue != Sortable.serialize(this.element)) + this.observer(this.element) + } +}); + +var Sortable = { + SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/, + + sortables: { }, + + _findRootElement: function(element) { + while (element.tagName.toUpperCase() != "BODY") { + if(element.id && Sortable.sortables[element.id]) return element; + element = element.parentNode; + } + }, + + options: function(element) { + element = Sortable._findRootElement($(element)); + if(!element) return; + return Sortable.sortables[element.id]; + }, + + destroy: function(element){ + element = $(element); + var s = Sortable.sortables[element.id]; + + if(s) { + Draggables.removeObserver(s.element); + s.droppables.each(function(d){ Droppables.remove(d) }); + s.draggables.invoke('destroy'); + + delete Sortable.sortables[s.element.id]; + } + }, + + create: function(element) { + element = $(element); + var options = Object.extend({ + element: element, + tag: 'li', // assumes li children, override with tag: 'tagname' + dropOnEmpty: false, + tree: false, + treeTag: 'ul', + overlap: 'vertical', // one of 'vertical', 'horizontal' + constraint: 'vertical', // one of 'vertical', 'horizontal', false + containment: element, // also takes array of elements (or id's); or false + handle: false, // or a CSS class + only: false, + delay: 0, + hoverclass: null, + ghosting: false, + quiet: false, + scroll: false, + scrollSensitivity: 20, + scrollSpeed: 15, + format: this.SERIALIZE_RULE, + + // these take arrays of elements or ids and can be + // used for better initialization performance + elements: false, + handles: false, + + onChange: Prototype.emptyFunction, + onUpdate: Prototype.emptyFunction + }, arguments[1] || { }); + + // clear any old sortable with same element + this.destroy(element); + + // build options for the draggables + var options_for_draggable = { + revert: true, + quiet: options.quiet, + scroll: options.scroll, + scrollSpeed: options.scrollSpeed, + scrollSensitivity: options.scrollSensitivity, + delay: options.delay, + ghosting: options.ghosting, + constraint: options.constraint, + handle: options.handle }; + + if(options.starteffect) + options_for_draggable.starteffect = options.starteffect; + + if(options.reverteffect) + options_for_draggable.reverteffect = options.reverteffect; + else + if(options.ghosting) options_for_draggable.reverteffect = function(element) { + element.style.top = 0; + element.style.left = 0; + }; + + if(options.endeffect) + options_for_draggable.endeffect = options.endeffect; + + if(options.zindex) + options_for_draggable.zindex = options.zindex; + + // build options for the droppables + var options_for_droppable = { + overlap: options.overlap, + containment: options.containment, + tree: options.tree, + hoverclass: options.hoverclass, + onHover: Sortable.onHover + }; + + var options_for_tree = { + onHover: Sortable.onEmptyHover, + overlap: options.overlap, + containment: options.containment, + hoverclass: options.hoverclass + }; + + // fix for gecko engine + Element.cleanWhitespace(element); + + options.draggables = []; + options.droppables = []; + + // drop on empty handling + if(options.dropOnEmpty || options.tree) { + Droppables.add(element, options_for_tree); + options.droppables.push(element); + } + + (options.elements || this.findElements(element, options) || []).each( function(e,i) { + var handle = options.handles ? $(options.handles[i]) : + (options.handle ? $(e).select('.' + options.handle)[0] : e); + options.draggables.push( + new Draggable(e, Object.extend(options_for_draggable, { handle: handle }))); + Droppables.add(e, options_for_droppable); + if(options.tree) e.treeNode = element; + options.droppables.push(e); + }); + + if(options.tree) { + (Sortable.findTreeElements(element, options) || []).each( function(e) { + Droppables.add(e, options_for_tree); + e.treeNode = element; + options.droppables.push(e); + }); + } + + // keep reference + this.sortables[element.id] = options; + + // for onupdate + Draggables.addObserver(new SortableObserver(element, options.onUpdate)); + + }, + + // return all suitable-for-sortable elements in a guaranteed order + findElements: function(element, options) { + return Element.findChildren( + element, options.only, options.tree ? true : false, options.tag); + }, + + findTreeElements: function(element, options) { + return Element.findChildren( + element, options.only, options.tree ? true : false, options.treeTag); + }, + + onHover: function(element, dropon, overlap) { + if(Element.isParent(dropon, element)) return; + + if(overlap > .33 && overlap < .66 && Sortable.options(dropon).tree) { + return; + } else if(overlap>0.5) { + Sortable.mark(dropon, 'before'); + if(dropon.previousSibling != element) { + var oldParentNode = element.parentNode; + element.style.visibility = "hidden"; // fix gecko rendering + dropon.parentNode.insertBefore(element, dropon); + if(dropon.parentNode!=oldParentNode) + Sortable.options(oldParentNode).onChange(element); + Sortable.options(dropon.parentNode).onChange(element); + } + } else { + Sortable.mark(dropon, 'after'); + var nextElement = dropon.nextSibling || null; + if(nextElement != element) { + var oldParentNode = element.parentNode; + element.style.visibility = "hidden"; // fix gecko rendering + dropon.parentNode.insertBefore(element, nextElement); + if(dropon.parentNode!=oldParentNode) + Sortable.options(oldParentNode).onChange(element); + Sortable.options(dropon.parentNode).onChange(element); + } + } + }, + + onEmptyHover: function(element, dropon, overlap) { + var oldParentNode = element.parentNode; + var droponOptions = Sortable.options(dropon); + + if(!Element.isParent(dropon, element)) { + var index; + + var children = Sortable.findElements(dropon, {tag: droponOptions.tag, only: droponOptions.only}); + var child = null; + + if(children) { + var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap); + + for (index = 0; index < children.length; index += 1) { + if (offset - Element.offsetSize (children[index], droponOptions.overlap) >= 0) { + offset -= Element.offsetSize (children[index], droponOptions.overlap); + } else if (offset - (Element.offsetSize (children[index], droponOptions.overlap) / 2) >= 0) { + child = index + 1 < children.length ? children[index + 1] : null; + break; + } else { + child = children[index]; + break; + } + } + } + + dropon.insertBefore(element, child); + + Sortable.options(oldParentNode).onChange(element); + droponOptions.onChange(element); + } + }, + + unmark: function() { + if(Sortable._marker) Sortable._marker.hide(); + }, + + mark: function(dropon, position) { + // mark on ghosting only + var sortable = Sortable.options(dropon.parentNode); + if(sortable && !sortable.ghosting) return; + + if(!Sortable._marker) { + Sortable._marker = + ($('dropmarker') || Element.extend(document.createElement('DIV'))). + hide().addClassName('dropmarker').setStyle({position:'absolute'}); + document.getElementsByTagName("body").item(0).appendChild(Sortable._marker); + } + var offsets = Position.cumulativeOffset(dropon); + Sortable._marker.setStyle({left: offsets[0]+'px', top: offsets[1] + 'px'}); + + if(position=='after') + if(sortable.overlap == 'horizontal') + Sortable._marker.setStyle({left: (offsets[0]+dropon.clientWidth) + 'px'}); + else + Sortable._marker.setStyle({top: (offsets[1]+dropon.clientHeight) + 'px'}); + + Sortable._marker.show(); + }, + + _tree: function(element, options, parent) { + var children = Sortable.findElements(element, options) || []; + + for (var i = 0; i < children.length; ++i) { + var match = children[i].id.match(options.format); + + if (!match) continue; + + var child = { + id: encodeURIComponent(match ? match[1] : null), + element: element, + parent: parent, + children: [], + position: parent.children.length, + container: $(children[i]).down(options.treeTag) + }; + + /* Get the element containing the children and recurse over it */ + if (child.container) + this._tree(child.container, options, child); + + parent.children.push (child); + } + + return parent; + }, + + tree: function(element) { + element = $(element); + var sortableOptions = this.options(element); + var options = Object.extend({ + tag: sortableOptions.tag, + treeTag: sortableOptions.treeTag, + only: sortableOptions.only, + name: element.id, + format: sortableOptions.format + }, arguments[1] || { }); + + var root = { + id: null, + parent: null, + children: [], + container: element, + position: 0 + }; + + return Sortable._tree(element, options, root); + }, + + /* Construct a [i] index for a particular node */ + _constructIndex: function(node) { + var index = ''; + do { + if (node.id) index = '[' + node.position + ']' + index; + } while ((node = node.parent) != null); + return index; + }, + + sequence: function(element) { + element = $(element); + var options = Object.extend(this.options(element), arguments[1] || { }); + + return $(this.findElements(element, options) || []).map( function(item) { + return item.id.match(options.format) ? item.id.match(options.format)[1] : ''; + }); + }, + + setSequence: function(element, new_sequence) { + element = $(element); + var options = Object.extend(this.options(element), arguments[2] || { }); + + var nodeMap = { }; + this.findElements(element, options).each( function(n) { + if (n.id.match(options.format)) + nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode]; + n.parentNode.removeChild(n); + }); + + new_sequence.each(function(ident) { + var n = nodeMap[ident]; + if (n) { + n[1].appendChild(n[0]); + delete nodeMap[ident]; + } + }); + }, + + serialize: function(element) { + element = $(element); + var options = Object.extend(Sortable.options(element), arguments[1] || { }); + var name = encodeURIComponent( + (arguments[1] && arguments[1].name) ? arguments[1].name : element.id); + + if (options.tree) { + return Sortable.tree(element, arguments[1]).children.map( function (item) { + return [name + Sortable._constructIndex(item) + "[id]=" + + encodeURIComponent(item.id)].concat(item.children.map(arguments.callee)); + }).flatten().join('&'); + } else { + return Sortable.sequence(element, arguments[1]).map( function(item) { + return name + "[]=" + encodeURIComponent(item); + }).join('&'); + } + } +}; + +// Returns true if child is contained within element +Element.isParent = function(child, element) { + if (!child.parentNode || child == element) return false; + if (child.parentNode == element) return true; + return Element.isParent(child.parentNode, element); +}; + +Element.findChildren = function(element, only, recursive, tagName) { + if(!element.hasChildNodes()) return null; + tagName = tagName.toUpperCase(); + if(only) only = [only].flatten(); + var elements = []; + $A(element.childNodes).each( function(e) { + if(e.tagName && e.tagName.toUpperCase()==tagName && + (!only || (Element.classNames(e).detect(function(v) { return only.include(v) })))) + elements.push(e); + if(recursive) { + var grandchildren = Element.findChildren(e, only, recursive, tagName); + if(grandchildren) elements.push(grandchildren); + } + }); + + return (elements.length>0 ? elements.flatten() : []); +}; + +Element.offsetSize = function (element, type) { + return element['offset' + ((type=='vertical' || type=='height') ? 'Height' : 'Width')]; +}; \ No newline at end of file diff --git a/common/js/scriptaculous/effects.js b/common/js/scriptaculous/effects.js new file mode 100644 index 0000000..f31a81a --- /dev/null +++ b/common/js/scriptaculous/effects.js @@ -0,0 +1,1130 @@ +// script.aculo.us effects.js v1.8.2, Tue Nov 18 18:30:58 +0100 2008 + +// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) +// Contributors: +// Justin Palmer (http://encytemedia.com/) +// Mark Pilgrim (http://diveintomark.org/) +// Martin Bialasinki +// +// script.aculo.us is freely distributable under the terms of an MIT-style license. +// For details, see the script.aculo.us web site: http://script.aculo.us/ + +// converts rgb() and #xxx to #xxxxxx format, +// returns self (or first argument) if not convertable +String.prototype.parseColor = function() { + var color = '#'; + if (this.slice(0,4) == 'rgb(') { + var cols = this.slice(4,this.length-1).split(','); + var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3); + } else { + if (this.slice(0,1) == '#') { + if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase(); + if (this.length==7) color = this.toLowerCase(); + } + } + return (color.length==7 ? color : (arguments[0] || this)); +}; + +/*--------------------------------------------------------------------------*/ + +Element.collectTextNodes = function(element) { + return $A($(element).childNodes).collect( function(node) { + return (node.nodeType==3 ? node.nodeValue : + (node.hasChildNodes() ? Element.collectTextNodes(node) : '')); + }).flatten().join(''); +}; + +Element.collectTextNodesIgnoreClass = function(element, className) { + return $A($(element).childNodes).collect( function(node) { + return (node.nodeType==3 ? node.nodeValue : + ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? + Element.collectTextNodesIgnoreClass(node, className) : '')); + }).flatten().join(''); +}; + +Element.setContentZoom = function(element, percent) { + element = $(element); + element.setStyle({fontSize: (percent/100) + 'em'}); + if (Prototype.Browser.WebKit) window.scrollBy(0,0); + return element; +}; + +Element.getInlineOpacity = function(element){ + return $(element).style.opacity || ''; +}; + +Element.forceRerendering = function(element) { + try { + element = $(element); + var n = document.createTextNode(' '); + element.appendChild(n); + element.removeChild(n); + } catch(e) { } +}; + +/*--------------------------------------------------------------------------*/ + +var Effect = { + _elementDoesNotExistError: { + name: 'ElementDoesNotExistError', + message: 'The specified DOM element does not exist, but is required for this effect to operate' + }, + Transitions: { + linear: Prototype.K, + sinoidal: function(pos) { + return (-Math.cos(pos*Math.PI)/2) + .5; + }, + reverse: function(pos) { + return 1-pos; + }, + flicker: function(pos) { + var pos = ((-Math.cos(pos*Math.PI)/4) + .75) + Math.random()/4; + return pos > 1 ? 1 : pos; + }, + wobble: function(pos) { + return (-Math.cos(pos*Math.PI*(9*pos))/2) + .5; + }, + pulse: function(pos, pulses) { + return (-Math.cos((pos*((pulses||5)-.5)*2)*Math.PI)/2) + .5; + }, + spring: function(pos) { + return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6)); + }, + none: function(pos) { + return 0; + }, + full: function(pos) { + return 1; + } + }, + DefaultOptions: { + duration: 1.0, // seconds + fps: 100, // 100= assume 66fps max. + sync: false, // true for combining + from: 0.0, + to: 1.0, + delay: 0.0, + queue: 'parallel' + }, + tagifyText: function(element) { + var tagifyStyle = 'position:relative'; + if (Prototype.Browser.IE) tagifyStyle += ';zoom:1'; + + element = $(element); + $A(element.childNodes).each( function(child) { + if (child.nodeType==3) { + child.nodeValue.toArray().each( function(character) { + element.insertBefore( + new Element('span', {style: tagifyStyle}).update( + character == ' ' ? String.fromCharCode(160) : character), + child); + }); + Element.remove(child); + } + }); + }, + multiple: function(element, effect) { + var elements; + if (((typeof element == 'object') || + Object.isFunction(element)) && + (element.length)) + elements = element; + else + elements = $(element).childNodes; + + var options = Object.extend({ + speed: 0.1, + delay: 0.0 + }, arguments[2] || { }); + var masterDelay = options.delay; + + $A(elements).each( function(element, index) { + new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay })); + }); + }, + PAIRS: { + 'slide': ['SlideDown','SlideUp'], + 'blind': ['BlindDown','BlindUp'], + 'appear': ['Appear','Fade'] + }, + toggle: function(element, effect) { + element = $(element); + effect = (effect || 'appear').toLowerCase(); + var options = Object.extend({ + queue: { position:'end', scope:(element.id || 'global'), limit: 1 } + }, arguments[2] || { }); + Effect[element.visible() ? + Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options); + } +}; + +Effect.DefaultOptions.transition = Effect.Transitions.sinoidal; + +/* ------------- core effects ------------- */ + +Effect.ScopedQueue = Class.create(Enumerable, { + initialize: function() { + this.effects = []; + this.interval = null; + }, + _each: function(iterator) { + this.effects._each(iterator); + }, + add: function(effect) { + var timestamp = new Date().getTime(); + + var position = Object.isString(effect.options.queue) ? + effect.options.queue : effect.options.queue.position; + + switch(position) { + case 'front': + // move unstarted effects after this effect + this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) { + e.startOn += effect.finishOn; + e.finishOn += effect.finishOn; + }); + break; + case 'with-last': + timestamp = this.effects.pluck('startOn').max() || timestamp; + break; + case 'end': + // start effect after last queued effect has finished + timestamp = this.effects.pluck('finishOn').max() || timestamp; + break; + } + + effect.startOn += timestamp; + effect.finishOn += timestamp; + + if (!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit)) + this.effects.push(effect); + + if (!this.interval) + this.interval = setInterval(this.loop.bind(this), 15); + }, + remove: function(effect) { + this.effects = this.effects.reject(function(e) { return e==effect }); + if (this.effects.length == 0) { + clearInterval(this.interval); + this.interval = null; + } + }, + loop: function() { + var timePos = new Date().getTime(); + for(var i=0, len=this.effects.length;i= this.startOn) { + if (timePos >= this.finishOn) { + this.render(1.0); + this.cancel(); + this.event('beforeFinish'); + if (this.finish) this.finish(); + this.event('afterFinish'); + return; + } + var pos = (timePos - this.startOn) / this.totalTime, + frame = (pos * this.totalFrames).round(); + if (frame > this.currentFrame) { + this.render(pos); + this.currentFrame = frame; + } + } + }, + cancel: function() { + if (!this.options.sync) + Effect.Queues.get(Object.isString(this.options.queue) ? + 'global' : this.options.queue.scope).remove(this); + this.state = 'finished'; + }, + event: function(eventName) { + if (this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this); + if (this.options[eventName]) this.options[eventName](this); + }, + inspect: function() { + var data = $H(); + for(property in this) + if (!Object.isFunction(this[property])) data.set(property, this[property]); + return '#'; + } +}); + +Effect.Parallel = Class.create(Effect.Base, { + initialize: function(effects) { + this.effects = effects || []; + this.start(arguments[1]); + }, + update: function(position) { + this.effects.invoke('render', position); + }, + finish: function(position) { + this.effects.each( function(effect) { + effect.render(1.0); + effect.cancel(); + effect.event('beforeFinish'); + if (effect.finish) effect.finish(position); + effect.event('afterFinish'); + }); + } +}); + +Effect.Tween = Class.create(Effect.Base, { + initialize: function(object, from, to) { + object = Object.isString(object) ? $(object) : object; + var args = $A(arguments), method = args.last(), + options = args.length == 5 ? args[3] : null; + this.method = Object.isFunction(method) ? method.bind(object) : + Object.isFunction(object[method]) ? object[method].bind(object) : + function(value) { object[method] = value }; + this.start(Object.extend({ from: from, to: to }, options || { })); + }, + update: function(position) { + this.method(position); + } +}); + +Effect.Event = Class.create(Effect.Base, { + initialize: function() { + this.start(Object.extend({ duration: 0 }, arguments[0] || { })); + }, + update: Prototype.emptyFunction +}); + +Effect.Opacity = Class.create(Effect.Base, { + initialize: function(element) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + // make this work on IE on elements without 'layout' + if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout)) + this.element.setStyle({zoom: 1}); + var options = Object.extend({ + from: this.element.getOpacity() || 0.0, + to: 1.0 + }, arguments[1] || { }); + this.start(options); + }, + update: function(position) { + this.element.setOpacity(position); + } +}); + +Effect.Move = Class.create(Effect.Base, { + initialize: function(element) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + var options = Object.extend({ + x: 0, + y: 0, + mode: 'relative' + }, arguments[1] || { }); + this.start(options); + }, + setup: function() { + this.element.makePositioned(); + this.originalLeft = parseFloat(this.element.getStyle('left') || '0'); + this.originalTop = parseFloat(this.element.getStyle('top') || '0'); + if (this.options.mode == 'absolute') { + this.options.x = this.options.x - this.originalLeft; + this.options.y = this.options.y - this.originalTop; + } + }, + update: function(position) { + this.element.setStyle({ + left: (this.options.x * position + this.originalLeft).round() + 'px', + top: (this.options.y * position + this.originalTop).round() + 'px' + }); + } +}); + +// for backwards compatibility +Effect.MoveBy = function(element, toTop, toLeft) { + return new Effect.Move(element, + Object.extend({ x: toLeft, y: toTop }, arguments[3] || { })); +}; + +Effect.Scale = Class.create(Effect.Base, { + initialize: function(element, percent) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + var options = Object.extend({ + scaleX: true, + scaleY: true, + scaleContent: true, + scaleFromCenter: false, + scaleMode: 'box', // 'box' or 'contents' or { } with provided values + scaleFrom: 100.0, + scaleTo: percent + }, arguments[2] || { }); + this.start(options); + }, + setup: function() { + this.restoreAfterFinish = this.options.restoreAfterFinish || false; + this.elementPositioning = this.element.getStyle('position'); + + this.originalStyle = { }; + ['top','left','width','height','fontSize'].each( function(k) { + this.originalStyle[k] = this.element.style[k]; + }.bind(this)); + + this.originalTop = this.element.offsetTop; + this.originalLeft = this.element.offsetLeft; + + var fontSize = this.element.getStyle('font-size') || '100%'; + ['em','px','%','pt'].each( function(fontSizeType) { + if (fontSize.indexOf(fontSizeType)>0) { + this.fontSize = parseFloat(fontSize); + this.fontSizeType = fontSizeType; + } + }.bind(this)); + + this.factor = (this.options.scaleTo - this.options.scaleFrom)/100; + + this.dims = null; + if (this.options.scaleMode=='box') + this.dims = [this.element.offsetHeight, this.element.offsetWidth]; + if (/^content/.test(this.options.scaleMode)) + this.dims = [this.element.scrollHeight, this.element.scrollWidth]; + if (!this.dims) + this.dims = [this.options.scaleMode.originalHeight, + this.options.scaleMode.originalWidth]; + }, + update: function(position) { + var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position); + if (this.options.scaleContent && this.fontSize) + this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType }); + this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale); + }, + finish: function(position) { + if (this.restoreAfterFinish) this.element.setStyle(this.originalStyle); + }, + setDimensions: function(height, width) { + var d = { }; + if (this.options.scaleX) d.width = width.round() + 'px'; + if (this.options.scaleY) d.height = height.round() + 'px'; + if (this.options.scaleFromCenter) { + var topd = (height - this.dims[0])/2; + var leftd = (width - this.dims[1])/2; + if (this.elementPositioning == 'absolute') { + if (this.options.scaleY) d.top = this.originalTop-topd + 'px'; + if (this.options.scaleX) d.left = this.originalLeft-leftd + 'px'; + } else { + if (this.options.scaleY) d.top = -topd + 'px'; + if (this.options.scaleX) d.left = -leftd + 'px'; + } + } + this.element.setStyle(d); + } +}); + +Effect.Highlight = Class.create(Effect.Base, { + initialize: function(element) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || { }); + this.start(options); + }, + setup: function() { + // Prevent executing on elements not in the layout flow + if (this.element.getStyle('display')=='none') { this.cancel(); return; } + // Disable background image during the effect + this.oldStyle = { }; + if (!this.options.keepBackgroundImage) { + this.oldStyle.backgroundImage = this.element.getStyle('background-image'); + this.element.setStyle({backgroundImage: 'none'}); + } + if (!this.options.endcolor) + this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff'); + if (!this.options.restorecolor) + this.options.restorecolor = this.element.getStyle('background-color'); + // init color calculations + this._base = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this)); + this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this)); + }, + update: function(position) { + this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){ + return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart()); }.bind(this)) }); + }, + finish: function() { + this.element.setStyle(Object.extend(this.oldStyle, { + backgroundColor: this.options.restorecolor + })); + } +}); + +Effect.ScrollTo = function(element) { + var options = arguments[1] || { }, + scrollOffsets = document.viewport.getScrollOffsets(), + elementOffsets = $(element).cumulativeOffset(); + + if (options.offset) elementOffsets[1] += options.offset; + + return new Effect.Tween(null, + scrollOffsets.top, + elementOffsets[1], + options, + function(p){ scrollTo(scrollOffsets.left, p.round()); } + ); +}; + +/* ------------- combination effects ------------- */ + +Effect.Fade = function(element) { + element = $(element); + var oldOpacity = element.getInlineOpacity(); + var options = Object.extend({ + from: element.getOpacity() || 1.0, + to: 0.0, + afterFinishInternal: function(effect) { + if (effect.options.to!=0) return; + effect.element.hide().setStyle({opacity: oldOpacity}); + } + }, arguments[1] || { }); + return new Effect.Opacity(element,options); +}; + +Effect.Appear = function(element) { + element = $(element); + var options = Object.extend({ + from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0), + to: 1.0, + // force Safari to render floated elements properly + afterFinishInternal: function(effect) { + effect.element.forceRerendering(); + }, + beforeSetup: function(effect) { + effect.element.setOpacity(effect.options.from).show(); + }}, arguments[1] || { }); + return new Effect.Opacity(element,options); +}; + +Effect.Puff = function(element) { + element = $(element); + var oldStyle = { + opacity: element.getInlineOpacity(), + position: element.getStyle('position'), + top: element.style.top, + left: element.style.left, + width: element.style.width, + height: element.style.height + }; + return new Effect.Parallel( + [ new Effect.Scale(element, 200, + { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), + new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], + Object.extend({ duration: 1.0, + beforeSetupInternal: function(effect) { + Position.absolutize(effect.effects[0].element); + }, + afterFinishInternal: function(effect) { + effect.effects[0].element.hide().setStyle(oldStyle); } + }, arguments[1] || { }) + ); +}; + +Effect.BlindUp = function(element) { + element = $(element); + element.makeClipping(); + return new Effect.Scale(element, 0, + Object.extend({ scaleContent: false, + scaleX: false, + restoreAfterFinish: true, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping(); + } + }, arguments[1] || { }) + ); +}; + +Effect.BlindDown = function(element) { + element = $(element); + var elementDimensions = element.getDimensions(); + return new Effect.Scale(element, 100, Object.extend({ + scaleContent: false, + scaleX: false, + scaleFrom: 0, + scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, + restoreAfterFinish: true, + afterSetup: function(effect) { + effect.element.makeClipping().setStyle({height: '0px'}).show(); + }, + afterFinishInternal: function(effect) { + effect.element.undoClipping(); + } + }, arguments[1] || { })); +}; + +Effect.SwitchOff = function(element) { + element = $(element); + var oldOpacity = element.getInlineOpacity(); + return new Effect.Appear(element, Object.extend({ + duration: 0.4, + from: 0, + transition: Effect.Transitions.flicker, + afterFinishInternal: function(effect) { + new Effect.Scale(effect.element, 1, { + duration: 0.3, scaleFromCenter: true, + scaleX: false, scaleContent: false, restoreAfterFinish: true, + beforeSetup: function(effect) { + effect.element.makePositioned().makeClipping(); + }, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity}); + } + }); + } + }, arguments[1] || { })); +}; + +Effect.DropOut = function(element) { + element = $(element); + var oldStyle = { + top: element.getStyle('top'), + left: element.getStyle('left'), + opacity: element.getInlineOpacity() }; + return new Effect.Parallel( + [ new Effect.Move(element, {x: 0, y: 100, sync: true }), + new Effect.Opacity(element, { sync: true, to: 0.0 }) ], + Object.extend( + { duration: 0.5, + beforeSetup: function(effect) { + effect.effects[0].element.makePositioned(); + }, + afterFinishInternal: function(effect) { + effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle); + } + }, arguments[1] || { })); +}; + +Effect.Shake = function(element) { + element = $(element); + var options = Object.extend({ + distance: 20, + duration: 0.5 + }, arguments[1] || {}); + var distance = parseFloat(options.distance); + var split = parseFloat(options.duration) / 10.0; + var oldStyle = { + top: element.getStyle('top'), + left: element.getStyle('left') }; + return new Effect.Move(element, + { x: distance, y: 0, duration: split, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: -distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: -distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: -distance, y: 0, duration: split, afterFinishInternal: function(effect) { + effect.element.undoPositioned().setStyle(oldStyle); + }}); }}); }}); }}); }}); }}); +}; + +Effect.SlideDown = function(element) { + element = $(element).cleanWhitespace(); + // SlideDown need to have the content of the element wrapped in a container element with fixed height! + var oldInnerBottom = element.down().getStyle('bottom'); + var elementDimensions = element.getDimensions(); + return new Effect.Scale(element, 100, Object.extend({ + scaleContent: false, + scaleX: false, + scaleFrom: window.opera ? 0 : 1, + scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, + restoreAfterFinish: true, + afterSetup: function(effect) { + effect.element.makePositioned(); + effect.element.down().makePositioned(); + if (window.opera) effect.element.setStyle({top: ''}); + effect.element.makeClipping().setStyle({height: '0px'}).show(); + }, + afterUpdateInternal: function(effect) { + effect.element.down().setStyle({bottom: + (effect.dims[0] - effect.element.clientHeight) + 'px' }); + }, + afterFinishInternal: function(effect) { + effect.element.undoClipping().undoPositioned(); + effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); } + }, arguments[1] || { }) + ); +}; + +Effect.SlideUp = function(element) { + element = $(element).cleanWhitespace(); + var oldInnerBottom = element.down().getStyle('bottom'); + var elementDimensions = element.getDimensions(); + return new Effect.Scale(element, window.opera ? 0 : 1, + Object.extend({ scaleContent: false, + scaleX: false, + scaleMode: 'box', + scaleFrom: 100, + scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, + restoreAfterFinish: true, + afterSetup: function(effect) { + effect.element.makePositioned(); + effect.element.down().makePositioned(); + if (window.opera) effect.element.setStyle({top: ''}); + effect.element.makeClipping().show(); + }, + afterUpdateInternal: function(effect) { + effect.element.down().setStyle({bottom: + (effect.dims[0] - effect.element.clientHeight) + 'px' }); + }, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping().undoPositioned(); + effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); + } + }, arguments[1] || { }) + ); +}; + +// Bug in opera makes the TD containing this element expand for a instance after finish +Effect.Squish = function(element) { + return new Effect.Scale(element, window.opera ? 1 : 0, { + restoreAfterFinish: true, + beforeSetup: function(effect) { + effect.element.makeClipping(); + }, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping(); + } + }); +}; + +Effect.Grow = function(element) { + element = $(element); + var options = Object.extend({ + direction: 'center', + moveTransition: Effect.Transitions.sinoidal, + scaleTransition: Effect.Transitions.sinoidal, + opacityTransition: Effect.Transitions.full + }, arguments[1] || { }); + var oldStyle = { + top: element.style.top, + left: element.style.left, + height: element.style.height, + width: element.style.width, + opacity: element.getInlineOpacity() }; + + var dims = element.getDimensions(); + var initialMoveX, initialMoveY; + var moveX, moveY; + + switch (options.direction) { + case 'top-left': + initialMoveX = initialMoveY = moveX = moveY = 0; + break; + case 'top-right': + initialMoveX = dims.width; + initialMoveY = moveY = 0; + moveX = -dims.width; + break; + case 'bottom-left': + initialMoveX = moveX = 0; + initialMoveY = dims.height; + moveY = -dims.height; + break; + case 'bottom-right': + initialMoveX = dims.width; + initialMoveY = dims.height; + moveX = -dims.width; + moveY = -dims.height; + break; + case 'center': + initialMoveX = dims.width / 2; + initialMoveY = dims.height / 2; + moveX = -dims.width / 2; + moveY = -dims.height / 2; + break; + } + + return new Effect.Move(element, { + x: initialMoveX, + y: initialMoveY, + duration: 0.01, + beforeSetup: function(effect) { + effect.element.hide().makeClipping().makePositioned(); + }, + afterFinishInternal: function(effect) { + new Effect.Parallel( + [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }), + new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }), + new Effect.Scale(effect.element, 100, { + scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, + sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true}) + ], Object.extend({ + beforeSetup: function(effect) { + effect.effects[0].element.setStyle({height: '0px'}).show(); + }, + afterFinishInternal: function(effect) { + effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle); + } + }, options) + ); + } + }); +}; + +Effect.Shrink = function(element) { + element = $(element); + var options = Object.extend({ + direction: 'center', + moveTransition: Effect.Transitions.sinoidal, + scaleTransition: Effect.Transitions.sinoidal, + opacityTransition: Effect.Transitions.none + }, arguments[1] || { }); + var oldStyle = { + top: element.style.top, + left: element.style.left, + height: element.style.height, + width: element.style.width, + opacity: element.getInlineOpacity() }; + + var dims = element.getDimensions(); + var moveX, moveY; + + switch (options.direction) { + case 'top-left': + moveX = moveY = 0; + break; + case 'top-right': + moveX = dims.width; + moveY = 0; + break; + case 'bottom-left': + moveX = 0; + moveY = dims.height; + break; + case 'bottom-right': + moveX = dims.width; + moveY = dims.height; + break; + case 'center': + moveX = dims.width / 2; + moveY = dims.height / 2; + break; + } + + return new Effect.Parallel( + [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }), + new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}), + new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }) + ], Object.extend({ + beforeStartInternal: function(effect) { + effect.effects[0].element.makePositioned().makeClipping(); + }, + afterFinishInternal: function(effect) { + effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); } + }, options) + ); +}; + +Effect.Pulsate = function(element) { + element = $(element); + var options = arguments[1] || { }, + oldOpacity = element.getInlineOpacity(), + transition = options.transition || Effect.Transitions.linear, + reverser = function(pos){ + return 1 - transition((-Math.cos((pos*(options.pulses||5)*2)*Math.PI)/2) + .5); + }; + + return new Effect.Opacity(element, + Object.extend(Object.extend({ duration: 2.0, from: 0, + afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); } + }, options), {transition: reverser})); +}; + +Effect.Fold = function(element) { + element = $(element); + var oldStyle = { + top: element.style.top, + left: element.style.left, + width: element.style.width, + height: element.style.height }; + element.makeClipping(); + return new Effect.Scale(element, 5, Object.extend({ + scaleContent: false, + scaleX: false, + afterFinishInternal: function(effect) { + new Effect.Scale(element, 1, { + scaleContent: false, + scaleY: false, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping().setStyle(oldStyle); + } }); + }}, arguments[1] || { })); +}; + +Effect.Morph = Class.create(Effect.Base, { + initialize: function(element) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + var options = Object.extend({ + style: { } + }, arguments[1] || { }); + + if (!Object.isString(options.style)) this.style = $H(options.style); + else { + if (options.style.include(':')) + this.style = options.style.parseStyle(); + else { + this.element.addClassName(options.style); + this.style = $H(this.element.getStyles()); + this.element.removeClassName(options.style); + var css = this.element.getStyles(); + this.style = this.style.reject(function(style) { + return style.value == css[style.key]; + }); + options.afterFinishInternal = function(effect) { + effect.element.addClassName(effect.options.style); + effect.transforms.each(function(transform) { + effect.element.style[transform.style] = ''; + }); + }; + } + } + this.start(options); + }, + + setup: function(){ + function parseColor(color){ + if (!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff'; + color = color.parseColor(); + return $R(0,2).map(function(i){ + return parseInt( color.slice(i*2+1,i*2+3), 16 ); + }); + } + this.transforms = this.style.map(function(pair){ + var property = pair[0], value = pair[1], unit = null; + + if (value.parseColor('#zzzzzz') != '#zzzzzz') { + value = value.parseColor(); + unit = 'color'; + } else if (property == 'opacity') { + value = parseFloat(value); + if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout)) + this.element.setStyle({zoom: 1}); + } else if (Element.CSS_LENGTH.test(value)) { + var components = value.match(/^([\+\-]?[0-9\.]+)(.*)$/); + value = parseFloat(components[1]); + unit = (components.length == 3) ? components[2] : null; + } + + var originalValue = this.element.getStyle(property); + return { + style: property.camelize(), + originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0), + targetValue: unit=='color' ? parseColor(value) : value, + unit: unit + }; + }.bind(this)).reject(function(transform){ + return ( + (transform.originalValue == transform.targetValue) || + ( + transform.unit != 'color' && + (isNaN(transform.originalValue) || isNaN(transform.targetValue)) + ) + ); + }); + }, + update: function(position) { + var style = { }, transform, i = this.transforms.length; + while(i--) + style[(transform = this.transforms[i]).style] = + transform.unit=='color' ? '#'+ + (Math.round(transform.originalValue[0]+ + (transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart() + + (Math.round(transform.originalValue[1]+ + (transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart() + + (Math.round(transform.originalValue[2]+ + (transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() : + (transform.originalValue + + (transform.targetValue - transform.originalValue) * position).toFixed(3) + + (transform.unit === null ? '' : transform.unit); + this.element.setStyle(style, true); + } +}); + +Effect.Transform = Class.create({ + initialize: function(tracks){ + this.tracks = []; + this.options = arguments[1] || { }; + this.addTracks(tracks); + }, + addTracks: function(tracks){ + tracks.each(function(track){ + track = $H(track); + var data = track.values().first(); + this.tracks.push($H({ + ids: track.keys().first(), + effect: Effect.Morph, + options: { style: data } + })); + }.bind(this)); + return this; + }, + play: function(){ + return new Effect.Parallel( + this.tracks.map(function(track){ + var ids = track.get('ids'), effect = track.get('effect'), options = track.get('options'); + var elements = [$(ids) || $$(ids)].flatten(); + return elements.map(function(e){ return new effect(e, Object.extend({ sync:true }, options)) }); + }).flatten(), + this.options + ); + } +}); + +Element.CSS_PROPERTIES = $w( + 'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' + + 'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' + + 'borderRightColor borderRightStyle borderRightWidth borderSpacing ' + + 'borderTopColor borderTopStyle borderTopWidth bottom clip color ' + + 'fontSize fontWeight height left letterSpacing lineHeight ' + + 'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+ + 'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' + + 'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' + + 'right textIndent top width wordSpacing zIndex'); + +Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/; + +String.__parseStyleElement = document.createElement('div'); +String.prototype.parseStyle = function(){ + var style, styleRules = $H(); + if (Prototype.Browser.WebKit) + style = new Element('div',{style:this}).style; + else { + String.__parseStyleElement.innerHTML = '
    '; + style = String.__parseStyleElement.childNodes[0].style; + } + + Element.CSS_PROPERTIES.each(function(property){ + if (style[property]) styleRules.set(property, style[property]); + }); + + if (Prototype.Browser.IE && this.include('opacity')) + styleRules.set('opacity', this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]); + + return styleRules; +}; + +if (document.defaultView && document.defaultView.getComputedStyle) { + Element.getStyles = function(element) { + var css = document.defaultView.getComputedStyle($(element), null); + return Element.CSS_PROPERTIES.inject({ }, function(styles, property) { + styles[property] = css[property]; + return styles; + }); + }; +} else { + Element.getStyles = function(element) { + element = $(element); + var css = element.currentStyle, styles; + styles = Element.CSS_PROPERTIES.inject({ }, function(results, property) { + results[property] = css[property]; + return results; + }); + if (!styles.opacity) styles.opacity = element.getOpacity(); + return styles; + }; +} + +Effect.Methods = { + morph: function(element, style) { + element = $(element); + new Effect.Morph(element, Object.extend({ style: style }, arguments[2] || { })); + return element; + }, + visualEffect: function(element, effect, options) { + element = $(element); + var s = effect.dasherize().camelize(), klass = s.charAt(0).toUpperCase() + s.substring(1); + new Effect[klass](element, options); + return element; + }, + highlight: function(element, options) { + element = $(element); + new Effect.Highlight(element, options); + return element; + } +}; + +$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+ + 'pulsate shake puff squish switchOff dropOut').each( + function(effect) { + Effect.Methods[effect] = function(element, options){ + element = $(element); + Effect[effect.charAt(0).toUpperCase() + effect.substring(1)](element, options); + return element; + }; + } +); + +$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each( + function(f) { Effect.Methods[f] = Element[f]; } +); + +Element.addMethods(Effect.Methods); \ No newline at end of file diff --git a/common/js/scriptaculous/index.html b/common/js/scriptaculous/index.html new file mode 100644 index 0000000..e69de29 diff --git a/common/js/scriptaculous/scriptaculous.js b/common/js/scriptaculous/scriptaculous.js new file mode 100644 index 0000000..3e5543b --- /dev/null +++ b/common/js/scriptaculous/scriptaculous.js @@ -0,0 +1,60 @@ +// script.aculo.us scriptaculous.js v1.8.2, Tue Nov 18 18:30:58 +0100 2008 + +// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// For details, see the script.aculo.us web site: http://script.aculo.us/ + +var Scriptaculous = { + Version: '1.8.2', + require: function(libraryName) { + // inserting via DOM fails in Safari 2.0, so brute force approach + document.write('\n"; + echo ""; + exit; +} + +function metaGo($sURL){ + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + exit; +} + +function jsMsg($msg="") +{ + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; +} + +function jsHistory($hist="-1") +{ + echo "\n"; + exit; +} + +function selfClose(){ + echo "\n"; + exit; +} + +?> \ No newline at end of file diff --git a/common/lib/index.html b/common/lib/index.html new file mode 100644 index 0000000..e69de29 diff --git a/common/lib/navigation.inc.php b/common/lib/navigation.inc.php new file mode 100644 index 0000000..a393cbe --- /dev/null +++ b/common/lib/navigation.inc.php @@ -0,0 +1,133 @@ += 1){ + // 오프셋이 없거나 잘못되어 있을경우 초기화 + if (empty($offset) || ($offset < 0) || ($offset > $total)) { + $offset=0; + } + + // 처음 페이지 + if($offset=="0"){ + $link_array[][] = "처음페이지"; + }else{ + $link_array[][] = "이전페이지"; + } + + // 이전 scale 갯수의 페이지 설정 + if($offset+1 > $scale*$pagescale){ + $pre_page= $offset - $scale*$pagescale ; + $link_array[][] = "이전페이지"; + } + + // 이전 1페이지 링크 설정 + if (($offset > 0) && ($offset <= $total)) { + $prevoffset = $offset - $scale; + //$link_array[][] = ""; + }else{ + //$link_array[][] = ""; + } + + //$link_array[][] = " "; + + // 목록 하단 페이지 링크 설정 + $pages=intval($total/$scale); + if ($total % $scale) { + $pages++; + } + + for($i=0; $i < $pagescale ; $i++){ + $ln = ($page * $pagescale + $i)*$scale ; + $vk= $page * $pagescale + $i+1 ; + if($ln<$total){ + if($ln!=$offset){ + $link_array[][] = " $vk "; + }else{ + $link_array[][] = " $vk "; + } + + if($i != $pagescale-1 && $pages !=1){ + $link_array[][] = " "; + } + } + + } + + + //$link_array[][] = " "; + + // 다음 1페이지 설정 +// if (!(($offset/$scale)==$pages) && $pages!=1) { + if (!(($offset/$scale)==$pages)) { + $newoffset=$offset+$scale; + + if((($total - $offset) > $scale) && ($pages !=1) && ($offset < $total)){ + //$link_array[][] = ""; + }else{ + //$link_array[][] = ""; + } + } + + // 다음 scale 갯수의 페이지 설정 + if($total > (($page+1)*$scale*$pagescale)){ + $next_page= ($page+1)*$scale*$pagescale ; + $link_array[][] = "다음페이지"; + } + + // 끝 페이지 + $lastoffset = $total-($total%$scale); + if($lastoffset==$total){ + $lastoffset=$lastoffset-$scale; + } + if($total>$scale){ + $link_array[][] = "마지막페이지"; + }else{ + $link_array[][] = "마지막페이지"; + } + }else{ + // 목록이 없을경우 표시안함. + ; + } + + // 위에서 받은 링크를 배열값으로 반환 + //return $link_array; + for($t=0;$t= 1){ + // 오프셋이 없거나 잘못되어 있을경우 초기화 + if (empty($offset) || ($offset < 0) || ($offset > $total)) { + $offset=0; + } + + for($i=0; $i < $pagescale ; $i++){ + $ln = ($page * $pagescale + $i)*$scale ; + $vk= $page * $pagescale + $i+1 ; + if($ln<$total){ + if($ln!=$offset){ + echo ""; + // $link_array[][] = " $vk "; + }else{ + //$link_array[][] = " $vk "; + } + + if($i != $pagescale-1 && $pages !=1){ + $link_array[][] = " "; + } + } + } + } +} +?> \ No newline at end of file diff --git a/common/lib/navigationB.inc.php b/common/lib/navigationB.inc.php new file mode 100644 index 0000000..70f26d2 --- /dev/null +++ b/common/lib/navigationB.inc.php @@ -0,0 +1,109 @@ +"; + if($total >= 1){ + // 오프셋이 없거나 잘못되어 있을경우 초기화 + if (empty($offset) || ($offset < 0) || ($offset > $total)) { + $offset=0; + } + + // 처음 페이지 + if($offset=="0"){ + $link_array[][] = "
  • 처음
  • "; + }else{ + $link_array[][] = "
  • 처음
  • "; + } + + // 이전 scale 갯수의 페이지 설정 + if($offset+1 > $scale*$pagescale){ + $pre_page= $offset - $scale*$pagescale ; + $link_array[][] = "
  • 이전
  • "; + } + + // 이전 1페이지 링크 설정 + if (($offset > 0) && ($offset <= $total)) { + $prevoffset = $offset - $scale; + //$link_array[][] = ""; + }else{ + //$link_array[][] = ""; + } + + //$link_array[][] = " "; + + // 목록 하단 페이지 링크 설정 + $pages=intval($total/$scale); + if ($total % $scale) { + $pages++; + } + + for($i=0; $i < $pagescale ; $i++){ + $ln = ($page * $pagescale + $i)*$scale ; + $vk= $page * $pagescale + $i+1 ; + if($ln<$total){ + if($ln!=$offset){ + $link_array[][] = "
  • $vk
  • "; + }else{ + $link_array[][] = "
  • $vk
  • "; + } + + if($i != $pagescale-1 && $pages !=1){ + $link_array[][] = " "; + } + } + + } + + + //$link_array[][] = " "; + + // 다음 1페이지 설정 +// if (!(($offset/$scale)==$pages) && $pages!=1) { + if (!(($offset/$scale)==$pages)) { + $newoffset=$offset+$scale; + + if((($total - $offset) > $scale) && ($pages !=1) && ($offset < $total)){ + //$link_array[][] = ""; + }else{ + //$link_array[][] = ""; + } + } + + // 다음 scale 갯수의 페이지 설정 + if($total > (($page+1)*$scale*$pagescale)){ + $next_page= ($page+1)*$scale*$pagescale ; + $link_array[][] = "
  • 다음
  • "; + } + + // 끝 페이지 + $lastoffset = $total-($total%$scale); + if($lastoffset==$total){ + $lastoffset=$lastoffset-$scale; + } + if($total>$scale){ + if($lastoffset==$offset){ + $link_array[][] = "
  • 마지막
  • "; + }else{ + $link_array[][] = "
  • 마지막
  • "; + } + }else{ + $link_array[][] = "
  • 마지막
  • "; + } + }else{ + // 목록이 없을경우 표시안함. + ; + } + + $link_array[][] = ""; + // 위에서 받은 링크를 배열값으로 반환 + //return $link_array; + for($t=0;$t \ No newline at end of file diff --git a/common/lib/phpmailer.inc.php b/common/lib/phpmailer.inc.php new file mode 100644 index 0000000..4726857 --- /dev/null +++ b/common/lib/phpmailer.inc.php @@ -0,0 +1,116 @@ +SMTPDebug = SMTP::DEBUG_SERVER; // Enable verbose debug output + }else if($debug=="2"){ + $mail->SMTPDebug = 4; + } + //$mail->SMTPDebug = 4; + $mail->isSMTP(); // Send using SMTP + //$mail->Host = 'smtp.daum.net'; // Set the SMTP server to send through + //$mail->Username = 'daum@daum.net'; // SMTP username + //$mail->Password = 'daum@daum.net password'; // SMTP password + //$mail->Port = 587; // TCP port to connect to + $mail->Host = $smtpData["HOST"]; // Set the SMTP server to send through + $mail->Username = $smtpData["USERNAME"]; // SMTP username + $mail->Password = $smtpData["PASSWORD"]; // SMTP password + $mail->Port = $smtpData["PORT"]; // TCP port to connect to + $mail->SMTPAuth = true; // Enable SMTP authentication + if($smtpData["SSL"]=="Y"){ + $mail->SMTPSecure = "ssl"; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted + }else{ + $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted + } + + $mail->setLanguage('ko', $_SERVER["DOCUMENT_ROOT"].'/common/lib/PHPMailer/vendor/phpmailer/phpmailer/language/'); + $mail->CharSet = "UTF-8"; + + + //$mail->addAddress('ellen@example.com'); // Name is optional + //$mail->addReplyTo('info@example.com', 'Information'); + //$mail->addCC('phpclub@hanmail.net'); + //$mail->addBCC('bcc@example.com'); + + $mail->setFrom($fromMail, '"'.$fromName.'"'); + + //받는사람 (메일주소) + /* + $arrMailTo = preg_split("/[,;]/",$mailTo); + foreach($arrMailTo AS $key=>$val){ + $mail->addAddress(trim($val)); // Add a recipient + } + */ + //받는 사람은 한명만 + $mail->addAddress(trim($mailTo), '"'.$mailToName.'"'); // Add a recipient + + //회신 메일주소 + $mail->addReplyTo($replyMail); + + //받는사람 CC (메일주소) + if($mailCC){ + $arrCC = preg_split("/[,;]/", $mailCC); + foreach($arrCC AS $key=>$val){ + $mail->addCC(trim($val)); // Add a recipient + } + } + + //받는사람 BCC (메일주소) + if($mailBCC){ + $arrBCC = preg_split("/[,;]/", $mailBCC); + foreach($arrBCC AS $key=>$val){ + $mail->addBCC(trim($val)); // Add a recipient + } + } + + //첨부파일 + // Attachments array(array('/src/filename', '첨부파일명'),array('/src/filename', '첨부파일명')) + if($attachFiles){ + foreach($attachFiles AS $src=>$name){ + $mail->addAttachment($name[0], $name[1]); // Optional name + } + } + + // Content + if($useHTML=="Y"){ + $mail->isHTML(true); // Set email format to HTML + }else{ + $mail->isHTML(false); // Set email format to TEXT + $body = str_replace("\\","",$body); + $body = htmlspecialchars($body); + $body = nl2br($body); + } + $mail->Subject = $subject; + $mail->Body = $body; + //$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; + + //Send the message, check for errors + if ($mail->send()) { + //echo 'Mailer Error: ' . $mail->ErrorInfo; + return true; + } else { + return false; + //return $mail->ErrorInfo; + } + } catch (Exception $e) { + return false; + //return $mail->ErrorInfo; + //echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"; + } +} +?> diff --git a/common/lib/sendmail_sample.php b/common/lib/sendmail_sample.php new file mode 100644 index 0000000..1cae90f --- /dev/null +++ b/common/lib/sendmail_sample.php @@ -0,0 +1,29 @@ + diff --git a/common/lib/smtpclass.inc.php b/common/lib/smtpclass.inc.php new file mode 100644 index 0000000..864530d --- /dev/null +++ b/common/lib/smtpclass.inc.php @@ -0,0 +1,262 @@ +debug(); //Ҷ +// $mail->attach("Ϲ", "̸", "Ÿ"); +// $mail->send("receiver@mail", "sender@mail", "subject", "contents");-> +// $mail->send("receiver@mail", "sender@mail", "subject", "contents", $text_html="y");-> +// ,ָ,׶,帲,ڸƴ,ѹ̸,,Ƽ ׽Ʈ Ȯ. +// ȣƮ Ӱ IP DNS LOOKUP ǿ ƾ ޾Ƶ. +// ȣƮ ( ° Ͽ ź) + +class smtp{ + var $host; + var $fp; + var $self; + var $lastmsg; + var $parts; + var $error; + var $debug; + var $charset; + var $ctype; + + function smtp($host="localhost"){ + if($host == "self") $this->self = true; + else $this->host = $host; + + $this->parts = array(); + $this->error = array(); + $this->debug = 0; + $this->charset = "utf-8"; + $this->ctype = "text/html"; + } + + // : 1 + function debug($n=1){ + $this->debug = $n; + } + + // smtp Ѵ. + function dialogue($code, $cmd){ + fputs($this->fp, $cmd."\r\n"); + $line = fgets($this->fp, 1024); + preg_match("/^([0-9]+).(.*)$/", $line, $data); + $this->lastmsg = $data[0]; + + if($this->debug){ + echo htmlspecialchars($cmd)."
    ".$this->lastmsg."
    "; + flush(); + } + + if($data[1] != $code) return false; + return true; + } + + // smptp Ѵ. + function smtp_connect($host){ + if($this->debug){ + echo "SMTP($host) Connecting...
    "; + flush(); + } + + if(!$host) $host = $this->host; + + if(!$this->fp = @fsockopen($host, 25, $errno, $errstr, 10)){ + $this->lastmsg = "SMTP($host) ӿ ߽ϴ.[$errno:$errstr]"; + return false; + } + + $line = fgets($this->fp, 1024); + preg_match("/^([0-9]+).(.*)$/", $line, $data); + $this->lastmsg = $data[0]; + if($data[1] != "220") return false; + + if($this->debug){ + echo $this->lastmsg."
    "; + flush(); + } + + $this->dialogue(250, "HELO phpmail"); + return true; + } + + // stmp ´. + function smtp_close(){ + $this->dialogue(221, "QUIT"); + fclose($this->fp); + return true; + } + + // ޽ . + function smtp_send($email, $from, $data){ + if(!$mail_from = $this->get_email($from)) return false; + if(!$rcpt_to = $this->get_email($email)) return false; + + if($this->self == false) { + $username = "isac"; //the login for your smtp + $password = "mail!!qaz321"; //the pass for your smtp + if(!$this->dialogue(334, "AUTH LOGIN")) return false; + if(!$this->dialogue(334, base64_encode($username))) return false; + if(!$this->dialogue(235, base64_encode($password))) return false; + } + + if(!$this->dialogue(250, "MAIL FROM:$mail_from")) + $this->error[] = $email.":MAIL FROM ($this->lastmsg)"; + + if(!$this->dialogue(250, "RCPT TO:$rcpt_to")) + $this->error[] = $email.":RCPT TO ($this->lastmsg)"; + + $this->dialogue(354, "DATA"); + $mime = "Message-ID: <".$this->get_message_id().">\r\n"; + $mime .= "From: $from\r\n"; + $mime .= "To: $email\r\n"; + + fputs($this->fp, $mime); + fputs($this->fp, $data); + $this->dialogue(250, "."); + } + + // Message ID ´. + function get_message_id(){ + $id = date("YmdHis",time()); + mt_srand((float) microtime() * 1000000); + $randval = mt_rand(); + $id .= $randval."@phpmail"; + return $id; + } + + // Boundary ´. + function get_boundary(){ + $uniqchr = uniqid(time()); + $one = strtoupper($uniqchr[0]); + $two = strtoupper(substr($uniqchr,0,8)); + $three = strtoupper(substr(strrev($uniqchr),0,8)); + return "----=_NextPart_000_000${one}_${two}.${three}"; + } + + // ÷ Լ ̿ ÷Ѵ. + function attach($path, $name="", $ctype="application/octet-stream"){ + if(file_exists($path)){ + $fp = fopen($path, "r"); + $message = fread($fp, filesize($path)); + fclose($fp); + $this->parts[] = array ("ctype" => $ctype, "message" => $message, "name" => $name); + }else return false; + } + + // Multipart ޽ Ų. + function build_message($part){ + $msg .= "Content-Type: ".$part['ctype']; + if($part['name']) $msg .= "; name=\"".$part['name']."\""; + $msg .= "\r\nContent-Transfer-Encoding: base64\r\n"; + $msg .= "Content-Disposition: attachment; filename=\"".$part['name']."\"\r\n\r\n"; + $msg .= chunk_split(base64_encode($part['message'])); + return $msg; + } + + // SMTP DATA Ų. +//function build_data($subject, $body){ + function build_data($subject, $body, $text_html="y"){ + //mail html or text ߰ + if($text_html=="y"){ + $body = str_replace("\\","",$body); + $body = $body; + }else{ + $body = str_replace("\\","",$body); + $body = htmlspecialchars($body); + $body = nl2br($body); + } + //mail html or text ߰ + + $boundary = $this->get_boundary(); + + $subject = "=?EUC-KR?B?".base64_encode(iconv("UTF-8","EUC-KR",$subject))."?=\r\n"; + + $mime .= "Subject: ".$subject; + $mime .= "Date: ".date ("D, j M Y H:i:s T",time())."\r\n"; + $mime .= "MIME-Version: 1.0\r\n"; + $mime .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"\r\n\r\n". + "This is a multi-part message in MIME format.\r\n\r\n"; + + $mime .= "--".$boundary."\r\n". + "Content-Type: ".$this->ctype."; charset=\"".$this->charset."\"\r\n". + "Content-Transfer-Encoding: base64\r\n\r\n". + chunk_split(base64_encode($body)). + "\r\n\r\n--".$boundary; + + $max = count($this->parts); + + for($i=0; $i<$max; $i++){ + $mime .= "\r\n".$this->build_message($this->parts[$i])."\r\n\r\n--".$boundary; + } + + $mime .= "--\r\n"; + + return $mime; + } + + // MX ã´. + function get_mx_server($email){ + if(!preg_match("/([\._0-9a-zA-Z-]+)@([0-9a-zA-Z-]+\.[a-zA-Z\.]+)/i", $email, $reg)) return false; + + getmxrr($reg[2], $host); + if(!$host) $host[0] = $reg[2]; + + return $host; + } + + // ̸ ´ üũѴ. + function get_email($email){ + if(!preg_match("/([\._0-9a-zA-Z-]+)@([0-9a-zA-Z-]+\.[a-zA-Z\.]+)/i", $email, $reg)) return false; + return "<".$reg[0].">"; + } + + // Ѵ. +//function send($to, $from, $subject, $body){ + function send($to, $from, $subject, $body, $text_html="y"){ + if(!is_array($to)) $to = explode("[,;]",$to); + if($this->self){ + // $data = $this->build_data($subject, $body); + $data = $this->build_data($subject, $body, $text_html); + foreach($to as $email){ + if($host = $this->get_mx_server($email)){ + $flag = false; $i = 0; + while($flag == false){ + if($host[$i]){ + $flag = $this->smtp_connect($host[$i]); + $i++; + } else break; + } + + if($flag){ + $this->smtp_send($email, $from, $data); + //$this->smtp_close();ȣ ݾ + }else{ + $this->error[] = $email.":SMTP ӽ"; + } + }else{ + $this->error[] = $email.": ߸"; + } + } + }else{ + if(!$this->smtp_connect($this->host)){ + $this->error[] = "$this->host SMTP ӽ"; + return false; + } + +// $data = $this->build_data($subject, $body); + $data = $this->build_data($subject, $body, $text_html); + + foreach($to as $email) $this->smtp_send($email, $from, $data); + //$this->smtp_close(); -> ȣ ݾ + } + } +}//end class +?> \ No newline at end of file diff --git a/common/lib/summernote/font/summernote.eot b/common/lib/summernote/font/summernote.eot new file mode 100644 index 0000000..4f047db Binary files /dev/null and b/common/lib/summernote/font/summernote.eot differ diff --git a/common/lib/summernote/font/summernote.ttf b/common/lib/summernote/font/summernote.ttf new file mode 100644 index 0000000..64ef84c Binary files /dev/null and b/common/lib/summernote/font/summernote.ttf differ diff --git a/common/lib/summernote/font/summernote.woff b/common/lib/summernote/font/summernote.woff new file mode 100644 index 0000000..dfd4f66 Binary files /dev/null and b/common/lib/summernote/font/summernote.woff differ diff --git a/common/lib/summernote/font/summernote.woff2 b/common/lib/summernote/font/summernote.woff2 new file mode 100644 index 0000000..40b2030 Binary files /dev/null and b/common/lib/summernote/font/summernote.woff2 differ diff --git a/common/lib/summernote/lang/summernote-ar-AR.js b/common/lib/summernote/lang/summernote-ar-AR.js new file mode 100644 index 0000000..7438c04 --- /dev/null +++ b/common/lib/summernote/lang/summernote-ar-AR.js @@ -0,0 +1,274 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 7); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 7: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'ar-AR': { + font: { + bold: 'عريض', + italic: 'مائل', + underline: 'تحته خط', + clear: 'مسح التنسيق', + height: 'إرتفاع السطر', + name: 'الخط', + strikethrough: 'فى وسطه خط', + subscript: 'مخطوطة', + superscript: 'حرف فوقي', + size: 'الحجم' + }, + image: { + image: 'صورة', + insert: 'إضافة صورة', + resizeFull: 'الحجم بالكامل', + resizeHalf: 'تصغير للنصف', + resizeQuarter: 'تصغير للربع', + floatLeft: 'تطيير لليسار', + floatRight: 'تطيير لليمين', + floatNone: 'ثابته', + shapeRounded: 'الشكل: تقريب', + shapeCircle: 'الشكل: دائرة', + shapeThumbnail: 'الشكل: صورة مصغرة', + shapeNone: 'الشكل: لا شيء', + dragImageHere: 'إدرج الصورة هنا', + dropImage: 'إسقاط صورة أو نص', + selectFromFiles: 'حدد ملف', + maximumFileSize: 'الحد الأقصى لحجم الملف', + maximumFileSizeError: 'تم تجاوز الحد الأقصى لحجم الملف', + url: 'رابط الصورة', + remove: 'حذف الصورة', + original: 'Original' + }, + video: { + video: 'فيديو', + videoLink: 'رابط الفيديو', + insert: 'إدراج الفيديو', + url: 'رابط الفيديو', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)' + }, + link: { + link: 'رابط', + insert: 'إدراج', + unlink: 'حذف الرابط', + edit: 'تعديل', + textToDisplay: 'النص', + url: 'مسار الرابط', + openInNewWindow: 'فتح في نافذة جديدة' + }, + table: { + table: 'جدول', + addRowAbove: 'إضافة سطر أعلاه', + addRowBelow: 'إضافة سطر أدناه', + addColLeft: 'إضافة عمود قبله', + addColRight: 'إضافة عمود بعده', + delRow: 'حذف سطر', + delCol: 'حذف عمود', + delTable: 'حذف الجدول' + }, + hr: { + insert: 'إدراج خط أفقي' + }, + style: { + style: 'تنسيق', + p: 'عادي', + blockquote: 'إقتباس', + pre: 'شفيرة', + h1: 'عنوان رئيسي 1', + h2: 'عنوان رئيسي 2', + h3: 'عنوان رئيسي 3', + h4: 'عنوان رئيسي 4', + h5: 'عنوان رئيسي 5', + h6: 'عنوان رئيسي 6' + }, + lists: { + unordered: 'قائمة مُنقطة', + ordered: 'قائمة مُرقمة' + }, + options: { + help: 'مساعدة', + fullscreen: 'حجم الشاشة بالكامل', + codeview: 'شفيرة المصدر' + }, + paragraph: { + paragraph: 'فقرة', + outdent: 'محاذاة للخارج', + indent: 'محاذاة للداخل', + left: 'محاذاة لليسار', + center: 'توسيط', + right: 'محاذاة لليمين', + justify: 'ملئ السطر' + }, + color: { + recent: 'تم إستخدامه', + more: 'المزيد', + background: 'لون الخلفية', + foreground: 'لون النص', + transparent: 'شفاف', + setTransparent: 'بدون خلفية', + reset: 'إعادة الضبط', + resetToDefault: 'إعادة الضبط', + cpSelect: 'اختار' + }, + shortcut: { + shortcuts: 'إختصارات', + close: 'غلق', + textFormatting: 'تنسيق النص', + action: 'Action', + paragraphFormatting: 'تنسيق الفقرة', + documentStyle: 'تنسيق المستند', + extraKeys: 'أزرار إضافية' + }, + help: { + 'insertParagraph': 'إدراج فقرة', + 'undo': 'تراجع عن آخر أمر', + 'redo': 'إعادة تنفيذ آخر أمر', + 'tab': 'إزاحة (تاب)', + 'untab': 'سحب النص باتجاه البداية', + 'bold': 'تنسيق عريض', + 'italic': 'تنسيق مائل', + 'underline': 'تنسيق خط سفلي', + 'strikethrough': 'تنسيق خط متوسط للنص', + 'removeFormat': 'إزالة التنسيقات', + 'justifyLeft': 'محاذاة لليسار', + 'justifyCenter': 'محاذاة توسيط', + 'justifyRight': 'محاذاة لليمين', + 'justifyFull': 'محاذاة كاملة', + 'insertUnorderedList': 'قائمة منقّطة', + 'insertOrderedList': 'قائمة مرقّمة', + 'outdent': 'إزاحة للأمام على الفقرة الحالية', + 'indent': 'إزاحة للخلف على الفقرة الحالية', + 'formatPara': 'تغيير التنسيق للكتلة الحالية إلى فقرة', + 'formatH1': 'تغيير التنسيق للكتلة الحالية إلى ترويسة 1', + 'formatH2': 'تغيير التنسيق للكتلة الحالية إلى ترويسة 2', + 'formatH3': 'تغيير التنسيق للكتلة الحالية إلى ترويسة 3', + 'formatH4': 'تغيير التنسيق للكتلة الحالية إلى ترويسة 4', + 'formatH5': 'تغيير التنسيق للكتلة الحالية إلى ترويسة 5', + 'formatH6': 'تغيير التنسيق للكتلة الحالية إلى ترويسة 6', + 'insertHorizontalRule': 'إدراج خط أفقي', + 'linkDialog.show': 'إظهار خصائص الرابط' + }, + history: { + undo: 'تراجع', + redo: 'إعادة' + }, + specialChar: { + specialChar: 'محارف خاصة', + select: 'اختر المحرف الخاص' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-ar-AR.min.js b/common/lib/summernote/lang/summernote-ar-AR.min.js new file mode 100644 index 0000000..159b47a --- /dev/null +++ b/common/lib/summernote/lang/summernote-ar-AR.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-ar-AR.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=7)}({7:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"ar-AR":{font:{bold:"عريض",italic:"مائل",underline:"تحته خط",clear:"مسح التنسيق",height:"إرتفاع السطر",name:"الخط",strikethrough:"فى وسطه خط",subscript:"مخطوطة",superscript:"حرف فوقي",size:"الحجم"},image:{image:"صورة",insert:"إضافة صورة",resizeFull:"الحجم بالكامل",resizeHalf:"تصغير للنصف",resizeQuarter:"تصغير للربع",floatLeft:"تطيير لليسار",floatRight:"تطيير لليمين",floatNone:"ثابته",shapeRounded:"الشكل: تقريب",shapeCircle:"الشكل: دائرة",shapeThumbnail:"الشكل: صورة مصغرة",shapeNone:"الشكل: لا شيء",dragImageHere:"إدرج الصورة هنا",dropImage:"إسقاط صورة أو نص",selectFromFiles:"حدد ملف",maximumFileSize:"الحد الأقصى لحجم الملف",maximumFileSizeError:"تم تجاوز الحد الأقصى لحجم الملف",url:"رابط الصورة",remove:"حذف الصورة",original:"Original"},video:{video:"فيديو",videoLink:"رابط الفيديو",insert:"إدراج الفيديو",url:"رابط الفيديو",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)"},link:{link:"رابط",insert:"إدراج",unlink:"حذف الرابط",edit:"تعديل",textToDisplay:"النص",url:"مسار الرابط",openInNewWindow:"فتح في نافذة جديدة"},table:{table:"جدول",addRowAbove:"إضافة سطر أعلاه",addRowBelow:"إضافة سطر أدناه",addColLeft:"إضافة عمود قبله",addColRight:"إضافة عمود بعده",delRow:"حذف سطر",delCol:"حذف عمود",delTable:"حذف الجدول"},hr:{insert:"إدراج خط أفقي"},style:{style:"تنسيق",p:"عادي",blockquote:"إقتباس",pre:"شفيرة",h1:"عنوان رئيسي 1",h2:"عنوان رئيسي 2",h3:"عنوان رئيسي 3",h4:"عنوان رئيسي 4",h5:"عنوان رئيسي 5",h6:"عنوان رئيسي 6"},lists:{unordered:"قائمة مُنقطة",ordered:"قائمة مُرقمة"},options:{help:"مساعدة",fullscreen:"حجم الشاشة بالكامل",codeview:"شفيرة المصدر"},paragraph:{paragraph:"فقرة",outdent:"محاذاة للخارج",indent:"محاذاة للداخل",left:"محاذاة لليسار",center:"توسيط",right:"محاذاة لليمين",justify:"ملئ السطر"},color:{recent:"تم إستخدامه",more:"المزيد",background:"لون الخلفية",foreground:"لون النص",transparent:"شفاف",setTransparent:"بدون خلفية",reset:"إعادة الضبط",resetToDefault:"إعادة الضبط",cpSelect:"اختار"},shortcut:{shortcuts:"إختصارات",close:"غلق",textFormatting:"تنسيق النص",action:"Action",paragraphFormatting:"تنسيق الفقرة",documentStyle:"تنسيق المستند",extraKeys:"أزرار إضافية"},help:{insertParagraph:"إدراج فقرة",undo:"تراجع عن آخر أمر",redo:"إعادة تنفيذ آخر أمر",tab:"إزاحة (تاب)",untab:"سحب النص باتجاه البداية",bold:"تنسيق عريض",italic:"تنسيق مائل",underline:"تنسيق خط سفلي",strikethrough:"تنسيق خط متوسط للنص",removeFormat:"إزالة التنسيقات",justifyLeft:"محاذاة لليسار",justifyCenter:"محاذاة توسيط",justifyRight:"محاذاة لليمين",justifyFull:"محاذاة كاملة",insertUnorderedList:"قائمة منقّطة",insertOrderedList:"قائمة مرقّمة",outdent:"إزاحة للأمام على الفقرة الحالية",indent:"إزاحة للخلف على الفقرة الحالية",formatPara:"تغيير التنسيق للكتلة الحالية إلى فقرة",formatH1:"تغيير التنسيق للكتلة الحالية إلى ترويسة 1",formatH2:"تغيير التنسيق للكتلة الحالية إلى ترويسة 2",formatH3:"تغيير التنسيق للكتلة الحالية إلى ترويسة 3",formatH4:"تغيير التنسيق للكتلة الحالية إلى ترويسة 4",formatH5:"تغيير التنسيق للكتلة الحالية إلى ترويسة 5",formatH6:"تغيير التنسيق للكتلة الحالية إلى ترويسة 6",insertHorizontalRule:"إدراج خط أفقي","linkDialog.show":"إظهار خصائص الرابط"},history:{undo:"تراجع",redo:"إعادة"},specialChar:{specialChar:"محارف خاصة",select:"اختر المحرف الخاص"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-ar-AR.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-ar-AR.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-ar-AR.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-az-AZ.js b/common/lib/summernote/lang/summernote-az-AZ.js new file mode 100644 index 0000000..c5349cd --- /dev/null +++ b/common/lib/summernote/lang/summernote-az-AZ.js @@ -0,0 +1,283 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 8); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 8: +/***/ (function(module, exports) { + +//Summernote WYSIWYG editor ucun Azerbaycan dili fayli +//Tercume etdi: RAMIL ALIYEV +//Tarix: 20.07.2019 +//Baki Azerbaycan +//Website: https://ramilaliyev.com +//Azerbaijan language for Summernote WYSIWYG +//Translated by: RAMIL ALIYEV +//Date: 20.07.2019 +//Baku Azerbaijan +//Website: https://ramilaliyev.com +(function ($) { + $.extend($.summernote.lang, { + 'az-AZ': { + font: { + bold: 'Qalın', + italic: 'Əyri', + underline: 'Altı xətli', + clear: 'Təmizlə', + height: 'Sətir hündürlüyü', + name: 'Yazı Tipi', + strikethrough: 'Üstü xətli', + subscript: 'Alt simvol', + superscript: 'Üst simvol', + size: 'Yazı ölçüsü' + }, + image: { + image: 'Şəkil', + insert: 'Şəkil əlavə et', + resizeFull: 'Original ölçü', + resizeHalf: '1/2 ölçü', + resizeQuarter: '1/4 ölçü', + floatLeft: 'Sola çək', + floatRight: 'Sağa çək', + floatNone: 'Sola-sağa çəkilməni ləğv et', + shapeRounded: 'Şəkil: yuvarlaq künç', + shapeCircle: 'Şəkil: Dairə', + shapeThumbnail: 'Şəkil: Thumbnail', + shapeNone: 'Şəkil: Yox', + dragImageHere: 'Bura sürüşdür', + dropImage: 'Şəkil və ya mətni buraxın', + selectFromFiles: 'Sənəd seçin', + maximumFileSize: 'Maksimum sənəd ölçüsü', + maximumFileSizeError: 'Maksimum sənəd ölçüsünü keçdiniz.', + url: 'Şəkil linki', + remove: 'Şəkli sil', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Video linki', + insert: 'Video əlavə et', + url: 'Video linki?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion və ya Youku)' + }, + link: { + link: 'Link', + insert: 'Link əlavə et', + unlink: 'Linki sil', + edit: 'Linkə düzəliş et', + textToDisplay: 'Ekranda göstəriləcək link adı', + url: 'Link ünvanı?', + openInNewWindow: 'Yeni pəncərədə aç' + }, + table: { + table: 'Cədvəl', + addRowAbove: 'Yuxarı sətir əlavə et', + addRowBelow: 'Aşağı sətir əlavə et', + addColLeft: 'Sola sütun əlavə et', + addColRight: 'Sağa sütun əlavə et', + delRow: 'Sətiri sil', + delCol: 'Sütunu sil', + delTable: 'Cədvəli sil' + }, + hr: { + insert: 'Üfuqi xətt əlavə et' + }, + style: { + style: 'Stil', + p: 'p', + blockquote: 'İstinad', + pre: 'Ön baxış', + h1: 'Başlıq 1', + h2: 'Başlıq 2', + h3: 'Başlıq 3', + h4: 'Başlıq 4', + h5: 'Başlıq 5', + h6: 'Başlıq 6' + }, + lists: { + unordered: 'Nizamsız sıra', + ordered: 'Nizamlı sıra' + }, + options: { + help: 'Kömək', + fullscreen: 'Tam ekran', + codeview: 'HTML Kodu' + }, + paragraph: { + paragraph: 'Paraqraf', + outdent: 'Girintini artır', + indent: 'Girintini azalt', + left: 'Sola çək', + center: 'Ortaya çək', + right: 'Sağa çək', + justify: 'Sola və sağa çək' + }, + color: { + recent: 'Son rənk', + more: 'Daha çox rənk', + background: 'Arxa fon rəngi', + foreground: 'Yazı rıngi', + transparent: 'Şəffaflıq', + setTransparent: 'Şəffaflığı nizamla', + reset: 'Sıfırla', + resetToDefault: 'Susyama görə sıfırla' + }, + shortcut: { + shortcuts: 'Qısayollar', + close: 'Bağla', + textFormatting: 'Yazı formatlandırmaq', + action: 'Hadisə', + paragraphFormatting: 'Paraqraf formatlandırmaq', + documentStyle: 'Sənəd stili', + extraKeys: 'Əlavə' + }, + help: { + 'insertParagraph': 'Paraqraf əlavə etmək', + 'undo': 'Son əmri geri alır', + 'redo': 'Son əmri irəli alır', + 'tab': 'Girintini artırır', + 'untab': 'Girintini azaltır', + 'bold': 'Qalın yazma stilini nizamlayır', + 'italic': 'İtalik yazma stilini nizamlayır', + 'underline': 'Altı xətli yazma stilini nizamlayır', + 'strikethrough': 'Üstü xətli yazma stilini nizamlayır', + 'removeFormat': 'Formatlandırmanı ləğv edir', + 'justifyLeft': 'Yazını sola çəkir', + 'justifyCenter': 'Yazını ortaya çəkir', + 'justifyRight': 'Yazını sağa çəkir', + 'justifyFull': 'Yazını hər iki tərəfə yazır', + 'insertUnorderedList': 'Nizamsız sıra əlavə edir', + 'insertOrderedList': 'Nizamlı sıra əlavə edir', + 'outdent': 'Aktiv paraqrafın girintisini azaltır', + 'indent': 'Aktiv paragrafın girintisini artırır', + 'formatPara': 'Aktiv bloqun formatını paraqraf (p) olaraq dəyişdirir', + 'formatH1': 'Aktiv bloqun formatını başlıq 1 (h1) olaraq dəyişdirir', + 'formatH2': 'Aktiv bloqun formatını başlıq 2 (h2) olaraq dəyişdirir', + 'formatH3': 'Aktiv bloqun formatını başlıq 3 (h3) olaraq dəyişdirir', + 'formatH4': 'Aktiv bloqun formatını başlıq 4 (h4) olaraq dəyişdirir', + 'formatH5': 'Aktiv bloqun formatını başlıq 5 (h5) olaraq dəyişdirir', + 'formatH6': 'Aktiv bloqun formatını başlıq 6 (h6) olaraq dəyişdirir', + 'insertHorizontalRule': 'Üfuqi xətt əlavə edir', + 'linkDialog.show': 'Link parametrləri qutusunu göstərir' + }, + history: { + undo: 'Əvvəlki vəziyyət', + redo: 'Sonrakı vəziyyət' + }, + specialChar: { + specialChar: 'Xüsusi simvollar', + select: 'Xüsusi simvolları seçin' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-az-AZ.min.js b/common/lib/summernote/lang/summernote-az-AZ.min.js new file mode 100644 index 0000000..2925acd --- /dev/null +++ b/common/lib/summernote/lang/summernote-az-AZ.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-az-AZ.min.js.LICENSE.txt */ +!function(i,a){if("object"==typeof exports&&"object"==typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var r=a();for(var t in r)("object"==typeof exports?exports:i)[t]=r[t]}}(window,(function(){return function(i){var a={};function r(t){if(a[t])return a[t].exports;var e=a[t]={i:t,l:!1,exports:{}};return i[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}return r.m=i,r.c=a,r.d=function(i,a,t){r.o(i,a)||Object.defineProperty(i,a,{enumerable:!0,get:t})},r.r=function(i){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})},r.t=function(i,a){if(1&a&&(i=r(i)),8&a)return i;if(4&a&&"object"==typeof i&&i&&i.__esModule)return i;var t=Object.create(null);if(r.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:i}),2&a&&"string"!=typeof i)for(var e in i)r.d(t,e,function(a){return i[a]}.bind(null,e));return t},r.n=function(i){var a=i&&i.__esModule?function(){return i.default}:function(){return i};return r.d(a,"a",a),a},r.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},r.p="",r(r.s=8)}({8:function(i,a){var r;(r=jQuery).extend(r.summernote.lang,{"az-AZ":{font:{bold:"Qalın",italic:"Əyri",underline:"Altı xətli",clear:"Təmizlə",height:"Sətir hündürlüyü",name:"Yazı Tipi",strikethrough:"Üstü xətli",subscript:"Alt simvol",superscript:"Üst simvol",size:"Yazı ölçüsü"},image:{image:"Şəkil",insert:"Şəkil əlavə et",resizeFull:"Original ölçü",resizeHalf:"1/2 ölçü",resizeQuarter:"1/4 ölçü",floatLeft:"Sola çək",floatRight:"Sağa çək",floatNone:"Sola-sağa çəkilməni ləğv et",shapeRounded:"Şəkil: yuvarlaq künç",shapeCircle:"Şəkil: Dairə",shapeThumbnail:"Şəkil: Thumbnail",shapeNone:"Şəkil: Yox",dragImageHere:"Bura sürüşdür",dropImage:"Şəkil və ya mətni buraxın",selectFromFiles:"Sənəd seçin",maximumFileSize:"Maksimum sənəd ölçüsü",maximumFileSizeError:"Maksimum sənəd ölçüsünü keçdiniz.",url:"Şəkil linki",remove:"Şəkli sil",original:"Original"},video:{video:"Video",videoLink:"Video linki",insert:"Video əlavə et",url:"Video linki?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion və ya Youku)"},link:{link:"Link",insert:"Link əlavə et",unlink:"Linki sil",edit:"Linkə düzəliş et",textToDisplay:"Ekranda göstəriləcək link adı",url:"Link ünvanı?",openInNewWindow:"Yeni pəncərədə aç"},table:{table:"Cədvəl",addRowAbove:"Yuxarı sətir əlavə et",addRowBelow:"Aşağı sətir əlavə et",addColLeft:"Sola sütun əlavə et",addColRight:"Sağa sütun əlavə et",delRow:"Sətiri sil",delCol:"Sütunu sil",delTable:"Cədvəli sil"},hr:{insert:"Üfuqi xətt əlavə et"},style:{style:"Stil",p:"p",blockquote:"İstinad",pre:"Ön baxış",h1:"Başlıq 1",h2:"Başlıq 2",h3:"Başlıq 3",h4:"Başlıq 4",h5:"Başlıq 5",h6:"Başlıq 6"},lists:{unordered:"Nizamsız sıra",ordered:"Nizamlı sıra"},options:{help:"Kömək",fullscreen:"Tam ekran",codeview:"HTML Kodu"},paragraph:{paragraph:"Paraqraf",outdent:"Girintini artır",indent:"Girintini azalt",left:"Sola çək",center:"Ortaya çək",right:"Sağa çək",justify:"Sola və sağa çək"},color:{recent:"Son rənk",more:"Daha çox rənk",background:"Arxa fon rəngi",foreground:"Yazı rıngi",transparent:"Şəffaflıq",setTransparent:"Şəffaflığı nizamla",reset:"Sıfırla",resetToDefault:"Susyama görə sıfırla"},shortcut:{shortcuts:"Qısayollar",close:"Bağla",textFormatting:"Yazı formatlandırmaq",action:"Hadisə",paragraphFormatting:"Paraqraf formatlandırmaq",documentStyle:"Sənəd stili",extraKeys:"Əlavə"},help:{insertParagraph:"Paraqraf əlavə etmək",undo:"Son əmri geri alır",redo:"Son əmri irəli alır",tab:"Girintini artırır",untab:"Girintini azaltır",bold:"Qalın yazma stilini nizamlayır",italic:"İtalik yazma stilini nizamlayır",underline:"Altı xətli yazma stilini nizamlayır",strikethrough:"Üstü xətli yazma stilini nizamlayır",removeFormat:"Formatlandırmanı ləğv edir",justifyLeft:"Yazını sola çəkir",justifyCenter:"Yazını ortaya çəkir",justifyRight:"Yazını sağa çəkir",justifyFull:"Yazını hər iki tərəfə yazır",insertUnorderedList:"Nizamsız sıra əlavə edir",insertOrderedList:"Nizamlı sıra əlavə edir",outdent:"Aktiv paraqrafın girintisini azaltır",indent:"Aktiv paragrafın girintisini artırır",formatPara:"Aktiv bloqun formatını paraqraf (p) olaraq dəyişdirir",formatH1:"Aktiv bloqun formatını başlıq 1 (h1) olaraq dəyişdirir",formatH2:"Aktiv bloqun formatını başlıq 2 (h2) olaraq dəyişdirir",formatH3:"Aktiv bloqun formatını başlıq 3 (h3) olaraq dəyişdirir",formatH4:"Aktiv bloqun formatını başlıq 4 (h4) olaraq dəyişdirir",formatH5:"Aktiv bloqun formatını başlıq 5 (h5) olaraq dəyişdirir",formatH6:"Aktiv bloqun formatını başlıq 6 (h6) olaraq dəyişdirir",insertHorizontalRule:"Üfuqi xətt əlavə edir","linkDialog.show":"Link parametrləri qutusunu göstərir"},history:{undo:"Əvvəlki vəziyyət",redo:"Sonrakı vəziyyət"},specialChar:{specialChar:"Xüsusi simvollar",select:"Xüsusi simvolları seçin"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-az-AZ.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-az-AZ.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-az-AZ.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-bg-BG.js b/common/lib/summernote/lang/summernote-bg-BG.js new file mode 100644 index 0000000..da94f52 --- /dev/null +++ b/common/lib/summernote/lang/summernote-bg-BG.js @@ -0,0 +1,274 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 9); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 9: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'bg-BG': { + font: { + bold: 'Удебелен', + italic: 'Наклонен', + underline: 'Подчертан', + clear: 'Изчисти стиловете', + height: 'Височина', + name: 'Шрифт', + strikethrough: 'Задраскано', + subscript: 'Долен индекс', + superscript: 'Горен индекс', + size: 'Размер на шрифта' + }, + image: { + image: 'Изображение', + insert: 'Постави картинка', + resizeFull: 'Цял размер', + resizeHalf: 'Размер на 50%', + resizeQuarter: 'Размер на 25%', + floatLeft: 'Подравни в ляво', + floatRight: 'Подравни в дясно', + floatNone: 'Без подравняване', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'Пуснете изображението тук', + dropImage: 'Drop image or Text', + selectFromFiles: 'Изберете файл', + maximumFileSize: 'Maximum file size', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'URL адрес на изображение', + remove: 'Премахни изображение', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Video Link', + insert: 'Insert Video', + url: 'Video URL?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)' + }, + link: { + link: 'Връзка', + insert: 'Добави връзка', + unlink: 'Премахни връзка', + edit: 'Промени', + textToDisplay: 'Текст за показване', + url: 'URL адрес', + openInNewWindow: 'Отвори в нов прозорец' + }, + table: { + table: 'Таблица', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Добави хоризонтална линия' + }, + style: { + style: 'Стил', + p: 'Нормален', + blockquote: 'Цитат', + pre: 'Код', + h1: 'Заглавие 1', + h2: 'Заглавие 2', + h3: 'Заглавие 3', + h4: 'Заглавие 4', + h5: 'Заглавие 5', + h6: 'Заглавие 6' + }, + lists: { + unordered: 'Символен списък', + ordered: 'Цифров списък' + }, + options: { + help: 'Помощ', + fullscreen: 'На цял екран', + codeview: 'Преглед на код' + }, + paragraph: { + paragraph: 'Параграф', + outdent: 'Намаляване на отстъпа', + indent: 'Абзац', + left: 'Подравняване в ляво', + center: 'Център', + right: 'Подравняване в дясно', + justify: 'Разтягане по ширина' + }, + color: { + recent: 'Последния избран цвят', + more: 'Още цветове', + background: 'Цвят на фона', + foreground: 'Цвят на шрифта', + transparent: 'Прозрачен', + setTransparent: 'Направете прозрачен', + reset: 'Възстанови', + resetToDefault: 'Възстанови оригиналните', + cpSelect: 'Изберете' + }, + shortcut: { + shortcuts: 'Клавишни комбинации', + close: 'Затвори', + textFormatting: 'Форматиране на текста', + action: 'Действие', + paragraphFormatting: 'Форматиране на параграф', + documentStyle: 'Стил на документа', + extraKeys: 'Extra keys' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'Назад', + redo: 'Напред' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-bg-BG.min.js b/common/lib/summernote/lang/summernote-bg-BG.min.js new file mode 100644 index 0000000..ee6526c --- /dev/null +++ b/common/lib/summernote/lang/summernote-bg-BG.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-bg-BG.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=9)}({9:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"bg-BG":{font:{bold:"Удебелен",italic:"Наклонен",underline:"Подчертан",clear:"Изчисти стиловете",height:"Височина",name:"Шрифт",strikethrough:"Задраскано",subscript:"Долен индекс",superscript:"Горен индекс",size:"Размер на шрифта"},image:{image:"Изображение",insert:"Постави картинка",resizeFull:"Цял размер",resizeHalf:"Размер на 50%",resizeQuarter:"Размер на 25%",floatLeft:"Подравни в ляво",floatRight:"Подравни в дясно",floatNone:"Без подравняване",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Пуснете изображението тук",dropImage:"Drop image or Text",selectFromFiles:"Изберете файл",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URL адрес на изображение",remove:"Премахни изображение",original:"Original"},video:{video:"Video",videoLink:"Video Link",insert:"Insert Video",url:"Video URL?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)"},link:{link:"Връзка",insert:"Добави връзка",unlink:"Премахни връзка",edit:"Промени",textToDisplay:"Текст за показване",url:"URL адрес",openInNewWindow:"Отвори в нов прозорец"},table:{table:"Таблица",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Добави хоризонтална линия"},style:{style:"Стил",p:"Нормален",blockquote:"Цитат",pre:"Код",h1:"Заглавие 1",h2:"Заглавие 2",h3:"Заглавие 3",h4:"Заглавие 4",h5:"Заглавие 5",h6:"Заглавие 6"},lists:{unordered:"Символен списък",ordered:"Цифров списък"},options:{help:"Помощ",fullscreen:"На цял екран",codeview:"Преглед на код"},paragraph:{paragraph:"Параграф",outdent:"Намаляване на отстъпа",indent:"Абзац",left:"Подравняване в ляво",center:"Център",right:"Подравняване в дясно",justify:"Разтягане по ширина"},color:{recent:"Последния избран цвят",more:"Още цветове",background:"Цвят на фона",foreground:"Цвят на шрифта",transparent:"Прозрачен",setTransparent:"Направете прозрачен",reset:"Възстанови",resetToDefault:"Възстанови оригиналните",cpSelect:"Изберете"},shortcut:{shortcuts:"Клавишни комбинации",close:"Затвори",textFormatting:"Форматиране на текста",action:"Действие",paragraphFormatting:"Форматиране на параграф",documentStyle:"Стил на документа",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Назад",redo:"Напред"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-bg-BG.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-bg-BG.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-bg-BG.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-ca-ES.js b/common/lib/summernote/lang/summernote-ca-ES.js new file mode 100644 index 0000000..d333bce --- /dev/null +++ b/common/lib/summernote/lang/summernote-ca-ES.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 10); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 10: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'ca-ES': { + font: { + bold: 'Negreta', + italic: 'Cursiva', + underline: 'Subratllat', + clear: 'Treure estil de lletra', + height: 'Alçada de línia', + name: 'Font', + strikethrough: 'Ratllat', + subscript: 'Subíndex', + superscript: 'Superíndex', + size: 'Mida de lletra' + }, + image: { + image: 'Imatge', + insert: 'Inserir imatge', + resizeFull: 'Redimensionar a mida completa', + resizeHalf: 'Redimensionar a la meitat', + resizeQuarter: 'Redimensionar a un quart', + floatLeft: 'Alinear a l\'esquerra', + floatRight: 'Alinear a la dreta', + floatNone: 'No alinear', + shapeRounded: 'Forma: Arrodonit', + shapeCircle: 'Forma: Cercle', + shapeThumbnail: 'Forma: Marc', + shapeNone: 'Forma: Cap', + dragImageHere: 'Arrossegueu una imatge o text aquí', + dropImage: 'Deixa anar aquí una imatge o un text', + selectFromFiles: 'Seleccioneu des dels arxius', + maximumFileSize: 'Mida màxima de l\'arxiu', + maximumFileSizeError: 'La mida màxima de l\'arxiu s\'ha superat.', + url: 'URL de la imatge', + remove: 'Eliminar imatge', + original: 'Original' + }, + video: { + video: 'Vídeo', + videoLink: 'Enllaç del vídeo', + insert: 'Inserir vídeo', + url: 'URL del vídeo?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)' + }, + link: { + link: 'Enllaç', + insert: 'Inserir enllaç', + unlink: 'Treure enllaç', + edit: 'Editar', + textToDisplay: 'Text per mostrar', + url: 'Cap a quina URL porta l\'enllaç?', + openInNewWindow: 'Obrir en una finestra nova' + }, + table: { + table: 'Taula', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Inserir línia horitzontal' + }, + style: { + style: 'Estil', + p: 'p', + blockquote: 'Cita', + pre: 'Codi', + h1: 'Títol 1', + h2: 'Títol 2', + h3: 'Títol 3', + h4: 'Títol 4', + h5: 'Títol 5', + h6: 'Títol 6' + }, + lists: { + unordered: 'Llista desendreçada', + ordered: 'Llista endreçada' + }, + options: { + help: 'Ajut', + fullscreen: 'Pantalla sencera', + codeview: 'Veure codi font' + }, + paragraph: { + paragraph: 'Paràgraf', + outdent: 'Menys tabulació', + indent: 'Més tabulació', + left: 'Alinear a l\'esquerra', + center: 'Alinear al mig', + right: 'Alinear a la dreta', + justify: 'Justificar' + }, + color: { + recent: 'Últim color', + more: 'Més colors', + background: 'Color de fons', + foreground: 'Color de lletra', + transparent: 'Transparent', + setTransparent: 'Establir transparent', + reset: 'Restablir', + resetToDefault: 'Restablir per defecte' + }, + shortcut: { + shortcuts: 'Dreceres de teclat', + close: 'Tancar', + textFormatting: 'Format de text', + action: 'Acció', + paragraphFormatting: 'Format de paràgraf', + documentStyle: 'Estil del document', + extraKeys: 'Tecles adicionals' + }, + help: { + 'insertParagraph': 'Inserir paràgraf', + 'undo': 'Desfer l\'última acció', + 'redo': 'Refer l\'última acció', + 'tab': 'Tabular', + 'untab': 'Eliminar tabulació', + 'bold': 'Establir estil negreta', + 'italic': 'Establir estil cursiva', + 'underline': 'Establir estil subratllat', + 'strikethrough': 'Establir estil ratllat', + 'removeFormat': 'Netejar estil', + 'justifyLeft': 'Alinear a l\'esquerra', + 'justifyCenter': 'Alinear al centre', + 'justifyRight': 'Alinear a la dreta', + 'justifyFull': 'Justificar', + 'insertUnorderedList': 'Inserir llista desendreçada', + 'insertOrderedList': 'Inserir llista endreçada', + 'outdent': 'Reduïr tabulació del paràgraf', + 'indent': 'Augmentar tabulació del paràgraf', + 'formatPara': 'Canviar l\'estil del bloc com a un paràgraf (etiqueta P)', + 'formatH1': 'Canviar l\'estil del bloc com a un H1', + 'formatH2': 'Canviar l\'estil del bloc com a un H2', + 'formatH3': 'Canviar l\'estil del bloc com a un H3', + 'formatH4': 'Canviar l\'estil del bloc com a un H4', + 'formatH5': 'Canviar l\'estil del bloc com a un H5', + 'formatH6': 'Canviar l\'estil del bloc com a un H6', + 'insertHorizontalRule': 'Inserir una línia horitzontal', + 'linkDialog.show': 'Mostrar panel d\'enllaços' + }, + history: { + undo: 'Desfer', + redo: 'Refer' + }, + specialChar: { + specialChar: 'CARÀCTERS ESPECIALS', + select: 'Selecciona caràcters especials' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-ca-ES.min.js b/common/lib/summernote/lang/summernote-ca-ES.min.js new file mode 100644 index 0000000..40b6c45 --- /dev/null +++ b/common/lib/summernote/lang/summernote-ca-ES.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-ca-ES.min.js.LICENSE.txt */ +!function(e,a){if("object"==typeof exports&&"object"==typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var r=a();for(var t in r)("object"==typeof exports?exports:e)[t]=r[t]}}(window,(function(){return function(e){var a={};function r(t){if(a[t])return a[t].exports;var l=a[t]={i:t,l:!1,exports:{}};return e[t].call(l.exports,l,l.exports,r),l.l=!0,l.exports}return r.m=e,r.c=a,r.d=function(e,a,t){r.o(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:t})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,a){if(1&a&&(e=r(e)),8&a)return e;if(4&a&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(r.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&a&&"string"!=typeof e)for(var l in e)r.d(t,l,function(a){return e[a]}.bind(null,l));return t},r.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(a,"a",a),a},r.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},r.p="",r(r.s=10)}({10:function(e,a){var r;(r=jQuery).extend(r.summernote.lang,{"ca-ES":{font:{bold:"Negreta",italic:"Cursiva",underline:"Subratllat",clear:"Treure estil de lletra",height:"Alçada de línia",name:"Font",strikethrough:"Ratllat",subscript:"Subíndex",superscript:"Superíndex",size:"Mida de lletra"},image:{image:"Imatge",insert:"Inserir imatge",resizeFull:"Redimensionar a mida completa",resizeHalf:"Redimensionar a la meitat",resizeQuarter:"Redimensionar a un quart",floatLeft:"Alinear a l'esquerra",floatRight:"Alinear a la dreta",floatNone:"No alinear",shapeRounded:"Forma: Arrodonit",shapeCircle:"Forma: Cercle",shapeThumbnail:"Forma: Marc",shapeNone:"Forma: Cap",dragImageHere:"Arrossegueu una imatge o text aquí",dropImage:"Deixa anar aquí una imatge o un text",selectFromFiles:"Seleccioneu des dels arxius",maximumFileSize:"Mida màxima de l'arxiu",maximumFileSizeError:"La mida màxima de l'arxiu s'ha superat.",url:"URL de la imatge",remove:"Eliminar imatge",original:"Original"},video:{video:"Vídeo",videoLink:"Enllaç del vídeo",insert:"Inserir vídeo",url:"URL del vídeo?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)"},link:{link:"Enllaç",insert:"Inserir enllaç",unlink:"Treure enllaç",edit:"Editar",textToDisplay:"Text per mostrar",url:"Cap a quina URL porta l'enllaç?",openInNewWindow:"Obrir en una finestra nova"},table:{table:"Taula",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Inserir línia horitzontal"},style:{style:"Estil",p:"p",blockquote:"Cita",pre:"Codi",h1:"Títol 1",h2:"Títol 2",h3:"Títol 3",h4:"Títol 4",h5:"Títol 5",h6:"Títol 6"},lists:{unordered:"Llista desendreçada",ordered:"Llista endreçada"},options:{help:"Ajut",fullscreen:"Pantalla sencera",codeview:"Veure codi font"},paragraph:{paragraph:"Paràgraf",outdent:"Menys tabulació",indent:"Més tabulació",left:"Alinear a l'esquerra",center:"Alinear al mig",right:"Alinear a la dreta",justify:"Justificar"},color:{recent:"Últim color",more:"Més colors",background:"Color de fons",foreground:"Color de lletra",transparent:"Transparent",setTransparent:"Establir transparent",reset:"Restablir",resetToDefault:"Restablir per defecte"},shortcut:{shortcuts:"Dreceres de teclat",close:"Tancar",textFormatting:"Format de text",action:"Acció",paragraphFormatting:"Format de paràgraf",documentStyle:"Estil del document",extraKeys:"Tecles adicionals"},help:{insertParagraph:"Inserir paràgraf",undo:"Desfer l'última acció",redo:"Refer l'última acció",tab:"Tabular",untab:"Eliminar tabulació",bold:"Establir estil negreta",italic:"Establir estil cursiva",underline:"Establir estil subratllat",strikethrough:"Establir estil ratllat",removeFormat:"Netejar estil",justifyLeft:"Alinear a l'esquerra",justifyCenter:"Alinear al centre",justifyRight:"Alinear a la dreta",justifyFull:"Justificar",insertUnorderedList:"Inserir llista desendreçada",insertOrderedList:"Inserir llista endreçada",outdent:"Reduïr tabulació del paràgraf",indent:"Augmentar tabulació del paràgraf",formatPara:"Canviar l'estil del bloc com a un paràgraf (etiqueta P)",formatH1:"Canviar l'estil del bloc com a un H1",formatH2:"Canviar l'estil del bloc com a un H2",formatH3:"Canviar l'estil del bloc com a un H3",formatH4:"Canviar l'estil del bloc com a un H4",formatH5:"Canviar l'estil del bloc com a un H5",formatH6:"Canviar l'estil del bloc com a un H6",insertHorizontalRule:"Inserir una línia horitzontal","linkDialog.show":"Mostrar panel d'enllaços"},history:{undo:"Desfer",redo:"Refer"},specialChar:{specialChar:"CARÀCTERS ESPECIALS",select:"Selecciona caràcters especials"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-ca-ES.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-ca-ES.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-ca-ES.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-cs-CZ.js b/common/lib/summernote/lang/summernote-cs-CZ.js new file mode 100644 index 0000000..9048eaf --- /dev/null +++ b/common/lib/summernote/lang/summernote-cs-CZ.js @@ -0,0 +1,268 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 11); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 11: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'cs-CZ': { + font: { + bold: 'Tučné', + italic: 'Kurzíva', + underline: 'Podtržené', + clear: 'Odstranit styl písma', + height: 'Výška řádku', + strikethrough: 'Přeškrtnuté', + size: 'Velikost písma' + }, + image: { + image: 'Obrázek', + insert: 'Vložit obrázek', + resizeFull: 'Původní velikost', + resizeHalf: 'Poloviční velikost', + resizeQuarter: 'Čtvrteční velikost', + floatLeft: 'Umístit doleva', + floatRight: 'Umístit doprava', + floatNone: 'Neobtékat textem', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'Přetáhnout sem obrázek', + dropImage: 'Drop image or Text', + selectFromFiles: 'Vybrat soubor', + url: 'URL obrázku', + remove: 'Remove Image', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Odkaz videa', + insert: 'Vložit video', + url: 'URL videa?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion nebo Youku)' + }, + link: { + link: 'Odkaz', + insert: 'Vytvořit odkaz', + unlink: 'Zrušit odkaz', + edit: 'Upravit', + textToDisplay: 'Zobrazovaný text', + url: 'Na jaké URL má tento odkaz vést?', + openInNewWindow: 'Otevřít v novém okně' + }, + table: { + table: 'Tabulka', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Vložit vodorovnou čáru' + }, + style: { + style: 'Styl', + p: 'Normální', + blockquote: 'Citace', + pre: 'Kód', + h1: 'Nadpis 1', + h2: 'Nadpis 2', + h3: 'Nadpis 3', + h4: 'Nadpis 4', + h5: 'Nadpis 5', + h6: 'Nadpis 6' + }, + lists: { + unordered: 'Odrážkový seznam', + ordered: 'Číselný seznam' + }, + options: { + help: 'Nápověda', + fullscreen: 'Celá obrazovka', + codeview: 'HTML kód' + }, + paragraph: { + paragraph: 'Odstavec', + outdent: 'Zvětšit odsazení', + indent: 'Zmenšit odsazení', + left: 'Zarovnat doleva', + center: 'Zarovnat na střed', + right: 'Zarovnat doprava', + justify: 'Zarovnat oboustranně' + }, + color: { + recent: 'Aktuální barva', + more: 'Další barvy', + background: 'Barva pozadí', + foreground: 'Barva písma', + transparent: 'Průhlednost', + setTransparent: 'Nastavit průhlednost', + reset: 'Obnovit', + resetToDefault: 'Obnovit výchozí', + cpSelect: 'Vybrat' + }, + shortcut: { + shortcuts: 'Klávesové zkratky', + close: 'Zavřít', + textFormatting: 'Formátování textu', + action: 'Akce', + paragraphFormatting: 'Formátování odstavce', + documentStyle: 'Styl dokumentu' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'Krok vzad', + redo: 'Krok vpřed' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-cs-CZ.min.js b/common/lib/summernote/lang/summernote-cs-CZ.min.js new file mode 100644 index 0000000..4614db1 --- /dev/null +++ b/common/lib/summernote/lang/summernote-cs-CZ.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-cs-CZ.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var a=t[o]={i:o,l:!1,exports:{}};return e[o].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(o,a,function(t){return e[t]}.bind(null,a));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=11)}({11:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"cs-CZ":{font:{bold:"Tučné",italic:"Kurzíva",underline:"Podtržené",clear:"Odstranit styl písma",height:"Výška řádku",strikethrough:"Přeškrtnuté",size:"Velikost písma"},image:{image:"Obrázek",insert:"Vložit obrázek",resizeFull:"Původní velikost",resizeHalf:"Poloviční velikost",resizeQuarter:"Čtvrteční velikost",floatLeft:"Umístit doleva",floatRight:"Umístit doprava",floatNone:"Neobtékat textem",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Přetáhnout sem obrázek",dropImage:"Drop image or Text",selectFromFiles:"Vybrat soubor",url:"URL obrázku",remove:"Remove Image",original:"Original"},video:{video:"Video",videoLink:"Odkaz videa",insert:"Vložit video",url:"URL videa?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion nebo Youku)"},link:{link:"Odkaz",insert:"Vytvořit odkaz",unlink:"Zrušit odkaz",edit:"Upravit",textToDisplay:"Zobrazovaný text",url:"Na jaké URL má tento odkaz vést?",openInNewWindow:"Otevřít v novém okně"},table:{table:"Tabulka",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Vložit vodorovnou čáru"},style:{style:"Styl",p:"Normální",blockquote:"Citace",pre:"Kód",h1:"Nadpis 1",h2:"Nadpis 2",h3:"Nadpis 3",h4:"Nadpis 4",h5:"Nadpis 5",h6:"Nadpis 6"},lists:{unordered:"Odrážkový seznam",ordered:"Číselný seznam"},options:{help:"Nápověda",fullscreen:"Celá obrazovka",codeview:"HTML kód"},paragraph:{paragraph:"Odstavec",outdent:"Zvětšit odsazení",indent:"Zmenšit odsazení",left:"Zarovnat doleva",center:"Zarovnat na střed",right:"Zarovnat doprava",justify:"Zarovnat oboustranně"},color:{recent:"Aktuální barva",more:"Další barvy",background:"Barva pozadí",foreground:"Barva písma",transparent:"Průhlednost",setTransparent:"Nastavit průhlednost",reset:"Obnovit",resetToDefault:"Obnovit výchozí",cpSelect:"Vybrat"},shortcut:{shortcuts:"Klávesové zkratky",close:"Zavřít",textFormatting:"Formátování textu",action:"Akce",paragraphFormatting:"Formátování odstavce",documentStyle:"Styl dokumentu"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Krok vzad",redo:"Krok vpřed"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-cs-CZ.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-cs-CZ.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-cs-CZ.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-da-DK.js b/common/lib/summernote/lang/summernote-da-DK.js new file mode 100644 index 0000000..7568e0c --- /dev/null +++ b/common/lib/summernote/lang/summernote-da-DK.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 12); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 12: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'da-DK': { + font: { + bold: 'Fed', + italic: 'Kursiv', + underline: 'Understreget', + clear: 'Fjern formatering', + height: 'Højde', + name: 'Skrifttype', + strikethrough: 'Gennemstreget', + subscript: 'Sænket skrift', + superscript: 'Hævet skrift', + size: 'Skriftstørrelse' + }, + image: { + image: 'Billede', + insert: 'Indsæt billede', + resizeFull: 'Original størrelse', + resizeHalf: 'Halv størrelse', + resizeQuarter: 'Kvart størrelse', + floatLeft: 'Venstrestillet', + floatRight: 'Højrestillet', + floatNone: 'Fjern formatering', + shapeRounded: 'Form: Runde kanter', + shapeCircle: 'Form: Cirkel', + shapeThumbnail: 'Form: Miniature', + shapeNone: 'Form: Ingen', + dragImageHere: 'Træk billede hertil', + dropImage: 'Slip billede', + selectFromFiles: 'Vælg billed-fil', + maximumFileSize: 'Maks fil størrelse', + maximumFileSizeError: 'Filen er større end maks tilladte fil størrelse!', + url: 'Billede URL', + remove: 'Fjern billede', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Video Link', + insert: 'Indsæt Video', + url: 'Video URL?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)' + }, + link: { + link: 'Link', + insert: 'Indsæt link', + unlink: 'Fjern link', + edit: 'Rediger', + textToDisplay: 'Visningstekst', + url: 'Hvor skal linket pege hen?', + openInNewWindow: 'Åbn i nyt vindue' + }, + table: { + table: 'Tabel', + addRowAbove: 'Tilføj række over', + addRowBelow: 'Tilføj række under', + addColLeft: 'Tilføj venstre kolonne', + addColRight: 'Tilføj højre kolonne', + delRow: 'Slet række', + delCol: 'Slet kolonne', + delTable: 'Slet tabel' + }, + hr: { + insert: 'Indsæt horisontal linje' + }, + style: { + style: 'Stil', + p: 'p', + blockquote: 'Citat', + pre: 'Kode', + h1: 'Overskrift 1', + h2: 'Overskrift 2', + h3: 'Overskrift 3', + h4: 'Overskrift 4', + h5: 'Overskrift 5', + h6: 'Overskrift 6' + }, + lists: { + unordered: 'Punktopstillet liste', + ordered: 'Nummereret liste' + }, + options: { + help: 'Hjælp', + fullscreen: 'Fuld skærm', + codeview: 'HTML-Visning' + }, + paragraph: { + paragraph: 'Afsnit', + outdent: 'Formindsk indryk', + indent: 'Forøg indryk', + left: 'Venstrestillet', + center: 'Centreret', + right: 'Højrestillet', + justify: 'Blokjuster' + }, + color: { + recent: 'Nyligt valgt farve', + more: 'Flere farver', + background: 'Baggrund', + foreground: 'Forgrund', + transparent: 'Transparent', + setTransparent: 'Sæt transparent', + reset: 'Nulstil', + resetToDefault: 'Gendan standardindstillinger' + }, + shortcut: { + shortcuts: 'Genveje', + close: 'Luk', + textFormatting: 'Tekstformatering', + action: 'Handling', + paragraphFormatting: 'Afsnitsformatering', + documentStyle: 'Dokumentstil', + extraKeys: 'Extra keys' + }, + help: { + 'insertParagraph': 'Indsæt paragraf', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Vis Link Dialog' + }, + history: { + undo: 'Fortryd', + redo: 'Annuller fortryd' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Vælg special karakterer' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-da-DK.min.js b/common/lib/summernote/lang/summernote-da-DK.min.js new file mode 100644 index 0000000..6d4a030 --- /dev/null +++ b/common/lib/summernote/lang/summernote-da-DK.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-da-DK.min.js.LICENSE.txt */ +!function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r();else if("function"==typeof define&&define.amd)define([],r);else{var t=r();for(var n in t)("object"==typeof exports?exports:e)[n]=t[n]}}(window,(function(){return function(e){var r={};function t(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var i in e)t.d(n,i,function(r){return e[r]}.bind(null,i));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=12)}({12:function(e,r){var t;(t=jQuery).extend(t.summernote.lang,{"da-DK":{font:{bold:"Fed",italic:"Kursiv",underline:"Understreget",clear:"Fjern formatering",height:"Højde",name:"Skrifttype",strikethrough:"Gennemstreget",subscript:"Sænket skrift",superscript:"Hævet skrift",size:"Skriftstørrelse"},image:{image:"Billede",insert:"Indsæt billede",resizeFull:"Original størrelse",resizeHalf:"Halv størrelse",resizeQuarter:"Kvart størrelse",floatLeft:"Venstrestillet",floatRight:"Højrestillet",floatNone:"Fjern formatering",shapeRounded:"Form: Runde kanter",shapeCircle:"Form: Cirkel",shapeThumbnail:"Form: Miniature",shapeNone:"Form: Ingen",dragImageHere:"Træk billede hertil",dropImage:"Slip billede",selectFromFiles:"Vælg billed-fil",maximumFileSize:"Maks fil størrelse",maximumFileSizeError:"Filen er større end maks tilladte fil størrelse!",url:"Billede URL",remove:"Fjern billede",original:"Original"},video:{video:"Video",videoLink:"Video Link",insert:"Indsæt Video",url:"Video URL?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)"},link:{link:"Link",insert:"Indsæt link",unlink:"Fjern link",edit:"Rediger",textToDisplay:"Visningstekst",url:"Hvor skal linket pege hen?",openInNewWindow:"Åbn i nyt vindue"},table:{table:"Tabel",addRowAbove:"Tilføj række over",addRowBelow:"Tilføj række under",addColLeft:"Tilføj venstre kolonne",addColRight:"Tilføj højre kolonne",delRow:"Slet række",delCol:"Slet kolonne",delTable:"Slet tabel"},hr:{insert:"Indsæt horisontal linje"},style:{style:"Stil",p:"p",blockquote:"Citat",pre:"Kode",h1:"Overskrift 1",h2:"Overskrift 2",h3:"Overskrift 3",h4:"Overskrift 4",h5:"Overskrift 5",h6:"Overskrift 6"},lists:{unordered:"Punktopstillet liste",ordered:"Nummereret liste"},options:{help:"Hjælp",fullscreen:"Fuld skærm",codeview:"HTML-Visning"},paragraph:{paragraph:"Afsnit",outdent:"Formindsk indryk",indent:"Forøg indryk",left:"Venstrestillet",center:"Centreret",right:"Højrestillet",justify:"Blokjuster"},color:{recent:"Nyligt valgt farve",more:"Flere farver",background:"Baggrund",foreground:"Forgrund",transparent:"Transparent",setTransparent:"Sæt transparent",reset:"Nulstil",resetToDefault:"Gendan standardindstillinger"},shortcut:{shortcuts:"Genveje",close:"Luk",textFormatting:"Tekstformatering",action:"Handling",paragraphFormatting:"Afsnitsformatering",documentStyle:"Dokumentstil",extraKeys:"Extra keys"},help:{insertParagraph:"Indsæt paragraf",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Vis Link Dialog"},history:{undo:"Fortryd",redo:"Annuller fortryd"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Vælg special karakterer"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-da-DK.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-da-DK.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-da-DK.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-de-DE.js b/common/lib/summernote/lang/summernote-de-DE.js new file mode 100644 index 0000000..ccf3063 --- /dev/null +++ b/common/lib/summernote/lang/summernote-de-DE.js @@ -0,0 +1,274 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 13); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 13: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'de-DE': { + font: { + bold: 'Fett', + italic: 'Kursiv', + underline: 'Unterstreichen', + clear: 'Zurücksetzen', + height: 'Zeilenhöhe', + name: 'Schriftart', + strikethrough: 'Durchgestrichen', + subscript: 'Tiefgestellt', + superscript: 'Hochgestellt', + size: 'Schriftgröße' + }, + image: { + image: 'Bild', + insert: 'Bild einfügen', + resizeFull: 'Originalgröße', + resizeHalf: '1/2 Größe', + resizeQuarter: '1/4 Größe', + floatLeft: 'Linksbündig', + floatRight: 'Rechtsbündig', + floatNone: 'Kein Textfluss', + shapeRounded: 'Abgerundeter Rahmen', + shapeCircle: 'Kreisförmiger Rahmen', + shapeThumbnail: 'Rahmenvorschau', + shapeNone: 'Kein Rahmen', + dragImageHere: 'Bild hierher ziehen', + dropImage: 'Bild oder Text nehmen', + selectFromFiles: 'Datei auswählen', + maximumFileSize: 'Maximale Dateigröße', + maximumFileSizeError: 'Maximale Dateigröße überschritten', + url: 'Bild URL', + remove: 'Bild entfernen', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Videolink', + insert: 'Video einfügen', + url: 'Video URL', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion oder Youku)' + }, + link: { + link: 'Link', + insert: 'Link einfügen', + unlink: 'Link entfernen', + edit: 'Bearbeiten', + textToDisplay: 'Anzeigetext', + url: 'Link URL', + openInNewWindow: 'In neuem Fenster öffnen' + }, + table: { + table: 'Tabelle', + addRowAbove: '+ Zeile oberhalb', + addRowBelow: '+ Zeile unterhalb', + addColLeft: '+ Spalte links', + addColRight: '+ Spalte rechts', + delRow: 'Reihe löschen', + delCol: 'Spalte löschen', + delTable: 'Tabelle löschen' + }, + hr: { + insert: 'Horizontale Linie einfügen' + }, + style: { + style: 'Stil', + normal: 'Normal', + p: 'Normal', + blockquote: 'Zitat', + pre: 'Quellcode', + h1: 'Überschrift 1', + h2: 'Überschrift 2', + h3: 'Überschrift 3', + h4: 'Überschrift 4', + h5: 'Überschrift 5', + h6: 'Überschrift 6' + }, + lists: { + unordered: 'Unnummerierte Liste', + ordered: 'Nummerierte Liste' + }, + options: { + help: 'Hilfe', + fullscreen: 'Vollbild', + codeview: 'Quellcode anzeigen' + }, + paragraph: { + paragraph: 'Absatz', + outdent: 'Einzug verkleinern', + indent: 'Einzug vergrößern', + left: 'Links ausrichten', + center: 'Zentriert ausrichten', + right: 'Rechts ausrichten', + justify: 'Blocksatz' + }, + color: { + recent: 'Letzte Farbe', + more: 'Weitere Farben', + background: 'Hintergrundfarbe', + foreground: 'Schriftfarbe', + transparent: 'Transparenz', + setTransparent: 'Transparenz setzen', + reset: 'Zurücksetzen', + resetToDefault: 'Auf Standard zurücksetzen' + }, + shortcut: { + shortcuts: 'Tastenkürzel', + close: 'Schließen', + textFormatting: 'Textformatierung', + action: 'Aktion', + paragraphFormatting: 'Absatzformatierung', + documentStyle: 'Dokumentenstil', + extraKeys: 'Weitere Tasten' + }, + help: { + 'insertParagraph': 'Absatz einfügen', + 'undo': 'Letzte Anweisung rückgängig', + 'redo': 'Letzte Anweisung wiederholen', + 'tab': 'Einzug hinzufügen', + 'untab': 'Einzug entfernen', + 'bold': 'Schrift Fett', + 'italic': 'Schrift Kursiv', + 'underline': 'Unterstreichen', + 'strikethrough': 'Durchstreichen', + 'removeFormat': 'Entfernt Format', + 'justifyLeft': 'Linksbündig', + 'justifyCenter': 'Mittig', + 'justifyRight': 'Rechtsbündig', + 'justifyFull': 'Blocksatz', + 'insertUnorderedList': 'Unnummerierte Liste', + 'insertOrderedList': 'Nummerierte Liste', + 'outdent': 'Aktuellen Absatz ausrücken', + 'indent': 'Aktuellen Absatz einrücken', + 'formatPara': 'Formatiert aktuellen Block als Absatz (P-Tag)', + 'formatH1': 'Formatiert aktuellen Block als H1', + 'formatH2': 'Formatiert aktuellen Block als H2', + 'formatH3': 'Formatiert aktuellen Block als H3', + 'formatH4': 'Formatiert aktuellen Block als H4', + 'formatH5': 'Formatiert aktuellen Block als H5', + 'formatH6': 'Formatiert aktuellen Block als H6', + 'insertHorizontalRule': 'Fügt eine horizontale Linie ein', + 'linkDialog.show': 'Zeigt Linkdialog' + }, + history: { + undo: 'Rückgängig', + redo: 'Wiederholen' + }, + specialChar: { + specialChar: 'Sonderzeichen', + select: 'Zeichen auswählen' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-de-DE.min.js b/common/lib/summernote/lang/summernote-de-DE.min.js new file mode 100644 index 0000000..f286549 --- /dev/null +++ b/common/lib/summernote/lang/summernote-de-DE.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-de-DE.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=13)}({13:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"de-DE":{font:{bold:"Fett",italic:"Kursiv",underline:"Unterstreichen",clear:"Zurücksetzen",height:"Zeilenhöhe",name:"Schriftart",strikethrough:"Durchgestrichen",subscript:"Tiefgestellt",superscript:"Hochgestellt",size:"Schriftgröße"},image:{image:"Bild",insert:"Bild einfügen",resizeFull:"Originalgröße",resizeHalf:"1/2 Größe",resizeQuarter:"1/4 Größe",floatLeft:"Linksbündig",floatRight:"Rechtsbündig",floatNone:"Kein Textfluss",shapeRounded:"Abgerundeter Rahmen",shapeCircle:"Kreisförmiger Rahmen",shapeThumbnail:"Rahmenvorschau",shapeNone:"Kein Rahmen",dragImageHere:"Bild hierher ziehen",dropImage:"Bild oder Text nehmen",selectFromFiles:"Datei auswählen",maximumFileSize:"Maximale Dateigröße",maximumFileSizeError:"Maximale Dateigröße überschritten",url:"Bild URL",remove:"Bild entfernen",original:"Original"},video:{video:"Video",videoLink:"Videolink",insert:"Video einfügen",url:"Video URL",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion oder Youku)"},link:{link:"Link",insert:"Link einfügen",unlink:"Link entfernen",edit:"Bearbeiten",textToDisplay:"Anzeigetext",url:"Link URL",openInNewWindow:"In neuem Fenster öffnen"},table:{table:"Tabelle",addRowAbove:"+ Zeile oberhalb",addRowBelow:"+ Zeile unterhalb",addColLeft:"+ Spalte links",addColRight:"+ Spalte rechts",delRow:"Reihe löschen",delCol:"Spalte löschen",delTable:"Tabelle löschen"},hr:{insert:"Horizontale Linie einfügen"},style:{style:"Stil",normal:"Normal",p:"Normal",blockquote:"Zitat",pre:"Quellcode",h1:"Überschrift 1",h2:"Überschrift 2",h3:"Überschrift 3",h4:"Überschrift 4",h5:"Überschrift 5",h6:"Überschrift 6"},lists:{unordered:"Unnummerierte Liste",ordered:"Nummerierte Liste"},options:{help:"Hilfe",fullscreen:"Vollbild",codeview:"Quellcode anzeigen"},paragraph:{paragraph:"Absatz",outdent:"Einzug verkleinern",indent:"Einzug vergrößern",left:"Links ausrichten",center:"Zentriert ausrichten",right:"Rechts ausrichten",justify:"Blocksatz"},color:{recent:"Letzte Farbe",more:"Weitere Farben",background:"Hintergrundfarbe",foreground:"Schriftfarbe",transparent:"Transparenz",setTransparent:"Transparenz setzen",reset:"Zurücksetzen",resetToDefault:"Auf Standard zurücksetzen"},shortcut:{shortcuts:"Tastenkürzel",close:"Schließen",textFormatting:"Textformatierung",action:"Aktion",paragraphFormatting:"Absatzformatierung",documentStyle:"Dokumentenstil",extraKeys:"Weitere Tasten"},help:{insertParagraph:"Absatz einfügen",undo:"Letzte Anweisung rückgängig",redo:"Letzte Anweisung wiederholen",tab:"Einzug hinzufügen",untab:"Einzug entfernen",bold:"Schrift Fett",italic:"Schrift Kursiv",underline:"Unterstreichen",strikethrough:"Durchstreichen",removeFormat:"Entfernt Format",justifyLeft:"Linksbündig",justifyCenter:"Mittig",justifyRight:"Rechtsbündig",justifyFull:"Blocksatz",insertUnorderedList:"Unnummerierte Liste",insertOrderedList:"Nummerierte Liste",outdent:"Aktuellen Absatz ausrücken",indent:"Aktuellen Absatz einrücken",formatPara:"Formatiert aktuellen Block als Absatz (P-Tag)",formatH1:"Formatiert aktuellen Block als H1",formatH2:"Formatiert aktuellen Block als H2",formatH3:"Formatiert aktuellen Block als H3",formatH4:"Formatiert aktuellen Block als H4",formatH5:"Formatiert aktuellen Block als H5",formatH6:"Formatiert aktuellen Block als H6",insertHorizontalRule:"Fügt eine horizontale Linie ein","linkDialog.show":"Zeigt Linkdialog"},history:{undo:"Rückgängig",redo:"Wiederholen"},specialChar:{specialChar:"Sonderzeichen",select:"Zeichen auswählen"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-de-DE.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-de-DE.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-de-DE.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-el-GR.js b/common/lib/summernote/lang/summernote-el-GR.js new file mode 100644 index 0000000..09478ee --- /dev/null +++ b/common/lib/summernote/lang/summernote-el-GR.js @@ -0,0 +1,281 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 14); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 14: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'el-GR': { + font: { + bold: 'Έντονα', + italic: 'Πλάγια', + underline: 'Υπογραμμισμένα', + clear: 'Καθαρισμός', + height: 'Ύψος', + name: 'Γραμματοσειρά', + strikethrough: 'Διεγραμμένα', + subscript: 'Δείκτης', + superscript: 'Εκθέτης', + size: 'Μέγεθος', + sizeunit: 'Μονάδα μεγέθους' + }, + image: { + image: 'Εικόνα', + insert: 'Εισαγωγή', + resizeFull: 'Πλήρες μέγεθος', + resizeHalf: 'Μισό μέγεθος', + resizeQuarter: '1/4 μέγεθος', + resizeNone: 'Αρχικό μέγεθος', + floatLeft: 'Μετατόπιση αριστερά', + floatRight: 'Μετατόπιση δεξιά', + floatNone: 'Χωρίς μετατόπιση', + shapeRounded: 'Σχήμα: Στρογγυλεμένο', + shapeCircle: 'Σχήμα: Κύκλος', + shapeThumbnail: 'Σχήμα: Μικρογραφία', + shapeNone: 'Σχήμα: Κανένα', + dragImageHere: 'Σύρτε την εικόνα εδώ', + dropImage: 'Αφήστε την εικόνα', + selectFromFiles: 'Επιλογή από αρχεία', + maximumFileSize: 'Μέγιστο μέγεθος αρχείου', + maximumFileSizeError: 'Το μέγεθος είναι μεγαλύτερο από το μέγιστο επιτρεπτό.', + url: 'URL', + remove: 'Αφαίρεση', + original: 'Αρχικό' + }, + link: { + link: 'Σύνδεσμος', + insert: 'Εισαγωγή συνδέσμου', + unlink: 'Αφαίρεση συνδέσμου', + edit: 'Επεξεργασία συνδέσμου', + textToDisplay: 'Κείμενο συνδέσμου', + url: 'Σε ποιo URL πρέπει να πηγαίνει αυτός ο σύνδεσμος;', + openInNewWindow: 'Άνοιγμα σε νέο παράθυρο', + useProtocol: 'Χρήση προεπιλεγμένου πρωτοκόλλου' + }, + video: { + video: 'Βίντεο', + videoLink: 'Σύνδεσμος Βίντεο', + insert: 'Εισαγωγή', + url: 'URL', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ή Youku)' + }, + table: { + table: 'Πίνακας', + addRowAbove: 'Προσθήκη γραμμής πάνω', + addRowBelow: 'Προσθήκη γραμμής κάτω', + addColLeft: 'Προσθήκη στήλης αριστερά', + addColRight: 'Προσθήκη στήλης δεξία', + delRow: 'Διαγραφή γραμμής', + delCol: 'Διαγραφή στήλης', + delTable: 'Διαγραφή πίνακα' + }, + hr: { + insert: 'Εισαγωγή οριζόντιας γραμμής' + }, + style: { + style: 'Στυλ', + normal: 'Κανονικό', + blockquote: 'Παράθεση', + pre: 'Ως έχει', + h1: 'Κεφαλίδα 1', + h2: 'Κεφαλίδα 2', + h3: 'Κεφαλίδα 3', + h4: 'Κεφαλίδα 4', + h5: 'Κεφαλίδα 5', + h6: 'Κεφαλίδα 6' + }, + lists: { + unordered: 'Αταξινόμητη λίστα', + ordered: 'Ταξινομημένη λίστα' + }, + options: { + help: 'Βοήθεια', + fullscreen: 'Πλήρης οθόνη', + codeview: 'Προβολή HTML' + }, + paragraph: { + paragraph: 'Παράγραφος', + outdent: 'Μείωση εσοχής', + indent: 'Άυξηση εσοχής', + left: 'Αριστερή στοίχιση', + center: 'Στοίχιση στο κέντρο', + right: 'Δεξιά στοίχιση', + justify: 'Πλήρης στοίχιση' + }, + color: { + recent: 'Πρόσφατη επιλογή', + more: 'Περισσότερα', + background: 'Υπόβαθρο', + foreground: 'Μπροστά', + transparent: 'Διαφανές', + setTransparent: 'Επιλογή διαφάνειας', + reset: 'Επαναφορά', + resetToDefault: 'Επαναφορά στις προκαθορισμένες τιμές', + cpSelect: 'Επιλογή' + }, + shortcut: { + shortcuts: 'Συντομεύσεις', + close: 'Κλείσιμο', + textFormatting: 'Διαμόρφωση κειμένου', + action: 'Ενέργεια', + paragraphFormatting: 'Διαμόρφωση παραγράφου', + documentStyle: 'Στυλ κειμένου', + extraKeys: 'Επιπλέον συντομεύσεις' + }, + help: { + 'escape': 'Έξοδος', + 'insertParagraph': 'Εισαγωγή παραγράφου', + 'undo': 'Αναιρεί την προηγούμενη εντολή', + 'redo': 'Επαναλαμβάνει την προηγούμενη εντολή', + 'tab': 'Εσοχή', + 'untab': 'Αναίρεση εσοχής', + 'bold': 'Ορισμός έντονου στυλ', + 'italic': 'Ορισμός πλάγιου στυλ', + 'underline': 'Ορισμός υπογεγραμμένου στυλ', + 'strikethrough': 'Ορισμός διεγραμμένου στυλ', + 'removeFormat': 'Αφαίρεση στυλ', + 'justifyLeft': 'Ορισμός αριστερής στοίχισης', + 'justifyCenter': 'Ορισμός κεντρικής στοίχισης', + 'justifyRight': 'Ορισμός δεξιάς στοίχισης', + 'justifyFull': 'Ορισμός πλήρους στοίχισης', + 'insertUnorderedList': 'Ορισμός μη-ταξινομημένης λίστας', + 'insertOrderedList': 'Ορισμός ταξινομημένης λίστας', + 'outdent': 'Προεξοχή παραγράφου', + 'indent': 'Εσοχή παραγράφου', + 'formatPara': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε παράγραφο (P tag)', + 'formatH1': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H1', + 'formatH2': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H2', + 'formatH3': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H3', + 'formatH4': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H4', + 'formatH5': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H5', + 'formatH6': 'Αλλαγή της μορφής του τρέχοντος μπλοκ σε H6', + 'insertHorizontalRule': 'Εισαγωγή οριζόντιας γραμμής', + 'linkDialog.show': 'Εμφάνιση διαλόγου συνδέσμου' + }, + history: { + undo: 'Αναίρεση', + redo: 'Επαναληψη' + }, + specialChar: { + specialChar: 'ΕΙΔΙΚΟΙ ΧΑΡΑΚΤΗΡΕΣ', + select: 'Επιλέξτε ειδικούς χαρακτήρες' + }, + output: { + noSelection: 'Δεν έγινε επιλογή!' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-el-GR.min.js b/common/lib/summernote/lang/summernote-el-GR.min.js new file mode 100644 index 0000000..8d79c16 --- /dev/null +++ b/common/lib/summernote/lang/summernote-el-GR.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-el-GR.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=14)}({14:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"el-GR":{font:{bold:"Έντονα",italic:"Πλάγια",underline:"Υπογραμμισμένα",clear:"Καθαρισμός",height:"Ύψος",name:"Γραμματοσειρά",strikethrough:"Διεγραμμένα",subscript:"Δείκτης",superscript:"Εκθέτης",size:"Μέγεθος",sizeunit:"Μονάδα μεγέθους"},image:{image:"Εικόνα",insert:"Εισαγωγή",resizeFull:"Πλήρες μέγεθος",resizeHalf:"Μισό μέγεθος",resizeQuarter:"1/4 μέγεθος",resizeNone:"Αρχικό μέγεθος",floatLeft:"Μετατόπιση αριστερά",floatRight:"Μετατόπιση δεξιά",floatNone:"Χωρίς μετατόπιση",shapeRounded:"Σχήμα: Στρογγυλεμένο",shapeCircle:"Σχήμα: Κύκλος",shapeThumbnail:"Σχήμα: Μικρογραφία",shapeNone:"Σχήμα: Κανένα",dragImageHere:"Σύρτε την εικόνα εδώ",dropImage:"Αφήστε την εικόνα",selectFromFiles:"Επιλογή από αρχεία",maximumFileSize:"Μέγιστο μέγεθος αρχείου",maximumFileSizeError:"Το μέγεθος είναι μεγαλύτερο από το μέγιστο επιτρεπτό.",url:"URL",remove:"Αφαίρεση",original:"Αρχικό"},link:{link:"Σύνδεσμος",insert:"Εισαγωγή συνδέσμου",unlink:"Αφαίρεση συνδέσμου",edit:"Επεξεργασία συνδέσμου",textToDisplay:"Κείμενο συνδέσμου",url:"Σε ποιo URL πρέπει να πηγαίνει αυτός ο σύνδεσμος;",openInNewWindow:"Άνοιγμα σε νέο παράθυρο",useProtocol:"Χρήση προεπιλεγμένου πρωτοκόλλου"},video:{video:"Βίντεο",videoLink:"Σύνδεσμος Βίντεο",insert:"Εισαγωγή",url:"URL",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion ή Youku)"},table:{table:"Πίνακας",addRowAbove:"Προσθήκη γραμμής πάνω",addRowBelow:"Προσθήκη γραμμής κάτω",addColLeft:"Προσθήκη στήλης αριστερά",addColRight:"Προσθήκη στήλης δεξία",delRow:"Διαγραφή γραμμής",delCol:"Διαγραφή στήλης",delTable:"Διαγραφή πίνακα"},hr:{insert:"Εισαγωγή οριζόντιας γραμμής"},style:{style:"Στυλ",normal:"Κανονικό",blockquote:"Παράθεση",pre:"Ως έχει",h1:"Κεφαλίδα 1",h2:"Κεφαλίδα 2",h3:"Κεφαλίδα 3",h4:"Κεφαλίδα 4",h5:"Κεφαλίδα 5",h6:"Κεφαλίδα 6"},lists:{unordered:"Αταξινόμητη λίστα",ordered:"Ταξινομημένη λίστα"},options:{help:"Βοήθεια",fullscreen:"Πλήρης οθόνη",codeview:"Προβολή HTML"},paragraph:{paragraph:"Παράγραφος",outdent:"Μείωση εσοχής",indent:"Άυξηση εσοχής",left:"Αριστερή στοίχιση",center:"Στοίχιση στο κέντρο",right:"Δεξιά στοίχιση",justify:"Πλήρης στοίχιση"},color:{recent:"Πρόσφατη επιλογή",more:"Περισσότερα",background:"Υπόβαθρο",foreground:"Μπροστά",transparent:"Διαφανές",setTransparent:"Επιλογή διαφάνειας",reset:"Επαναφορά",resetToDefault:"Επαναφορά στις προκαθορισμένες τιμές",cpSelect:"Επιλογή"},shortcut:{shortcuts:"Συντομεύσεις",close:"Κλείσιμο",textFormatting:"Διαμόρφωση κειμένου",action:"Ενέργεια",paragraphFormatting:"Διαμόρφωση παραγράφου",documentStyle:"Στυλ κειμένου",extraKeys:"Επιπλέον συντομεύσεις"},help:{escape:"Έξοδος",insertParagraph:"Εισαγωγή παραγράφου",undo:"Αναιρεί την προηγούμενη εντολή",redo:"Επαναλαμβάνει την προηγούμενη εντολή",tab:"Εσοχή",untab:"Αναίρεση εσοχής",bold:"Ορισμός έντονου στυλ",italic:"Ορισμός πλάγιου στυλ",underline:"Ορισμός υπογεγραμμένου στυλ",strikethrough:"Ορισμός διεγραμμένου στυλ",removeFormat:"Αφαίρεση στυλ",justifyLeft:"Ορισμός αριστερής στοίχισης",justifyCenter:"Ορισμός κεντρικής στοίχισης",justifyRight:"Ορισμός δεξιάς στοίχισης",justifyFull:"Ορισμός πλήρους στοίχισης",insertUnorderedList:"Ορισμός μη-ταξινομημένης λίστας",insertOrderedList:"Ορισμός ταξινομημένης λίστας",outdent:"Προεξοχή παραγράφου",indent:"Εσοχή παραγράφου",formatPara:"Αλλαγή της μορφής του τρέχοντος μπλοκ σε παράγραφο (P tag)",formatH1:"Αλλαγή της μορφής του τρέχοντος μπλοκ σε H1",formatH2:"Αλλαγή της μορφής του τρέχοντος μπλοκ σε H2",formatH3:"Αλλαγή της μορφής του τρέχοντος μπλοκ σε H3",formatH4:"Αλλαγή της μορφής του τρέχοντος μπλοκ σε H4",formatH5:"Αλλαγή της μορφής του τρέχοντος μπλοκ σε H5",formatH6:"Αλλαγή της μορφής του τρέχοντος μπλοκ σε H6",insertHorizontalRule:"Εισαγωγή οριζόντιας γραμμής","linkDialog.show":"Εμφάνιση διαλόγου συνδέσμου"},history:{undo:"Αναίρεση",redo:"Επαναληψη"},specialChar:{specialChar:"ΕΙΔΙΚΟΙ ΧΑΡΑΚΤΗΡΕΣ",select:"Επιλέξτε ειδικούς χαρακτήρες"},output:{noSelection:"Δεν έγινε επιλογή!"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-el-GR.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-el-GR.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-el-GR.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-es-ES.js b/common/lib/summernote/lang/summernote-es-ES.js new file mode 100644 index 0000000..0b21a65 --- /dev/null +++ b/common/lib/summernote/lang/summernote-es-ES.js @@ -0,0 +1,280 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 15); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 15: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'es-ES': { + font: { + bold: 'Negrita', + italic: 'Cursiva', + underline: 'Subrayado', + clear: 'Eliminar estilo de letra', + height: 'Altura de línea', + name: 'Tipo de letra', + strikethrough: 'Tachado', + subscript: 'Subíndice', + superscript: 'Superíndice', + size: 'Tamaño de la fuente', + sizeunit: 'Unidad del tamaño de letra' + }, + image: { + image: 'Imagen', + insert: 'Insertar imagen', + resizeFull: 'Redimensionar a tamaño completo', + resizeHalf: 'Redimensionar a la mitad', + resizeQuarter: 'Redimensionar a un cuarto', + resizeNone: 'Tamaño original', + floatLeft: 'Flotar a la izquierda', + floatRight: 'Flotar a la derecha', + floatNone: 'No flotar', + shapeRounded: 'Forma: Redondeado', + shapeCircle: 'Forma: Círculo', + shapeThumbnail: 'Forma: Miniatura', + shapeNone: 'Forma: Ninguna', + dragImageHere: 'Arrastre una imagen o texto aquí', + dropImage: 'Suelte una imagen o texto', + selectFromFiles: 'Seleccione un fichero', + maximumFileSize: 'Tamaño máximo del fichero', + maximumFileSizeError: 'Superado el tamaño máximo de fichero.', + url: 'URL de la imagen', + remove: 'Eliminar la imagen', + original: 'Original' + }, + video: { + video: 'Vídeo', + videoLink: 'Enlace del vídeo', + insert: 'Insertar un vídeo', + url: 'URL del vídeo', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)' + }, + link: { + link: 'Enlace', + insert: 'Insertar un enlace', + unlink: 'Quitar el enlace', + edit: 'Editar', + textToDisplay: 'Texto a mostrar', + url: '¿A qué URL lleva este enlace?', + openInNewWindow: 'Abrir en una nueva ventana', + useProtocol: 'Usar el protocolo predefinido' + }, + table: { + table: 'Tabla', + addRowAbove: 'Añadir una fila encima', + addRowBelow: 'Añadir una fila debajo', + addColLeft: 'Añadir una columna a la izquierda', + addColRight: 'Añadir una columna a la derecha', + delRow: 'Borrar la fila', + delCol: 'Borrar la columna', + delTable: 'Borrar la tabla' + }, + hr: { + insert: 'Insertar una línea horizontal' + }, + style: { + style: 'Estilo', + p: 'Normal', + blockquote: 'Cita', + pre: 'Código', + h1: 'Título 1', + h2: 'Título 2', + h3: 'Título 3', + h4: 'Título 4', + h5: 'Título 5', + h6: 'Título 6' + }, + lists: { + unordered: 'Lista', + ordered: 'Lista numerada' + }, + options: { + help: 'Ayuda', + fullscreen: 'Pantalla completa', + codeview: 'Ver el código fuente' + }, + paragraph: { + paragraph: 'Párrafo', + outdent: 'Reducir la sangría', + indent: 'Aumentar la sangría', + left: 'Alinear a la izquierda', + center: 'Centrar', + right: 'Alinear a la derecha', + justify: 'Justificar' + }, + color: { + recent: 'Último color', + more: 'Más colores', + background: 'Color de fondo', + foreground: 'Color del texto', + transparent: 'Transparente', + setTransparent: 'Establecer transparente', + reset: 'Restablecer', + resetToDefault: 'Restablecer a los valores predefinidos', + cpSelect: 'Seleccionar' + }, + shortcut: { + shortcuts: 'Atajos de teclado', + close: 'Cerrar', + textFormatting: 'Formato de texto', + action: 'Acción', + paragraphFormatting: 'Formato de párrafo', + documentStyle: 'Estilo de documento', + extraKeys: 'Teclas adicionales' + }, + help: { + insertParagraph: 'Insertar un párrafo', + undo: 'Deshacer la última acción', + redo: 'Rehacer la última acción', + tab: 'Tabular', + untab: 'Eliminar tabulación', + bold: 'Establecer estilo negrita', + italic: 'Establecer estilo cursiva', + underline: 'Establecer estilo subrayado', + strikethrough: 'Establecer estilo tachado', + removeFormat: 'Limpiar estilo', + justifyLeft: 'Alinear a la izquierda', + justifyCenter: 'Alinear al centro', + justifyRight: 'Alinear a la derecha', + justifyFull: 'Justificar', + insertUnorderedList: 'Insertar lista', + insertOrderedList: 'Insertar lista numerada', + outdent: 'Reducir sangría del párrafo', + indent: 'Aumentar sangría del párrafo', + formatPara: 'Cambiar el formato del bloque actual a párrafo (etiqueta P)', + formatH1: 'Cambiar el formato del bloque actual a H1', + formatH2: 'Cambiar el formato del bloque actual a H2', + formatH3: 'Cambiar el formato del bloque actual a H3', + formatH4: 'Cambiar el formato del bloque actual a H4', + formatH5: 'Cambiar el formato del bloque actual a H5', + formatH6: 'Cambiar el formato del bloque actual a H6', + insertHorizontalRule: 'Insertar una línea horizontal', + 'linkDialog.show': 'Mostrar el panel de enlaces' + }, + history: { + undo: 'Deshacer', + redo: 'Rehacer' + }, + specialChar: { + specialChar: 'CARACTERES ESPECIALES', + select: 'Seleccionar caracteres especiales' + }, + output: { + noSelection: '¡No ha seleccionado nada!' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-es-ES.min.js b/common/lib/summernote/lang/summernote-es-ES.min.js new file mode 100644 index 0000000..35de78f --- /dev/null +++ b/common/lib/summernote/lang/summernote-es-ES.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-es-ES.min.js.LICENSE.txt */ +!function(e,a){if("object"==typeof exports&&"object"==typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var r=a();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var a={};function r(o){if(a[o])return a[o].exports;var t=a[o]={i:o,l:!1,exports:{}};return e[o].call(t.exports,t,t.exports,r),t.l=!0,t.exports}return r.m=e,r.c=a,r.d=function(e,a,o){r.o(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,a){if(1&a&&(e=r(e)),8&a)return e;if(4&a&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&a&&"string"!=typeof e)for(var t in e)r.d(o,t,function(a){return e[a]}.bind(null,t));return o},r.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(a,"a",a),a},r.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},r.p="",r(r.s=15)}({15:function(e,a){var r;(r=jQuery).extend(r.summernote.lang,{"es-ES":{font:{bold:"Negrita",italic:"Cursiva",underline:"Subrayado",clear:"Eliminar estilo de letra",height:"Altura de línea",name:"Tipo de letra",strikethrough:"Tachado",subscript:"Subíndice",superscript:"Superíndice",size:"Tamaño de la fuente",sizeunit:"Unidad del tamaño de letra"},image:{image:"Imagen",insert:"Insertar imagen",resizeFull:"Redimensionar a tamaño completo",resizeHalf:"Redimensionar a la mitad",resizeQuarter:"Redimensionar a un cuarto",resizeNone:"Tamaño original",floatLeft:"Flotar a la izquierda",floatRight:"Flotar a la derecha",floatNone:"No flotar",shapeRounded:"Forma: Redondeado",shapeCircle:"Forma: Círculo",shapeThumbnail:"Forma: Miniatura",shapeNone:"Forma: Ninguna",dragImageHere:"Arrastre una imagen o texto aquí",dropImage:"Suelte una imagen o texto",selectFromFiles:"Seleccione un fichero",maximumFileSize:"Tamaño máximo del fichero",maximumFileSizeError:"Superado el tamaño máximo de fichero.",url:"URL de la imagen",remove:"Eliminar la imagen",original:"Original"},video:{video:"Vídeo",videoLink:"Enlace del vídeo",insert:"Insertar un vídeo",url:"URL del vídeo",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)"},link:{link:"Enlace",insert:"Insertar un enlace",unlink:"Quitar el enlace",edit:"Editar",textToDisplay:"Texto a mostrar",url:"¿A qué URL lleva este enlace?",openInNewWindow:"Abrir en una nueva ventana",useProtocol:"Usar el protocolo predefinido"},table:{table:"Tabla",addRowAbove:"Añadir una fila encima",addRowBelow:"Añadir una fila debajo",addColLeft:"Añadir una columna a la izquierda",addColRight:"Añadir una columna a la derecha",delRow:"Borrar la fila",delCol:"Borrar la columna",delTable:"Borrar la tabla"},hr:{insert:"Insertar una línea horizontal"},style:{style:"Estilo",p:"Normal",blockquote:"Cita",pre:"Código",h1:"Título 1",h2:"Título 2",h3:"Título 3",h4:"Título 4",h5:"Título 5",h6:"Título 6"},lists:{unordered:"Lista",ordered:"Lista numerada"},options:{help:"Ayuda",fullscreen:"Pantalla completa",codeview:"Ver el código fuente"},paragraph:{paragraph:"Párrafo",outdent:"Reducir la sangría",indent:"Aumentar la sangría",left:"Alinear a la izquierda",center:"Centrar",right:"Alinear a la derecha",justify:"Justificar"},color:{recent:"Último color",more:"Más colores",background:"Color de fondo",foreground:"Color del texto",transparent:"Transparente",setTransparent:"Establecer transparente",reset:"Restablecer",resetToDefault:"Restablecer a los valores predefinidos",cpSelect:"Seleccionar"},shortcut:{shortcuts:"Atajos de teclado",close:"Cerrar",textFormatting:"Formato de texto",action:"Acción",paragraphFormatting:"Formato de párrafo",documentStyle:"Estilo de documento",extraKeys:"Teclas adicionales"},help:{insertParagraph:"Insertar un párrafo",undo:"Deshacer la última acción",redo:"Rehacer la última acción",tab:"Tabular",untab:"Eliminar tabulación",bold:"Establecer estilo negrita",italic:"Establecer estilo cursiva",underline:"Establecer estilo subrayado",strikethrough:"Establecer estilo tachado",removeFormat:"Limpiar estilo",justifyLeft:"Alinear a la izquierda",justifyCenter:"Alinear al centro",justifyRight:"Alinear a la derecha",justifyFull:"Justificar",insertUnorderedList:"Insertar lista",insertOrderedList:"Insertar lista numerada",outdent:"Reducir sangría del párrafo",indent:"Aumentar sangría del párrafo",formatPara:"Cambiar el formato del bloque actual a párrafo (etiqueta P)",formatH1:"Cambiar el formato del bloque actual a H1",formatH2:"Cambiar el formato del bloque actual a H2",formatH3:"Cambiar el formato del bloque actual a H3",formatH4:"Cambiar el formato del bloque actual a H4",formatH5:"Cambiar el formato del bloque actual a H5",formatH6:"Cambiar el formato del bloque actual a H6",insertHorizontalRule:"Insertar una línea horizontal","linkDialog.show":"Mostrar el panel de enlaces"},history:{undo:"Deshacer",redo:"Rehacer"},specialChar:{specialChar:"CARACTERES ESPECIALES",select:"Seleccionar caracteres especiales"},output:{noSelection:"¡No ha seleccionado nada!"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-es-ES.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-es-ES.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-es-ES.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-es-EU.js b/common/lib/summernote/lang/summernote-es-EU.js new file mode 100644 index 0000000..54cdc26 --- /dev/null +++ b/common/lib/summernote/lang/summernote-es-EU.js @@ -0,0 +1,272 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 16); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 16: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'es-EU': { + font: { + bold: 'Lodia', + italic: 'Etzana', + underline: 'Azpimarratua', + clear: 'Estiloa kendu', + height: 'Lerro altuera', + name: 'Tipografia', + strikethrough: 'Marratua', + subscript: 'Subscript', + superscript: 'Superscript', + size: 'Letren neurria' + }, + image: { + image: 'Irudia', + insert: 'Irudi bat txertatu', + resizeFull: 'Jatorrizko neurrira aldatu', + resizeHalf: 'Neurria erdira aldatu', + resizeQuarter: 'Neurria laurdenera aldatu', + floatLeft: 'Ezkerrean kokatu', + floatRight: 'Eskuinean kokatu', + floatNone: 'Kokapenik ez ezarri', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'Irudi bat ezarri hemen', + dropImage: 'Drop image or Text', + selectFromFiles: 'Zure fitxategi bat aukeratu', + maximumFileSize: 'Maximum file size', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'Irudiaren URL helbidea', + remove: 'Remove Image', + original: 'Original' + }, + video: { + video: 'Bideoa', + videoLink: 'Bideorako esteka', + insert: 'Bideo berri bat txertatu', + url: 'Bideoaren URL helbidea', + providers: '(YouTube, Vimeo, Vine, Instagram edo DailyMotion)' + }, + link: { + link: 'Esteka', + insert: 'Esteka bat txertatu', + unlink: 'Esteka ezabatu', + edit: 'Editatu', + textToDisplay: 'Estekaren testua', + url: 'Estekaren URL helbidea', + openInNewWindow: 'Leiho berri batean ireki' + }, + table: { + table: 'Taula', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Marra horizontala txertatu' + }, + style: { + style: 'Estiloa', + p: 'p', + blockquote: 'Aipamena', + pre: 'Kodea', + h1: '1. izenburua', + h2: '2. izenburua', + h3: '3. izenburua', + h4: '4. izenburua', + h5: '5. izenburua', + h6: '6. izenburua' + }, + lists: { + unordered: 'Ordenatu gabeko zerrenda', + ordered: 'Zerrenda ordenatua' + }, + options: { + help: 'Laguntza', + fullscreen: 'Pantaila osoa', + codeview: 'Kodea ikusi' + }, + paragraph: { + paragraph: 'Paragrafoa', + outdent: 'Koska txikiagoa', + indent: 'Koska handiagoa', + left: 'Ezkerrean kokatu', + center: 'Erdian kokatu', + right: 'Eskuinean kokatu', + justify: 'Justifikatu' + }, + color: { + recent: 'Azken kolorea', + more: 'Kolore gehiago', + background: 'Atzeko planoa', + foreground: 'Aurreko planoa', + transparent: 'Gardena', + setTransparent: 'Gardendu', + reset: 'Lehengoratu', + resetToDefault: 'Berrezarri lehenetsia' + }, + shortcut: { + shortcuts: 'Lasterbideak', + close: 'Itxi', + textFormatting: 'Testuaren formatua', + action: 'Ekintza', + paragraphFormatting: 'Paragrafoaren formatua', + documentStyle: 'Dokumentuaren estiloa' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'Desegin', + redo: 'Berregin' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-es-EU.min.js b/common/lib/summernote/lang/summernote-es-EU.min.js new file mode 100644 index 0000000..b63b68e --- /dev/null +++ b/common/lib/summernote/lang/summernote-es-EU.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-es-EU.min.js.LICENSE.txt */ +!function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r();else if("function"==typeof define&&define.amd)define([],r);else{var a=r();for(var t in a)("object"==typeof exports?exports:e)[t]=a[t]}}(window,(function(){return function(e){var r={};function a(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,a),o.l=!0,o.exports}return a.m=e,a.c=r,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)a.d(t,o,function(r){return e[r]}.bind(null,o));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="",a(a.s=16)}({16:function(e,r){var a;(a=jQuery).extend(a.summernote.lang,{"es-EU":{font:{bold:"Lodia",italic:"Etzana",underline:"Azpimarratua",clear:"Estiloa kendu",height:"Lerro altuera",name:"Tipografia",strikethrough:"Marratua",subscript:"Subscript",superscript:"Superscript",size:"Letren neurria"},image:{image:"Irudia",insert:"Irudi bat txertatu",resizeFull:"Jatorrizko neurrira aldatu",resizeHalf:"Neurria erdira aldatu",resizeQuarter:"Neurria laurdenera aldatu",floatLeft:"Ezkerrean kokatu",floatRight:"Eskuinean kokatu",floatNone:"Kokapenik ez ezarri",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Irudi bat ezarri hemen",dropImage:"Drop image or Text",selectFromFiles:"Zure fitxategi bat aukeratu",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Irudiaren URL helbidea",remove:"Remove Image",original:"Original"},video:{video:"Bideoa",videoLink:"Bideorako esteka",insert:"Bideo berri bat txertatu",url:"Bideoaren URL helbidea",providers:"(YouTube, Vimeo, Vine, Instagram edo DailyMotion)"},link:{link:"Esteka",insert:"Esteka bat txertatu",unlink:"Esteka ezabatu",edit:"Editatu",textToDisplay:"Estekaren testua",url:"Estekaren URL helbidea",openInNewWindow:"Leiho berri batean ireki"},table:{table:"Taula",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Marra horizontala txertatu"},style:{style:"Estiloa",p:"p",blockquote:"Aipamena",pre:"Kodea",h1:"1. izenburua",h2:"2. izenburua",h3:"3. izenburua",h4:"4. izenburua",h5:"5. izenburua",h6:"6. izenburua"},lists:{unordered:"Ordenatu gabeko zerrenda",ordered:"Zerrenda ordenatua"},options:{help:"Laguntza",fullscreen:"Pantaila osoa",codeview:"Kodea ikusi"},paragraph:{paragraph:"Paragrafoa",outdent:"Koska txikiagoa",indent:"Koska handiagoa",left:"Ezkerrean kokatu",center:"Erdian kokatu",right:"Eskuinean kokatu",justify:"Justifikatu"},color:{recent:"Azken kolorea",more:"Kolore gehiago",background:"Atzeko planoa",foreground:"Aurreko planoa",transparent:"Gardena",setTransparent:"Gardendu",reset:"Lehengoratu",resetToDefault:"Berrezarri lehenetsia"},shortcut:{shortcuts:"Lasterbideak",close:"Itxi",textFormatting:"Testuaren formatua",action:"Ekintza",paragraphFormatting:"Paragrafoaren formatua",documentStyle:"Dokumentuaren estiloa"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Desegin",redo:"Berregin"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-es-EU.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-es-EU.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-es-EU.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-fa-IR.js b/common/lib/summernote/lang/summernote-fa-IR.js new file mode 100644 index 0000000..0be1782 --- /dev/null +++ b/common/lib/summernote/lang/summernote-fa-IR.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 17); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 17: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'fa-IR': { + font: { + bold: 'درشت', + italic: 'خمیده', + underline: 'میان خط', + clear: 'پاک کردن فرمت فونت', + height: 'فاصله ی خطی', + name: 'اسم فونت', + strikethrough: 'Strike', + subscript: 'Subscript', + superscript: 'Superscript', + size: 'اندازه ی فونت' + }, + image: { + image: 'تصویر', + insert: 'وارد کردن تصویر', + resizeFull: 'تغییر به اندازه ی کامل', + resizeHalf: 'تغییر به اندازه نصف', + resizeQuarter: 'تغییر به اندازه یک چهارم', + floatLeft: 'چسباندن به چپ', + floatRight: 'چسباندن به راست', + floatNone: 'بدون چسبندگی', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'یک تصویر را اینجا بکشید', + dropImage: 'Drop image or Text', + selectFromFiles: 'فایل ها را انتخاب کنید', + maximumFileSize: 'حداکثر اندازه پرونده', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'آدرس تصویر', + remove: 'حذف تصویر', + original: 'Original' + }, + video: { + video: 'ویدیو', + videoLink: 'لینک ویدیو', + insert: 'افزودن ویدیو', + url: 'آدرس ویدیو ؟', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion یا Youku)' + }, + link: { + link: 'لینک', + insert: 'اضافه کردن لینک', + unlink: 'حذف لینک', + edit: 'ویرایش', + textToDisplay: 'متن جهت نمایش', + url: 'این لینک به چه آدرسی باید برود ؟', + openInNewWindow: 'در یک پنجره ی جدید باز شود' + }, + table: { + table: 'جدول', + addRowAbove: 'افزودن ردیف بالا', + addRowBelow: 'افزودن ردیف پایین', + addColLeft: 'افزودن ستون چپ', + addColRight: 'افزودن ستون راست', + delRow: 'حذف ردیف', + delCol: 'حذف ستون', + delTable: 'حذف جدول' + }, + hr: { + insert: 'افزودن خط افقی' + }, + style: { + style: 'استیل', + p: 'نرمال', + blockquote: 'نقل قول', + pre: 'کد', + h1: 'سرتیتر 1', + h2: 'سرتیتر 2', + h3: 'سرتیتر 3', + h4: 'سرتیتر 4', + h5: 'سرتیتر 5', + h6: 'سرتیتر 6' + }, + lists: { + unordered: 'لیست غیر ترتیبی', + ordered: 'لیست ترتیبی' + }, + options: { + help: 'راهنما', + fullscreen: 'نمایش تمام صفحه', + codeview: 'مشاهده ی کد' + }, + paragraph: { + paragraph: 'پاراگراف', + outdent: 'کاهش تو رفتگی', + indent: 'افزایش تو رفتگی', + left: 'چپ چین', + center: 'میان چین', + right: 'راست چین', + justify: 'بلوک چین' + }, + color: { + recent: 'رنگ اخیرا استفاده شده', + more: 'رنگ بیشتر', + background: 'رنگ پس زمینه', + foreground: 'رنگ متن', + transparent: 'بی رنگ', + setTransparent: 'تنظیم حالت بی رنگ', + reset: 'بازنشاندن', + resetToDefault: 'حالت پیش فرض' + }, + shortcut: { + shortcuts: 'دکمه های میان بر', + close: 'بستن', + textFormatting: 'فرمت متن', + action: 'عملیات', + paragraphFormatting: 'فرمت پاراگراف', + documentStyle: 'استیل سند', + extraKeys: 'Extra keys' + }, + help: { + 'insertParagraph': 'افزودن پاراگراف', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'چپ چین', + 'justifyCenter': 'وسط چین', + 'justifyRight': 'راست چین', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'واچیدن', + redo: 'بازچیدن' + }, + specialChar: { + specialChar: 'کاراکتر خاص', + select: 'انتخاب کاراکتر خاص' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-fa-IR.min.js b/common/lib/summernote/lang/summernote-fa-IR.min.js new file mode 100644 index 0000000..c7e861a --- /dev/null +++ b/common/lib/summernote/lang/summernote-fa-IR.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-fa-IR.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=17)}({17:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"fa-IR":{font:{bold:"درشت",italic:"خمیده",underline:"میان خط",clear:"پاک کردن فرمت فونت",height:"فاصله ی خطی",name:"اسم فونت",strikethrough:"Strike",subscript:"Subscript",superscript:"Superscript",size:"اندازه ی فونت"},image:{image:"تصویر",insert:"وارد کردن تصویر",resizeFull:"تغییر به اندازه ی کامل",resizeHalf:"تغییر به اندازه نصف",resizeQuarter:"تغییر به اندازه یک چهارم",floatLeft:"چسباندن به چپ",floatRight:"چسباندن به راست",floatNone:"بدون چسبندگی",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"یک تصویر را اینجا بکشید",dropImage:"Drop image or Text",selectFromFiles:"فایل ها را انتخاب کنید",maximumFileSize:"حداکثر اندازه پرونده",maximumFileSizeError:"Maximum file size exceeded.",url:"آدرس تصویر",remove:"حذف تصویر",original:"Original"},video:{video:"ویدیو",videoLink:"لینک ویدیو",insert:"افزودن ویدیو",url:"آدرس ویدیو ؟",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion یا Youku)"},link:{link:"لینک",insert:"اضافه کردن لینک",unlink:"حذف لینک",edit:"ویرایش",textToDisplay:"متن جهت نمایش",url:"این لینک به چه آدرسی باید برود ؟",openInNewWindow:"در یک پنجره ی جدید باز شود"},table:{table:"جدول",addRowAbove:"افزودن ردیف بالا",addRowBelow:"افزودن ردیف پایین",addColLeft:"افزودن ستون چپ",addColRight:"افزودن ستون راست",delRow:"حذف ردیف",delCol:"حذف ستون",delTable:"حذف جدول"},hr:{insert:"افزودن خط افقی"},style:{style:"استیل",p:"نرمال",blockquote:"نقل قول",pre:"کد",h1:"سرتیتر 1",h2:"سرتیتر 2",h3:"سرتیتر 3",h4:"سرتیتر 4",h5:"سرتیتر 5",h6:"سرتیتر 6"},lists:{unordered:"لیست غیر ترتیبی",ordered:"لیست ترتیبی"},options:{help:"راهنما",fullscreen:"نمایش تمام صفحه",codeview:"مشاهده ی کد"},paragraph:{paragraph:"پاراگراف",outdent:"کاهش تو رفتگی",indent:"افزایش تو رفتگی",left:"چپ چین",center:"میان چین",right:"راست چین",justify:"بلوک چین"},color:{recent:"رنگ اخیرا استفاده شده",more:"رنگ بیشتر",background:"رنگ پس زمینه",foreground:"رنگ متن",transparent:"بی رنگ",setTransparent:"تنظیم حالت بی رنگ",reset:"بازنشاندن",resetToDefault:"حالت پیش فرض"},shortcut:{shortcuts:"دکمه های میان بر",close:"بستن",textFormatting:"فرمت متن",action:"عملیات",paragraphFormatting:"فرمت پاراگراف",documentStyle:"استیل سند",extraKeys:"Extra keys"},help:{insertParagraph:"افزودن پاراگراف",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"چپ چین",justifyCenter:"وسط چین",justifyRight:"راست چین",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"واچیدن",redo:"بازچیدن"},specialChar:{specialChar:"کاراکتر خاص",select:"انتخاب کاراکتر خاص"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-fa-IR.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-fa-IR.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-fa-IR.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-fi-FI.js b/common/lib/summernote/lang/summernote-fi-FI.js new file mode 100644 index 0000000..4622272 --- /dev/null +++ b/common/lib/summernote/lang/summernote-fi-FI.js @@ -0,0 +1,271 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 18); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 18: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'fi-FI': { + font: { + bold: 'Lihavointi', + italic: 'Kursivointi', + underline: 'Alleviivaus', + clear: 'Tyhjennä muotoilu', + height: 'Riviväli', + name: 'Kirjasintyyppi', + strikethrough: 'Yliviivaus', + subscript: 'Alaindeksi', + superscript: 'Yläindeksi', + size: 'Kirjasinkoko' + }, + image: { + image: 'Kuva', + insert: 'Lisää kuva', + resizeFull: 'Koko leveys', + resizeHalf: 'Puolikas leveys', + resizeQuarter: 'Neljäsosa leveys', + floatLeft: 'Sijoita vasemmalle', + floatRight: 'Sijoita oikealle', + floatNone: 'Ei sijoitusta', + shapeRounded: 'Muoto: Pyöristetty', + shapeCircle: 'Muoto: Ympyrä', + shapeThumbnail: 'Muoto: Esikatselukuva', + shapeNone: 'Muoto: Ei muotoilua', + dragImageHere: 'Vedä kuva tähän', + selectFromFiles: 'Valitse tiedostoista', + maximumFileSize: 'Maksimi tiedosto koko', + maximumFileSizeError: 'Maksimi tiedosto koko ylitetty.', + url: 'URL-osoitteen mukaan', + remove: 'Poista kuva', + original: 'Alkuperäinen' + }, + video: { + video: 'Video', + videoLink: 'Linkki videoon', + insert: 'Lisää video', + url: 'Videon URL-osoite', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion tai Youku)' + }, + link: { + link: 'Linkki', + insert: 'Lisää linkki', + unlink: 'Poista linkki', + edit: 'Muokkaa', + textToDisplay: 'Näytettävä teksti', + url: 'Linkin URL-osoite', + openInNewWindow: 'Avaa uudessa ikkunassa' + }, + table: { + table: 'Taulukko', + addRowAbove: 'Lisää rivi yläpuolelle', + addRowBelow: 'Lisää rivi alapuolelle', + addColLeft: 'Lisää sarake vasemmalle puolelle', + addColRight: 'Lisää sarake oikealle puolelle', + delRow: 'Poista rivi', + delCol: 'Poista sarake', + delTable: 'Poista taulukko' + }, + hr: { + insert: 'Lisää vaakaviiva' + }, + style: { + style: 'Tyyli', + p: 'Normaali', + blockquote: 'Lainaus', + pre: 'Koodi', + h1: 'Otsikko 1', + h2: 'Otsikko 2', + h3: 'Otsikko 3', + h4: 'Otsikko 4', + h5: 'Otsikko 5', + h6: 'Otsikko 6' + }, + lists: { + unordered: 'Luettelomerkitty luettelo', + ordered: 'Numeroitu luettelo' + }, + options: { + help: 'Ohje', + fullscreen: 'Koko näyttö', + codeview: 'HTML-näkymä' + }, + paragraph: { + paragraph: 'Kappale', + outdent: 'Pienennä sisennystä', + indent: 'Suurenna sisennystä', + left: 'Tasaa vasemmalle', + center: 'Keskitä', + right: 'Tasaa oikealle', + justify: 'Tasaa' + }, + color: { + recent: 'Viimeisin väri', + more: 'Lisää värejä', + background: 'Korostusväri', + foreground: 'Tekstin väri', + transparent: 'Läpinäkyvä', + setTransparent: 'Aseta läpinäkyväksi', + reset: 'Palauta', + resetToDefault: 'Palauta oletusarvoksi' + }, + shortcut: { + shortcuts: 'Pikanäppäimet', + close: 'Sulje', + textFormatting: 'Tekstin muotoilu', + action: 'Toiminto', + paragraphFormatting: 'Kappaleen muotoilu', + documentStyle: 'Asiakirjan tyyli' + }, + help: { + 'insertParagraph': 'Lisää kappale', + 'undo': 'Kumoa viimeisin komento', + 'redo': 'Tee uudelleen kumottu komento', + 'tab': 'Sarkain', + 'untab': 'Sarkainmerkin poisto', + 'bold': 'Lihavointi', + 'italic': 'Kursiivi', + 'underline': 'Alleviivaus', + 'strikethrough': 'Yliviivaus', + 'removeFormat': 'Poista asetetut tyylit', + 'justifyLeft': 'Tasaa vasemmalle', + 'justifyCenter': 'Keskitä', + 'justifyRight': 'Tasaa oikealle', + 'justifyFull': 'Tasaa', + 'insertUnorderedList': 'Luettelomerkillä varustettu lista', + 'insertOrderedList': 'Numeroitu lista', + 'outdent': 'Pienennä sisennystä', + 'indent': 'Suurenna sisennystä', + 'formatPara': 'Muuta kappaleen formaatti p', + 'formatH1': 'Muuta kappaleen formaatti H1', + 'formatH2': 'Muuta kappaleen formaatti H2', + 'formatH3': 'Muuta kappaleen formaatti H3', + 'formatH4': 'Muuta kappaleen formaatti H4', + 'formatH5': 'Muuta kappaleen formaatti H5', + 'formatH6': 'Muuta kappaleen formaatti H6', + 'insertHorizontalRule': 'Lisää vaakaviiva', + 'linkDialog.show': 'Lisää linkki' + }, + history: { + undo: 'Kumoa', + redo: 'Toista' + }, + specialChar: { + specialChar: 'ERIKOISMERKIT', + select: 'Valitse erikoismerkit' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-fi-FI.min.js b/common/lib/summernote/lang/summernote-fi-FI.min.js new file mode 100644 index 0000000..1599cae --- /dev/null +++ b/common/lib/summernote/lang/summernote-fi-FI.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-fi-FI.min.js.LICENSE.txt */ +!function(e,i){if("object"==typeof exports&&"object"==typeof module)module.exports=i();else if("function"==typeof define&&define.amd)define([],i);else{var t=i();for(var a in t)("object"==typeof exports?exports:e)[a]=t[a]}}(window,(function(){return function(e){var i={};function t(a){if(i[a])return i[a].exports;var o=i[a]={i:a,l:!1,exports:{}};return e[a].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=e,t.c=i,t.d=function(e,i,a){t.o(e,i)||Object.defineProperty(e,i,{enumerable:!0,get:a})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,i){if(1&i&&(e=t(e)),8&i)return e;if(4&i&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(t.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&i&&"string"!=typeof e)for(var o in e)t.d(a,o,function(i){return e[i]}.bind(null,o));return a},t.n=function(e){var i=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(i,"a",i),i},t.o=function(e,i){return Object.prototype.hasOwnProperty.call(e,i)},t.p="",t(t.s=18)}({18:function(e,i){var t;(t=jQuery).extend(t.summernote.lang,{"fi-FI":{font:{bold:"Lihavointi",italic:"Kursivointi",underline:"Alleviivaus",clear:"Tyhjennä muotoilu",height:"Riviväli",name:"Kirjasintyyppi",strikethrough:"Yliviivaus",subscript:"Alaindeksi",superscript:"Yläindeksi",size:"Kirjasinkoko"},image:{image:"Kuva",insert:"Lisää kuva",resizeFull:"Koko leveys",resizeHalf:"Puolikas leveys",resizeQuarter:"Neljäsosa leveys",floatLeft:"Sijoita vasemmalle",floatRight:"Sijoita oikealle",floatNone:"Ei sijoitusta",shapeRounded:"Muoto: Pyöristetty",shapeCircle:"Muoto: Ympyrä",shapeThumbnail:"Muoto: Esikatselukuva",shapeNone:"Muoto: Ei muotoilua",dragImageHere:"Vedä kuva tähän",selectFromFiles:"Valitse tiedostoista",maximumFileSize:"Maksimi tiedosto koko",maximumFileSizeError:"Maksimi tiedosto koko ylitetty.",url:"URL-osoitteen mukaan",remove:"Poista kuva",original:"Alkuperäinen"},video:{video:"Video",videoLink:"Linkki videoon",insert:"Lisää video",url:"Videon URL-osoite",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion tai Youku)"},link:{link:"Linkki",insert:"Lisää linkki",unlink:"Poista linkki",edit:"Muokkaa",textToDisplay:"Näytettävä teksti",url:"Linkin URL-osoite",openInNewWindow:"Avaa uudessa ikkunassa"},table:{table:"Taulukko",addRowAbove:"Lisää rivi yläpuolelle",addRowBelow:"Lisää rivi alapuolelle",addColLeft:"Lisää sarake vasemmalle puolelle",addColRight:"Lisää sarake oikealle puolelle",delRow:"Poista rivi",delCol:"Poista sarake",delTable:"Poista taulukko"},hr:{insert:"Lisää vaakaviiva"},style:{style:"Tyyli",p:"Normaali",blockquote:"Lainaus",pre:"Koodi",h1:"Otsikko 1",h2:"Otsikko 2",h3:"Otsikko 3",h4:"Otsikko 4",h5:"Otsikko 5",h6:"Otsikko 6"},lists:{unordered:"Luettelomerkitty luettelo",ordered:"Numeroitu luettelo"},options:{help:"Ohje",fullscreen:"Koko näyttö",codeview:"HTML-näkymä"},paragraph:{paragraph:"Kappale",outdent:"Pienennä sisennystä",indent:"Suurenna sisennystä",left:"Tasaa vasemmalle",center:"Keskitä",right:"Tasaa oikealle",justify:"Tasaa"},color:{recent:"Viimeisin väri",more:"Lisää värejä",background:"Korostusväri",foreground:"Tekstin väri",transparent:"Läpinäkyvä",setTransparent:"Aseta läpinäkyväksi",reset:"Palauta",resetToDefault:"Palauta oletusarvoksi"},shortcut:{shortcuts:"Pikanäppäimet",close:"Sulje",textFormatting:"Tekstin muotoilu",action:"Toiminto",paragraphFormatting:"Kappaleen muotoilu",documentStyle:"Asiakirjan tyyli"},help:{insertParagraph:"Lisää kappale",undo:"Kumoa viimeisin komento",redo:"Tee uudelleen kumottu komento",tab:"Sarkain",untab:"Sarkainmerkin poisto",bold:"Lihavointi",italic:"Kursiivi",underline:"Alleviivaus",strikethrough:"Yliviivaus",removeFormat:"Poista asetetut tyylit",justifyLeft:"Tasaa vasemmalle",justifyCenter:"Keskitä",justifyRight:"Tasaa oikealle",justifyFull:"Tasaa",insertUnorderedList:"Luettelomerkillä varustettu lista",insertOrderedList:"Numeroitu lista",outdent:"Pienennä sisennystä",indent:"Suurenna sisennystä",formatPara:"Muuta kappaleen formaatti p",formatH1:"Muuta kappaleen formaatti H1",formatH2:"Muuta kappaleen formaatti H2",formatH3:"Muuta kappaleen formaatti H3",formatH4:"Muuta kappaleen formaatti H4",formatH5:"Muuta kappaleen formaatti H5",formatH6:"Muuta kappaleen formaatti H6",insertHorizontalRule:"Lisää vaakaviiva","linkDialog.show":"Lisää linkki"},history:{undo:"Kumoa",redo:"Toista"},specialChar:{specialChar:"ERIKOISMERKIT",select:"Valitse erikoismerkit"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-fi-FI.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-fi-FI.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-fi-FI.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-fr-FR.js b/common/lib/summernote/lang/summernote-fr-FR.js new file mode 100644 index 0000000..df14f9e --- /dev/null +++ b/common/lib/summernote/lang/summernote-fr-FR.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 19); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 19: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'fr-FR': { + font: { + bold: 'Gras', + italic: 'Italique', + underline: 'Souligné', + clear: 'Effacer la mise en forme', + height: 'Interligne', + name: 'Famille de police', + strikethrough: 'Barré', + superscript: 'Exposant', + subscript: 'Indice', + size: 'Taille de police' + }, + image: { + image: 'Image', + insert: 'Insérer une image', + resizeFull: 'Taille originale', + resizeHalf: 'Redimensionner à 50 %', + resizeQuarter: 'Redimensionner à 25 %', + floatLeft: 'Aligné à gauche', + floatRight: 'Aligné à droite', + floatNone: 'Pas d\'alignement', + shapeRounded: 'Forme: Rectangle arrondi', + shapeCircle: 'Forme: Cercle', + shapeThumbnail: 'Forme: Vignette', + shapeNone: 'Forme: Aucune', + dragImageHere: 'Faites glisser une image ou un texte dans ce cadre', + dropImage: 'Lachez l\'image ou le texte', + selectFromFiles: 'Choisir un fichier', + maximumFileSize: 'Taille de fichier maximale', + maximumFileSizeError: 'Taille maximale du fichier dépassée', + url: 'URL de l\'image', + remove: 'Supprimer l\'image', + original: 'Original' + }, + video: { + video: 'Vidéo', + videoLink: 'Lien vidéo', + insert: 'Insérer une vidéo', + url: 'URL de la vidéo', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)' + }, + link: { + link: 'Lien', + insert: 'Insérer un lien', + unlink: 'Supprimer un lien', + edit: 'Modifier', + textToDisplay: 'Texte à afficher', + url: 'URL du lien', + openInNewWindow: 'Ouvrir dans une nouvelle fenêtre' + }, + table: { + table: 'Tableau', + addRowAbove: 'Ajouter une ligne au-dessus', + addRowBelow: 'Ajouter une ligne en dessous', + addColLeft: 'Ajouter une colonne à gauche', + addColRight: 'Ajouter une colonne à droite', + delRow: 'Supprimer la ligne', + delCol: 'Supprimer la colonne', + delTable: 'Supprimer le tableau' + }, + hr: { + insert: 'Insérer une ligne horizontale' + }, + style: { + style: 'Style', + p: 'Normal', + blockquote: 'Citation', + pre: 'Code source', + h1: 'Titre 1', + h2: 'Titre 2', + h3: 'Titre 3', + h4: 'Titre 4', + h5: 'Titre 5', + h6: 'Titre 6' + }, + lists: { + unordered: 'Liste à puces', + ordered: 'Liste numérotée' + }, + options: { + help: 'Aide', + fullscreen: 'Plein écran', + codeview: 'Afficher le code HTML' + }, + paragraph: { + paragraph: 'Paragraphe', + outdent: 'Diminuer le retrait', + indent: 'Augmenter le retrait', + left: 'Aligner à gauche', + center: 'Centrer', + right: 'Aligner à droite', + justify: 'Justifier' + }, + color: { + recent: 'Dernière couleur sélectionnée', + more: 'Plus de couleurs', + background: 'Couleur de fond', + foreground: 'Couleur de police', + transparent: 'Transparent', + setTransparent: 'Définir la transparence', + reset: 'Restaurer', + resetToDefault: 'Restaurer la couleur par défaut' + }, + shortcut: { + shortcuts: 'Raccourcis', + close: 'Fermer', + textFormatting: 'Mise en forme du texte', + action: 'Action', + paragraphFormatting: 'Mise en forme des paragraphes', + documentStyle: 'Style du document', + extraKeys: 'Touches supplémentaires' + }, + help: { + 'insertParagraph': 'Insérer paragraphe', + 'undo': 'Défaire la dernière commande', + 'redo': 'Refaire la dernière commande', + 'tab': 'Tabulation', + 'untab': 'Tabulation arrière', + 'bold': 'Mettre en caractère gras', + 'italic': 'Mettre en italique', + 'underline': 'Mettre en souligné', + 'strikethrough': 'Mettre en texte barré', + 'removeFormat': 'Nettoyer les styles', + 'justifyLeft': 'Aligner à gauche', + 'justifyCenter': 'Centrer', + 'justifyRight': 'Aligner à droite', + 'justifyFull': 'Justifier à gauche et à droite', + 'insertUnorderedList': 'Basculer liste à puces', + 'insertOrderedList': 'Basculer liste ordonnée', + 'outdent': 'Diminuer le retrait du paragraphe', + 'indent': 'Augmenter le retrait du paragraphe', + 'formatPara': 'Changer le paragraphe en cours en normal (P)', + 'formatH1': 'Changer le paragraphe en cours en entête H1', + 'formatH2': 'Changer le paragraphe en cours en entête H2', + 'formatH3': 'Changer le paragraphe en cours en entête H3', + 'formatH4': 'Changer le paragraphe en cours en entête H4', + 'formatH5': 'Changer le paragraphe en cours en entête H5', + 'formatH6': 'Changer le paragraphe en cours en entête H6', + 'insertHorizontalRule': 'Insérer séparation horizontale', + 'linkDialog.show': 'Afficher fenêtre d\'hyperlien' + }, + history: { + undo: 'Annuler la dernière action', + redo: 'Restaurer la dernière action annulée' + }, + specialChar: { + specialChar: 'Caractères spéciaux', + select: 'Choisir des caractères spéciaux' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-fr-FR.min.js b/common/lib/summernote/lang/summernote-fr-FR.min.js new file mode 100644 index 0000000..cbc6c70 --- /dev/null +++ b/common/lib/summernote/lang/summernote-fr-FR.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-fr-FR.min.js.LICENSE.txt */ +!function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r();else if("function"==typeof define&&define.amd)define([],r);else{var t=r();for(var n in t)("object"==typeof exports?exports:e)[n]=t[n]}}(window,(function(){return function(e){var r={};function t(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var i in e)t.d(n,i,function(r){return e[r]}.bind(null,i));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=19)}({19:function(e,r){var t;(t=jQuery).extend(t.summernote.lang,{"fr-FR":{font:{bold:"Gras",italic:"Italique",underline:"Souligné",clear:"Effacer la mise en forme",height:"Interligne",name:"Famille de police",strikethrough:"Barré",superscript:"Exposant",subscript:"Indice",size:"Taille de police"},image:{image:"Image",insert:"Insérer une image",resizeFull:"Taille originale",resizeHalf:"Redimensionner à 50 %",resizeQuarter:"Redimensionner à 25 %",floatLeft:"Aligné à gauche",floatRight:"Aligné à droite",floatNone:"Pas d'alignement",shapeRounded:"Forme: Rectangle arrondi",shapeCircle:"Forme: Cercle",shapeThumbnail:"Forme: Vignette",shapeNone:"Forme: Aucune",dragImageHere:"Faites glisser une image ou un texte dans ce cadre",dropImage:"Lachez l'image ou le texte",selectFromFiles:"Choisir un fichier",maximumFileSize:"Taille de fichier maximale",maximumFileSizeError:"Taille maximale du fichier dépassée",url:"URL de l'image",remove:"Supprimer l'image",original:"Original"},video:{video:"Vidéo",videoLink:"Lien vidéo",insert:"Insérer une vidéo",url:"URL de la vidéo",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)"},link:{link:"Lien",insert:"Insérer un lien",unlink:"Supprimer un lien",edit:"Modifier",textToDisplay:"Texte à afficher",url:"URL du lien",openInNewWindow:"Ouvrir dans une nouvelle fenêtre"},table:{table:"Tableau",addRowAbove:"Ajouter une ligne au-dessus",addRowBelow:"Ajouter une ligne en dessous",addColLeft:"Ajouter une colonne à gauche",addColRight:"Ajouter une colonne à droite",delRow:"Supprimer la ligne",delCol:"Supprimer la colonne",delTable:"Supprimer le tableau"},hr:{insert:"Insérer une ligne horizontale"},style:{style:"Style",p:"Normal",blockquote:"Citation",pre:"Code source",h1:"Titre 1",h2:"Titre 2",h3:"Titre 3",h4:"Titre 4",h5:"Titre 5",h6:"Titre 6"},lists:{unordered:"Liste à puces",ordered:"Liste numérotée"},options:{help:"Aide",fullscreen:"Plein écran",codeview:"Afficher le code HTML"},paragraph:{paragraph:"Paragraphe",outdent:"Diminuer le retrait",indent:"Augmenter le retrait",left:"Aligner à gauche",center:"Centrer",right:"Aligner à droite",justify:"Justifier"},color:{recent:"Dernière couleur sélectionnée",more:"Plus de couleurs",background:"Couleur de fond",foreground:"Couleur de police",transparent:"Transparent",setTransparent:"Définir la transparence",reset:"Restaurer",resetToDefault:"Restaurer la couleur par défaut"},shortcut:{shortcuts:"Raccourcis",close:"Fermer",textFormatting:"Mise en forme du texte",action:"Action",paragraphFormatting:"Mise en forme des paragraphes",documentStyle:"Style du document",extraKeys:"Touches supplémentaires"},help:{insertParagraph:"Insérer paragraphe",undo:"Défaire la dernière commande",redo:"Refaire la dernière commande",tab:"Tabulation",untab:"Tabulation arrière",bold:"Mettre en caractère gras",italic:"Mettre en italique",underline:"Mettre en souligné",strikethrough:"Mettre en texte barré",removeFormat:"Nettoyer les styles",justifyLeft:"Aligner à gauche",justifyCenter:"Centrer",justifyRight:"Aligner à droite",justifyFull:"Justifier à gauche et à droite",insertUnorderedList:"Basculer liste à puces",insertOrderedList:"Basculer liste ordonnée",outdent:"Diminuer le retrait du paragraphe",indent:"Augmenter le retrait du paragraphe",formatPara:"Changer le paragraphe en cours en normal (P)",formatH1:"Changer le paragraphe en cours en entête H1",formatH2:"Changer le paragraphe en cours en entête H2",formatH3:"Changer le paragraphe en cours en entête H3",formatH4:"Changer le paragraphe en cours en entête H4",formatH5:"Changer le paragraphe en cours en entête H5",formatH6:"Changer le paragraphe en cours en entête H6",insertHorizontalRule:"Insérer séparation horizontale","linkDialog.show":"Afficher fenêtre d'hyperlien"},history:{undo:"Annuler la dernière action",redo:"Restaurer la dernière action annulée"},specialChar:{specialChar:"Caractères spéciaux",select:"Choisir des caractères spéciaux"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-fr-FR.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-fr-FR.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-fr-FR.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-gl-ES.js b/common/lib/summernote/lang/summernote-gl-ES.js new file mode 100644 index 0000000..9a31a9f --- /dev/null +++ b/common/lib/summernote/lang/summernote-gl-ES.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 20); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 20: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'gl-ES': { + font: { + bold: 'Negrita', + italic: 'Cursiva', + underline: 'Subliñado', + clear: 'Quitar estilo de fonte', + height: 'Altura de liña', + name: 'Fonte', + strikethrough: 'Riscado', + superscript: 'Superíndice', + subscript: 'Subíndice', + size: 'Tamaño da fonte' + }, + image: { + image: 'Imaxe', + insert: 'Inserir imaxe', + resizeFull: 'Redimensionar a tamaño completo', + resizeHalf: 'Redimensionar á metade', + resizeQuarter: 'Redimensionar a un cuarto', + floatLeft: 'Flotar á esquerda', + floatRight: 'Flotar á dereita', + floatNone: 'Non flotar', + shapeRounded: 'Forma: Redondeado', + shapeCircle: 'Forma: Círculo', + shapeThumbnail: 'Forma: Marco', + shapeNone: 'Forma: Ningunha', + dragImageHere: 'Arrastrar unha imaxe ou texto aquí', + dropImage: 'Solta a imaxe ou texto', + selectFromFiles: 'Seleccionar desde os arquivos', + maximumFileSize: 'Tamaño máximo do arquivo', + maximumFileSizeError: 'Superaches o tamaño máximo do arquivo.', + url: 'URL da imaxe', + remove: 'Eliminar imaxe', + original: 'Original' + }, + video: { + video: 'Vídeo', + videoLink: 'Ligazón do vídeo', + insert: 'Insertar vídeo', + url: 'URL do vídeo?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, o Youku)' + }, + link: { + link: 'Ligazón', + insert: 'Inserir Ligazón', + unlink: 'Quitar Ligazón', + edit: 'Editar', + textToDisplay: 'Texto para amosar', + url: 'Cara a que URL leva a ligazón?', + openInNewWindow: 'Abrir nunha nova xanela' + }, + table: { + table: 'Táboa', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Inserir liña horizontal' + }, + style: { + style: 'Estilo', + p: 'Normal', + blockquote: 'Cita', + pre: 'Código', + h1: 'Título 1', + h2: 'Título 2', + h3: 'Título 3', + h4: 'Título 4', + h5: 'Título 5', + h6: 'Título 6' + }, + lists: { + unordered: 'Lista desordenada', + ordered: 'Lista ordenada' + }, + options: { + help: 'Axuda', + fullscreen: 'Pantalla completa', + codeview: 'Ver código fonte' + }, + paragraph: { + paragraph: 'Parágrafo', + outdent: 'Menos tabulación', + indent: 'Máis tabulación', + left: 'Aliñar á esquerda', + center: 'Aliñar ao centro', + right: 'Aliñar á dereita', + justify: 'Xustificar' + }, + color: { + recent: 'Última cor', + more: 'Máis cores', + background: 'Cor de fondo', + foreground: 'Cor de fuente', + transparent: 'Transparente', + setTransparent: 'Establecer transparente', + reset: 'Restaurar', + resetToDefault: 'Restaurar por defecto' + }, + shortcut: { + shortcuts: 'Atallos de teclado', + close: 'Pechar', + textFormatting: 'Formato de texto', + action: 'Acción', + paragraphFormatting: 'Formato de parágrafo', + documentStyle: 'Estilo de documento', + extraKeys: 'Teclas adicionais' + }, + help: { + 'insertParagraph': 'Inserir parágrafo', + 'undo': 'Desfacer última acción', + 'redo': 'Refacer última acción', + 'tab': 'Tabular', + 'untab': 'Eliminar tabulación', + 'bold': 'Establecer estilo negrita', + 'italic': 'Establecer estilo cursiva', + 'underline': 'Establecer estilo subliñado', + 'strikethrough': 'Establecer estilo riscado', + 'removeFormat': 'Limpar estilo', + 'justifyLeft': 'Aliñar á esquerda', + 'justifyCenter': 'Aliñar ao centro', + 'justifyRight': 'Aliñar á dereita', + 'justifyFull': 'Xustificar', + 'insertUnorderedList': 'Inserir lista desordenada', + 'insertOrderedList': 'Inserir lista ordenada', + 'outdent': 'Reducir tabulación do parágrafo', + 'indent': 'Aumentar tabulación do parágrafo', + 'formatPara': 'Mudar estilo do bloque a parágrafo (etiqueta P)', + 'formatH1': 'Mudar estilo do bloque a H1', + 'formatH2': 'Mudar estilo do bloque a H2', + 'formatH3': 'Mudar estilo do bloque a H3', + 'formatH4': 'Mudar estilo do bloque a H4', + 'formatH5': 'Mudar estilo do bloque a H5', + 'formatH6': 'Mudar estilo do bloque a H6', + 'insertHorizontalRule': 'Inserir liña horizontal', + 'linkDialog.show': 'Amosar panel ligazóns' + }, + history: { + undo: 'Desfacer', + redo: 'Refacer' + }, + specialChar: { + specialChar: 'CARACTERES ESPECIAIS', + select: 'Selecciona Caracteres especiais' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-gl-ES.min.js b/common/lib/summernote/lang/summernote-gl-ES.min.js new file mode 100644 index 0000000..63fce46 --- /dev/null +++ b/common/lib/summernote/lang/summernote-gl-ES.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-gl-ES.min.js.LICENSE.txt */ +!function(e,a){if("object"==typeof exports&&"object"==typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var r=a();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var a={};function r(o){if(a[o])return a[o].exports;var t=a[o]={i:o,l:!1,exports:{}};return e[o].call(t.exports,t,t.exports,r),t.l=!0,t.exports}return r.m=e,r.c=a,r.d=function(e,a,o){r.o(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,a){if(1&a&&(e=r(e)),8&a)return e;if(4&a&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&a&&"string"!=typeof e)for(var t in e)r.d(o,t,function(a){return e[a]}.bind(null,t));return o},r.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(a,"a",a),a},r.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},r.p="",r(r.s=20)}({20:function(e,a){var r;(r=jQuery).extend(r.summernote.lang,{"gl-ES":{font:{bold:"Negrita",italic:"Cursiva",underline:"Subliñado",clear:"Quitar estilo de fonte",height:"Altura de liña",name:"Fonte",strikethrough:"Riscado",superscript:"Superíndice",subscript:"Subíndice",size:"Tamaño da fonte"},image:{image:"Imaxe",insert:"Inserir imaxe",resizeFull:"Redimensionar a tamaño completo",resizeHalf:"Redimensionar á metade",resizeQuarter:"Redimensionar a un cuarto",floatLeft:"Flotar á esquerda",floatRight:"Flotar á dereita",floatNone:"Non flotar",shapeRounded:"Forma: Redondeado",shapeCircle:"Forma: Círculo",shapeThumbnail:"Forma: Marco",shapeNone:"Forma: Ningunha",dragImageHere:"Arrastrar unha imaxe ou texto aquí",dropImage:"Solta a imaxe ou texto",selectFromFiles:"Seleccionar desde os arquivos",maximumFileSize:"Tamaño máximo do arquivo",maximumFileSizeError:"Superaches o tamaño máximo do arquivo.",url:"URL da imaxe",remove:"Eliminar imaxe",original:"Original"},video:{video:"Vídeo",videoLink:"Ligazón do vídeo",insert:"Insertar vídeo",url:"URL do vídeo?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion, o Youku)"},link:{link:"Ligazón",insert:"Inserir Ligazón",unlink:"Quitar Ligazón",edit:"Editar",textToDisplay:"Texto para amosar",url:"Cara a que URL leva a ligazón?",openInNewWindow:"Abrir nunha nova xanela"},table:{table:"Táboa",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Inserir liña horizontal"},style:{style:"Estilo",p:"Normal",blockquote:"Cita",pre:"Código",h1:"Título 1",h2:"Título 2",h3:"Título 3",h4:"Título 4",h5:"Título 5",h6:"Título 6"},lists:{unordered:"Lista desordenada",ordered:"Lista ordenada"},options:{help:"Axuda",fullscreen:"Pantalla completa",codeview:"Ver código fonte"},paragraph:{paragraph:"Parágrafo",outdent:"Menos tabulación",indent:"Máis tabulación",left:"Aliñar á esquerda",center:"Aliñar ao centro",right:"Aliñar á dereita",justify:"Xustificar"},color:{recent:"Última cor",more:"Máis cores",background:"Cor de fondo",foreground:"Cor de fuente",transparent:"Transparente",setTransparent:"Establecer transparente",reset:"Restaurar",resetToDefault:"Restaurar por defecto"},shortcut:{shortcuts:"Atallos de teclado",close:"Pechar",textFormatting:"Formato de texto",action:"Acción",paragraphFormatting:"Formato de parágrafo",documentStyle:"Estilo de documento",extraKeys:"Teclas adicionais"},help:{insertParagraph:"Inserir parágrafo",undo:"Desfacer última acción",redo:"Refacer última acción",tab:"Tabular",untab:"Eliminar tabulación",bold:"Establecer estilo negrita",italic:"Establecer estilo cursiva",underline:"Establecer estilo subliñado",strikethrough:"Establecer estilo riscado",removeFormat:"Limpar estilo",justifyLeft:"Aliñar á esquerda",justifyCenter:"Aliñar ao centro",justifyRight:"Aliñar á dereita",justifyFull:"Xustificar",insertUnorderedList:"Inserir lista desordenada",insertOrderedList:"Inserir lista ordenada",outdent:"Reducir tabulación do parágrafo",indent:"Aumentar tabulación do parágrafo",formatPara:"Mudar estilo do bloque a parágrafo (etiqueta P)",formatH1:"Mudar estilo do bloque a H1",formatH2:"Mudar estilo do bloque a H2",formatH3:"Mudar estilo do bloque a H3",formatH4:"Mudar estilo do bloque a H4",formatH5:"Mudar estilo do bloque a H5",formatH6:"Mudar estilo do bloque a H6",insertHorizontalRule:"Inserir liña horizontal","linkDialog.show":"Amosar panel ligazóns"},history:{undo:"Desfacer",redo:"Refacer"},specialChar:{specialChar:"CARACTERES ESPECIAIS",select:"Selecciona Caracteres especiais"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-gl-ES.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-gl-ES.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-gl-ES.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-he-IL.js b/common/lib/summernote/lang/summernote-he-IL.js new file mode 100644 index 0000000..be9dfb2 --- /dev/null +++ b/common/lib/summernote/lang/summernote-he-IL.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 21); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 21: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'he-IL': { + font: { + bold: 'מודגש', + italic: 'נטוי', + underline: 'קו תחתון', + clear: 'נקה עיצוב', + height: 'גובה', + name: 'גופן', + strikethrough: 'קו חוצה', + subscript: 'כתב תחתי', + superscript: 'כתב עילי', + size: 'גודל גופן' + }, + image: { + image: 'תמונה', + insert: 'הוסף תמונה', + resizeFull: 'גודל מלא', + resizeHalf: 'להקטין לחצי', + resizeQuarter: 'להקטין לרבע', + floatLeft: 'יישור לשמאל', + floatRight: 'יישור לימין', + floatNone: 'ישר', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'גרור תמונה לכאן', + dropImage: 'Drop image or Text', + selectFromFiles: 'בחר מתוך קבצים', + maximumFileSize: 'Maximum file size', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'נתיב לתמונה', + remove: 'הסר תמונה', + original: 'Original' + }, + video: { + video: 'סרטון', + videoLink: 'קישור לסרטון', + insert: 'הוסף סרטון', + url: 'קישור לסרטון', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion או Youku)' + }, + link: { + link: 'קישור', + insert: 'הוסף קישור', + unlink: 'הסר קישור', + edit: 'ערוך', + textToDisplay: 'טקסט להציג', + url: 'קישור', + openInNewWindow: 'פתח בחלון חדש' + }, + table: { + table: 'טבלה', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'הוסף קו' + }, + style: { + style: 'עיצוב', + p: 'טקסט רגיל', + blockquote: 'ציטוט', + pre: 'קוד', + h1: 'כותרת 1', + h2: 'כותרת 2', + h3: 'כותרת 3', + h4: 'כותרת 4', + h5: 'כותרת 5', + h6: 'כותרת 6' + }, + lists: { + unordered: 'רשימת תבליטים', + ordered: 'רשימה ממוספרת' + }, + options: { + help: 'עזרה', + fullscreen: 'מסך מלא', + codeview: 'תצוגת קוד' + }, + paragraph: { + paragraph: 'פסקה', + outdent: 'הקטן כניסה', + indent: 'הגדל כניסה', + left: 'יישור לשמאל', + center: 'יישור למרכז', + right: 'יישור לימין', + justify: 'מיושר' + }, + color: { + recent: 'צבע טקסט אחרון', + more: 'עוד צבעים', + background: 'צבע רקע', + foreground: 'צבע טקסט', + transparent: 'שקוף', + setTransparent: 'קבע כשקוף', + reset: 'איפוס', + resetToDefault: 'אפס לברירת מחדל' + }, + shortcut: { + shortcuts: 'קיצורי מקלדת', + close: 'סגור', + textFormatting: 'עיצוב הטקסט', + action: 'פעולה', + paragraphFormatting: 'סגנונות פסקה', + documentStyle: 'עיצוב המסמך', + extraKeys: 'קיצורים נוספים' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'בטל פעולה', + redo: 'בצע שוב' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-he-IL.min.js b/common/lib/summernote/lang/summernote-he-IL.min.js new file mode 100644 index 0000000..cdb955d --- /dev/null +++ b/common/lib/summernote/lang/summernote-he-IL.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-he-IL.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=21)}({21:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"he-IL":{font:{bold:"מודגש",italic:"נטוי",underline:"קו תחתון",clear:"נקה עיצוב",height:"גובה",name:"גופן",strikethrough:"קו חוצה",subscript:"כתב תחתי",superscript:"כתב עילי",size:"גודל גופן"},image:{image:"תמונה",insert:"הוסף תמונה",resizeFull:"גודל מלא",resizeHalf:"להקטין לחצי",resizeQuarter:"להקטין לרבע",floatLeft:"יישור לשמאל",floatRight:"יישור לימין",floatNone:"ישר",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"גרור תמונה לכאן",dropImage:"Drop image or Text",selectFromFiles:"בחר מתוך קבצים",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"נתיב לתמונה",remove:"הסר תמונה",original:"Original"},video:{video:"סרטון",videoLink:"קישור לסרטון",insert:"הוסף סרטון",url:"קישור לסרטון",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion או Youku)"},link:{link:"קישור",insert:"הוסף קישור",unlink:"הסר קישור",edit:"ערוך",textToDisplay:"טקסט להציג",url:"קישור",openInNewWindow:"פתח בחלון חדש"},table:{table:"טבלה",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"הוסף קו"},style:{style:"עיצוב",p:"טקסט רגיל",blockquote:"ציטוט",pre:"קוד",h1:"כותרת 1",h2:"כותרת 2",h3:"כותרת 3",h4:"כותרת 4",h5:"כותרת 5",h6:"כותרת 6"},lists:{unordered:"רשימת תבליטים",ordered:"רשימה ממוספרת"},options:{help:"עזרה",fullscreen:"מסך מלא",codeview:"תצוגת קוד"},paragraph:{paragraph:"פסקה",outdent:"הקטן כניסה",indent:"הגדל כניסה",left:"יישור לשמאל",center:"יישור למרכז",right:"יישור לימין",justify:"מיושר"},color:{recent:"צבע טקסט אחרון",more:"עוד צבעים",background:"צבע רקע",foreground:"צבע טקסט",transparent:"שקוף",setTransparent:"קבע כשקוף",reset:"איפוס",resetToDefault:"אפס לברירת מחדל"},shortcut:{shortcuts:"קיצורי מקלדת",close:"סגור",textFormatting:"עיצוב הטקסט",action:"פעולה",paragraphFormatting:"סגנונות פסקה",documentStyle:"עיצוב המסמך",extraKeys:"קיצורים נוספים"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"בטל פעולה",redo:"בצע שוב"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-he-IL.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-he-IL.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-he-IL.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-hr-HR.js b/common/lib/summernote/lang/summernote-hr-HR.js new file mode 100644 index 0000000..8a86ad3 --- /dev/null +++ b/common/lib/summernote/lang/summernote-hr-HR.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 22); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 22: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'hr-HR': { + font: { + bold: 'Podebljano', + italic: 'Kurziv', + underline: 'Podvučeno', + clear: 'Ukloni stilove fonta', + height: 'Visina linije', + name: 'Font Family', + strikethrough: 'Precrtano', + subscript: 'Subscript', + superscript: 'Superscript', + size: 'Veličina fonta' + }, + image: { + image: 'Slika', + insert: 'Ubaci sliku', + resizeFull: 'Puna veličina', + resizeHalf: 'Umanji na 50%', + resizeQuarter: 'Umanji na 25%', + floatLeft: 'Poravnaj lijevo', + floatRight: 'Poravnaj desno', + floatNone: 'Bez poravnanja', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'Povuci sliku ovdje', + dropImage: 'Drop image or Text', + selectFromFiles: 'Izaberi iz datoteke', + maximumFileSize: 'Maximum file size', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'Adresa slike', + remove: 'Ukloni sliku', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Veza na video', + insert: 'Ubaci video', + url: 'URL video', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ili Youku)' + }, + link: { + link: 'Veza', + insert: 'Ubaci vezu', + unlink: 'Ukloni vezu', + edit: 'Uredi', + textToDisplay: 'Tekst za prikaz', + url: 'Internet adresa', + openInNewWindow: 'Otvori u novom prozoru' + }, + table: { + table: 'Tablica', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Ubaci horizontalnu liniju' + }, + style: { + style: 'Stil', + p: 'pni', + blockquote: 'Citat', + pre: 'Kôd', + h1: 'Naslov 1', + h2: 'Naslov 2', + h3: 'Naslov 3', + h4: 'Naslov 4', + h5: 'Naslov 5', + h6: 'Naslov 6' + }, + lists: { + unordered: 'Obična lista', + ordered: 'Numerirana lista' + }, + options: { + help: 'Pomoć', + fullscreen: 'Preko cijelog ekrana', + codeview: 'Izvorni kôd' + }, + paragraph: { + paragraph: 'Paragraf', + outdent: 'Smanji uvlačenje', + indent: 'Povećaj uvlačenje', + left: 'Poravnaj lijevo', + center: 'Centrirano', + right: 'Poravnaj desno', + justify: 'Poravnaj obostrano' + }, + color: { + recent: 'Posljednja boja', + more: 'Više boja', + background: 'Boja pozadine', + foreground: 'Boja teksta', + transparent: 'Prozirna', + setTransparent: 'Prozirna', + reset: 'Poništi', + resetToDefault: 'Podrazumijevana' + }, + shortcut: { + shortcuts: 'Prečice s tipkovnice', + close: 'Zatvori', + textFormatting: 'Formatiranje teksta', + action: 'Akcija', + paragraphFormatting: 'Formatiranje paragrafa', + documentStyle: 'Stil dokumenta', + extraKeys: 'Dodatne kombinacije' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'Poništi', + redo: 'Ponovi' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-hr-HR.min.js b/common/lib/summernote/lang/summernote-hr-HR.min.js new file mode 100644 index 0000000..749b2e1 --- /dev/null +++ b/common/lib/summernote/lang/summernote-hr-HR.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-hr-HR.min.js.LICENSE.txt */ +!function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r();else if("function"==typeof define&&define.amd)define([],r);else{var a=r();for(var t in a)("object"==typeof exports?exports:e)[t]=a[t]}}(window,(function(){return function(e){var r={};function a(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,a),o.l=!0,o.exports}return a.m=e,a.c=r,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)a.d(t,o,function(r){return e[r]}.bind(null,o));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="",a(a.s=22)}({22:function(e,r){var a;(a=jQuery).extend(a.summernote.lang,{"hr-HR":{font:{bold:"Podebljano",italic:"Kurziv",underline:"Podvučeno",clear:"Ukloni stilove fonta",height:"Visina linije",name:"Font Family",strikethrough:"Precrtano",subscript:"Subscript",superscript:"Superscript",size:"Veličina fonta"},image:{image:"Slika",insert:"Ubaci sliku",resizeFull:"Puna veličina",resizeHalf:"Umanji na 50%",resizeQuarter:"Umanji na 25%",floatLeft:"Poravnaj lijevo",floatRight:"Poravnaj desno",floatNone:"Bez poravnanja",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Povuci sliku ovdje",dropImage:"Drop image or Text",selectFromFiles:"Izaberi iz datoteke",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Adresa slike",remove:"Ukloni sliku",original:"Original"},video:{video:"Video",videoLink:"Veza na video",insert:"Ubaci video",url:"URL video",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion ili Youku)"},link:{link:"Veza",insert:"Ubaci vezu",unlink:"Ukloni vezu",edit:"Uredi",textToDisplay:"Tekst za prikaz",url:"Internet adresa",openInNewWindow:"Otvori u novom prozoru"},table:{table:"Tablica",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Ubaci horizontalnu liniju"},style:{style:"Stil",p:"pni",blockquote:"Citat",pre:"Kôd",h1:"Naslov 1",h2:"Naslov 2",h3:"Naslov 3",h4:"Naslov 4",h5:"Naslov 5",h6:"Naslov 6"},lists:{unordered:"Obična lista",ordered:"Numerirana lista"},options:{help:"Pomoć",fullscreen:"Preko cijelog ekrana",codeview:"Izvorni kôd"},paragraph:{paragraph:"Paragraf",outdent:"Smanji uvlačenje",indent:"Povećaj uvlačenje",left:"Poravnaj lijevo",center:"Centrirano",right:"Poravnaj desno",justify:"Poravnaj obostrano"},color:{recent:"Posljednja boja",more:"Više boja",background:"Boja pozadine",foreground:"Boja teksta",transparent:"Prozirna",setTransparent:"Prozirna",reset:"Poništi",resetToDefault:"Podrazumijevana"},shortcut:{shortcuts:"Prečice s tipkovnice",close:"Zatvori",textFormatting:"Formatiranje teksta",action:"Akcija",paragraphFormatting:"Formatiranje paragrafa",documentStyle:"Stil dokumenta",extraKeys:"Dodatne kombinacije"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Poništi",redo:"Ponovi"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-hr-HR.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-hr-HR.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-hr-HR.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-hu-HU.js b/common/lib/summernote/lang/summernote-hu-HU.js new file mode 100644 index 0000000..ff41956 --- /dev/null +++ b/common/lib/summernote/lang/summernote-hu-HU.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 23); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 23: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'hu-HU': { + font: { + bold: 'Félkövér', + italic: 'Dőlt', + underline: 'Aláhúzott', + clear: 'Formázás törlése', + height: 'Sorköz', + name: 'Betűtípus', + strikethrough: 'Áthúzott', + subscript: 'Subscript', + superscript: 'Superscript', + size: 'Betűméret' + }, + image: { + image: 'Kép', + insert: 'Kép beszúrása', + resizeFull: 'Átméretezés teljes méretre', + resizeHalf: 'Átméretezés felére', + resizeQuarter: 'Átméretezés negyedére', + floatLeft: 'Igazítás balra', + floatRight: 'Igazítás jobbra', + floatNone: 'Igazítás törlése', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'Ide húzhat képet vagy szöveget', + dropImage: 'Engedje el a képet vagy szöveget', + selectFromFiles: 'Fájlok kiválasztása', + maximumFileSize: 'Maximum file size', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'Kép URL címe', + remove: 'Kép törlése', + original: 'Original' + }, + video: { + video: 'Videó', + videoLink: 'Videó hivatkozás', + insert: 'Videó beszúrása', + url: 'Videó URL címe', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion vagy Youku)' + }, + link: { + link: 'Hivatkozás', + insert: 'Hivatkozás beszúrása', + unlink: 'Hivatkozás megszüntetése', + edit: 'Szerkesztés', + textToDisplay: 'Megjelenítendő szöveg', + url: 'Milyen URL címre hivatkozzon?', + openInNewWindow: 'Megnyitás új ablakban' + }, + table: { + table: 'Táblázat', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Elválasztó vonal beszúrása' + }, + style: { + style: 'Stílus', + p: 'Normál', + blockquote: 'Idézet', + pre: 'Kód', + h1: 'Fejléc 1', + h2: 'Fejléc 2', + h3: 'Fejléc 3', + h4: 'Fejléc 4', + h5: 'Fejléc 5', + h6: 'Fejléc 6' + }, + lists: { + unordered: 'Listajeles lista', + ordered: 'Számozott lista' + }, + options: { + help: 'Súgó', + fullscreen: 'Teljes képernyő', + codeview: 'Kód nézet' + }, + paragraph: { + paragraph: 'Bekezdés', + outdent: 'Behúzás csökkentése', + indent: 'Behúzás növelése', + left: 'Igazítás balra', + center: 'Igazítás középre', + right: 'Igazítás jobbra', + justify: 'Sorkizárt' + }, + color: { + recent: 'Jelenlegi szín', + more: 'További színek', + background: 'Háttérszín', + foreground: 'Betűszín', + transparent: 'Átlátszó', + setTransparent: 'Átlászóság beállítása', + reset: 'Visszaállítás', + resetToDefault: 'Alaphelyzetbe állítás' + }, + shortcut: { + shortcuts: 'Gyorsbillentyű', + close: 'Bezárás', + textFormatting: 'Szöveg formázása', + action: 'Művelet', + paragraphFormatting: 'Bekezdés formázása', + documentStyle: 'Dokumentumstílus', + extraKeys: 'Extra keys' + }, + help: { + 'insertParagraph': 'Új bekezdés', + 'undo': 'Visszavonás', + 'redo': 'Újra', + 'tab': 'Behúzás növelése', + 'untab': 'Behúzás csökkentése', + 'bold': 'Félkövérre állítás', + 'italic': 'Dőltre állítás', + 'underline': 'Aláhúzás', + 'strikethrough': 'Áthúzás', + 'removeFormat': 'Formázás törlése', + 'justifyLeft': 'Balra igazítás', + 'justifyCenter': 'Középre igazítás', + 'justifyRight': 'Jobbra igazítás', + 'justifyFull': 'Sorkizárt', + 'insertUnorderedList': 'Számozatlan lista be/ki', + 'insertOrderedList': 'Számozott lista be/ki', + 'outdent': 'Jelenlegi bekezdés behúzásának megszüntetése', + 'indent': 'Jelenlegi bekezdés behúzása', + 'formatPara': 'Blokk formázása bekezdésként (P tag)', + 'formatH1': 'Blokk formázása, mint Fejléc 1', + 'formatH2': 'Blokk formázása, mint Fejléc 2', + 'formatH3': 'Blokk formázása, mint Fejléc 3', + 'formatH4': 'Blokk formázása, mint Fejléc 4', + 'formatH5': 'Blokk formázása, mint Fejléc 5', + 'formatH6': 'Blokk formázása, mint Fejléc 6', + 'insertHorizontalRule': 'Vízszintes vonal beszúrása', + 'linkDialog.show': 'Link párbeszédablak megjelenítése' + }, + history: { + undo: 'Visszavonás', + redo: 'Újra' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-hu-HU.min.js b/common/lib/summernote/lang/summernote-hu-HU.min.js new file mode 100644 index 0000000..e88e3ab --- /dev/null +++ b/common/lib/summernote/lang/summernote-hu-HU.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-hu-HU.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var s=t[o]={i:o,l:!1,exports:{}};return e[o].call(s.exports,s,s.exports,r),s.l=!0,s.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)r.d(o,s,function(t){return e[t]}.bind(null,s));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=23)}({23:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"hu-HU":{font:{bold:"Félkövér",italic:"Dőlt",underline:"Aláhúzott",clear:"Formázás törlése",height:"Sorköz",name:"Betűtípus",strikethrough:"Áthúzott",subscript:"Subscript",superscript:"Superscript",size:"Betűméret"},image:{image:"Kép",insert:"Kép beszúrása",resizeFull:"Átméretezés teljes méretre",resizeHalf:"Átméretezés felére",resizeQuarter:"Átméretezés negyedére",floatLeft:"Igazítás balra",floatRight:"Igazítás jobbra",floatNone:"Igazítás törlése",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Ide húzhat képet vagy szöveget",dropImage:"Engedje el a képet vagy szöveget",selectFromFiles:"Fájlok kiválasztása",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Kép URL címe",remove:"Kép törlése",original:"Original"},video:{video:"Videó",videoLink:"Videó hivatkozás",insert:"Videó beszúrása",url:"Videó URL címe",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion vagy Youku)"},link:{link:"Hivatkozás",insert:"Hivatkozás beszúrása",unlink:"Hivatkozás megszüntetése",edit:"Szerkesztés",textToDisplay:"Megjelenítendő szöveg",url:"Milyen URL címre hivatkozzon?",openInNewWindow:"Megnyitás új ablakban"},table:{table:"Táblázat",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Elválasztó vonal beszúrása"},style:{style:"Stílus",p:"Normál",blockquote:"Idézet",pre:"Kód",h1:"Fejléc 1",h2:"Fejléc 2",h3:"Fejléc 3",h4:"Fejléc 4",h5:"Fejléc 5",h6:"Fejléc 6"},lists:{unordered:"Listajeles lista",ordered:"Számozott lista"},options:{help:"Súgó",fullscreen:"Teljes képernyő",codeview:"Kód nézet"},paragraph:{paragraph:"Bekezdés",outdent:"Behúzás csökkentése",indent:"Behúzás növelése",left:"Igazítás balra",center:"Igazítás középre",right:"Igazítás jobbra",justify:"Sorkizárt"},color:{recent:"Jelenlegi szín",more:"További színek",background:"Háttérszín",foreground:"Betűszín",transparent:"Átlátszó",setTransparent:"Átlászóság beállítása",reset:"Visszaállítás",resetToDefault:"Alaphelyzetbe állítás"},shortcut:{shortcuts:"Gyorsbillentyű",close:"Bezárás",textFormatting:"Szöveg formázása",action:"Művelet",paragraphFormatting:"Bekezdés formázása",documentStyle:"Dokumentumstílus",extraKeys:"Extra keys"},help:{insertParagraph:"Új bekezdés",undo:"Visszavonás",redo:"Újra",tab:"Behúzás növelése",untab:"Behúzás csökkentése",bold:"Félkövérre állítás",italic:"Dőltre állítás",underline:"Aláhúzás",strikethrough:"Áthúzás",removeFormat:"Formázás törlése",justifyLeft:"Balra igazítás",justifyCenter:"Középre igazítás",justifyRight:"Jobbra igazítás",justifyFull:"Sorkizárt",insertUnorderedList:"Számozatlan lista be/ki",insertOrderedList:"Számozott lista be/ki",outdent:"Jelenlegi bekezdés behúzásának megszüntetése",indent:"Jelenlegi bekezdés behúzása",formatPara:"Blokk formázása bekezdésként (P tag)",formatH1:"Blokk formázása, mint Fejléc 1",formatH2:"Blokk formázása, mint Fejléc 2",formatH3:"Blokk formázása, mint Fejléc 3",formatH4:"Blokk formázása, mint Fejléc 4",formatH5:"Blokk formázása, mint Fejléc 5",formatH6:"Blokk formázása, mint Fejléc 6",insertHorizontalRule:"Vízszintes vonal beszúrása","linkDialog.show":"Link párbeszédablak megjelenítése"},history:{undo:"Visszavonás",redo:"Újra"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-hu-HU.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-hu-HU.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-hu-HU.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-id-ID.js b/common/lib/summernote/lang/summernote-id-ID.js new file mode 100644 index 0000000..b371225 --- /dev/null +++ b/common/lib/summernote/lang/summernote-id-ID.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 24); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 24: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'id-ID': { + font: { + bold: 'Tebal', + italic: 'Miring', + underline: 'Garis bawah', + clear: 'Bersihkan gaya', + height: 'Jarak baris', + name: 'Jenis Tulisan', + strikethrough: 'Coret', + subscript: 'Subscript', + superscript: 'Superscript', + size: 'Ukuran font' + }, + image: { + image: 'Gambar', + insert: 'Sisipkan gambar', + resizeFull: 'Ukuran penuh', + resizeHalf: 'Ukuran 50%', + resizeQuarter: 'Ukuran 25%', + floatLeft: 'Rata kiri', + floatRight: 'Rata kanan', + floatNone: 'Tanpa perataan', + shapeRounded: 'Bentuk: Membundar', + shapeCircle: 'Bentuk: Bundar', + shapeThumbnail: 'Bentuk: Thumbnail', + shapeNone: 'Bentuk: Tidak ada', + dragImageHere: 'Tarik gambar ke area ini', + dropImage: 'Letakkan gambar atau teks', + selectFromFiles: 'Pilih gambar dari berkas', + maximumFileSize: 'Ukuran maksimal berkas', + maximumFileSizeError: 'Ukuran maksimal berkas terlampaui.', + url: 'URL gambar', + remove: 'Hapus Gambar', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Link video', + insert: 'Sisipkan video', + url: 'Tautan video', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion atau Youku)' + }, + link: { + link: 'Tautan', + insert: 'Tambah tautan', + unlink: 'Hapus tautan', + edit: 'Edit', + textToDisplay: 'Tampilan teks', + url: 'Tautan tujuan', + openInNewWindow: 'Buka di jendela baru' + }, + table: { + table: 'Tabel', + addRowAbove: 'Tambahkan baris ke atas', + addRowBelow: 'Tambahkan baris ke bawah', + addColLeft: 'Tambahkan kolom ke kiri', + addColRight: 'Tambahkan kolom ke kanan', + delRow: 'Hapus baris', + delCol: 'Hapus kolom', + delTable: 'Hapus tabel' + }, + hr: { + insert: 'Masukkan garis horizontal' + }, + style: { + style: 'Gaya', + p: 'p', + blockquote: 'Kutipan', + pre: 'Kode', + h1: 'Heading 1', + h2: 'Heading 2', + h3: 'Heading 3', + h4: 'Heading 4', + h5: 'Heading 5', + h6: 'Heading 6' + }, + lists: { + unordered: 'Pencacahan', + ordered: 'Penomoran' + }, + options: { + help: 'Bantuan', + fullscreen: 'Layar penuh', + codeview: 'Kode HTML' + }, + paragraph: { + paragraph: 'Paragraf', + outdent: 'Outdent', + indent: 'Indent', + left: 'Rata kiri', + center: 'Rata tengah', + right: 'Rata kanan', + justify: 'Rata kanan kiri' + }, + color: { + recent: 'Warna sekarang', + more: 'Selengkapnya', + background: 'Warna latar', + foreground: 'Warna font', + transparent: 'Transparan', + setTransparent: 'Atur transparansi', + reset: 'Atur ulang', + resetToDefault: 'Kembalikan kesemula' + }, + shortcut: { + shortcuts: 'Jalan pintas', + close: 'Tutup', + textFormatting: 'Format teks', + action: 'Aksi', + paragraphFormatting: 'Format paragraf', + documentStyle: 'Gaya dokumen', + extraKeys: 'Shortcut tambahan' + }, + help: { + 'insertParagraph': 'Tambahkan paragraf', + 'undo': 'Urungkan perintah terakhir', + 'redo': 'Kembalikan perintah terakhir', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Mengaktifkan gaya tebal', + 'italic': 'Mengaktifkan gaya italic', + 'underline': 'Mengaktifkan gaya underline', + 'strikethrough': 'Mengaktifkan gaya strikethrough', + 'removeFormat': 'Hapus semua gaya', + 'justifyLeft': 'Atur rata kiri', + 'justifyCenter': 'Atur rata tengah', + 'justifyRight': 'Atur rata kanan', + 'justifyFull': 'Atur rata kiri-kanan', + 'insertUnorderedList': 'Nyalakan urutan tanpa nomor', + 'insertOrderedList': 'Nyalakan urutan bernomor', + 'outdent': 'Outdent di paragraf terpilih', + 'indent': 'Indent di paragraf terpilih', + 'formatPara': 'Ubah format gaya tulisan terpilih menjadi paragraf', + 'formatH1': 'Ubah format gaya tulisan terpilih menjadi Heading 1', + 'formatH2': 'Ubah format gaya tulisan terpilih menjadi Heading 2', + 'formatH3': 'Ubah format gaya tulisan terpilih menjadi Heading 3', + 'formatH4': 'Ubah format gaya tulisan terpilih menjadi Heading 4', + 'formatH5': 'Ubah format gaya tulisan terpilih menjadi Heading 5', + 'formatH6': 'Ubah format gaya tulisan terpilih menjadi Heading 6', + 'insertHorizontalRule': 'Masukkan garis horizontal', + 'linkDialog.show': 'Tampilkan Link Dialog' + }, + history: { + undo: 'Kembali', + redo: 'Ulang' + }, + specialChar: { + specialChar: 'KARAKTER KHUSUS', + select: 'Pilih karakter khusus' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-id-ID.min.js b/common/lib/summernote/lang/summernote-id-ID.min.js new file mode 100644 index 0000000..7947ef9 --- /dev/null +++ b/common/lib/summernote/lang/summernote-id-ID.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-id-ID.min.js.LICENSE.txt */ +!function(a,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var r=e();for(var t in r)("object"==typeof exports?exports:a)[t]=r[t]}}(window,(function(){return function(a){var e={};function r(t){if(e[t])return e[t].exports;var n=e[t]={i:t,l:!1,exports:{}};return a[t].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=a,r.c=e,r.d=function(a,e,t){r.o(a,e)||Object.defineProperty(a,e,{enumerable:!0,get:t})},r.r=function(a){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},r.t=function(a,e){if(1&e&&(a=r(a)),8&e)return a;if(4&e&&"object"==typeof a&&a&&a.__esModule)return a;var t=Object.create(null);if(r.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:a}),2&e&&"string"!=typeof a)for(var n in a)r.d(t,n,function(e){return a[e]}.bind(null,n));return t},r.n=function(a){var e=a&&a.__esModule?function(){return a.default}:function(){return a};return r.d(e,"a",e),e},r.o=function(a,e){return Object.prototype.hasOwnProperty.call(a,e)},r.p="",r(r.s=24)}({24:function(a,e){var r;(r=jQuery).extend(r.summernote.lang,{"id-ID":{font:{bold:"Tebal",italic:"Miring",underline:"Garis bawah",clear:"Bersihkan gaya",height:"Jarak baris",name:"Jenis Tulisan",strikethrough:"Coret",subscript:"Subscript",superscript:"Superscript",size:"Ukuran font"},image:{image:"Gambar",insert:"Sisipkan gambar",resizeFull:"Ukuran penuh",resizeHalf:"Ukuran 50%",resizeQuarter:"Ukuran 25%",floatLeft:"Rata kiri",floatRight:"Rata kanan",floatNone:"Tanpa perataan",shapeRounded:"Bentuk: Membundar",shapeCircle:"Bentuk: Bundar",shapeThumbnail:"Bentuk: Thumbnail",shapeNone:"Bentuk: Tidak ada",dragImageHere:"Tarik gambar ke area ini",dropImage:"Letakkan gambar atau teks",selectFromFiles:"Pilih gambar dari berkas",maximumFileSize:"Ukuran maksimal berkas",maximumFileSizeError:"Ukuran maksimal berkas terlampaui.",url:"URL gambar",remove:"Hapus Gambar",original:"Original"},video:{video:"Video",videoLink:"Link video",insert:"Sisipkan video",url:"Tautan video",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion atau Youku)"},link:{link:"Tautan",insert:"Tambah tautan",unlink:"Hapus tautan",edit:"Edit",textToDisplay:"Tampilan teks",url:"Tautan tujuan",openInNewWindow:"Buka di jendela baru"},table:{table:"Tabel",addRowAbove:"Tambahkan baris ke atas",addRowBelow:"Tambahkan baris ke bawah",addColLeft:"Tambahkan kolom ke kiri",addColRight:"Tambahkan kolom ke kanan",delRow:"Hapus baris",delCol:"Hapus kolom",delTable:"Hapus tabel"},hr:{insert:"Masukkan garis horizontal"},style:{style:"Gaya",p:"p",blockquote:"Kutipan",pre:"Kode",h1:"Heading 1",h2:"Heading 2",h3:"Heading 3",h4:"Heading 4",h5:"Heading 5",h6:"Heading 6"},lists:{unordered:"Pencacahan",ordered:"Penomoran"},options:{help:"Bantuan",fullscreen:"Layar penuh",codeview:"Kode HTML"},paragraph:{paragraph:"Paragraf",outdent:"Outdent",indent:"Indent",left:"Rata kiri",center:"Rata tengah",right:"Rata kanan",justify:"Rata kanan kiri"},color:{recent:"Warna sekarang",more:"Selengkapnya",background:"Warna latar",foreground:"Warna font",transparent:"Transparan",setTransparent:"Atur transparansi",reset:"Atur ulang",resetToDefault:"Kembalikan kesemula"},shortcut:{shortcuts:"Jalan pintas",close:"Tutup",textFormatting:"Format teks",action:"Aksi",paragraphFormatting:"Format paragraf",documentStyle:"Gaya dokumen",extraKeys:"Shortcut tambahan"},help:{insertParagraph:"Tambahkan paragraf",undo:"Urungkan perintah terakhir",redo:"Kembalikan perintah terakhir",tab:"Tab",untab:"Untab",bold:"Mengaktifkan gaya tebal",italic:"Mengaktifkan gaya italic",underline:"Mengaktifkan gaya underline",strikethrough:"Mengaktifkan gaya strikethrough",removeFormat:"Hapus semua gaya",justifyLeft:"Atur rata kiri",justifyCenter:"Atur rata tengah",justifyRight:"Atur rata kanan",justifyFull:"Atur rata kiri-kanan",insertUnorderedList:"Nyalakan urutan tanpa nomor",insertOrderedList:"Nyalakan urutan bernomor",outdent:"Outdent di paragraf terpilih",indent:"Indent di paragraf terpilih",formatPara:"Ubah format gaya tulisan terpilih menjadi paragraf",formatH1:"Ubah format gaya tulisan terpilih menjadi Heading 1",formatH2:"Ubah format gaya tulisan terpilih menjadi Heading 2",formatH3:"Ubah format gaya tulisan terpilih menjadi Heading 3",formatH4:"Ubah format gaya tulisan terpilih menjadi Heading 4",formatH5:"Ubah format gaya tulisan terpilih menjadi Heading 5",formatH6:"Ubah format gaya tulisan terpilih menjadi Heading 6",insertHorizontalRule:"Masukkan garis horizontal","linkDialog.show":"Tampilkan Link Dialog"},history:{undo:"Kembali",redo:"Ulang"},specialChar:{specialChar:"KARAKTER KHUSUS",select:"Pilih karakter khusus"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-id-ID.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-id-ID.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-id-ID.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-it-IT.js b/common/lib/summernote/lang/summernote-it-IT.js new file mode 100644 index 0000000..adc2ccb --- /dev/null +++ b/common/lib/summernote/lang/summernote-it-IT.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 25); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 25: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'it-IT': { + font: { + bold: 'Testo in grassetto', + italic: 'Testo in corsivo', + underline: 'Testo sottolineato', + clear: 'Elimina la formattazione del testo', + height: 'Altezza della linea di testo', + name: 'Famiglia Font', + strikethrough: 'Testo barrato', + subscript: 'Subscript', + superscript: 'Superscript', + size: 'Dimensione del carattere' + }, + image: { + image: 'Immagine', + insert: 'Inserisci Immagine', + resizeFull: 'Dimensioni originali', + resizeHalf: 'Ridimensiona al 50%', + resizeQuarter: 'Ridimensiona al 25%', + floatLeft: 'Posiziona a sinistra', + floatRight: 'Posiziona a destra', + floatNone: 'Nessun posizionamento', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'Trascina qui un\'immagine', + dropImage: 'Drop image or Text', + selectFromFiles: 'Scegli dai Documenti', + maximumFileSize: 'Maximum file size', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'URL dell\'immagine', + remove: 'Rimuovi immagine', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Collegamento ad un Video', + insert: 'Inserisci Video', + url: 'URL del Video', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)' + }, + link: { + link: 'Collegamento', + insert: 'Inserisci Collegamento', + unlink: 'Elimina collegamento', + edit: 'Modifica collegamento', + textToDisplay: 'Testo del collegamento', + url: 'URL del collegamento', + openInNewWindow: 'Apri in una nuova finestra' + }, + table: { + table: 'Tabella', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Inserisce una linea di separazione' + }, + style: { + style: 'Stili', + p: 'pe', + blockquote: 'Citazione', + pre: 'Codice', + h1: 'Titolo 1', + h2: 'Titolo 2', + h3: 'Titolo 3', + h4: 'Titolo 4', + h5: 'Titolo 5', + h6: 'Titolo 6' + }, + lists: { + unordered: 'Elenco non ordinato', + ordered: 'Elenco ordinato' + }, + options: { + help: 'Aiuto', + fullscreen: 'Modalità a tutto schermo', + codeview: 'Visualizza codice' + }, + paragraph: { + paragraph: 'Paragrafo', + outdent: 'Diminuisce il livello di rientro', + indent: 'Aumenta il livello di rientro', + left: 'Allinea a sinistra', + center: 'Centra', + right: 'Allinea a destra', + justify: 'Giustifica (allinea a destra e sinistra)' + }, + color: { + recent: 'Ultimo colore utilizzato', + more: 'Altri colori', + background: 'Colore di sfondo', + foreground: 'Colore', + transparent: 'Trasparente', + setTransparent: 'Trasparente', + reset: 'Reimposta', + resetToDefault: 'Reimposta i colori' + }, + shortcut: { + shortcuts: 'Scorciatoie da tastiera', + close: 'Chiudi', + textFormatting: 'Formattazione testo', + action: 'Azioni', + paragraphFormatting: 'Formattazione paragrafo', + documentStyle: 'Stili', + extraKeys: 'Extra keys' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'Annulla', + redo: 'Ripristina' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-it-IT.min.js b/common/lib/summernote/lang/summernote-it-IT.min.js new file mode 100644 index 0000000..3d416dd --- /dev/null +++ b/common/lib/summernote/lang/summernote-it-IT.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-it-IT.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var i in o)("object"==typeof exports?exports:e)[i]=o[i]}}(window,(function(){return function(e){var t={};function o(i){if(t[i])return t[i].exports;var r=t[i]={i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=e,o.c=t,o.d=function(e,t,i){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(o.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(i,r,function(t){return e[t]}.bind(null,r));return i},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=25)}({25:function(e,t){var o;(o=jQuery).extend(o.summernote.lang,{"it-IT":{font:{bold:"Testo in grassetto",italic:"Testo in corsivo",underline:"Testo sottolineato",clear:"Elimina la formattazione del testo",height:"Altezza della linea di testo",name:"Famiglia Font",strikethrough:"Testo barrato",subscript:"Subscript",superscript:"Superscript",size:"Dimensione del carattere"},image:{image:"Immagine",insert:"Inserisci Immagine",resizeFull:"Dimensioni originali",resizeHalf:"Ridimensiona al 50%",resizeQuarter:"Ridimensiona al 25%",floatLeft:"Posiziona a sinistra",floatRight:"Posiziona a destra",floatNone:"Nessun posizionamento",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Trascina qui un'immagine",dropImage:"Drop image or Text",selectFromFiles:"Scegli dai Documenti",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URL dell'immagine",remove:"Rimuovi immagine",original:"Original"},video:{video:"Video",videoLink:"Collegamento ad un Video",insert:"Inserisci Video",url:"URL del Video",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)"},link:{link:"Collegamento",insert:"Inserisci Collegamento",unlink:"Elimina collegamento",edit:"Modifica collegamento",textToDisplay:"Testo del collegamento",url:"URL del collegamento",openInNewWindow:"Apri in una nuova finestra"},table:{table:"Tabella",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Inserisce una linea di separazione"},style:{style:"Stili",p:"pe",blockquote:"Citazione",pre:"Codice",h1:"Titolo 1",h2:"Titolo 2",h3:"Titolo 3",h4:"Titolo 4",h5:"Titolo 5",h6:"Titolo 6"},lists:{unordered:"Elenco non ordinato",ordered:"Elenco ordinato"},options:{help:"Aiuto",fullscreen:"Modalità a tutto schermo",codeview:"Visualizza codice"},paragraph:{paragraph:"Paragrafo",outdent:"Diminuisce il livello di rientro",indent:"Aumenta il livello di rientro",left:"Allinea a sinistra",center:"Centra",right:"Allinea a destra",justify:"Giustifica (allinea a destra e sinistra)"},color:{recent:"Ultimo colore utilizzato",more:"Altri colori",background:"Colore di sfondo",foreground:"Colore",transparent:"Trasparente",setTransparent:"Trasparente",reset:"Reimposta",resetToDefault:"Reimposta i colori"},shortcut:{shortcuts:"Scorciatoie da tastiera",close:"Chiudi",textFormatting:"Formattazione testo",action:"Azioni",paragraphFormatting:"Formattazione paragrafo",documentStyle:"Stili",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Annulla",redo:"Ripristina"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-it-IT.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-it-IT.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-it-IT.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-ja-JP.js b/common/lib/summernote/lang/summernote-ja-JP.js new file mode 100644 index 0000000..e199954 --- /dev/null +++ b/common/lib/summernote/lang/summernote-ja-JP.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 26); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 26: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'ja-JP': { + font: { + bold: '太字', + italic: '斜体', + underline: '下線', + clear: 'クリア', + height: '文字高', + name: 'フォント', + strikethrough: '取り消し線', + subscript: 'Subscript', + superscript: 'Superscript', + size: '大きさ' + }, + image: { + image: '画像', + insert: '画像挿入', + resizeFull: '最大化', + resizeHalf: '1/2', + resizeQuarter: '1/4', + floatLeft: '左寄せ', + floatRight: '右寄せ', + floatNone: '寄せ解除', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'ここに画像をドラッグしてください', + dropImage: 'Drop image or Text', + selectFromFiles: '画像ファイルを選ぶ', + maximumFileSize: 'Maximum file size', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'URLから画像を挿入する', + remove: '画像を削除する', + original: 'Original' + }, + video: { + video: '動画', + videoLink: '動画リンク', + insert: '動画挿入', + url: '動画のURL', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, Youku)' + }, + link: { + link: 'リンク', + insert: 'リンク挿入', + unlink: 'リンク解除', + edit: '編集', + textToDisplay: 'リンク文字列', + url: 'URLを入力してください', + openInNewWindow: '新しいウィンドウで開く' + }, + table: { + table: 'テーブル', + addRowAbove: '行を上に追加', + addRowBelow: '行を下に追加', + addColLeft: '列を左に追加', + addColRight: '列を右に追加', + delRow: '行を削除', + delCol: '列を削除', + delTable: 'テーブルを削除' + }, + hr: { + insert: '水平線の挿入' + }, + style: { + style: 'スタイル', + p: '標準', + blockquote: '引用', + pre: 'コード', + h1: '見出し1', + h2: '見出し2', + h3: '見出し3', + h4: '見出し4', + h5: '見出し5', + h6: '見出し6' + }, + lists: { + unordered: '通常リスト', + ordered: '番号リスト' + }, + options: { + help: 'ヘルプ', + fullscreen: 'フルスクリーン', + codeview: 'コード表示' + }, + paragraph: { + paragraph: '文章', + outdent: '字上げ', + indent: '字下げ', + left: '左寄せ', + center: '中央寄せ', + right: '右寄せ', + justify: '均等割付' + }, + color: { + recent: '現在の色', + more: 'もっと見る', + background: '背景色', + foreground: '文字色', + transparent: '透明', + setTransparent: '透明にする', + reset: '標準', + resetToDefault: '標準に戻す' + }, + shortcut: { + shortcuts: 'ショートカット', + close: '閉じる', + textFormatting: '文字フォーマット', + action: 'アクション', + paragraphFormatting: '文章フォーマット', + documentStyle: 'ドキュメント形式', + extraKeys: 'Extra keys' + }, + help: { + 'insertParagraph': '改行挿入', + 'undo': '一旦、行った操作を戻す', + 'redo': '最後のコマンドをやり直す', + 'tab': 'Tab', + 'untab': 'タブ戻し', + 'bold': '太文字', + 'italic': '斜体', + 'underline': '下線', + 'strikethrough': '取り消し線', + 'removeFormat': '装飾を戻す', + 'justifyLeft': '左寄せ', + 'justifyCenter': '真ん中寄せ', + 'justifyRight': '右寄せ', + 'justifyFull': 'すべてを整列', + 'insertUnorderedList': '行頭に●を挿入', + 'insertOrderedList': '行頭に番号を挿入', + 'outdent': '字下げを戻す(アウトデント)', + 'indent': '字下げする(インデント)', + 'formatPara': '段落(P tag)指定', + 'formatH1': 'H1指定', + 'formatH2': 'H2指定', + 'formatH3': 'H3指定', + 'formatH4': 'H4指定', + 'formatH5': 'H5指定', + 'formatH6': 'H6指定', + 'insertHorizontalRule': '<hr />を挿入', + 'linkDialog.show': 'リンク挿入' + }, + history: { + undo: '元に戻す', + redo: 'やり直す' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-ja-JP.min.js b/common/lib/summernote/lang/summernote-ja-JP.min.js new file mode 100644 index 0000000..9eee370 --- /dev/null +++ b/common/lib/summernote/lang/summernote-ja-JP.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-ja-JP.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=26)}({26:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"ja-JP":{font:{bold:"太字",italic:"斜体",underline:"下線",clear:"クリア",height:"文字高",name:"フォント",strikethrough:"取り消し線",subscript:"Subscript",superscript:"Superscript",size:"大きさ"},image:{image:"画像",insert:"画像挿入",resizeFull:"最大化",resizeHalf:"1/2",resizeQuarter:"1/4",floatLeft:"左寄せ",floatRight:"右寄せ",floatNone:"寄せ解除",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"ここに画像をドラッグしてください",dropImage:"Drop image or Text",selectFromFiles:"画像ファイルを選ぶ",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URLから画像を挿入する",remove:"画像を削除する",original:"Original"},video:{video:"動画",videoLink:"動画リンク",insert:"動画挿入",url:"動画のURL",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion, Youku)"},link:{link:"リンク",insert:"リンク挿入",unlink:"リンク解除",edit:"編集",textToDisplay:"リンク文字列",url:"URLを入力してください",openInNewWindow:"新しいウィンドウで開く"},table:{table:"テーブル",addRowAbove:"行を上に追加",addRowBelow:"行を下に追加",addColLeft:"列を左に追加",addColRight:"列を右に追加",delRow:"行を削除",delCol:"列を削除",delTable:"テーブルを削除"},hr:{insert:"水平線の挿入"},style:{style:"スタイル",p:"標準",blockquote:"引用",pre:"コード",h1:"見出し1",h2:"見出し2",h3:"見出し3",h4:"見出し4",h5:"見出し5",h6:"見出し6"},lists:{unordered:"通常リスト",ordered:"番号リスト"},options:{help:"ヘルプ",fullscreen:"フルスクリーン",codeview:"コード表示"},paragraph:{paragraph:"文章",outdent:"字上げ",indent:"字下げ",left:"左寄せ",center:"中央寄せ",right:"右寄せ",justify:"均等割付"},color:{recent:"現在の色",more:"もっと見る",background:"背景色",foreground:"文字色",transparent:"透明",setTransparent:"透明にする",reset:"標準",resetToDefault:"標準に戻す"},shortcut:{shortcuts:"ショートカット",close:"閉じる",textFormatting:"文字フォーマット",action:"アクション",paragraphFormatting:"文章フォーマット",documentStyle:"ドキュメント形式",extraKeys:"Extra keys"},help:{insertParagraph:"改行挿入",undo:"一旦、行った操作を戻す",redo:"最後のコマンドをやり直す",tab:"Tab",untab:"タブ戻し",bold:"太文字",italic:"斜体",underline:"下線",strikethrough:"取り消し線",removeFormat:"装飾を戻す",justifyLeft:"左寄せ",justifyCenter:"真ん中寄せ",justifyRight:"右寄せ",justifyFull:"すべてを整列",insertUnorderedList:"行頭に●を挿入",insertOrderedList:"行頭に番号を挿入",outdent:"字下げを戻す(アウトデント)",indent:"字下げする(インデント)",formatPara:"段落(P tag)指定",formatH1:"H1指定",formatH2:"H2指定",formatH3:"H3指定",formatH4:"H4指定",formatH5:"H5指定",formatH6:"H6指定",insertHorizontalRule:"<hr />を挿入","linkDialog.show":"リンク挿入"},history:{undo:"元に戻す",redo:"やり直す"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-ja-JP.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-ja-JP.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-ja-JP.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-ko-KR.js b/common/lib/summernote/lang/summernote-ko-KR.js new file mode 100644 index 0000000..b4b95eb --- /dev/null +++ b/common/lib/summernote/lang/summernote-ko-KR.js @@ -0,0 +1,275 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 27); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 27: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'ko-KR': { + font: { + bold: '굵게', + italic: '기울임꼴', + underline: '밑줄', + clear: '서식 지우기', + height: '줄 간격', + name: '글꼴', + superscript: '위 첨자', + subscript: '아래 첨자', + strikethrough: '취소선', + size: '글자 크기' + }, + image: { + image: '그림', + insert: '그림 삽입', + resizeFull: '100% 크기로 변경', + resizeHalf: '50% 크기로 변경', + resizeQuarter: '25% 크기로 변경', + resizeNone: '원본 크기', + floatLeft: '왼쪽 정렬', + floatRight: '오른쪽 정렬', + floatNone: '정렬하지 않음', + shapeRounded: '스타일: 둥근 모서리', + shapeCircle: '스타일: 원형', + shapeThumbnail: '스타일: 액자', + shapeNone: '스타일: 없음', + dragImageHere: '텍스트 혹은 사진을 이곳으로 끌어오세요', + dropImage: '텍스트 혹은 사진을 내려놓으세요', + selectFromFiles: '파일 선택', + maximumFileSize: '최대 파일 크기', + maximumFileSizeError: '최대 파일 크기를 초과했습니다.', + url: '사진 URL', + remove: '사진 삭제', + original: '원본' + }, + video: { + video: '동영상', + videoLink: '동영상 링크', + insert: '동영상 삽입', + url: '동영상 URL', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, Youku 사용 가능)' + }, + link: { + link: '링크', + insert: '링크 삽입', + unlink: '링크 삭제', + edit: '수정', + textToDisplay: '링크에 표시할 내용', + url: '이동할 URL', + openInNewWindow: '새창으로 열기' + }, + table: { + table: '표', + addRowAbove: '위에 행 삽입', + addRowBelow: '아래에 행 삽입', + addColLeft: '왼쪽에 열 삽입', + addColRight: '오른쪽에 열 삽입', + delRow: '행 지우기', + delCol: '열 지우기', + delTable: '표 삭제' + }, + hr: { + insert: '구분선 삽입' + }, + style: { + style: '스타일', + p: '본문', + blockquote: '인용구', + pre: '코드', + h1: '제목 1', + h2: '제목 2', + h3: '제목 3', + h4: '제목 4', + h5: '제목 5', + h6: '제목 6' + }, + lists: { + unordered: '글머리 기호', + ordered: '번호 매기기' + }, + options: { + help: '도움말', + fullscreen: '전체 화면', + codeview: '코드 보기' + }, + paragraph: { + paragraph: '문단 정렬', + outdent: '내어쓰기', + indent: '들여쓰기', + left: '왼쪽 정렬', + center: '가운데 정렬', + right: '오른쪽 정렬', + justify: '양쪽 정렬' + }, + color: { + recent: '마지막으로 사용한 색', + more: '다른 색 선택', + background: '배경색', + foreground: '글자색', + transparent: '투명', + setTransparent: '투명으로 설정', + reset: '취소', + resetToDefault: '기본값으로 설정', + cpSelect: '고르다' + }, + shortcut: { + shortcuts: '키보드 단축키', + close: '닫기', + textFormatting: '글자 스타일 적용', + action: '기능', + paragraphFormatting: '문단 스타일 적용', + documentStyle: '문서 스타일 적용', + extraKeys: '추가 키' + }, + help: { + 'insertParagraph': '문단 삽입', + 'undo': '마지막 명령 취소', + 'redo': '마지막 명령 재실행', + 'tab': '탭', + 'untab': '탭 제거', + 'bold': '굵은 글자로 설정', + 'italic': '기울임꼴 글자로 설정', + 'underline': '밑줄 글자로 설정', + 'strikethrough': '취소선 글자로 설정', + 'removeFormat': '서식 삭제', + 'justifyLeft': '왼쪽 정렬하기', + 'justifyCenter': '가운데 정렬하기', + 'justifyRight': '오른쪽 정렬하기', + 'justifyFull': '좌우채움 정렬하기', + 'insertUnorderedList': '글머리 기호 켜고 끄기', + 'insertOrderedList': '번호 매기기 켜고 끄기', + 'outdent': '현재 문단 내어쓰기', + 'indent': '현재 문단 들여쓰기', + 'formatPara': '현재 블록의 포맷을 문단(P)으로 변경', + 'formatH1': '현재 블록의 포맷을 제목1(H1)로 변경', + 'formatH2': '현재 블록의 포맷을 제목2(H2)로 변경', + 'formatH3': '현재 블록의 포맷을 제목3(H3)로 변경', + 'formatH4': '현재 블록의 포맷을 제목4(H4)로 변경', + 'formatH5': '현재 블록의 포맷을 제목5(H5)로 변경', + 'formatH6': '현재 블록의 포맷을 제목6(H6)로 변경', + 'insertHorizontalRule': '구분선 삽입', + 'linkDialog.show': '링크 대화상자 열기' + }, + history: { + undo: '실행 취소', + redo: '재실행' + }, + specialChar: { + specialChar: '특수문자', + select: '특수문자를 선택하세요' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-ko-KR.min.js b/common/lib/summernote/lang/summernote-ko-KR.min.js new file mode 100644 index 0000000..69ac71f --- /dev/null +++ b/common/lib/summernote/lang/summernote-ko-KR.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-ko-KR.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=27)}({27:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"ko-KR":{font:{bold:"굵게",italic:"기울임꼴",underline:"밑줄",clear:"서식 지우기",height:"줄 간격",name:"글꼴",superscript:"위 첨자",subscript:"아래 첨자",strikethrough:"취소선",size:"글자 크기"},image:{image:"그림",insert:"그림 삽입",resizeFull:"100% 크기로 변경",resizeHalf:"50% 크기로 변경",resizeQuarter:"25% 크기로 변경",resizeNone:"원본 크기",floatLeft:"왼쪽 정렬",floatRight:"오른쪽 정렬",floatNone:"정렬하지 않음",shapeRounded:"스타일: 둥근 모서리",shapeCircle:"스타일: 원형",shapeThumbnail:"스타일: 액자",shapeNone:"스타일: 없음",dragImageHere:"텍스트 혹은 사진을 이곳으로 끌어오세요",dropImage:"텍스트 혹은 사진을 내려놓으세요",selectFromFiles:"파일 선택",maximumFileSize:"최대 파일 크기",maximumFileSizeError:"최대 파일 크기를 초과했습니다.",url:"사진 URL",remove:"사진 삭제",original:"원본"},video:{video:"동영상",videoLink:"동영상 링크",insert:"동영상 삽입",url:"동영상 URL",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion, Youku 사용 가능)"},link:{link:"링크",insert:"링크 삽입",unlink:"링크 삭제",edit:"수정",textToDisplay:"링크에 표시할 내용",url:"이동할 URL",openInNewWindow:"새창으로 열기"},table:{table:"표",addRowAbove:"위에 행 삽입",addRowBelow:"아래에 행 삽입",addColLeft:"왼쪽에 열 삽입",addColRight:"오른쪽에 열 삽입",delRow:"행 지우기",delCol:"열 지우기",delTable:"표 삭제"},hr:{insert:"구분선 삽입"},style:{style:"스타일",p:"본문",blockquote:"인용구",pre:"코드",h1:"제목 1",h2:"제목 2",h3:"제목 3",h4:"제목 4",h5:"제목 5",h6:"제목 6"},lists:{unordered:"글머리 기호",ordered:"번호 매기기"},options:{help:"도움말",fullscreen:"전체 화면",codeview:"코드 보기"},paragraph:{paragraph:"문단 정렬",outdent:"내어쓰기",indent:"들여쓰기",left:"왼쪽 정렬",center:"가운데 정렬",right:"오른쪽 정렬",justify:"양쪽 정렬"},color:{recent:"마지막으로 사용한 색",more:"다른 색 선택",background:"배경색",foreground:"글자색",transparent:"투명",setTransparent:"투명으로 설정",reset:"취소",resetToDefault:"기본값으로 설정",cpSelect:"고르다"},shortcut:{shortcuts:"키보드 단축키",close:"닫기",textFormatting:"글자 스타일 적용",action:"기능",paragraphFormatting:"문단 스타일 적용",documentStyle:"문서 스타일 적용",extraKeys:"추가 키"},help:{insertParagraph:"문단 삽입",undo:"마지막 명령 취소",redo:"마지막 명령 재실행",tab:"탭",untab:"탭 제거",bold:"굵은 글자로 설정",italic:"기울임꼴 글자로 설정",underline:"밑줄 글자로 설정",strikethrough:"취소선 글자로 설정",removeFormat:"서식 삭제",justifyLeft:"왼쪽 정렬하기",justifyCenter:"가운데 정렬하기",justifyRight:"오른쪽 정렬하기",justifyFull:"좌우채움 정렬하기",insertUnorderedList:"글머리 기호 켜고 끄기",insertOrderedList:"번호 매기기 켜고 끄기",outdent:"현재 문단 내어쓰기",indent:"현재 문단 들여쓰기",formatPara:"현재 블록의 포맷을 문단(P)으로 변경",formatH1:"현재 블록의 포맷을 제목1(H1)로 변경",formatH2:"현재 블록의 포맷을 제목2(H2)로 변경",formatH3:"현재 블록의 포맷을 제목3(H3)로 변경",formatH4:"현재 블록의 포맷을 제목4(H4)로 변경",formatH5:"현재 블록의 포맷을 제목5(H5)로 변경",formatH6:"현재 블록의 포맷을 제목6(H6)로 변경",insertHorizontalRule:"구분선 삽입","linkDialog.show":"링크 대화상자 열기"},history:{undo:"실행 취소",redo:"재실행"},specialChar:{specialChar:"특수문자",select:"특수문자를 선택하세요"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-ko-KR.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-ko-KR.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-ko-KR.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-lt-LT.js b/common/lib/summernote/lang/summernote-lt-LT.js new file mode 100644 index 0000000..f882bc1 --- /dev/null +++ b/common/lib/summernote/lang/summernote-lt-LT.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 28); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 28: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'lt-LT': { + font: { + bold: 'Paryškintas', + italic: 'Kursyvas', + underline: 'Pabrėžtas', + clear: 'Be formatavimo', + height: 'Eilutės aukštis', + name: 'Šrifto pavadinimas', + strikethrough: 'Perbrauktas', + superscript: 'Viršutinis', + subscript: 'Indeksas', + size: 'Šrifto dydis' + }, + image: { + image: 'Paveikslėlis', + insert: 'Įterpti paveikslėlį', + resizeFull: 'Pilnas dydis', + resizeHalf: 'Sumažinti dydį 50%', + resizeQuarter: 'Sumažinti dydį 25%', + floatLeft: 'Kairinis lygiavimas', + floatRight: 'Dešininis lygiavimas', + floatNone: 'Jokio lygiavimo', + shapeRounded: 'Forma: apvalūs kraštai', + shapeCircle: 'Forma: apskritimas', + shapeThumbnail: 'Forma: miniatiūra', + shapeNone: 'Forma: jokia', + dragImageHere: 'Vilkite paveikslėlį čia', + dropImage: 'Drop image or Text', + selectFromFiles: 'Pasirinkite failą', + maximumFileSize: 'Maskimalus failo dydis', + maximumFileSizeError: 'Maskimalus failo dydis viršytas!', + url: 'Paveikslėlio URL adresas', + remove: 'Ištrinti paveikslėlį', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Video Link', + insert: 'Insert Video', + url: 'Video URL?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)' + }, + link: { + link: 'Nuoroda', + insert: 'Įterpti nuorodą', + unlink: 'Pašalinti nuorodą', + edit: 'Redaguoti', + textToDisplay: 'Rodomas tekstas', + url: 'Koks URL adresas yra susietas?', + openInNewWindow: 'Atidaryti naujame lange' + }, + table: { + table: 'Lentelė', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Įterpti horizontalią liniją' + }, + style: { + style: 'Stilius', + p: 'pus', + blockquote: 'Citata', + pre: 'Kodas', + h1: 'Antraštė 1', + h2: 'Antraštė 2', + h3: 'Antraštė 3', + h4: 'Antraštė 4', + h5: 'Antraštė 5', + h6: 'Antraštė 6' + }, + lists: { + unordered: 'Suženklintasis sąrašas', + ordered: 'Sunumeruotas sąrašas' + }, + options: { + help: 'Pagalba', + fullscreen: 'Viso ekrano režimas', + codeview: 'HTML kodo peržiūra' + }, + paragraph: { + paragraph: 'Pastraipa', + outdent: 'Sumažinti įtrauką', + indent: 'Padidinti įtrauką', + left: 'Kairinė lygiuotė', + center: 'Centrinė lygiuotė', + right: 'Dešininė lygiuotė', + justify: 'Abipusis išlyginimas' + }, + color: { + recent: 'Paskutinė naudota spalva', + more: 'Daugiau spalvų', + background: 'Fono spalva', + foreground: 'Šrifto spalva', + transparent: 'Permatoma', + setTransparent: 'Nustatyti skaidrumo intensyvumą', + reset: 'Atkurti', + resetToDefault: 'Atstatyti numatytąją spalvą' + }, + shortcut: { + shortcuts: 'Spartieji klavišai', + close: 'Uždaryti', + textFormatting: 'Teksto formatavimas', + action: 'Veiksmas', + paragraphFormatting: 'Pastraipos formatavimas', + documentStyle: 'Dokumento stilius', + extraKeys: 'Papildomi klavišų deriniai' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'Anuliuoti veiksmą', + redo: 'Perdaryti veiksmą' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-lt-LT.min.js b/common/lib/summernote/lang/summernote-lt-LT.min.js new file mode 100644 index 0000000..561deb0 --- /dev/null +++ b/common/lib/summernote/lang/summernote-lt-LT.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-lt-LT.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var a=t();for(var r in a)("object"==typeof exports?exports:e)[r]=a[r]}}(window,(function(){return function(e){var t={};function a(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,a),i.l=!0,i.exports}return a.m=e,a.c=t,a.d=function(e,t,r){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(a.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)a.d(r,i,function(t){return e[t]}.bind(null,i));return r},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=28)}({28:function(e,t){var a;(a=jQuery).extend(a.summernote.lang,{"lt-LT":{font:{bold:"Paryškintas",italic:"Kursyvas",underline:"Pabrėžtas",clear:"Be formatavimo",height:"Eilutės aukštis",name:"Šrifto pavadinimas",strikethrough:"Perbrauktas",superscript:"Viršutinis",subscript:"Indeksas",size:"Šrifto dydis"},image:{image:"Paveikslėlis",insert:"Įterpti paveikslėlį",resizeFull:"Pilnas dydis",resizeHalf:"Sumažinti dydį 50%",resizeQuarter:"Sumažinti dydį 25%",floatLeft:"Kairinis lygiavimas",floatRight:"Dešininis lygiavimas",floatNone:"Jokio lygiavimo",shapeRounded:"Forma: apvalūs kraštai",shapeCircle:"Forma: apskritimas",shapeThumbnail:"Forma: miniatiūra",shapeNone:"Forma: jokia",dragImageHere:"Vilkite paveikslėlį čia",dropImage:"Drop image or Text",selectFromFiles:"Pasirinkite failą",maximumFileSize:"Maskimalus failo dydis",maximumFileSizeError:"Maskimalus failo dydis viršytas!",url:"Paveikslėlio URL adresas",remove:"Ištrinti paveikslėlį",original:"Original"},video:{video:"Video",videoLink:"Video Link",insert:"Insert Video",url:"Video URL?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)"},link:{link:"Nuoroda",insert:"Įterpti nuorodą",unlink:"Pašalinti nuorodą",edit:"Redaguoti",textToDisplay:"Rodomas tekstas",url:"Koks URL adresas yra susietas?",openInNewWindow:"Atidaryti naujame lange"},table:{table:"Lentelė",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Įterpti horizontalią liniją"},style:{style:"Stilius",p:"pus",blockquote:"Citata",pre:"Kodas",h1:"Antraštė 1",h2:"Antraštė 2",h3:"Antraštė 3",h4:"Antraštė 4",h5:"Antraštė 5",h6:"Antraštė 6"},lists:{unordered:"Suženklintasis sąrašas",ordered:"Sunumeruotas sąrašas"},options:{help:"Pagalba",fullscreen:"Viso ekrano režimas",codeview:"HTML kodo peržiūra"},paragraph:{paragraph:"Pastraipa",outdent:"Sumažinti įtrauką",indent:"Padidinti įtrauką",left:"Kairinė lygiuotė",center:"Centrinė lygiuotė",right:"Dešininė lygiuotė",justify:"Abipusis išlyginimas"},color:{recent:"Paskutinė naudota spalva",more:"Daugiau spalvų",background:"Fono spalva",foreground:"Šrifto spalva",transparent:"Permatoma",setTransparent:"Nustatyti skaidrumo intensyvumą",reset:"Atkurti",resetToDefault:"Atstatyti numatytąją spalvą"},shortcut:{shortcuts:"Spartieji klavišai",close:"Uždaryti",textFormatting:"Teksto formatavimas",action:"Veiksmas",paragraphFormatting:"Pastraipos formatavimas",documentStyle:"Dokumento stilius",extraKeys:"Papildomi klavišų deriniai"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Anuliuoti veiksmą",redo:"Perdaryti veiksmą"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-lt-LT.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-lt-LT.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-lt-LT.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-lt-LV.js b/common/lib/summernote/lang/summernote-lt-LV.js new file mode 100644 index 0000000..dea26a6 --- /dev/null +++ b/common/lib/summernote/lang/summernote-lt-LV.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 29); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 29: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'lv-LV': { + font: { + bold: 'Treknraksts', + italic: 'Kursīvs', + underline: 'Pasvītrots', + clear: 'Noņemt formatējumu', + height: 'Līnijas augstums', + name: 'Fonts', + strikethrough: 'Nosvītrots', + superscript: 'Augšraksts', + subscript: 'Apakšraksts', + size: 'Fonta lielums' + }, + image: { + image: 'Attēls', + insert: 'Ievietot attēlu', + resizeFull: 'Pilns izmērts', + resizeHalf: 'Samazināt 50%', + resizeQuarter: 'Samazināt 25%', + floatLeft: 'Līdzināt pa kreisi', + floatRight: 'Līdzināt pa labi', + floatNone: 'Nelīdzināt', + shapeRounded: 'Forma: apaļām malām', + shapeCircle: 'Forma: aplis', + shapeThumbnail: 'Forma: rāmītis', + shapeNone: 'Forma: orģināla', + dragImageHere: 'Ievēlciet attēlu šeit', + dropImage: 'Drop image or Text', + selectFromFiles: 'Izvēlēties failu', + maximumFileSize: 'Maksimālais faila izmērs', + maximumFileSizeError: 'Faila izmērs pārāk liels!', + url: 'Attēla URL', + remove: 'Dzēst attēlu', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Video Link', + insert: 'Insert Video', + url: 'Video URL?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)' + }, + link: { + link: 'Saite', + insert: 'Ievietot saiti', + unlink: 'Noņemt saiti', + edit: 'Rediģēt', + textToDisplay: 'Saites saturs', + url: 'Koks URL adresas yra susietas?', + openInNewWindow: 'Atvērt jaunā logā' + }, + table: { + table: 'Tabula', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Ievietot līniju' + }, + style: { + style: 'Stils', + p: 'Parasts', + blockquote: 'Citāts', + pre: 'Kods', + h1: 'Virsraksts h1', + h2: 'Virsraksts h2', + h3: 'Virsraksts h3', + h4: 'Virsraksts h4', + h5: 'Virsraksts h5', + h6: 'Virsraksts h6' + }, + lists: { + unordered: 'Nenumurēts saraksts', + ordered: 'Numurēts saraksts' + }, + options: { + help: 'Palīdzība', + fullscreen: 'Pa visu ekrānu', + codeview: 'HTML kods' + }, + paragraph: { + paragraph: 'Paragrāfs', + outdent: 'Samazināt atkāpi', + indent: 'Palielināt atkāpi', + left: 'Līdzināt pa kreisi', + center: 'Centrēt', + right: 'Līdzināt pa labi', + justify: 'Līdzināt gar abām malām' + }, + color: { + recent: 'Nesen izmantotās', + more: 'Citas krāsas', + background: 'Fona krāsa', + foreground: 'Fonta krāsa', + transparent: 'Caurspīdīgs', + setTransparent: 'Iestatīt caurspīdīgumu', + reset: 'Atjaunot', + resetToDefault: 'Atjaunot noklusējumu' + }, + shortcut: { + shortcuts: 'Saīsnes', + close: 'Aizvērt', + textFormatting: 'Teksta formatēšana', + action: 'Darbība', + paragraphFormatting: 'Paragrāfa formatēšana', + documentStyle: 'Dokumenta stils', + extraKeys: 'Citas taustiņu kombinācijas' + }, + help: { + insertParagraph: 'Ievietot Paragrāfu', + undo: 'Atcelt iepriekšējo darbību', + redo: 'Atkārtot atcelto darbību', + tab: 'Atkāpe', + untab: 'Samazināt atkāpi', + bold: 'Pārvērst tekstu treknrakstā', + italic: 'Pārvērst tekstu slīprakstā (kursīvā)', + underline: 'Pasvītrot tekstu', + strikethrough: 'Nosvītrot tekstu', + removeFormat: 'Notīrīt stilu no teksta', + justifyLeft: 'Līdzīnāt saturu pa kreisi', + justifyCenter: 'Centrēt saturu', + justifyRight: 'Līdzīnāt saturu pa labi', + justifyFull: 'Izlīdzināt saturu gar abām malām', + insertUnorderedList: 'Ievietot nenumurētu sarakstu', + insertOrderedList: 'Ievietot numurētu sarakstu', + outdent: 'Samazināt/noņemt atkāpi paragrāfam', + indent: 'Uzlikt atkāpi paragrāfam', + formatPara: 'Mainīt bloka tipu uz (p) Paragrāfu', + formatH1: 'Mainīt bloka tipu uz virsrakstu H1', + formatH2: 'Mainīt bloka tipu uz virsrakstu H2', + formatH3: 'Mainīt bloka tipu uz virsrakstu H3', + formatH4: 'Mainīt bloka tipu uz virsrakstu H4', + formatH5: 'Mainīt bloka tipu uz virsrakstu H5', + formatH6: 'Mainīt bloka tipu uz virsrakstu H6', + insertHorizontalRule: 'Ievietot horizontālu līniju', + 'linkDialog.show': 'Parādīt saites logu' + }, + history: { + undo: 'Atsauks (undo)', + redo: 'Atkārtot (redo)' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-lt-LV.min.js b/common/lib/summernote/lang/summernote-lt-LV.min.js new file mode 100644 index 0000000..ea333a5 --- /dev/null +++ b/common/lib/summernote/lang/summernote-lt-LV.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-lt-LV.min.js.LICENSE.txt */ +!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var r=e();for(var a in r)("object"==typeof exports?exports:t)[a]=r[a]}}(window,(function(){return function(t){var e={};function r(a){if(e[a])return e[a].exports;var i=e[a]={i:a,l:!1,exports:{}};return t[a].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,a){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:a})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var a=Object.create(null);if(r.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(a,i,function(e){return t[e]}.bind(null,i));return a},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=29)}({29:function(t,e){var r;(r=jQuery).extend(r.summernote.lang,{"lv-LV":{font:{bold:"Treknraksts",italic:"Kursīvs",underline:"Pasvītrots",clear:"Noņemt formatējumu",height:"Līnijas augstums",name:"Fonts",strikethrough:"Nosvītrots",superscript:"Augšraksts",subscript:"Apakšraksts",size:"Fonta lielums"},image:{image:"Attēls",insert:"Ievietot attēlu",resizeFull:"Pilns izmērts",resizeHalf:"Samazināt 50%",resizeQuarter:"Samazināt 25%",floatLeft:"Līdzināt pa kreisi",floatRight:"Līdzināt pa labi",floatNone:"Nelīdzināt",shapeRounded:"Forma: apaļām malām",shapeCircle:"Forma: aplis",shapeThumbnail:"Forma: rāmītis",shapeNone:"Forma: orģināla",dragImageHere:"Ievēlciet attēlu šeit",dropImage:"Drop image or Text",selectFromFiles:"Izvēlēties failu",maximumFileSize:"Maksimālais faila izmērs",maximumFileSizeError:"Faila izmērs pārāk liels!",url:"Attēla URL",remove:"Dzēst attēlu",original:"Original"},video:{video:"Video",videoLink:"Video Link",insert:"Insert Video",url:"Video URL?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)"},link:{link:"Saite",insert:"Ievietot saiti",unlink:"Noņemt saiti",edit:"Rediģēt",textToDisplay:"Saites saturs",url:"Koks URL adresas yra susietas?",openInNewWindow:"Atvērt jaunā logā"},table:{table:"Tabula",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Ievietot līniju"},style:{style:"Stils",p:"Parasts",blockquote:"Citāts",pre:"Kods",h1:"Virsraksts h1",h2:"Virsraksts h2",h3:"Virsraksts h3",h4:"Virsraksts h4",h5:"Virsraksts h5",h6:"Virsraksts h6"},lists:{unordered:"Nenumurēts saraksts",ordered:"Numurēts saraksts"},options:{help:"Palīdzība",fullscreen:"Pa visu ekrānu",codeview:"HTML kods"},paragraph:{paragraph:"Paragrāfs",outdent:"Samazināt atkāpi",indent:"Palielināt atkāpi",left:"Līdzināt pa kreisi",center:"Centrēt",right:"Līdzināt pa labi",justify:"Līdzināt gar abām malām"},color:{recent:"Nesen izmantotās",more:"Citas krāsas",background:"Fona krāsa",foreground:"Fonta krāsa",transparent:"Caurspīdīgs",setTransparent:"Iestatīt caurspīdīgumu",reset:"Atjaunot",resetToDefault:"Atjaunot noklusējumu"},shortcut:{shortcuts:"Saīsnes",close:"Aizvērt",textFormatting:"Teksta formatēšana",action:"Darbība",paragraphFormatting:"Paragrāfa formatēšana",documentStyle:"Dokumenta stils",extraKeys:"Citas taustiņu kombinācijas"},help:{insertParagraph:"Ievietot Paragrāfu",undo:"Atcelt iepriekšējo darbību",redo:"Atkārtot atcelto darbību",tab:"Atkāpe",untab:"Samazināt atkāpi",bold:"Pārvērst tekstu treknrakstā",italic:"Pārvērst tekstu slīprakstā (kursīvā)",underline:"Pasvītrot tekstu",strikethrough:"Nosvītrot tekstu",removeFormat:"Notīrīt stilu no teksta",justifyLeft:"Līdzīnāt saturu pa kreisi",justifyCenter:"Centrēt saturu",justifyRight:"Līdzīnāt saturu pa labi",justifyFull:"Izlīdzināt saturu gar abām malām",insertUnorderedList:"Ievietot nenumurētu sarakstu",insertOrderedList:"Ievietot numurētu sarakstu",outdent:"Samazināt/noņemt atkāpi paragrāfam",indent:"Uzlikt atkāpi paragrāfam",formatPara:"Mainīt bloka tipu uz (p) Paragrāfu",formatH1:"Mainīt bloka tipu uz virsrakstu H1",formatH2:"Mainīt bloka tipu uz virsrakstu H2",formatH3:"Mainīt bloka tipu uz virsrakstu H3",formatH4:"Mainīt bloka tipu uz virsrakstu H4",formatH5:"Mainīt bloka tipu uz virsrakstu H5",formatH6:"Mainīt bloka tipu uz virsrakstu H6",insertHorizontalRule:"Ievietot horizontālu līniju","linkDialog.show":"Parādīt saites logu"},history:{undo:"Atsauks (undo)",redo:"Atkārtot (redo)"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-lt-LV.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-lt-LV.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-lt-LV.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-mn-MN.js b/common/lib/summernote/lang/summernote-mn-MN.js new file mode 100644 index 0000000..c2eba79 --- /dev/null +++ b/common/lib/summernote/lang/summernote-mn-MN.js @@ -0,0 +1,274 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 30); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 30: +/***/ (function(module, exports) { + +// Starsoft Mongolia LLC Temuujin Ariunbold +(function ($) { + $.extend($.summernote.lang, { + 'mn-MN': { + font: { + bold: 'Тод', + italic: 'Налуу', + underline: 'Доогуур зураас', + clear: 'Цэвэрлэх', + height: 'Өндөр', + name: 'Фонт', + superscript: 'Дээд илтгэгч', + subscript: 'Доод илтгэгч', + strikethrough: 'Дарах', + size: 'Хэмжээ' + }, + image: { + image: 'Зураг', + insert: 'Оруулах', + resizeFull: 'Хэмжээ бүтэн', + resizeHalf: 'Хэмжээ 1/2', + resizeQuarter: 'Хэмжээ 1/4', + floatLeft: 'Зүүн талд байрлуулах', + floatRight: 'Баруун талд байрлуулах', + floatNone: 'Анхдагч байрлалд аваачих', + shapeRounded: 'Хүрээ: Дугуй', + shapeCircle: 'Хүрээ: Тойрог', + shapeThumbnail: 'Хүрээ: Хураангуй', + shapeNone: 'Хүрээгүй', + dragImageHere: 'Зургийг энд чирч авчирна уу', + dropImage: 'Drop image or Text', + selectFromFiles: 'Файлуудаас сонгоно уу', + maximumFileSize: 'Файлын дээд хэмжээ', + maximumFileSizeError: 'Файлын дээд хэмжээ хэтэрсэн', + url: 'Зургийн URL', + remove: 'Зургийг устгах', + original: 'Original' + }, + video: { + video: 'Видео', + videoLink: 'Видео холбоос', + insert: 'Видео оруулах', + url: 'Видео URL?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion болон Youku)' + }, + link: { + link: 'Холбоос', + insert: 'Холбоос оруулах', + unlink: 'Холбоос арилгах', + edit: 'Засварлах', + textToDisplay: 'Харуулах бичвэр', + url: 'Энэ холбоос хаашаа очих вэ?', + openInNewWindow: 'Шинэ цонхонд нээх' + }, + table: { + table: 'Хүснэгт', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Хэвтээ шугам оруулах' + }, + style: { + style: 'Хэв маяг', + p: 'p', + blockquote: 'Иш татах', + pre: 'Эх сурвалж', + h1: 'Гарчиг 1', + h2: 'Гарчиг 2', + h3: 'Гарчиг 3', + h4: 'Гарчиг 4', + h5: 'Гарчиг 5', + h6: 'Гарчиг 6' + }, + lists: { + unordered: 'Эрэмбэлэгдээгүй', + ordered: 'Эрэмбэлэгдсэн' + }, + options: { + help: 'Тусламж', + fullscreen: 'Дэлгэцийг дүүргэх', + codeview: 'HTML-Code харуулах' + }, + paragraph: { + paragraph: 'Хэсэг', + outdent: 'Догол мөр хасах', + indent: 'Догол мөр нэмэх', + left: 'Зүүн тийш эгнүүлэх', + center: 'Төвд эгнүүлэх', + right: 'Баруун тийш эгнүүлэх', + justify: 'Мөрийг тэгшлэх' + }, + color: { + recent: 'Сүүлд хэрэглэсэн өнгө', + more: 'Өөр өнгөнүүд', + background: 'Дэвсгэр өнгө', + foreground: 'Үсгийн өнгө', + transparent: 'Тунгалаг', + setTransparent: 'Тунгалаг болгох', + reset: 'Анхдагч өнгөөр тохируулах', + resetToDefault: 'Хэвд нь оруулах' + }, + shortcut: { + shortcuts: 'Богино холбоос', + close: 'Хаалт', + textFormatting: 'Бичвэрийг хэлбэржүүлэх', + action: 'Үйлдэл', + paragraphFormatting: 'Догол мөрийг хэлбэржүүлэх', + documentStyle: 'Бичиг баримтын хэв загвар', + extraKeys: 'Extra keys' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'Буцаах', + redo: 'Дахин хийх' + }, + specialChar: { + specialChar: 'Тусгай тэмдэгт', + select: 'Тусгай тэмдэгт сонгох' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-mn-MN.min.js b/common/lib/summernote/lang/summernote-mn-MN.min.js new file mode 100644 index 0000000..5833605 --- /dev/null +++ b/common/lib/summernote/lang/summernote-mn-MN.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-mn-MN.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=30)}({30:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"mn-MN":{font:{bold:"Тод",italic:"Налуу",underline:"Доогуур зураас",clear:"Цэвэрлэх",height:"Өндөр",name:"Фонт",superscript:"Дээд илтгэгч",subscript:"Доод илтгэгч",strikethrough:"Дарах",size:"Хэмжээ"},image:{image:"Зураг",insert:"Оруулах",resizeFull:"Хэмжээ бүтэн",resizeHalf:"Хэмжээ 1/2",resizeQuarter:"Хэмжээ 1/4",floatLeft:"Зүүн талд байрлуулах",floatRight:"Баруун талд байрлуулах",floatNone:"Анхдагч байрлалд аваачих",shapeRounded:"Хүрээ: Дугуй",shapeCircle:"Хүрээ: Тойрог",shapeThumbnail:"Хүрээ: Хураангуй",shapeNone:"Хүрээгүй",dragImageHere:"Зургийг энд чирч авчирна уу",dropImage:"Drop image or Text",selectFromFiles:"Файлуудаас сонгоно уу",maximumFileSize:"Файлын дээд хэмжээ",maximumFileSizeError:"Файлын дээд хэмжээ хэтэрсэн",url:"Зургийн URL",remove:"Зургийг устгах",original:"Original"},video:{video:"Видео",videoLink:"Видео холбоос",insert:"Видео оруулах",url:"Видео URL?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion болон Youku)"},link:{link:"Холбоос",insert:"Холбоос оруулах",unlink:"Холбоос арилгах",edit:"Засварлах",textToDisplay:"Харуулах бичвэр",url:"Энэ холбоос хаашаа очих вэ?",openInNewWindow:"Шинэ цонхонд нээх"},table:{table:"Хүснэгт",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Хэвтээ шугам оруулах"},style:{style:"Хэв маяг",p:"p",blockquote:"Иш татах",pre:"Эх сурвалж",h1:"Гарчиг 1",h2:"Гарчиг 2",h3:"Гарчиг 3",h4:"Гарчиг 4",h5:"Гарчиг 5",h6:"Гарчиг 6"},lists:{unordered:"Эрэмбэлэгдээгүй",ordered:"Эрэмбэлэгдсэн"},options:{help:"Тусламж",fullscreen:"Дэлгэцийг дүүргэх",codeview:"HTML-Code харуулах"},paragraph:{paragraph:"Хэсэг",outdent:"Догол мөр хасах",indent:"Догол мөр нэмэх",left:"Зүүн тийш эгнүүлэх",center:"Төвд эгнүүлэх",right:"Баруун тийш эгнүүлэх",justify:"Мөрийг тэгшлэх"},color:{recent:"Сүүлд хэрэглэсэн өнгө",more:"Өөр өнгөнүүд",background:"Дэвсгэр өнгө",foreground:"Үсгийн өнгө",transparent:"Тунгалаг",setTransparent:"Тунгалаг болгох",reset:"Анхдагч өнгөөр тохируулах",resetToDefault:"Хэвд нь оруулах"},shortcut:{shortcuts:"Богино холбоос",close:"Хаалт",textFormatting:"Бичвэрийг хэлбэржүүлэх",action:"Үйлдэл",paragraphFormatting:"Догол мөрийг хэлбэржүүлэх",documentStyle:"Бичиг баримтын хэв загвар",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Буцаах",redo:"Дахин хийх"},specialChar:{specialChar:"Тусгай тэмдэгт",select:"Тусгай тэмдэгт сонгох"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-mn-MN.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-mn-MN.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-mn-MN.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-nb-NO.js b/common/lib/summernote/lang/summernote-nb-NO.js new file mode 100644 index 0000000..6763b05 --- /dev/null +++ b/common/lib/summernote/lang/summernote-nb-NO.js @@ -0,0 +1,272 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 31); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 31: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'nb-NO': { + font: { + bold: 'Fet', + italic: 'Kursiv', + underline: 'Understrek', + clear: 'Fjern formatering', + height: 'Linjehøyde', + name: 'Skrifttype', + strikethrough: 'Gjennomstrek', + subscript: 'Subscript', + superscript: 'Superscript', + size: 'Skriftstørrelse' + }, + image: { + image: 'Bilde', + insert: 'Sett inn bilde', + resizeFull: 'Sett full størrelse', + resizeHalf: 'Sett halv størrelse', + resizeQuarter: 'Sett kvart størrelse', + floatLeft: 'Flyt til venstre', + floatRight: 'Flyt til høyre', + floatNone: 'Fjern flyt', + shapeRounded: 'Form: Rundet', + shapeCircle: 'Form: Sirkel', + shapeThumbnail: 'Form: Miniatyr', + shapeNone: 'Form: Ingen', + dragImageHere: 'Dra et bilde hit', + dropImage: 'Drop image or Text', + selectFromFiles: 'Velg fra filer', + maximumFileSize: 'Max filstørrelse', + maximumFileSizeError: 'Maks filstørrelse overskredet.', + url: 'Bilde-URL', + remove: 'Fjern bilde', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Videolenke', + insert: 'Sett inn video', + url: 'Video-URL', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)' + }, + link: { + link: 'Lenke', + insert: 'Sett inn lenke', + unlink: 'Fjern lenke', + edit: 'Rediger', + textToDisplay: 'Visningstekst', + url: 'Til hvilken URL skal denne lenken peke?', + openInNewWindow: 'Åpne i nytt vindu' + }, + table: { + table: 'Tabell', + addRowAbove: 'Legg til rad over', + addRowBelow: 'Legg til rad under', + addColLeft: 'Legg til kolonne på venstre side', + addColRight: 'Legg til kolonne på høyre side', + delRow: 'Slett rad', + delCol: 'Slett kolonne', + delTable: 'Slett tabell' + }, + hr: { + insert: 'Sett inn horisontal linje' + }, + style: { + style: 'Stil', + p: 'Paragraf', + blockquote: 'Sitat', + pre: 'Kode', + h1: 'Overskrift 1', + h2: 'Overskrift 2', + h3: 'Overskrift 3', + h4: 'Overskrift 4', + h5: 'Overskrift 5', + h6: 'Overskrift 6' + }, + lists: { + unordered: 'Punktliste', + ordered: 'Nummerert liste' + }, + options: { + help: 'Hjelp', + fullscreen: 'Fullskjerm', + codeview: 'HTML-visning' + }, + paragraph: { + paragraph: 'Avsnitt', + outdent: 'Tilbakerykk', + indent: 'Innrykk', + left: 'Venstrejustert', + center: 'Midtstilt', + right: 'Høyrejustert', + justify: 'Blokkjustert' + }, + color: { + recent: 'Nylig valgt farge', + more: 'Flere farger', + background: 'Bakgrunnsfarge', + foreground: 'Skriftfarge', + transparent: 'Gjennomsiktig', + setTransparent: 'Sett gjennomsiktig', + reset: 'Nullstill', + resetToDefault: 'Nullstill til standard' + }, + shortcut: { + shortcuts: 'Hurtigtaster', + close: 'Lukk', + textFormatting: 'Tekstformatering', + action: 'Handling', + paragraphFormatting: 'Avsnittsformatering', + documentStyle: 'Dokumentstil' + }, + help: { + 'insertParagraph': 'Sett inn avsnitt', + 'undo': 'Angre siste handling', + 'redo': 'Gjør om siste handling', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Angi en fet stil', + 'italic': 'Angi en kursiv stil', + 'underline': 'Sett en understreket stil', + 'strikethrough': 'Sett en gjennomgående sti', + 'removeFormat': 'Tøm formattering', + 'justifyLeft': 'Angi venstrejustering', + 'justifyCenter': 'Angi sentrert justering', + 'justifyRight': 'Angi høyre justering', + 'justifyFull': 'Angi full justering', + 'insertUnorderedList': 'Bytt uordnet liste', + 'insertOrderedList': 'Bytt sortert liste', + 'outdent': 'Utrykk på valgt avsnitt', + 'indent': 'Innrykk på valgt avsnitt', + 'formatPara': 'Endre gjeldende blokkformat til et avsnitt (P-kode)', + 'formatH1': 'Endre gjeldende blokkformat til H1', + 'formatH2': 'Endre gjeldende blokkformat til H2', + 'formatH3': 'Endre gjeldende blokkformat til H3', + 'formatH4': 'Endre gjeldende blokkformat til H4', + 'formatH5': 'Endre gjeldende blokkformat til H5', + 'formatH6': 'Endre gjeldende blokkformat til H6', + 'insertHorizontalRule': 'Sett inn horisontal deler', + 'linkDialog.show': 'Vis koblingsdialog' + }, + history: { + undo: 'Angre', + redo: 'Gjør om' + }, + specialChar: { + specialChar: 'SPESIELLE TEGN', + select: 'Velg spesielle tegn' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-nb-NO.min.js b/common/lib/summernote/lang/summernote-nb-NO.min.js new file mode 100644 index 0000000..2460a82 --- /dev/null +++ b/common/lib/summernote/lang/summernote-nb-NO.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-nb-NO.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=31)}({31:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"nb-NO":{font:{bold:"Fet",italic:"Kursiv",underline:"Understrek",clear:"Fjern formatering",height:"Linjehøyde",name:"Skrifttype",strikethrough:"Gjennomstrek",subscript:"Subscript",superscript:"Superscript",size:"Skriftstørrelse"},image:{image:"Bilde",insert:"Sett inn bilde",resizeFull:"Sett full størrelse",resizeHalf:"Sett halv størrelse",resizeQuarter:"Sett kvart størrelse",floatLeft:"Flyt til venstre",floatRight:"Flyt til høyre",floatNone:"Fjern flyt",shapeRounded:"Form: Rundet",shapeCircle:"Form: Sirkel",shapeThumbnail:"Form: Miniatyr",shapeNone:"Form: Ingen",dragImageHere:"Dra et bilde hit",dropImage:"Drop image or Text",selectFromFiles:"Velg fra filer",maximumFileSize:"Max filstørrelse",maximumFileSizeError:"Maks filstørrelse overskredet.",url:"Bilde-URL",remove:"Fjern bilde",original:"Original"},video:{video:"Video",videoLink:"Videolenke",insert:"Sett inn video",url:"Video-URL",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)"},link:{link:"Lenke",insert:"Sett inn lenke",unlink:"Fjern lenke",edit:"Rediger",textToDisplay:"Visningstekst",url:"Til hvilken URL skal denne lenken peke?",openInNewWindow:"Åpne i nytt vindu"},table:{table:"Tabell",addRowAbove:"Legg til rad over",addRowBelow:"Legg til rad under",addColLeft:"Legg til kolonne på venstre side",addColRight:"Legg til kolonne på høyre side",delRow:"Slett rad",delCol:"Slett kolonne",delTable:"Slett tabell"},hr:{insert:"Sett inn horisontal linje"},style:{style:"Stil",p:"Paragraf",blockquote:"Sitat",pre:"Kode",h1:"Overskrift 1",h2:"Overskrift 2",h3:"Overskrift 3",h4:"Overskrift 4",h5:"Overskrift 5",h6:"Overskrift 6"},lists:{unordered:"Punktliste",ordered:"Nummerert liste"},options:{help:"Hjelp",fullscreen:"Fullskjerm",codeview:"HTML-visning"},paragraph:{paragraph:"Avsnitt",outdent:"Tilbakerykk",indent:"Innrykk",left:"Venstrejustert",center:"Midtstilt",right:"Høyrejustert",justify:"Blokkjustert"},color:{recent:"Nylig valgt farge",more:"Flere farger",background:"Bakgrunnsfarge",foreground:"Skriftfarge",transparent:"Gjennomsiktig",setTransparent:"Sett gjennomsiktig",reset:"Nullstill",resetToDefault:"Nullstill til standard"},shortcut:{shortcuts:"Hurtigtaster",close:"Lukk",textFormatting:"Tekstformatering",action:"Handling",paragraphFormatting:"Avsnittsformatering",documentStyle:"Dokumentstil"},help:{insertParagraph:"Sett inn avsnitt",undo:"Angre siste handling",redo:"Gjør om siste handling",tab:"Tab",untab:"Untab",bold:"Angi en fet stil",italic:"Angi en kursiv stil",underline:"Sett en understreket stil",strikethrough:"Sett en gjennomgående sti",removeFormat:"Tøm formattering",justifyLeft:"Angi venstrejustering",justifyCenter:"Angi sentrert justering",justifyRight:"Angi høyre justering",justifyFull:"Angi full justering",insertUnorderedList:"Bytt uordnet liste",insertOrderedList:"Bytt sortert liste",outdent:"Utrykk på valgt avsnitt",indent:"Innrykk på valgt avsnitt",formatPara:"Endre gjeldende blokkformat til et avsnitt (P-kode)",formatH1:"Endre gjeldende blokkformat til H1",formatH2:"Endre gjeldende blokkformat til H2",formatH3:"Endre gjeldende blokkformat til H3",formatH4:"Endre gjeldende blokkformat til H4",formatH5:"Endre gjeldende blokkformat til H5",formatH6:"Endre gjeldende blokkformat til H6",insertHorizontalRule:"Sett inn horisontal deler","linkDialog.show":"Vis koblingsdialog"},history:{undo:"Angre",redo:"Gjør om"},specialChar:{specialChar:"SPESIELLE TEGN",select:"Velg spesielle tegn"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-nb-NO.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-nb-NO.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-nb-NO.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-nl-NL.js b/common/lib/summernote/lang/summernote-nl-NL.js new file mode 100644 index 0000000..22fe633 --- /dev/null +++ b/common/lib/summernote/lang/summernote-nl-NL.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 32); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 32: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'nl-NL': { + font: { + bold: 'Vet', + italic: 'Cursief', + underline: 'Onderstrepen', + clear: 'Stijl verwijderen', + height: 'Regelhoogte', + name: 'Lettertype', + strikethrough: 'Doorhalen', + subscript: 'Subscript', + superscript: 'Superscript', + size: 'Tekstgrootte' + }, + image: { + image: 'Afbeelding', + insert: 'Afbeelding invoegen', + resizeFull: 'Volledige breedte', + resizeHalf: 'Halve breedte', + resizeQuarter: 'Kwart breedte', + floatLeft: 'Links uitlijnen', + floatRight: 'Rechts uitlijnen', + floatNone: 'Geen uitlijning', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'Sleep hier een afbeelding naar toe', + dropImage: 'Drop image or Text', + selectFromFiles: 'Selecteer een bestand', + maximumFileSize: 'Maximum file size', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'URL van de afbeelding', + remove: 'Verwijder afbeelding', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Video link', + insert: 'Video invoegen', + url: 'URL van de video', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion of Youku)' + }, + link: { + link: 'Link', + insert: 'Link invoegen', + unlink: 'Link verwijderen', + edit: 'Wijzigen', + textToDisplay: 'Tekst van link', + url: 'Naar welke URL moet deze link verwijzen?', + openInNewWindow: 'Open in nieuw venster' + }, + table: { + table: 'Tabel', + addRowAbove: 'Rij hierboven invoegen', + addRowBelow: 'Rij hieronder invoegen', + addColLeft: 'Kolom links toevoegen', + addColRight: 'Kolom rechts toevoegen', + delRow: 'Verwijder rij', + delCol: 'Verwijder kolom', + delTable: 'Verwijder tabel' + }, + hr: { + insert: 'Horizontale lijn invoegen' + }, + style: { + style: 'Stijl', + p: 'Normaal', + blockquote: 'Quote', + pre: 'Code', + h1: 'Kop 1', + h2: 'Kop 2', + h3: 'Kop 3', + h4: 'Kop 4', + h5: 'Kop 5', + h6: 'Kop 6' + }, + lists: { + unordered: 'Ongeordende lijst', + ordered: 'Geordende lijst' + }, + options: { + help: 'Help', + fullscreen: 'Volledig scherm', + codeview: 'Bekijk Code' + }, + paragraph: { + paragraph: 'Paragraaf', + outdent: 'Inspringen verkleinen', + indent: 'Inspringen vergroten', + left: 'Links uitlijnen', + center: 'Centreren', + right: 'Rechts uitlijnen', + justify: 'Uitvullen' + }, + color: { + recent: 'Recente kleur', + more: 'Meer kleuren', + background: 'Achtergrond kleur', + foreground: 'Tekst kleur', + transparent: 'Transparant', + setTransparent: 'Transparant', + reset: 'Standaard', + resetToDefault: 'Standaard kleur' + }, + shortcut: { + shortcuts: 'Toetsencombinaties', + close: 'sluiten', + textFormatting: 'Tekststijlen', + action: 'Acties', + paragraphFormatting: 'Paragraafstijlen', + documentStyle: 'Documentstijlen', + extraKeys: 'Extra keys' + }, + help: { + 'insertParagraph': 'Alinea invoegen', + 'undo': 'Laatste handeling ongedaan maken', + 'redo': 'Laatste handeling opnieuw uitvoeren', + 'tab': 'Tab', + 'untab': 'Herstel tab', + 'bold': 'Stel stijl in als vet', + 'italic': 'Stel stijl in als cursief', + 'underline': 'Stel stijl in als onderstreept', + 'strikethrough': 'Stel stijl in als doorgestreept', + 'removeFormat': 'Verwijder stijl', + 'justifyLeft': 'Lijn links uit', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Lijn rechts uit', + 'justifyFull': 'Lijn uit op volledige breedte', + 'insertUnorderedList': 'Zet ongeordende lijstweergave aan', + 'insertOrderedList': 'Zet geordende lijstweergave aan', + 'outdent': 'Verwijder inspringing huidige alinea', + 'indent': 'Inspringen op huidige alinea', + 'formatPara': 'Wijzig formattering huidig blok in alinea(P tag)', + 'formatH1': 'Formatteer huidig blok als H1', + 'formatH2': 'Formatteer huidig blok als H2', + 'formatH3': 'Formatteer huidig blok als H3', + 'formatH4': 'Formatteer huidig blok als H4', + 'formatH5': 'Formatteer huidig blok als H5', + 'formatH6': 'Formatteer huidig blok als H6', + 'insertHorizontalRule': 'Invoegen horizontale lijn', + 'linkDialog.show': 'Toon Link Dialoogvenster' + }, + history: { + undo: 'Ongedaan maken', + redo: 'Opnieuw doorvoeren' + }, + specialChar: { + specialChar: 'SPECIALE TEKENS', + select: 'Selecteer Speciale Tekens' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-nl-NL.min.js b/common/lib/summernote/lang/summernote-nl-NL.min.js new file mode 100644 index 0000000..2ddfc3a --- /dev/null +++ b/common/lib/summernote/lang/summernote-nl-NL.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-nl-NL.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(window,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=32)}({32:function(e,t){var n;(n=jQuery).extend(n.summernote.lang,{"nl-NL":{font:{bold:"Vet",italic:"Cursief",underline:"Onderstrepen",clear:"Stijl verwijderen",height:"Regelhoogte",name:"Lettertype",strikethrough:"Doorhalen",subscript:"Subscript",superscript:"Superscript",size:"Tekstgrootte"},image:{image:"Afbeelding",insert:"Afbeelding invoegen",resizeFull:"Volledige breedte",resizeHalf:"Halve breedte",resizeQuarter:"Kwart breedte",floatLeft:"Links uitlijnen",floatRight:"Rechts uitlijnen",floatNone:"Geen uitlijning",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Sleep hier een afbeelding naar toe",dropImage:"Drop image or Text",selectFromFiles:"Selecteer een bestand",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URL van de afbeelding",remove:"Verwijder afbeelding",original:"Original"},video:{video:"Video",videoLink:"Video link",insert:"Video invoegen",url:"URL van de video",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion of Youku)"},link:{link:"Link",insert:"Link invoegen",unlink:"Link verwijderen",edit:"Wijzigen",textToDisplay:"Tekst van link",url:"Naar welke URL moet deze link verwijzen?",openInNewWindow:"Open in nieuw venster"},table:{table:"Tabel",addRowAbove:"Rij hierboven invoegen",addRowBelow:"Rij hieronder invoegen",addColLeft:"Kolom links toevoegen",addColRight:"Kolom rechts toevoegen",delRow:"Verwijder rij",delCol:"Verwijder kolom",delTable:"Verwijder tabel"},hr:{insert:"Horizontale lijn invoegen"},style:{style:"Stijl",p:"Normaal",blockquote:"Quote",pre:"Code",h1:"Kop 1",h2:"Kop 2",h3:"Kop 3",h4:"Kop 4",h5:"Kop 5",h6:"Kop 6"},lists:{unordered:"Ongeordende lijst",ordered:"Geordende lijst"},options:{help:"Help",fullscreen:"Volledig scherm",codeview:"Bekijk Code"},paragraph:{paragraph:"Paragraaf",outdent:"Inspringen verkleinen",indent:"Inspringen vergroten",left:"Links uitlijnen",center:"Centreren",right:"Rechts uitlijnen",justify:"Uitvullen"},color:{recent:"Recente kleur",more:"Meer kleuren",background:"Achtergrond kleur",foreground:"Tekst kleur",transparent:"Transparant",setTransparent:"Transparant",reset:"Standaard",resetToDefault:"Standaard kleur"},shortcut:{shortcuts:"Toetsencombinaties",close:"sluiten",textFormatting:"Tekststijlen",action:"Acties",paragraphFormatting:"Paragraafstijlen",documentStyle:"Documentstijlen",extraKeys:"Extra keys"},help:{insertParagraph:"Alinea invoegen",undo:"Laatste handeling ongedaan maken",redo:"Laatste handeling opnieuw uitvoeren",tab:"Tab",untab:"Herstel tab",bold:"Stel stijl in als vet",italic:"Stel stijl in als cursief",underline:"Stel stijl in als onderstreept",strikethrough:"Stel stijl in als doorgestreept",removeFormat:"Verwijder stijl",justifyLeft:"Lijn links uit",justifyCenter:"Set center align",justifyRight:"Lijn rechts uit",justifyFull:"Lijn uit op volledige breedte",insertUnorderedList:"Zet ongeordende lijstweergave aan",insertOrderedList:"Zet geordende lijstweergave aan",outdent:"Verwijder inspringing huidige alinea",indent:"Inspringen op huidige alinea",formatPara:"Wijzig formattering huidig blok in alinea(P tag)",formatH1:"Formatteer huidig blok als H1",formatH2:"Formatteer huidig blok als H2",formatH3:"Formatteer huidig blok als H3",formatH4:"Formatteer huidig blok als H4",formatH5:"Formatteer huidig blok als H5",formatH6:"Formatteer huidig blok als H6",insertHorizontalRule:"Invoegen horizontale lijn","linkDialog.show":"Toon Link Dialoogvenster"},history:{undo:"Ongedaan maken",redo:"Opnieuw doorvoeren"},specialChar:{specialChar:"SPECIALE TEKENS",select:"Selecteer Speciale Tekens"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-nl-NL.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-nl-NL.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-nl-NL.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-pl-PL.js b/common/lib/summernote/lang/summernote-pl-PL.js new file mode 100644 index 0000000..dd38628 --- /dev/null +++ b/common/lib/summernote/lang/summernote-pl-PL.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 33); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 33: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'pl-PL': { + font: { + bold: 'Pogrubienie', + italic: 'Pochylenie', + underline: 'Podkreślenie', + clear: 'Usuń formatowanie', + height: 'Interlinia', + name: 'Czcionka', + strikethrough: 'Przekreślenie', + subscript: 'Indeks dolny', + superscript: 'Indeks górny', + size: 'Rozmiar' + }, + image: { + image: 'Grafika', + insert: 'Wstaw grafikę', + resizeFull: 'Zmień rozmiar na 100%', + resizeHalf: 'Zmień rozmiar na 50%', + resizeQuarter: 'Zmień rozmiar na 25%', + floatLeft: 'Po lewej', + floatRight: 'Po prawej', + floatNone: 'Równo z tekstem', + shapeRounded: 'Kształt: zaokrąglone', + shapeCircle: 'Kształt: okrąg', + shapeThumbnail: 'Kształt: miniatura', + shapeNone: 'Kształt: brak', + dragImageHere: 'Przeciągnij grafikę lub tekst tutaj', + dropImage: 'Przeciągnij grafikę lub tekst', + selectFromFiles: 'Wybierz z dysku', + maximumFileSize: 'Limit wielkości pliku', + maximumFileSizeError: 'Przekroczono limit wielkości pliku.', + url: 'Adres URL grafiki', + remove: 'Usuń grafikę', + original: 'Oryginał' + }, + video: { + video: 'Wideo', + videoLink: 'Adres wideo', + insert: 'Wstaw wideo', + url: 'Adres wideo', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion lub Youku)' + }, + link: { + link: 'Odnośnik', + insert: 'Wstaw odnośnik', + unlink: 'Usuń odnośnik', + edit: 'Edytuj', + textToDisplay: 'Tekst do wyświetlenia', + url: 'Na jaki adres URL powinien przenosić ten odnośnik?', + openInNewWindow: 'Otwórz w nowym oknie' + }, + table: { + table: 'Tabela', + addRowAbove: 'Dodaj wiersz powyżej', + addRowBelow: 'Dodaj wiersz poniżej', + addColLeft: 'Dodaj kolumnę po lewej', + addColRight: 'Dodaj kolumnę po prawej', + delRow: 'Usuń wiersz', + delCol: 'Usuń kolumnę', + delTable: 'Usuń tabelę' + }, + hr: { + insert: 'Wstaw poziomą linię' + }, + style: { + style: 'Styl', + p: 'pny', + blockquote: 'Cytat', + pre: 'Kod', + h1: 'Nagłówek 1', + h2: 'Nagłówek 2', + h3: 'Nagłówek 3', + h4: 'Nagłówek 4', + h5: 'Nagłówek 5', + h6: 'Nagłówek 6' + }, + lists: { + unordered: 'Lista wypunktowana', + ordered: 'Lista numerowana' + }, + options: { + help: 'Pomoc', + fullscreen: 'Pełny ekran', + codeview: 'Źródło' + }, + paragraph: { + paragraph: 'Akapit', + outdent: 'Zmniejsz wcięcie', + indent: 'Zwiększ wcięcie', + left: 'Wyrównaj do lewej', + center: 'Wyrównaj do środka', + right: 'Wyrównaj do prawej', + justify: 'Wyrównaj do lewej i prawej' + }, + color: { + recent: 'Ostani kolor', + more: 'Więcej kolorów', + background: 'Tło', + foreground: 'Czcionka', + transparent: 'Przeźroczysty', + setTransparent: 'Przeźroczyste', + reset: 'Zresetuj', + resetToDefault: 'Domyślne' + }, + shortcut: { + shortcuts: 'Skróty klawiaturowe', + close: 'Zamknij', + textFormatting: 'Formatowanie tekstu', + action: 'Akcja', + paragraphFormatting: 'Formatowanie akapitu', + documentStyle: 'Styl dokumentu', + extraKeys: 'Dodatkowe klawisze' + }, + help: { + 'insertParagraph': 'Wstaw paragraf', + 'undo': 'Cofnij poprzednią operację', + 'redo': 'Przywróć poprzednią operację', + 'tab': 'Tabulacja', + 'untab': 'Usuń tabulację', + 'bold': 'Pogrubienie', + 'italic': 'Kursywa', + 'underline': 'Podkreślenie', + 'strikethrough': 'Przekreślenie', + 'removeFormat': 'Usuń formatowanie', + 'justifyLeft': 'Wyrównaj do lewej', + 'justifyCenter': 'Wyrównaj do środka', + 'justifyRight': 'Wyrównaj do prawej', + 'justifyFull': 'Justyfikacja', + 'insertUnorderedList': 'Nienumerowana lista', + 'insertOrderedList': 'Wypunktowana lista', + 'outdent': 'Zmniejsz wcięcie paragrafu', + 'indent': 'Zwiększ wcięcie paragrafu', + 'formatPara': 'Zamień format bloku na paragraf (tag P)', + 'formatH1': 'Zamień format bloku na H1', + 'formatH2': 'Zamień format bloku na H2', + 'formatH3': 'Zamień format bloku na H3', + 'formatH4': 'Zamień format bloku na H4', + 'formatH5': 'Zamień format bloku na H5', + 'formatH6': 'Zamień format bloku na H6', + 'insertHorizontalRule': 'Wstaw poziomą linię', + 'linkDialog.show': 'Pokaż dialog linkowania' + }, + history: { + undo: 'Cofnij', + redo: 'Ponów' + }, + specialChar: { + specialChar: 'ZNAKI SPECJALNE', + select: 'Wybierz Znak specjalny' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-pl-PL.min.js b/common/lib/summernote/lang/summernote-pl-PL.min.js new file mode 100644 index 0000000..72b0a17 --- /dev/null +++ b/common/lib/summernote/lang/summernote-pl-PL.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-pl-PL.min.js.LICENSE.txt */ +!function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r();else if("function"==typeof define&&define.amd)define([],r);else{var o=r();for(var a in o)("object"==typeof exports?exports:e)[a]=o[a]}}(window,(function(){return function(e){var r={};function o(a){if(r[a])return r[a].exports;var t=r[a]={i:a,l:!1,exports:{}};return e[a].call(t.exports,t,t.exports,o),t.l=!0,t.exports}return o.m=e,o.c=r,o.d=function(e,r,a){o.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:a})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,r){if(1&r&&(e=o(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(o.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var t in e)o.d(a,t,function(r){return e[r]}.bind(null,t));return a},o.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(r,"a",r),r},o.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},o.p="",o(o.s=33)}({33:function(e,r){var o;(o=jQuery).extend(o.summernote.lang,{"pl-PL":{font:{bold:"Pogrubienie",italic:"Pochylenie",underline:"Podkreślenie",clear:"Usuń formatowanie",height:"Interlinia",name:"Czcionka",strikethrough:"Przekreślenie",subscript:"Indeks dolny",superscript:"Indeks górny",size:"Rozmiar"},image:{image:"Grafika",insert:"Wstaw grafikę",resizeFull:"Zmień rozmiar na 100%",resizeHalf:"Zmień rozmiar na 50%",resizeQuarter:"Zmień rozmiar na 25%",floatLeft:"Po lewej",floatRight:"Po prawej",floatNone:"Równo z tekstem",shapeRounded:"Kształt: zaokrąglone",shapeCircle:"Kształt: okrąg",shapeThumbnail:"Kształt: miniatura",shapeNone:"Kształt: brak",dragImageHere:"Przeciągnij grafikę lub tekst tutaj",dropImage:"Przeciągnij grafikę lub tekst",selectFromFiles:"Wybierz z dysku",maximumFileSize:"Limit wielkości pliku",maximumFileSizeError:"Przekroczono limit wielkości pliku.",url:"Adres URL grafiki",remove:"Usuń grafikę",original:"Oryginał"},video:{video:"Wideo",videoLink:"Adres wideo",insert:"Wstaw wideo",url:"Adres wideo",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion lub Youku)"},link:{link:"Odnośnik",insert:"Wstaw odnośnik",unlink:"Usuń odnośnik",edit:"Edytuj",textToDisplay:"Tekst do wyświetlenia",url:"Na jaki adres URL powinien przenosić ten odnośnik?",openInNewWindow:"Otwórz w nowym oknie"},table:{table:"Tabela",addRowAbove:"Dodaj wiersz powyżej",addRowBelow:"Dodaj wiersz poniżej",addColLeft:"Dodaj kolumnę po lewej",addColRight:"Dodaj kolumnę po prawej",delRow:"Usuń wiersz",delCol:"Usuń kolumnę",delTable:"Usuń tabelę"},hr:{insert:"Wstaw poziomą linię"},style:{style:"Styl",p:"pny",blockquote:"Cytat",pre:"Kod",h1:"Nagłówek 1",h2:"Nagłówek 2",h3:"Nagłówek 3",h4:"Nagłówek 4",h5:"Nagłówek 5",h6:"Nagłówek 6"},lists:{unordered:"Lista wypunktowana",ordered:"Lista numerowana"},options:{help:"Pomoc",fullscreen:"Pełny ekran",codeview:"Źródło"},paragraph:{paragraph:"Akapit",outdent:"Zmniejsz wcięcie",indent:"Zwiększ wcięcie",left:"Wyrównaj do lewej",center:"Wyrównaj do środka",right:"Wyrównaj do prawej",justify:"Wyrównaj do lewej i prawej"},color:{recent:"Ostani kolor",more:"Więcej kolorów",background:"Tło",foreground:"Czcionka",transparent:"Przeźroczysty",setTransparent:"Przeźroczyste",reset:"Zresetuj",resetToDefault:"Domyślne"},shortcut:{shortcuts:"Skróty klawiaturowe",close:"Zamknij",textFormatting:"Formatowanie tekstu",action:"Akcja",paragraphFormatting:"Formatowanie akapitu",documentStyle:"Styl dokumentu",extraKeys:"Dodatkowe klawisze"},help:{insertParagraph:"Wstaw paragraf",undo:"Cofnij poprzednią operację",redo:"Przywróć poprzednią operację",tab:"Tabulacja",untab:"Usuń tabulację",bold:"Pogrubienie",italic:"Kursywa",underline:"Podkreślenie",strikethrough:"Przekreślenie",removeFormat:"Usuń formatowanie",justifyLeft:"Wyrównaj do lewej",justifyCenter:"Wyrównaj do środka",justifyRight:"Wyrównaj do prawej",justifyFull:"Justyfikacja",insertUnorderedList:"Nienumerowana lista",insertOrderedList:"Wypunktowana lista",outdent:"Zmniejsz wcięcie paragrafu",indent:"Zwiększ wcięcie paragrafu",formatPara:"Zamień format bloku na paragraf (tag P)",formatH1:"Zamień format bloku na H1",formatH2:"Zamień format bloku na H2",formatH3:"Zamień format bloku na H3",formatH4:"Zamień format bloku na H4",formatH5:"Zamień format bloku na H5",formatH6:"Zamień format bloku na H6",insertHorizontalRule:"Wstaw poziomą linię","linkDialog.show":"Pokaż dialog linkowania"},history:{undo:"Cofnij",redo:"Ponów"},specialChar:{specialChar:"ZNAKI SPECJALNE",select:"Wybierz Znak specjalny"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-pl-PL.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-pl-PL.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-pl-PL.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-pt-BR.js b/common/lib/summernote/lang/summernote-pt-BR.js new file mode 100644 index 0000000..e11ee8d --- /dev/null +++ b/common/lib/summernote/lang/summernote-pt-BR.js @@ -0,0 +1,274 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 34); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 34: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'pt-BR': { + font: { + bold: 'Negrito', + italic: 'Itálico', + underline: 'Sublinhado', + clear: 'Remover estilo da fonte', + height: 'Altura da linha', + name: 'Fonte', + strikethrough: 'Riscado', + subscript: 'Subscrito', + superscript: 'Sobrescrito', + size: 'Tamanho da fonte' + }, + image: { + image: 'Imagem', + insert: 'Inserir imagem', + resizeFull: 'Redimensionar Completamente', + resizeHalf: 'Redimensionar pela Metade', + resizeQuarter: 'Redimensionar a um Quarto', + floatLeft: 'Flutuar para Esquerda', + floatRight: 'Flutuar para Direita', + floatNone: 'Não Flutuar', + shapeRounded: 'Forma: Arredondado', + shapeCircle: 'Forma: Círculo', + shapeThumbnail: 'Forma: Miniatura', + shapeNone: 'Forma: Nenhum', + dragImageHere: 'Arraste Imagem ou Texto para cá', + dropImage: 'Solte Imagem ou Texto', + selectFromFiles: 'Selecione a partir dos arquivos', + maximumFileSize: 'Tamanho máximo do arquivo', + maximumFileSizeError: 'Tamanho máximo do arquivo excedido.', + url: 'URL da imagem', + remove: 'Remover Imagem', + original: 'Original' + }, + video: { + video: 'Vídeo', + videoLink: 'Link para vídeo', + insert: 'Inserir vídeo', + url: 'URL do vídeo?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)' + }, + link: { + link: 'Link', + insert: 'Inserir link', + unlink: 'Remover link', + edit: 'Editar', + textToDisplay: 'Texto para exibir', + url: 'Para qual URL este link leva?', + openInNewWindow: 'Abrir em uma nova janela' + }, + table: { + table: 'Tabela', + addRowAbove: 'Adicionar linha acima', + addRowBelow: 'Adicionar linha abaixo', + addColLeft: 'Adicionar coluna à esquerda', + addColRight: 'Adicionar coluna à direita', + delRow: 'Excluir linha', + delCol: 'Excluir coluna', + delTable: 'Excluir tabela' + }, + hr: { + insert: 'Linha horizontal' + }, + style: { + style: 'Estilo', + p: 'Normal', + blockquote: 'Citação', + pre: 'Código', + h1: 'Título 1', + h2: 'Título 2', + h3: 'Título 3', + h4: 'Título 4', + h5: 'Título 5', + h6: 'Título 6' + }, + lists: { + unordered: 'Lista com marcadores', + ordered: 'Lista numerada' + }, + options: { + help: 'Ajuda', + fullscreen: 'Tela cheia', + codeview: 'Ver código-fonte' + }, + paragraph: { + paragraph: 'Parágrafo', + outdent: 'Menor tabulação', + indent: 'Maior tabulação', + left: 'Alinhar à esquerda', + center: 'Alinhar ao centro', + right: 'Alinha à direita', + justify: 'Justificado' + }, + color: { + recent: 'Cor recente', + more: 'Mais cores', + background: 'Fundo', + foreground: 'Fonte', + transparent: 'Transparente', + setTransparent: 'Fundo transparente', + reset: 'Restaurar', + resetToDefault: 'Restaurar padrão', + cpSelect: 'Selecionar' + }, + shortcut: { + shortcuts: 'Atalhos do teclado', + close: 'Fechar', + textFormatting: 'Formatação de texto', + action: 'Ação', + paragraphFormatting: 'Formatação de parágrafo', + documentStyle: 'Estilo de documento', + extraKeys: 'Extra keys' + }, + help: { + 'insertParagraph': 'Inserir Parágrafo', + 'undo': 'Desfazer o último comando', + 'redo': 'Refazer o último comando', + 'tab': 'Tab', + 'untab': 'Desfazer tab', + 'bold': 'Colocar em negrito', + 'italic': 'Colocar em itálico', + 'underline': 'Sublinhado', + 'strikethrough': 'Tachado', + 'removeFormat': 'Remover estilo', + 'justifyLeft': 'Alinhar à esquerda', + 'justifyCenter': 'Centralizar', + 'justifyRight': 'Alinhar à esquerda', + 'justifyFull': 'Justificar', + 'insertUnorderedList': 'Lista não ordenada', + 'insertOrderedList': 'Lista ordenada', + 'outdent': 'Recuar parágrafo atual', + 'indent': 'Avançar parágrafo atual', + 'formatPara': 'Alterar formato do bloco para parágrafo(tag P)', + 'formatH1': 'Alterar formato do bloco para H1', + 'formatH2': 'Alterar formato do bloco para H2', + 'formatH3': 'Alterar formato do bloco para H3', + 'formatH4': 'Alterar formato do bloco para H4', + 'formatH5': 'Alterar formato do bloco para H5', + 'formatH6': 'Alterar formato do bloco para H6', + 'insertHorizontalRule': 'Inserir Régua horizontal', + 'linkDialog.show': 'Inserir um Hiperlink' + }, + history: { + undo: 'Desfazer', + redo: 'Refazer' + }, + specialChar: { + specialChar: 'CARACTERES ESPECIAIS', + select: 'Selecionar Caracteres Especiais' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-pt-BR.min.js b/common/lib/summernote/lang/summernote-pt-BR.min.js new file mode 100644 index 0000000..55a176e --- /dev/null +++ b/common/lib/summernote/lang/summernote-pt-BR.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-pt-BR.min.js.LICENSE.txt */ +!function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r();else if("function"==typeof define&&define.amd)define([],r);else{var a=r();for(var o in a)("object"==typeof exports?exports:e)[o]=a[o]}}(window,(function(){return function(e){var r={};function a(o){if(r[o])return r[o].exports;var t=r[o]={i:o,l:!1,exports:{}};return e[o].call(t.exports,t,t.exports,a),t.l=!0,t.exports}return a.m=e,a.c=r,a.d=function(e,r,o){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:o})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(a.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var t in e)a.d(o,t,function(r){return e[r]}.bind(null,t));return o},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="",a(a.s=34)}({34:function(e,r){var a;(a=jQuery).extend(a.summernote.lang,{"pt-BR":{font:{bold:"Negrito",italic:"Itálico",underline:"Sublinhado",clear:"Remover estilo da fonte",height:"Altura da linha",name:"Fonte",strikethrough:"Riscado",subscript:"Subscrito",superscript:"Sobrescrito",size:"Tamanho da fonte"},image:{image:"Imagem",insert:"Inserir imagem",resizeFull:"Redimensionar Completamente",resizeHalf:"Redimensionar pela Metade",resizeQuarter:"Redimensionar a um Quarto",floatLeft:"Flutuar para Esquerda",floatRight:"Flutuar para Direita",floatNone:"Não Flutuar",shapeRounded:"Forma: Arredondado",shapeCircle:"Forma: Círculo",shapeThumbnail:"Forma: Miniatura",shapeNone:"Forma: Nenhum",dragImageHere:"Arraste Imagem ou Texto para cá",dropImage:"Solte Imagem ou Texto",selectFromFiles:"Selecione a partir dos arquivos",maximumFileSize:"Tamanho máximo do arquivo",maximumFileSizeError:"Tamanho máximo do arquivo excedido.",url:"URL da imagem",remove:"Remover Imagem",original:"Original"},video:{video:"Vídeo",videoLink:"Link para vídeo",insert:"Inserir vídeo",url:"URL do vídeo?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)"},link:{link:"Link",insert:"Inserir link",unlink:"Remover link",edit:"Editar",textToDisplay:"Texto para exibir",url:"Para qual URL este link leva?",openInNewWindow:"Abrir em uma nova janela"},table:{table:"Tabela",addRowAbove:"Adicionar linha acima",addRowBelow:"Adicionar linha abaixo",addColLeft:"Adicionar coluna à esquerda",addColRight:"Adicionar coluna à direita",delRow:"Excluir linha",delCol:"Excluir coluna",delTable:"Excluir tabela"},hr:{insert:"Linha horizontal"},style:{style:"Estilo",p:"Normal",blockquote:"Citação",pre:"Código",h1:"Título 1",h2:"Título 2",h3:"Título 3",h4:"Título 4",h5:"Título 5",h6:"Título 6"},lists:{unordered:"Lista com marcadores",ordered:"Lista numerada"},options:{help:"Ajuda",fullscreen:"Tela cheia",codeview:"Ver código-fonte"},paragraph:{paragraph:"Parágrafo",outdent:"Menor tabulação",indent:"Maior tabulação",left:"Alinhar à esquerda",center:"Alinhar ao centro",right:"Alinha à direita",justify:"Justificado"},color:{recent:"Cor recente",more:"Mais cores",background:"Fundo",foreground:"Fonte",transparent:"Transparente",setTransparent:"Fundo transparente",reset:"Restaurar",resetToDefault:"Restaurar padrão",cpSelect:"Selecionar"},shortcut:{shortcuts:"Atalhos do teclado",close:"Fechar",textFormatting:"Formatação de texto",action:"Ação",paragraphFormatting:"Formatação de parágrafo",documentStyle:"Estilo de documento",extraKeys:"Extra keys"},help:{insertParagraph:"Inserir Parágrafo",undo:"Desfazer o último comando",redo:"Refazer o último comando",tab:"Tab",untab:"Desfazer tab",bold:"Colocar em negrito",italic:"Colocar em itálico",underline:"Sublinhado",strikethrough:"Tachado",removeFormat:"Remover estilo",justifyLeft:"Alinhar à esquerda",justifyCenter:"Centralizar",justifyRight:"Alinhar à esquerda",justifyFull:"Justificar",insertUnorderedList:"Lista não ordenada",insertOrderedList:"Lista ordenada",outdent:"Recuar parágrafo atual",indent:"Avançar parágrafo atual",formatPara:"Alterar formato do bloco para parágrafo(tag P)",formatH1:"Alterar formato do bloco para H1",formatH2:"Alterar formato do bloco para H2",formatH3:"Alterar formato do bloco para H3",formatH4:"Alterar formato do bloco para H4",formatH5:"Alterar formato do bloco para H5",formatH6:"Alterar formato do bloco para H6",insertHorizontalRule:"Inserir Régua horizontal","linkDialog.show":"Inserir um Hiperlink"},history:{undo:"Desfazer",redo:"Refazer"},specialChar:{specialChar:"CARACTERES ESPECIAIS",select:"Selecionar Caracteres Especiais"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-pt-BR.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-pt-BR.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-pt-BR.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-pt-PT.js b/common/lib/summernote/lang/summernote-pt-PT.js new file mode 100644 index 0000000..5e5edaf --- /dev/null +++ b/common/lib/summernote/lang/summernote-pt-PT.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 35); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 35: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'pt-PT': { + font: { + bold: 'Negrito', + italic: 'Itálico', + underline: 'Sublinhado', + clear: 'Remover estilo da fonte', + height: 'Altura da linha', + name: 'Fonte', + strikethrough: 'Riscado', + subscript: 'Subscript', + superscript: 'Superscript', + size: 'Tamanho da fonte' + }, + image: { + image: 'Imagem', + insert: 'Inserir imagem', + resizeFull: 'Redimensionar Completo', + resizeHalf: 'Redimensionar Metade', + resizeQuarter: 'Redimensionar Um Quarto', + floatLeft: 'Float Esquerda', + floatRight: 'Float Direita', + floatNone: 'Sem Float', + shapeRounded: 'Forma: Arredondado', + shapeCircle: 'Forma: Círculo', + shapeThumbnail: 'Forma: Minhatura', + shapeNone: 'Forma: Nenhum', + dragImageHere: 'Arraste uma imagem para aqui', + dropImage: 'Arraste uma imagem ou texto', + selectFromFiles: 'Selecione a partir dos arquivos', + maximumFileSize: 'Tamanho máximo do fixeiro', + maximumFileSizeError: 'Tamanho máximo do fixeiro é maior que o permitido.', + url: 'Endereço da imagem', + remove: 'Remover Imagem', + original: 'Original' + }, + video: { + video: 'Vídeo', + videoLink: 'Link para vídeo', + insert: 'Inserir vídeo', + url: 'URL do vídeo?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)' + }, + link: { + link: 'Link', + insert: 'Inserir ligação', + unlink: 'Remover ligação', + edit: 'Editar', + textToDisplay: 'Texto para exibir', + url: 'Que endereço esta licação leva?', + openInNewWindow: 'Abrir numa nova janela' + }, + table: { + table: 'Tabela', + addRowAbove: 'Adicionar linha acima', + addRowBelow: 'Adicionar linha abaixo', + addColLeft: 'Adicionar coluna à Esquerda', + addColRight: 'Adicionar coluna à Esquerda', + delRow: 'Excluir linha', + delCol: 'Excluir coluna', + delTable: 'Excluir tabela' + }, + hr: { + insert: 'Inserir linha horizontal' + }, + style: { + style: 'Estilo', + p: 'Parágrafo', + blockquote: 'Citação', + pre: 'Código', + h1: 'Título 1', + h2: 'Título 2', + h3: 'Título 3', + h4: 'Título 4', + h5: 'Título 5', + h6: 'Título 6' + }, + lists: { + unordered: 'Lista com marcadores', + ordered: 'Lista numerada' + }, + options: { + help: 'Ajuda', + fullscreen: 'Janela Completa', + codeview: 'Ver código-fonte' + }, + paragraph: { + paragraph: 'Parágrafo', + outdent: 'Menor tabulação', + indent: 'Maior tabulação', + left: 'Alinhar à esquerda', + center: 'Alinhar ao centro', + right: 'Alinha à direita', + justify: 'Justificado' + }, + color: { + recent: 'Cor recente', + more: 'Mais cores', + background: 'Fundo', + foreground: 'Fonte', + transparent: 'Transparente', + setTransparent: 'Fundo transparente', + reset: 'Restaurar', + resetToDefault: 'Restaurar padrão', + cpSelect: 'Selecionar' + }, + shortcut: { + shortcuts: 'Atalhos do teclado', + close: 'Fechar', + textFormatting: 'Formatação de texto', + action: 'Ação', + paragraphFormatting: 'Formatação de parágrafo', + documentStyle: 'Estilo de documento' + }, + help: { + 'insertParagraph': 'Inserir Parágrafo', + 'undo': 'Desfazer o último comando', + 'redo': 'Refazer o último comando', + 'tab': 'Maior tabulação', + 'untab': 'Menor tabulação', + 'bold': 'Colocar em negrito', + 'italic': 'Colocar em itálico', + 'underline': 'Colocar em sublinhado', + 'strikethrough': 'Colocar em riscado', + 'removeFormat': 'Limpar o estilo', + 'justifyLeft': 'Definir alinhado à esquerda', + 'justifyCenter': 'Definir alinhado ao centro', + 'justifyRight': 'Definir alinhado à direita', + 'justifyFull': 'Definir justificado', + 'insertUnorderedList': 'Alternar lista não ordenada', + 'insertOrderedList': 'Alternar lista ordenada', + 'outdent': 'Recuar parágrafo atual', + 'indent': 'Avançar parágrafo atual', + 'formatPara': 'Alterar formato do bloco para parágrafo', + 'formatH1': 'Alterar formato do bloco para Título 1', + 'formatH2': 'Alterar formato do bloco para Título 2', + 'formatH3': 'Alterar formato do bloco para Título 3', + 'formatH4': 'Alterar formato do bloco para Título 4', + 'formatH5': 'Alterar formato do bloco para Título 5', + 'formatH6': 'Alterar formato do bloco para Título 6', + 'insertHorizontalRule': 'Inserir linha horizontal', + 'linkDialog.show': 'Inserir uma ligração' + }, + history: { + undo: 'Desfazer', + redo: 'Refazer' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-pt-PT.min.js b/common/lib/summernote/lang/summernote-pt-PT.min.js new file mode 100644 index 0000000..205b6b1 --- /dev/null +++ b/common/lib/summernote/lang/summernote-pt-PT.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-pt-PT.min.js.LICENSE.txt */ +!function(e,o){if("object"==typeof exports&&"object"==typeof module)module.exports=o();else if("function"==typeof define&&define.amd)define([],o);else{var r=o();for(var a in r)("object"==typeof exports?exports:e)[a]=r[a]}}(window,(function(){return function(e){var o={};function r(a){if(o[a])return o[a].exports;var t=o[a]={i:a,l:!1,exports:{}};return e[a].call(t.exports,t,t.exports,r),t.l=!0,t.exports}return r.m=e,r.c=o,r.d=function(e,o,a){r.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:a})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,o){if(1&o&&(e=r(e)),8&o)return e;if(4&o&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(r.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&o&&"string"!=typeof e)for(var t in e)r.d(a,t,function(o){return e[o]}.bind(null,t));return a},r.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(o,"a",o),o},r.o=function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},r.p="",r(r.s=35)}({35:function(e,o){var r;(r=jQuery).extend(r.summernote.lang,{"pt-PT":{font:{bold:"Negrito",italic:"Itálico",underline:"Sublinhado",clear:"Remover estilo da fonte",height:"Altura da linha",name:"Fonte",strikethrough:"Riscado",subscript:"Subscript",superscript:"Superscript",size:"Tamanho da fonte"},image:{image:"Imagem",insert:"Inserir imagem",resizeFull:"Redimensionar Completo",resizeHalf:"Redimensionar Metade",resizeQuarter:"Redimensionar Um Quarto",floatLeft:"Float Esquerda",floatRight:"Float Direita",floatNone:"Sem Float",shapeRounded:"Forma: Arredondado",shapeCircle:"Forma: Círculo",shapeThumbnail:"Forma: Minhatura",shapeNone:"Forma: Nenhum",dragImageHere:"Arraste uma imagem para aqui",dropImage:"Arraste uma imagem ou texto",selectFromFiles:"Selecione a partir dos arquivos",maximumFileSize:"Tamanho máximo do fixeiro",maximumFileSizeError:"Tamanho máximo do fixeiro é maior que o permitido.",url:"Endereço da imagem",remove:"Remover Imagem",original:"Original"},video:{video:"Vídeo",videoLink:"Link para vídeo",insert:"Inserir vídeo",url:"URL do vídeo?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)"},link:{link:"Link",insert:"Inserir ligação",unlink:"Remover ligação",edit:"Editar",textToDisplay:"Texto para exibir",url:"Que endereço esta licação leva?",openInNewWindow:"Abrir numa nova janela"},table:{table:"Tabela",addRowAbove:"Adicionar linha acima",addRowBelow:"Adicionar linha abaixo",addColLeft:"Adicionar coluna à Esquerda",addColRight:"Adicionar coluna à Esquerda",delRow:"Excluir linha",delCol:"Excluir coluna",delTable:"Excluir tabela"},hr:{insert:"Inserir linha horizontal"},style:{style:"Estilo",p:"Parágrafo",blockquote:"Citação",pre:"Código",h1:"Título 1",h2:"Título 2",h3:"Título 3",h4:"Título 4",h5:"Título 5",h6:"Título 6"},lists:{unordered:"Lista com marcadores",ordered:"Lista numerada"},options:{help:"Ajuda",fullscreen:"Janela Completa",codeview:"Ver código-fonte"},paragraph:{paragraph:"Parágrafo",outdent:"Menor tabulação",indent:"Maior tabulação",left:"Alinhar à esquerda",center:"Alinhar ao centro",right:"Alinha à direita",justify:"Justificado"},color:{recent:"Cor recente",more:"Mais cores",background:"Fundo",foreground:"Fonte",transparent:"Transparente",setTransparent:"Fundo transparente",reset:"Restaurar",resetToDefault:"Restaurar padrão",cpSelect:"Selecionar"},shortcut:{shortcuts:"Atalhos do teclado",close:"Fechar",textFormatting:"Formatação de texto",action:"Ação",paragraphFormatting:"Formatação de parágrafo",documentStyle:"Estilo de documento"},help:{insertParagraph:"Inserir Parágrafo",undo:"Desfazer o último comando",redo:"Refazer o último comando",tab:"Maior tabulação",untab:"Menor tabulação",bold:"Colocar em negrito",italic:"Colocar em itálico",underline:"Colocar em sublinhado",strikethrough:"Colocar em riscado",removeFormat:"Limpar o estilo",justifyLeft:"Definir alinhado à esquerda",justifyCenter:"Definir alinhado ao centro",justifyRight:"Definir alinhado à direita",justifyFull:"Definir justificado",insertUnorderedList:"Alternar lista não ordenada",insertOrderedList:"Alternar lista ordenada",outdent:"Recuar parágrafo atual",indent:"Avançar parágrafo atual",formatPara:"Alterar formato do bloco para parágrafo",formatH1:"Alterar formato do bloco para Título 1",formatH2:"Alterar formato do bloco para Título 2",formatH3:"Alterar formato do bloco para Título 3",formatH4:"Alterar formato do bloco para Título 4",formatH5:"Alterar formato do bloco para Título 5",formatH6:"Alterar formato do bloco para Título 6",insertHorizontalRule:"Inserir linha horizontal","linkDialog.show":"Inserir uma ligração"},history:{undo:"Desfazer",redo:"Refazer"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-pt-PT.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-pt-PT.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-pt-PT.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-ro-RO.js b/common/lib/summernote/lang/summernote-ro-RO.js new file mode 100644 index 0000000..e9bf292 --- /dev/null +++ b/common/lib/summernote/lang/summernote-ro-RO.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 36); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 36: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'ro-RO': { + font: { + bold: 'Îngroșat', + italic: 'Înclinat', + underline: 'Subliniat', + clear: 'Înlătură formatare font', + height: 'Înălțime rând', + name: 'Familie de fonturi', + strikethrough: 'Tăiat', + subscript: 'Indice', + superscript: 'Exponent', + size: 'Dimensiune font' + }, + image: { + image: 'Imagine', + insert: 'Inserează imagine', + resizeFull: 'Redimensionează complet', + resizeHalf: 'Redimensionează 1/2', + resizeQuarter: 'Redimensionează 1/4', + floatLeft: 'Aliniere la stânga', + floatRight: 'Aliniere la dreapta', + floatNone: 'Fară aliniere', + shapeRounded: 'Formă: Rotund', + shapeCircle: 'Formă: Cerc', + shapeThumbnail: 'Formă: Pictogramă', + shapeNone: 'Formă: Nici una', + dragImageHere: 'Trage o imagine sau un text aici', + dropImage: 'Eliberează imaginea sau textul', + selectFromFiles: 'Alege din fişiere', + maximumFileSize: 'Dimensiune maximă fișier', + maximumFileSizeError: 'Dimensiune maximă fișier depășită.', + url: 'URL imagine', + remove: 'Șterge imagine', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Link video', + insert: 'Inserează video', + url: 'URL video?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion sau Youku)' + }, + link: { + link: 'Link', + insert: 'Inserează link', + unlink: 'Înlătură link', + edit: 'Editează', + textToDisplay: 'Text ce va fi afişat', + url: 'La ce adresă URL trebuie să conducă acest link?', + openInNewWindow: 'Deschidere în fereastră nouă' + }, + table: { + table: 'Tabel', + addRowAbove: 'Adaugă rând deasupra', + addRowBelow: 'Adaugă rând dedesubt', + addColLeft: 'Adaugă coloană stânga', + addColRight: 'Adaugă coloană dreapta', + delRow: 'Șterge rând', + delCol: 'Șterge coloană', + delTable: 'Șterge tabel' + }, + hr: { + insert: 'Inserează o linie orizontală' + }, + style: { + style: 'Stil', + p: 'p', + blockquote: 'Citat', + pre: 'Preformatat', + h1: 'Titlu 1', + h2: 'Titlu 2', + h3: 'Titlu 3', + h4: 'Titlu 4', + h5: 'Titlu 5', + h6: 'Titlu 6' + }, + lists: { + unordered: 'Listă neordonată', + ordered: 'Listă ordonată' + }, + options: { + help: 'Ajutor', + fullscreen: 'Măreşte', + codeview: 'Sursă' + }, + paragraph: { + paragraph: 'Paragraf', + outdent: 'Creşte identarea', + indent: 'Scade identarea', + left: 'Aliniere la stânga', + center: 'Aliniere centrală', + right: 'Aliniere la dreapta', + justify: 'Aliniere în bloc' + }, + color: { + recent: 'Culoare recentă', + more: 'Mai multe culori', + background: 'Culoarea fundalului', + foreground: 'Culoarea textului', + transparent: 'Transparent', + setTransparent: 'Setează transparent', + reset: 'Resetează', + resetToDefault: 'Revino la iniţial' + }, + shortcut: { + shortcuts: 'Scurtături tastatură', + close: 'Închide', + textFormatting: 'Formatare text', + action: 'Acţiuni', + paragraphFormatting: 'Formatare paragraf', + documentStyle: 'Stil paragraf', + extraKeys: 'Taste extra' + }, + help: { + 'insertParagraph': 'Inserează paragraf', + 'undo': 'Revine la starea anterioară', + 'redo': 'Revine la starea ulterioară', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Setează stil îngroșat', + 'italic': 'Setează stil înclinat', + 'underline': 'Setează stil subliniat', + 'strikethrough': 'Setează stil tăiat', + 'removeFormat': 'Înlătură formatare', + 'justifyLeft': 'Setează aliniere stânga', + 'justifyCenter': 'Setează aliniere centru', + 'justifyRight': 'Setează aliniere dreapta', + 'justifyFull': 'Setează aliniere bloc', + 'insertUnorderedList': 'Comutare listă neordinată', + 'insertOrderedList': 'Comutare listă ordonată', + 'outdent': 'Înlătură indentare paragraf curent', + 'indent': 'Adaugă indentare paragraf curent', + 'formatPara': 'Schimbă formatarea selecției în paragraf', + 'formatH1': 'Schimbă formatarea selecției în H1', + 'formatH2': 'Schimbă formatarea selecției în H2', + 'formatH3': 'Schimbă formatarea selecției în H3', + 'formatH4': 'Schimbă formatarea selecției în H4', + 'formatH5': 'Schimbă formatarea selecției în H5', + 'formatH6': 'Schimbă formatarea selecției în H6', + 'insertHorizontalRule': 'Adaugă linie orizontală', + 'linkDialog.show': 'Inserează link' + }, + history: { + undo: 'Starea anterioară', + redo: 'Starea ulterioară' + }, + specialChar: { + specialChar: 'CARACTERE SPECIALE', + select: 'Alege caractere speciale' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-ro-RO.min.js b/common/lib/summernote/lang/summernote-ro-RO.min.js new file mode 100644 index 0000000..2465303 --- /dev/null +++ b/common/lib/summernote/lang/summernote-ro-RO.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-ro-RO.min.js.LICENSE.txt */ +!function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r();else if("function"==typeof define&&define.amd)define([],r);else{var t=r();for(var a in t)("object"==typeof exports?exports:e)[a]=t[a]}}(window,(function(){return function(e){var r={};function t(a){if(r[a])return r[a].exports;var i=r[a]={i:a,l:!1,exports:{}};return e[a].call(i.exports,i,i.exports,t),i.l=!0,i.exports}return t.m=e,t.c=r,t.d=function(e,r,a){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:a})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(t.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var i in e)t.d(a,i,function(r){return e[r]}.bind(null,i));return a},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=36)}({36:function(e,r){var t;(t=jQuery).extend(t.summernote.lang,{"ro-RO":{font:{bold:"Îngroșat",italic:"Înclinat",underline:"Subliniat",clear:"Înlătură formatare font",height:"Înălțime rând",name:"Familie de fonturi",strikethrough:"Tăiat",subscript:"Indice",superscript:"Exponent",size:"Dimensiune font"},image:{image:"Imagine",insert:"Inserează imagine",resizeFull:"Redimensionează complet",resizeHalf:"Redimensionează 1/2",resizeQuarter:"Redimensionează 1/4",floatLeft:"Aliniere la stânga",floatRight:"Aliniere la dreapta",floatNone:"Fară aliniere",shapeRounded:"Formă: Rotund",shapeCircle:"Formă: Cerc",shapeThumbnail:"Formă: Pictogramă",shapeNone:"Formă: Nici una",dragImageHere:"Trage o imagine sau un text aici",dropImage:"Eliberează imaginea sau textul",selectFromFiles:"Alege din fişiere",maximumFileSize:"Dimensiune maximă fișier",maximumFileSizeError:"Dimensiune maximă fișier depășită.",url:"URL imagine",remove:"Șterge imagine",original:"Original"},video:{video:"Video",videoLink:"Link video",insert:"Inserează video",url:"URL video?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion sau Youku)"},link:{link:"Link",insert:"Inserează link",unlink:"Înlătură link",edit:"Editează",textToDisplay:"Text ce va fi afişat",url:"La ce adresă URL trebuie să conducă acest link?",openInNewWindow:"Deschidere în fereastră nouă"},table:{table:"Tabel",addRowAbove:"Adaugă rând deasupra",addRowBelow:"Adaugă rând dedesubt",addColLeft:"Adaugă coloană stânga",addColRight:"Adaugă coloană dreapta",delRow:"Șterge rând",delCol:"Șterge coloană",delTable:"Șterge tabel"},hr:{insert:"Inserează o linie orizontală"},style:{style:"Stil",p:"p",blockquote:"Citat",pre:"Preformatat",h1:"Titlu 1",h2:"Titlu 2",h3:"Titlu 3",h4:"Titlu 4",h5:"Titlu 5",h6:"Titlu 6"},lists:{unordered:"Listă neordonată",ordered:"Listă ordonată"},options:{help:"Ajutor",fullscreen:"Măreşte",codeview:"Sursă"},paragraph:{paragraph:"Paragraf",outdent:"Creşte identarea",indent:"Scade identarea",left:"Aliniere la stânga",center:"Aliniere centrală",right:"Aliniere la dreapta",justify:"Aliniere în bloc"},color:{recent:"Culoare recentă",more:"Mai multe culori",background:"Culoarea fundalului",foreground:"Culoarea textului",transparent:"Transparent",setTransparent:"Setează transparent",reset:"Resetează",resetToDefault:"Revino la iniţial"},shortcut:{shortcuts:"Scurtături tastatură",close:"Închide",textFormatting:"Formatare text",action:"Acţiuni",paragraphFormatting:"Formatare paragraf",documentStyle:"Stil paragraf",extraKeys:"Taste extra"},help:{insertParagraph:"Inserează paragraf",undo:"Revine la starea anterioară",redo:"Revine la starea ulterioară",tab:"Tab",untab:"Untab",bold:"Setează stil îngroșat",italic:"Setează stil înclinat",underline:"Setează stil subliniat",strikethrough:"Setează stil tăiat",removeFormat:"Înlătură formatare",justifyLeft:"Setează aliniere stânga",justifyCenter:"Setează aliniere centru",justifyRight:"Setează aliniere dreapta",justifyFull:"Setează aliniere bloc",insertUnorderedList:"Comutare listă neordinată",insertOrderedList:"Comutare listă ordonată",outdent:"Înlătură indentare paragraf curent",indent:"Adaugă indentare paragraf curent",formatPara:"Schimbă formatarea selecției în paragraf",formatH1:"Schimbă formatarea selecției în H1",formatH2:"Schimbă formatarea selecției în H2",formatH3:"Schimbă formatarea selecției în H3",formatH4:"Schimbă formatarea selecției în H4",formatH5:"Schimbă formatarea selecției în H5",formatH6:"Schimbă formatarea selecției în H6",insertHorizontalRule:"Adaugă linie orizontală","linkDialog.show":"Inserează link"},history:{undo:"Starea anterioară",redo:"Starea ulterioară"},specialChar:{specialChar:"CARACTERE SPECIALE",select:"Alege caractere speciale"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-ro-RO.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-ro-RO.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-ro-RO.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-ru-RU.js b/common/lib/summernote/lang/summernote-ru-RU.js new file mode 100644 index 0000000..cf0796d --- /dev/null +++ b/common/lib/summernote/lang/summernote-ru-RU.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 37); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 37: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'ru-RU': { + font: { + bold: 'Полужирный', + italic: 'Курсив', + underline: 'Подчёркнутый', + clear: 'Убрать стили шрифта', + height: 'Высота линии', + name: 'Шрифт', + strikethrough: 'Зачёркнутый', + subscript: 'Нижний индекс', + superscript: 'Верхний индекс', + size: 'Размер шрифта' + }, + image: { + image: 'Картинка', + insert: 'Вставить картинку', + resizeFull: 'Восстановить размер', + resizeHalf: 'Уменьшить до 50%', + resizeQuarter: 'Уменьшить до 25%', + floatLeft: 'Расположить слева', + floatRight: 'Расположить справа', + floatNone: 'Расположение по-умолчанию', + shapeRounded: 'Форма: Закругленная', + shapeCircle: 'Форма: Круг', + shapeThumbnail: 'Форма: Миниатюра', + shapeNone: 'Форма: Нет', + dragImageHere: 'Перетащите сюда картинку', + dropImage: 'Перетащите картинку', + selectFromFiles: 'Выбрать из файлов', + maximumFileSize: 'Максимальный размер файла', + maximumFileSizeError: 'Превышен максимальный размер файла', + url: 'URL картинки', + remove: 'Удалить картинку', + original: 'Оригинал' + }, + video: { + video: 'Видео', + videoLink: 'Ссылка на видео', + insert: 'Вставить видео', + url: 'URL видео', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)' + }, + link: { + link: 'Ссылка', + insert: 'Вставить ссылку', + unlink: 'Убрать ссылку', + edit: 'Редактировать', + textToDisplay: 'Отображаемый текст', + url: 'URL для перехода', + openInNewWindow: 'Открывать в новом окне' + }, + table: { + table: 'Таблица', + addRowAbove: 'Добавить строку выше', + addRowBelow: 'Добавить строку ниже', + addColLeft: 'Добавить столбец слева', + addColRight: 'Добавить столбец справа', + delRow: 'Удалить строку', + delCol: 'Удалить столбец', + delTable: 'Удалить таблицу' + }, + hr: { + insert: 'Вставить горизонтальную линию' + }, + style: { + style: 'Стиль', + p: 'Нормальный', + blockquote: 'Цитата', + pre: 'Код', + h1: 'Заголовок 1', + h2: 'Заголовок 2', + h3: 'Заголовок 3', + h4: 'Заголовок 4', + h5: 'Заголовок 5', + h6: 'Заголовок 6' + }, + lists: { + unordered: 'Маркированный список', + ordered: 'Нумерованный список' + }, + options: { + help: 'Помощь', + fullscreen: 'На весь экран', + codeview: 'Исходный код' + }, + paragraph: { + paragraph: 'Параграф', + outdent: 'Уменьшить отступ', + indent: 'Увеличить отступ', + left: 'Выровнять по левому краю', + center: 'Выровнять по центру', + right: 'Выровнять по правому краю', + justify: 'Растянуть по ширине' + }, + color: { + recent: 'Последний цвет', + more: 'Еще цвета', + background: 'Цвет фона', + foreground: 'Цвет шрифта', + transparent: 'Прозрачный', + setTransparent: 'Сделать прозрачным', + reset: 'Сброс', + resetToDefault: 'Восстановить умолчания' + }, + shortcut: { + shortcuts: 'Сочетания клавиш', + close: 'Закрыть', + textFormatting: 'Форматирование текста', + action: 'Действие', + paragraphFormatting: 'Форматирование параграфа', + documentStyle: 'Стиль документа', + extraKeys: 'Дополнительные комбинации' + }, + help: { + 'insertParagraph': 'Новый параграф', + 'undo': 'Отменить последнюю команду', + 'redo': 'Повторить последнюю команду', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Установить стиль "Жирный"', + 'italic': 'Установить стиль "Наклонный"', + 'underline': 'Установить стиль "Подчеркнутый"', + 'strikethrough': 'Установить стиль "Зачеркнутый"', + 'removeFormat': 'Сборсить стили', + 'justifyLeft': 'Выровнять по левому краю', + 'justifyCenter': 'Выровнять по центру', + 'justifyRight': 'Выровнять по правому краю', + 'justifyFull': 'Растянуть на всю ширину', + 'insertUnorderedList': 'Включить/отключить маркированный список', + 'insertOrderedList': 'Включить/отключить нумерованный список', + 'outdent': 'Убрать отступ в текущем параграфе', + 'indent': 'Вставить отступ в текущем параграфе', + 'formatPara': 'Форматировать текущий блок как параграф (тег P)', + 'formatH1': 'Форматировать текущий блок как H1', + 'formatH2': 'Форматировать текущий блок как H2', + 'formatH3': 'Форматировать текущий блок как H3', + 'formatH4': 'Форматировать текущий блок как H4', + 'formatH5': 'Форматировать текущий блок как H5', + 'formatH6': 'Форматировать текущий блок как H6', + 'insertHorizontalRule': 'Вставить горизонтальную черту', + 'linkDialog.show': 'Показать диалог "Ссылка"' + }, + history: { + undo: 'Отменить', + redo: 'Повтор' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-ru-RU.min.js b/common/lib/summernote/lang/summernote-ru-RU.min.js new file mode 100644 index 0000000..a9dfa8f --- /dev/null +++ b/common/lib/summernote/lang/summernote-ru-RU.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-ru-RU.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=37)}({37:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"ru-RU":{font:{bold:"Полужирный",italic:"Курсив",underline:"Подчёркнутый",clear:"Убрать стили шрифта",height:"Высота линии",name:"Шрифт",strikethrough:"Зачёркнутый",subscript:"Нижний индекс",superscript:"Верхний индекс",size:"Размер шрифта"},image:{image:"Картинка",insert:"Вставить картинку",resizeFull:"Восстановить размер",resizeHalf:"Уменьшить до 50%",resizeQuarter:"Уменьшить до 25%",floatLeft:"Расположить слева",floatRight:"Расположить справа",floatNone:"Расположение по-умолчанию",shapeRounded:"Форма: Закругленная",shapeCircle:"Форма: Круг",shapeThumbnail:"Форма: Миниатюра",shapeNone:"Форма: Нет",dragImageHere:"Перетащите сюда картинку",dropImage:"Перетащите картинку",selectFromFiles:"Выбрать из файлов",maximumFileSize:"Максимальный размер файла",maximumFileSizeError:"Превышен максимальный размер файла",url:"URL картинки",remove:"Удалить картинку",original:"Оригинал"},video:{video:"Видео",videoLink:"Ссылка на видео",insert:"Вставить видео",url:"URL видео",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)"},link:{link:"Ссылка",insert:"Вставить ссылку",unlink:"Убрать ссылку",edit:"Редактировать",textToDisplay:"Отображаемый текст",url:"URL для перехода",openInNewWindow:"Открывать в новом окне"},table:{table:"Таблица",addRowAbove:"Добавить строку выше",addRowBelow:"Добавить строку ниже",addColLeft:"Добавить столбец слева",addColRight:"Добавить столбец справа",delRow:"Удалить строку",delCol:"Удалить столбец",delTable:"Удалить таблицу"},hr:{insert:"Вставить горизонтальную линию"},style:{style:"Стиль",p:"Нормальный",blockquote:"Цитата",pre:"Код",h1:"Заголовок 1",h2:"Заголовок 2",h3:"Заголовок 3",h4:"Заголовок 4",h5:"Заголовок 5",h6:"Заголовок 6"},lists:{unordered:"Маркированный список",ordered:"Нумерованный список"},options:{help:"Помощь",fullscreen:"На весь экран",codeview:"Исходный код"},paragraph:{paragraph:"Параграф",outdent:"Уменьшить отступ",indent:"Увеличить отступ",left:"Выровнять по левому краю",center:"Выровнять по центру",right:"Выровнять по правому краю",justify:"Растянуть по ширине"},color:{recent:"Последний цвет",more:"Еще цвета",background:"Цвет фона",foreground:"Цвет шрифта",transparent:"Прозрачный",setTransparent:"Сделать прозрачным",reset:"Сброс",resetToDefault:"Восстановить умолчания"},shortcut:{shortcuts:"Сочетания клавиш",close:"Закрыть",textFormatting:"Форматирование текста",action:"Действие",paragraphFormatting:"Форматирование параграфа",documentStyle:"Стиль документа",extraKeys:"Дополнительные комбинации"},help:{insertParagraph:"Новый параграф",undo:"Отменить последнюю команду",redo:"Повторить последнюю команду",tab:"Tab",untab:"Untab",bold:'Установить стиль "Жирный"',italic:'Установить стиль "Наклонный"',underline:'Установить стиль "Подчеркнутый"',strikethrough:'Установить стиль "Зачеркнутый"',removeFormat:"Сборсить стили",justifyLeft:"Выровнять по левому краю",justifyCenter:"Выровнять по центру",justifyRight:"Выровнять по правому краю",justifyFull:"Растянуть на всю ширину",insertUnorderedList:"Включить/отключить маркированный список",insertOrderedList:"Включить/отключить нумерованный список",outdent:"Убрать отступ в текущем параграфе",indent:"Вставить отступ в текущем параграфе",formatPara:"Форматировать текущий блок как параграф (тег P)",formatH1:"Форматировать текущий блок как H1",formatH2:"Форматировать текущий блок как H2",formatH3:"Форматировать текущий блок как H3",formatH4:"Форматировать текущий блок как H4",formatH5:"Форматировать текущий блок как H5",formatH6:"Форматировать текущий блок как H6",insertHorizontalRule:"Вставить горизонтальную черту","linkDialog.show":'Показать диалог "Ссылка"'},history:{undo:"Отменить",redo:"Повтор"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-ru-RU.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-ru-RU.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-ru-RU.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-sk-SK.js b/common/lib/summernote/lang/summernote-sk-SK.js new file mode 100644 index 0000000..27b231c --- /dev/null +++ b/common/lib/summernote/lang/summernote-sk-SK.js @@ -0,0 +1,271 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 38); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 38: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'sk-SK': { + font: { + bold: 'Tučné', + italic: 'Kurzíva', + underline: 'Podčiarknutie', + clear: 'Odstrániť štýl písma', + height: 'Výška riadku', + strikethrough: 'Prečiarknuté', + subscript: 'Subscript', + superscript: 'Superscript', + size: 'Veľkosť písma' + }, + image: { + image: 'Obrázok', + insert: 'Vložiť obrázok', + resizeFull: 'Pôvodná veľkosť', + resizeHalf: 'Polovičná veľkosť', + resizeQuarter: 'Štvrtinová veľkosť', + floatLeft: 'Umiestniť doľava', + floatRight: 'Umiestniť doprava', + floatNone: 'Bez zarovnania', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'Pretiahnuť sem obrázok', + dropImage: 'Drop image or Text', + selectFromFiles: 'Vybrať súbor', + maximumFileSize: 'Maximum file size', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'URL obrázku', + remove: 'Remove Image', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Odkaz videa', + insert: 'Vložiť video', + url: 'URL videa?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion alebo Youku)' + }, + link: { + link: 'Odkaz', + insert: 'Vytvoriť odkaz', + unlink: 'Zrušiť odkaz', + edit: 'Upraviť', + textToDisplay: 'Zobrazovaný text', + url: 'Na akú URL adresu má tento odkaz viesť?', + openInNewWindow: 'Otvoriť v novom okne' + }, + table: { + table: 'Tabuľka', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Vložit vodorovnú čiaru' + }, + style: { + style: 'Štýl', + p: 'Normálny', + blockquote: 'Citácia', + pre: 'Kód', + h1: 'Nadpis 1', + h2: 'Nadpis 2', + h3: 'Nadpis 3', + h4: 'Nadpis 4', + h5: 'Nadpis 5', + h6: 'Nadpis 6' + }, + lists: { + unordered: 'Odrážkový zoznam', + ordered: 'Číselný zoznam' + }, + options: { + help: 'Pomoc', + fullscreen: 'Celá obrazovka', + codeview: 'HTML kód' + }, + paragraph: { + paragraph: 'Odsek', + outdent: 'Zväčšiť odsadenie', + indent: 'Zmenšiť odsadenie', + left: 'Zarovnať doľava', + center: 'Zarovnať na stred', + right: 'Zarovnať doprava', + justify: 'Zarovnať obojstranne' + }, + color: { + recent: 'Aktuálna farba', + more: 'Dalšie farby', + background: 'Farba pozadia', + foreground: 'Farba písma', + transparent: 'Priehľadnosť', + setTransparent: 'Nastaviť priehľadnosť', + reset: 'Obnoviť', + resetToDefault: 'Obnoviť prednastavené' + }, + shortcut: { + shortcuts: 'Klávesové skratky', + close: 'Zavrieť', + textFormatting: 'Formátovanie textu', + action: 'Akcia', + paragraphFormatting: 'Formátovanie odseku', + documentStyle: 'Štýl dokumentu' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'Krok vzad', + redo: 'Krok dopredu' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-sk-SK.min.js b/common/lib/summernote/lang/summernote-sk-SK.min.js new file mode 100644 index 0000000..cb2bf2f --- /dev/null +++ b/common/lib/summernote/lang/summernote-sk-SK.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-sk-SK.min.js.LICENSE.txt */ +!function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r();else if("function"==typeof define&&define.amd)define([],r);else{var t=r();for(var o in t)("object"==typeof exports?exports:e)[o]=t[o]}}(window,(function(){return function(e){var r={};function t(o){if(r[o])return r[o].exports;var a=r[o]={i:o,l:!1,exports:{}};return e[o].call(a.exports,a,a.exports,t),a.l=!0,a.exports}return t.m=e,t.c=r,t.d=function(e,r,o){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var a in e)t.d(o,a,function(r){return e[r]}.bind(null,a));return o},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=38)}({38:function(e,r){var t;(t=jQuery).extend(t.summernote.lang,{"sk-SK":{font:{bold:"Tučné",italic:"Kurzíva",underline:"Podčiarknutie",clear:"Odstrániť štýl písma",height:"Výška riadku",strikethrough:"Prečiarknuté",subscript:"Subscript",superscript:"Superscript",size:"Veľkosť písma"},image:{image:"Obrázok",insert:"Vložiť obrázok",resizeFull:"Pôvodná veľkosť",resizeHalf:"Polovičná veľkosť",resizeQuarter:"Štvrtinová veľkosť",floatLeft:"Umiestniť doľava",floatRight:"Umiestniť doprava",floatNone:"Bez zarovnania",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Pretiahnuť sem obrázok",dropImage:"Drop image or Text",selectFromFiles:"Vybrať súbor",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URL obrázku",remove:"Remove Image",original:"Original"},video:{video:"Video",videoLink:"Odkaz videa",insert:"Vložiť video",url:"URL videa?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion alebo Youku)"},link:{link:"Odkaz",insert:"Vytvoriť odkaz",unlink:"Zrušiť odkaz",edit:"Upraviť",textToDisplay:"Zobrazovaný text",url:"Na akú URL adresu má tento odkaz viesť?",openInNewWindow:"Otvoriť v novom okne"},table:{table:"Tabuľka",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Vložit vodorovnú čiaru"},style:{style:"Štýl",p:"Normálny",blockquote:"Citácia",pre:"Kód",h1:"Nadpis 1",h2:"Nadpis 2",h3:"Nadpis 3",h4:"Nadpis 4",h5:"Nadpis 5",h6:"Nadpis 6"},lists:{unordered:"Odrážkový zoznam",ordered:"Číselný zoznam"},options:{help:"Pomoc",fullscreen:"Celá obrazovka",codeview:"HTML kód"},paragraph:{paragraph:"Odsek",outdent:"Zväčšiť odsadenie",indent:"Zmenšiť odsadenie",left:"Zarovnať doľava",center:"Zarovnať na stred",right:"Zarovnať doprava",justify:"Zarovnať obojstranne"},color:{recent:"Aktuálna farba",more:"Dalšie farby",background:"Farba pozadia",foreground:"Farba písma",transparent:"Priehľadnosť",setTransparent:"Nastaviť priehľadnosť",reset:"Obnoviť",resetToDefault:"Obnoviť prednastavené"},shortcut:{shortcuts:"Klávesové skratky",close:"Zavrieť",textFormatting:"Formátovanie textu",action:"Akcia",paragraphFormatting:"Formátovanie odseku",documentStyle:"Štýl dokumentu"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Krok vzad",redo:"Krok dopredu"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-sk-SK.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-sk-SK.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-sk-SK.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-sl-SI.js b/common/lib/summernote/lang/summernote-sl-SI.js new file mode 100644 index 0000000..f50ee7a --- /dev/null +++ b/common/lib/summernote/lang/summernote-sl-SI.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 39); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 39: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'sl-SI': { + font: { + bold: 'Krepko', + italic: 'Ležeče', + underline: 'Podčrtano', + clear: 'Počisti oblikovanje izbire', + height: 'Razmik med vrsticami', + name: 'Pisava', + strikethrough: 'Prečrtano', + subscript: 'Podpisano', + superscript: 'Nadpisano', + size: 'Velikost pisave' + }, + image: { + image: 'Slika', + insert: 'Vstavi sliko', + resizeFull: 'Razširi na polno velikost', + resizeHalf: 'Razširi na polovico velikosti', + resizeQuarter: 'Razširi na četrtino velikosti', + floatLeft: 'Leva poravnava', + floatRight: 'Desna poravnava', + floatNone: 'Brez poravnave', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'Sem povlecite sliko', + dropImage: 'Drop image or Text', + selectFromFiles: 'Izberi sliko za nalaganje', + maximumFileSize: 'Maximum file size', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'URL naslov slike', + remove: 'Odstrani sliko', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Video povezava', + insert: 'Vstavi video', + url: 'Povezava do videa', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ali Youku)' + }, + link: { + link: 'Povezava', + insert: 'Vstavi povezavo', + unlink: 'Odstrani povezavo', + edit: 'Uredi', + textToDisplay: 'Prikazano besedilo', + url: 'Povezava', + openInNewWindow: 'Odpri v novem oknu' + }, + table: { + table: 'Tabela', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Vstavi horizontalno črto' + }, + style: { + style: 'Slogi', + p: 'Navadno besedilo', + blockquote: 'Citat', + pre: 'Koda', + h1: 'Naslov 1', + h2: 'Naslov 2', + h3: 'Naslov 3', + h4: 'Naslov 4', + h5: 'Naslov 5', + h6: 'Naslov 6' + }, + lists: { + unordered: 'Označen seznam', + ordered: 'Oštevilčen seznam' + }, + options: { + help: 'Pomoč', + fullscreen: 'Celozaslonski način', + codeview: 'Pregled HTML kode' + }, + paragraph: { + paragraph: 'Slogi odstavka', + outdent: 'Zmanjšaj odmik', + indent: 'Povečaj odmik', + left: 'Leva poravnava', + center: 'Desna poravnava', + right: 'Sredinska poravnava', + justify: 'Obojestranska poravnava' + }, + color: { + recent: 'Uporabi zadnjo barvo', + more: 'Več barv', + background: 'Barva ozadja', + foreground: 'Barva besedila', + transparent: 'Brez barve', + setTransparent: 'Brez barve', + reset: 'Ponastavi', + resetToDefault: 'Ponastavi na privzeto' + }, + shortcut: { + shortcuts: 'Bljižnice', + close: 'Zapri', + textFormatting: 'Oblikovanje besedila', + action: 'Dejanja', + paragraphFormatting: 'Oblikovanje odstavka', + documentStyle: 'Oblikovanje naslova', + extraKeys: 'Extra keys' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'Razveljavi', + redo: 'Uveljavi' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-sl-SI.min.js b/common/lib/summernote/lang/summernote-sl-SI.min.js new file mode 100644 index 0000000..63488aa --- /dev/null +++ b/common/lib/summernote/lang/summernote-sl-SI.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-sl-SI.min.js.LICENSE.txt */ +!function(e,a){if("object"==typeof exports&&"object"==typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var o=a();for(var r in o)("object"==typeof exports?exports:e)[r]=o[r]}}(window,(function(){return function(e){var a={};function o(r){if(a[r])return a[r].exports;var t=a[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,o),t.l=!0,t.exports}return o.m=e,o.c=a,o.d=function(e,a,r){o.o(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,a){if(1&a&&(e=o(e)),8&a)return e;if(4&a&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&a&&"string"!=typeof e)for(var t in e)o.d(r,t,function(a){return e[a]}.bind(null,t));return r},o.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(a,"a",a),a},o.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},o.p="",o(o.s=39)}({39:function(e,a){var o;(o=jQuery).extend(o.summernote.lang,{"sl-SI":{font:{bold:"Krepko",italic:"Ležeče",underline:"Podčrtano",clear:"Počisti oblikovanje izbire",height:"Razmik med vrsticami",name:"Pisava",strikethrough:"Prečrtano",subscript:"Podpisano",superscript:"Nadpisano",size:"Velikost pisave"},image:{image:"Slika",insert:"Vstavi sliko",resizeFull:"Razširi na polno velikost",resizeHalf:"Razširi na polovico velikosti",resizeQuarter:"Razširi na četrtino velikosti",floatLeft:"Leva poravnava",floatRight:"Desna poravnava",floatNone:"Brez poravnave",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Sem povlecite sliko",dropImage:"Drop image or Text",selectFromFiles:"Izberi sliko za nalaganje",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URL naslov slike",remove:"Odstrani sliko",original:"Original"},video:{video:"Video",videoLink:"Video povezava",insert:"Vstavi video",url:"Povezava do videa",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion ali Youku)"},link:{link:"Povezava",insert:"Vstavi povezavo",unlink:"Odstrani povezavo",edit:"Uredi",textToDisplay:"Prikazano besedilo",url:"Povezava",openInNewWindow:"Odpri v novem oknu"},table:{table:"Tabela",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Vstavi horizontalno črto"},style:{style:"Slogi",p:"Navadno besedilo",blockquote:"Citat",pre:"Koda",h1:"Naslov 1",h2:"Naslov 2",h3:"Naslov 3",h4:"Naslov 4",h5:"Naslov 5",h6:"Naslov 6"},lists:{unordered:"Označen seznam",ordered:"Oštevilčen seznam"},options:{help:"Pomoč",fullscreen:"Celozaslonski način",codeview:"Pregled HTML kode"},paragraph:{paragraph:"Slogi odstavka",outdent:"Zmanjšaj odmik",indent:"Povečaj odmik",left:"Leva poravnava",center:"Desna poravnava",right:"Sredinska poravnava",justify:"Obojestranska poravnava"},color:{recent:"Uporabi zadnjo barvo",more:"Več barv",background:"Barva ozadja",foreground:"Barva besedila",transparent:"Brez barve",setTransparent:"Brez barve",reset:"Ponastavi",resetToDefault:"Ponastavi na privzeto"},shortcut:{shortcuts:"Bljižnice",close:"Zapri",textFormatting:"Oblikovanje besedila",action:"Dejanja",paragraphFormatting:"Oblikovanje odstavka",documentStyle:"Oblikovanje naslova",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Razveljavi",redo:"Uveljavi"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-sl-SI.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-sl-SI.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-sl-SI.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-sr-RS-Latin.js b/common/lib/summernote/lang/summernote-sr-RS-Latin.js new file mode 100644 index 0000000..2a7ae11 --- /dev/null +++ b/common/lib/summernote/lang/summernote-sr-RS-Latin.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 40); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 40: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'sr-RS': { + font: { + bold: 'Podebljano', + italic: 'Kurziv', + underline: 'Podvučeno', + clear: 'Ukloni stilove fonta', + height: 'Visina linije', + name: 'Font Family', + strikethrough: 'Precrtano', + subscript: 'Subscript', + superscript: 'Superscript', + size: 'Veličina fonta' + }, + image: { + image: 'Slika', + insert: 'Umetni sliku', + resizeFull: 'Puna veličina', + resizeHalf: 'Umanji na 50%', + resizeQuarter: 'Umanji na 25%', + floatLeft: 'Uz levu ivicu', + floatRight: 'Uz desnu ivicu', + floatNone: 'Bez ravnanja', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'Prevuci sliku ovde', + dropImage: 'Drop image or Text', + selectFromFiles: 'Izaberi iz datoteke', + maximumFileSize: 'Maximum file size', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'Adresa slike', + remove: 'Ukloni sliku', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Veza ka videu', + insert: 'Umetni video', + url: 'URL video', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ili Youku)' + }, + link: { + link: 'Veza', + insert: 'Umetni vezu', + unlink: 'Ukloni vezu', + edit: 'Uredi', + textToDisplay: 'Tekst za prikaz', + url: 'Internet adresa', + openInNewWindow: 'Otvori u novom prozoru' + }, + table: { + table: 'Tabela', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Umetni horizontalnu liniju' + }, + style: { + style: 'Stil', + p: 'pni', + blockquote: 'Citat', + pre: 'Kod', + h1: 'Zaglavlje 1', + h2: 'Zaglavlje 2', + h3: 'Zaglavlje 3', + h4: 'Zaglavlje 4', + h5: 'Zaglavlje 5', + h6: 'Zaglavlje 6' + }, + lists: { + unordered: 'Obična lista', + ordered: 'Numerisana lista' + }, + options: { + help: 'Pomoć', + fullscreen: 'Preko celog ekrana', + codeview: 'Izvorni kod' + }, + paragraph: { + paragraph: 'Paragraf', + outdent: 'Smanji uvlačenje', + indent: 'Povečaj uvlačenje', + left: 'Poravnaj u levo', + center: 'Centrirano', + right: 'Poravnaj u desno', + justify: 'Poravnaj obostrano' + }, + color: { + recent: 'Poslednja boja', + more: 'Više boja', + background: 'Boja pozadine', + foreground: 'Boja teksta', + transparent: 'Providna', + setTransparent: 'Providna', + reset: 'Opoziv', + resetToDefault: 'Podrazumevana' + }, + shortcut: { + shortcuts: 'Prečice sa tastature', + close: 'Zatvori', + textFormatting: 'Formatiranje teksta', + action: 'Akcija', + paragraphFormatting: 'Formatiranje paragrafa', + documentStyle: 'Stil dokumenta', + extraKeys: 'Dodatne kombinacije' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'Poništi', + redo: 'Ponovi' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-sr-RS-Latin.min.js b/common/lib/summernote/lang/summernote-sr-RS-Latin.min.js new file mode 100644 index 0000000..5ae0a7c --- /dev/null +++ b/common/lib/summernote/lang/summernote-sr-RS-Latin.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-sr-RS-Latin.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var a=t();for(var r in a)("object"==typeof exports?exports:e)[r]=a[r]}}(window,(function(){return function(e){var t={};function a(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,a),o.l=!0,o.exports}return a.m=e,a.c=t,a.d=function(e,t,r){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(a.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)a.d(r,o,function(t){return e[t]}.bind(null,o));return r},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=40)}({40:function(e,t){var a;(a=jQuery).extend(a.summernote.lang,{"sr-RS":{font:{bold:"Podebljano",italic:"Kurziv",underline:"Podvučeno",clear:"Ukloni stilove fonta",height:"Visina linije",name:"Font Family",strikethrough:"Precrtano",subscript:"Subscript",superscript:"Superscript",size:"Veličina fonta"},image:{image:"Slika",insert:"Umetni sliku",resizeFull:"Puna veličina",resizeHalf:"Umanji na 50%",resizeQuarter:"Umanji na 25%",floatLeft:"Uz levu ivicu",floatRight:"Uz desnu ivicu",floatNone:"Bez ravnanja",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Prevuci sliku ovde",dropImage:"Drop image or Text",selectFromFiles:"Izaberi iz datoteke",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Adresa slike",remove:"Ukloni sliku",original:"Original"},video:{video:"Video",videoLink:"Veza ka videu",insert:"Umetni video",url:"URL video",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion ili Youku)"},link:{link:"Veza",insert:"Umetni vezu",unlink:"Ukloni vezu",edit:"Uredi",textToDisplay:"Tekst za prikaz",url:"Internet adresa",openInNewWindow:"Otvori u novom prozoru"},table:{table:"Tabela",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Umetni horizontalnu liniju"},style:{style:"Stil",p:"pni",blockquote:"Citat",pre:"Kod",h1:"Zaglavlje 1",h2:"Zaglavlje 2",h3:"Zaglavlje 3",h4:"Zaglavlje 4",h5:"Zaglavlje 5",h6:"Zaglavlje 6"},lists:{unordered:"Obična lista",ordered:"Numerisana lista"},options:{help:"Pomoć",fullscreen:"Preko celog ekrana",codeview:"Izvorni kod"},paragraph:{paragraph:"Paragraf",outdent:"Smanji uvlačenje",indent:"Povečaj uvlačenje",left:"Poravnaj u levo",center:"Centrirano",right:"Poravnaj u desno",justify:"Poravnaj obostrano"},color:{recent:"Poslednja boja",more:"Više boja",background:"Boja pozadine",foreground:"Boja teksta",transparent:"Providna",setTransparent:"Providna",reset:"Opoziv",resetToDefault:"Podrazumevana"},shortcut:{shortcuts:"Prečice sa tastature",close:"Zatvori",textFormatting:"Formatiranje teksta",action:"Akcija",paragraphFormatting:"Formatiranje paragrafa",documentStyle:"Stil dokumenta",extraKeys:"Dodatne kombinacije"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Poništi",redo:"Ponovi"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-sr-RS-Latin.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-sr-RS-Latin.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-sr-RS-Latin.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-sr-RS.js b/common/lib/summernote/lang/summernote-sr-RS.js new file mode 100644 index 0000000..ee253ee --- /dev/null +++ b/common/lib/summernote/lang/summernote-sr-RS.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 41); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 41: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'sr-RS': { + font: { + bold: 'Подебљано', + italic: 'Курзив', + underline: 'Подвучено', + clear: 'Уклони стилове фонта', + height: 'Висина линије', + name: 'Font Family', + strikethrough: 'Прецртано', + subscript: 'Subscript', + superscript: 'Superscript', + size: 'Величина фонта' + }, + image: { + image: 'Слика', + insert: 'Уметни слику', + resizeFull: 'Пуна величина', + resizeHalf: 'Умањи на 50%', + resizeQuarter: 'Умањи на 25%', + floatLeft: 'Уз леву ивицу', + floatRight: 'Уз десну ивицу', + floatNone: 'Без равнања', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'Превуци слику овде', + dropImage: 'Drop image or Text', + selectFromFiles: 'Изабери из датотеке', + maximumFileSize: 'Maximum file size', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'Адреса слике', + remove: 'Уклони слику', + original: 'Original' + }, + video: { + video: 'Видео', + videoLink: 'Веза ка видеу', + insert: 'Уметни видео', + url: 'URL видео', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)' + }, + link: { + link: 'Веза', + insert: 'Уметни везу', + unlink: 'Уклони везу', + edit: 'Уреди', + textToDisplay: 'Текст за приказ', + url: 'Интернет адреса', + openInNewWindow: 'Отвори у новом прозору' + }, + table: { + table: 'Табела', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Уметни хоризонталну линију' + }, + style: { + style: 'Стил', + p: 'Нормални', + blockquote: 'Цитат', + pre: 'Код', + h1: 'Заглавље 1', + h2: 'Заглавље 2', + h3: 'Заглавље 3', + h4: 'Заглавље 4', + h5: 'Заглавље 5', + h6: 'Заглавље 6' + }, + lists: { + unordered: 'Обична листа', + ordered: 'Нумерисана листа' + }, + options: { + help: 'Помоћ', + fullscreen: 'Преко целог екрана', + codeview: 'Изворни код' + }, + paragraph: { + paragraph: 'Параграф', + outdent: 'Смањи увлачење', + indent: 'Повечај увлачење', + left: 'Поравнај у лево', + center: 'Центрирано', + right: 'Поравнај у десно', + justify: 'Поравнај обострано' + }, + color: { + recent: 'Последња боја', + more: 'Више боја', + background: 'Боја позадине', + foreground: 'Боја текста', + transparent: 'Провидна', + setTransparent: 'Провидна', + reset: 'Опозив', + resetToDefault: 'Подразумевана' + }, + shortcut: { + shortcuts: 'Пречице са тастатуре', + close: 'Затвори', + textFormatting: 'Форматирање текста', + action: 'Акција', + paragraphFormatting: 'Форматирање параграфа', + documentStyle: 'Стил документа', + extraKeys: 'Додатне комбинације' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'Поништи', + redo: 'Понови' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-sr-RS.min.js b/common/lib/summernote/lang/summernote-sr-RS.min.js new file mode 100644 index 0000000..242b9d1 --- /dev/null +++ b/common/lib/summernote/lang/summernote-sr-RS.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-sr-RS.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=41)}({41:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"sr-RS":{font:{bold:"Подебљано",italic:"Курзив",underline:"Подвучено",clear:"Уклони стилове фонта",height:"Висина линије",name:"Font Family",strikethrough:"Прецртано",subscript:"Subscript",superscript:"Superscript",size:"Величина фонта"},image:{image:"Слика",insert:"Уметни слику",resizeFull:"Пуна величина",resizeHalf:"Умањи на 50%",resizeQuarter:"Умањи на 25%",floatLeft:"Уз леву ивицу",floatRight:"Уз десну ивицу",floatNone:"Без равнања",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Превуци слику овде",dropImage:"Drop image or Text",selectFromFiles:"Изабери из датотеке",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Адреса слике",remove:"Уклони слику",original:"Original"},video:{video:"Видео",videoLink:"Веза ка видеу",insert:"Уметни видео",url:"URL видео",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)"},link:{link:"Веза",insert:"Уметни везу",unlink:"Уклони везу",edit:"Уреди",textToDisplay:"Текст за приказ",url:"Интернет адреса",openInNewWindow:"Отвори у новом прозору"},table:{table:"Табела",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Уметни хоризонталну линију"},style:{style:"Стил",p:"Нормални",blockquote:"Цитат",pre:"Код",h1:"Заглавље 1",h2:"Заглавље 2",h3:"Заглавље 3",h4:"Заглавље 4",h5:"Заглавље 5",h6:"Заглавље 6"},lists:{unordered:"Обична листа",ordered:"Нумерисана листа"},options:{help:"Помоћ",fullscreen:"Преко целог екрана",codeview:"Изворни код"},paragraph:{paragraph:"Параграф",outdent:"Смањи увлачење",indent:"Повечај увлачење",left:"Поравнај у лево",center:"Центрирано",right:"Поравнај у десно",justify:"Поравнај обострано"},color:{recent:"Последња боја",more:"Више боја",background:"Боја позадине",foreground:"Боја текста",transparent:"Провидна",setTransparent:"Провидна",reset:"Опозив",resetToDefault:"Подразумевана"},shortcut:{shortcuts:"Пречице са тастатуре",close:"Затвори",textFormatting:"Форматирање текста",action:"Акција",paragraphFormatting:"Форматирање параграфа",documentStyle:"Стил документа",extraKeys:"Додатне комбинације"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Поништи",redo:"Понови"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-sr-RS.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-sr-RS.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-sr-RS.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-sv-SE.js b/common/lib/summernote/lang/summernote-sv-SE.js new file mode 100644 index 0000000..3b67b27 --- /dev/null +++ b/common/lib/summernote/lang/summernote-sv-SE.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 42); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 42: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'sv-SE': { + font: { + bold: 'Fet', + italic: 'Kursiv', + underline: 'Understruken', + clear: 'Radera formatering', + height: 'Radavstånd', + name: 'Teckensnitt', + strikethrough: 'Genomstruken', + subscript: 'Subscript', + superscript: 'Superscript', + size: 'Teckenstorlek' + }, + image: { + image: 'Bild', + insert: 'Infoga bild', + resizeFull: 'Full storlek', + resizeHalf: 'Halv storlek', + resizeQuarter: 'En fjärdedel i storlek', + floatLeft: 'Vänsterjusterad', + floatRight: 'Högerjusterad', + floatNone: 'Ingen justering', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'Dra en bild hit', + dropImage: 'Drop image or Text', + selectFromFiles: 'Välj från filer', + maximumFileSize: 'Maximum file size', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'Länk till bild', + remove: 'Ta bort bild', + original: 'Original' + }, + video: { + video: 'Filmklipp', + videoLink: 'Länk till filmklipp', + insert: 'Infoga filmklipp', + url: 'Länk till filmklipp', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)' + }, + link: { + link: 'Länk', + insert: 'Infoga länk', + unlink: 'Ta bort länk', + edit: 'Redigera', + textToDisplay: 'Visningstext', + url: 'Till vilken URL ska denna länk peka?', + openInNewWindow: 'Öppna i ett nytt fönster' + }, + table: { + table: 'Tabell', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Infoga horisontell linje' + }, + style: { + style: 'Stil', + p: 'p', + blockquote: 'Citat', + pre: 'Kod', + h1: 'Rubrik 1', + h2: 'Rubrik 2', + h3: 'Rubrik 3', + h4: 'Rubrik 4', + h5: 'Rubrik 5', + h6: 'Rubrik 6' + }, + lists: { + unordered: 'Punktlista', + ordered: 'Numrerad lista' + }, + options: { + help: 'Hjälp', + fullscreen: 'Fullskärm', + codeview: 'HTML-visning' + }, + paragraph: { + paragraph: 'Justera text', + outdent: 'Minska indrag', + indent: 'Öka indrag', + left: 'Vänsterjusterad', + center: 'Centrerad', + right: 'Högerjusterad', + justify: 'Justera text' + }, + color: { + recent: 'Senast använda färg', + more: 'Fler färger', + background: 'Bakgrundsfärg', + foreground: 'Teckenfärg', + transparent: 'Genomskinlig', + setTransparent: 'Gör genomskinlig', + reset: 'Nollställ', + resetToDefault: 'Återställ till standard' + }, + shortcut: { + shortcuts: 'Kortkommandon', + close: 'Stäng', + textFormatting: 'Textformatering', + action: 'Funktion', + paragraphFormatting: 'Avsnittsformatering', + documentStyle: 'Dokumentstil', + extraKeys: 'Extra keys' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'Ångra', + redo: 'Gör om' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-sv-SE.min.js b/common/lib/summernote/lang/summernote-sv-SE.min.js new file mode 100644 index 0000000..be7313c --- /dev/null +++ b/common/lib/summernote/lang/summernote-sv-SE.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-sv-SE.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=42)}({42:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"sv-SE":{font:{bold:"Fet",italic:"Kursiv",underline:"Understruken",clear:"Radera formatering",height:"Radavstånd",name:"Teckensnitt",strikethrough:"Genomstruken",subscript:"Subscript",superscript:"Superscript",size:"Teckenstorlek"},image:{image:"Bild",insert:"Infoga bild",resizeFull:"Full storlek",resizeHalf:"Halv storlek",resizeQuarter:"En fjärdedel i storlek",floatLeft:"Vänsterjusterad",floatRight:"Högerjusterad",floatNone:"Ingen justering",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Dra en bild hit",dropImage:"Drop image or Text",selectFromFiles:"Välj från filer",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Länk till bild",remove:"Ta bort bild",original:"Original"},video:{video:"Filmklipp",videoLink:"Länk till filmklipp",insert:"Infoga filmklipp",url:"Länk till filmklipp",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)"},link:{link:"Länk",insert:"Infoga länk",unlink:"Ta bort länk",edit:"Redigera",textToDisplay:"Visningstext",url:"Till vilken URL ska denna länk peka?",openInNewWindow:"Öppna i ett nytt fönster"},table:{table:"Tabell",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Infoga horisontell linje"},style:{style:"Stil",p:"p",blockquote:"Citat",pre:"Kod",h1:"Rubrik 1",h2:"Rubrik 2",h3:"Rubrik 3",h4:"Rubrik 4",h5:"Rubrik 5",h6:"Rubrik 6"},lists:{unordered:"Punktlista",ordered:"Numrerad lista"},options:{help:"Hjälp",fullscreen:"Fullskärm",codeview:"HTML-visning"},paragraph:{paragraph:"Justera text",outdent:"Minska indrag",indent:"Öka indrag",left:"Vänsterjusterad",center:"Centrerad",right:"Högerjusterad",justify:"Justera text"},color:{recent:"Senast använda färg",more:"Fler färger",background:"Bakgrundsfärg",foreground:"Teckenfärg",transparent:"Genomskinlig",setTransparent:"Gör genomskinlig",reset:"Nollställ",resetToDefault:"Återställ till standard"},shortcut:{shortcuts:"Kortkommandon",close:"Stäng",textFormatting:"Textformatering",action:"Funktion",paragraphFormatting:"Avsnittsformatering",documentStyle:"Dokumentstil",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Ångra",redo:"Gör om"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-sv-SE.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-sv-SE.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-sv-SE.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-ta-IN.js b/common/lib/summernote/lang/summernote-ta-IN.js new file mode 100644 index 0000000..a0cd689 --- /dev/null +++ b/common/lib/summernote/lang/summernote-ta-IN.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 43); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 43: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'ta-IN': { + font: { + bold: 'தடித்த', + italic: 'சாய்வு', + underline: 'அடிக்கோடு', + clear: 'நீக்கு', + height: 'வரி உயரம்', + name: 'எழுத்துரு பெயர்', + strikethrough: 'குறுக்குக் கோடு', + size: 'எழுத்துரு அளவு', + superscript: 'மேல் ஒட்டு', + subscript: 'கீழ் ஒட்டு' + }, + image: { + image: 'படம்', + insert: 'படத்தை செருகு', + resizeFull: 'முழு அளவை', + resizeHalf: 'அரை அளவை', + resizeQuarter: 'கால் அளவை', + floatLeft: 'இடப்பக்கமாக வை', + floatRight: 'வலப்பக்கமாக வை', + floatNone: 'இயல்புநிலையில் வை', + shapeRounded: 'வட்டமான வடிவம்', + shapeCircle: 'வட்ட வடிவம்', + shapeThumbnail: 'சிறு வடிவம்', + shapeNone: 'வடிவத்தை நீக்கு', + dragImageHere: 'படத்தை இங்கே இழுத்துவை', + dropImage: 'படத்தை விடு', + selectFromFiles: 'கோப்புகளை தேர்வு செய்', + maximumFileSize: 'அதிகபட்ச கோப்பு அளவு', + maximumFileSizeError: 'கோப்பு அதிகபட்ச அளவை மீறிவிட்டது', + url: 'இணையதள முகவரி', + remove: 'படத்தை நீக்கு', + original: 'Original' + }, + video: { + video: 'காணொளி', + videoLink: 'காணொளி இணைப்பு', + insert: 'காணொளியை செருகு', + url: 'இணையதள முகவரி', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)' + }, + link: { + link: 'இணைப்பு', + insert: 'இணைப்பை செருகு', + unlink: 'இணைப்பை நீக்கு', + edit: 'இணைப்பை தொகு', + textToDisplay: 'காட்சி வாசகம்', + url: 'இணையதள முகவரி', + openInNewWindow: 'புதிய சாளரத்தில் திறக்க' + }, + table: { + table: 'அட்டவணை', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'கிடைமட்ட கோடு' + }, + style: { + style: 'தொகுப்பு', + p: 'பத்தி', + blockquote: 'மேற்கோள்', + pre: 'குறியீடு', + h1: 'தலைப்பு 1', + h2: 'தலைப்பு 2', + h3: 'தலைப்பு 3', + h4: 'தலைப்பு 4', + h5: 'தலைப்பு 5', + h6: 'தலைப்பு 6' + }, + lists: { + unordered: 'வரிசையிடாத', + ordered: 'வரிசையிட்ட' + }, + options: { + help: 'உதவி', + fullscreen: 'முழுத்திரை', + codeview: 'நிரலாக்க காட்சி' + }, + paragraph: { + paragraph: 'பத்தி', + outdent: 'வெளித்தள்ளு', + indent: 'உள்ளே தள்ளு', + left: 'இடது சீரமைப்பு', + center: 'நடு சீரமைப்பு', + right: 'வலது சீரமைப்பு', + justify: 'இருபுற சீரமைப்பு' + }, + color: { + recent: 'அண்மை நிறம்', + more: 'மேலும்', + background: 'பின்புல நிறம்', + foreground: 'முன்புற நிறம்', + transparent: 'தெளிமையான', + setTransparent: 'தெளிமையாக்கு', + reset: 'மீட்டமைக்க', + resetToDefault: 'இயல்புநிலைக்கு மீட்டமை' + }, + shortcut: { + shortcuts: 'குறுக்குவழி', + close: 'மூடு', + textFormatting: 'எழுத்து வடிவமைப்பு', + action: 'செயல்படுத்து', + paragraphFormatting: 'பத்தி வடிவமைப்பு', + documentStyle: 'ஆவண பாணி', + extraKeys: 'Extra keys' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'மீளமை', + redo: 'மீண்டும்' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-ta-IN.min.js b/common/lib/summernote/lang/summernote-ta-IN.min.js new file mode 100644 index 0000000..a5055fe --- /dev/null +++ b/common/lib/summernote/lang/summernote-ta-IN.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-ta-IN.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=43)}({43:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"ta-IN":{font:{bold:"தடித்த",italic:"சாய்வு",underline:"அடிக்கோடு",clear:"நீக்கு",height:"வரி உயரம்",name:"எழுத்துரு பெயர்",strikethrough:"குறுக்குக் கோடு",size:"எழுத்துரு அளவு",superscript:"மேல் ஒட்டு",subscript:"கீழ் ஒட்டு"},image:{image:"படம்",insert:"படத்தை செருகு",resizeFull:"முழு அளவை",resizeHalf:"அரை அளவை",resizeQuarter:"கால் அளவை",floatLeft:"இடப்பக்கமாக வை",floatRight:"வலப்பக்கமாக வை",floatNone:"இயல்புநிலையில் வை",shapeRounded:"வட்டமான வடிவம்",shapeCircle:"வட்ட வடிவம்",shapeThumbnail:"சிறு வடிவம்",shapeNone:"வடிவத்தை நீக்கு",dragImageHere:"படத்தை இங்கே இழுத்துவை",dropImage:"படத்தை விடு",selectFromFiles:"கோப்புகளை தேர்வு செய்",maximumFileSize:"அதிகபட்ச கோப்பு அளவு",maximumFileSizeError:"கோப்பு அதிகபட்ச அளவை மீறிவிட்டது",url:"இணையதள முகவரி",remove:"படத்தை நீக்கு",original:"Original"},video:{video:"காணொளி",videoLink:"காணொளி இணைப்பு",insert:"காணொளியை செருகு",url:"இணையதள முகவரி",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)"},link:{link:"இணைப்பு",insert:"இணைப்பை செருகு",unlink:"இணைப்பை நீக்கு",edit:"இணைப்பை தொகு",textToDisplay:"காட்சி வாசகம்",url:"இணையதள முகவரி",openInNewWindow:"புதிய சாளரத்தில் திறக்க"},table:{table:"அட்டவணை",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"கிடைமட்ட கோடு"},style:{style:"தொகுப்பு",p:"பத்தி",blockquote:"மேற்கோள்",pre:"குறியீடு",h1:"தலைப்பு 1",h2:"தலைப்பு 2",h3:"தலைப்பு 3",h4:"தலைப்பு 4",h5:"தலைப்பு 5",h6:"தலைப்பு 6"},lists:{unordered:"வரிசையிடாத",ordered:"வரிசையிட்ட"},options:{help:"உதவி",fullscreen:"முழுத்திரை",codeview:"நிரலாக்க காட்சி"},paragraph:{paragraph:"பத்தி",outdent:"வெளித்தள்ளு",indent:"உள்ளே தள்ளு",left:"இடது சீரமைப்பு",center:"நடு சீரமைப்பு",right:"வலது சீரமைப்பு",justify:"இருபுற சீரமைப்பு"},color:{recent:"அண்மை நிறம்",more:"மேலும்",background:"பின்புல நிறம்",foreground:"முன்புற நிறம்",transparent:"தெளிமையான",setTransparent:"தெளிமையாக்கு",reset:"மீட்டமைக்க",resetToDefault:"இயல்புநிலைக்கு மீட்டமை"},shortcut:{shortcuts:"குறுக்குவழி",close:"மூடு",textFormatting:"எழுத்து வடிவமைப்பு",action:"செயல்படுத்து",paragraphFormatting:"பத்தி வடிவமைப்பு",documentStyle:"ஆவண பாணி",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"மீளமை",redo:"மீண்டும்"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-ta-IN.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-ta-IN.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-ta-IN.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-th-TH.js b/common/lib/summernote/lang/summernote-th-TH.js new file mode 100644 index 0000000..f1b5aa0 --- /dev/null +++ b/common/lib/summernote/lang/summernote-th-TH.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 44); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 44: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'th-TH': { + font: { + bold: 'ตัวหนา', + italic: 'ตัวเอียง', + underline: 'ขีดเส้นใต้', + clear: 'ล้างรูปแบบตัวอักษร', + height: 'ความสูงบรรทัด', + name: 'แบบตัวอักษร', + strikethrough: 'ขีดฆ่า', + subscript: 'ตัวห้อย', + superscript: 'ตัวยก', + size: 'ขนาดตัวอักษร' + }, + image: { + image: 'รูปภาพ', + insert: 'แทรกรูปภาพ', + resizeFull: 'ปรับขนาดเท่าจริง', + resizeHalf: 'ปรับขนาดลง 50%', + resizeQuarter: 'ปรับขนาดลง 25%', + floatLeft: 'ชิดซ้าย', + floatRight: 'ชิดขวา', + floatNone: 'ไม่จัดตำแหน่ง', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'ลากรูปภาพที่ต้องการไว้ที่นี่', + dropImage: 'วางรูปภาพหรือข้อความ', + selectFromFiles: 'เลือกไฟล์รูปภาพ', + maximumFileSize: 'ขนาดไฟล์ใหญ่สุด', + maximumFileSizeError: 'ไฟล์เกินขนาดที่กำหนด', + url: 'ที่อยู่ URL ของรูปภาพ', + remove: 'ลบรูปภาพ', + original: 'Original' + }, + video: { + video: 'วีดีโอ', + videoLink: 'ลิงก์ของวีดีโอ', + insert: 'แทรกวีดีโอ', + url: 'ที่อยู่ URL ของวีดีโอ', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion หรือ Youku)' + }, + link: { + link: 'ตัวเชื่อมโยง', + insert: 'แทรกตัวเชื่อมโยง', + unlink: 'ยกเลิกตัวเชื่อมโยง', + edit: 'แก้ไข', + textToDisplay: 'ข้อความที่ให้แสดง', + url: 'ที่อยู่เว็บไซต์ที่ต้องการให้เชื่อมโยงไปถึง?', + openInNewWindow: 'เปิดในหน้าต่างใหม่' + }, + table: { + table: 'ตาราง', + addRowAbove: 'เพิ่มแถวด้านบน', + addRowBelow: 'เพิ่มแถวด้านล่าง', + addColLeft: 'เพิ่มคอลัมน์ด้านซ้าย', + addColRight: 'เพิ่มคอลัมน์ด้านขวา', + delRow: 'ลบแถว', + delCol: 'ลบคอลัมน์', + delTable: 'ลบตาราง' + }, + hr: { + insert: 'แทรกเส้นคั่น' + }, + style: { + style: 'รูปแบบ', + p: 'ปกติ', + blockquote: 'ข้อความ', + pre: 'โค้ด', + h1: 'หัวข้อ 1', + h2: 'หัวข้อ 2', + h3: 'หัวข้อ 3', + h4: 'หัวข้อ 4', + h5: 'หัวข้อ 5', + h6: 'หัวข้อ 6' + }, + lists: { + unordered: 'รายการแบบไม่มีลำดับ', + ordered: 'รายการแบบมีลำดับ' + }, + options: { + help: 'ช่วยเหลือ', + fullscreen: 'ขยายเต็มหน้าจอ', + codeview: 'ซอร์สโค้ด' + }, + paragraph: { + paragraph: 'ย่อหน้า', + outdent: 'เยื้องซ้าย', + indent: 'เยื้องขวา', + left: 'จัดหน้าชิดซ้าย', + center: 'จัดหน้ากึ่งกลาง', + right: 'จัดหน้าชิดขวา', + justify: 'จัดบรรทัดเสมอกัน' + }, + color: { + recent: 'สีที่ใช้ล่าสุด', + more: 'สีอื่นๆ', + background: 'สีพื้นหลัง', + foreground: 'สีพื้นหน้า', + transparent: 'โปร่งแสง', + setTransparent: 'ตั้งค่าความโปร่งแสง', + reset: 'คืนค่า', + resetToDefault: 'คืนค่ามาตรฐาน' + }, + shortcut: { + shortcuts: 'แป้นลัด', + close: 'ปิด', + textFormatting: 'การจัดรูปแบบข้อความ', + action: 'การกระทำ', + paragraphFormatting: 'การจัดรูปแบบย่อหน้า', + documentStyle: 'รูปแบบของเอกสาร', + extraKeys: 'Extra keys' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'ทำตัวหนา', + 'italic': 'ทำตัวเอียง', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H1', + 'formatH2': 'เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H2', + 'formatH3': 'เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H3', + 'formatH4': 'เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H4', + 'formatH5': 'เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H5', + 'formatH6': 'เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'เปิดหน้าแก้ไข Link' + }, + history: { + undo: 'ยกเลิกการกระทำ', + redo: 'ทำซ้ำการกระทำ' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-th-TH.min.js b/common/lib/summernote/lang/summernote-th-TH.min.js new file mode 100644 index 0000000..569b721 --- /dev/null +++ b/common/lib/summernote/lang/summernote-th-TH.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-th-TH.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=44)}({44:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"th-TH":{font:{bold:"ตัวหนา",italic:"ตัวเอียง",underline:"ขีดเส้นใต้",clear:"ล้างรูปแบบตัวอักษร",height:"ความสูงบรรทัด",name:"แบบตัวอักษร",strikethrough:"ขีดฆ่า",subscript:"ตัวห้อย",superscript:"ตัวยก",size:"ขนาดตัวอักษร"},image:{image:"รูปภาพ",insert:"แทรกรูปภาพ",resizeFull:"ปรับขนาดเท่าจริง",resizeHalf:"ปรับขนาดลง 50%",resizeQuarter:"ปรับขนาดลง 25%",floatLeft:"ชิดซ้าย",floatRight:"ชิดขวา",floatNone:"ไม่จัดตำแหน่ง",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"ลากรูปภาพที่ต้องการไว้ที่นี่",dropImage:"วางรูปภาพหรือข้อความ",selectFromFiles:"เลือกไฟล์รูปภาพ",maximumFileSize:"ขนาดไฟล์ใหญ่สุด",maximumFileSizeError:"ไฟล์เกินขนาดที่กำหนด",url:"ที่อยู่ URL ของรูปภาพ",remove:"ลบรูปภาพ",original:"Original"},video:{video:"วีดีโอ",videoLink:"ลิงก์ของวีดีโอ",insert:"แทรกวีดีโอ",url:"ที่อยู่ URL ของวีดีโอ",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion หรือ Youku)"},link:{link:"ตัวเชื่อมโยง",insert:"แทรกตัวเชื่อมโยง",unlink:"ยกเลิกตัวเชื่อมโยง",edit:"แก้ไข",textToDisplay:"ข้อความที่ให้แสดง",url:"ที่อยู่เว็บไซต์ที่ต้องการให้เชื่อมโยงไปถึง?",openInNewWindow:"เปิดในหน้าต่างใหม่"},table:{table:"ตาราง",addRowAbove:"เพิ่มแถวด้านบน",addRowBelow:"เพิ่มแถวด้านล่าง",addColLeft:"เพิ่มคอลัมน์ด้านซ้าย",addColRight:"เพิ่มคอลัมน์ด้านขวา",delRow:"ลบแถว",delCol:"ลบคอลัมน์",delTable:"ลบตาราง"},hr:{insert:"แทรกเส้นคั่น"},style:{style:"รูปแบบ",p:"ปกติ",blockquote:"ข้อความ",pre:"โค้ด",h1:"หัวข้อ 1",h2:"หัวข้อ 2",h3:"หัวข้อ 3",h4:"หัวข้อ 4",h5:"หัวข้อ 5",h6:"หัวข้อ 6"},lists:{unordered:"รายการแบบไม่มีลำดับ",ordered:"รายการแบบมีลำดับ"},options:{help:"ช่วยเหลือ",fullscreen:"ขยายเต็มหน้าจอ",codeview:"ซอร์สโค้ด"},paragraph:{paragraph:"ย่อหน้า",outdent:"เยื้องซ้าย",indent:"เยื้องขวา",left:"จัดหน้าชิดซ้าย",center:"จัดหน้ากึ่งกลาง",right:"จัดหน้าชิดขวา",justify:"จัดบรรทัดเสมอกัน"},color:{recent:"สีที่ใช้ล่าสุด",more:"สีอื่นๆ",background:"สีพื้นหลัง",foreground:"สีพื้นหน้า",transparent:"โปร่งแสง",setTransparent:"ตั้งค่าความโปร่งแสง",reset:"คืนค่า",resetToDefault:"คืนค่ามาตรฐาน"},shortcut:{shortcuts:"แป้นลัด",close:"ปิด",textFormatting:"การจัดรูปแบบข้อความ",action:"การกระทำ",paragraphFormatting:"การจัดรูปแบบย่อหน้า",documentStyle:"รูปแบบของเอกสาร",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"ทำตัวหนา",italic:"ทำตัวเอียง",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H1",formatH2:"เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H2",formatH3:"เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H3",formatH4:"เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H4",formatH5:"เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H5",formatH6:"เปลี่ยนรูปแบบบล็อคปัจจุบันเป็น H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"เปิดหน้าแก้ไข Link"},history:{undo:"ยกเลิกการกระทำ",redo:"ทำซ้ำการกระทำ"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-th-TH.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-th-TH.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-th-TH.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-tr-TR.js b/common/lib/summernote/lang/summernote-tr-TR.js new file mode 100644 index 0000000..52390be --- /dev/null +++ b/common/lib/summernote/lang/summernote-tr-TR.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 45); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 45: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'tr-TR': { + font: { + bold: 'Kalın', + italic: 'İtalik', + underline: 'Altı çizili', + clear: 'Temizle', + height: 'Satır yüksekliği', + name: 'Yazı Tipi', + strikethrough: 'Üstü çizili', + subscript: 'Alt Simge', + superscript: 'Üst Simge', + size: 'Yazı tipi boyutu' + }, + image: { + image: 'Resim', + insert: 'Resim ekle', + resizeFull: 'Orjinal boyut', + resizeHalf: '1/2 boyut', + resizeQuarter: '1/4 boyut', + floatLeft: 'Sola hizala', + floatRight: 'Sağa hizala', + floatNone: 'Hizalamayı kaldır', + shapeRounded: 'Şekil: Yuvarlatılmış Köşe', + shapeCircle: 'Şekil: Daire', + shapeThumbnail: 'Şekil: K.Resim', + shapeNone: 'Şekil: Yok', + dragImageHere: 'Buraya sürükleyin', + dropImage: 'Resim veya metni bırakın', + selectFromFiles: 'Dosya seçin', + maximumFileSize: 'Maksimum dosya boyutu', + maximumFileSizeError: 'Maksimum dosya boyutu aşıldı.', + url: 'Resim bağlantısı', + remove: 'Resimi Kaldır', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Video bağlantısı', + insert: 'Video ekle', + url: 'Video bağlantısı?', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion veya Youku)' + }, + link: { + link: 'Bağlantı', + insert: 'Bağlantı ekle', + unlink: 'Bağlantıyı kaldır', + edit: 'Bağlantıyı düzenle', + textToDisplay: 'Görüntülemek için', + url: 'Bağlantı adresi?', + openInNewWindow: 'Yeni pencerede aç' + }, + table: { + table: 'Tablo', + addRowAbove: 'Yukarı satır ekle', + addRowBelow: 'Aşağı satır ekle', + addColLeft: 'Sola sütun ekle', + addColRight: 'Sağa sütun ekle', + delRow: 'Satırı sil', + delCol: 'Sütunu sil', + delTable: 'Tabloyu sil' + }, + hr: { + insert: 'Yatay çizgi ekle' + }, + style: { + style: 'Biçim', + p: 'p', + blockquote: 'Alıntı', + pre: 'Önbiçimli', + h1: 'Başlık 1', + h2: 'Başlık 2', + h3: 'Başlık 3', + h4: 'Başlık 4', + h5: 'Başlık 5', + h6: 'Başlık 6' + }, + lists: { + unordered: 'Madde işaretli liste', + ordered: 'Numaralı liste' + }, + options: { + help: 'Yardım', + fullscreen: 'Tam ekran', + codeview: 'HTML Kodu' + }, + paragraph: { + paragraph: 'Paragraf', + outdent: 'Girintiyi artır', + indent: 'Girintiyi azalt', + left: 'Sola hizala', + center: 'Ortaya hizala', + right: 'Sağa hizala', + justify: 'Yasla' + }, + color: { + recent: 'Son renk', + more: 'Daha fazla renk', + background: 'Arka plan rengi', + foreground: 'Yazı rengi', + transparent: 'Seffaflık', + setTransparent: 'Şeffaflığı ayarla', + reset: 'Sıfırla', + resetToDefault: 'Varsayılanlara sıfırla' + }, + shortcut: { + shortcuts: 'Kısayollar', + close: 'Kapat', + textFormatting: 'Yazı biçimlendirme', + action: 'Eylem', + paragraphFormatting: 'Paragraf biçimlendirme', + documentStyle: 'Biçim', + extraKeys: 'İlave anahtarlar' + }, + help: { + 'insertParagraph': 'Paragraf ekler', + 'undo': 'Son komudu geri alır', + 'redo': 'Son komudu yineler', + 'tab': 'Girintiyi artırır', + 'untab': 'Girintiyi azaltır', + 'bold': 'Kalın yazma stilini ayarlar', + 'italic': 'İtalik yazma stilini ayarlar', + 'underline': 'Altı çizgili yazma stilini ayarlar', + 'strikethrough': 'Üstü çizgili yazma stilini ayarlar', + 'removeFormat': 'Biçimlendirmeyi temizler', + 'justifyLeft': 'Yazıyı sola hizalar', + 'justifyCenter': 'Yazıyı ortalar', + 'justifyRight': 'Yazıyı sağa hizalar', + 'justifyFull': 'Yazıyı her iki tarafa yazlar', + 'insertUnorderedList': 'Madde işaretli liste ekler', + 'insertOrderedList': 'Numaralı liste ekler', + 'outdent': 'Aktif paragrafın girintisini azaltır', + 'indent': 'Aktif paragrafın girintisini artırır', + 'formatPara': 'Aktif bloğun biçimini paragraf (p) olarak değiştirir', + 'formatH1': 'Aktif bloğun biçimini başlık 1 (h1) olarak değiştirir', + 'formatH2': 'Aktif bloğun biçimini başlık 2 (h2) olarak değiştirir', + 'formatH3': 'Aktif bloğun biçimini başlık 3 (h3) olarak değiştirir', + 'formatH4': 'Aktif bloğun biçimini başlık 4 (h4) olarak değiştirir', + 'formatH5': 'Aktif bloğun biçimini başlık 5 (h5) olarak değiştirir', + 'formatH6': 'Aktif bloğun biçimini başlık 6 (h6) olarak değiştirir', + 'insertHorizontalRule': 'Yatay çizgi ekler', + 'linkDialog.show': 'Bağlantı ayar kutusunu gösterir' + }, + history: { + undo: 'Geri al', + redo: 'Yinele' + }, + specialChar: { + specialChar: 'ÖZEL KARAKTERLER', + select: 'Özel Karakterleri seçin' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-tr-TR.min.js b/common/lib/summernote/lang/summernote-tr-TR.min.js new file mode 100644 index 0000000..d123ee9 --- /dev/null +++ b/common/lib/summernote/lang/summernote-tr-TR.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-tr-TR.min.js.LICENSE.txt */ +!function(e,a){if("object"==typeof exports&&"object"==typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var i=a();for(var r in i)("object"==typeof exports?exports:e)[r]=i[r]}}(window,(function(){return function(e){var a={};function i(r){if(a[r])return a[r].exports;var t=a[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}return i.m=e,i.c=a,i.d=function(e,a,r){i.o(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:r})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,a){if(1&a&&(e=i(e)),8&a)return e;if(4&a&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&a&&"string"!=typeof e)for(var t in e)i.d(r,t,function(a){return e[a]}.bind(null,t));return r},i.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(a,"a",a),a},i.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},i.p="",i(i.s=45)}({45:function(e,a){var i;(i=jQuery).extend(i.summernote.lang,{"tr-TR":{font:{bold:"Kalın",italic:"İtalik",underline:"Altı çizili",clear:"Temizle",height:"Satır yüksekliği",name:"Yazı Tipi",strikethrough:"Üstü çizili",subscript:"Alt Simge",superscript:"Üst Simge",size:"Yazı tipi boyutu"},image:{image:"Resim",insert:"Resim ekle",resizeFull:"Orjinal boyut",resizeHalf:"1/2 boyut",resizeQuarter:"1/4 boyut",floatLeft:"Sola hizala",floatRight:"Sağa hizala",floatNone:"Hizalamayı kaldır",shapeRounded:"Şekil: Yuvarlatılmış Köşe",shapeCircle:"Şekil: Daire",shapeThumbnail:"Şekil: K.Resim",shapeNone:"Şekil: Yok",dragImageHere:"Buraya sürükleyin",dropImage:"Resim veya metni bırakın",selectFromFiles:"Dosya seçin",maximumFileSize:"Maksimum dosya boyutu",maximumFileSizeError:"Maksimum dosya boyutu aşıldı.",url:"Resim bağlantısı",remove:"Resimi Kaldır",original:"Original"},video:{video:"Video",videoLink:"Video bağlantısı",insert:"Video ekle",url:"Video bağlantısı?",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion veya Youku)"},link:{link:"Bağlantı",insert:"Bağlantı ekle",unlink:"Bağlantıyı kaldır",edit:"Bağlantıyı düzenle",textToDisplay:"Görüntülemek için",url:"Bağlantı adresi?",openInNewWindow:"Yeni pencerede aç"},table:{table:"Tablo",addRowAbove:"Yukarı satır ekle",addRowBelow:"Aşağı satır ekle",addColLeft:"Sola sütun ekle",addColRight:"Sağa sütun ekle",delRow:"Satırı sil",delCol:"Sütunu sil",delTable:"Tabloyu sil"},hr:{insert:"Yatay çizgi ekle"},style:{style:"Biçim",p:"p",blockquote:"Alıntı",pre:"Önbiçimli",h1:"Başlık 1",h2:"Başlık 2",h3:"Başlık 3",h4:"Başlık 4",h5:"Başlık 5",h6:"Başlık 6"},lists:{unordered:"Madde işaretli liste",ordered:"Numaralı liste"},options:{help:"Yardım",fullscreen:"Tam ekran",codeview:"HTML Kodu"},paragraph:{paragraph:"Paragraf",outdent:"Girintiyi artır",indent:"Girintiyi azalt",left:"Sola hizala",center:"Ortaya hizala",right:"Sağa hizala",justify:"Yasla"},color:{recent:"Son renk",more:"Daha fazla renk",background:"Arka plan rengi",foreground:"Yazı rengi",transparent:"Seffaflık",setTransparent:"Şeffaflığı ayarla",reset:"Sıfırla",resetToDefault:"Varsayılanlara sıfırla"},shortcut:{shortcuts:"Kısayollar",close:"Kapat",textFormatting:"Yazı biçimlendirme",action:"Eylem",paragraphFormatting:"Paragraf biçimlendirme",documentStyle:"Biçim",extraKeys:"İlave anahtarlar"},help:{insertParagraph:"Paragraf ekler",undo:"Son komudu geri alır",redo:"Son komudu yineler",tab:"Girintiyi artırır",untab:"Girintiyi azaltır",bold:"Kalın yazma stilini ayarlar",italic:"İtalik yazma stilini ayarlar",underline:"Altı çizgili yazma stilini ayarlar",strikethrough:"Üstü çizgili yazma stilini ayarlar",removeFormat:"Biçimlendirmeyi temizler",justifyLeft:"Yazıyı sola hizalar",justifyCenter:"Yazıyı ortalar",justifyRight:"Yazıyı sağa hizalar",justifyFull:"Yazıyı her iki tarafa yazlar",insertUnorderedList:"Madde işaretli liste ekler",insertOrderedList:"Numaralı liste ekler",outdent:"Aktif paragrafın girintisini azaltır",indent:"Aktif paragrafın girintisini artırır",formatPara:"Aktif bloğun biçimini paragraf (p) olarak değiştirir",formatH1:"Aktif bloğun biçimini başlık 1 (h1) olarak değiştirir",formatH2:"Aktif bloğun biçimini başlık 2 (h2) olarak değiştirir",formatH3:"Aktif bloğun biçimini başlık 3 (h3) olarak değiştirir",formatH4:"Aktif bloğun biçimini başlık 4 (h4) olarak değiştirir",formatH5:"Aktif bloğun biçimini başlık 5 (h5) olarak değiştirir",formatH6:"Aktif bloğun biçimini başlık 6 (h6) olarak değiştirir",insertHorizontalRule:"Yatay çizgi ekler","linkDialog.show":"Bağlantı ayar kutusunu gösterir"},history:{undo:"Geri al",redo:"Yinele"},specialChar:{specialChar:"ÖZEL KARAKTERLER",select:"Özel Karakterleri seçin"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-tr-TR.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-tr-TR.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-tr-TR.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-uk-UA.js b/common/lib/summernote/lang/summernote-uk-UA.js new file mode 100644 index 0000000..de5b013 --- /dev/null +++ b/common/lib/summernote/lang/summernote-uk-UA.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 46); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 46: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'uk-UA': { + font: { + bold: 'Напівжирний', + italic: 'Курсив', + underline: 'Підкреслений', + clear: 'Прибрати стилі шрифту', + height: 'Висота лінії', + name: 'Шрифт', + strikethrough: 'Закреслений', + subscript: 'Нижній індекс', + superscript: 'Верхній індекс', + size: 'Розмір шрифту' + }, + image: { + image: 'Картинка', + insert: 'Вставити картинку', + resizeFull: 'Відновити розмір', + resizeHalf: 'Зменшити до 50%', + resizeQuarter: 'Зменшити до 25%', + floatLeft: 'Розташувати ліворуч', + floatRight: 'Розташувати праворуч', + floatNone: 'Початкове розташування', + shapeRounded: 'Форма: Заокруглена', + shapeCircle: 'Форма: Коло', + shapeThumbnail: 'Форма: Мініатюра', + shapeNone: 'Форма: Немає', + dragImageHere: 'Перетягніть сюди картинку', + dropImage: 'Перетягніть картинку', + selectFromFiles: 'Вибрати з файлів', + maximumFileSize: 'Maximum file size', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'URL картинки', + remove: 'Видалити картинку', + original: 'Original' + }, + video: { + video: 'Відео', + videoLink: 'Посилання на відео', + insert: 'Вставити відео', + url: 'URL відео', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion чи Youku)' + }, + link: { + link: 'Посилання', + insert: 'Вставити посилання', + unlink: 'Прибрати посилання', + edit: 'Редагувати', + textToDisplay: 'Текст, що відображається', + url: 'URL для переходу', + openInNewWindow: 'Відкривати у новому вікні' + }, + table: { + table: 'Таблиця', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Вставити горизонтальну лінію' + }, + style: { + style: 'Стиль', + p: 'Нормальний', + blockquote: 'Цитата', + pre: 'Код', + h1: 'Заголовок 1', + h2: 'Заголовок 2', + h3: 'Заголовок 3', + h4: 'Заголовок 4', + h5: 'Заголовок 5', + h6: 'Заголовок 6' + }, + lists: { + unordered: 'Маркований список', + ordered: 'Нумерований список' + }, + options: { + help: 'Допомога', + fullscreen: 'На весь екран', + codeview: 'Початковий код' + }, + paragraph: { + paragraph: 'Параграф', + outdent: 'Зменшити відступ', + indent: 'Збільшити відступ', + left: 'Вирівняти по лівому краю', + center: 'Вирівняти по центру', + right: 'Вирівняти по правому краю', + justify: 'Розтягнути по ширині' + }, + color: { + recent: 'Останній колір', + more: 'Ще кольори', + background: 'Колір фону', + foreground: 'Колір шрифту', + transparent: 'Прозорий', + setTransparent: 'Зробити прозорим', + reset: 'Відновити', + resetToDefault: 'Відновити початкові' + }, + shortcut: { + shortcuts: 'Комбінації клавіш', + close: 'Закрити', + textFormatting: 'Форматування тексту', + action: 'Дія', + paragraphFormatting: 'Форматування параграфу', + documentStyle: 'Стиль документу', + extraKeys: 'Extra keys' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'Відмінити', + redo: 'Повторити' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-uk-UA.min.js b/common/lib/summernote/lang/summernote-uk-UA.min.js new file mode 100644 index 0000000..b567e18 --- /dev/null +++ b/common/lib/summernote/lang/summernote-uk-UA.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-uk-UA.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=46)}({46:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"uk-UA":{font:{bold:"Напівжирний",italic:"Курсив",underline:"Підкреслений",clear:"Прибрати стилі шрифту",height:"Висота лінії",name:"Шрифт",strikethrough:"Закреслений",subscript:"Нижній індекс",superscript:"Верхній індекс",size:"Розмір шрифту"},image:{image:"Картинка",insert:"Вставити картинку",resizeFull:"Відновити розмір",resizeHalf:"Зменшити до 50%",resizeQuarter:"Зменшити до 25%",floatLeft:"Розташувати ліворуч",floatRight:"Розташувати праворуч",floatNone:"Початкове розташування",shapeRounded:"Форма: Заокруглена",shapeCircle:"Форма: Коло",shapeThumbnail:"Форма: Мініатюра",shapeNone:"Форма: Немає",dragImageHere:"Перетягніть сюди картинку",dropImage:"Перетягніть картинку",selectFromFiles:"Вибрати з файлів",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URL картинки",remove:"Видалити картинку",original:"Original"},video:{video:"Відео",videoLink:"Посилання на відео",insert:"Вставити відео",url:"URL відео",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion чи Youku)"},link:{link:"Посилання",insert:"Вставити посилання",unlink:"Прибрати посилання",edit:"Редагувати",textToDisplay:"Текст, що відображається",url:"URL для переходу",openInNewWindow:"Відкривати у новому вікні"},table:{table:"Таблиця",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Вставити горизонтальну лінію"},style:{style:"Стиль",p:"Нормальний",blockquote:"Цитата",pre:"Код",h1:"Заголовок 1",h2:"Заголовок 2",h3:"Заголовок 3",h4:"Заголовок 4",h5:"Заголовок 5",h6:"Заголовок 6"},lists:{unordered:"Маркований список",ordered:"Нумерований список"},options:{help:"Допомога",fullscreen:"На весь екран",codeview:"Початковий код"},paragraph:{paragraph:"Параграф",outdent:"Зменшити відступ",indent:"Збільшити відступ",left:"Вирівняти по лівому краю",center:"Вирівняти по центру",right:"Вирівняти по правому краю",justify:"Розтягнути по ширині"},color:{recent:"Останній колір",more:"Ще кольори",background:"Колір фону",foreground:"Колір шрифту",transparent:"Прозорий",setTransparent:"Зробити прозорим",reset:"Відновити",resetToDefault:"Відновити початкові"},shortcut:{shortcuts:"Комбінації клавіш",close:"Закрити",textFormatting:"Форматування тексту",action:"Дія",paragraphFormatting:"Форматування параграфу",documentStyle:"Стиль документу",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Відмінити",redo:"Повторити"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-uk-UA.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-uk-UA.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-uk-UA.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-uz-UZ.js b/common/lib/summernote/lang/summernote-uz-UZ.js new file mode 100644 index 0000000..da509b7 --- /dev/null +++ b/common/lib/summernote/lang/summernote-uz-UZ.js @@ -0,0 +1,230 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 47); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 47: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'uz-UZ': { + font: { + bold: 'қалин', + italic: 'Курсив', + underline: 'Белгиланган', + clear: 'Ҳарф турларини олиб ташлаш', + height: 'Чизиқ баландлиги', + name: 'Ҳарф', + strikethrough: 'Ўчирилган', + subscript: 'Пастки индекс', + superscript: 'Юқори индекс', + size: 'ҳарф ҳажми' + }, + image: { + image: 'Расм', + insert: 'расмни қўйиш', + resizeFull: 'Ҳажмни тиклаш', + resizeHalf: '50% гача кичрайтириш', + resizeQuarter: '25% гача кичрайтириш', + floatLeft: 'Чапда жойлаштириш', + floatRight: 'Ўнгда жойлаштириш', + floatNone: 'Стандарт бўйича жойлашув', + shapeRounded: 'Шакли: Юмалоқ', + shapeCircle: 'Шакли: Доира', + shapeThumbnail: 'Шакли: Миниатюра', + shapeNone: 'Шакли: Йўқ', + dragImageHere: 'Суратни кўчириб ўтинг', + dropImage: 'Суратни кўчириб ўтинг', + selectFromFiles: 'Файллардан бирини танлаш', + url: 'суратлар URL и', + remove: 'Суратни ўчириш' + }, + video: { + video: 'Видео', + videoLink: 'Видеога ҳавола', + insert: 'Видео', + url: 'URL видео', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)' + }, + link: { + link: 'Ҳавола', + insert: 'Ҳаволани қўйиш', + unlink: 'Ҳаволани олиб ташлаш', + edit: 'Таҳрир қилиш', + textToDisplay: 'Кўринадиган матн', + url: 'URL ўтиш учун', + openInNewWindow: 'Янги дарчада очиш' + }, + table: { + table: 'Жадвал' + }, + hr: { + insert: 'Горизонтал чизиқни қўйиш' + }, + style: { + style: 'Услуб', + p: 'Яхши', + blockquote: 'Жумла', + pre: 'Код', + h1: 'Сарлавҳа 1', + h2: 'Сарлавҳа 2', + h3: 'Сарлавҳа 3', + h4: 'Сарлавҳа 4', + h5: 'Сарлавҳа 5', + h6: 'Сарлавҳа 6' + }, + lists: { + unordered: 'Белгиланган рўйҳат', + ordered: 'Рақамланган рўйҳат' + }, + options: { + help: 'Ёрдам', + fullscreen: 'Бутун экран бўйича', + codeview: 'Бошланғич код' + }, + paragraph: { + paragraph: 'Параграф', + outdent: 'Орқага қайтишни камайтириш', + indent: 'Орқага қайтишни кўпайтириш', + left: 'Чап қирғоққа тўғрилаш', + center: 'Марказга тўғрилаш', + right: 'Ўнг қирғоққа тўғрилаш', + justify: 'Эни бўйлаб чўзиш' + }, + color: { + recent: 'Охирги ранг', + more: 'Яна ранглар', + background: 'Фон ранги', + foreground: 'Ҳарф ранги', + transparent: 'Шаффоф', + setTransparent: 'Шаффофдай қилиш', + reset: 'Бекор қилиш', + resetToDefault: 'Стандартга оид тиклаш' + }, + shortcut: { + shortcuts: 'Клавишларнинг ҳамохҳанглиги', + close: 'Ёпиқ', + textFormatting: 'Матнни ', + action: 'Ҳаркат', + paragraphFormatting: 'Параграфни форматлаш', + documentStyle: 'Ҳужжатнинг тури', + extraKeys: 'Қўшимча имкониятлар' + }, + history: { + undo: 'Бекор қилиш', + redo: 'Қайтариш' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-uz-UZ.min.js b/common/lib/summernote/lang/summernote-uz-UZ.min.js new file mode 100644 index 0000000..7416853 --- /dev/null +++ b/common/lib/summernote/lang/summernote-uz-UZ.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-uz-UZ.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=47)}({47:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"uz-UZ":{font:{bold:"қалин",italic:"Курсив",underline:"Белгиланган",clear:"Ҳарф турларини олиб ташлаш",height:"Чизиқ баландлиги",name:"Ҳарф",strikethrough:"Ўчирилган",subscript:"Пастки индекс",superscript:"Юқори индекс",size:"ҳарф ҳажми"},image:{image:"Расм",insert:"расмни қўйиш",resizeFull:"Ҳажмни тиклаш",resizeHalf:"50% гача кичрайтириш",resizeQuarter:"25% гача кичрайтириш",floatLeft:"Чапда жойлаштириш",floatRight:"Ўнгда жойлаштириш",floatNone:"Стандарт бўйича жойлашув",shapeRounded:"Шакли: Юмалоқ",shapeCircle:"Шакли: Доира",shapeThumbnail:"Шакли: Миниатюра",shapeNone:"Шакли: Йўқ",dragImageHere:"Суратни кўчириб ўтинг",dropImage:"Суратни кўчириб ўтинг",selectFromFiles:"Файллардан бирини танлаш",url:"суратлар URL и",remove:"Суратни ўчириш"},video:{video:"Видео",videoLink:"Видеога ҳавола",insert:"Видео",url:"URL видео",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)"},link:{link:"Ҳавола",insert:"Ҳаволани қўйиш",unlink:"Ҳаволани олиб ташлаш",edit:"Таҳрир қилиш",textToDisplay:"Кўринадиган матн",url:"URL ўтиш учун",openInNewWindow:"Янги дарчада очиш"},table:{table:"Жадвал"},hr:{insert:"Горизонтал чизиқни қўйиш"},style:{style:"Услуб",p:"Яхши",blockquote:"Жумла",pre:"Код",h1:"Сарлавҳа 1",h2:"Сарлавҳа 2",h3:"Сарлавҳа 3",h4:"Сарлавҳа 4",h5:"Сарлавҳа 5",h6:"Сарлавҳа 6"},lists:{unordered:"Белгиланган рўйҳат",ordered:"Рақамланган рўйҳат"},options:{help:"Ёрдам",fullscreen:"Бутун экран бўйича",codeview:"Бошланғич код"},paragraph:{paragraph:"Параграф",outdent:"Орқага қайтишни камайтириш",indent:"Орқага қайтишни кўпайтириш",left:"Чап қирғоққа тўғрилаш",center:"Марказга тўғрилаш",right:"Ўнг қирғоққа тўғрилаш",justify:"Эни бўйлаб чўзиш"},color:{recent:"Охирги ранг",more:"Яна ранглар",background:"Фон ранги",foreground:"Ҳарф ранги",transparent:"Шаффоф",setTransparent:"Шаффофдай қилиш",reset:"Бекор қилиш",resetToDefault:"Стандартга оид тиклаш"},shortcut:{shortcuts:"Клавишларнинг ҳамохҳанглиги",close:"Ёпиқ",textFormatting:"Матнни ",action:"Ҳаркат",paragraphFormatting:"Параграфни форматлаш",documentStyle:"Ҳужжатнинг тури",extraKeys:"Қўшимча имкониятлар"},history:{undo:"Бекор қилиш",redo:"Қайтариш"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-uz-UZ.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-uz-UZ.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-uz-UZ.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-vi-VN.js b/common/lib/summernote/lang/summernote-vi-VN.js new file mode 100644 index 0000000..f20c170 --- /dev/null +++ b/common/lib/summernote/lang/summernote-vi-VN.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 48); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 48: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'vi-VN': { + font: { + bold: 'In Đậm', + italic: 'In Nghiêng', + underline: 'Gạch dưới', + clear: 'Bỏ định dạng', + height: 'Chiều cao dòng', + name: 'Phông chữ', + strikethrough: 'Gạch ngang', + subscript: 'Subscript', + superscript: 'Superscript', + size: 'Cỡ chữ' + }, + image: { + image: 'Hình ảnh', + insert: 'Chèn', + resizeFull: '100%', + resizeHalf: '50%', + resizeQuarter: '25%', + floatLeft: 'Trôi về trái', + floatRight: 'Trôi về phải', + floatNone: 'Không trôi', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'Thả Ảnh ở vùng này', + dropImage: 'Drop image or Text', + selectFromFiles: 'Chọn từ File', + maximumFileSize: 'Maximum file size', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'URL', + remove: 'Xóa', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Link đến Video', + insert: 'Chèn Video', + url: 'URL', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion và Youku)' + }, + link: { + link: 'Link', + insert: 'Chèn Link', + unlink: 'Gỡ Link', + edit: 'Sửa', + textToDisplay: 'Văn bản hiển thị', + url: 'URL', + openInNewWindow: 'Mở ở Cửa sổ mới' + }, + table: { + table: 'Bảng', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Chèn' + }, + style: { + style: 'Kiểu chữ', + p: 'Chữ thường', + blockquote: 'Đoạn trích', + pre: 'Mã Code', + h1: 'H1', + h2: 'H2', + h3: 'H3', + h4: 'H4', + h5: 'H5', + h6: 'H6' + }, + lists: { + unordered: 'Liệt kê danh sách', + ordered: 'Liệt kê theo thứ tự' + }, + options: { + help: 'Trợ giúp', + fullscreen: 'Toàn Màn hình', + codeview: 'Xem Code' + }, + paragraph: { + paragraph: 'Canh lề', + outdent: 'Dịch sang trái', + indent: 'Dịch sang phải', + left: 'Canh trái', + center: 'Canh giữa', + right: 'Canh phải', + justify: 'Canh đều' + }, + color: { + recent: 'Màu chữ', + more: 'Mở rộng', + background: 'Màu nền', + foreground: 'Màu chữ', + transparent: 'trong suốt', + setTransparent: 'Nền trong suốt', + reset: 'Thiết lập lại', + resetToDefault: 'Trở lại ban đầu' + }, + shortcut: { + shortcuts: 'Phím tắt', + close: 'Đóng', + textFormatting: 'Định dạng Văn bản', + action: 'Hành động', + paragraphFormatting: 'Định dạng', + documentStyle: 'Kiểu văn bản', + extraKeys: 'Extra keys' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'Lùi lại', + redo: 'Làm lại' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-vi-VN.min.js b/common/lib/summernote/lang/summernote-vi-VN.min.js new file mode 100644 index 0000000..76e7182 --- /dev/null +++ b/common/lib/summernote/lang/summernote-vi-VN.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-vi-VN.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=48)}({48:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"vi-VN":{font:{bold:"In Đậm",italic:"In Nghiêng",underline:"Gạch dưới",clear:"Bỏ định dạng",height:"Chiều cao dòng",name:"Phông chữ",strikethrough:"Gạch ngang",subscript:"Subscript",superscript:"Superscript",size:"Cỡ chữ"},image:{image:"Hình ảnh",insert:"Chèn",resizeFull:"100%",resizeHalf:"50%",resizeQuarter:"25%",floatLeft:"Trôi về trái",floatRight:"Trôi về phải",floatNone:"Không trôi",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Thả Ảnh ở vùng này",dropImage:"Drop image or Text",selectFromFiles:"Chọn từ File",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"URL",remove:"Xóa",original:"Original"},video:{video:"Video",videoLink:"Link đến Video",insert:"Chèn Video",url:"URL",providers:"(YouTube, Vimeo, Vine, Instagram, DailyMotion và Youku)"},link:{link:"Link",insert:"Chèn Link",unlink:"Gỡ Link",edit:"Sửa",textToDisplay:"Văn bản hiển thị",url:"URL",openInNewWindow:"Mở ở Cửa sổ mới"},table:{table:"Bảng",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"Chèn"},style:{style:"Kiểu chữ",p:"Chữ thường",blockquote:"Đoạn trích",pre:"Mã Code",h1:"H1",h2:"H2",h3:"H3",h4:"H4",h5:"H5",h6:"H6"},lists:{unordered:"Liệt kê danh sách",ordered:"Liệt kê theo thứ tự"},options:{help:"Trợ giúp",fullscreen:"Toàn Màn hình",codeview:"Xem Code"},paragraph:{paragraph:"Canh lề",outdent:"Dịch sang trái",indent:"Dịch sang phải",left:"Canh trái",center:"Canh giữa",right:"Canh phải",justify:"Canh đều"},color:{recent:"Màu chữ",more:"Mở rộng",background:"Màu nền",foreground:"Màu chữ",transparent:"trong suốt",setTransparent:"Nền trong suốt",reset:"Thiết lập lại",resetToDefault:"Trở lại ban đầu"},shortcut:{shortcuts:"Phím tắt",close:"Đóng",textFormatting:"Định dạng Văn bản",action:"Hành động",paragraphFormatting:"Định dạng",documentStyle:"Kiểu văn bản",extraKeys:"Extra keys"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"Lùi lại",redo:"Làm lại"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-vi-VN.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-vi-VN.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-vi-VN.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-zh-CN.js b/common/lib/summernote/lang/summernote-zh-CN.js new file mode 100644 index 0000000..6748254 --- /dev/null +++ b/common/lib/summernote/lang/summernote-zh-CN.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 49); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 49: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'zh-CN': { + font: { + bold: '粗体', + italic: '斜体', + underline: '下划线', + clear: '清除格式', + height: '行高', + name: '字体', + strikethrough: '删除线', + subscript: '下标', + superscript: '上标', + size: '字号' + }, + image: { + image: '图片', + insert: '插入图片', + resizeFull: '缩放至 100%', + resizeHalf: '缩放至 50%', + resizeQuarter: '缩放至 25%', + floatLeft: '靠左浮动', + floatRight: '靠右浮动', + floatNone: '取消浮动', + shapeRounded: '形状: 圆角', + shapeCircle: '形状: 圆', + shapeThumbnail: '形状: 缩略图', + shapeNone: '形状: 无', + dragImageHere: '将图片拖拽至此处', + dropImage: '拖拽图片或文本', + selectFromFiles: '从本地上传', + maximumFileSize: '文件大小最大值', + maximumFileSizeError: '文件大小超出最大值。', + url: '图片地址', + remove: '移除图片', + original: '原始图片' + }, + video: { + video: '视频', + videoLink: '视频链接', + insert: '插入视频', + url: '视频地址', + providers: '(优酷, 腾讯, Instagram, DailyMotion, Youtube等)' + }, + link: { + link: '链接', + insert: '插入链接', + unlink: '去除链接', + edit: '编辑链接', + textToDisplay: '显示文本', + url: '链接地址', + openInNewWindow: '在新窗口打开' + }, + table: { + table: '表格', + addRowAbove: '在上方插入行', + addRowBelow: '在下方插入行', + addColLeft: '在左侧插入列', + addColRight: '在右侧插入列', + delRow: '删除行', + delCol: '删除列', + delTable: '删除表格' + }, + hr: { + insert: '水平线' + }, + style: { + style: '样式', + p: '普通', + blockquote: '引用', + pre: '代码', + h1: '标题 1', + h2: '标题 2', + h3: '标题 3', + h4: '标题 4', + h5: '标题 5', + h6: '标题 6' + }, + lists: { + unordered: '无序列表', + ordered: '有序列表' + }, + options: { + help: '帮助', + fullscreen: '全屏', + codeview: '源代码' + }, + paragraph: { + paragraph: '段落', + outdent: '减少缩进', + indent: '增加缩进', + left: '左对齐', + center: '居中对齐', + right: '右对齐', + justify: '两端对齐' + }, + color: { + recent: '最近使用', + more: '更多', + background: '背景', + foreground: '前景', + transparent: '透明', + setTransparent: '透明', + reset: '重置', + resetToDefault: '默认' + }, + shortcut: { + shortcuts: '快捷键', + close: '关闭', + textFormatting: '文本格式', + action: '动作', + paragraphFormatting: '段落格式', + documentStyle: '文档样式', + extraKeys: '额外按键' + }, + help: { + insertParagraph: '插入段落', + undo: '撤销', + redo: '重做', + tab: '增加缩进', + untab: '减少缩进', + bold: '粗体', + italic: '斜体', + underline: '下划线', + strikethrough: '删除线', + removeFormat: '清除格式', + justifyLeft: '左对齐', + justifyCenter: '居中对齐', + justifyRight: '右对齐', + justifyFull: '两端对齐', + insertUnorderedList: '无序列表', + insertOrderedList: '有序列表', + outdent: '减少缩进', + indent: '增加缩进', + formatPara: '设置选中内容样式为 普通', + formatH1: '设置选中内容样式为 标题1', + formatH2: '设置选中内容样式为 标题2', + formatH3: '设置选中内容样式为 标题3', + formatH4: '设置选中内容样式为 标题4', + formatH5: '设置选中内容样式为 标题5', + formatH6: '设置选中内容样式为 标题6', + insertHorizontalRule: '插入水平线', + 'linkDialog.show': '显示链接对话框' + }, + history: { + undo: '撤销', + redo: '重做' + }, + specialChar: { + specialChar: '特殊字符', + select: '选取特殊字符' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-zh-CN.min.js b/common/lib/summernote/lang/summernote-zh-CN.min.js new file mode 100644 index 0000000..45bb6a8 --- /dev/null +++ b/common/lib/summernote/lang/summernote-zh-CN.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-zh-CN.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=49)}({49:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"zh-CN":{font:{bold:"粗体",italic:"斜体",underline:"下划线",clear:"清除格式",height:"行高",name:"字体",strikethrough:"删除线",subscript:"下标",superscript:"上标",size:"字号"},image:{image:"图片",insert:"插入图片",resizeFull:"缩放至 100%",resizeHalf:"缩放至 50%",resizeQuarter:"缩放至 25%",floatLeft:"靠左浮动",floatRight:"靠右浮动",floatNone:"取消浮动",shapeRounded:"形状: 圆角",shapeCircle:"形状: 圆",shapeThumbnail:"形状: 缩略图",shapeNone:"形状: 无",dragImageHere:"将图片拖拽至此处",dropImage:"拖拽图片或文本",selectFromFiles:"从本地上传",maximumFileSize:"文件大小最大值",maximumFileSizeError:"文件大小超出最大值。",url:"图片地址",remove:"移除图片",original:"原始图片"},video:{video:"视频",videoLink:"视频链接",insert:"插入视频",url:"视频地址",providers:"(优酷, 腾讯, Instagram, DailyMotion, Youtube等)"},link:{link:"链接",insert:"插入链接",unlink:"去除链接",edit:"编辑链接",textToDisplay:"显示文本",url:"链接地址",openInNewWindow:"在新窗口打开"},table:{table:"表格",addRowAbove:"在上方插入行",addRowBelow:"在下方插入行",addColLeft:"在左侧插入列",addColRight:"在右侧插入列",delRow:"删除行",delCol:"删除列",delTable:"删除表格"},hr:{insert:"水平线"},style:{style:"样式",p:"普通",blockquote:"引用",pre:"代码",h1:"标题 1",h2:"标题 2",h3:"标题 3",h4:"标题 4",h5:"标题 5",h6:"标题 6"},lists:{unordered:"无序列表",ordered:"有序列表"},options:{help:"帮助",fullscreen:"全屏",codeview:"源代码"},paragraph:{paragraph:"段落",outdent:"减少缩进",indent:"增加缩进",left:"左对齐",center:"居中对齐",right:"右对齐",justify:"两端对齐"},color:{recent:"最近使用",more:"更多",background:"背景",foreground:"前景",transparent:"透明",setTransparent:"透明",reset:"重置",resetToDefault:"默认"},shortcut:{shortcuts:"快捷键",close:"关闭",textFormatting:"文本格式",action:"动作",paragraphFormatting:"段落格式",documentStyle:"文档样式",extraKeys:"额外按键"},help:{insertParagraph:"插入段落",undo:"撤销",redo:"重做",tab:"增加缩进",untab:"减少缩进",bold:"粗体",italic:"斜体",underline:"下划线",strikethrough:"删除线",removeFormat:"清除格式",justifyLeft:"左对齐",justifyCenter:"居中对齐",justifyRight:"右对齐",justifyFull:"两端对齐",insertUnorderedList:"无序列表",insertOrderedList:"有序列表",outdent:"减少缩进",indent:"增加缩进",formatPara:"设置选中内容样式为 普通",formatH1:"设置选中内容样式为 标题1",formatH2:"设置选中内容样式为 标题2",formatH3:"设置选中内容样式为 标题3",formatH4:"设置选中内容样式为 标题4",formatH5:"设置选中内容样式为 标题5",formatH6:"设置选中内容样式为 标题6",insertHorizontalRule:"插入水平线","linkDialog.show":"显示链接对话框"},history:{undo:"撤销",redo:"重做"},specialChar:{specialChar:"特殊字符",select:"选取特殊字符"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-zh-CN.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-zh-CN.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-zh-CN.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/lang/summernote-zh-TW.js b/common/lib/summernote/lang/summernote-zh-TW.js new file mode 100644 index 0000000..c76b690 --- /dev/null +++ b/common/lib/summernote/lang/summernote-zh-TW.js @@ -0,0 +1,273 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 50); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 50: +/***/ (function(module, exports) { + +(function ($) { + $.extend($.summernote.lang, { + 'zh-TW': { + font: { + bold: '粗體', + italic: '斜體', + underline: '底線', + clear: '清除格式', + height: '行高', + name: '字體', + strikethrough: '刪除線', + subscript: '下標', + superscript: '上標', + size: '字號' + }, + image: { + image: '圖片', + insert: '插入圖片', + resizeFull: '縮放至100%', + resizeHalf: '縮放至 50%', + resizeQuarter: '縮放至 25%', + floatLeft: '靠左浮動', + floatRight: '靠右浮動', + floatNone: '取消浮動', + shapeRounded: '形狀: 圓角', + shapeCircle: '形狀: 圓', + shapeThumbnail: '形狀: 縮略圖', + shapeNone: '形狀: 無', + dragImageHere: '將圖片拖曳至此處', + dropImage: 'Drop image or Text', + selectFromFiles: '從本機上傳', + maximumFileSize: '文件大小最大值', + maximumFileSizeError: '文件大小超出最大值。', + url: '圖片網址', + remove: '移除圖片', + original: 'Original' + }, + video: { + video: '影片', + videoLink: '影片連結', + insert: '插入影片', + url: '影片網址', + providers: '(優酷, Instagram, DailyMotion, Youtube等)' + }, + link: { + link: '連結', + insert: '插入連結', + unlink: '取消連結', + edit: '編輯連結', + textToDisplay: '顯示文字', + url: '連結網址', + openInNewWindow: '在新視窗開啟' + }, + table: { + table: '表格', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: '水平線' + }, + style: { + style: '樣式', + p: '一般', + blockquote: '引用區塊', + pre: '程式碼區塊', + h1: '標題 1', + h2: '標題 2', + h3: '標題 3', + h4: '標題 4', + h5: '標題 5', + h6: '標題 6' + }, + lists: { + unordered: '項目清單', + ordered: '編號清單' + }, + options: { + help: '幫助', + fullscreen: '全螢幕', + codeview: '原始碼' + }, + paragraph: { + paragraph: '段落', + outdent: '取消縮排', + indent: '增加縮排', + left: '靠右對齊', + center: '靠中對齊', + right: '靠右對齊', + justify: '左右對齊' + }, + color: { + recent: '字型顏色', + more: '更多', + background: '背景', + foreground: '前景', + transparent: '透明', + setTransparent: '透明', + reset: '重設', + resetToDefault: '默認' + }, + shortcut: { + shortcuts: '快捷鍵', + close: '關閉', + textFormatting: '文字格式', + action: '動作', + paragraphFormatting: '段落格式', + documentStyle: '文件格式', + extraKeys: '額外按鍵' + }, + help: { + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undoes the last command', + 'redo': 'Redoes the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: '復原', + redo: '取消復原' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + } + } + }); +})(jQuery); + +/***/ }) + +/******/ }); +}); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-zh-TW.min.js b/common/lib/summernote/lang/summernote-zh-TW.min.js new file mode 100644 index 0000000..3c111ab --- /dev/null +++ b/common/lib/summernote/lang/summernote-zh-TW.min.js @@ -0,0 +1,2 @@ +/*! For license information please see summernote-zh-TW.min.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(window,(function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=50)}({50:function(e,t){var r;(r=jQuery).extend(r.summernote.lang,{"zh-TW":{font:{bold:"粗體",italic:"斜體",underline:"底線",clear:"清除格式",height:"行高",name:"字體",strikethrough:"刪除線",subscript:"下標",superscript:"上標",size:"字號"},image:{image:"圖片",insert:"插入圖片",resizeFull:"縮放至100%",resizeHalf:"縮放至 50%",resizeQuarter:"縮放至 25%",floatLeft:"靠左浮動",floatRight:"靠右浮動",floatNone:"取消浮動",shapeRounded:"形狀: 圓角",shapeCircle:"形狀: 圓",shapeThumbnail:"形狀: 縮略圖",shapeNone:"形狀: 無",dragImageHere:"將圖片拖曳至此處",dropImage:"Drop image or Text",selectFromFiles:"從本機上傳",maximumFileSize:"文件大小最大值",maximumFileSizeError:"文件大小超出最大值。",url:"圖片網址",remove:"移除圖片",original:"Original"},video:{video:"影片",videoLink:"影片連結",insert:"插入影片",url:"影片網址",providers:"(優酷, Instagram, DailyMotion, Youtube等)"},link:{link:"連結",insert:"插入連結",unlink:"取消連結",edit:"編輯連結",textToDisplay:"顯示文字",url:"連結網址",openInNewWindow:"在新視窗開啟"},table:{table:"表格",addRowAbove:"Add row above",addRowBelow:"Add row below",addColLeft:"Add column left",addColRight:"Add column right",delRow:"Delete row",delCol:"Delete column",delTable:"Delete table"},hr:{insert:"水平線"},style:{style:"樣式",p:"一般",blockquote:"引用區塊",pre:"程式碼區塊",h1:"標題 1",h2:"標題 2",h3:"標題 3",h4:"標題 4",h5:"標題 5",h6:"標題 6"},lists:{unordered:"項目清單",ordered:"編號清單"},options:{help:"幫助",fullscreen:"全螢幕",codeview:"原始碼"},paragraph:{paragraph:"段落",outdent:"取消縮排",indent:"增加縮排",left:"靠右對齊",center:"靠中對齊",right:"靠右對齊",justify:"左右對齊"},color:{recent:"字型顏色",more:"更多",background:"背景",foreground:"前景",transparent:"透明",setTransparent:"透明",reset:"重設",resetToDefault:"默認"},shortcut:{shortcuts:"快捷鍵",close:"關閉",textFormatting:"文字格式",action:"動作",paragraphFormatting:"段落格式",documentStyle:"文件格式",extraKeys:"額外按鍵"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"復原",redo:"取消復原"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}})}})})); \ No newline at end of file diff --git a/common/lib/summernote/lang/summernote-zh-TW.min.js.LICENSE.txt b/common/lib/summernote/lang/summernote-zh-TW.min.js.LICENSE.txt new file mode 100644 index 0000000..3b0558d --- /dev/null +++ b/common/lib/summernote/lang/summernote-zh-TW.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! Summernote v0.8.18 | (c) 2013- Alan Hong and other contributors | MIT license */ diff --git a/common/lib/summernote/plugin/databasic/summernote-ext-databasic.css b/common/lib/summernote/plugin/databasic/summernote-ext-databasic.css new file mode 100644 index 0000000..6232dde --- /dev/null +++ b/common/lib/summernote/plugin/databasic/summernote-ext-databasic.css @@ -0,0 +1,16 @@ +.ext-databasic { + position: relative; + display: block; + min-height: 50px; + background-color: cyan; + text-align: center; + padding: 20px; + border: 1px solid white; + border-radius: 10px; +} + +.ext-databasic p { + color: white; + font-size: 1.2em; + margin: 0; +} diff --git a/common/lib/summernote/plugin/databasic/summernote-ext-databasic.js b/common/lib/summernote/plugin/databasic/summernote-ext-databasic.js new file mode 100644 index 0000000..6e16c46 --- /dev/null +++ b/common/lib/summernote/plugin/databasic/summernote-ext-databasic.js @@ -0,0 +1,291 @@ +(function(factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['jquery'], factory); + } else if (typeof module === 'object' && module.exports) { + // Node/CommonJS + module.exports = factory(require('jquery')); + } else { + // Browser globals + factory(window.jQuery); + } +}(function($) { + // pull in some summernote core functions + var ui = $.summernote.ui; + var dom = $.summernote.dom; + + // define the popover plugin + var DataBasicPlugin = function(context) { + var self = this; + var options = context.options; + var lang = options.langInfo; + + self.icon = ''; + + // add context menu button for dialog + context.memo('button.databasic', function() { + return ui.button({ + contents: self.icon, + tooltip: lang.databasic.insert, + click: context.createInvokeHandler('databasic.showDialog'), + }).render(); + }); + + // add popover edit button + context.memo('button.databasicDialog', function() { + return ui.button({ + contents: self.icon, + tooltip: lang.databasic.edit, + click: context.createInvokeHandler('databasic.showDialog'), + }).render(); + }); + + // add popover size buttons + context.memo('button.databasicSize100', function() { + return ui.button({ + contents: '100%', + tooltip: lang.image.resizeFull, + click: context.createInvokeHandler('editor.resize', '1'), + }).render(); + }); + context.memo('button.databasicSize50', function() { + return ui.button({ + contents: '50%', + tooltip: lang.image.resizeHalf, + click: context.createInvokeHandler('editor.resize', '0.5'), + }).render(); + }); + context.memo('button.databasicSize25', function() { + return ui.button({ + contents: '25%', + tooltip: lang.image.resizeQuarter, + click: context.createInvokeHandler('editor.resize', '0.25'), + }).render(); + }); + + self.events = { + 'summernote.init': function(we, e) { + // update existing containers + $('data.ext-databasic', e.editable).each(function() { self.setContent($(this)); }); + // TODO: make this an undo snapshot... + }, + 'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function() { + self.update(); + }, + 'summernote.dialog.shown': function() { + self.hidePopover(); + }, + }; + + self.initialize = function() { + // create dialog markup + var $container = options.dialogsInBody ? $(document.body) : context.layoutInfo.editor; + + var body = '
    ' + + '' + + '' + + '
    '; + var footer = ''; + + self.$dialog = ui.dialog({ + title: lang.databasic.name, + fade: options.dialogsFade, + body: body, + footer: footer, + }).render().appendTo($container); + + // create popover + self.$popover = ui.popover({ + className: 'ext-databasic-popover', + }).render().appendTo('body'); + var $content = self.$popover.find('.popover-content'); + + context.invoke('buttons.build', $content, options.popover.databasic); + }; + + self.destroy = function() { + self.$popover.remove(); + self.$popover = null; + self.$dialog.remove(); + self.$dialog = null; + }; + + self.update = function() { + // Prevent focusing on editable when invoke('code') is executed + if (!context.invoke('editor.hasFocus')) { + self.hidePopover(); + return; + } + + var rng = context.invoke('editor.createRange'); + var visible = false; + + if (rng.isOnData()) { + var $data = $(rng.sc).closest('data.ext-databasic'); + + if ($data.length) { + var pos = dom.posFromPlaceholder($data[0]); + + self.$popover.css({ + display: 'block', + left: pos.left, + top: pos.top, + }); + + // save editor target to let size buttons resize the container + context.invoke('editor.saveTarget', $data[0]); + + visible = true; + } + } + + // hide if not visible + if (!visible) { + self.hidePopover(); + } + }; + + self.hidePopover = function() { + self.$popover.hide(); + }; + + // define plugin dialog + self.getInfo = function() { + var rng = context.invoke('editor.createRange'); + + if (rng.isOnData()) { + var $data = $(rng.sc).closest('data.ext-databasic'); + + if ($data.length) { + // Get the first node on range(for edit). + return { + node: $data, + test: $data.attr('data-test'), + }; + } + } + + return {}; + }; + + self.setContent = function($node) { + $node.html('

    ' + self.icon + ' ' + lang.databasic.name + ': ' + + $node.attr('data-test') + '

    '); + }; + + self.updateNode = function(info) { + self.setContent(info.node + .attr('data-test', info.test)); + }; + + self.createNode = function(info) { + var $node = $(''); + + if ($node) { + // save node to info structure + info.node = $node; + // insert node into editor dom + context.invoke('editor.insertNode', $node[0]); + } + + return $node; + }; + + self.showDialog = function() { + var info = self.getInfo(); + var newNode = !info.node; + context.invoke('editor.saveRange'); + + self + .openDialog(info) + .then(function(dialogInfo) { + // [workaround] hide dialog before restore range for IE range focus + ui.hideDialog(self.$dialog); + context.invoke('editor.restoreRange'); + + // insert a new node + if (newNode) { + self.createNode(info); + } + + // update info with dialog info + $.extend(info, dialogInfo); + + self.updateNode(info); + }) + .fail(function() { + context.invoke('editor.restoreRange'); + }); + }; + + self.openDialog = function(info) { + return $.Deferred(function(deferred) { + var $inpTest = self.$dialog.find('.ext-databasic-test'); + var $saveBtn = self.$dialog.find('.ext-databasic-save'); + var onKeyup = function(event) { + if (event.keyCode === 13) { + $saveBtn.trigger('click'); + } + }; + + ui.onDialogShown(self.$dialog, function() { + context.triggerEvent('dialog.shown'); + + $inpTest.val(info.test).on('input', function() { + ui.toggleBtn($saveBtn, $inpTest.val()); + }).trigger('focus').on('keyup', onKeyup); + + $saveBtn + .text(info.node ? lang.databasic.edit : lang.databasic.insert) + .click(function(event) { + event.preventDefault(); + + deferred.resolve({ test: $inpTest.val() }); + }); + + // init save button + ui.toggleBtn($saveBtn, $inpTest.val()); + }); + + ui.onDialogHidden(self.$dialog, function() { + $inpTest.off('input keyup'); + $saveBtn.off('click'); + + if (deferred.state() === 'pending') { + deferred.reject(); + } + }); + + ui.showDialog(self.$dialog); + }); + }; + }; + + // Extends summernote + $.extend(true, $.summernote, { + plugins: { + databasic: DataBasicPlugin, + }, + + options: { + popover: { + databasic: [ + ['databasic', ['databasicDialog', 'databasicSize100', 'databasicSize50', 'databasicSize25']], + ], + }, + }, + + // add localization texts + lang: { + 'en-US': { + databasic: { + name: 'Basic Data Container', + insert: 'insert basic data container', + edit: 'edit basic data container', + testLabel: 'test input', + }, + }, + }, + + }); +})); diff --git a/common/lib/summernote/plugin/hello/summernote-ext-hello.js b/common/lib/summernote/plugin/hello/summernote-ext-hello.js new file mode 100644 index 0000000..f95d302 --- /dev/null +++ b/common/lib/summernote/plugin/hello/summernote-ext-hello.js @@ -0,0 +1,82 @@ +(function(factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['jquery'], factory); + } else if (typeof module === 'object' && module.exports) { + // Node/CommonJS + module.exports = factory(require('jquery')); + } else { + // Browser globals + factory(window.jQuery); + } +}(function($) { + // Extends plugins for adding hello. + // - plugin is external module for customizing. + $.extend($.summernote.plugins, { + /** + * @param {Object} context - context object has status of editor. + */ + 'hello': function(context) { + var self = this; + + // ui has renders to build ui elements. + // - you can create a button with `ui.button` + var ui = $.summernote.ui; + + // add hello button + context.memo('button.hello', function() { + // create button + var button = ui.button({ + contents: ' Hello', + tooltip: 'hello', + click: function() { + self.$panel.show(); + self.$panel.hide(500); + // invoke insertText method with 'hello' on editor module. + context.invoke('editor.insertText', 'hello'); + }, + }); + + // create jQuery object from button instance. + var $hello = button.render(); + return $hello; + }); + + // This events will be attached when editor is initialized. + this.events = { + // This will be called after modules are initialized. + 'summernote.init': function(we, e) { + // eslint-disable-next-line + console.log('summernote initialized', we, e); + }, + // This will be called when user releases a key on editable. + 'summernote.keyup': function(we, e) { + // eslint-disable-next-line + console.log('summernote keyup', we, e); + }, + }; + + // This method will be called when editor is initialized by $('..').summernote(); + // You can create elements for plugin + this.initialize = function() { + this.$panel = $('
    ').css({ + position: 'absolute', + width: 100, + height: 100, + left: '50%', + top: '50%', + background: 'red', + }).hide(); + + this.$panel.appendTo('body'); + }; + + // This methods will be called when editor is destroyed by $('..').summernote('destroy'); + // You should remove elements on `initialize`. + this.destroy = function() { + this.$panel.remove(); + this.$panel = null; + }; + }, + }); +})); diff --git a/common/lib/summernote/plugin/specialchars/summernote-ext-specialchars.js b/common/lib/summernote/plugin/specialchars/summernote-ext-specialchars.js new file mode 100644 index 0000000..e5e5ed4 --- /dev/null +++ b/common/lib/summernote/plugin/specialchars/summernote-ext-specialchars.js @@ -0,0 +1,311 @@ +(function(factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['jquery'], factory); + } else if (typeof module === 'object' && module.exports) { + // Node/CommonJS + module.exports = factory(require('jquery')); + } else { + // Browser globals + factory(window.jQuery); + } +}(function($) { + $.extend($.summernote.plugins, { + 'specialchars': function(context) { + var self = this; + var ui = $.summernote.ui; + + var $editor = context.layoutInfo.editor; + var options = context.options; + var lang = options.langInfo; + + var KEY = { + UP: 38, + DOWN: 40, + LEFT: 37, + RIGHT: 39, + ENTER: 13, + }; + var COLUMN_LENGTH = 15; + var COLUMN_WIDTH = 35; + + var currentColumn = 0; + var currentRow = 0; + var totalColumn = 0; + var totalRow = 0; + + // special characters data set + var specialCharDataSet = [ + '"', '&', '<', '>', '¡', '¢', + '£', '¤', '¥', '¦', '§', + '¨', '©', 'ª', '«', '¬', + '®', '¯', '°', '±', '²', + '³', '´', 'µ', '¶', '·', + '¸', '¹', 'º', '»', '¼', + '½', '¾', '¿', '×', '÷', + 'ƒ', 'ˆ', '˜', '–', '—', + '‘', '’', '‚', '“', '”', + '„', '†', '‡', '•', '…', + '‰', '′', '″', '‹', '›', + '‾', '⁄', '€', 'ℑ', '℘', + 'ℜ', '™', 'ℵ', '←', '↑', + '→', '↓', '↔', '↵', '⇐', + '⇑', '⇒', '⇓', '⇔', '∀', + '∂', '∃', '∅', '∇', '∈', + '∉', '∋', '∏', '∑', '−', + '∗', '√', '∝', '∞', '∠', + '∧', '∨', '∩', '∪', '∫', + '∴', '∼', '≅', '≈', '≠', + '≡', '≤', '≥', '⊂', '⊃', + '⊄', '⊆', '⊇', '⊕', '⊗', + '⊥', '⋅', '⌈', '⌉', '⌊', + '⌋', '◊', '♠', '♣', '♥', + '♦', + ]; + + context.memo('button.specialchars', function() { + return ui.button({ + contents: '', + tooltip: lang.specialChar.specialChar, + click: function() { + self.show(); + }, + }).render(); + }); + + /** + * Make Special Characters Table + * + * @member plugin.specialChar + * @private + * @return {jQuery} + */ + this.makeSpecialCharSetTable = function() { + var $table = $(''); + $.each(specialCharDataSet, function(idx, text) { + var $td = $('') : $table.find('tr').last(); + + var $button = ui.button({ + callback: function($node) { + $node.html(text); + $node.attr('title', text); + $node.attr('data-value', encodeURIComponent(text)); + $node.css({ + width: COLUMN_WIDTH, + 'margin-right': '2px', + 'margin-bottom': '2px', + }); + }, + }).render(); + + $td.append($button); + + $tr.append($td); + if (idx % COLUMN_LENGTH === 0) { + $table.append($tr); + } + }); + + totalRow = $table.find('tr').length; + totalColumn = COLUMN_LENGTH; + + return $table; + }; + + this.initialize = function() { + var $container = options.dialogsInBody ? $(document.body) : $editor; + + var body = '
    ' + this.makeSpecialCharSetTable()[0].outerHTML + '
    '; + + this.$dialog = ui.dialog({ + title: lang.specialChar.select, + body: body, + }).render().appendTo($container); + }; + + this.show = function() { + var text = context.invoke('editor.getSelectedText'); + context.invoke('editor.saveRange'); + this.showSpecialCharDialog(text).then(function(selectChar) { + context.invoke('editor.restoreRange'); + + // build node + var $node = $('').html(selectChar)[0]; + + if ($node) { + // insert video node + context.invoke('editor.insertNode', $node); + } + }).fail(function() { + context.invoke('editor.restoreRange'); + }); + }; + + /** + * show image dialog + * + * @param {jQuery} $dialog + * @return {Promise} + */ + this.showSpecialCharDialog = function(text) { + return $.Deferred(function(deferred) { + var $specialCharDialog = self.$dialog; + var $specialCharNode = $specialCharDialog.find('.note-specialchar-node'); + var $selectedNode = null; + var ARROW_KEYS = [KEY.UP, KEY.DOWN, KEY.LEFT, KEY.RIGHT]; + var ENTER_KEY = KEY.ENTER; + + function addActiveClass($target) { + if (!$target) { + return; + } + $target.find('button').addClass('active'); + $selectedNode = $target; + } + + function removeActiveClass($target) { + $target.find('button').removeClass('active'); + $selectedNode = null; + } + + // find next node + function findNextNode(row, column) { + var findNode = null; + $.each($specialCharNode, function(idx, $node) { + var findRow = Math.ceil((idx + 1) / COLUMN_LENGTH); + var findColumn = ((idx + 1) % COLUMN_LENGTH === 0) ? COLUMN_LENGTH : (idx + 1) % COLUMN_LENGTH; + if (findRow === row && findColumn === column) { + findNode = $node; + return false; + } + }); + return $(findNode); + } + + function arrowKeyHandler(keyCode) { + // left, right, up, down key + var $nextNode; + var lastRowColumnLength = $specialCharNode.length % totalColumn; + + if (KEY.LEFT === keyCode) { + if (currentColumn > 1) { + currentColumn = currentColumn - 1; + } else if (currentRow === 1 && currentColumn === 1) { + currentColumn = lastRowColumnLength; + currentRow = totalRow; + } else { + currentColumn = totalColumn; + currentRow = currentRow - 1; + } + } else if (KEY.RIGHT === keyCode) { + if (currentRow === totalRow && lastRowColumnLength === currentColumn) { + currentColumn = 1; + currentRow = 1; + } else if (currentColumn < totalColumn) { + currentColumn = currentColumn + 1; + } else { + currentColumn = 1; + currentRow = currentRow + 1; + } + } else if (KEY.UP === keyCode) { + if (currentRow === 1 && lastRowColumnLength < currentColumn) { + currentRow = totalRow - 1; + } else { + currentRow = currentRow - 1; + } + } else if (KEY.DOWN === keyCode) { + currentRow = currentRow + 1; + } + + if (currentRow === totalRow && currentColumn > lastRowColumnLength) { + currentRow = 1; + } else if (currentRow > totalRow) { + currentRow = 1; + } else if (currentRow < 1) { + currentRow = totalRow; + } + + $nextNode = findNextNode(currentRow, currentColumn); + + if ($nextNode) { + removeActiveClass($selectedNode); + addActiveClass($nextNode); + } + } + + function enterKeyHandler() { + if (!$selectedNode) { + return; + } + + deferred.resolve(decodeURIComponent($selectedNode.find('button').attr('data-value'))); + $specialCharDialog.modal('hide'); + } + + function keyDownEventHandler(event) { + event.preventDefault(); + var keyCode = event.keyCode; + if (keyCode === undefined || keyCode === null) { + return; + } + // check arrowKeys match + if (ARROW_KEYS.indexOf(keyCode) > -1) { + if ($selectedNode === null) { + addActiveClass($specialCharNode.eq(0)); + currentColumn = 1; + currentRow = 1; + return; + } + arrowKeyHandler(keyCode); + } else if (keyCode === ENTER_KEY) { + enterKeyHandler(); + } + return false; + } + + // remove class + removeActiveClass($specialCharNode); + + // find selected node + if (text) { + for (var i = 0; i < $specialCharNode.length; i++) { + var $checkNode = $($specialCharNode[i]); + if ($checkNode.text() === text) { + addActiveClass($checkNode); + currentRow = Math.ceil((i + 1) / COLUMN_LENGTH); + currentColumn = (i + 1) % COLUMN_LENGTH; + } + } + } + + ui.onDialogShown(self.$dialog, function() { + $(document).on('keydown', keyDownEventHandler); + + self.$dialog.find('button').tooltip(); + + $specialCharNode.on('click', function(event) { + event.preventDefault(); + deferred.resolve(decodeURIComponent($(event.currentTarget).find('button').attr('data-value'))); + ui.hideDialog(self.$dialog); + }); + }); + + ui.onDialogHidden(self.$dialog, function() { + $specialCharNode.off('click'); + + self.$dialog.find('button').tooltip('destroy'); + + $(document).off('keydown', keyDownEventHandler); + + if (deferred.state() === 'pending') { + deferred.reject(); + } + }); + + ui.showDialog(self.$dialog); + }); + }; + }, + }); +})); diff --git a/common/lib/summernote/summernote-bs4.css b/common/lib/summernote/summernote-bs4.css new file mode 100644 index 0000000..7a750be --- /dev/null +++ b/common/lib/summernote/summernote-bs4.css @@ -0,0 +1,13 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +@font-face{font-family:"summernote";font-style:normal;font-weight:400;font-display:auto;src:url(font/summernote.eot);src:url(font/summernote.eot?#iefix) format("embedded-opentype"),url(font/summernote.woff2) format("woff2"),url(font/summernote.woff) format("woff"),url(font/summernote.ttf) format("truetype")}[class^=note-icon]:before,[class*=" note-icon"]:before{display:inline-block;font-family:summernote;font-style:normal;font-size:inherit;text-decoration:inherit;text-rendering:auto;text-transform:none;vertical-align:middle;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;speak:none}.note-icon-fw{text-align:center;width:1.25em}.note-icon-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.note-icon-pull-left{float:left}.note-icon-pull-right{float:right}.note-icon.note-icon-pull-left{margin-right:.3em}.note-icon.note-icon-pull-right{margin-left:.3em}.note-icon-align::before{content:""}.note-icon-align-center::before{content:""}.note-icon-align-indent::before{content:""}.note-icon-align-justify::before{content:""}.note-icon-align-left::before{content:""}.note-icon-align-outdent::before{content:""}.note-icon-align-right::before{content:""}.note-icon-arrow-circle-down::before{content:""}.note-icon-arrow-circle-left::before{content:""}.note-icon-arrow-circle-right::before{content:""}.note-icon-arrow-circle-up::before{content:""}.note-icon-arrows-alt::before{content:""}.note-icon-arrows-h::before{content:""}.note-icon-arrows-v::before{content:""}.note-icon-bold::before{content:""}.note-icon-caret::before{content:""}.note-icon-chain-broken::before{content:""}.note-icon-circle::before{content:""}.note-icon-close::before{content:""}.note-icon-code::before{content:""}.note-icon-col-after::before{content:""}.note-icon-col-before::before{content:""}.note-icon-col-remove::before{content:""}.note-icon-eraser::before{content:""}.note-icon-float-left::before{content:""}.note-icon-float-none::before{content:""}.note-icon-float-right::before{content:""}.note-icon-font::before{content:""}.note-icon-frame::before{content:""}.note-icon-italic::before{content:""}.note-icon-link::before{content:""}.note-icon-magic::before{content:""}.note-icon-menu-check::before{content:""}.note-icon-minus::before{content:""}.note-icon-orderedlist::before{content:""}.note-icon-pencil::before{content:""}.note-icon-picture::before{content:""}.note-icon-question::before{content:""}.note-icon-redo::before{content:""}.note-icon-rollback::before{content:""}.note-icon-row-above::before{content:""}.note-icon-row-below::before{content:""}.note-icon-row-remove::before{content:""}.note-icon-special-character::before{content:""}.note-icon-square::before{content:""}.note-icon-strikethrough::before{content:""}.note-icon-subscript::before{content:""}.note-icon-summernote::before{content:""}.note-icon-superscript::before{content:""}.note-icon-table::before{content:""}.note-icon-text-height::before{content:""}.note-icon-trash::before{content:""}.note-icon-underline::before{content:""}.note-icon-undo::before{content:""}.note-icon-unorderedlist::before{content:""}.note-icon-video::before{content:""}.note-editor{position:relative}.note-editor .note-dropzone{position:absolute;display:none;z-index:100;color:#87cefa;background-color:#fff;opacity:.95}.note-editor .note-dropzone .note-dropzone-message{display:table-cell;vertical-align:middle;text-align:center;font-size:28px;font-weight:700}.note-editor .note-dropzone.hover{color:#098ddf}.note-editor.dragover .note-dropzone{display:table}.note-editor .note-editing-area{position:relative}.note-editor .note-editing-area .note-editable{outline:none}.note-editor .note-editing-area .note-editable sup{vertical-align:super}.note-editor .note-editing-area .note-editable sub{vertical-align:sub}.note-editor .note-editing-area .note-editable img.note-float-left{margin-right:10px}.note-editor .note-editing-area .note-editable img.note-float-right{margin-left:10px}.note-editor.note-frame,.note-editor.note-airframe{border:1px solid #00000032}.note-editor.note-frame.codeview .note-editing-area .note-editable,.note-editor.note-airframe.codeview .note-editing-area .note-editable{display:none}.note-editor.note-frame.codeview .note-editing-area .note-codable,.note-editor.note-airframe.codeview .note-editing-area .note-codable{display:block}.note-editor.note-frame .note-editing-area,.note-editor.note-airframe .note-editing-area{overflow:hidden}.note-editor.note-frame .note-editing-area .note-editable,.note-editor.note-airframe .note-editing-area .note-editable{padding:10px;overflow:auto;word-wrap:break-word}.note-editor.note-frame .note-editing-area .note-editable[contenteditable=false],.note-editor.note-airframe .note-editing-area .note-editable[contenteditable=false]{background-color:#8080801d}.note-editor.note-frame .note-editing-area .note-codable,.note-editor.note-airframe .note-editing-area .note-codable{display:none;width:100%;padding:10px;border:none;box-shadow:none;font-family:Menlo,Monaco,monospace,sans-serif;font-size:14px;color:#ccc;background-color:#222;resize:none;outline:none;-ms-box-sizing:border-box;box-sizing:border-box;border-radius:0;margin-bottom:0}.note-editor.note-frame.fullscreen,.note-editor.note-airframe.fullscreen{position:fixed;top:0;left:0;width:100% !important;z-index:1050}.note-editor.note-frame.fullscreen .note-resizebar,.note-editor.note-airframe.fullscreen .note-resizebar{display:none}.note-editor.note-frame .note-status-output,.note-editor.note-airframe .note-status-output{display:block;width:100%;font-size:14px;line-height:1.42857143;height:20px;margin-bottom:0;color:#000;border:0;border-top:1px solid #e2e2e2}.note-editor.note-frame .note-status-output:empty,.note-editor.note-airframe .note-status-output:empty{height:0;border-top:0 solid transparent}.note-editor.note-frame .note-status-output .pull-right,.note-editor.note-airframe .note-status-output .pull-right{float:right !important}.note-editor.note-frame .note-status-output .text-muted,.note-editor.note-airframe .note-status-output .text-muted{color:#777}.note-editor.note-frame .note-status-output .text-primary,.note-editor.note-airframe .note-status-output .text-primary{color:#286090}.note-editor.note-frame .note-status-output .text-success,.note-editor.note-airframe .note-status-output .text-success{color:#3c763d}.note-editor.note-frame .note-status-output .text-info,.note-editor.note-airframe .note-status-output .text-info{color:#31708f}.note-editor.note-frame .note-status-output .text-warning,.note-editor.note-airframe .note-status-output .text-warning{color:#8a6d3b}.note-editor.note-frame .note-status-output .text-danger,.note-editor.note-airframe .note-status-output .text-danger{color:#a94442}.note-editor.note-frame .note-status-output .alert,.note-editor.note-airframe .note-status-output .alert{margin:-7px 0 0 0;padding:7px 10px 2px 10px;border-radius:0;color:#000;background-color:#f5f5f5}.note-editor.note-frame .note-status-output .alert .note-icon,.note-editor.note-airframe .note-status-output .alert .note-icon{margin-right:5px}.note-editor.note-frame .note-status-output .alert-success,.note-editor.note-airframe .note-status-output .alert-success{color:#3c763d !important;background-color:#dff0d8 !important}.note-editor.note-frame .note-status-output .alert-info,.note-editor.note-airframe .note-status-output .alert-info{color:#31708f !important;background-color:#d9edf7 !important}.note-editor.note-frame .note-status-output .alert-warning,.note-editor.note-airframe .note-status-output .alert-warning{color:#8a6d3b !important;background-color:#fcf8e3 !important}.note-editor.note-frame .note-status-output .alert-danger,.note-editor.note-airframe .note-status-output .alert-danger{color:#a94442 !important;background-color:#f2dede !important}.note-editor.note-frame .note-statusbar,.note-editor.note-airframe .note-statusbar{background-color:#8080801d;border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-top:1px solid #00000032}.note-editor.note-frame .note-statusbar .note-resizebar,.note-editor.note-airframe .note-statusbar .note-resizebar{padding-top:1px;height:9px;width:100%;cursor:ns-resize}.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar,.note-editor.note-airframe .note-statusbar .note-resizebar .note-icon-bar{width:20px;margin:1px auto;border-top:1px solid #00000032}.note-editor.note-frame .note-statusbar.locked .note-resizebar,.note-editor.note-airframe .note-statusbar.locked .note-resizebar{cursor:default}.note-editor.note-frame .note-statusbar.locked .note-resizebar .note-icon-bar,.note-editor.note-airframe .note-statusbar.locked .note-resizebar .note-icon-bar{display:none}.note-editor.note-frame .note-placeholder,.note-editor.note-airframe .note-placeholder{padding:10px}.note-editor.note-airframe{border:0}.note-editor.note-airframe .note-editing-area .note-editable{padding:0}.note-popover.popover{display:none;max-width:none}.note-popover.popover .popover-content a{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.note-popover.popover .arrow{left:20px !important}.note-toolbar{position:relative}.note-popover .popover-content,.note-editor .note-toolbar{margin:0;padding:0 0 5px 5px}.note-popover .popover-content>.note-btn-group,.note-editor .note-toolbar>.note-btn-group{margin-top:5px;margin-left:0;margin-right:5px}.note-popover .popover-content .note-btn-group .note-table,.note-editor .note-toolbar .note-btn-group .note-table{min-width:0;padding:5px}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker{font-size:18px}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher{position:absolute !important;z-index:3;width:10em;height:10em;cursor:pointer}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted{position:relative !important;z-index:1;width:5em;height:5em;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted{position:absolute !important;z-index:2;width:1em;height:1em;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat}.note-popover .popover-content .note-style .dropdown-style blockquote,.note-popover .popover-content .note-style .dropdown-style pre,.note-editor .note-toolbar .note-style .dropdown-style blockquote,.note-editor .note-toolbar .note-style .dropdown-style pre{margin:0;padding:5px 10px}.note-popover .popover-content .note-style .dropdown-style h1,.note-popover .popover-content .note-style .dropdown-style h2,.note-popover .popover-content .note-style .dropdown-style h3,.note-popover .popover-content .note-style .dropdown-style h4,.note-popover .popover-content .note-style .dropdown-style h5,.note-popover .popover-content .note-style .dropdown-style h6,.note-popover .popover-content .note-style .dropdown-style p,.note-editor .note-toolbar .note-style .dropdown-style h1,.note-editor .note-toolbar .note-style .dropdown-style h2,.note-editor .note-toolbar .note-style .dropdown-style h3,.note-editor .note-toolbar .note-style .dropdown-style h4,.note-editor .note-toolbar .note-style .dropdown-style h5,.note-editor .note-toolbar .note-style .dropdown-style h6,.note-editor .note-toolbar .note-style .dropdown-style p{margin:0;padding:0}.note-popover .popover-content .note-color-all .note-dropdown-menu,.note-editor .note-toolbar .note-color-all .note-dropdown-menu{min-width:337px}.note-popover .popover-content .note-color .dropdown-toggle,.note-editor .note-toolbar .note-color .dropdown-toggle{width:20px;padding-left:5px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette{display:inline-block;margin:0;width:160px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette:first-child,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette:first-child{margin:0 5px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-palette-title,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-palette-title{font-size:12px;margin:2px 7px;text-align:center;border-bottom:1px solid #eee}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset,.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select{font-size:11px;margin:3px;padding:0 3px;cursor:pointer;width:100%;border-radius:5px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset:hover,.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select:hover,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset:hover,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select:hover{background:#eee}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-row,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-row{height:20px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select-btn,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select-btn{display:none}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn{border:1px solid #eee}.note-popover .popover-content .note-para .note-dropdown-menu,.note-editor .note-toolbar .note-para .note-dropdown-menu{min-width:228px;padding:5px}.note-popover .popover-content .note-para .note-dropdown-menu>div+div,.note-editor .note-toolbar .note-para .note-dropdown-menu>div+div{margin-left:5px}.note-popover .popover-content .note-dropdown-menu,.note-editor .note-toolbar .note-dropdown-menu{min-width:160px}.note-popover .popover-content .note-dropdown-menu.right,.note-editor .note-toolbar .note-dropdown-menu.right{right:0;left:auto}.note-popover .popover-content .note-dropdown-menu.right::before,.note-editor .note-toolbar .note-dropdown-menu.right::before{right:9px;left:auto !important}.note-popover .popover-content .note-dropdown-menu.right::after,.note-editor .note-toolbar .note-dropdown-menu.right::after{right:10px;left:auto !important}.note-popover .popover-content .note-dropdown-menu.note-check a i,.note-editor .note-toolbar .note-dropdown-menu.note-check a i{color:#00bfff;visibility:hidden}.note-popover .popover-content .note-dropdown-menu.note-check a.checked i,.note-editor .note-toolbar .note-dropdown-menu.note-check a.checked i{visibility:visible}.note-popover .popover-content .note-fontsize-10,.note-editor .note-toolbar .note-fontsize-10{font-size:10px}.note-popover .popover-content .note-color-palette,.note-editor .note-toolbar .note-color-palette{line-height:1}.note-popover .popover-content .note-color-palette div .note-color-btn,.note-editor .note-toolbar .note-color-palette div .note-color-btn{width:20px;height:20px;padding:0;margin:0;border:0;border-radius:0}.note-popover .popover-content .note-color-palette div .note-color-btn:hover,.note-editor .note-toolbar .note-color-palette div .note-color-btn:hover{transform:scale(1.2);transition:all .2s}.note-modal .modal-dialog{outline:0;border-radius:5px;box-shadow:0 3px 9px rgba(0,0,0,.5)}.note-modal .form-group{margin-left:0;margin-right:0}.note-modal .note-modal-form{margin:0}.note-modal .note-image-dialog .note-dropzone{min-height:100px;font-size:30px;line-height:4;color:#d3d3d3;text-align:center;border:4px dashed #d3d3d3;margin-bottom:10px}@-moz-document url-prefix(){.note-modal .note-image-input{height:auto}}.note-placeholder{position:absolute;display:none;color:gray}.note-handle .note-control-selection{position:absolute;display:none;border:1px solid #000}.note-handle .note-control-selection>div{position:absolute}.note-handle .note-control-selection .note-control-selection-bg{width:100%;height:100%;background-color:#000;-webkit-opacity:.3;-khtml-opacity:.3;-moz-opacity:.3;opacity:.3;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);filter:alpha(opacity=30)}.note-handle .note-control-selection .note-control-handle,.note-handle .note-control-selection .note-control-sizing,.note-handle .note-control-selection .note-control-holder{width:7px;height:7px;border:1px solid #000}.note-handle .note-control-selection .note-control-sizing{background-color:#000}.note-handle .note-control-selection .note-control-nw{top:-5px;left:-5px;border-right:none;border-bottom:none}.note-handle .note-control-selection .note-control-ne{top:-5px;right:-5px;border-bottom:none;border-left:none}.note-handle .note-control-selection .note-control-sw{bottom:-5px;left:-5px;border-top:none;border-right:none}.note-handle .note-control-selection .note-control-se{right:-5px;bottom:-5px;cursor:se-resize}.note-handle .note-control-selection .note-control-se.note-control-holder{cursor:default;border-top:none;border-left:none}.note-handle .note-control-selection .note-control-selection-info{right:0;bottom:0;padding:5px;margin:5px;color:#fff;background-color:#000;font-size:12px;border-radius:5px;-webkit-opacity:.7;-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(opacity=70);filter:alpha(opacity=70)}.note-hint-popover{min-width:100px;padding:2px}.note-hint-popover .popover-content{padding:3px;max-height:150px;overflow:auto}.note-hint-popover .popover-content .note-hint-group .note-hint-item{display:block !important;padding:3px}.note-hint-popover .popover-content .note-hint-group .note-hint-item.active,.note-hint-popover .popover-content .note-hint-group .note-hint-item:hover{display:block;clear:both;font-weight:400;line-height:1.4;color:#fff;white-space:nowrap;text-decoration:none;background-color:#428bca;outline:0;cursor:pointer}.note-toolbar{background:#8080801d}.note-btn-group .note-btn{border-color:#00000032;padding:.28rem .65rem;font-size:13px} diff --git a/common/lib/summernote/summernote-bs4.js b/common/lib/summernote/summernote-bs4.js new file mode 100644 index 0000000..7347d6e --- /dev/null +++ b/common/lib/summernote/summernote-bs4.js @@ -0,0 +1,10234 @@ +/*! + * + * Super simple wysiwyg editor v0.8.18 + * https://summernote.org + * + * + * Copyright 2013- Alan Hong. and other contributors + * summernote may be freely distributed under the MIT license. + * + * Date: 2020-05-20T18:09Z + * + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("jquery")); + else if(typeof define === 'function' && define.amd) + define(["jquery"], factory); + else { + var a = typeof exports === 'object' ? factory(require("jquery")) : factory(root["jQuery"]); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(window, function(__WEBPACK_EXTERNAL_MODULE__0__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 53); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 0: +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__0__; + +/***/ }), + +/***/ 1: +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); +/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + + + +var Renderer = /*#__PURE__*/function () { + function Renderer(markup, children, options, callback) { + _classCallCheck(this, Renderer); + + this.markup = markup; + this.children = children; + this.options = options; + this.callback = callback; + } + + _createClass(Renderer, [{ + key: "render", + value: function render($parent) { + var $node = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.markup); + + if (this.options && this.options.contents) { + $node.html(this.options.contents); + } + + if (this.options && this.options.className) { + $node.addClass(this.options.className); + } + + if (this.options && this.options.data) { + jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(this.options.data, function (k, v) { + $node.attr('data-' + k, v); + }); + } + + if (this.options && this.options.click) { + $node.on('click', this.options.click); + } + + if (this.children) { + var $container = $node.find('.note-children-container'); + this.children.forEach(function (child) { + child.render($container.length ? $container : $node); + }); + } + + if (this.callback) { + this.callback($node, this.options); + } + + if (this.options && this.options.callback) { + this.options.callback($node); + } + + if ($parent) { + $parent.append($node); + } + + return $node; + } + }]); + + return Renderer; +}(); + +/* harmony default export */ __webpack_exports__["a"] = ({ + create: function create(markup, callback) { + return function () { + var options = _typeof(arguments[1]) === 'object' ? arguments[1] : arguments[0]; + var children = Array.isArray(arguments[0]) ? arguments[0] : []; + + if (options && options.children) { + children = options.children; + } + + return new Renderer(markup, children, options, callback); + }; + } +}); + +/***/ }), + +/***/ 2: +/***/ (function(module, exports) { + +/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */ +module.exports = __webpack_amd_options__; + +/* WEBPACK VAR INJECTION */}.call(this, {})) + +/***/ }), + +/***/ 3: +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; + +// EXTERNAL MODULE: external {"root":"jQuery","commonjs2":"jquery","commonjs":"jquery","amd":"jquery"} +var external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_ = __webpack_require__(0); +var external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default = /*#__PURE__*/__webpack_require__.n(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_); + +// CONCATENATED MODULE: ./src/js/base/summernote-en-US.js + +external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote || { + lang: {} +}; +external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.lang, { + 'en-US': { + font: { + bold: 'Bold', + italic: 'Italic', + underline: 'Underline', + clear: 'Remove Font Style', + height: 'Line Height', + name: 'Font Family', + strikethrough: 'Strikethrough', + subscript: 'Subscript', + superscript: 'Superscript', + size: 'Font Size', + sizeunit: 'Font Size Unit' + }, + image: { + image: 'Picture', + insert: 'Insert Image', + resizeFull: 'Resize full', + resizeHalf: 'Resize half', + resizeQuarter: 'Resize quarter', + resizeNone: 'Original size', + floatLeft: 'Float Left', + floatRight: 'Float Right', + floatNone: 'Remove float', + shapeRounded: 'Shape: Rounded', + shapeCircle: 'Shape: Circle', + shapeThumbnail: 'Shape: Thumbnail', + shapeNone: 'Shape: None', + dragImageHere: 'Drag image or text here', + dropImage: 'Drop image or Text', + selectFromFiles: 'Select from files', + maximumFileSize: 'Maximum file size', + maximumFileSizeError: 'Maximum file size exceeded.', + url: 'Image URL', + remove: 'Remove Image', + original: 'Original' + }, + video: { + video: 'Video', + videoLink: 'Video Link', + insert: 'Insert Video', + url: 'Video URL', + providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)' + }, + link: { + link: 'Link', + insert: 'Insert Link', + unlink: 'Unlink', + edit: 'Edit', + textToDisplay: 'Text to display', + url: 'To what URL should this link go?', + openInNewWindow: 'Open in new window', + useProtocol: 'Use default protocol' + }, + table: { + table: 'Table', + addRowAbove: 'Add row above', + addRowBelow: 'Add row below', + addColLeft: 'Add column left', + addColRight: 'Add column right', + delRow: 'Delete row', + delCol: 'Delete column', + delTable: 'Delete table' + }, + hr: { + insert: 'Insert Horizontal Rule' + }, + style: { + style: 'Style', + p: 'Normal', + blockquote: 'Quote', + pre: 'Code', + h1: 'Header 1', + h2: 'Header 2', + h3: 'Header 3', + h4: 'Header 4', + h5: 'Header 5', + h6: 'Header 6' + }, + lists: { + unordered: 'Unordered list', + ordered: 'Ordered list' + }, + options: { + help: 'Help', + fullscreen: 'Full Screen', + codeview: 'Code View' + }, + paragraph: { + paragraph: 'Paragraph', + outdent: 'Outdent', + indent: 'Indent', + left: 'Align left', + center: 'Align center', + right: 'Align right', + justify: 'Justify full' + }, + color: { + recent: 'Recent Color', + more: 'More Color', + background: 'Background Color', + foreground: 'Text Color', + transparent: 'Transparent', + setTransparent: 'Set transparent', + reset: 'Reset', + resetToDefault: 'Reset to default', + cpSelect: 'Select' + }, + shortcut: { + shortcuts: 'Keyboard shortcuts', + close: 'Close', + textFormatting: 'Text formatting', + action: 'Action', + paragraphFormatting: 'Paragraph formatting', + documentStyle: 'Document Style', + extraKeys: 'Extra keys' + }, + help: { + 'escape': 'Escape', + 'insertParagraph': 'Insert Paragraph', + 'undo': 'Undo the last command', + 'redo': 'Redo the last command', + 'tab': 'Tab', + 'untab': 'Untab', + 'bold': 'Set a bold style', + 'italic': 'Set a italic style', + 'underline': 'Set a underline style', + 'strikethrough': 'Set a strikethrough style', + 'removeFormat': 'Clean a style', + 'justifyLeft': 'Set left align', + 'justifyCenter': 'Set center align', + 'justifyRight': 'Set right align', + 'justifyFull': 'Set full align', + 'insertUnorderedList': 'Toggle unordered list', + 'insertOrderedList': 'Toggle ordered list', + 'outdent': 'Outdent on current paragraph', + 'indent': 'Indent on current paragraph', + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', + 'formatH1': 'Change current block\'s format as H1', + 'formatH2': 'Change current block\'s format as H2', + 'formatH3': 'Change current block\'s format as H3', + 'formatH4': 'Change current block\'s format as H4', + 'formatH5': 'Change current block\'s format as H5', + 'formatH6': 'Change current block\'s format as H6', + 'insertHorizontalRule': 'Insert horizontal rule', + 'linkDialog.show': 'Show Link Dialog' + }, + history: { + undo: 'Undo', + redo: 'Redo' + }, + specialChar: { + specialChar: 'SPECIAL CHARACTERS', + select: 'Select Special characters' + }, + output: { + noSelection: 'No Selection Made!' + } + } +}); +// CONCATENATED MODULE: ./src/js/base/core/env.js + +var isSupportAmd = typeof define === 'function' && __webpack_require__(2); // eslint-disable-line + +/** + * returns whether font is installed or not. + * + * @param {String} fontName + * @return {Boolean} + */ + +var genericFontFamilies = ['sans-serif', 'serif', 'monospace', 'cursive', 'fantasy']; + +function validFontName(fontName) { + return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.inArray(fontName.toLowerCase(), genericFontFamilies) === -1 ? "'".concat(fontName, "'") : fontName; +} + +function env_isFontInstalled(fontName) { + var testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS'; + var testText = 'mmmmmmmmmmwwwww'; + var testSize = '200px'; + var canvas = document.createElement('canvas'); + var context = canvas.getContext('2d'); + context.font = testSize + " '" + testFontName + "'"; + var originalWidth = context.measureText(testText).width; + context.font = testSize + ' ' + validFontName(fontName) + ', "' + testFontName + '"'; + var width = context.measureText(testText).width; + return originalWidth !== width; +} + +var userAgent = navigator.userAgent; +var isMSIE = /MSIE|Trident/i.test(userAgent); +var browserVersion; + +if (isMSIE) { + var matches = /MSIE (\d+[.]\d+)/.exec(userAgent); + + if (matches) { + browserVersion = parseFloat(matches[1]); + } + + matches = /Trident\/.*rv:([0-9]{1,}[.0-9]{0,})/.exec(userAgent); + + if (matches) { + browserVersion = parseFloat(matches[1]); + } +} + +var isEdge = /Edge\/\d+/.test(userAgent); +var isSupportTouch = 'ontouchstart' in window || navigator.MaxTouchPoints > 0 || navigator.msMaxTouchPoints > 0; // [workaround] IE doesn't have input events for contentEditable +// - see: https://goo.gl/4bfIvA + +var inputEventName = isMSIE ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input'; +/** + * @class core.env + * + * Object which check platform and agent + * + * @singleton + * @alternateClassName env + */ + +/* harmony default export */ var env = ({ + isMac: navigator.appVersion.indexOf('Mac') > -1, + isMSIE: isMSIE, + isEdge: isEdge, + isFF: !isEdge && /firefox/i.test(userAgent), + isPhantom: /PhantomJS/i.test(userAgent), + isWebkit: !isEdge && /webkit/i.test(userAgent), + isChrome: !isEdge && /chrome/i.test(userAgent), + isSafari: !isEdge && /safari/i.test(userAgent) && !/chrome/i.test(userAgent), + browserVersion: browserVersion, + jqueryVersion: parseFloat(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.fn.jquery), + isSupportAmd: isSupportAmd, + isSupportTouch: isSupportTouch, + isFontInstalled: env_isFontInstalled, + isW3CRangeSupport: !!document.createRange, + inputEventName: inputEventName, + genericFontFamilies: genericFontFamilies, + validFontName: validFontName +}); +// CONCATENATED MODULE: ./src/js/base/core/func.js + +/** + * @class core.func + * + * func utils (for high-order func's arg) + * + * @singleton + * @alternateClassName func + */ + +function eq(itemA) { + return function (itemB) { + return itemA === itemB; + }; +} + +function eq2(itemA, itemB) { + return itemA === itemB; +} + +function peq2(propName) { + return function (itemA, itemB) { + return itemA[propName] === itemB[propName]; + }; +} + +function ok() { + return true; +} + +function fail() { + return false; +} + +function not(f) { + return function () { + return !f.apply(f, arguments); + }; +} + +function and(fA, fB) { + return function (item) { + return fA(item) && fB(item); + }; +} + +function func_self(a) { + return a; +} + +function func_invoke(obj, method) { + return function () { + return obj[method].apply(obj, arguments); + }; +} + +var idCounter = 0; +/** + * reset globally-unique id + * + */ + +function resetUniqueId() { + idCounter = 0; +} +/** + * generate a globally-unique id + * + * @param {String} [prefix] + */ + + +function uniqueId(prefix) { + var id = ++idCounter + ''; + return prefix ? prefix + id : id; +} +/** + * returns bnd (bounds) from rect + * + * - IE Compatibility Issue: http://goo.gl/sRLOAo + * - Scroll Issue: http://goo.gl/sNjUc + * + * @param {Rect} rect + * @return {Object} bounds + * @return {Number} bounds.top + * @return {Number} bounds.left + * @return {Number} bounds.width + * @return {Number} bounds.height + */ + + +function rect2bnd(rect) { + var $document = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document); + return { + top: rect.top + $document.scrollTop(), + left: rect.left + $document.scrollLeft(), + width: rect.right - rect.left, + height: rect.bottom - rect.top + }; +} +/** + * returns a copy of the object where the keys have become the values and the values the keys. + * @param {Object} obj + * @return {Object} + */ + + +function invertObject(obj) { + var inverted = {}; + + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + inverted[obj[key]] = key; + } + } + + return inverted; +} +/** + * @param {String} namespace + * @param {String} [prefix] + * @return {String} + */ + + +function namespaceToCamel(namespace, prefix) { + prefix = prefix || ''; + return prefix + namespace.split('.').map(function (name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + }).join(''); +} +/** + * Returns a function, that, as long as it continues to be invoked, will not + * be triggered. The function will be called after it stops being called for + * N milliseconds. If `immediate` is passed, trigger the function on the + * leading edge, instead of the trailing. + * @param {Function} func + * @param {Number} wait + * @param {Boolean} immediate + * @return {Function} + */ + + +function debounce(func, wait, immediate) { + var timeout; + return function () { + var context = this; + var args = arguments; + + var later = function later() { + timeout = null; + + if (!immediate) { + func.apply(context, args); + } + }; + + var callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + + if (callNow) { + func.apply(context, args); + } + }; +} +/** + * + * @param {String} url + * @return {Boolean} + */ + + +function isValidUrl(url) { + var expression = /[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/gi; + return expression.test(url); +} + +/* harmony default export */ var func = ({ + eq: eq, + eq2: eq2, + peq2: peq2, + ok: ok, + fail: fail, + self: func_self, + not: not, + and: and, + invoke: func_invoke, + resetUniqueId: resetUniqueId, + uniqueId: uniqueId, + rect2bnd: rect2bnd, + invertObject: invertObject, + namespaceToCamel: namespaceToCamel, + debounce: debounce, + isValidUrl: isValidUrl +}); +// CONCATENATED MODULE: ./src/js/base/core/lists.js + +/** + * returns the first item of an array. + * + * @param {Array} array + */ + +function lists_head(array) { + return array[0]; +} +/** + * returns the last item of an array. + * + * @param {Array} array + */ + + +function lists_last(array) { + return array[array.length - 1]; +} +/** + * returns everything but the last entry of the array. + * + * @param {Array} array + */ + + +function initial(array) { + return array.slice(0, array.length - 1); +} +/** + * returns the rest of the items in an array. + * + * @param {Array} array + */ + + +function tail(array) { + return array.slice(1); +} +/** + * returns item of array + */ + + +function find(array, pred) { + for (var idx = 0, len = array.length; idx < len; idx++) { + var item = array[idx]; + + if (pred(item)) { + return item; + } + } +} +/** + * returns true if all of the values in the array pass the predicate truth test. + */ + + +function lists_all(array, pred) { + for (var idx = 0, len = array.length; idx < len; idx++) { + if (!pred(array[idx])) { + return false; + } + } + + return true; +} +/** + * returns true if the value is present in the list. + */ + + +function contains(array, item) { + if (array && array.length && item) { + if (array.indexOf) { + return array.indexOf(item) !== -1; + } else if (array.contains) { + // `DOMTokenList` doesn't implement `.indexOf`, but it implements `.contains` + return array.contains(item); + } + } + + return false; +} +/** + * get sum from a list + * + * @param {Array} array - array + * @param {Function} fn - iterator + */ + + +function sum(array, fn) { + fn = fn || func.self; + return array.reduce(function (memo, v) { + return memo + fn(v); + }, 0); +} +/** + * returns a copy of the collection with array type. + * @param {Collection} collection - collection eg) node.childNodes, ... + */ + + +function from(collection) { + var result = []; + var length = collection.length; + var idx = -1; + + while (++idx < length) { + result[idx] = collection[idx]; + } + + return result; +} +/** + * returns whether list is empty or not + */ + + +function lists_isEmpty(array) { + return !array || !array.length; +} +/** + * cluster elements by predicate function. + * + * @param {Array} array - array + * @param {Function} fn - predicate function for cluster rule + * @param {Array[]} + */ + + +function clusterBy(array, fn) { + if (!array.length) { + return []; + } + + var aTail = tail(array); + return aTail.reduce(function (memo, v) { + var aLast = lists_last(memo); + + if (fn(lists_last(aLast), v)) { + aLast[aLast.length] = v; + } else { + memo[memo.length] = [v]; + } + + return memo; + }, [[lists_head(array)]]); +} +/** + * returns a copy of the array with all false values removed + * + * @param {Array} array - array + * @param {Function} fn - predicate function for cluster rule + */ + + +function compact(array) { + var aResult = []; + + for (var idx = 0, len = array.length; idx < len; idx++) { + if (array[idx]) { + aResult.push(array[idx]); + } + } + + return aResult; +} +/** + * produces a duplicate-free version of the array + * + * @param {Array} array + */ + + +function unique(array) { + var results = []; + + for (var idx = 0, len = array.length; idx < len; idx++) { + if (!contains(results, array[idx])) { + results.push(array[idx]); + } + } + + return results; +} +/** + * returns next item. + * @param {Array} array + */ + + +function lists_next(array, item) { + if (array && array.length && item) { + var idx = array.indexOf(item); + return idx === -1 ? null : array[idx + 1]; + } + + return null; +} +/** + * returns prev item. + * @param {Array} array + */ + + +function prev(array, item) { + if (array && array.length && item) { + var idx = array.indexOf(item); + return idx === -1 ? null : array[idx - 1]; + } + + return null; +} +/** + * @class core.list + * + * list utils + * + * @singleton + * @alternateClassName list + */ + + +/* harmony default export */ var lists = ({ + head: lists_head, + last: lists_last, + initial: initial, + tail: tail, + prev: prev, + next: lists_next, + find: find, + contains: contains, + all: lists_all, + sum: sum, + from: from, + isEmpty: lists_isEmpty, + clusterBy: clusterBy, + compact: compact, + unique: unique +}); +// CONCATENATED MODULE: ./src/js/base/core/dom.js + + + + +var NBSP_CHAR = String.fromCharCode(160); +var ZERO_WIDTH_NBSP_CHAR = "\uFEFF"; +/** + * @method isEditable + * + * returns whether node is `note-editable` or not. + * + * @param {Node} node + * @return {Boolean} + */ + +function isEditable(node) { + return node && external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).hasClass('note-editable'); +} +/** + * @method isControlSizing + * + * returns whether node is `note-control-sizing` or not. + * + * @param {Node} node + * @return {Boolean} + */ + + +function isControlSizing(node) { + return node && external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).hasClass('note-control-sizing'); +} +/** + * @method makePredByNodeName + * + * returns predicate which judge whether nodeName is same + * + * @param {String} nodeName + * @return {Function} + */ + + +function makePredByNodeName(nodeName) { + nodeName = nodeName.toUpperCase(); + return function (node) { + return node && node.nodeName.toUpperCase() === nodeName; + }; +} +/** + * @method isText + * + * + * + * @param {Node} node + * @return {Boolean} true if node's type is text(3) + */ + + +function isText(node) { + return node && node.nodeType === 3; +} +/** + * @method isElement + * + * + * + * @param {Node} node + * @return {Boolean} true if node's type is element(1) + */ + + +function isElement(node) { + return node && node.nodeType === 1; +} +/** + * ex) br, col, embed, hr, img, input, ... + * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements + */ + + +function isVoid(node) { + return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON|^INPUT|^AUDIO|^VIDEO|^EMBED/.test(node.nodeName.toUpperCase()); +} + +function isPara(node) { + if (isEditable(node)) { + return false; + } // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph + + + return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase()); +} + +function isHeading(node) { + return node && /^H[1-7]/.test(node.nodeName.toUpperCase()); +} + +var isPre = makePredByNodeName('PRE'); +var isLi = makePredByNodeName('LI'); + +function isPurePara(node) { + return isPara(node) && !isLi(node); +} + +var isTable = makePredByNodeName('TABLE'); +var isData = makePredByNodeName('DATA'); + +function dom_isInline(node) { + return !isBodyContainer(node) && !isList(node) && !isHr(node) && !isPara(node) && !isTable(node) && !isBlockquote(node) && !isData(node); +} + +function isList(node) { + return node && /^UL|^OL/.test(node.nodeName.toUpperCase()); +} + +var isHr = makePredByNodeName('HR'); + +function dom_isCell(node) { + return node && /^TD|^TH/.test(node.nodeName.toUpperCase()); +} + +var isBlockquote = makePredByNodeName('BLOCKQUOTE'); + +function isBodyContainer(node) { + return dom_isCell(node) || isBlockquote(node) || isEditable(node); +} + +var isAnchor = makePredByNodeName('A'); + +function isParaInline(node) { + return dom_isInline(node) && !!dom_ancestor(node, isPara); +} + +function isBodyInline(node) { + return dom_isInline(node) && !dom_ancestor(node, isPara); +} + +var isBody = makePredByNodeName('BODY'); +/** + * returns whether nodeB is closest sibling of nodeA + * + * @param {Node} nodeA + * @param {Node} nodeB + * @return {Boolean} + */ + +function isClosestSibling(nodeA, nodeB) { + return nodeA.nextSibling === nodeB || nodeA.previousSibling === nodeB; +} +/** + * returns array of closest siblings with node + * + * @param {Node} node + * @param {function} [pred] - predicate function + * @return {Node[]} + */ + + +function withClosestSiblings(node, pred) { + pred = pred || func.ok; + var siblings = []; + + if (node.previousSibling && pred(node.previousSibling)) { + siblings.push(node.previousSibling); + } + + siblings.push(node); + + if (node.nextSibling && pred(node.nextSibling)) { + siblings.push(node.nextSibling); + } + + return siblings; +} +/** + * blank HTML for cursor position + * - [workaround] old IE only works with   + * - [workaround] IE11 and other browser works with bogus br + */ + + +var blankHTML = env.isMSIE && env.browserVersion < 11 ? ' ' : '
    '; +/** + * @method nodeLength + * + * returns #text's text size or element's childNodes size + * + * @param {Node} node + */ + +function nodeLength(node) { + if (isText(node)) { + return node.nodeValue.length; + } + + if (node) { + return node.childNodes.length; + } + + return 0; +} +/** + * returns whether deepest child node is empty or not. + * + * @param {Node} node + * @return {Boolean} + */ + + +function deepestChildIsEmpty(node) { + do { + if (node.firstElementChild === null || node.firstElementChild.innerHTML === '') break; + } while (node = node.firstElementChild); + + return dom_isEmpty(node); +} +/** + * returns whether node is empty or not. + * + * @param {Node} node + * @return {Boolean} + */ + + +function dom_isEmpty(node) { + var len = nodeLength(node); + + if (len === 0) { + return true; + } else if (!isText(node) && len === 1 && node.innerHTML === blankHTML) { + // ex)


    ,
    + return true; + } else if (lists.all(node.childNodes, isText) && node.innerHTML === '') { + // ex)

    , + return true; + } + + return false; +} +/** + * padding blankHTML if node is empty (for cursor position) + */ + + +function paddingBlankHTML(node) { + if (!isVoid(node) && !nodeLength(node)) { + node.innerHTML = blankHTML; + } +} +/** + * find nearest ancestor predicate hit + * + * @param {Node} node + * @param {Function} pred - predicate function + */ + + +function dom_ancestor(node, pred) { + while (node) { + if (pred(node)) { + return node; + } + + if (isEditable(node)) { + break; + } + + node = node.parentNode; + } + + return null; +} +/** + * find nearest ancestor only single child blood line and predicate hit + * + * @param {Node} node + * @param {Function} pred - predicate function + */ + + +function singleChildAncestor(node, pred) { + node = node.parentNode; + + while (node) { + if (nodeLength(node) !== 1) { + break; + } + + if (pred(node)) { + return node; + } + + if (isEditable(node)) { + break; + } + + node = node.parentNode; + } + + return null; +} +/** + * returns new array of ancestor nodes (until predicate hit). + * + * @param {Node} node + * @param {Function} [optional] pred - predicate function + */ + + +function listAncestor(node, pred) { + pred = pred || func.fail; + var ancestors = []; + dom_ancestor(node, function (el) { + if (!isEditable(el)) { + ancestors.push(el); + } + + return pred(el); + }); + return ancestors; +} +/** + * find farthest ancestor predicate hit + */ + + +function lastAncestor(node, pred) { + var ancestors = listAncestor(node); + return lists.last(ancestors.filter(pred)); +} +/** + * returns common ancestor node between two nodes. + * + * @param {Node} nodeA + * @param {Node} nodeB + */ + + +function dom_commonAncestor(nodeA, nodeB) { + var ancestors = listAncestor(nodeA); + + for (var n = nodeB; n; n = n.parentNode) { + if (ancestors.indexOf(n) > -1) return n; + } + + return null; // difference document area +} +/** + * listing all previous siblings (until predicate hit). + * + * @param {Node} node + * @param {Function} [optional] pred - predicate function + */ + + +function listPrev(node, pred) { + pred = pred || func.fail; + var nodes = []; + + while (node) { + if (pred(node)) { + break; + } + + nodes.push(node); + node = node.previousSibling; + } + + return nodes; +} +/** + * listing next siblings (until predicate hit). + * + * @param {Node} node + * @param {Function} [pred] - predicate function + */ + + +function listNext(node, pred) { + pred = pred || func.fail; + var nodes = []; + + while (node) { + if (pred(node)) { + break; + } + + nodes.push(node); + node = node.nextSibling; + } + + return nodes; +} +/** + * listing descendant nodes + * + * @param {Node} node + * @param {Function} [pred] - predicate function + */ + + +function listDescendant(node, pred) { + var descendants = []; + pred = pred || func.ok; // start DFS(depth first search) with node + + (function fnWalk(current) { + if (node !== current && pred(current)) { + descendants.push(current); + } + + for (var idx = 0, len = current.childNodes.length; idx < len; idx++) { + fnWalk(current.childNodes[idx]); + } + })(node); + + return descendants; +} +/** + * wrap node with new tag. + * + * @param {Node} node + * @param {Node} tagName of wrapper + * @return {Node} - wrapper + */ + + +function wrap(node, wrapperName) { + var parent = node.parentNode; + var wrapper = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('<' + wrapperName + '>')[0]; + parent.insertBefore(wrapper, node); + wrapper.appendChild(node); + return wrapper; +} +/** + * insert node after preceding + * + * @param {Node} node + * @param {Node} preceding - predicate function + */ + + +function insertAfter(node, preceding) { + var next = preceding.nextSibling; + var parent = preceding.parentNode; + + if (next) { + parent.insertBefore(node, next); + } else { + parent.appendChild(node); + } + + return node; +} +/** + * append elements. + * + * @param {Node} node + * @param {Collection} aChild + */ + + +function appendChildNodes(node, aChild) { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(aChild, function (idx, child) { + node.appendChild(child); + }); + return node; +} +/** + * returns whether boundaryPoint is left edge or not. + * + * @param {BoundaryPoint} point + * @return {Boolean} + */ + + +function isLeftEdgePoint(point) { + return point.offset === 0; +} +/** + * returns whether boundaryPoint is right edge or not. + * + * @param {BoundaryPoint} point + * @return {Boolean} + */ + + +function isRightEdgePoint(point) { + return point.offset === nodeLength(point.node); +} +/** + * returns whether boundaryPoint is edge or not. + * + * @param {BoundaryPoint} point + * @return {Boolean} + */ + + +function isEdgePoint(point) { + return isLeftEdgePoint(point) || isRightEdgePoint(point); +} +/** + * returns whether node is left edge of ancestor or not. + * + * @param {Node} node + * @param {Node} ancestor + * @return {Boolean} + */ + + +function dom_isLeftEdgeOf(node, ancestor) { + while (node && node !== ancestor) { + if (dom_position(node) !== 0) { + return false; + } + + node = node.parentNode; + } + + return true; +} +/** + * returns whether node is right edge of ancestor or not. + * + * @param {Node} node + * @param {Node} ancestor + * @return {Boolean} + */ + + +function isRightEdgeOf(node, ancestor) { + if (!ancestor) { + return false; + } + + while (node && node !== ancestor) { + if (dom_position(node) !== nodeLength(node.parentNode) - 1) { + return false; + } + + node = node.parentNode; + } + + return true; +} +/** + * returns whether point is left edge of ancestor or not. + * @param {BoundaryPoint} point + * @param {Node} ancestor + * @return {Boolean} + */ + + +function isLeftEdgePointOf(point, ancestor) { + return isLeftEdgePoint(point) && dom_isLeftEdgeOf(point.node, ancestor); +} +/** + * returns whether point is right edge of ancestor or not. + * @param {BoundaryPoint} point + * @param {Node} ancestor + * @return {Boolean} + */ + + +function isRightEdgePointOf(point, ancestor) { + return isRightEdgePoint(point) && isRightEdgeOf(point.node, ancestor); +} +/** + * returns offset from parent. + * + * @param {Node} node + */ + + +function dom_position(node) { + var offset = 0; + + while (node = node.previousSibling) { + offset += 1; + } + + return offset; +} + +function hasChildren(node) { + return !!(node && node.childNodes && node.childNodes.length); +} +/** + * returns previous boundaryPoint + * + * @param {BoundaryPoint} point + * @param {Boolean} isSkipInnerOffset + * @return {BoundaryPoint} + */ + + +function dom_prevPoint(point, isSkipInnerOffset) { + var node; + var offset; + + if (point.offset === 0) { + if (isEditable(point.node)) { + return null; + } + + node = point.node.parentNode; + offset = dom_position(point.node); + } else if (hasChildren(point.node)) { + node = point.node.childNodes[point.offset - 1]; + offset = nodeLength(node); + } else { + node = point.node; + offset = isSkipInnerOffset ? 0 : point.offset - 1; + } + + return { + node: node, + offset: offset + }; +} +/** + * returns next boundaryPoint + * + * @param {BoundaryPoint} point + * @param {Boolean} isSkipInnerOffset + * @return {BoundaryPoint} + */ + + +function dom_nextPoint(point, isSkipInnerOffset) { + var node, offset; + + if (nodeLength(point.node) === point.offset) { + if (isEditable(point.node)) { + return null; + } + + var nextTextNode = getNextTextNode(point.node); + + if (nextTextNode) { + node = nextTextNode; + offset = 0; + } else { + node = point.node.parentNode; + offset = dom_position(point.node) + 1; + } + } else if (hasChildren(point.node)) { + node = point.node.childNodes[point.offset]; + offset = 0; + } else { + node = point.node; + offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1; + } + + return { + node: node, + offset: offset + }; +} +/** + * returns next boundaryPoint with empty node + * + * @param {BoundaryPoint} point + * @param {Boolean} isSkipInnerOffset + * @return {BoundaryPoint} + */ + + +function nextPointWithEmptyNode(point, isSkipInnerOffset) { + var node, offset; // if node is empty string node, return current node's sibling. + + if (dom_isEmpty(point.node)) { + node = point.node.nextSibling; + offset = 0; + return { + node: node, + offset: offset + }; + } + + if (nodeLength(point.node) === point.offset) { + if (isEditable(point.node)) { + return null; + } + + var nextTextNode = getNextTextNode(point.node); + + if (nextTextNode) { + node = nextTextNode; + offset = 0; + } else { + node = point.node.parentNode; + offset = dom_position(point.node) + 1; + } // if next node is editable, return current node's sibling node. + + + if (isEditable(node)) { + node = point.node.nextSibling; + offset = 0; + } + } else if (hasChildren(point.node)) { + node = point.node.childNodes[point.offset]; + offset = 0; + + if (dom_isEmpty(node)) { + return null; + } + } else { + node = point.node; + offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1; + + if (dom_isEmpty(node)) { + return null; + } + } + + return { + node: node, + offset: offset + }; +} +/* +* returns the next Text node index or 0 if not found. +*/ + + +function getNextTextNode(actual) { + if (!actual.nextSibling) return undefined; + if (actual.parent !== actual.nextSibling.parent) return undefined; + if (isText(actual.nextSibling)) return actual.nextSibling; + return getNextTextNode(actual.nextSibling); +} +/** + * returns whether pointA and pointB is same or not. + * + * @param {BoundaryPoint} pointA + * @param {BoundaryPoint} pointB + * @return {Boolean} + */ + + +function isSamePoint(pointA, pointB) { + return pointA.node === pointB.node && pointA.offset === pointB.offset; +} +/** + * returns whether point is visible (can set cursor) or not. + * + * @param {BoundaryPoint} point + * @return {Boolean} + */ + + +function isVisiblePoint(point) { + if (isText(point.node) || !hasChildren(point.node) || dom_isEmpty(point.node)) { + return true; + } + + var leftNode = point.node.childNodes[point.offset - 1]; + var rightNode = point.node.childNodes[point.offset]; + + if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) { + return true; + } + + return false; +} +/** + * @method prevPointUtil + * + * @param {BoundaryPoint} point + * @param {Function} pred + * @return {BoundaryPoint} + */ + + +function prevPointUntil(point, pred) { + while (point) { + if (pred(point)) { + return point; + } + + point = dom_prevPoint(point); + } + + return null; +} +/** + * @method nextPointUntil + * + * @param {BoundaryPoint} point + * @param {Function} pred + * @return {BoundaryPoint} + */ + + +function nextPointUntil(point, pred) { + while (point) { + if (pred(point)) { + return point; + } + + point = dom_nextPoint(point); + } + + return null; +} +/** + * returns whether point has character or not. + * + * @param {Point} point + * @return {Boolean} + */ + + +function isCharPoint(point) { + if (!isText(point.node)) { + return false; + } + + var ch = point.node.nodeValue.charAt(point.offset - 1); + return ch && ch !== ' ' && ch !== NBSP_CHAR; +} +/** + * returns whether point has space or not. + * + * @param {Point} point + * @return {Boolean} + */ + + +function isSpacePoint(point) { + if (!isText(point.node)) { + return false; + } + + var ch = point.node.nodeValue.charAt(point.offset - 1); + return ch === ' ' || ch === NBSP_CHAR; +} +/** + * @method walkPoint + * + * @param {BoundaryPoint} startPoint + * @param {BoundaryPoint} endPoint + * @param {Function} handler + * @param {Boolean} isSkipInnerOffset + */ + + +function walkPoint(startPoint, endPoint, handler, isSkipInnerOffset) { + var point = startPoint; + + while (point) { + handler(point); + + if (isSamePoint(point, endPoint)) { + break; + } + + var isSkipOffset = isSkipInnerOffset && startPoint.node !== point.node && endPoint.node !== point.node; + point = nextPointWithEmptyNode(point, isSkipOffset); + } +} +/** + * @method makeOffsetPath + * + * return offsetPath(array of offset) from ancestor + * + * @param {Node} ancestor - ancestor node + * @param {Node} node + */ + + +function makeOffsetPath(ancestor, node) { + var ancestors = listAncestor(node, func.eq(ancestor)); + return ancestors.map(dom_position).reverse(); +} +/** + * @method fromOffsetPath + * + * return element from offsetPath(array of offset) + * + * @param {Node} ancestor - ancestor node + * @param {array} offsets - offsetPath + */ + + +function fromOffsetPath(ancestor, offsets) { + var current = ancestor; + + for (var i = 0, len = offsets.length; i < len; i++) { + if (current.childNodes.length <= offsets[i]) { + current = current.childNodes[current.childNodes.length - 1]; + } else { + current = current.childNodes[offsets[i]]; + } + } + + return current; +} +/** + * @method splitNode + * + * split element or #text + * + * @param {BoundaryPoint} point + * @param {Object} [options] + * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false + * @param {Boolean} [options.isNotSplitEdgePoint] - default: false + * @param {Boolean} [options.isDiscardEmptySplits] - default: false + * @return {Node} right node of boundaryPoint + */ + + +function splitNode(point, options) { + var isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML; + var isNotSplitEdgePoint = options && options.isNotSplitEdgePoint; + var isDiscardEmptySplits = options && options.isDiscardEmptySplits; + + if (isDiscardEmptySplits) { + isSkipPaddingBlankHTML = true; + } // edge case + + + if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) { + if (isLeftEdgePoint(point)) { + return point.node; + } else if (isRightEdgePoint(point)) { + return point.node.nextSibling; + } + } // split #text + + + if (isText(point.node)) { + return point.node.splitText(point.offset); + } else { + var childNode = point.node.childNodes[point.offset]; + var clone = insertAfter(point.node.cloneNode(false), point.node); + appendChildNodes(clone, listNext(childNode)); + + if (!isSkipPaddingBlankHTML) { + paddingBlankHTML(point.node); + paddingBlankHTML(clone); + } + + if (isDiscardEmptySplits) { + if (dom_isEmpty(point.node)) { + remove(point.node); + } + + if (dom_isEmpty(clone)) { + remove(clone); + return point.node.nextSibling; + } + } + + return clone; + } +} +/** + * @method splitTree + * + * split tree by point + * + * @param {Node} root - split root + * @param {BoundaryPoint} point + * @param {Object} [options] + * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false + * @param {Boolean} [options.isNotSplitEdgePoint] - default: false + * @return {Node} right node of boundaryPoint + */ + + +function splitTree(root, point, options) { + // ex) [#text, ,

    ] + var ancestors = listAncestor(point.node, func.eq(root)); + + if (!ancestors.length) { + return null; + } else if (ancestors.length === 1) { + return splitNode(point, options); + } + + return ancestors.reduce(function (node, parent) { + if (node === point.node) { + node = splitNode(point, options); + } + + return splitNode({ + node: parent, + offset: node ? dom_position(node) : nodeLength(parent) + }, options); + }); +} +/** + * split point + * + * @param {Point} point + * @param {Boolean} isInline + * @return {Object} + */ + + +function splitPoint(point, isInline) { + // find splitRoot, container + // - inline: splitRoot is a child of paragraph + // - block: splitRoot is a child of bodyContainer + var pred = isInline ? isPara : isBodyContainer; + var ancestors = listAncestor(point.node, pred); + var topAncestor = lists.last(ancestors) || point.node; + var splitRoot, container; + + if (pred(topAncestor)) { + splitRoot = ancestors[ancestors.length - 2]; + container = topAncestor; + } else { + splitRoot = topAncestor; + container = splitRoot.parentNode; + } // if splitRoot is exists, split with splitTree + + + var pivot = splitRoot && splitTree(splitRoot, point, { + isSkipPaddingBlankHTML: isInline, + isNotSplitEdgePoint: isInline + }); // if container is point.node, find pivot with point.offset + + if (!pivot && container === point.node) { + pivot = point.node.childNodes[point.offset]; + } + + return { + rightNode: pivot, + container: container + }; +} + +function dom_create(nodeName) { + return document.createElement(nodeName); +} + +function createText(text) { + return document.createTextNode(text); +} +/** + * @method remove + * + * remove node, (isRemoveChild: remove child or not) + * + * @param {Node} node + * @param {Boolean} isRemoveChild + */ + + +function remove(node, isRemoveChild) { + if (!node || !node.parentNode) { + return; + } + + if (node.removeNode) { + return node.removeNode(isRemoveChild); + } + + var parent = node.parentNode; + + if (!isRemoveChild) { + var nodes = []; + + for (var i = 0, len = node.childNodes.length; i < len; i++) { + nodes.push(node.childNodes[i]); + } + + for (var _i = 0, _len = nodes.length; _i < _len; _i++) { + parent.insertBefore(nodes[_i], node); + } + } + + parent.removeChild(node); +} +/** + * @method removeWhile + * + * @param {Node} node + * @param {Function} pred + */ + + +function removeWhile(node, pred) { + while (node) { + if (isEditable(node) || !pred(node)) { + break; + } + + var parent = node.parentNode; + remove(node); + node = parent; + } +} +/** + * @method replace + * + * replace node with provided nodeName + * + * @param {Node} node + * @param {String} nodeName + * @return {Node} - new node + */ + + +function dom_replace(node, nodeName) { + if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) { + return node; + } + + var newNode = dom_create(nodeName); + + if (node.style.cssText) { + newNode.style.cssText = node.style.cssText; + } + + appendChildNodes(newNode, lists.from(node.childNodes)); + insertAfter(newNode, node); + remove(node); + return newNode; +} + +var isTextarea = makePredByNodeName('TEXTAREA'); +/** + * @param {jQuery} $node + * @param {Boolean} [stripLinebreaks] - default: false + */ + +function dom_value($node, stripLinebreaks) { + var val = isTextarea($node[0]) ? $node.val() : $node.html(); + + if (stripLinebreaks) { + return val.replace(/[\n\r]/g, ''); + } + + return val; +} +/** + * @method html + * + * get the HTML contents of node + * + * @param {jQuery} $node + * @param {Boolean} [isNewlineOnBlock] + */ + + +function dom_html($node, isNewlineOnBlock) { + var markup = dom_value($node); + + if (isNewlineOnBlock) { + var regexTag = /<(\/?)(\b(?!!)[^>\s]*)(.*?)(\s*\/?>)/g; + markup = markup.replace(regexTag, function (match, endSlash, name) { + name = name.toUpperCase(); + var isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) && !!endSlash; + var isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name); + return match + (isEndOfInlineContainer || isBlockNode ? '\n' : ''); + }); + markup = markup.trim(); + } + + return markup; +} + +function posFromPlaceholder(placeholder) { + var $placeholder = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(placeholder); + var pos = $placeholder.offset(); + var height = $placeholder.outerHeight(true); // include margin + + return { + left: pos.left, + top: pos.top + height + }; +} + +function attachEvents($node, events) { + Object.keys(events).forEach(function (key) { + $node.on(key, events[key]); + }); +} + +function detachEvents($node, events) { + Object.keys(events).forEach(function (key) { + $node.off(key, events[key]); + }); +} +/** + * @method isCustomStyleTag + * + * assert if a node contains a "note-styletag" class, + * which implies that's a custom-made style tag node + * + * @param {Node} an HTML DOM node + */ + + +function isCustomStyleTag(node) { + return node && !isText(node) && lists.contains(node.classList, 'note-styletag'); +} + +/* harmony default export */ var dom = ({ + /** @property {String} NBSP_CHAR */ + NBSP_CHAR: NBSP_CHAR, + + /** @property {String} ZERO_WIDTH_NBSP_CHAR */ + ZERO_WIDTH_NBSP_CHAR: ZERO_WIDTH_NBSP_CHAR, + + /** @property {String} blank */ + blank: blankHTML, + + /** @property {String} emptyPara */ + emptyPara: "

    ".concat(blankHTML, "

    "), + makePredByNodeName: makePredByNodeName, + isEditable: isEditable, + isControlSizing: isControlSizing, + isText: isText, + isElement: isElement, + isVoid: isVoid, + isPara: isPara, + isPurePara: isPurePara, + isHeading: isHeading, + isInline: dom_isInline, + isBlock: func.not(dom_isInline), + isBodyInline: isBodyInline, + isBody: isBody, + isParaInline: isParaInline, + isPre: isPre, + isList: isList, + isTable: isTable, + isData: isData, + isCell: dom_isCell, + isBlockquote: isBlockquote, + isBodyContainer: isBodyContainer, + isAnchor: isAnchor, + isDiv: makePredByNodeName('DIV'), + isLi: isLi, + isBR: makePredByNodeName('BR'), + isSpan: makePredByNodeName('SPAN'), + isB: makePredByNodeName('B'), + isU: makePredByNodeName('U'), + isS: makePredByNodeName('S'), + isI: makePredByNodeName('I'), + isImg: makePredByNodeName('IMG'), + isTextarea: isTextarea, + deepestChildIsEmpty: deepestChildIsEmpty, + isEmpty: dom_isEmpty, + isEmptyAnchor: func.and(isAnchor, dom_isEmpty), + isClosestSibling: isClosestSibling, + withClosestSiblings: withClosestSiblings, + nodeLength: nodeLength, + isLeftEdgePoint: isLeftEdgePoint, + isRightEdgePoint: isRightEdgePoint, + isEdgePoint: isEdgePoint, + isLeftEdgeOf: dom_isLeftEdgeOf, + isRightEdgeOf: isRightEdgeOf, + isLeftEdgePointOf: isLeftEdgePointOf, + isRightEdgePointOf: isRightEdgePointOf, + prevPoint: dom_prevPoint, + nextPoint: dom_nextPoint, + nextPointWithEmptyNode: nextPointWithEmptyNode, + isSamePoint: isSamePoint, + isVisiblePoint: isVisiblePoint, + prevPointUntil: prevPointUntil, + nextPointUntil: nextPointUntil, + isCharPoint: isCharPoint, + isSpacePoint: isSpacePoint, + walkPoint: walkPoint, + ancestor: dom_ancestor, + singleChildAncestor: singleChildAncestor, + listAncestor: listAncestor, + lastAncestor: lastAncestor, + listNext: listNext, + listPrev: listPrev, + listDescendant: listDescendant, + commonAncestor: dom_commonAncestor, + wrap: wrap, + insertAfter: insertAfter, + appendChildNodes: appendChildNodes, + position: dom_position, + hasChildren: hasChildren, + makeOffsetPath: makeOffsetPath, + fromOffsetPath: fromOffsetPath, + splitTree: splitTree, + splitPoint: splitPoint, + create: dom_create, + createText: createText, + remove: remove, + removeWhile: removeWhile, + replace: dom_replace, + html: dom_html, + value: dom_value, + posFromPlaceholder: posFromPlaceholder, + attachEvents: attachEvents, + detachEvents: detachEvents, + isCustomStyleTag: isCustomStyleTag +}); +// CONCATENATED MODULE: ./src/js/base/Context.js +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + + + + + + +var Context_Context = /*#__PURE__*/function () { + /** + * @param {jQuery} $note + * @param {Object} options + */ + function Context($note, options) { + _classCallCheck(this, Context); + + this.$note = $note; + this.memos = {}; + this.modules = {}; + this.layoutInfo = {}; + this.options = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(true, {}, options); // init ui with options + + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui_template(this.options); + this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui; + this.initialize(); + } + /** + * create layout and initialize modules and other resources + */ + + + _createClass(Context, [{ + key: "initialize", + value: function initialize() { + this.layoutInfo = this.ui.createLayout(this.$note); + + this._initialize(); + + this.$note.hide(); + return this; + } + /** + * destroy modules and other resources and remove layout + */ + + }, { + key: "destroy", + value: function destroy() { + this._destroy(); + + this.$note.removeData('summernote'); + this.ui.removeLayout(this.$note, this.layoutInfo); + } + /** + * destory modules and other resources and initialize it again + */ + + }, { + key: "reset", + value: function reset() { + var disabled = this.isDisabled(); + this.code(dom.emptyPara); + + this._destroy(); + + this._initialize(); + + if (disabled) { + this.disable(); + } + } + }, { + key: "_initialize", + value: function _initialize() { + var _this = this; + + // set own id + this.options.id = func.uniqueId(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.now()); // set default container for tooltips, popovers, and dialogs + + this.options.container = this.options.container || this.layoutInfo.editor; // add optional buttons + + var buttons = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend({}, this.options.buttons); + Object.keys(buttons).forEach(function (key) { + _this.memo('button.' + key, buttons[key]); + }); + var modules = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend({}, this.options.modules, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.plugins || {}); // add and initialize modules + + Object.keys(modules).forEach(function (key) { + _this.module(key, modules[key], true); + }); + Object.keys(this.modules).forEach(function (key) { + _this.initializeModule(key); + }); + } + }, { + key: "_destroy", + value: function _destroy() { + var _this2 = this; + + // destroy modules with reversed order + Object.keys(this.modules).reverse().forEach(function (key) { + _this2.removeModule(key); + }); + Object.keys(this.memos).forEach(function (key) { + _this2.removeMemo(key); + }); // trigger custom onDestroy callback + + this.triggerEvent('destroy', this); + } + }, { + key: "code", + value: function code(html) { + var isActivated = this.invoke('codeview.isActivated'); + + if (html === undefined) { + this.invoke('codeview.sync'); + return isActivated ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html(); + } else { + if (isActivated) { + this.invoke('codeview.sync', html); + } else { + this.layoutInfo.editable.html(html); + } + + this.$note.val(html); + this.triggerEvent('change', html, this.layoutInfo.editable); + } + } + }, { + key: "isDisabled", + value: function isDisabled() { + return this.layoutInfo.editable.attr('contenteditable') === 'false'; + } + }, { + key: "enable", + value: function enable() { + this.layoutInfo.editable.attr('contenteditable', true); + this.invoke('toolbar.activate', true); + this.triggerEvent('disable', false); + this.options.editing = true; + } + }, { + key: "disable", + value: function disable() { + // close codeview if codeview is opend + if (this.invoke('codeview.isActivated')) { + this.invoke('codeview.deactivate'); + } + + this.layoutInfo.editable.attr('contenteditable', false); + this.options.editing = false; + this.invoke('toolbar.deactivate', true); + this.triggerEvent('disable', true); + } + }, { + key: "triggerEvent", + value: function triggerEvent() { + var namespace = lists.head(arguments); + var args = lists.tail(lists.from(arguments)); + var callback = this.options.callbacks[func.namespaceToCamel(namespace, 'on')]; + + if (callback) { + callback.apply(this.$note[0], args); + } + + this.$note.trigger('summernote.' + namespace, args); + } + }, { + key: "initializeModule", + value: function initializeModule(key) { + var module = this.modules[key]; + module.shouldInitialize = module.shouldInitialize || func.ok; + + if (!module.shouldInitialize()) { + return; + } // initialize module + + + if (module.initialize) { + module.initialize(); + } // attach events + + + if (module.events) { + dom.attachEvents(this.$note, module.events); + } + } + }, { + key: "module", + value: function module(key, ModuleClass, withoutIntialize) { + if (arguments.length === 1) { + return this.modules[key]; + } + + this.modules[key] = new ModuleClass(this); + + if (!withoutIntialize) { + this.initializeModule(key); + } + } + }, { + key: "removeModule", + value: function removeModule(key) { + var module = this.modules[key]; + + if (module.shouldInitialize()) { + if (module.events) { + dom.detachEvents(this.$note, module.events); + } + + if (module.destroy) { + module.destroy(); + } + } + + delete this.modules[key]; + } + }, { + key: "memo", + value: function memo(key, obj) { + if (arguments.length === 1) { + return this.memos[key]; + } + + this.memos[key] = obj; + } + }, { + key: "removeMemo", + value: function removeMemo(key) { + if (this.memos[key] && this.memos[key].destroy) { + this.memos[key].destroy(); + } + + delete this.memos[key]; + } + /** + * Some buttons need to change their visual style immediately once they get pressed + */ + + }, { + key: "createInvokeHandlerAndUpdateState", + value: function createInvokeHandlerAndUpdateState(namespace, value) { + var _this3 = this; + + return function (event) { + _this3.createInvokeHandler(namespace, value)(event); + + _this3.invoke('buttons.updateCurrentStyle'); + }; + } + }, { + key: "createInvokeHandler", + value: function createInvokeHandler(namespace, value) { + var _this4 = this; + + return function (event) { + event.preventDefault(); + var $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target); + + _this4.invoke(namespace, value || $target.closest('[data-value]').data('value'), $target); + }; + } + }, { + key: "invoke", + value: function invoke() { + var namespace = lists.head(arguments); + var args = lists.tail(lists.from(arguments)); + var splits = namespace.split('.'); + var hasSeparator = splits.length > 1; + var moduleName = hasSeparator && lists.head(splits); + var methodName = hasSeparator ? lists.last(splits) : lists.head(splits); + var module = this.modules[moduleName || 'editor']; + + if (!moduleName && this[methodName]) { + return this[methodName].apply(this, args); + } else if (module && module[methodName] && module.shouldInitialize()) { + return module[methodName].apply(module, args); + } + } + }]); + + return Context; +}(); + + +// CONCATENATED MODULE: ./src/js/summernote.js + + + + +external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.fn.extend({ + /** + * Summernote API + * + * @param {Object|String} + * @return {this} + */ + summernote: function summernote() { + var type = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.type(lists.head(arguments)); + var isExternalAPICalled = type === 'string'; + var hasInitOptions = type === 'object'; + var options = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend({}, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.options, hasInitOptions ? lists.head(arguments) : {}); // Update options + + options.langInfo = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(true, {}, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.lang['en-US'], external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.lang[options.lang]); + options.icons = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(true, {}, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.options.icons, options.icons); + options.tooltip = options.tooltip === 'auto' ? !env.isSupportTouch : options.tooltip; + this.each(function (idx, note) { + var $note = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(note); + + if (!$note.data('summernote')) { + var context = new Context_Context($note, options); + $note.data('summernote', context); + $note.data('summernote').triggerEvent('init', context.layoutInfo); + } + }); + var $note = this.first(); + + if ($note.length) { + var context = $note.data('summernote'); + + if (isExternalAPICalled) { + return context.invoke.apply(context, lists.from(arguments)); + } else if (options.focus) { + context.invoke('editor.focus'); + } + } + + return this; + } +}); +// CONCATENATED MODULE: ./src/js/base/core/range.js +function range_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function range_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function range_createClass(Constructor, protoProps, staticProps) { if (protoProps) range_defineProperties(Constructor.prototype, protoProps); if (staticProps) range_defineProperties(Constructor, staticProps); return Constructor; } + + + + + + +/** + * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js + * + * @param {TextRange} textRange + * @param {Boolean} isStart + * @return {BoundaryPoint} + * + * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx + */ + +function textRangeToPoint(textRange, isStart) { + var container = textRange.parentElement(); + var offset; + var tester = document.body.createTextRange(); + var prevContainer; + var childNodes = lists.from(container.childNodes); + + for (offset = 0; offset < childNodes.length; offset++) { + if (dom.isText(childNodes[offset])) { + continue; + } + + tester.moveToElementText(childNodes[offset]); + + if (tester.compareEndPoints('StartToStart', textRange) >= 0) { + break; + } + + prevContainer = childNodes[offset]; + } + + if (offset !== 0 && dom.isText(childNodes[offset - 1])) { + var textRangeStart = document.body.createTextRange(); + var curTextNode = null; + textRangeStart.moveToElementText(prevContainer || container); + textRangeStart.collapse(!prevContainer); + curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild; + var pointTester = textRange.duplicate(); + pointTester.setEndPoint('StartToStart', textRangeStart); + var textCount = pointTester.text.replace(/[\r\n]/g, '').length; + + while (textCount > curTextNode.nodeValue.length && curTextNode.nextSibling) { + textCount -= curTextNode.nodeValue.length; + curTextNode = curTextNode.nextSibling; + } // [workaround] enforce IE to re-reference curTextNode, hack + + + var dummy = curTextNode.nodeValue; // eslint-disable-line + + if (isStart && curTextNode.nextSibling && dom.isText(curTextNode.nextSibling) && textCount === curTextNode.nodeValue.length) { + textCount -= curTextNode.nodeValue.length; + curTextNode = curTextNode.nextSibling; + } + + container = curTextNode; + offset = textCount; + } + + return { + cont: container, + offset: offset + }; +} +/** + * return TextRange from boundary point (inspired by google closure-library) + * @param {BoundaryPoint} point + * @return {TextRange} + */ + + +function pointToTextRange(point) { + var textRangeInfo = function textRangeInfo(container, offset) { + var node, isCollapseToStart; + + if (dom.isText(container)) { + var prevTextNodes = dom.listPrev(container, func.not(dom.isText)); + var prevContainer = lists.last(prevTextNodes).previousSibling; + node = prevContainer || container.parentNode; + offset += lists.sum(lists.tail(prevTextNodes), dom.nodeLength); + isCollapseToStart = !prevContainer; + } else { + node = container.childNodes[offset] || container; + + if (dom.isText(node)) { + return textRangeInfo(node, 0); + } + + offset = 0; + isCollapseToStart = false; + } + + return { + node: node, + collapseToStart: isCollapseToStart, + offset: offset + }; + }; + + var textRange = document.body.createTextRange(); + var info = textRangeInfo(point.node, point.offset); + textRange.moveToElementText(info.node); + textRange.collapse(info.collapseToStart); + textRange.moveStart('character', info.offset); + return textRange; +} +/** + * Wrapped Range + * + * @constructor + * @param {Node} sc - start container + * @param {Number} so - start offset + * @param {Node} ec - end container + * @param {Number} eo - end offset + */ + + +var range_WrappedRange = /*#__PURE__*/function () { + function WrappedRange(sc, so, ec, eo) { + range_classCallCheck(this, WrappedRange); + + this.sc = sc; + this.so = so; + this.ec = ec; + this.eo = eo; // isOnEditable: judge whether range is on editable or not + + this.isOnEditable = this.makeIsOn(dom.isEditable); // isOnList: judge whether range is on list node or not + + this.isOnList = this.makeIsOn(dom.isList); // isOnAnchor: judge whether range is on anchor node or not + + this.isOnAnchor = this.makeIsOn(dom.isAnchor); // isOnCell: judge whether range is on cell node or not + + this.isOnCell = this.makeIsOn(dom.isCell); // isOnData: judge whether range is on data node or not + + this.isOnData = this.makeIsOn(dom.isData); + } // nativeRange: get nativeRange from sc, so, ec, eo + + + range_createClass(WrappedRange, [{ + key: "nativeRange", + value: function nativeRange() { + if (env.isW3CRangeSupport) { + var w3cRange = document.createRange(); + w3cRange.setStart(this.sc, this.so); + w3cRange.setEnd(this.ec, this.eo); + return w3cRange; + } else { + var textRange = pointToTextRange({ + node: this.sc, + offset: this.so + }); + textRange.setEndPoint('EndToEnd', pointToTextRange({ + node: this.ec, + offset: this.eo + })); + return textRange; + } + } + }, { + key: "getPoints", + value: function getPoints() { + return { + sc: this.sc, + so: this.so, + ec: this.ec, + eo: this.eo + }; + } + }, { + key: "getStartPoint", + value: function getStartPoint() { + return { + node: this.sc, + offset: this.so + }; + } + }, { + key: "getEndPoint", + value: function getEndPoint() { + return { + node: this.ec, + offset: this.eo + }; + } + /** + * select update visible range + */ + + }, { + key: "select", + value: function select() { + var nativeRng = this.nativeRange(); + + if (env.isW3CRangeSupport) { + var selection = document.getSelection(); + + if (selection.rangeCount > 0) { + selection.removeAllRanges(); + } + + selection.addRange(nativeRng); + } else { + nativeRng.select(); + } + + return this; + } + /** + * Moves the scrollbar to start container(sc) of current range + * + * @return {WrappedRange} + */ + + }, { + key: "scrollIntoView", + value: function scrollIntoView(container) { + var height = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(container).height(); + + if (container.scrollTop + height < this.sc.offsetTop) { + container.scrollTop += Math.abs(container.scrollTop + height - this.sc.offsetTop); + } + + return this; + } + /** + * @return {WrappedRange} + */ + + }, { + key: "normalize", + value: function normalize() { + /** + * @param {BoundaryPoint} point + * @param {Boolean} isLeftToRight - true: prefer to choose right node + * - false: prefer to choose left node + * @return {BoundaryPoint} + */ + var getVisiblePoint = function getVisiblePoint(point, isLeftToRight) { + if (!point) { + return point; + } // Just use the given point [XXX:Adhoc] + // - case 01. if the point is on the middle of the node + // - case 02. if the point is on the right edge and prefer to choose left node + // - case 03. if the point is on the left edge and prefer to choose right node + // - case 04. if the point is on the right edge and prefer to choose right node but the node is void + // - case 05. if the point is on the left edge and prefer to choose left node but the node is void + // - case 06. if the point is on the block node and there is no children + + + if (dom.isVisiblePoint(point)) { + if (!dom.isEdgePoint(point) || dom.isRightEdgePoint(point) && !isLeftToRight || dom.isLeftEdgePoint(point) && isLeftToRight || dom.isRightEdgePoint(point) && isLeftToRight && dom.isVoid(point.node.nextSibling) || dom.isLeftEdgePoint(point) && !isLeftToRight && dom.isVoid(point.node.previousSibling) || dom.isBlock(point.node) && dom.isEmpty(point.node)) { + return point; + } + } // point on block's edge + + + var block = dom.ancestor(point.node, dom.isBlock); + var hasRightNode = false; + + if (!hasRightNode) { + var prevPoint = dom.prevPoint(point) || { + node: null + }; + hasRightNode = (dom.isLeftEdgePointOf(point, block) || dom.isVoid(prevPoint.node)) && !isLeftToRight; + } + + var hasLeftNode = false; + + if (!hasLeftNode) { + var _nextPoint = dom.nextPoint(point) || { + node: null + }; + + hasLeftNode = (dom.isRightEdgePointOf(point, block) || dom.isVoid(_nextPoint.node)) && isLeftToRight; + } + + if (hasRightNode || hasLeftNode) { + // returns point already on visible point + if (dom.isVisiblePoint(point)) { + return point; + } // reverse direction + + + isLeftToRight = !isLeftToRight; + } + + var nextPoint = isLeftToRight ? dom.nextPointUntil(dom.nextPoint(point), dom.isVisiblePoint) : dom.prevPointUntil(dom.prevPoint(point), dom.isVisiblePoint); + return nextPoint || point; + }; + + var endPoint = getVisiblePoint(this.getEndPoint(), false); + var startPoint = this.isCollapsed() ? endPoint : getVisiblePoint(this.getStartPoint(), true); + return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset); + } + /** + * returns matched nodes on range + * + * @param {Function} [pred] - predicate function + * @param {Object} [options] + * @param {Boolean} [options.includeAncestor] + * @param {Boolean} [options.fullyContains] + * @return {Node[]} + */ + + }, { + key: "nodes", + value: function nodes(pred, options) { + pred = pred || func.ok; + var includeAncestor = options && options.includeAncestor; + var fullyContains = options && options.fullyContains; // TODO compare points and sort + + var startPoint = this.getStartPoint(); + var endPoint = this.getEndPoint(); + var nodes = []; + var leftEdgeNodes = []; + dom.walkPoint(startPoint, endPoint, function (point) { + if (dom.isEditable(point.node)) { + return; + } + + var node; + + if (fullyContains) { + if (dom.isLeftEdgePoint(point)) { + leftEdgeNodes.push(point.node); + } + + if (dom.isRightEdgePoint(point) && lists.contains(leftEdgeNodes, point.node)) { + node = point.node; + } + } else if (includeAncestor) { + node = dom.ancestor(point.node, pred); + } else { + node = point.node; + } + + if (node && pred(node)) { + nodes.push(node); + } + }, true); + return lists.unique(nodes); + } + /** + * returns commonAncestor of range + * @return {Element} - commonAncestor + */ + + }, { + key: "commonAncestor", + value: function commonAncestor() { + return dom.commonAncestor(this.sc, this.ec); + } + /** + * returns expanded range by pred + * + * @param {Function} pred - predicate function + * @return {WrappedRange} + */ + + }, { + key: "expand", + value: function expand(pred) { + var startAncestor = dom.ancestor(this.sc, pred); + var endAncestor = dom.ancestor(this.ec, pred); + + if (!startAncestor && !endAncestor) { + return new WrappedRange(this.sc, this.so, this.ec, this.eo); + } + + var boundaryPoints = this.getPoints(); + + if (startAncestor) { + boundaryPoints.sc = startAncestor; + boundaryPoints.so = 0; + } + + if (endAncestor) { + boundaryPoints.ec = endAncestor; + boundaryPoints.eo = dom.nodeLength(endAncestor); + } + + return new WrappedRange(boundaryPoints.sc, boundaryPoints.so, boundaryPoints.ec, boundaryPoints.eo); + } + /** + * @param {Boolean} isCollapseToStart + * @return {WrappedRange} + */ + + }, { + key: "collapse", + value: function collapse(isCollapseToStart) { + if (isCollapseToStart) { + return new WrappedRange(this.sc, this.so, this.sc, this.so); + } else { + return new WrappedRange(this.ec, this.eo, this.ec, this.eo); + } + } + /** + * splitText on range + */ + + }, { + key: "splitText", + value: function splitText() { + var isSameContainer = this.sc === this.ec; + var boundaryPoints = this.getPoints(); + + if (dom.isText(this.ec) && !dom.isEdgePoint(this.getEndPoint())) { + this.ec.splitText(this.eo); + } + + if (dom.isText(this.sc) && !dom.isEdgePoint(this.getStartPoint())) { + boundaryPoints.sc = this.sc.splitText(this.so); + boundaryPoints.so = 0; + + if (isSameContainer) { + boundaryPoints.ec = boundaryPoints.sc; + boundaryPoints.eo = this.eo - this.so; + } + } + + return new WrappedRange(boundaryPoints.sc, boundaryPoints.so, boundaryPoints.ec, boundaryPoints.eo); + } + /** + * delete contents on range + * @return {WrappedRange} + */ + + }, { + key: "deleteContents", + value: function deleteContents() { + if (this.isCollapsed()) { + return this; + } + + var rng = this.splitText(); + var nodes = rng.nodes(null, { + fullyContains: true + }); // find new cursor point + + var point = dom.prevPointUntil(rng.getStartPoint(), function (point) { + return !lists.contains(nodes, point.node); + }); + var emptyParents = []; + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(nodes, function (idx, node) { + // find empty parents + var parent = node.parentNode; + + if (point.node !== parent && dom.nodeLength(parent) === 1) { + emptyParents.push(parent); + } + + dom.remove(node, false); + }); // remove empty parents + + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(emptyParents, function (idx, node) { + dom.remove(node, false); + }); + return new WrappedRange(point.node, point.offset, point.node, point.offset).normalize(); + } + /** + * makeIsOn: return isOn(pred) function + */ + + }, { + key: "makeIsOn", + value: function makeIsOn(pred) { + return function () { + var ancestor = dom.ancestor(this.sc, pred); + return !!ancestor && ancestor === dom.ancestor(this.ec, pred); + }; + } + /** + * @param {Function} pred + * @return {Boolean} + */ + + }, { + key: "isLeftEdgeOf", + value: function isLeftEdgeOf(pred) { + if (!dom.isLeftEdgePoint(this.getStartPoint())) { + return false; + } + + var node = dom.ancestor(this.sc, pred); + return node && dom.isLeftEdgeOf(this.sc, node); + } + /** + * returns whether range was collapsed or not + */ + + }, { + key: "isCollapsed", + value: function isCollapsed() { + return this.sc === this.ec && this.so === this.eo; + } + /** + * wrap inline nodes which children of body with paragraph + * + * @return {WrappedRange} + */ + + }, { + key: "wrapBodyInlineWithPara", + value: function wrapBodyInlineWithPara() { + if (dom.isBodyContainer(this.sc) && dom.isEmpty(this.sc)) { + this.sc.innerHTML = dom.emptyPara; + return new WrappedRange(this.sc.firstChild, 0, this.sc.firstChild, 0); + } + /** + * [workaround] firefox often create range on not visible point. so normalize here. + * - firefox: |

    text

    | + * - chrome:

    |text|

    + */ + + + var rng = this.normalize(); + + if (dom.isParaInline(this.sc) || dom.isPara(this.sc)) { + return rng; + } // find inline top ancestor + + + var topAncestor; + + if (dom.isInline(rng.sc)) { + var ancestors = dom.listAncestor(rng.sc, func.not(dom.isInline)); + topAncestor = lists.last(ancestors); + + if (!dom.isInline(topAncestor)) { + topAncestor = ancestors[ancestors.length - 2] || rng.sc.childNodes[rng.so]; + } + } else { + topAncestor = rng.sc.childNodes[rng.so > 0 ? rng.so - 1 : 0]; + } + + if (topAncestor) { + // siblings not in paragraph + var inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse(); + inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline)); // wrap with paragraph + + if (inlineSiblings.length) { + var para = dom.wrap(lists.head(inlineSiblings), 'p'); + dom.appendChildNodes(para, lists.tail(inlineSiblings)); + } + } + + return this.normalize(); + } + /** + * insert node at current cursor + * + * @param {Node} node + * @return {Node} + */ + + }, { + key: "insertNode", + value: function insertNode(node) { + var rng = this; + + if (dom.isText(node) || dom.isInline(node)) { + rng = this.wrapBodyInlineWithPara().deleteContents(); + } + + var info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node)); + + if (info.rightNode) { + info.rightNode.parentNode.insertBefore(node, info.rightNode); + + if (dom.isEmpty(info.rightNode) && dom.isPara(node)) { + info.rightNode.parentNode.removeChild(info.rightNode); + } + } else { + info.container.appendChild(node); + } + + return node; + } + /** + * insert html at current cursor + */ + + }, { + key: "pasteHTML", + value: function pasteHTML(markup) { + markup = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.trim(markup); + var contentsContainer = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('
    ').html(markup)[0]; + var childNodes = lists.from(contentsContainer.childNodes); // const rng = this.wrapBodyInlineWithPara().deleteContents(); + + var rng = this; + var reversed = false; + + if (rng.so >= 0) { + childNodes = childNodes.reverse(); + reversed = true; + } + + childNodes = childNodes.map(function (childNode) { + return rng.insertNode(childNode); + }); + + if (reversed) { + childNodes = childNodes.reverse(); + } + + return childNodes; + } + /** + * returns text in range + * + * @return {String} + */ + + }, { + key: "toString", + value: function toString() { + var nativeRng = this.nativeRange(); + return env.isW3CRangeSupport ? nativeRng.toString() : nativeRng.text; + } + /** + * returns range for word before cursor + * + * @param {Boolean} [findAfter] - find after cursor, default: false + * @return {WrappedRange} + */ + + }, { + key: "getWordRange", + value: function getWordRange(findAfter) { + var endPoint = this.getEndPoint(); + + if (!dom.isCharPoint(endPoint)) { + return this; + } + + var startPoint = dom.prevPointUntil(endPoint, function (point) { + return !dom.isCharPoint(point); + }); + + if (findAfter) { + endPoint = dom.nextPointUntil(endPoint, function (point) { + return !dom.isCharPoint(point); + }); + } + + return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset); + } + /** + * returns range for words before cursor + * + * @param {Boolean} [findAfter] - find after cursor, default: false + * @return {WrappedRange} + */ + + }, { + key: "getWordsRange", + value: function getWordsRange(findAfter) { + var endPoint = this.getEndPoint(); + + var isNotTextPoint = function isNotTextPoint(point) { + return !dom.isCharPoint(point) && !dom.isSpacePoint(point); + }; + + if (isNotTextPoint(endPoint)) { + return this; + } + + var startPoint = dom.prevPointUntil(endPoint, isNotTextPoint); + + if (findAfter) { + endPoint = dom.nextPointUntil(endPoint, isNotTextPoint); + } + + return new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset); + } + /** + * returns range for words before cursor that match with a Regex + * + * example: + * range: 'hi @Peter Pan' + * regex: '/@[a-z ]+/i' + * return range: '@Peter Pan' + * + * @param {RegExp} [regex] + * @return {WrappedRange|null} + */ + + }, { + key: "getWordsMatchRange", + value: function getWordsMatchRange(regex) { + var endPoint = this.getEndPoint(); + var startPoint = dom.prevPointUntil(endPoint, function (point) { + if (!dom.isCharPoint(point) && !dom.isSpacePoint(point)) { + return true; + } + + var rng = new WrappedRange(point.node, point.offset, endPoint.node, endPoint.offset); + var result = regex.exec(rng.toString()); + return result && result.index === 0; + }); + var rng = new WrappedRange(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset); + var text = rng.toString(); + var result = regex.exec(text); + + if (result && result[0].length === text.length) { + return rng; + } else { + return null; + } + } + /** + * create offsetPath bookmark + * + * @param {Node} editable + */ + + }, { + key: "bookmark", + value: function bookmark(editable) { + return { + s: { + path: dom.makeOffsetPath(editable, this.sc), + offset: this.so + }, + e: { + path: dom.makeOffsetPath(editable, this.ec), + offset: this.eo + } + }; + } + /** + * create offsetPath bookmark base on paragraph + * + * @param {Node[]} paras + */ + + }, { + key: "paraBookmark", + value: function paraBookmark(paras) { + return { + s: { + path: lists.tail(dom.makeOffsetPath(lists.head(paras), this.sc)), + offset: this.so + }, + e: { + path: lists.tail(dom.makeOffsetPath(lists.last(paras), this.ec)), + offset: this.eo + } + }; + } + /** + * getClientRects + * @return {Rect[]} + */ + + }, { + key: "getClientRects", + value: function getClientRects() { + var nativeRng = this.nativeRange(); + return nativeRng.getClientRects(); + } + }]); + + return WrappedRange; +}(); +/** + * Data structure + * * BoundaryPoint: a point of dom tree + * * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range + * + * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position + */ + + +/* harmony default export */ var range = ({ + /** + * create Range Object From arguments or Browser Selection + * + * @param {Node} sc - start container + * @param {Number} so - start offset + * @param {Node} ec - end container + * @param {Number} eo - end offset + * @return {WrappedRange} + */ + create: function create(sc, so, ec, eo) { + if (arguments.length === 4) { + return new range_WrappedRange(sc, so, ec, eo); + } else if (arguments.length === 2) { + // collapsed + ec = sc; + eo = so; + return new range_WrappedRange(sc, so, ec, eo); + } else { + var wrappedRange = this.createFromSelection(); + + if (!wrappedRange && arguments.length === 1) { + var bodyElement = arguments[0]; + + if (dom.isEditable(bodyElement)) { + bodyElement = bodyElement.lastChild; + } + + return this.createFromBodyElement(bodyElement, dom.emptyPara === arguments[0].innerHTML); + } + + return wrappedRange; + } + }, + createFromBodyElement: function createFromBodyElement(bodyElement) { + var isCollapseToStart = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var wrappedRange = this.createFromNode(bodyElement); + return wrappedRange.collapse(isCollapseToStart); + }, + createFromSelection: function createFromSelection() { + var sc, so, ec, eo; + + if (env.isW3CRangeSupport) { + var selection = document.getSelection(); + + if (!selection || selection.rangeCount === 0) { + return null; + } else if (dom.isBody(selection.anchorNode)) { + // Firefox: returns entire body as range on initialization. + // We won't never need it. + return null; + } + + var nativeRng = selection.getRangeAt(0); + sc = nativeRng.startContainer; + so = nativeRng.startOffset; + ec = nativeRng.endContainer; + eo = nativeRng.endOffset; + } else { + // IE8: TextRange + var textRange = document.selection.createRange(); + var textRangeEnd = textRange.duplicate(); + textRangeEnd.collapse(false); + var textRangeStart = textRange; + textRangeStart.collapse(true); + var startPoint = textRangeToPoint(textRangeStart, true); + var endPoint = textRangeToPoint(textRangeEnd, false); // same visible point case: range was collapsed. + + if (dom.isText(startPoint.node) && dom.isLeftEdgePoint(startPoint) && dom.isTextNode(endPoint.node) && dom.isRightEdgePoint(endPoint) && endPoint.node.nextSibling === startPoint.node) { + startPoint = endPoint; + } + + sc = startPoint.cont; + so = startPoint.offset; + ec = endPoint.cont; + eo = endPoint.offset; + } + + return new range_WrappedRange(sc, so, ec, eo); + }, + + /** + * @method + * + * create WrappedRange from node + * + * @param {Node} node + * @return {WrappedRange} + */ + createFromNode: function createFromNode(node) { + var sc = node; + var so = 0; + var ec = node; + var eo = dom.nodeLength(ec); // browsers can't target a picture or void node + + if (dom.isVoid(sc)) { + so = dom.listPrev(sc).length - 1; + sc = sc.parentNode; + } + + if (dom.isBR(ec)) { + eo = dom.listPrev(ec).length - 1; + ec = ec.parentNode; + } else if (dom.isVoid(ec)) { + eo = dom.listPrev(ec).length; + ec = ec.parentNode; + } + + return this.create(sc, so, ec, eo); + }, + + /** + * create WrappedRange from node after position + * + * @param {Node} node + * @return {WrappedRange} + */ + createFromNodeBefore: function createFromNodeBefore(node) { + return this.createFromNode(node).collapse(true); + }, + + /** + * create WrappedRange from node after position + * + * @param {Node} node + * @return {WrappedRange} + */ + createFromNodeAfter: function createFromNodeAfter(node) { + return this.createFromNode(node).collapse(); + }, + + /** + * @method + * + * create WrappedRange from bookmark + * + * @param {Node} editable + * @param {Object} bookmark + * @return {WrappedRange} + */ + createFromBookmark: function createFromBookmark(editable, bookmark) { + var sc = dom.fromOffsetPath(editable, bookmark.s.path); + var so = bookmark.s.offset; + var ec = dom.fromOffsetPath(editable, bookmark.e.path); + var eo = bookmark.e.offset; + return new range_WrappedRange(sc, so, ec, eo); + }, + + /** + * @method + * + * create WrappedRange from paraBookmark + * + * @param {Object} bookmark + * @param {Node[]} paras + * @return {WrappedRange} + */ + createFromParaBookmark: function createFromParaBookmark(bookmark, paras) { + var so = bookmark.s.offset; + var eo = bookmark.e.offset; + var sc = dom.fromOffsetPath(lists.head(paras), bookmark.s.path); + var ec = dom.fromOffsetPath(lists.last(paras), bookmark.e.path); + return new range_WrappedRange(sc, so, ec, eo); + } +}); +// CONCATENATED MODULE: ./src/js/base/core/key.js + + +var KEY_MAP = { + 'BACKSPACE': 8, + 'TAB': 9, + 'ENTER': 13, + 'ESCAPE': 27, + 'SPACE': 32, + 'DELETE': 46, + // Arrow + 'LEFT': 37, + 'UP': 38, + 'RIGHT': 39, + 'DOWN': 40, + // Number: 0-9 + 'NUM0': 48, + 'NUM1': 49, + 'NUM2': 50, + 'NUM3': 51, + 'NUM4': 52, + 'NUM5': 53, + 'NUM6': 54, + 'NUM7': 55, + 'NUM8': 56, + // Alphabet: a-z + 'B': 66, + 'E': 69, + 'I': 73, + 'J': 74, + 'K': 75, + 'L': 76, + 'R': 82, + 'S': 83, + 'U': 85, + 'V': 86, + 'Y': 89, + 'Z': 90, + 'SLASH': 191, + 'LEFTBRACKET': 219, + 'BACKSLASH': 220, + 'RIGHTBRACKET': 221, + // Navigation + 'HOME': 36, + 'END': 35, + 'PAGEUP': 33, + 'PAGEDOWN': 34 +}; +/** + * @class core.key + * + * Object for keycodes. + * + * @singleton + * @alternateClassName key + */ + +/* harmony default export */ var core_key = ({ + /** + * @method isEdit + * + * @param {Number} keyCode + * @return {Boolean} + */ + isEdit: function isEdit(keyCode) { + return lists.contains([KEY_MAP.BACKSPACE, KEY_MAP.TAB, KEY_MAP.ENTER, KEY_MAP.SPACE, KEY_MAP.DELETE], keyCode); + }, + + /** + * @method isMove + * + * @param {Number} keyCode + * @return {Boolean} + */ + isMove: function isMove(keyCode) { + return lists.contains([KEY_MAP.LEFT, KEY_MAP.UP, KEY_MAP.RIGHT, KEY_MAP.DOWN], keyCode); + }, + + /** + * @method isNavigation + * + * @param {Number} keyCode + * @return {Boolean} + */ + isNavigation: function isNavigation(keyCode) { + return lists.contains([KEY_MAP.HOME, KEY_MAP.END, KEY_MAP.PAGEUP, KEY_MAP.PAGEDOWN], keyCode); + }, + + /** + * @property {Object} nameFromCode + * @property {String} nameFromCode.8 "BACKSPACE" + */ + nameFromCode: func.invertObject(KEY_MAP), + code: KEY_MAP +}); +// CONCATENATED MODULE: ./src/js/base/core/async.js + +/** + * @method readFileAsDataURL + * + * read contents of file as representing URL + * + * @param {File} file + * @return {Promise} - then: dataUrl + */ + +function readFileAsDataURL(file) { + return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(new FileReader(), { + onload: function onload(e) { + var dataURL = e.target.result; + deferred.resolve(dataURL); + }, + onerror: function onerror(err) { + deferred.reject(err); + } + }).readAsDataURL(file); + }).promise(); +} +/** + * @method createImage + * + * create `` from url string + * + * @param {String} url + * @return {Promise} - then: $image + */ + +function createImage(url) { + return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) { + var $img = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(''); + $img.one('load', function () { + $img.off('error abort'); + deferred.resolve($img); + }).one('error abort', function () { + $img.off('load').detach(); + deferred.reject($img); + }).css({ + display: 'none' + }).appendTo(document.body).attr('src', url); + }).promise(); +} +// CONCATENATED MODULE: ./src/js/base/editing/History.js +function History_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function History_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function History_createClass(Constructor, protoProps, staticProps) { if (protoProps) History_defineProperties(Constructor.prototype, protoProps); if (staticProps) History_defineProperties(Constructor, staticProps); return Constructor; } + + + +var History_History = /*#__PURE__*/function () { + function History(context) { + History_classCallCheck(this, History); + + this.stack = []; + this.stackOffset = -1; + this.context = context; + this.$editable = context.layoutInfo.editable; + this.editable = this.$editable[0]; + } + + History_createClass(History, [{ + key: "makeSnapshot", + value: function makeSnapshot() { + var rng = range.create(this.editable); + var emptyBookmark = { + s: { + path: [], + offset: 0 + }, + e: { + path: [], + offset: 0 + } + }; + return { + contents: this.$editable.html(), + bookmark: rng && rng.isOnEditable() ? rng.bookmark(this.editable) : emptyBookmark + }; + } + }, { + key: "applySnapshot", + value: function applySnapshot(snapshot) { + if (snapshot.contents !== null) { + this.$editable.html(snapshot.contents); + } + + if (snapshot.bookmark !== null) { + range.createFromBookmark(this.editable, snapshot.bookmark).select(); + } + } + /** + * @method rewind + * Rewinds the history stack back to the first snapshot taken. + * Leaves the stack intact, so that "Redo" can still be used. + */ + + }, { + key: "rewind", + value: function rewind() { + // Create snap shot if not yet recorded + if (this.$editable.html() !== this.stack[this.stackOffset].contents) { + this.recordUndo(); + } // Return to the first available snapshot. + + + this.stackOffset = 0; // Apply that snapshot. + + this.applySnapshot(this.stack[this.stackOffset]); + } + /** + * @method commit + * Resets history stack, but keeps current editor's content. + */ + + }, { + key: "commit", + value: function commit() { + // Clear the stack. + this.stack = []; // Restore stackOffset to its original value. + + this.stackOffset = -1; // Record our first snapshot (of nothing). + + this.recordUndo(); + } + /** + * @method reset + * Resets the history stack completely; reverting to an empty editor. + */ + + }, { + key: "reset", + value: function reset() { + // Clear the stack. + this.stack = []; // Restore stackOffset to its original value. + + this.stackOffset = -1; // Clear the editable area. + + this.$editable.html(''); // Record our first snapshot (of nothing). + + this.recordUndo(); + } + /** + * undo + */ + + }, { + key: "undo", + value: function undo() { + // Create snap shot if not yet recorded + if (this.$editable.html() !== this.stack[this.stackOffset].contents) { + this.recordUndo(); + } + + if (this.stackOffset > 0) { + this.stackOffset--; + this.applySnapshot(this.stack[this.stackOffset]); + } + } + /** + * redo + */ + + }, { + key: "redo", + value: function redo() { + if (this.stack.length - 1 > this.stackOffset) { + this.stackOffset++; + this.applySnapshot(this.stack[this.stackOffset]); + } + } + /** + * recorded undo + */ + + }, { + key: "recordUndo", + value: function recordUndo() { + this.stackOffset++; // Wash out stack after stackOffset + + if (this.stack.length > this.stackOffset) { + this.stack = this.stack.slice(0, this.stackOffset); + } // Create new snapshot and push it to the end + + + this.stack.push(this.makeSnapshot()); // If the stack size reachs to the limit, then slice it + + if (this.stack.length > this.context.options.historyLimit) { + this.stack.shift(); + this.stackOffset -= 1; + } + } + }]); + + return History; +}(); + + +// CONCATENATED MODULE: ./src/js/base/editing/Style.js +function Style_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function Style_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function Style_createClass(Constructor, protoProps, staticProps) { if (protoProps) Style_defineProperties(Constructor.prototype, protoProps); if (staticProps) Style_defineProperties(Constructor, staticProps); return Constructor; } + + + + + + + +var Style_Style = /*#__PURE__*/function () { + function Style() { + Style_classCallCheck(this, Style); + } + + Style_createClass(Style, [{ + key: "jQueryCSS", + + /** + * @method jQueryCSS + * + * [workaround] for old jQuery + * passing an array of style properties to .css() + * will result in an object of property-value pairs. + * (compability with version < 1.9) + * + * @private + * @param {jQuery} $obj + * @param {Array} propertyNames - An array of one or more CSS properties. + * @return {Object} + */ + value: function jQueryCSS($obj, propertyNames) { + if (env.jqueryVersion < 1.9) { + var result = {}; + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(propertyNames, function (idx, propertyName) { + result[propertyName] = $obj.css(propertyName); + }); + return result; + } + + return $obj.css(propertyNames); + } + /** + * returns style object from node + * + * @param {jQuery} $node + * @return {Object} + */ + + }, { + key: "fromNode", + value: function fromNode($node) { + var properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height']; + var styleInfo = this.jQueryCSS($node, properties) || {}; + var fontSize = $node[0].style.fontSize || styleInfo['font-size']; + styleInfo['font-size'] = parseInt(fontSize, 10); + styleInfo['font-size-unit'] = fontSize.match(/[a-z%]+$/); + return styleInfo; + } + /** + * paragraph level style + * + * @param {WrappedRange} rng + * @param {Object} styleInfo + */ + + }, { + key: "stylePara", + value: function stylePara(rng, styleInfo) { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(rng.nodes(dom.isPara, { + includeAncestor: true + }), function (idx, para) { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(para).css(styleInfo); + }); + } + /** + * insert and returns styleNodes on range. + * + * @param {WrappedRange} rng + * @param {Object} [options] - options for styleNodes + * @param {String} [options.nodeName] - default: `SPAN` + * @param {Boolean} [options.expandClosestSibling] - default: `false` + * @param {Boolean} [options.onlyPartialContains] - default: `false` + * @return {Node[]} + */ + + }, { + key: "styleNodes", + value: function styleNodes(rng, options) { + rng = rng.splitText(); + var nodeName = options && options.nodeName || 'SPAN'; + var expandClosestSibling = !!(options && options.expandClosestSibling); + var onlyPartialContains = !!(options && options.onlyPartialContains); + + if (rng.isCollapsed()) { + return [rng.insertNode(dom.create(nodeName))]; + } + + var pred = dom.makePredByNodeName(nodeName); + var nodes = rng.nodes(dom.isText, { + fullyContains: true + }).map(function (text) { + return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName); + }); + + if (expandClosestSibling) { + if (onlyPartialContains) { + var nodesInRange = rng.nodes(); // compose with partial contains predication + + pred = func.and(pred, function (node) { + return lists.contains(nodesInRange, node); + }); + } + + return nodes.map(function (node) { + var siblings = dom.withClosestSiblings(node, pred); + var head = lists.head(siblings); + var tails = lists.tail(siblings); + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(tails, function (idx, elem) { + dom.appendChildNodes(head, elem.childNodes); + dom.remove(elem); + }); + return lists.head(siblings); + }); + } else { + return nodes; + } + } + /** + * get current style on cursor + * + * @param {WrappedRange} rng + * @return {Object} - object contains style properties. + */ + + }, { + key: "current", + value: function current(rng) { + var $cont = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(!dom.isElement(rng.sc) ? rng.sc.parentNode : rng.sc); + var styleInfo = this.fromNode($cont); // document.queryCommandState for toggle state + // [workaround] prevent Firefox nsresult: "0x80004005 (NS_ERROR_FAILURE)" + + try { + styleInfo = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.extend(styleInfo, { + 'font-bold': document.queryCommandState('bold') ? 'bold' : 'normal', + 'font-italic': document.queryCommandState('italic') ? 'italic' : 'normal', + 'font-underline': document.queryCommandState('underline') ? 'underline' : 'normal', + 'font-subscript': document.queryCommandState('subscript') ? 'subscript' : 'normal', + 'font-superscript': document.queryCommandState('superscript') ? 'superscript' : 'normal', + 'font-strikethrough': document.queryCommandState('strikethrough') ? 'strikethrough' : 'normal', + 'font-family': document.queryCommandValue('fontname') || styleInfo['font-family'] + }); + } catch (e) {} // eslint-disable-next-line + // list-style-type to list-style(unordered, ordered) + + + if (!rng.isOnList()) { + styleInfo['list-style'] = 'none'; + } else { + var orderedTypes = ['circle', 'disc', 'disc-leading-zero', 'square']; + var isUnordered = orderedTypes.indexOf(styleInfo['list-style-type']) > -1; + styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered'; + } + + var para = dom.ancestor(rng.sc, dom.isPara); + + if (para && para.style['line-height']) { + styleInfo['line-height'] = para.style.lineHeight; + } else { + var lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10); + styleInfo['line-height'] = lineHeight.toFixed(1); + } + + styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor); + styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable); + styleInfo.range = rng; + return styleInfo; + } + }]); + + return Style; +}(); + + +// CONCATENATED MODULE: ./src/js/base/editing/Bullet.js +function Bullet_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function Bullet_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function Bullet_createClass(Constructor, protoProps, staticProps) { if (protoProps) Bullet_defineProperties(Constructor.prototype, protoProps); if (staticProps) Bullet_defineProperties(Constructor, staticProps); return Constructor; } + + + + + + + +var Bullet_Bullet = /*#__PURE__*/function () { + function Bullet() { + Bullet_classCallCheck(this, Bullet); + } + + Bullet_createClass(Bullet, [{ + key: "insertOrderedList", + + /** + * toggle ordered list + */ + value: function insertOrderedList(editable) { + this.toggleList('OL', editable); + } + /** + * toggle unordered list + */ + + }, { + key: "insertUnorderedList", + value: function insertUnorderedList(editable) { + this.toggleList('UL', editable); + } + /** + * indent + */ + + }, { + key: "indent", + value: function indent(editable) { + var _this = this; + + var rng = range.create(editable).wrapBodyInlineWithPara(); + var paras = rng.nodes(dom.isPara, { + includeAncestor: true + }); + var clustereds = lists.clusterBy(paras, func.peq2('parentNode')); + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(clustereds, function (idx, paras) { + var head = lists.head(paras); + + if (dom.isLi(head)) { + var previousList = _this.findList(head.previousSibling); + + if (previousList) { + paras.map(function (para) { + return previousList.appendChild(para); + }); + } else { + _this.wrapList(paras, head.parentNode.nodeName); + + paras.map(function (para) { + return para.parentNode; + }).map(function (para) { + return _this.appendToPrevious(para); + }); + } + } else { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(paras, function (idx, para) { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(para).css('marginLeft', function (idx, val) { + return (parseInt(val, 10) || 0) + 25; + }); + }); + } + }); + rng.select(); + } + /** + * outdent + */ + + }, { + key: "outdent", + value: function outdent(editable) { + var _this2 = this; + + var rng = range.create(editable).wrapBodyInlineWithPara(); + var paras = rng.nodes(dom.isPara, { + includeAncestor: true + }); + var clustereds = lists.clusterBy(paras, func.peq2('parentNode')); + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(clustereds, function (idx, paras) { + var head = lists.head(paras); + + if (dom.isLi(head)) { + _this2.releaseList([paras]); + } else { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(paras, function (idx, para) { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(para).css('marginLeft', function (idx, val) { + val = parseInt(val, 10) || 0; + return val > 25 ? val - 25 : ''; + }); + }); + } + }); + rng.select(); + } + /** + * toggle list + * + * @param {String} listName - OL or UL + */ + + }, { + key: "toggleList", + value: function toggleList(listName, editable) { + var _this3 = this; + + var rng = range.create(editable).wrapBodyInlineWithPara(); + var paras = rng.nodes(dom.isPara, { + includeAncestor: true + }); + var bookmark = rng.paraBookmark(paras); + var clustereds = lists.clusterBy(paras, func.peq2('parentNode')); // paragraph to list + + if (lists.find(paras, dom.isPurePara)) { + var wrappedParas = []; + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(clustereds, function (idx, paras) { + wrappedParas = wrappedParas.concat(_this3.wrapList(paras, listName)); + }); + paras = wrappedParas; // list to paragraph or change list style + } else { + var diffLists = rng.nodes(dom.isList, { + includeAncestor: true + }).filter(function (listNode) { + return !external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.nodeName(listNode, listName); + }); + + if (diffLists.length) { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(diffLists, function (idx, listNode) { + dom.replace(listNode, listName); + }); + } else { + paras = this.releaseList(clustereds, true); + } + } + + range.createFromParaBookmark(bookmark, paras).select(); + } + /** + * @param {Node[]} paras + * @param {String} listName + * @return {Node[]} + */ + + }, { + key: "wrapList", + value: function wrapList(paras, listName) { + var head = lists.head(paras); + var last = lists.last(paras); + var prevList = dom.isList(head.previousSibling) && head.previousSibling; + var nextList = dom.isList(last.nextSibling) && last.nextSibling; + var listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last); // P to LI + + paras = paras.map(function (para) { + return dom.isPurePara(para) ? dom.replace(para, 'LI') : para; + }); // append to list(
      ,
        ) + + dom.appendChildNodes(listNode, paras); + + if (nextList) { + dom.appendChildNodes(listNode, lists.from(nextList.childNodes)); + dom.remove(nextList); + } + + return paras; + } + /** + * @method releaseList + * + * @param {Array[]} clustereds + * @param {Boolean} isEscapseToBody + * @return {Node[]} + */ + + }, { + key: "releaseList", + value: function releaseList(clustereds, isEscapseToBody) { + var _this4 = this; + + var releasedParas = []; + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(clustereds, function (idx, paras) { + var head = lists.head(paras); + var last = lists.last(paras); + var headList = isEscapseToBody ? dom.lastAncestor(head, dom.isList) : head.parentNode; + var parentItem = headList.parentNode; + + if (headList.parentNode.nodeName === 'LI') { + paras.map(function (para) { + var newList = _this4.findNextSiblings(para); + + if (parentItem.nextSibling) { + parentItem.parentNode.insertBefore(para, parentItem.nextSibling); + } else { + parentItem.parentNode.appendChild(para); + } + + if (newList.length) { + _this4.wrapList(newList, headList.nodeName); + + para.appendChild(newList[0].parentNode); + } + }); + + if (headList.children.length === 0) { + parentItem.removeChild(headList); + } + + if (parentItem.childNodes.length === 0) { + parentItem.parentNode.removeChild(parentItem); + } + } else { + var lastList = headList.childNodes.length > 1 ? dom.splitTree(headList, { + node: last.parentNode, + offset: dom.position(last) + 1 + }, { + isSkipPaddingBlankHTML: true + }) : null; + var middleList = dom.splitTree(headList, { + node: head.parentNode, + offset: dom.position(head) + }, { + isSkipPaddingBlankHTML: true + }); + paras = isEscapseToBody ? dom.listDescendant(middleList, dom.isLi) : lists.from(middleList.childNodes).filter(dom.isLi); // LI to P + + if (isEscapseToBody || !dom.isList(headList.parentNode)) { + paras = paras.map(function (para) { + return dom.replace(para, 'P'); + }); + } + + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(lists.from(paras).reverse(), function (idx, para) { + dom.insertAfter(para, headList); + }); // remove empty lists + + var rootLists = lists.compact([headList, middleList, lastList]); + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(rootLists, function (idx, rootList) { + var listNodes = [rootList].concat(dom.listDescendant(rootList, dom.isList)); + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(listNodes.reverse(), function (idx, listNode) { + if (!dom.nodeLength(listNode)) { + dom.remove(listNode, true); + } + }); + }); + } + + releasedParas = releasedParas.concat(paras); + }); + return releasedParas; + } + /** + * @method appendToPrevious + * + * Appends list to previous list item, if + * none exist it wraps the list in a new list item. + * + * @param {HTMLNode} ListItem + * @return {HTMLNode} + */ + + }, { + key: "appendToPrevious", + value: function appendToPrevious(node) { + return node.previousSibling ? dom.appendChildNodes(node.previousSibling, [node]) : this.wrapList([node], 'LI'); + } + /** + * @method findList + * + * Finds an existing list in list item + * + * @param {HTMLNode} ListItem + * @return {Array[]} + */ + + }, { + key: "findList", + value: function findList(node) { + return node ? lists.find(node.children, function (child) { + return ['OL', 'UL'].indexOf(child.nodeName) > -1; + }) : null; + } + /** + * @method findNextSiblings + * + * Finds all list item siblings that follow it + * + * @param {HTMLNode} ListItem + * @return {HTMLNode} + */ + + }, { + key: "findNextSiblings", + value: function findNextSiblings(node) { + var siblings = []; + + while (node.nextSibling) { + siblings.push(node.nextSibling); + node = node.nextSibling; + } + + return siblings; + } + }]); + + return Bullet; +}(); + + +// CONCATENATED MODULE: ./src/js/base/editing/Typing.js +function Typing_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function Typing_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function Typing_createClass(Constructor, protoProps, staticProps) { if (protoProps) Typing_defineProperties(Constructor.prototype, protoProps); if (staticProps) Typing_defineProperties(Constructor, staticProps); return Constructor; } + + + + + +/** + * @class editing.Typing + * + * Typing + * + */ + +var Typing_Typing = /*#__PURE__*/function () { + function Typing(context) { + Typing_classCallCheck(this, Typing); + + // a Bullet instance to toggle lists off + this.bullet = new Bullet_Bullet(); + this.options = context.options; + } + /** + * insert tab + * + * @param {WrappedRange} rng + * @param {Number} tabsize + */ + + + Typing_createClass(Typing, [{ + key: "insertTab", + value: function insertTab(rng, tabsize) { + var tab = dom.createText(new Array(tabsize + 1).join(dom.NBSP_CHAR)); + rng = rng.deleteContents(); + rng.insertNode(tab, true); + rng = range.create(tab, tabsize); + rng.select(); + } + /** + * insert paragraph + * + * @param {jQuery} $editable + * @param {WrappedRange} rng Can be used in unit tests to "mock" the range + * + * blockquoteBreakingLevel + * 0 - No break, the new paragraph remains inside the quote + * 1 - Break the first blockquote in the ancestors list + * 2 - Break all blockquotes, so that the new paragraph is not quoted (this is the default) + */ + + }, { + key: "insertParagraph", + value: function insertParagraph(editable, rng) { + rng = rng || range.create(editable); // deleteContents on range. + + rng = rng.deleteContents(); // Wrap range if it needs to be wrapped by paragraph + + rng = rng.wrapBodyInlineWithPara(); // finding paragraph + + var splitRoot = dom.ancestor(rng.sc, dom.isPara); + var nextPara; // on paragraph: split paragraph + + if (splitRoot) { + // if it is an empty line with li + if (dom.isLi(splitRoot) && (dom.isEmpty(splitRoot) || dom.deepestChildIsEmpty(splitRoot))) { + // toggle UL/OL and escape + this.bullet.toggleList(splitRoot.parentNode.nodeName); + return; + } else { + var blockquote = null; + + if (this.options.blockquoteBreakingLevel === 1) { + blockquote = dom.ancestor(splitRoot, dom.isBlockquote); + } else if (this.options.blockquoteBreakingLevel === 2) { + blockquote = dom.lastAncestor(splitRoot, dom.isBlockquote); + } + + if (blockquote) { + // We're inside a blockquote and options ask us to break it + nextPara = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(dom.emptyPara)[0]; // If the split is right before a
        , remove it so that there's no "empty line" + // after the split in the new blockquote created + + if (dom.isRightEdgePoint(rng.getStartPoint()) && dom.isBR(rng.sc.nextSibling)) { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(rng.sc.nextSibling).remove(); + } + + var split = dom.splitTree(blockquote, rng.getStartPoint(), { + isDiscardEmptySplits: true + }); + + if (split) { + split.parentNode.insertBefore(nextPara, split); + } else { + dom.insertAfter(nextPara, blockquote); // There's no split if we were at the end of the blockquote + } + } else { + nextPara = dom.splitTree(splitRoot, rng.getStartPoint()); // not a blockquote, just insert the paragraph + + var emptyAnchors = dom.listDescendant(splitRoot, dom.isEmptyAnchor); + emptyAnchors = emptyAnchors.concat(dom.listDescendant(nextPara, dom.isEmptyAnchor)); + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(emptyAnchors, function (idx, anchor) { + dom.remove(anchor); + }); // replace empty heading, pre or custom-made styleTag with P tag + + if ((dom.isHeading(nextPara) || dom.isPre(nextPara) || dom.isCustomStyleTag(nextPara)) && dom.isEmpty(nextPara)) { + nextPara = dom.replace(nextPara, 'p'); + } + } + } // no paragraph: insert empty paragraph + + } else { + var next = rng.sc.childNodes[rng.so]; + nextPara = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(dom.emptyPara)[0]; + + if (next) { + rng.sc.insertBefore(nextPara, next); + } else { + rng.sc.appendChild(nextPara); + } + } + + range.create(nextPara, 0).normalize().select().scrollIntoView(editable); + } + }]); + + return Typing; +}(); + + +// CONCATENATED MODULE: ./src/js/base/editing/Table.js +function Table_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function Table_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function Table_createClass(Constructor, protoProps, staticProps) { if (protoProps) Table_defineProperties(Constructor.prototype, protoProps); if (staticProps) Table_defineProperties(Constructor, staticProps); return Constructor; } + + + + + +/** + * @class Create a virtual table to create what actions to do in change. + * @param {object} startPoint Cell selected to apply change. + * @param {enum} where Where change will be applied Row or Col. Use enum: TableResultAction.where + * @param {enum} action Action to be applied. Use enum: TableResultAction.requestAction + * @param {object} domTable Dom element of table to make changes. + */ + +var TableResultAction = function TableResultAction(startPoint, where, action, domTable) { + var _startPoint = { + 'colPos': 0, + 'rowPos': 0 + }; + var _virtualTable = []; + var _actionCellList = []; /// /////////////////////////////////////////// + // Private functions + /// /////////////////////////////////////////// + + /** + * Set the startPoint of action. + */ + + function setStartPoint() { + if (!startPoint || !startPoint.tagName || startPoint.tagName.toLowerCase() !== 'td' && startPoint.tagName.toLowerCase() !== 'th') { + // Impossible to identify start Cell point + return; + } + + _startPoint.colPos = startPoint.cellIndex; + + if (!startPoint.parentElement || !startPoint.parentElement.tagName || startPoint.parentElement.tagName.toLowerCase() !== 'tr') { + // Impossible to identify start Row point + return; + } + + _startPoint.rowPos = startPoint.parentElement.rowIndex; + } + /** + * Define virtual table position info object. + * + * @param {int} rowIndex Index position in line of virtual table. + * @param {int} cellIndex Index position in column of virtual table. + * @param {object} baseRow Row affected by this position. + * @param {object} baseCell Cell affected by this position. + * @param {bool} isSpan Inform if it is an span cell/row. + */ + + + function setVirtualTablePosition(rowIndex, cellIndex, baseRow, baseCell, isRowSpan, isColSpan, isVirtualCell) { + var objPosition = { + 'baseRow': baseRow, + 'baseCell': baseCell, + 'isRowSpan': isRowSpan, + 'isColSpan': isColSpan, + 'isVirtual': isVirtualCell + }; + + if (!_virtualTable[rowIndex]) { + _virtualTable[rowIndex] = []; + } + + _virtualTable[rowIndex][cellIndex] = objPosition; + } + /** + * Create action cell object. + * + * @param {object} virtualTableCellObj Object of specific position on virtual table. + * @param {enum} resultAction Action to be applied in that item. + */ + + + function getActionCell(virtualTableCellObj, resultAction, virtualRowPosition, virtualColPosition) { + return { + 'baseCell': virtualTableCellObj.baseCell, + 'action': resultAction, + 'virtualTable': { + 'rowIndex': virtualRowPosition, + 'cellIndex': virtualColPosition + } + }; + } + /** + * Recover free index of row to append Cell. + * + * @param {int} rowIndex Index of row to find free space. + * @param {int} cellIndex Index of cell to find free space in table. + */ + + + function recoverCellIndex(rowIndex, cellIndex) { + if (!_virtualTable[rowIndex]) { + return cellIndex; + } + + if (!_virtualTable[rowIndex][cellIndex]) { + return cellIndex; + } + + var newCellIndex = cellIndex; + + while (_virtualTable[rowIndex][newCellIndex]) { + newCellIndex++; + + if (!_virtualTable[rowIndex][newCellIndex]) { + return newCellIndex; + } + } + } + /** + * Recover info about row and cell and add information to virtual table. + * + * @param {object} row Row to recover information. + * @param {object} cell Cell to recover information. + */ + + + function addCellInfoToVirtual(row, cell) { + var cellIndex = recoverCellIndex(row.rowIndex, cell.cellIndex); + var cellHasColspan = cell.colSpan > 1; + var cellHasRowspan = cell.rowSpan > 1; + var isThisSelectedCell = row.rowIndex === _startPoint.rowPos && cell.cellIndex === _startPoint.colPos; + setVirtualTablePosition(row.rowIndex, cellIndex, row, cell, cellHasRowspan, cellHasColspan, false); // Add span rows to virtual Table. + + var rowspanNumber = cell.attributes.rowSpan ? parseInt(cell.attributes.rowSpan.value, 10) : 0; + + if (rowspanNumber > 1) { + for (var rp = 1; rp < rowspanNumber; rp++) { + var rowspanIndex = row.rowIndex + rp; + adjustStartPoint(rowspanIndex, cellIndex, cell, isThisSelectedCell); + setVirtualTablePosition(rowspanIndex, cellIndex, row, cell, true, cellHasColspan, true); + } + } // Add span cols to virtual table. + + + var colspanNumber = cell.attributes.colSpan ? parseInt(cell.attributes.colSpan.value, 10) : 0; + + if (colspanNumber > 1) { + for (var cp = 1; cp < colspanNumber; cp++) { + var cellspanIndex = recoverCellIndex(row.rowIndex, cellIndex + cp); + adjustStartPoint(row.rowIndex, cellspanIndex, cell, isThisSelectedCell); + setVirtualTablePosition(row.rowIndex, cellspanIndex, row, cell, cellHasRowspan, true, true); + } + } + } + /** + * Process validation and adjust of start point if needed + * + * @param {int} rowIndex + * @param {int} cellIndex + * @param {object} cell + * @param {bool} isSelectedCell + */ + + + function adjustStartPoint(rowIndex, cellIndex, cell, isSelectedCell) { + if (rowIndex === _startPoint.rowPos && _startPoint.colPos >= cell.cellIndex && cell.cellIndex <= cellIndex && !isSelectedCell) { + _startPoint.colPos++; + } + } + /** + * Create virtual table of cells with all cells, including span cells. + */ + + + function createVirtualTable() { + var rows = domTable.rows; + + for (var rowIndex = 0; rowIndex < rows.length; rowIndex++) { + var cells = rows[rowIndex].cells; + + for (var cellIndex = 0; cellIndex < cells.length; cellIndex++) { + addCellInfoToVirtual(rows[rowIndex], cells[cellIndex]); + } + } + } + /** + * Get action to be applied on the cell. + * + * @param {object} cell virtual table cell to apply action + */ + + + function getDeleteResultActionToCell(cell) { + switch (where) { + case TableResultAction.where.Column: + if (cell.isColSpan) { + return TableResultAction.resultAction.SubtractSpanCount; + } + + break; + + case TableResultAction.where.Row: + if (!cell.isVirtual && cell.isRowSpan) { + return TableResultAction.resultAction.AddCell; + } else if (cell.isRowSpan) { + return TableResultAction.resultAction.SubtractSpanCount; + } + + break; + } + + return TableResultAction.resultAction.RemoveCell; + } + /** + * Get action to be applied on the cell. + * + * @param {object} cell virtual table cell to apply action + */ + + + function getAddResultActionToCell(cell) { + switch (where) { + case TableResultAction.where.Column: + if (cell.isColSpan) { + return TableResultAction.resultAction.SumSpanCount; + } else if (cell.isRowSpan && cell.isVirtual) { + return TableResultAction.resultAction.Ignore; + } + + break; + + case TableResultAction.where.Row: + if (cell.isRowSpan) { + return TableResultAction.resultAction.SumSpanCount; + } else if (cell.isColSpan && cell.isVirtual) { + return TableResultAction.resultAction.Ignore; + } + + break; + } + + return TableResultAction.resultAction.AddCell; + } + + function init() { + setStartPoint(); + createVirtualTable(); + } /// /////////////////////////////////////////// + // Public functions + /// /////////////////////////////////////////// + + /** + * Recover array os what to do in table. + */ + + + this.getActionList = function () { + var fixedRow = where === TableResultAction.where.Row ? _startPoint.rowPos : -1; + var fixedCol = where === TableResultAction.where.Column ? _startPoint.colPos : -1; + var actualPosition = 0; + var canContinue = true; + + while (canContinue) { + var rowPosition = fixedRow >= 0 ? fixedRow : actualPosition; + var colPosition = fixedCol >= 0 ? fixedCol : actualPosition; + var row = _virtualTable[rowPosition]; + + if (!row) { + canContinue = false; + return _actionCellList; + } + + var cell = row[colPosition]; + + if (!cell) { + canContinue = false; + return _actionCellList; + } // Define action to be applied in this cell + + + var resultAction = TableResultAction.resultAction.Ignore; + + switch (action) { + case TableResultAction.requestAction.Add: + resultAction = getAddResultActionToCell(cell); + break; + + case TableResultAction.requestAction.Delete: + resultAction = getDeleteResultActionToCell(cell); + break; + } + + _actionCellList.push(getActionCell(cell, resultAction, rowPosition, colPosition)); + + actualPosition++; + } + + return _actionCellList; + }; + + init(); +}; +/** +* +* Where action occours enum. +*/ + + +TableResultAction.where = { + 'Row': 0, + 'Column': 1 +}; +/** +* +* Requested action to apply enum. +*/ + +TableResultAction.requestAction = { + 'Add': 0, + 'Delete': 1 +}; +/** +* +* Result action to be executed enum. +*/ + +TableResultAction.resultAction = { + 'Ignore': 0, + 'SubtractSpanCount': 1, + 'RemoveCell': 2, + 'AddCell': 3, + 'SumSpanCount': 4 +}; +/** + * + * @class editing.Table + * + * Table + * + */ + +var Table_Table = /*#__PURE__*/function () { + function Table() { + Table_classCallCheck(this, Table); + } + + Table_createClass(Table, [{ + key: "tab", + + /** + * handle tab key + * + * @param {WrappedRange} rng + * @param {Boolean} isShift + */ + value: function tab(rng, isShift) { + var cell = dom.ancestor(rng.commonAncestor(), dom.isCell); + var table = dom.ancestor(cell, dom.isTable); + var cells = dom.listDescendant(table, dom.isCell); + var nextCell = lists[isShift ? 'prev' : 'next'](cells, cell); + + if (nextCell) { + range.create(nextCell, 0).select(); + } + } + /** + * Add a new row + * + * @param {WrappedRange} rng + * @param {String} position (top/bottom) + * @return {Node} + */ + + }, { + key: "addRow", + value: function addRow(rng, position) { + var cell = dom.ancestor(rng.commonAncestor(), dom.isCell); + var currentTr = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('tr'); + var trAttributes = this.recoverAttributes(currentTr); + var html = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('
    '); + var vTable = new TableResultAction(cell, TableResultAction.where.Row, TableResultAction.requestAction.Add, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentTr).closest('table')[0]); + var actions = vTable.getActionList(); + + for (var idCell = 0; idCell < actions.length; idCell++) { + var currentCell = actions[idCell]; + var tdAttributes = this.recoverAttributes(currentCell.baseCell); + + switch (currentCell.action) { + case TableResultAction.resultAction.AddCell: + html.append('' + dom.blank + ''); + break; + + case TableResultAction.resultAction.SumSpanCount: + { + if (position === 'top') { + var baseCellTr = currentCell.baseCell.parent; + var isTopFromRowSpan = (!baseCellTr ? 0 : currentCell.baseCell.closest('tr').rowIndex) <= currentTr[0].rowIndex; + + if (isTopFromRowSpan) { + var newTd = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('
    ').append(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('' + dom.blank + '').removeAttr('rowspan')).html(); + html.append(newTd); + break; + } + } + + var rowspanNumber = parseInt(currentCell.baseCell.rowSpan, 10); + rowspanNumber++; + currentCell.baseCell.setAttribute('rowSpan', rowspanNumber); + } + break; + } + } + + if (position === 'top') { + currentTr.before(html); + } else { + var cellHasRowspan = cell.rowSpan > 1; + + if (cellHasRowspan) { + var lastTrIndex = currentTr[0].rowIndex + (cell.rowSpan - 2); + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentTr).parent().find('tr')[lastTrIndex]).after(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(html)); + return; + } + + currentTr.after(html); + } + } + /** + * Add a new col + * + * @param {WrappedRange} rng + * @param {String} position (left/right) + * @return {Node} + */ + + }, { + key: "addCol", + value: function addCol(rng, position) { + var cell = dom.ancestor(rng.commonAncestor(), dom.isCell); + var row = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('tr'); + var rowsGroup = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(row).siblings(); + rowsGroup.push(row); + var vTable = new TableResultAction(cell, TableResultAction.where.Column, TableResultAction.requestAction.Add, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(row).closest('table')[0]); + var actions = vTable.getActionList(); + + for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) { + var currentCell = actions[actionIndex]; + var tdAttributes = this.recoverAttributes(currentCell.baseCell); + + switch (currentCell.action) { + case TableResultAction.resultAction.AddCell: + if (position === 'right') { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentCell.baseCell).after('' + dom.blank + ''); + } else { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentCell.baseCell).before('' + dom.blank + ''); + } + + break; + + case TableResultAction.resultAction.SumSpanCount: + if (position === 'right') { + var colspanNumber = parseInt(currentCell.baseCell.colSpan, 10); + colspanNumber++; + currentCell.baseCell.setAttribute('colSpan', colspanNumber); + } else { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(currentCell.baseCell).before('' + dom.blank + ''); + } + + break; + } + } + } + /* + * Copy attributes from element. + * + * @param {object} Element to recover attributes. + * @return {string} Copied string elements. + */ + + }, { + key: "recoverAttributes", + value: function recoverAttributes(el) { + var resultStr = ''; + + if (!el) { + return resultStr; + } + + var attrList = el.attributes || []; + + for (var i = 0; i < attrList.length; i++) { + if (attrList[i].name.toLowerCase() === 'id') { + continue; + } + + if (attrList[i].specified) { + resultStr += ' ' + attrList[i].name + '=\'' + attrList[i].value + '\''; + } + } + + return resultStr; + } + /** + * Delete current row + * + * @param {WrappedRange} rng + * @return {Node} + */ + + }, { + key: "deleteRow", + value: function deleteRow(rng) { + var cell = dom.ancestor(rng.commonAncestor(), dom.isCell); + var row = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('tr'); + var cellPos = row.children('td, th').index(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell)); + var rowPos = row[0].rowIndex; + var vTable = new TableResultAction(cell, TableResultAction.where.Row, TableResultAction.requestAction.Delete, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(row).closest('table')[0]); + var actions = vTable.getActionList(); + + for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) { + if (!actions[actionIndex]) { + continue; + } + + var baseCell = actions[actionIndex].baseCell; + var virtualPosition = actions[actionIndex].virtualTable; + var hasRowspan = baseCell.rowSpan && baseCell.rowSpan > 1; + var rowspanNumber = hasRowspan ? parseInt(baseCell.rowSpan, 10) : 0; + + switch (actions[actionIndex].action) { + case TableResultAction.resultAction.Ignore: + continue; + + case TableResultAction.resultAction.AddCell: + { + var nextRow = row.next('tr')[0]; + + if (!nextRow) { + continue; + } + + var cloneRow = row[0].cells[cellPos]; + + if (hasRowspan) { + if (rowspanNumber > 2) { + rowspanNumber--; + nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]); + nextRow.cells[cellPos].setAttribute('rowSpan', rowspanNumber); + nextRow.cells[cellPos].innerHTML = ''; + } else if (rowspanNumber === 2) { + nextRow.insertBefore(cloneRow, nextRow.cells[cellPos]); + nextRow.cells[cellPos].removeAttribute('rowSpan'); + nextRow.cells[cellPos].innerHTML = ''; + } + } + } + continue; + + case TableResultAction.resultAction.SubtractSpanCount: + if (hasRowspan) { + if (rowspanNumber > 2) { + rowspanNumber--; + baseCell.setAttribute('rowSpan', rowspanNumber); + + if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) { + baseCell.innerHTML = ''; + } + } else if (rowspanNumber === 2) { + baseCell.removeAttribute('rowSpan'); + + if (virtualPosition.rowIndex !== rowPos && baseCell.cellIndex === cellPos) { + baseCell.innerHTML = ''; + } + } + } + + continue; + + case TableResultAction.resultAction.RemoveCell: + // Do not need remove cell because row will be deleted. + continue; + } + } + + row.remove(); + } + /** + * Delete current col + * + * @param {WrappedRange} rng + * @return {Node} + */ + + }, { + key: "deleteCol", + value: function deleteCol(rng) { + var cell = dom.ancestor(rng.commonAncestor(), dom.isCell); + var row = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('tr'); + var cellPos = row.children('td, th').index(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell)); + var vTable = new TableResultAction(cell, TableResultAction.where.Column, TableResultAction.requestAction.Delete, external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(row).closest('table')[0]); + var actions = vTable.getActionList(); + + for (var actionIndex = 0; actionIndex < actions.length; actionIndex++) { + if (!actions[actionIndex]) { + continue; + } + + switch (actions[actionIndex].action) { + case TableResultAction.resultAction.Ignore: + continue; + + case TableResultAction.resultAction.SubtractSpanCount: + { + var baseCell = actions[actionIndex].baseCell; + var hasColspan = baseCell.colSpan && baseCell.colSpan > 1; + + if (hasColspan) { + var colspanNumber = baseCell.colSpan ? parseInt(baseCell.colSpan, 10) : 0; + + if (colspanNumber > 2) { + colspanNumber--; + baseCell.setAttribute('colSpan', colspanNumber); + + if (baseCell.cellIndex === cellPos) { + baseCell.innerHTML = ''; + } + } else if (colspanNumber === 2) { + baseCell.removeAttribute('colSpan'); + + if (baseCell.cellIndex === cellPos) { + baseCell.innerHTML = ''; + } + } + } + } + continue; + + case TableResultAction.resultAction.RemoveCell: + dom.remove(actions[actionIndex].baseCell, true); + continue; + } + } + } + /** + * create empty table element + * + * @param {Number} rowCount + * @param {Number} colCount + * @return {Node} + */ + + }, { + key: "createTable", + value: function createTable(colCount, rowCount, options) { + var tds = []; + var tdHTML; + + for (var idxCol = 0; idxCol < colCount; idxCol++) { + tds.push('
    '); + } + + tdHTML = tds.join(''); + var trs = []; + var trHTML; + + for (var idxRow = 0; idxRow < rowCount; idxRow++) { + trs.push('' + tdHTML + ''); + } + + trHTML = trs.join(''); + var $table = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('
    ').addClass('note-specialchar-node'); + var $tr = (idx % COLUMN_LENGTH === 0) ? $('
    ' + dom.blank + '
    ' + trHTML + '
    '); + + if (options && options.tableClassName) { + $table.addClass(options.tableClassName); + } + + return $table[0]; + } + /** + * Delete current table + * + * @param {WrappedRange} rng + * @return {Node} + */ + + }, { + key: "deleteTable", + value: function deleteTable(rng) { + var cell = dom.ancestor(rng.commonAncestor(), dom.isCell); + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(cell).closest('table').remove(); + } + }]); + + return Table; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/Editor.js +function Editor_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function Editor_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function Editor_createClass(Constructor, protoProps, staticProps) { if (protoProps) Editor_defineProperties(Constructor.prototype, protoProps); if (staticProps) Editor_defineProperties(Constructor, staticProps); return Constructor; } + + + + + + + + + + + + + + +var KEY_BOGUS = 'bogus'; +/** + * @class Editor + */ + +var Editor_Editor = /*#__PURE__*/function () { + function Editor(context) { + var _this = this; + + Editor_classCallCheck(this, Editor); + + this.context = context; + this.$note = context.layoutInfo.note; + this.$editor = context.layoutInfo.editor; + this.$editable = context.layoutInfo.editable; + this.options = context.options; + this.lang = this.options.langInfo; + this.editable = this.$editable[0]; + this.lastRange = null; + this.snapshot = null; + this.style = new Style_Style(); + this.table = new Table_Table(); + this.typing = new Typing_Typing(context); + this.bullet = new Bullet_Bullet(); + this.history = new History_History(context); + this.context.memo('help.escape', this.lang.help.escape); + this.context.memo('help.undo', this.lang.help.undo); + this.context.memo('help.redo', this.lang.help.redo); + this.context.memo('help.tab', this.lang.help.tab); + this.context.memo('help.untab', this.lang.help.untab); + this.context.memo('help.insertParagraph', this.lang.help.insertParagraph); + this.context.memo('help.insertOrderedList', this.lang.help.insertOrderedList); + this.context.memo('help.insertUnorderedList', this.lang.help.insertUnorderedList); + this.context.memo('help.indent', this.lang.help.indent); + this.context.memo('help.outdent', this.lang.help.outdent); + this.context.memo('help.formatPara', this.lang.help.formatPara); + this.context.memo('help.insertHorizontalRule', this.lang.help.insertHorizontalRule); + this.context.memo('help.fontName', this.lang.help.fontName); // native commands(with execCommand), generate function for execCommand + + var commands = ['bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull', 'formatBlock', 'removeFormat', 'backColor']; + + for (var idx = 0, len = commands.length; idx < len; idx++) { + this[commands[idx]] = function (sCmd) { + return function (value) { + _this.beforeCommand(); + + document.execCommand(sCmd, false, value); + + _this.afterCommand(true); + }; + }(commands[idx]); + + this.context.memo('help.' + commands[idx], this.lang.help[commands[idx]]); + } + + this.fontName = this.wrapCommand(function (value) { + return _this.fontStyling('font-family', env.validFontName(value)); + }); + this.fontSize = this.wrapCommand(function (value) { + var unit = _this.currentStyle()['font-size-unit']; + + return _this.fontStyling('font-size', value + unit); + }); + this.fontSizeUnit = this.wrapCommand(function (value) { + var size = _this.currentStyle()['font-size']; + + return _this.fontStyling('font-size', size + value); + }); + + for (var _idx = 1; _idx <= 6; _idx++) { + this['formatH' + _idx] = function (idx) { + return function () { + _this.formatBlock('H' + idx); + }; + }(_idx); + + this.context.memo('help.formatH' + _idx, this.lang.help['formatH' + _idx]); + } + + this.insertParagraph = this.wrapCommand(function () { + _this.typing.insertParagraph(_this.editable); + }); + this.insertOrderedList = this.wrapCommand(function () { + _this.bullet.insertOrderedList(_this.editable); + }); + this.insertUnorderedList = this.wrapCommand(function () { + _this.bullet.insertUnorderedList(_this.editable); + }); + this.indent = this.wrapCommand(function () { + _this.bullet.indent(_this.editable); + }); + this.outdent = this.wrapCommand(function () { + _this.bullet.outdent(_this.editable); + }); + /** + * insertNode + * insert node + * @param {Node} node + */ + + this.insertNode = this.wrapCommand(function (node) { + if (_this.isLimited(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).text().length)) { + return; + } + + var rng = _this.getLastRange(); + + rng.insertNode(node); + + _this.setLastRange(range.createFromNodeAfter(node).select()); + }); + /** + * insert text + * @param {String} text + */ + + this.insertText = this.wrapCommand(function (text) { + if (_this.isLimited(text.length)) { + return; + } + + var rng = _this.getLastRange(); + + var textNode = rng.insertNode(dom.createText(text)); + + _this.setLastRange(range.create(textNode, dom.nodeLength(textNode)).select()); + }); + /** + * paste HTML + * @param {String} markup + */ + + this.pasteHTML = this.wrapCommand(function (markup) { + if (_this.isLimited(markup.length)) { + return; + } + + markup = _this.context.invoke('codeview.purify', markup); + + var contents = _this.getLastRange().pasteHTML(markup); + + _this.setLastRange(range.createFromNodeAfter(lists.last(contents)).select()); + }); + /** + * formatBlock + * + * @param {String} tagName + */ + + this.formatBlock = this.wrapCommand(function (tagName, $target) { + var onApplyCustomStyle = _this.options.callbacks.onApplyCustomStyle; + + if (onApplyCustomStyle) { + onApplyCustomStyle.call(_this, $target, _this.context, _this.onFormatBlock); + } else { + _this.onFormatBlock(tagName, $target); + } + }); + /** + * insert horizontal rule + */ + + this.insertHorizontalRule = this.wrapCommand(function () { + var hrNode = _this.getLastRange().insertNode(dom.create('HR')); + + if (hrNode.nextSibling) { + _this.setLastRange(range.create(hrNode.nextSibling, 0).normalize().select()); + } + }); + /** + * lineHeight + * @param {String} value + */ + + this.lineHeight = this.wrapCommand(function (value) { + _this.style.stylePara(_this.getLastRange(), { + lineHeight: value + }); + }); + /** + * create link (command) + * + * @param {Object} linkInfo + */ + + this.createLink = this.wrapCommand(function (linkInfo) { + var linkUrl = linkInfo.url; + var linkText = linkInfo.text; + var isNewWindow = linkInfo.isNewWindow; + var checkProtocol = linkInfo.checkProtocol; + + var rng = linkInfo.range || _this.getLastRange(); + + var additionalTextLength = linkText.length - rng.toString().length; + + if (additionalTextLength > 0 && _this.isLimited(additionalTextLength)) { + return; + } + + var isTextChanged = rng.toString() !== linkText; // handle spaced urls from input + + if (typeof linkUrl === 'string') { + linkUrl = linkUrl.trim(); + } + + if (_this.options.onCreateLink) { + linkUrl = _this.options.onCreateLink(linkUrl); + } else if (checkProtocol) { + // if url doesn't have any protocol and not even a relative or a label, use http:// as default + linkUrl = /^([A-Za-z][A-Za-z0-9+-.]*\:|#|\/)/.test(linkUrl) ? linkUrl : _this.options.defaultProtocol + linkUrl; + } + + var anchors = []; + + if (isTextChanged) { + rng = rng.deleteContents(); + var anchor = rng.insertNode(external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('' + linkText + '')[0]); + anchors.push(anchor); + } else { + anchors = _this.style.styleNodes(rng, { + nodeName: 'A', + expandClosestSibling: true, + onlyPartialContains: true + }); + } + + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(anchors, function (idx, anchor) { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(anchor).attr('href', linkUrl); + + if (isNewWindow) { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(anchor).attr('target', '_blank'); + } else { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(anchor).removeAttr('target'); + } + }); + + _this.setLastRange(_this.createRangeFromList(anchors).select()); + }); + /** + * setting color + * + * @param {Object} sObjColor color code + * @param {String} sObjColor.foreColor foreground color + * @param {String} sObjColor.backColor background color + */ + + this.color = this.wrapCommand(function (colorInfo) { + var foreColor = colorInfo.foreColor; + var backColor = colorInfo.backColor; + + if (foreColor) { + document.execCommand('foreColor', false, foreColor); + } + + if (backColor) { + document.execCommand('backColor', false, backColor); + } + }); + /** + * Set foreground color + * + * @param {String} colorCode foreground color code + */ + + this.foreColor = this.wrapCommand(function (colorInfo) { + document.execCommand('foreColor', false, colorInfo); + }); + /** + * insert Table + * + * @param {String} dimension of table (ex : "5x5") + */ + + this.insertTable = this.wrapCommand(function (dim) { + var dimension = dim.split('x'); + + var rng = _this.getLastRange().deleteContents(); + + rng.insertNode(_this.table.createTable(dimension[0], dimension[1], _this.options)); + }); + /** + * remove media object and Figure Elements if media object is img with Figure. + */ + + this.removeMedia = this.wrapCommand(function () { + var $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(_this.restoreTarget()).parent(); + + if ($target.closest('figure').length) { + $target.closest('figure').remove(); + } else { + $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(_this.restoreTarget()).detach(); + } + + _this.context.triggerEvent('media.delete', $target, _this.$editable); + }); + /** + * float me + * + * @param {String} value + */ + + this.floatMe = this.wrapCommand(function (value) { + var $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(_this.restoreTarget()); + $target.toggleClass('note-float-left', value === 'left'); + $target.toggleClass('note-float-right', value === 'right'); + $target.css('float', value === 'none' ? '' : value); + }); + /** + * resize overlay element + * @param {String} value + */ + + this.resize = this.wrapCommand(function (value) { + var $target = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(_this.restoreTarget()); + value = parseFloat(value); + + if (value === 0) { + $target.css('width', ''); + } else { + $target.css({ + width: value * 100 + '%', + height: '' + }); + } + }); + } + + Editor_createClass(Editor, [{ + key: "initialize", + value: function initialize() { + var _this2 = this; + + // bind custom events + this.$editable.on('keydown', function (event) { + if (event.keyCode === core_key.code.ENTER) { + _this2.context.triggerEvent('enter', event); + } + + _this2.context.triggerEvent('keydown', event); // keep a snapshot to limit text on input event + + + _this2.snapshot = _this2.history.makeSnapshot(); + _this2.hasKeyShortCut = false; + + if (!event.isDefaultPrevented()) { + if (_this2.options.shortcuts) { + _this2.hasKeyShortCut = _this2.handleKeyMap(event); + } else { + _this2.preventDefaultEditableShortCuts(event); + } + } + + if (_this2.isLimited(1, event)) { + var lastRange = _this2.getLastRange(); + + if (lastRange.eo - lastRange.so === 0) { + return false; + } + } + + _this2.setLastRange(); // record undo in the key event except keyMap. + + + if (_this2.options.recordEveryKeystroke) { + if (_this2.hasKeyShortCut === false) { + _this2.history.recordUndo(); + } + } + }).on('keyup', function (event) { + _this2.setLastRange(); + + _this2.context.triggerEvent('keyup', event); + }).on('focus', function (event) { + _this2.setLastRange(); + + _this2.context.triggerEvent('focus', event); + }).on('blur', function (event) { + _this2.context.triggerEvent('blur', event); + }).on('mousedown', function (event) { + _this2.context.triggerEvent('mousedown', event); + }).on('mouseup', function (event) { + _this2.setLastRange(); + + _this2.history.recordUndo(); + + _this2.context.triggerEvent('mouseup', event); + }).on('scroll', function (event) { + _this2.context.triggerEvent('scroll', event); + }).on('paste', function (event) { + _this2.setLastRange(); + + _this2.context.triggerEvent('paste', event); + }).on('input', function () { + // To limit composition characters (e.g. Korean) + if (_this2.isLimited(0) && _this2.snapshot) { + _this2.history.applySnapshot(_this2.snapshot); + } + }); + this.$editable.attr('spellcheck', this.options.spellCheck); + this.$editable.attr('autocorrect', this.options.spellCheck); + + if (this.options.disableGrammar) { + this.$editable.attr('data-gramm', false); + } // init content before set event + + + this.$editable.html(dom.html(this.$note) || dom.emptyPara); + this.$editable.on(env.inputEventName, func.debounce(function () { + _this2.context.triggerEvent('change', _this2.$editable.html(), _this2.$editable); + }, 10)); + this.$editable.on('focusin', function (event) { + _this2.context.triggerEvent('focusin', event); + }).on('focusout', function (event) { + _this2.context.triggerEvent('focusout', event); + }); + + if (this.options.airMode) { + if (this.options.overrideContextMenu) { + this.$editor.on('contextmenu', function (event) { + _this2.context.triggerEvent('contextmenu', event); + + return false; + }); + } + } else { + if (this.options.width) { + this.$editor.outerWidth(this.options.width); + } + + if (this.options.height) { + this.$editable.outerHeight(this.options.height); + } + + if (this.options.maxHeight) { + this.$editable.css('max-height', this.options.maxHeight); + } + + if (this.options.minHeight) { + this.$editable.css('min-height', this.options.minHeight); + } + } + + this.history.recordUndo(); + this.setLastRange(); + } + }, { + key: "destroy", + value: function destroy() { + this.$editable.off(); + } + }, { + key: "handleKeyMap", + value: function handleKeyMap(event) { + var keyMap = this.options.keyMap[env.isMac ? 'mac' : 'pc']; + var keys = []; + + if (event.metaKey) { + keys.push('CMD'); + } + + if (event.ctrlKey && !event.altKey) { + keys.push('CTRL'); + } + + if (event.shiftKey) { + keys.push('SHIFT'); + } + + var keyName = core_key.nameFromCode[event.keyCode]; + + if (keyName) { + keys.push(keyName); + } + + var eventName = keyMap[keys.join('+')]; + + if (keyName === 'TAB' && !this.options.tabDisable) { + this.afterCommand(); + } else if (eventName) { + if (this.context.invoke(eventName) !== false) { + event.preventDefault(); // if keyMap action was invoked + + return true; + } + } else if (core_key.isEdit(event.keyCode)) { + this.afterCommand(); + } + + return false; + } + }, { + key: "preventDefaultEditableShortCuts", + value: function preventDefaultEditableShortCuts(event) { + // B(Bold, 66) / I(Italic, 73) / U(Underline, 85) + if ((event.ctrlKey || event.metaKey) && lists.contains([66, 73, 85], event.keyCode)) { + event.preventDefault(); + } + } + }, { + key: "isLimited", + value: function isLimited(pad, event) { + pad = pad || 0; + + if (typeof event !== 'undefined') { + if (core_key.isMove(event.keyCode) || core_key.isNavigation(event.keyCode) || event.ctrlKey || event.metaKey || lists.contains([core_key.code.BACKSPACE, core_key.code.DELETE], event.keyCode)) { + return false; + } + } + + if (this.options.maxTextLength > 0) { + if (this.$editable.text().length + pad > this.options.maxTextLength) { + return true; + } + } + + return false; + } + /** + * create range + * @return {WrappedRange} + */ + + }, { + key: "createRange", + value: function createRange() { + this.focus(); + this.setLastRange(); + return this.getLastRange(); + } + /** + * create a new range from the list of elements + * + * @param {list} dom element list + * @return {WrappedRange} + */ + + }, { + key: "createRangeFromList", + value: function createRangeFromList(lst) { + var startRange = range.createFromNodeBefore(lists.head(lst)); + var startPoint = startRange.getStartPoint(); + var endRange = range.createFromNodeAfter(lists.last(lst)); + var endPoint = endRange.getEndPoint(); + return range.create(startPoint.node, startPoint.offset, endPoint.node, endPoint.offset); + } + /** + * set the last range + * + * if given rng is exist, set rng as the last range + * or create a new range at the end of the document + * + * @param {WrappedRange} rng + */ + + }, { + key: "setLastRange", + value: function setLastRange(rng) { + if (rng) { + this.lastRange = rng; + } else { + this.lastRange = range.create(this.editable); + + if (external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.lastRange.sc).closest('.note-editable').length === 0) { + this.lastRange = range.createFromBodyElement(this.editable); + } + } + } + /** + * get the last range + * + * if there is a saved last range, return it + * or create a new range and return it + * + * @return {WrappedRange} + */ + + }, { + key: "getLastRange", + value: function getLastRange() { + if (!this.lastRange) { + this.setLastRange(); + } + + return this.lastRange; + } + /** + * saveRange + * + * save current range + * + * @param {Boolean} [thenCollapse=false] + */ + + }, { + key: "saveRange", + value: function saveRange(thenCollapse) { + if (thenCollapse) { + this.getLastRange().collapse().select(); + } + } + /** + * restoreRange + * + * restore lately range + */ + + }, { + key: "restoreRange", + value: function restoreRange() { + if (this.lastRange) { + this.lastRange.select(); + this.focus(); + } + } + }, { + key: "saveTarget", + value: function saveTarget(node) { + this.$editable.data('target', node); + } + }, { + key: "clearTarget", + value: function clearTarget() { + this.$editable.removeData('target'); + } + }, { + key: "restoreTarget", + value: function restoreTarget() { + return this.$editable.data('target'); + } + /** + * currentStyle + * + * current style + * @return {Object|Boolean} unfocus + */ + + }, { + key: "currentStyle", + value: function currentStyle() { + var rng = range.create(); + + if (rng) { + rng = rng.normalize(); + } + + return rng ? this.style.current(rng) : this.style.fromNode(this.$editable); + } + /** + * style from node + * + * @param {jQuery} $node + * @return {Object} + */ + + }, { + key: "styleFromNode", + value: function styleFromNode($node) { + return this.style.fromNode($node); + } + /** + * undo + */ + + }, { + key: "undo", + value: function undo() { + this.context.triggerEvent('before.command', this.$editable.html()); + this.history.undo(); + this.context.triggerEvent('change', this.$editable.html(), this.$editable); + } + /* + * commit + */ + + }, { + key: "commit", + value: function commit() { + this.context.triggerEvent('before.command', this.$editable.html()); + this.history.commit(); + this.context.triggerEvent('change', this.$editable.html(), this.$editable); + } + /** + * redo + */ + + }, { + key: "redo", + value: function redo() { + this.context.triggerEvent('before.command', this.$editable.html()); + this.history.redo(); + this.context.triggerEvent('change', this.$editable.html(), this.$editable); + } + /** + * before command + */ + + }, { + key: "beforeCommand", + value: function beforeCommand() { + this.context.triggerEvent('before.command', this.$editable.html()); // Set styleWithCSS before run a command + + document.execCommand('styleWithCSS', false, this.options.styleWithCSS); // keep focus on editable before command execution + + this.focus(); + } + /** + * after command + * @param {Boolean} isPreventTrigger + */ + + }, { + key: "afterCommand", + value: function afterCommand(isPreventTrigger) { + this.normalizeContent(); + this.history.recordUndo(); + + if (!isPreventTrigger) { + this.context.triggerEvent('change', this.$editable.html(), this.$editable); + } + } + /** + * handle tab key + */ + + }, { + key: "tab", + value: function tab() { + var rng = this.getLastRange(); + + if (rng.isCollapsed() && rng.isOnCell()) { + this.table.tab(rng); + } else { + if (this.options.tabSize === 0) { + return false; + } + + if (!this.isLimited(this.options.tabSize)) { + this.beforeCommand(); + this.typing.insertTab(rng, this.options.tabSize); + this.afterCommand(); + } + } + } + /** + * handle shift+tab key + */ + + }, { + key: "untab", + value: function untab() { + var rng = this.getLastRange(); + + if (rng.isCollapsed() && rng.isOnCell()) { + this.table.tab(rng, true); + } else { + if (this.options.tabSize === 0) { + return false; + } + } + } + /** + * run given function between beforeCommand and afterCommand + */ + + }, { + key: "wrapCommand", + value: function wrapCommand(fn) { + return function () { + this.beforeCommand(); + fn.apply(this, arguments); + this.afterCommand(); + }; + } + /** + * insert image + * + * @param {String} src + * @param {String|Function} param + * @return {Promise} + */ + + }, { + key: "insertImage", + value: function insertImage(src, param) { + var _this3 = this; + + return createImage(src, param).then(function ($image) { + _this3.beforeCommand(); + + if (typeof param === 'function') { + param($image); + } else { + if (typeof param === 'string') { + $image.attr('data-filename', param); + } + + $image.css('width', Math.min(_this3.$editable.width(), $image.width())); + } + + $image.show(); + + _this3.getLastRange().insertNode($image[0]); + + _this3.setLastRange(range.createFromNodeAfter($image[0]).select()); + + _this3.afterCommand(); + }).fail(function (e) { + _this3.context.triggerEvent('image.upload.error', e); + }); + } + /** + * insertImages + * @param {File[]} files + */ + + }, { + key: "insertImagesAsDataURL", + value: function insertImagesAsDataURL(files) { + var _this4 = this; + + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(files, function (idx, file) { + var filename = file.name; + + if (_this4.options.maximumImageFileSize && _this4.options.maximumImageFileSize < file.size) { + _this4.context.triggerEvent('image.upload.error', _this4.lang.image.maximumFileSizeError); + } else { + readFileAsDataURL(file).then(function (dataURL) { + return _this4.insertImage(dataURL, filename); + }).fail(function () { + _this4.context.triggerEvent('image.upload.error'); + }); + } + }); + } + /** + * insertImagesOrCallback + * @param {File[]} files + */ + + }, { + key: "insertImagesOrCallback", + value: function insertImagesOrCallback(files) { + var callbacks = this.options.callbacks; // If onImageUpload set, + + if (callbacks.onImageUpload) { + this.context.triggerEvent('image.upload', files); // else insert Image as dataURL + } else { + this.insertImagesAsDataURL(files); + } + } + /** + * return selected plain text + * @return {String} text + */ + + }, { + key: "getSelectedText", + value: function getSelectedText() { + var rng = this.getLastRange(); // if range on anchor, expand range with anchor + + if (rng.isOnAnchor()) { + rng = range.createFromNode(dom.ancestor(rng.sc, dom.isAnchor)); + } + + return rng.toString(); + } + }, { + key: "onFormatBlock", + value: function onFormatBlock(tagName, $target) { + // [workaround] for MSIE, IE need `<` + document.execCommand('FormatBlock', false, env.isMSIE ? '<' + tagName + '>' : tagName); // support custom class + + if ($target && $target.length) { + // find the exact element has given tagName + if ($target[0].tagName.toUpperCase() !== tagName.toUpperCase()) { + $target = $target.find(tagName); + } + + if ($target && $target.length) { + var className = $target[0].className || ''; + + if (className) { + var currentRange = this.createRange(); + var $parent = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()([currentRange.sc, currentRange.ec]).closest(tagName); + $parent.addClass(className); + } + } + } + } + }, { + key: "formatPara", + value: function formatPara() { + this.formatBlock('P'); + } + }, { + key: "fontStyling", + value: function fontStyling(target, value) { + var rng = this.getLastRange(); + + if (rng !== '') { + var spans = this.style.styleNodes(rng); + this.$editor.find('.note-status-output').html(''); + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(spans).css(target, value); // [workaround] added styled bogus span for style + // - also bogus character needed for cursor position + + if (rng.isCollapsed()) { + var firstSpan = lists.head(spans); + + if (firstSpan && !dom.nodeLength(firstSpan)) { + firstSpan.innerHTML = dom.ZERO_WIDTH_NBSP_CHAR; + range.createFromNode(firstSpan.firstChild).select(); + this.setLastRange(); + this.$editable.data(KEY_BOGUS, firstSpan); + } + } else { + this.setLastRange(this.createRangeFromList(spans).select()); + } + } else { + var noteStatusOutput = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.now(); + this.$editor.find('.note-status-output').html('
    ' + this.lang.output.noSelection + '
    '); + setTimeout(function () { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('#note-status-output-' + noteStatusOutput).remove(); + }, 5000); + } + } + /** + * unlink + * + * @type command + */ + + }, { + key: "unlink", + value: function unlink() { + var rng = this.getLastRange(); + + if (rng.isOnAnchor()) { + var anchor = dom.ancestor(rng.sc, dom.isAnchor); + rng = range.createFromNode(anchor); + rng.select(); + this.setLastRange(); + this.beforeCommand(); + document.execCommand('unlink'); + this.afterCommand(); + } + } + /** + * returns link info + * + * @return {Object} + * @return {WrappedRange} return.range + * @return {String} return.text + * @return {Boolean} [return.isNewWindow=true] + * @return {String} [return.url=""] + */ + + }, { + key: "getLinkInfo", + value: function getLinkInfo() { + var rng = this.getLastRange().expand(dom.isAnchor); // Get the first anchor on range(for edit). + + var $anchor = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(lists.head(rng.nodes(dom.isAnchor))); + var linkInfo = { + range: rng, + text: rng.toString(), + url: $anchor.length ? $anchor.attr('href') : '' + }; // When anchor exists, + + if ($anchor.length) { + // Set isNewWindow by checking its target. + linkInfo.isNewWindow = $anchor.attr('target') === '_blank'; + } + + return linkInfo; + } + }, { + key: "addRow", + value: function addRow(position) { + var rng = this.getLastRange(this.$editable); + + if (rng.isCollapsed() && rng.isOnCell()) { + this.beforeCommand(); + this.table.addRow(rng, position); + this.afterCommand(); + } + } + }, { + key: "addCol", + value: function addCol(position) { + var rng = this.getLastRange(this.$editable); + + if (rng.isCollapsed() && rng.isOnCell()) { + this.beforeCommand(); + this.table.addCol(rng, position); + this.afterCommand(); + } + } + }, { + key: "deleteRow", + value: function deleteRow() { + var rng = this.getLastRange(this.$editable); + + if (rng.isCollapsed() && rng.isOnCell()) { + this.beforeCommand(); + this.table.deleteRow(rng); + this.afterCommand(); + } + } + }, { + key: "deleteCol", + value: function deleteCol() { + var rng = this.getLastRange(this.$editable); + + if (rng.isCollapsed() && rng.isOnCell()) { + this.beforeCommand(); + this.table.deleteCol(rng); + this.afterCommand(); + } + } + }, { + key: "deleteTable", + value: function deleteTable() { + var rng = this.getLastRange(this.$editable); + + if (rng.isCollapsed() && rng.isOnCell()) { + this.beforeCommand(); + this.table.deleteTable(rng); + this.afterCommand(); + } + } + /** + * @param {Position} pos + * @param {jQuery} $target - target element + * @param {Boolean} [bKeepRatio] - keep ratio + */ + + }, { + key: "resizeTo", + value: function resizeTo(pos, $target, bKeepRatio) { + var imageSize; + + if (bKeepRatio) { + var newRatio = pos.y / pos.x; + var ratio = $target.data('ratio'); + imageSize = { + width: ratio > newRatio ? pos.x : pos.y / ratio, + height: ratio > newRatio ? pos.x * ratio : pos.y + }; + } else { + imageSize = { + width: pos.x, + height: pos.y + }; + } + + $target.css(imageSize); + } + /** + * returns whether editable area has focus or not. + */ + + }, { + key: "hasFocus", + value: function hasFocus() { + return this.$editable.is(':focus'); + } + /** + * set focus + */ + + }, { + key: "focus", + value: function focus() { + // [workaround] Screen will move when page is scolled in IE. + // - do focus when not focused + if (!this.hasFocus()) { + this.$editable.focus(); + } + } + /** + * returns whether contents is empty or not. + * @return {Boolean} + */ + + }, { + key: "isEmpty", + value: function isEmpty() { + return dom.isEmpty(this.$editable[0]) || dom.emptyPara === this.$editable.html(); + } + /** + * Removes all contents and restores the editable instance to an _emptyPara_. + */ + + }, { + key: "empty", + value: function empty() { + this.context.invoke('code', dom.emptyPara); + } + /** + * normalize content + */ + + }, { + key: "normalizeContent", + value: function normalizeContent() { + this.$editable[0].normalize(); + } + }]); + + return Editor; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/Clipboard.js +function Clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function Clipboard_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function Clipboard_createClass(Constructor, protoProps, staticProps) { if (protoProps) Clipboard_defineProperties(Constructor.prototype, protoProps); if (staticProps) Clipboard_defineProperties(Constructor, staticProps); return Constructor; } + + + +var Clipboard_Clipboard = /*#__PURE__*/function () { + function Clipboard(context) { + Clipboard_classCallCheck(this, Clipboard); + + this.context = context; + this.$editable = context.layoutInfo.editable; + } + + Clipboard_createClass(Clipboard, [{ + key: "initialize", + value: function initialize() { + this.$editable.on('paste', this.pasteByEvent.bind(this)); + } + /** + * paste by clipboard event + * + * @param {Event} event + */ + + }, { + key: "pasteByEvent", + value: function pasteByEvent(event) { + var _this = this; + + var clipboardData = event.originalEvent.clipboardData; + + if (clipboardData && clipboardData.items && clipboardData.items.length) { + var item = clipboardData.items.length > 1 ? clipboardData.items[1] : lists.head(clipboardData.items); + + if (item.kind === 'file' && item.type.indexOf('image/') !== -1) { + // paste img file + this.context.invoke('editor.insertImagesOrCallback', [item.getAsFile()]); + event.preventDefault(); + } else if (item.kind === 'string') { + // paste text with maxTextLength check + if (this.context.invoke('editor.isLimited', clipboardData.getData('Text').length)) { + event.preventDefault(); + } + } + } else if (window.clipboardData) { + // for IE + var text = window.clipboardData.getData('text'); + + if (this.context.invoke('editor.isLimited', text.length)) { + event.preventDefault(); + } + } // Call editor.afterCommand after proceeding default event handler + + + setTimeout(function () { + _this.context.invoke('editor.afterCommand'); + }, 10); + } + }]); + + return Clipboard; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/Dropzone.js +function Dropzone_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function Dropzone_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function Dropzone_createClass(Constructor, protoProps, staticProps) { if (protoProps) Dropzone_defineProperties(Constructor.prototype, protoProps); if (staticProps) Dropzone_defineProperties(Constructor, staticProps); return Constructor; } + + + +var Dropzone_Dropzone = /*#__PURE__*/function () { + function Dropzone(context) { + Dropzone_classCallCheck(this, Dropzone); + + this.context = context; + this.$eventListener = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document); + this.$editor = context.layoutInfo.editor; + this.$editable = context.layoutInfo.editable; + this.options = context.options; + this.lang = this.options.langInfo; + this.documentEventHandlers = {}; + this.$dropzone = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(['
    ', '
    ', '
    '].join('')).prependTo(this.$editor); + } + /** + * attach Drag and Drop Events + */ + + + Dropzone_createClass(Dropzone, [{ + key: "initialize", + value: function initialize() { + if (this.options.disableDragAndDrop) { + // prevent default drop event + this.documentEventHandlers.onDrop = function (e) { + e.preventDefault(); + }; // do not consider outside of dropzone + + + this.$eventListener = this.$dropzone; + this.$eventListener.on('drop', this.documentEventHandlers.onDrop); + } else { + this.attachDragAndDropEvent(); + } + } + /** + * attach Drag and Drop Events + */ + + }, { + key: "attachDragAndDropEvent", + value: function attachDragAndDropEvent() { + var _this = this; + + var collection = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(); + var $dropzoneMessage = this.$dropzone.find('.note-dropzone-message'); + + this.documentEventHandlers.onDragenter = function (e) { + var isCodeview = _this.context.invoke('codeview.isActivated'); + + var hasEditorSize = _this.$editor.width() > 0 && _this.$editor.height() > 0; + + if (!isCodeview && !collection.length && hasEditorSize) { + _this.$editor.addClass('dragover'); + + _this.$dropzone.width(_this.$editor.width()); + + _this.$dropzone.height(_this.$editor.height()); + + $dropzoneMessage.text(_this.lang.image.dragImageHere); + } + + collection = collection.add(e.target); + }; + + this.documentEventHandlers.onDragleave = function (e) { + collection = collection.not(e.target); // If nodeName is BODY, then just make it over (fix for IE) + + if (!collection.length || e.target.nodeName === 'BODY') { + collection = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(); + + _this.$editor.removeClass('dragover'); + } + }; + + this.documentEventHandlers.onDrop = function () { + collection = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(); + + _this.$editor.removeClass('dragover'); + }; // show dropzone on dragenter when dragging a object to document + // -but only if the editor is visible, i.e. has a positive width and height + + + this.$eventListener.on('dragenter', this.documentEventHandlers.onDragenter).on('dragleave', this.documentEventHandlers.onDragleave).on('drop', this.documentEventHandlers.onDrop); // change dropzone's message on hover. + + this.$dropzone.on('dragenter', function () { + _this.$dropzone.addClass('hover'); + + $dropzoneMessage.text(_this.lang.image.dropImage); + }).on('dragleave', function () { + _this.$dropzone.removeClass('hover'); + + $dropzoneMessage.text(_this.lang.image.dragImageHere); + }); // attach dropImage + + this.$dropzone.on('drop', function (event) { + var dataTransfer = event.originalEvent.dataTransfer; // stop the browser from opening the dropped content + + event.preventDefault(); + + if (dataTransfer && dataTransfer.files && dataTransfer.files.length) { + _this.$editable.focus(); + + _this.context.invoke('editor.insertImagesOrCallback', dataTransfer.files); + } else { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(dataTransfer.types, function (idx, type) { + // skip moz-specific types + if (type.toLowerCase().indexOf('_moz_') > -1) { + return; + } + + var content = dataTransfer.getData(type); + + if (type.toLowerCase().indexOf('text') > -1) { + _this.context.invoke('editor.pasteHTML', content); + } else { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(content).each(function (idx, item) { + _this.context.invoke('editor.insertNode', item); + }); + } + }); + } + }).on('dragover', false); // prevent default dragover event + } + }, { + key: "destroy", + value: function destroy() { + var _this2 = this; + + Object.keys(this.documentEventHandlers).forEach(function (key) { + _this2.$eventListener.off(key.substr(2).toLowerCase(), _this2.documentEventHandlers[key]); + }); + this.documentEventHandlers = {}; + } + }]); + + return Dropzone; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/Codeview.js +function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function Codeview_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function Codeview_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function Codeview_createClass(Constructor, protoProps, staticProps) { if (protoProps) Codeview_defineProperties(Constructor.prototype, protoProps); if (staticProps) Codeview_defineProperties(Constructor, staticProps); return Constructor; } + + + +/** + * @class Codeview + */ + +var Codeview_CodeView = /*#__PURE__*/function () { + function CodeView(context) { + Codeview_classCallCheck(this, CodeView); + + this.context = context; + this.$editor = context.layoutInfo.editor; + this.$editable = context.layoutInfo.editable; + this.$codable = context.layoutInfo.codable; + this.options = context.options; + this.CodeMirrorConstructor = window.CodeMirror; + + if (this.options.codemirror.CodeMirrorConstructor) { + this.CodeMirrorConstructor = this.options.codemirror.CodeMirrorConstructor; + } + } + + Codeview_createClass(CodeView, [{ + key: "sync", + value: function sync(html) { + var isCodeview = this.isActivated(); + var CodeMirror = this.CodeMirrorConstructor; + + if (isCodeview) { + if (html) { + if (CodeMirror) { + this.$codable.data('cmEditor').getDoc().setValue(html); + } else { + this.$codable.val(html); + } + } else { + if (CodeMirror) { + this.$codable.data('cmEditor').save(); + } + } + } + } + }, { + key: "initialize", + value: function initialize() { + var _this = this; + + this.$codable.on('keyup', function (event) { + if (event.keyCode === core_key.code.ESCAPE) { + _this.deactivate(); + } + }); + } + /** + * @return {Boolean} + */ + + }, { + key: "isActivated", + value: function isActivated() { + return this.$editor.hasClass('codeview'); + } + /** + * toggle codeview + */ + + }, { + key: "toggle", + value: function toggle() { + if (this.isActivated()) { + this.deactivate(); + } else { + this.activate(); + } + + this.context.triggerEvent('codeview.toggled'); + } + /** + * purify input value + * @param value + * @returns {*} + */ + + }, { + key: "purify", + value: function purify(value) { + if (this.options.codeviewFilter) { + // filter code view regex + value = value.replace(this.options.codeviewFilterRegex, ''); // allow specific iframe tag + + if (this.options.codeviewIframeFilter) { + var whitelist = this.options.codeviewIframeWhitelistSrc.concat(this.options.codeviewIframeWhitelistSrcBase); + value = value.replace(/(.*?(?:<\/iframe>)?)/gi, function (tag) { + // remove if src attribute is duplicated + if (/<.+src(?==?('|"|\s)?)[\s\S]+src(?=('|"|\s)?)[^>]*?>/i.test(tag)) { + return ''; + } + + var _iterator = _createForOfIteratorHelper(whitelist), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var src = _step.value; + + // pass if src is trusted + if (new RegExp('src="(https?:)?\/\/' + src.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&') + '\/(.+)"').test(tag)) { + return tag; + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return ''; + }); + } + } + + return value; + } + /** + * activate code view + */ + + }, { + key: "activate", + value: function activate() { + var _this2 = this; + + var CodeMirror = this.CodeMirrorConstructor; + this.$codable.val(dom.html(this.$editable, this.options.prettifyHtml)); + this.$codable.height(this.$editable.height()); + this.context.invoke('toolbar.updateCodeview', true); + this.context.invoke('airPopover.updateCodeview', true); + this.$editor.addClass('codeview'); + this.$codable.focus(); // activate CodeMirror as codable + + if (CodeMirror) { + var cmEditor = CodeMirror.fromTextArea(this.$codable[0], this.options.codemirror); // CodeMirror TernServer + + if (this.options.codemirror.tern) { + var server = new CodeMirror.TernServer(this.options.codemirror.tern); + cmEditor.ternServer = server; + cmEditor.on('cursorActivity', function (cm) { + server.updateArgHints(cm); + }); + } + + cmEditor.on('blur', function (event) { + _this2.context.triggerEvent('blur.codeview', cmEditor.getValue(), event); + }); + cmEditor.on('change', function () { + _this2.context.triggerEvent('change.codeview', cmEditor.getValue(), cmEditor); + }); // CodeMirror hasn't Padding. + + cmEditor.setSize(null, this.$editable.outerHeight()); + this.$codable.data('cmEditor', cmEditor); + } else { + this.$codable.on('blur', function (event) { + _this2.context.triggerEvent('blur.codeview', _this2.$codable.val(), event); + }); + this.$codable.on('input', function () { + _this2.context.triggerEvent('change.codeview', _this2.$codable.val(), _this2.$codable); + }); + } + } + /** + * deactivate code view + */ + + }, { + key: "deactivate", + value: function deactivate() { + var CodeMirror = this.CodeMirrorConstructor; // deactivate CodeMirror as codable + + if (CodeMirror) { + var cmEditor = this.$codable.data('cmEditor'); + this.$codable.val(cmEditor.getValue()); + cmEditor.toTextArea(); + } + + var value = this.purify(dom.value(this.$codable, this.options.prettifyHtml) || dom.emptyPara); + var isChange = this.$editable.html() !== value; + this.$editable.html(value); + this.$editable.height(this.options.height ? this.$codable.height() : 'auto'); + this.$editor.removeClass('codeview'); + + if (isChange) { + this.context.triggerEvent('change', this.$editable.html(), this.$editable); + } + + this.$editable.focus(); + this.context.invoke('toolbar.updateCodeview', false); + this.context.invoke('airPopover.updateCodeview', false); + } + }, { + key: "destroy", + value: function destroy() { + if (this.isActivated()) { + this.deactivate(); + } + } + }]); + + return CodeView; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/Statusbar.js +function Statusbar_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function Statusbar_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function Statusbar_createClass(Constructor, protoProps, staticProps) { if (protoProps) Statusbar_defineProperties(Constructor.prototype, protoProps); if (staticProps) Statusbar_defineProperties(Constructor, staticProps); return Constructor; } + + +var EDITABLE_PADDING = 24; + +var Statusbar_Statusbar = /*#__PURE__*/function () { + function Statusbar(context) { + Statusbar_classCallCheck(this, Statusbar); + + this.$document = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document); + this.$statusbar = context.layoutInfo.statusbar; + this.$editable = context.layoutInfo.editable; + this.options = context.options; + } + + Statusbar_createClass(Statusbar, [{ + key: "initialize", + value: function initialize() { + var _this = this; + + if (this.options.airMode || this.options.disableResizeEditor) { + this.destroy(); + return; + } + + this.$statusbar.on('mousedown', function (event) { + event.preventDefault(); + event.stopPropagation(); + + var editableTop = _this.$editable.offset().top - _this.$document.scrollTop(); + + var onMouseMove = function onMouseMove(event) { + var height = event.clientY - (editableTop + EDITABLE_PADDING); + height = _this.options.minheight > 0 ? Math.max(height, _this.options.minheight) : height; + height = _this.options.maxHeight > 0 ? Math.min(height, _this.options.maxHeight) : height; + + _this.$editable.height(height); + }; + + _this.$document.on('mousemove', onMouseMove).one('mouseup', function () { + _this.$document.off('mousemove', onMouseMove); + }); + }); + } + }, { + key: "destroy", + value: function destroy() { + this.$statusbar.off(); + this.$statusbar.addClass('locked'); + } + }]); + + return Statusbar; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/Fullscreen.js +function Fullscreen_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function Fullscreen_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function Fullscreen_createClass(Constructor, protoProps, staticProps) { if (protoProps) Fullscreen_defineProperties(Constructor.prototype, protoProps); if (staticProps) Fullscreen_defineProperties(Constructor, staticProps); return Constructor; } + + + +var Fullscreen_Fullscreen = /*#__PURE__*/function () { + function Fullscreen(context) { + var _this = this; + + Fullscreen_classCallCheck(this, Fullscreen); + + this.context = context; + this.$editor = context.layoutInfo.editor; + this.$toolbar = context.layoutInfo.toolbar; + this.$editable = context.layoutInfo.editable; + this.$codable = context.layoutInfo.codable; + this.$window = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(window); + this.$scrollbar = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('html, body'); + + this.onResize = function () { + _this.resizeTo({ + h: _this.$window.height() - _this.$toolbar.outerHeight() + }); + }; + } + + Fullscreen_createClass(Fullscreen, [{ + key: "resizeTo", + value: function resizeTo(size) { + this.$editable.css('height', size.h); + this.$codable.css('height', size.h); + + if (this.$codable.data('cmeditor')) { + this.$codable.data('cmeditor').setsize(null, size.h); + } + } + /** + * toggle fullscreen + */ + + }, { + key: "toggle", + value: function toggle() { + this.$editor.toggleClass('fullscreen'); + + if (this.isFullscreen()) { + this.$editable.data('orgHeight', this.$editable.css('height')); + this.$editable.data('orgMaxHeight', this.$editable.css('maxHeight')); + this.$editable.css('maxHeight', ''); + this.$window.on('resize', this.onResize).trigger('resize'); + this.$scrollbar.css('overflow', 'hidden'); + } else { + this.$window.off('resize', this.onResize); + this.resizeTo({ + h: this.$editable.data('orgHeight') + }); + this.$editable.css('maxHeight', this.$editable.css('orgMaxHeight')); + this.$scrollbar.css('overflow', 'visible'); + } + + this.context.invoke('toolbar.updateFullscreen', this.isFullscreen()); + } + }, { + key: "isFullscreen", + value: function isFullscreen() { + return this.$editor.hasClass('fullscreen'); + } + }]); + + return Fullscreen; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/Handle.js +function Handle_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function Handle_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function Handle_createClass(Constructor, protoProps, staticProps) { if (protoProps) Handle_defineProperties(Constructor.prototype, protoProps); if (staticProps) Handle_defineProperties(Constructor, staticProps); return Constructor; } + + + + +var Handle_Handle = /*#__PURE__*/function () { + function Handle(context) { + var _this = this; + + Handle_classCallCheck(this, Handle); + + this.context = context; + this.$document = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document); + this.$editingArea = context.layoutInfo.editingArea; + this.options = context.options; + this.lang = this.options.langInfo; + this.events = { + 'summernote.mousedown': function summernoteMousedown(we, e) { + if (_this.update(e.target, e)) { + e.preventDefault(); + } + }, + 'summernote.keyup summernote.scroll summernote.change summernote.dialog.shown': function summernoteKeyupSummernoteScrollSummernoteChangeSummernoteDialogShown() { + _this.update(); + }, + 'summernote.disable summernote.blur': function summernoteDisableSummernoteBlur() { + _this.hide(); + }, + 'summernote.codeview.toggled': function summernoteCodeviewToggled() { + _this.update(); + } + }; + } + + Handle_createClass(Handle, [{ + key: "initialize", + value: function initialize() { + var _this2 = this; + + this.$handle = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(['
    ', '
    ', '
    ', '
    ', '
    ', '
    ', '
    ', this.options.disableResizeImage ? '' : '
    ', '
    ', '
    '].join('')).prependTo(this.$editingArea); + this.$handle.on('mousedown', function (event) { + if (dom.isControlSizing(event.target)) { + event.preventDefault(); + event.stopPropagation(); + + var $target = _this2.$handle.find('.note-control-selection').data('target'); + + var posStart = $target.offset(); + + var scrollTop = _this2.$document.scrollTop(); + + var onMouseMove = function onMouseMove(event) { + _this2.context.invoke('editor.resizeTo', { + x: event.clientX - posStart.left, + y: event.clientY - (posStart.top - scrollTop) + }, $target, !event.shiftKey); + + _this2.update($target[0], event); + }; + + _this2.$document.on('mousemove', onMouseMove).one('mouseup', function (e) { + e.preventDefault(); + + _this2.$document.off('mousemove', onMouseMove); + + _this2.context.invoke('editor.afterCommand'); + }); + + if (!$target.data('ratio')) { + // original ratio. + $target.data('ratio', $target.height() / $target.width()); + } + } + }); // Listen for scrolling on the handle overlay. + + this.$handle.on('wheel', function (e) { + e.preventDefault(); + + _this2.update(); + }); + } + }, { + key: "destroy", + value: function destroy() { + this.$handle.remove(); + } + }, { + key: "update", + value: function update(target, event) { + if (this.context.isDisabled()) { + return false; + } + + var isImage = dom.isImg(target); + var $selection = this.$handle.find('.note-control-selection'); + this.context.invoke('imagePopover.update', target, event); + + if (isImage) { + var $image = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(target); + var position = $image.position(); + var pos = { + left: position.left + parseInt($image.css('marginLeft'), 10), + top: position.top + parseInt($image.css('marginTop'), 10) + }; // exclude margin + + var imageSize = { + w: $image.outerWidth(false), + h: $image.outerHeight(false) + }; + $selection.css({ + display: 'block', + left: pos.left, + top: pos.top, + width: imageSize.w, + height: imageSize.h + }).data('target', $image); // save current image element. + + var origImageObj = new Image(); + origImageObj.src = $image.attr('src'); + var sizingText = imageSize.w + 'x' + imageSize.h + ' (' + this.lang.image.original + ': ' + origImageObj.width + 'x' + origImageObj.height + ')'; + $selection.find('.note-control-selection-info').text(sizingText); + this.context.invoke('editor.saveTarget', target); + } else { + this.hide(); + } + + return isImage; + } + /** + * hide + * + * @param {jQuery} $handle + */ + + }, { + key: "hide", + value: function hide() { + this.context.invoke('editor.clearTarget'); + this.$handle.children().hide(); + } + }]); + + return Handle; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/AutoLink.js +function AutoLink_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function AutoLink_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function AutoLink_createClass(Constructor, protoProps, staticProps) { if (protoProps) AutoLink_defineProperties(Constructor.prototype, protoProps); if (staticProps) AutoLink_defineProperties(Constructor, staticProps); return Constructor; } + + + + +var defaultScheme = 'http://'; +var linkPattern = /^([A-Za-z][A-Za-z0-9+-.]*\:[\/]{2}|tel:|mailto:[A-Z0-9._%+-]+@)?(www\.)?(.+)$/i; + +var AutoLink_AutoLink = /*#__PURE__*/function () { + function AutoLink(context) { + var _this = this; + + AutoLink_classCallCheck(this, AutoLink); + + this.context = context; + this.options = context.options; + this.events = { + 'summernote.keyup': function summernoteKeyup(we, e) { + if (!e.isDefaultPrevented()) { + _this.handleKeyup(e); + } + }, + 'summernote.keydown': function summernoteKeydown(we, e) { + _this.handleKeydown(e); + } + }; + } + + AutoLink_createClass(AutoLink, [{ + key: "initialize", + value: function initialize() { + this.lastWordRange = null; + } + }, { + key: "destroy", + value: function destroy() { + this.lastWordRange = null; + } + }, { + key: "replace", + value: function replace() { + if (!this.lastWordRange) { + return; + } + + var keyword = this.lastWordRange.toString(); + var match = keyword.match(linkPattern); + + if (match && (match[1] || match[2])) { + var link = match[1] ? keyword : defaultScheme + keyword; + var urlText = this.options.showDomainOnlyForAutolink ? keyword.replace(/^(?:https?:\/\/)?(?:tel?:?)?(?:mailto?:?)?(?:www\.)?/i, '').split('/')[0] : keyword; + var node = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('').html(urlText).attr('href', link)[0]; + + if (this.context.options.linkTargetBlank) { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(node).attr('target', '_blank'); + } + + this.lastWordRange.insertNode(node); + this.lastWordRange = null; + this.context.invoke('editor.focus'); + } + } + }, { + key: "handleKeydown", + value: function handleKeydown(e) { + if (lists.contains([core_key.code.ENTER, core_key.code.SPACE], e.keyCode)) { + var wordRange = this.context.invoke('editor.createRange').getWordRange(); + this.lastWordRange = wordRange; + } + } + }, { + key: "handleKeyup", + value: function handleKeyup(e) { + if (lists.contains([core_key.code.ENTER, core_key.code.SPACE], e.keyCode)) { + this.replace(); + } + } + }]); + + return AutoLink; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/AutoSync.js +function AutoSync_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function AutoSync_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function AutoSync_createClass(Constructor, protoProps, staticProps) { if (protoProps) AutoSync_defineProperties(Constructor.prototype, protoProps); if (staticProps) AutoSync_defineProperties(Constructor, staticProps); return Constructor; } + + +/** + * textarea auto sync. + */ + +var AutoSync_AutoSync = /*#__PURE__*/function () { + function AutoSync(context) { + var _this = this; + + AutoSync_classCallCheck(this, AutoSync); + + this.$note = context.layoutInfo.note; + this.events = { + 'summernote.change': function summernoteChange() { + _this.$note.val(context.invoke('code')); + } + }; + } + + AutoSync_createClass(AutoSync, [{ + key: "shouldInitialize", + value: function shouldInitialize() { + return dom.isTextarea(this.$note[0]); + } + }]); + + return AutoSync; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/AutoReplace.js +function AutoReplace_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function AutoReplace_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function AutoReplace_createClass(Constructor, protoProps, staticProps) { if (protoProps) AutoReplace_defineProperties(Constructor.prototype, protoProps); if (staticProps) AutoReplace_defineProperties(Constructor, staticProps); return Constructor; } + + + + + +var AutoReplace_AutoReplace = /*#__PURE__*/function () { + function AutoReplace(context) { + var _this = this; + + AutoReplace_classCallCheck(this, AutoReplace); + + this.context = context; + this.options = context.options.replace || {}; + this.keys = [core_key.code.ENTER, core_key.code.SPACE, core_key.code.PERIOD, core_key.code.COMMA, core_key.code.SEMICOLON, core_key.code.SLASH]; + this.previousKeydownCode = null; + this.events = { + 'summernote.keyup': function summernoteKeyup(we, e) { + if (!e.isDefaultPrevented()) { + _this.handleKeyup(e); + } + }, + 'summernote.keydown': function summernoteKeydown(we, e) { + _this.handleKeydown(e); + } + }; + } + + AutoReplace_createClass(AutoReplace, [{ + key: "shouldInitialize", + value: function shouldInitialize() { + return !!this.options.match; + } + }, { + key: "initialize", + value: function initialize() { + this.lastWord = null; + } + }, { + key: "destroy", + value: function destroy() { + this.lastWord = null; + } + }, { + key: "replace", + value: function replace() { + if (!this.lastWord) { + return; + } + + var self = this; + var keyword = this.lastWord.toString(); + this.options.match(keyword, function (match) { + if (match) { + var node = ''; + + if (typeof match === 'string') { + node = dom.createText(match); + } else if (match instanceof jQuery) { + node = match[0]; + } else if (match instanceof Node) { + node = match; + } + + if (!node) return; + self.lastWord.insertNode(node); + self.lastWord = null; + self.context.invoke('editor.focus'); + } + }); + } + }, { + key: "handleKeydown", + value: function handleKeydown(e) { + // this forces it to remember the last whole word, even if multiple termination keys are pressed + // before the previous key is let go. + if (this.previousKeydownCode && lists.contains(this.keys, this.previousKeydownCode)) { + this.previousKeydownCode = e.keyCode; + return; + } + + if (lists.contains(this.keys, e.keyCode)) { + var wordRange = this.context.invoke('editor.createRange').getWordRange(); + this.lastWord = wordRange; + } + + this.previousKeydownCode = e.keyCode; + } + }, { + key: "handleKeyup", + value: function handleKeyup(e) { + if (lists.contains(this.keys, e.keyCode)) { + this.replace(); + } + } + }]); + + return AutoReplace; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/Placeholder.js +function Placeholder_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function Placeholder_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function Placeholder_createClass(Constructor, protoProps, staticProps) { if (protoProps) Placeholder_defineProperties(Constructor.prototype, protoProps); if (staticProps) Placeholder_defineProperties(Constructor, staticProps); return Constructor; } + + + +var Placeholder_Placeholder = /*#__PURE__*/function () { + function Placeholder(context) { + var _this = this; + + Placeholder_classCallCheck(this, Placeholder); + + this.context = context; + this.$editingArea = context.layoutInfo.editingArea; + this.options = context.options; + + if (this.options.inheritPlaceholder === true) { + // get placeholder value from the original element + this.options.placeholder = this.context.$note.attr('placeholder') || this.options.placeholder; + } + + this.events = { + 'summernote.init summernote.change': function summernoteInitSummernoteChange() { + _this.update(); + }, + 'summernote.codeview.toggled': function summernoteCodeviewToggled() { + _this.update(); + } + }; + } + + Placeholder_createClass(Placeholder, [{ + key: "shouldInitialize", + value: function shouldInitialize() { + return !!this.options.placeholder; + } + }, { + key: "initialize", + value: function initialize() { + var _this2 = this; + + this.$placeholder = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('
    '); + this.$placeholder.on('click', function () { + _this2.context.invoke('focus'); + }).html(this.options.placeholder).prependTo(this.$editingArea); + this.update(); + } + }, { + key: "destroy", + value: function destroy() { + this.$placeholder.remove(); + } + }, { + key: "update", + value: function update() { + var isShow = !this.context.invoke('codeview.isActivated') && this.context.invoke('editor.isEmpty'); + this.$placeholder.toggle(isShow); + } + }]); + + return Placeholder; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/Buttons.js +function Buttons_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function Buttons_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function Buttons_createClass(Constructor, protoProps, staticProps) { if (protoProps) Buttons_defineProperties(Constructor.prototype, protoProps); if (staticProps) Buttons_defineProperties(Constructor, staticProps); return Constructor; } + + + + + + +var Buttons_Buttons = /*#__PURE__*/function () { + function Buttons(context) { + Buttons_classCallCheck(this, Buttons); + + this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui; + this.context = context; + this.$toolbar = context.layoutInfo.toolbar; + this.options = context.options; + this.lang = this.options.langInfo; + this.invertedKeyMap = func.invertObject(this.options.keyMap[env.isMac ? 'mac' : 'pc']); + } + + Buttons_createClass(Buttons, [{ + key: "representShortcut", + value: function representShortcut(editorMethod) { + var shortcut = this.invertedKeyMap[editorMethod]; + + if (!this.options.shortcuts || !shortcut) { + return ''; + } + + if (env.isMac) { + shortcut = shortcut.replace('CMD', '⌘').replace('SHIFT', '⇧'); + } + + shortcut = shortcut.replace('BACKSLASH', '\\').replace('SLASH', '/').replace('LEFTBRACKET', '[').replace('RIGHTBRACKET', ']'); + return ' (' + shortcut + ')'; + } + }, { + key: "button", + value: function button(o) { + if (!this.options.tooltip && o.tooltip) { + delete o.tooltip; + } + + o.container = this.options.container; + return this.ui.button(o); + } + }, { + key: "initialize", + value: function initialize() { + this.addToolbarButtons(); + this.addImagePopoverButtons(); + this.addLinkPopoverButtons(); + this.addTablePopoverButtons(); + this.fontInstalledMap = {}; + } + }, { + key: "destroy", + value: function destroy() { + delete this.fontInstalledMap; + } + }, { + key: "isFontInstalled", + value: function isFontInstalled(name) { + if (!Object.prototype.hasOwnProperty.call(this.fontInstalledMap, name)) { + this.fontInstalledMap[name] = env.isFontInstalled(name) || lists.contains(this.options.fontNamesIgnoreCheck, name); + } + + return this.fontInstalledMap[name]; + } + }, { + key: "isFontDeservedToAdd", + value: function isFontDeservedToAdd(name) { + name = name.toLowerCase(); + return name !== '' && this.isFontInstalled(name) && env.genericFontFamilies.indexOf(name) === -1; + } + }, { + key: "colorPalette", + value: function colorPalette(className, tooltip, backColor, foreColor) { + var _this = this; + + return this.ui.buttonGroup({ + className: 'note-color ' + className, + children: [this.button({ + className: 'note-current-color-button', + contents: this.ui.icon(this.options.icons.font + ' note-recent-color'), + tooltip: tooltip, + click: function click(e) { + var $button = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(e.currentTarget); + + if (backColor && foreColor) { + _this.context.invoke('editor.color', { + backColor: $button.attr('data-backColor'), + foreColor: $button.attr('data-foreColor') + }); + } else if (backColor) { + _this.context.invoke('editor.color', { + backColor: $button.attr('data-backColor') + }); + } else if (foreColor) { + _this.context.invoke('editor.color', { + foreColor: $button.attr('data-foreColor') + }); + } + }, + callback: function callback($button) { + var $recentColor = $button.find('.note-recent-color'); + + if (backColor) { + $recentColor.css('background-color', _this.options.colorButton.backColor); + $button.attr('data-backColor', _this.options.colorButton.backColor); + } + + if (foreColor) { + $recentColor.css('color', _this.options.colorButton.foreColor); + $button.attr('data-foreColor', _this.options.colorButton.foreColor); + } else { + $recentColor.css('color', 'transparent'); + } + } + }), this.button({ + className: 'dropdown-toggle', + contents: this.ui.dropdownButtonContents('', this.options), + tooltip: this.lang.color.more, + data: { + toggle: 'dropdown' + } + }), this.ui.dropdown({ + items: (backColor ? ['
    ', '
    ' + this.lang.color.background + '
    ', '
    ', '', '
    ', '
    ', '
    ', '', '', '
    ', '
    ', '
    '].join('') : '') + (foreColor ? ['
    ', '
    ' + this.lang.color.foreground + '
    ', '
    ', '', '
    ', '
    ', '
    ', '', '', '
    ', // Fix missing Div, Commented to find easily if it's wrong + '
    ', '
    '].join('') : ''), + callback: function callback($dropdown) { + $dropdown.find('.note-holder').each(function (idx, item) { + var $holder = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item); + $holder.append(_this.ui.palette({ + colors: _this.options.colors, + colorsName: _this.options.colorsName, + eventName: $holder.data('event'), + container: _this.options.container, + tooltip: _this.options.tooltip + }).render()); + }); + /* TODO: do we have to record recent custom colors within cookies? */ + + var customColors = [['#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF']]; + $dropdown.find('.note-holder-custom').each(function (idx, item) { + var $holder = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item); + $holder.append(_this.ui.palette({ + colors: customColors, + colorsName: customColors, + eventName: $holder.data('event'), + container: _this.options.container, + tooltip: _this.options.tooltip + }).render()); + }); + $dropdown.find('input[type=color]').each(function (idx, item) { + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item).change(function () { + var $chip = $dropdown.find('#' + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this).data('event')).find('.note-color-btn').first(); + var color = this.value.toUpperCase(); + $chip.css('background-color', color).attr('aria-label', color).attr('data-value', color).attr('data-original-title', color); + $chip.click(); + }); + }); + }, + click: function click(event) { + event.stopPropagation(); + var $parent = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('.' + className).find('.note-dropdown-menu'); + var $button = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target); + var eventName = $button.data('event'); + var value = $button.attr('data-value'); + + if (eventName === 'openPalette') { + var $picker = $parent.find('#' + value); + var $palette = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()($parent.find('#' + $picker.data('event')).find('.note-color-row')[0]); // Shift palette chips + + var $chip = $palette.find('.note-color-btn').last().detach(); // Set chip attributes + + var color = $picker.val(); + $chip.css('background-color', color).attr('aria-label', color).attr('data-value', color).attr('data-original-title', color); + $palette.prepend($chip); + $picker.click(); + } else { + if (lists.contains(['backColor', 'foreColor'], eventName)) { + var key = eventName === 'backColor' ? 'background-color' : 'color'; + var $color = $button.closest('.note-color').find('.note-recent-color'); + var $currentButton = $button.closest('.note-color').find('.note-current-color-button'); + $color.css(key, value); + $currentButton.attr('data-' + eventName, value); + } + + _this.context.invoke('editor.' + eventName, value); + } + } + })] + }).render(); + } + }, { + key: "addToolbarButtons", + value: function addToolbarButtons() { + var _this2 = this; + + this.context.memo('button.style', function () { + return _this2.ui.buttonGroup([_this2.button({ + className: 'dropdown-toggle', + contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.magic), _this2.options), + tooltip: _this2.lang.style.style, + data: { + toggle: 'dropdown' + } + }), _this2.ui.dropdown({ + className: 'dropdown-style', + items: _this2.options.styleTags, + title: _this2.lang.style.style, + template: function template(item) { + // TBD: need to be simplified + if (typeof item === 'string') { + item = { + tag: item, + title: Object.prototype.hasOwnProperty.call(_this2.lang.style, item) ? _this2.lang.style[item] : item + }; + } + + var tag = item.tag; + var title = item.title; + var style = item.style ? ' style="' + item.style + '" ' : ''; + var className = item.className ? ' class="' + item.className + '"' : ''; + return '<' + tag + style + className + '>' + title + ''; + }, + click: _this2.context.createInvokeHandler('editor.formatBlock') + })]).render(); + }); + + var _loop = function _loop(styleIdx, styleLen) { + var item = _this2.options.styleTags[styleIdx]; + + _this2.context.memo('button.style.' + item, function () { + return _this2.button({ + className: 'note-btn-style-' + item, + contents: '
    ' + item.toUpperCase() + '
    ', + tooltip: _this2.lang.style[item], + click: _this2.context.createInvokeHandler('editor.formatBlock') + }).render(); + }); + }; + + for (var styleIdx = 0, styleLen = this.options.styleTags.length; styleIdx < styleLen; styleIdx++) { + _loop(styleIdx, styleLen); + } + + this.context.memo('button.bold', function () { + return _this2.button({ + className: 'note-btn-bold', + contents: _this2.ui.icon(_this2.options.icons.bold), + tooltip: _this2.lang.font.bold + _this2.representShortcut('bold'), + click: _this2.context.createInvokeHandlerAndUpdateState('editor.bold') + }).render(); + }); + this.context.memo('button.italic', function () { + return _this2.button({ + className: 'note-btn-italic', + contents: _this2.ui.icon(_this2.options.icons.italic), + tooltip: _this2.lang.font.italic + _this2.representShortcut('italic'), + click: _this2.context.createInvokeHandlerAndUpdateState('editor.italic') + }).render(); + }); + this.context.memo('button.underline', function () { + return _this2.button({ + className: 'note-btn-underline', + contents: _this2.ui.icon(_this2.options.icons.underline), + tooltip: _this2.lang.font.underline + _this2.representShortcut('underline'), + click: _this2.context.createInvokeHandlerAndUpdateState('editor.underline') + }).render(); + }); + this.context.memo('button.clear', function () { + return _this2.button({ + contents: _this2.ui.icon(_this2.options.icons.eraser), + tooltip: _this2.lang.font.clear + _this2.representShortcut('removeFormat'), + click: _this2.context.createInvokeHandler('editor.removeFormat') + }).render(); + }); + this.context.memo('button.strikethrough', function () { + return _this2.button({ + className: 'note-btn-strikethrough', + contents: _this2.ui.icon(_this2.options.icons.strikethrough), + tooltip: _this2.lang.font.strikethrough + _this2.representShortcut('strikethrough'), + click: _this2.context.createInvokeHandlerAndUpdateState('editor.strikethrough') + }).render(); + }); + this.context.memo('button.superscript', function () { + return _this2.button({ + className: 'note-btn-superscript', + contents: _this2.ui.icon(_this2.options.icons.superscript), + tooltip: _this2.lang.font.superscript, + click: _this2.context.createInvokeHandlerAndUpdateState('editor.superscript') + }).render(); + }); + this.context.memo('button.subscript', function () { + return _this2.button({ + className: 'note-btn-subscript', + contents: _this2.ui.icon(_this2.options.icons.subscript), + tooltip: _this2.lang.font.subscript, + click: _this2.context.createInvokeHandlerAndUpdateState('editor.subscript') + }).render(); + }); + this.context.memo('button.fontname', function () { + var styleInfo = _this2.context.invoke('editor.currentStyle'); + + if (_this2.options.addDefaultFonts) { + // Add 'default' fonts into the fontnames array if not exist + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(styleInfo['font-family'].split(','), function (idx, fontname) { + fontname = fontname.trim().replace(/['"]+/g, ''); + + if (_this2.isFontDeservedToAdd(fontname)) { + if (_this2.options.fontNames.indexOf(fontname) === -1) { + _this2.options.fontNames.push(fontname); + } + } + }); + } + + return _this2.ui.buttonGroup([_this2.button({ + className: 'dropdown-toggle', + contents: _this2.ui.dropdownButtonContents('', _this2.options), + tooltip: _this2.lang.font.name, + data: { + toggle: 'dropdown' + } + }), _this2.ui.dropdownCheck({ + className: 'dropdown-fontname', + checkClassName: _this2.options.icons.menuCheck, + items: _this2.options.fontNames.filter(_this2.isFontInstalled.bind(_this2)), + title: _this2.lang.font.name, + template: function template(item) { + return '' + item + ''; + }, + click: _this2.context.createInvokeHandlerAndUpdateState('editor.fontName') + })]).render(); + }); + this.context.memo('button.fontsize', function () { + return _this2.ui.buttonGroup([_this2.button({ + className: 'dropdown-toggle', + contents: _this2.ui.dropdownButtonContents('', _this2.options), + tooltip: _this2.lang.font.size, + data: { + toggle: 'dropdown' + } + }), _this2.ui.dropdownCheck({ + className: 'dropdown-fontsize', + checkClassName: _this2.options.icons.menuCheck, + items: _this2.options.fontSizes, + title: _this2.lang.font.size, + click: _this2.context.createInvokeHandlerAndUpdateState('editor.fontSize') + })]).render(); + }); + this.context.memo('button.fontsizeunit', function () { + return _this2.ui.buttonGroup([_this2.button({ + className: 'dropdown-toggle', + contents: _this2.ui.dropdownButtonContents('', _this2.options), + tooltip: _this2.lang.font.sizeunit, + data: { + toggle: 'dropdown' + } + }), _this2.ui.dropdownCheck({ + className: 'dropdown-fontsizeunit', + checkClassName: _this2.options.icons.menuCheck, + items: _this2.options.fontSizeUnits, + title: _this2.lang.font.sizeunit, + click: _this2.context.createInvokeHandlerAndUpdateState('editor.fontSizeUnit') + })]).render(); + }); + this.context.memo('button.color', function () { + return _this2.colorPalette('note-color-all', _this2.lang.color.recent, true, true); + }); + this.context.memo('button.forecolor', function () { + return _this2.colorPalette('note-color-fore', _this2.lang.color.foreground, false, true); + }); + this.context.memo('button.backcolor', function () { + return _this2.colorPalette('note-color-back', _this2.lang.color.background, true, false); + }); + this.context.memo('button.ul', function () { + return _this2.button({ + contents: _this2.ui.icon(_this2.options.icons.unorderedlist), + tooltip: _this2.lang.lists.unordered + _this2.representShortcut('insertUnorderedList'), + click: _this2.context.createInvokeHandler('editor.insertUnorderedList') + }).render(); + }); + this.context.memo('button.ol', function () { + return _this2.button({ + contents: _this2.ui.icon(_this2.options.icons.orderedlist), + tooltip: _this2.lang.lists.ordered + _this2.representShortcut('insertOrderedList'), + click: _this2.context.createInvokeHandler('editor.insertOrderedList') + }).render(); + }); + var justifyLeft = this.button({ + contents: this.ui.icon(this.options.icons.alignLeft), + tooltip: this.lang.paragraph.left + this.representShortcut('justifyLeft'), + click: this.context.createInvokeHandler('editor.justifyLeft') + }); + var justifyCenter = this.button({ + contents: this.ui.icon(this.options.icons.alignCenter), + tooltip: this.lang.paragraph.center + this.representShortcut('justifyCenter'), + click: this.context.createInvokeHandler('editor.justifyCenter') + }); + var justifyRight = this.button({ + contents: this.ui.icon(this.options.icons.alignRight), + tooltip: this.lang.paragraph.right + this.representShortcut('justifyRight'), + click: this.context.createInvokeHandler('editor.justifyRight') + }); + var justifyFull = this.button({ + contents: this.ui.icon(this.options.icons.alignJustify), + tooltip: this.lang.paragraph.justify + this.representShortcut('justifyFull'), + click: this.context.createInvokeHandler('editor.justifyFull') + }); + var outdent = this.button({ + contents: this.ui.icon(this.options.icons.outdent), + tooltip: this.lang.paragraph.outdent + this.representShortcut('outdent'), + click: this.context.createInvokeHandler('editor.outdent') + }); + var indent = this.button({ + contents: this.ui.icon(this.options.icons.indent), + tooltip: this.lang.paragraph.indent + this.representShortcut('indent'), + click: this.context.createInvokeHandler('editor.indent') + }); + this.context.memo('button.justifyLeft', func.invoke(justifyLeft, 'render')); + this.context.memo('button.justifyCenter', func.invoke(justifyCenter, 'render')); + this.context.memo('button.justifyRight', func.invoke(justifyRight, 'render')); + this.context.memo('button.justifyFull', func.invoke(justifyFull, 'render')); + this.context.memo('button.outdent', func.invoke(outdent, 'render')); + this.context.memo('button.indent', func.invoke(indent, 'render')); + this.context.memo('button.paragraph', function () { + return _this2.ui.buttonGroup([_this2.button({ + className: 'dropdown-toggle', + contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.alignLeft), _this2.options), + tooltip: _this2.lang.paragraph.paragraph, + data: { + toggle: 'dropdown' + } + }), _this2.ui.dropdown([_this2.ui.buttonGroup({ + className: 'note-align', + children: [justifyLeft, justifyCenter, justifyRight, justifyFull] + }), _this2.ui.buttonGroup({ + className: 'note-list', + children: [outdent, indent] + })])]).render(); + }); + this.context.memo('button.height', function () { + return _this2.ui.buttonGroup([_this2.button({ + className: 'dropdown-toggle', + contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.textHeight), _this2.options), + tooltip: _this2.lang.font.height, + data: { + toggle: 'dropdown' + } + }), _this2.ui.dropdownCheck({ + items: _this2.options.lineHeights, + checkClassName: _this2.options.icons.menuCheck, + className: 'dropdown-line-height', + title: _this2.lang.font.height, + click: _this2.context.createInvokeHandler('editor.lineHeight') + })]).render(); + }); + this.context.memo('button.table', function () { + return _this2.ui.buttonGroup([_this2.button({ + className: 'dropdown-toggle', + contents: _this2.ui.dropdownButtonContents(_this2.ui.icon(_this2.options.icons.table), _this2.options), + tooltip: _this2.lang.table.table, + data: { + toggle: 'dropdown' + } + }), _this2.ui.dropdown({ + title: _this2.lang.table.table, + className: 'note-table', + items: ['
    ', '
    ', '
    ', '
    ', '
    ', '
    1 x 1
    '].join('') + })], { + callback: function callback($node) { + var $catcher = $node.find('.note-dimension-picker-mousecatcher'); + $catcher.css({ + width: _this2.options.insertTableMaxSize.col + 'em', + height: _this2.options.insertTableMaxSize.row + 'em' + }).mousedown(_this2.context.createInvokeHandler('editor.insertTable')).on('mousemove', _this2.tableMoveHandler.bind(_this2)); + } + }).render(); + }); + this.context.memo('button.link', function () { + return _this2.button({ + contents: _this2.ui.icon(_this2.options.icons.link), + tooltip: _this2.lang.link.link + _this2.representShortcut('linkDialog.show'), + click: _this2.context.createInvokeHandler('linkDialog.show') + }).render(); + }); + this.context.memo('button.picture', function () { + return _this2.button({ + contents: _this2.ui.icon(_this2.options.icons.picture), + tooltip: _this2.lang.image.image, + click: _this2.context.createInvokeHandler('imageDialog.show') + }).render(); + }); + this.context.memo('button.video', function () { + return _this2.button({ + contents: _this2.ui.icon(_this2.options.icons.video), + tooltip: _this2.lang.video.video, + click: _this2.context.createInvokeHandler('videoDialog.show') + }).render(); + }); + this.context.memo('button.hr', function () { + return _this2.button({ + contents: _this2.ui.icon(_this2.options.icons.minus), + tooltip: _this2.lang.hr.insert + _this2.representShortcut('insertHorizontalRule'), + click: _this2.context.createInvokeHandler('editor.insertHorizontalRule') + }).render(); + }); + this.context.memo('button.fullscreen', function () { + return _this2.button({ + className: 'btn-fullscreen note-codeview-keep', + contents: _this2.ui.icon(_this2.options.icons.arrowsAlt), + tooltip: _this2.lang.options.fullscreen, + click: _this2.context.createInvokeHandler('fullscreen.toggle') + }).render(); + }); + this.context.memo('button.codeview', function () { + return _this2.button({ + className: 'btn-codeview note-codeview-keep', + contents: _this2.ui.icon(_this2.options.icons.code), + tooltip: _this2.lang.options.codeview, + click: _this2.context.createInvokeHandler('codeview.toggle') + }).render(); + }); + this.context.memo('button.redo', function () { + return _this2.button({ + contents: _this2.ui.icon(_this2.options.icons.redo), + tooltip: _this2.lang.history.redo + _this2.representShortcut('redo'), + click: _this2.context.createInvokeHandler('editor.redo') + }).render(); + }); + this.context.memo('button.undo', function () { + return _this2.button({ + contents: _this2.ui.icon(_this2.options.icons.undo), + tooltip: _this2.lang.history.undo + _this2.representShortcut('undo'), + click: _this2.context.createInvokeHandler('editor.undo') + }).render(); + }); + this.context.memo('button.help', function () { + return _this2.button({ + contents: _this2.ui.icon(_this2.options.icons.question), + tooltip: _this2.lang.options.help, + click: _this2.context.createInvokeHandler('helpDialog.show') + }).render(); + }); + } + /** + * image: [ + * ['imageResize', ['resizeFull', 'resizeHalf', 'resizeQuarter', 'resizeNone']], + * ['float', ['floatLeft', 'floatRight', 'floatNone']], + * ['remove', ['removeMedia']], + * ], + */ + + }, { + key: "addImagePopoverButtons", + value: function addImagePopoverButtons() { + var _this3 = this; + + // Image Size Buttons + this.context.memo('button.resizeFull', function () { + return _this3.button({ + contents: '100%', + tooltip: _this3.lang.image.resizeFull, + click: _this3.context.createInvokeHandler('editor.resize', '1') + }).render(); + }); + this.context.memo('button.resizeHalf', function () { + return _this3.button({ + contents: '50%', + tooltip: _this3.lang.image.resizeHalf, + click: _this3.context.createInvokeHandler('editor.resize', '0.5') + }).render(); + }); + this.context.memo('button.resizeQuarter', function () { + return _this3.button({ + contents: '25%', + tooltip: _this3.lang.image.resizeQuarter, + click: _this3.context.createInvokeHandler('editor.resize', '0.25') + }).render(); + }); + this.context.memo('button.resizeNone', function () { + return _this3.button({ + contents: _this3.ui.icon(_this3.options.icons.rollback), + tooltip: _this3.lang.image.resizeNone, + click: _this3.context.createInvokeHandler('editor.resize', '0') + }).render(); + }); // Float Buttons + + this.context.memo('button.floatLeft', function () { + return _this3.button({ + contents: _this3.ui.icon(_this3.options.icons.floatLeft), + tooltip: _this3.lang.image.floatLeft, + click: _this3.context.createInvokeHandler('editor.floatMe', 'left') + }).render(); + }); + this.context.memo('button.floatRight', function () { + return _this3.button({ + contents: _this3.ui.icon(_this3.options.icons.floatRight), + tooltip: _this3.lang.image.floatRight, + click: _this3.context.createInvokeHandler('editor.floatMe', 'right') + }).render(); + }); + this.context.memo('button.floatNone', function () { + return _this3.button({ + contents: _this3.ui.icon(_this3.options.icons.rollback), + tooltip: _this3.lang.image.floatNone, + click: _this3.context.createInvokeHandler('editor.floatMe', 'none') + }).render(); + }); // Remove Buttons + + this.context.memo('button.removeMedia', function () { + return _this3.button({ + contents: _this3.ui.icon(_this3.options.icons.trash), + tooltip: _this3.lang.image.remove, + click: _this3.context.createInvokeHandler('editor.removeMedia') + }).render(); + }); + } + }, { + key: "addLinkPopoverButtons", + value: function addLinkPopoverButtons() { + var _this4 = this; + + this.context.memo('button.linkDialogShow', function () { + return _this4.button({ + contents: _this4.ui.icon(_this4.options.icons.link), + tooltip: _this4.lang.link.edit, + click: _this4.context.createInvokeHandler('linkDialog.show') + }).render(); + }); + this.context.memo('button.unlink', function () { + return _this4.button({ + contents: _this4.ui.icon(_this4.options.icons.unlink), + tooltip: _this4.lang.link.unlink, + click: _this4.context.createInvokeHandler('editor.unlink') + }).render(); + }); + } + /** + * table : [ + * ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']], + * ['delete', ['deleteRow', 'deleteCol', 'deleteTable']] + * ], + */ + + }, { + key: "addTablePopoverButtons", + value: function addTablePopoverButtons() { + var _this5 = this; + + this.context.memo('button.addRowUp', function () { + return _this5.button({ + className: 'btn-md', + contents: _this5.ui.icon(_this5.options.icons.rowAbove), + tooltip: _this5.lang.table.addRowAbove, + click: _this5.context.createInvokeHandler('editor.addRow', 'top') + }).render(); + }); + this.context.memo('button.addRowDown', function () { + return _this5.button({ + className: 'btn-md', + contents: _this5.ui.icon(_this5.options.icons.rowBelow), + tooltip: _this5.lang.table.addRowBelow, + click: _this5.context.createInvokeHandler('editor.addRow', 'bottom') + }).render(); + }); + this.context.memo('button.addColLeft', function () { + return _this5.button({ + className: 'btn-md', + contents: _this5.ui.icon(_this5.options.icons.colBefore), + tooltip: _this5.lang.table.addColLeft, + click: _this5.context.createInvokeHandler('editor.addCol', 'left') + }).render(); + }); + this.context.memo('button.addColRight', function () { + return _this5.button({ + className: 'btn-md', + contents: _this5.ui.icon(_this5.options.icons.colAfter), + tooltip: _this5.lang.table.addColRight, + click: _this5.context.createInvokeHandler('editor.addCol', 'right') + }).render(); + }); + this.context.memo('button.deleteRow', function () { + return _this5.button({ + className: 'btn-md', + contents: _this5.ui.icon(_this5.options.icons.rowRemove), + tooltip: _this5.lang.table.delRow, + click: _this5.context.createInvokeHandler('editor.deleteRow') + }).render(); + }); + this.context.memo('button.deleteCol', function () { + return _this5.button({ + className: 'btn-md', + contents: _this5.ui.icon(_this5.options.icons.colRemove), + tooltip: _this5.lang.table.delCol, + click: _this5.context.createInvokeHandler('editor.deleteCol') + }).render(); + }); + this.context.memo('button.deleteTable', function () { + return _this5.button({ + className: 'btn-md', + contents: _this5.ui.icon(_this5.options.icons.trash), + tooltip: _this5.lang.table.delTable, + click: _this5.context.createInvokeHandler('editor.deleteTable') + }).render(); + }); + } + }, { + key: "build", + value: function build($container, groups) { + for (var groupIdx = 0, groupLen = groups.length; groupIdx < groupLen; groupIdx++) { + var group = groups[groupIdx]; + var groupName = Array.isArray(group) ? group[0] : group; + var buttons = Array.isArray(group) ? group.length === 1 ? [group[0]] : group[1] : [group]; + var $group = this.ui.buttonGroup({ + className: 'note-' + groupName + }).render(); + + for (var idx = 0, len = buttons.length; idx < len; idx++) { + var btn = this.context.memo('button.' + buttons[idx]); + + if (btn) { + $group.append(typeof btn === 'function' ? btn(this.context) : btn); + } + } + + $group.appendTo($container); + } + } + /** + * @param {jQuery} [$container] + */ + + }, { + key: "updateCurrentStyle", + value: function updateCurrentStyle($container) { + var _this6 = this; + + var $cont = $container || this.$toolbar; + var styleInfo = this.context.invoke('editor.currentStyle'); + this.updateBtnStates($cont, { + '.note-btn-bold': function noteBtnBold() { + return styleInfo['font-bold'] === 'bold'; + }, + '.note-btn-italic': function noteBtnItalic() { + return styleInfo['font-italic'] === 'italic'; + }, + '.note-btn-underline': function noteBtnUnderline() { + return styleInfo['font-underline'] === 'underline'; + }, + '.note-btn-subscript': function noteBtnSubscript() { + return styleInfo['font-subscript'] === 'subscript'; + }, + '.note-btn-superscript': function noteBtnSuperscript() { + return styleInfo['font-superscript'] === 'superscript'; + }, + '.note-btn-strikethrough': function noteBtnStrikethrough() { + return styleInfo['font-strikethrough'] === 'strikethrough'; + } + }); + + if (styleInfo['font-family']) { + var fontNames = styleInfo['font-family'].split(',').map(function (name) { + return name.replace(/[\'\"]/g, '').replace(/\s+$/, '').replace(/^\s+/, ''); + }); + var fontName = lists.find(fontNames, this.isFontInstalled.bind(this)); + $cont.find('.dropdown-fontname a').each(function (idx, item) { + var $item = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item); // always compare string to avoid creating another func. + + var isChecked = $item.data('value') + '' === fontName + ''; + $item.toggleClass('checked', isChecked); + }); + $cont.find('.note-current-fontname').text(fontName).css('font-family', fontName); + } + + if (styleInfo['font-size']) { + var fontSize = styleInfo['font-size']; + $cont.find('.dropdown-fontsize a').each(function (idx, item) { + var $item = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item); // always compare with string to avoid creating another func. + + var isChecked = $item.data('value') + '' === fontSize + ''; + $item.toggleClass('checked', isChecked); + }); + $cont.find('.note-current-fontsize').text(fontSize); + var fontSizeUnit = styleInfo['font-size-unit']; + $cont.find('.dropdown-fontsizeunit a').each(function (idx, item) { + var $item = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item); + var isChecked = $item.data('value') + '' === fontSizeUnit + ''; + $item.toggleClass('checked', isChecked); + }); + $cont.find('.note-current-fontsizeunit').text(fontSizeUnit); + } + + if (styleInfo['line-height']) { + var lineHeight = styleInfo['line-height']; + $cont.find('.dropdown-line-height li a').each(function (idx, item) { + // always compare with string to avoid creating another func. + var isChecked = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(item).data('value') + '' === lineHeight + ''; + _this6.className = isChecked ? 'checked' : ''; + }); + } + } + }, { + key: "updateBtnStates", + value: function updateBtnStates($container, infos) { + var _this7 = this; + + external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.each(infos, function (selector, pred) { + _this7.ui.toggleBtnActive($container.find(selector), pred()); + }); + } + }, { + key: "tableMoveHandler", + value: function tableMoveHandler(event) { + var PX_PER_EM = 18; + var $picker = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target.parentNode); // target is mousecatcher + + var $dimensionDisplay = $picker.next(); + var $catcher = $picker.find('.note-dimension-picker-mousecatcher'); + var $highlighted = $picker.find('.note-dimension-picker-highlighted'); + var $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted'); + var posOffset; // HTML5 with jQuery - e.offsetX is undefined in Firefox + + if (event.offsetX === undefined) { + var posCatcher = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(event.target).offset(); + posOffset = { + x: event.pageX - posCatcher.left, + y: event.pageY - posCatcher.top + }; + } else { + posOffset = { + x: event.offsetX, + y: event.offsetY + }; + } + + var dim = { + c: Math.ceil(posOffset.x / PX_PER_EM) || 1, + r: Math.ceil(posOffset.y / PX_PER_EM) || 1 + }; + $highlighted.css({ + width: dim.c + 'em', + height: dim.r + 'em' + }); + $catcher.data('value', dim.c + 'x' + dim.r); + + if (dim.c > 3 && dim.c < this.options.insertTableMaxSize.col) { + $unhighlighted.css({ + width: dim.c + 1 + 'em' + }); + } + + if (dim.r > 3 && dim.r < this.options.insertTableMaxSize.row) { + $unhighlighted.css({ + height: dim.r + 1 + 'em' + }); + } + + $dimensionDisplay.html(dim.c + ' x ' + dim.r); + } + }]); + + return Buttons; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/Toolbar.js +function Toolbar_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function Toolbar_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function Toolbar_createClass(Constructor, protoProps, staticProps) { if (protoProps) Toolbar_defineProperties(Constructor.prototype, protoProps); if (staticProps) Toolbar_defineProperties(Constructor, staticProps); return Constructor; } + + + +var Toolbar_Toolbar = /*#__PURE__*/function () { + function Toolbar(context) { + Toolbar_classCallCheck(this, Toolbar); + + this.context = context; + this.$window = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(window); + this.$document = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document); + this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui; + this.$note = context.layoutInfo.note; + this.$editor = context.layoutInfo.editor; + this.$toolbar = context.layoutInfo.toolbar; + this.$editable = context.layoutInfo.editable; + this.$statusbar = context.layoutInfo.statusbar; + this.options = context.options; + this.isFollowing = false; + this.followScroll = this.followScroll.bind(this); + } + + Toolbar_createClass(Toolbar, [{ + key: "shouldInitialize", + value: function shouldInitialize() { + return !this.options.airMode; + } + }, { + key: "initialize", + value: function initialize() { + var _this = this; + + this.options.toolbar = this.options.toolbar || []; + + if (!this.options.toolbar.length) { + this.$toolbar.hide(); + } else { + this.context.invoke('buttons.build', this.$toolbar, this.options.toolbar); + } + + if (this.options.toolbarContainer) { + this.$toolbar.appendTo(this.options.toolbarContainer); + } + + this.changeContainer(false); + this.$note.on('summernote.keyup summernote.mouseup summernote.change', function () { + _this.context.invoke('buttons.updateCurrentStyle'); + }); + this.context.invoke('buttons.updateCurrentStyle'); + + if (this.options.followingToolbar) { + this.$window.on('scroll resize', this.followScroll); + } + } + }, { + key: "destroy", + value: function destroy() { + this.$toolbar.children().remove(); + + if (this.options.followingToolbar) { + this.$window.off('scroll resize', this.followScroll); + } + } + }, { + key: "followScroll", + value: function followScroll() { + if (this.$editor.hasClass('fullscreen')) { + return false; + } + + var editorHeight = this.$editor.outerHeight(); + var editorWidth = this.$editor.width(); + var toolbarHeight = this.$toolbar.height(); + var statusbarHeight = this.$statusbar.height(); // check if the web app is currently using another static bar + + var otherBarHeight = 0; + + if (this.options.otherStaticBar) { + otherBarHeight = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.otherStaticBar).outerHeight(); + } + + var currentOffset = this.$document.scrollTop(); + var editorOffsetTop = this.$editor.offset().top; + var editorOffsetBottom = editorOffsetTop + editorHeight; + var activateOffset = editorOffsetTop - otherBarHeight; + var deactivateOffsetBottom = editorOffsetBottom - otherBarHeight - toolbarHeight - statusbarHeight; + + if (!this.isFollowing && currentOffset > activateOffset && currentOffset < deactivateOffsetBottom - toolbarHeight) { + this.isFollowing = true; + this.$editable.css({ + marginTop: this.$toolbar.outerHeight() + }); + this.$toolbar.css({ + position: 'fixed', + top: otherBarHeight, + width: editorWidth, + zIndex: 1000 + }); + } else if (this.isFollowing && (currentOffset < activateOffset || currentOffset > deactivateOffsetBottom)) { + this.isFollowing = false; + this.$toolbar.css({ + position: 'relative', + top: 0, + width: '100%', + zIndex: 'auto' + }); + this.$editable.css({ + marginTop: '' + }); + } + } + }, { + key: "changeContainer", + value: function changeContainer(isFullscreen) { + if (isFullscreen) { + this.$toolbar.prependTo(this.$editor); + } else { + if (this.options.toolbarContainer) { + this.$toolbar.appendTo(this.options.toolbarContainer); + } + } + + if (this.options.followingToolbar) { + this.followScroll(); + } + } + }, { + key: "updateFullscreen", + value: function updateFullscreen(isFullscreen) { + this.ui.toggleBtnActive(this.$toolbar.find('.btn-fullscreen'), isFullscreen); + this.changeContainer(isFullscreen); + } + }, { + key: "updateCodeview", + value: function updateCodeview(isCodeview) { + this.ui.toggleBtnActive(this.$toolbar.find('.btn-codeview'), isCodeview); + + if (isCodeview) { + this.deactivate(); + } else { + this.activate(); + } + } + }, { + key: "activate", + value: function activate(isIncludeCodeview) { + var $btn = this.$toolbar.find('button'); + + if (!isIncludeCodeview) { + $btn = $btn.not('.note-codeview-keep'); + } + + this.ui.toggleBtn($btn, true); + } + }, { + key: "deactivate", + value: function deactivate(isIncludeCodeview) { + var $btn = this.$toolbar.find('button'); + + if (!isIncludeCodeview) { + $btn = $btn.not('.note-codeview-keep'); + } + + this.ui.toggleBtn($btn, false); + } + }]); + + return Toolbar; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/LinkDialog.js +function LinkDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function LinkDialog_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function LinkDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) LinkDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) LinkDialog_defineProperties(Constructor, staticProps); return Constructor; } + + + + + + +var LinkDialog_LinkDialog = /*#__PURE__*/function () { + function LinkDialog(context) { + LinkDialog_classCallCheck(this, LinkDialog); + + this.context = context; + this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui; + this.$body = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document.body); + this.$editor = context.layoutInfo.editor; + this.options = context.options; + this.lang = this.options.langInfo; + context.memo('help.linkDialog.show', this.options.langInfo.help['linkDialog.show']); + } + + LinkDialog_createClass(LinkDialog, [{ + key: "initialize", + value: function initialize() { + var $container = this.options.dialogsInBody ? this.$body : this.options.container; + var body = ['
    ', ""), ""), '
    ', '
    ', ""), ""), '
    ', !this.options.disableLinkTarget ? external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('
    ').append(this.ui.checkbox({ + className: 'sn-checkbox-open-in-new-window', + text: this.lang.link.openInNewWindow, + checked: true + }).render()).html() : '', external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()('
    ').append(this.ui.checkbox({ + className: 'sn-checkbox-use-protocol', + text: this.lang.link.useProtocol, + checked: true + }).render()).html()].join(''); + var buttonClass = 'btn btn-primary note-btn note-btn-primary note-link-btn'; + var footer = ""); + this.$dialog = this.ui.dialog({ + className: 'link-dialog', + title: this.lang.link.insert, + fade: this.options.dialogsFade, + body: body, + footer: footer + }).render().appendTo($container); + } + }, { + key: "destroy", + value: function destroy() { + this.ui.hideDialog(this.$dialog); + this.$dialog.remove(); + } + }, { + key: "bindEnterKey", + value: function bindEnterKey($input, $btn) { + $input.on('keypress', function (event) { + if (event.keyCode === core_key.code.ENTER) { + event.preventDefault(); + $btn.trigger('click'); + } + }); + } + /** + * toggle update button + */ + + }, { + key: "toggleLinkBtn", + value: function toggleLinkBtn($linkBtn, $linkText, $linkUrl) { + this.ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val()); + } + /** + * Show link dialog and set event handlers on dialog controls. + * + * @param {Object} linkInfo + * @return {Promise} + */ + + }, { + key: "showLinkDialog", + value: function showLinkDialog(linkInfo) { + var _this = this; + + return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) { + var $linkText = _this.$dialog.find('.note-link-text'); + + var $linkUrl = _this.$dialog.find('.note-link-url'); + + var $linkBtn = _this.$dialog.find('.note-link-btn'); + + var $openInNewWindow = _this.$dialog.find('.sn-checkbox-open-in-new-window input[type=checkbox]'); + + var $useProtocol = _this.$dialog.find('.sn-checkbox-use-protocol input[type=checkbox]'); + + _this.ui.onDialogShown(_this.$dialog, function () { + _this.context.triggerEvent('dialog.shown'); // If no url was given and given text is valid URL then copy that into URL Field + + + if (!linkInfo.url && func.isValidUrl(linkInfo.text)) { + linkInfo.url = linkInfo.text; + } + + $linkText.on('input paste propertychange', function () { + // If linktext was modified by input events, + // cloning text from linkUrl will be stopped. + linkInfo.text = $linkText.val(); + + _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl); + }).val(linkInfo.text); + $linkUrl.on('input paste propertychange', function () { + // Display same text on `Text to display` as default + // when linktext has no text + if (!linkInfo.text) { + $linkText.val($linkUrl.val()); + } + + _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl); + }).val(linkInfo.url); + + if (!env.isSupportTouch) { + $linkUrl.trigger('focus'); + } + + _this.toggleLinkBtn($linkBtn, $linkText, $linkUrl); + + _this.bindEnterKey($linkUrl, $linkBtn); + + _this.bindEnterKey($linkText, $linkBtn); + + var isNewWindowChecked = linkInfo.isNewWindow !== undefined ? linkInfo.isNewWindow : _this.context.options.linkTargetBlank; + $openInNewWindow.prop('checked', isNewWindowChecked); + var useProtocolChecked = linkInfo.url ? false : _this.context.options.useProtocol; + $useProtocol.prop('checked', useProtocolChecked); + $linkBtn.one('click', function (event) { + event.preventDefault(); + deferred.resolve({ + range: linkInfo.range, + url: $linkUrl.val(), + text: $linkText.val(), + isNewWindow: $openInNewWindow.is(':checked'), + checkProtocol: $useProtocol.is(':checked') + }); + + _this.ui.hideDialog(_this.$dialog); + }); + }); + + _this.ui.onDialogHidden(_this.$dialog, function () { + // detach events + $linkText.off(); + $linkUrl.off(); + $linkBtn.off(); + + if (deferred.state() === 'pending') { + deferred.reject(); + } + }); + + _this.ui.showDialog(_this.$dialog); + }).promise(); + } + /** + * @param {Object} layoutInfo + */ + + }, { + key: "show", + value: function show() { + var _this2 = this; + + var linkInfo = this.context.invoke('editor.getLinkInfo'); + this.context.invoke('editor.saveRange'); + this.showLinkDialog(linkInfo).then(function (linkInfo) { + _this2.context.invoke('editor.restoreRange'); + + _this2.context.invoke('editor.createLink', linkInfo); + }).fail(function () { + _this2.context.invoke('editor.restoreRange'); + }); + } + }]); + + return LinkDialog; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/LinkPopover.js +function LinkPopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function LinkPopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function LinkPopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) LinkPopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) LinkPopover_defineProperties(Constructor, staticProps); return Constructor; } + + + + + +var LinkPopover_LinkPopover = /*#__PURE__*/function () { + function LinkPopover(context) { + var _this = this; + + LinkPopover_classCallCheck(this, LinkPopover); + + this.context = context; + this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui; + this.options = context.options; + this.events = { + 'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function summernoteKeyupSummernoteMouseupSummernoteChangeSummernoteScroll() { + _this.update(); + }, + 'summernote.disable summernote.dialog.shown summernote.blur': function summernoteDisableSummernoteDialogShownSummernoteBlur() { + _this.hide(); + } + }; + } + + LinkPopover_createClass(LinkPopover, [{ + key: "shouldInitialize", + value: function shouldInitialize() { + return !lists.isEmpty(this.options.popover.link); + } + }, { + key: "initialize", + value: function initialize() { + this.$popover = this.ui.popover({ + className: 'note-link-popover', + callback: function callback($node) { + var $content = $node.find('.popover-content,.note-popover-content'); + $content.prepend(' '); + } + }).render().appendTo(this.options.container); + var $content = this.$popover.find('.popover-content,.note-popover-content'); + this.context.invoke('buttons.build', $content, this.options.popover.link); + this.$popover.on('mousedown', function (e) { + e.preventDefault(); + }); + } + }, { + key: "destroy", + value: function destroy() { + this.$popover.remove(); + } + }, { + key: "update", + value: function update() { + // Prevent focusing on editable when invoke('code') is executed + if (!this.context.invoke('editor.hasFocus')) { + this.hide(); + return; + } + + var rng = this.context.invoke('editor.getLastRange'); + + if (rng.isCollapsed() && rng.isOnAnchor()) { + var anchor = dom.ancestor(rng.sc, dom.isAnchor); + var href = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(anchor).attr('href'); + this.$popover.find('a').attr('href', href).text(href); + var pos = dom.posFromPlaceholder(anchor); + var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset(); + pos.top -= containerOffset.top; + pos.left -= containerOffset.left; + this.$popover.css({ + display: 'block', + left: pos.left, + top: pos.top + }); + } else { + this.hide(); + } + } + }, { + key: "hide", + value: function hide() { + this.$popover.hide(); + } + }]); + + return LinkPopover; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/ImageDialog.js +function ImageDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function ImageDialog_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function ImageDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) ImageDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) ImageDialog_defineProperties(Constructor, staticProps); return Constructor; } + + + + + +var ImageDialog_ImageDialog = /*#__PURE__*/function () { + function ImageDialog(context) { + ImageDialog_classCallCheck(this, ImageDialog); + + this.context = context; + this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui; + this.$body = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document.body); + this.$editor = context.layoutInfo.editor; + this.options = context.options; + this.lang = this.options.langInfo; + } + + ImageDialog_createClass(ImageDialog, [{ + key: "initialize", + value: function initialize() { + var imageLimitation = ''; + + if (this.options.maximumImageFileSize) { + var unit = Math.floor(Math.log(this.options.maximumImageFileSize) / Math.log(1024)); + var readableSize = (this.options.maximumImageFileSize / Math.pow(1024, unit)).toFixed(2) * 1 + ' ' + ' KMGTP'[unit] + 'B'; + imageLimitation = "".concat(this.lang.image.maximumFileSize + ' : ' + readableSize, ""); + } + + var $container = this.options.dialogsInBody ? this.$body : this.options.container; + var body = ['
    ', '', '', imageLimitation, '
    ', '
    ', '', '', '
    '].join(''); + var buttonClass = 'btn btn-primary note-btn note-btn-primary note-image-btn'; + var footer = ""); + this.$dialog = this.ui.dialog({ + title: this.lang.image.insert, + fade: this.options.dialogsFade, + body: body, + footer: footer + }).render().appendTo($container); + } + }, { + key: "destroy", + value: function destroy() { + this.ui.hideDialog(this.$dialog); + this.$dialog.remove(); + } + }, { + key: "bindEnterKey", + value: function bindEnterKey($input, $btn) { + $input.on('keypress', function (event) { + if (event.keyCode === core_key.code.ENTER) { + event.preventDefault(); + $btn.trigger('click'); + } + }); + } + }, { + key: "show", + value: function show() { + var _this = this; + + this.context.invoke('editor.saveRange'); + this.showImageDialog().then(function (data) { + // [workaround] hide dialog before restore range for IE range focus + _this.ui.hideDialog(_this.$dialog); + + _this.context.invoke('editor.restoreRange'); + + if (typeof data === 'string') { + // image url + // If onImageLinkInsert set, + if (_this.options.callbacks.onImageLinkInsert) { + _this.context.triggerEvent('image.link.insert', data); + } else { + _this.context.invoke('editor.insertImage', data); + } + } else { + // array of files + _this.context.invoke('editor.insertImagesOrCallback', data); + } + }).fail(function () { + _this.context.invoke('editor.restoreRange'); + }); + } + /** + * show image dialog + * + * @param {jQuery} $dialog + * @return {Promise} + */ + + }, { + key: "showImageDialog", + value: function showImageDialog() { + var _this2 = this; + + return external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.Deferred(function (deferred) { + var $imageInput = _this2.$dialog.find('.note-image-input'); + + var $imageUrl = _this2.$dialog.find('.note-image-url'); + + var $imageBtn = _this2.$dialog.find('.note-image-btn'); + + _this2.ui.onDialogShown(_this2.$dialog, function () { + _this2.context.triggerEvent('dialog.shown'); // Cloning imageInput to clear element. + + + $imageInput.replaceWith($imageInput.clone().on('change', function (event) { + deferred.resolve(event.target.files || event.target.value); + }).val('')); + $imageUrl.on('input paste propertychange', function () { + _this2.ui.toggleBtn($imageBtn, $imageUrl.val()); + }).val(''); + + if (!env.isSupportTouch) { + $imageUrl.trigger('focus'); + } + + $imageBtn.click(function (event) { + event.preventDefault(); + deferred.resolve($imageUrl.val()); + }); + + _this2.bindEnterKey($imageUrl, $imageBtn); + }); + + _this2.ui.onDialogHidden(_this2.$dialog, function () { + $imageInput.off(); + $imageUrl.off(); + $imageBtn.off(); + + if (deferred.state() === 'pending') { + deferred.reject(); + } + }); + + _this2.ui.showDialog(_this2.$dialog); + }); + } + }]); + + return ImageDialog; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/ImagePopover.js +function ImagePopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function ImagePopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function ImagePopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) ImagePopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) ImagePopover_defineProperties(Constructor, staticProps); return Constructor; } + + + + +/** + * Image popover module + * mouse events that show/hide popover will be handled by Handle.js. + * Handle.js will receive the events and invoke 'imagePopover.update'. + */ + +var ImagePopover_ImagePopover = /*#__PURE__*/function () { + function ImagePopover(context) { + var _this = this; + + ImagePopover_classCallCheck(this, ImagePopover); + + this.context = context; + this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui; + this.editable = context.layoutInfo.editable[0]; + this.options = context.options; + this.events = { + 'summernote.disable summernote.blur': function summernoteDisableSummernoteBlur() { + _this.hide(); + } + }; + } + + ImagePopover_createClass(ImagePopover, [{ + key: "shouldInitialize", + value: function shouldInitialize() { + return !lists.isEmpty(this.options.popover.image); + } + }, { + key: "initialize", + value: function initialize() { + this.$popover = this.ui.popover({ + className: 'note-image-popover' + }).render().appendTo(this.options.container); + var $content = this.$popover.find('.popover-content,.note-popover-content'); + this.context.invoke('buttons.build', $content, this.options.popover.image); + this.$popover.on('mousedown', function (e) { + e.preventDefault(); + }); + } + }, { + key: "destroy", + value: function destroy() { + this.$popover.remove(); + } + }, { + key: "update", + value: function update(target, event) { + if (dom.isImg(target)) { + var position = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(target).offset(); + var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset(); + var pos = {}; + + if (this.options.popatmouse) { + pos.left = event.pageX - 20; + pos.top = event.pageY; + } else { + pos = position; + } + + pos.top -= containerOffset.top; + pos.left -= containerOffset.left; + this.$popover.css({ + display: 'block', + left: pos.left, + top: pos.top + }); + } else { + this.hide(); + } + } + }, { + key: "hide", + value: function hide() { + this.$popover.hide(); + } + }]); + + return ImagePopover; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/TablePopover.js +function TablePopover_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function TablePopover_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function TablePopover_createClass(Constructor, protoProps, staticProps) { if (protoProps) TablePopover_defineProperties(Constructor.prototype, protoProps); if (staticProps) TablePopover_defineProperties(Constructor, staticProps); return Constructor; } + + + + + + +var TablePopover_TablePopover = /*#__PURE__*/function () { + function TablePopover(context) { + var _this = this; + + TablePopover_classCallCheck(this, TablePopover); + + this.context = context; + this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui; + this.options = context.options; + this.events = { + 'summernote.mousedown': function summernoteMousedown(we, e) { + _this.update(e.target); + }, + 'summernote.keyup summernote.scroll summernote.change': function summernoteKeyupSummernoteScrollSummernoteChange() { + _this.update(); + }, + 'summernote.disable summernote.blur': function summernoteDisableSummernoteBlur() { + _this.hide(); + } + }; + } + + TablePopover_createClass(TablePopover, [{ + key: "shouldInitialize", + value: function shouldInitialize() { + return !lists.isEmpty(this.options.popover.table); + } + }, { + key: "initialize", + value: function initialize() { + this.$popover = this.ui.popover({ + className: 'note-table-popover' + }).render().appendTo(this.options.container); + var $content = this.$popover.find('.popover-content,.note-popover-content'); + this.context.invoke('buttons.build', $content, this.options.popover.table); // [workaround] Disable Firefox's default table editor + + if (env.isFF) { + document.execCommand('enableInlineTableEditing', false, false); + } + + this.$popover.on('mousedown', function (e) { + e.preventDefault(); + }); + } + }, { + key: "destroy", + value: function destroy() { + this.$popover.remove(); + } + }, { + key: "update", + value: function update(target) { + if (this.context.isDisabled()) { + return false; + } + + var isCell = dom.isCell(target); + + if (isCell) { + var pos = dom.posFromPlaceholder(target); + var containerOffset = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(this.options.container).offset(); + pos.top -= containerOffset.top; + pos.left -= containerOffset.left; + this.$popover.css({ + display: 'block', + left: pos.left, + top: pos.top + }); + } else { + this.hide(); + } + + return isCell; + } + }, { + key: "hide", + value: function hide() { + this.$popover.hide(); + } + }]); + + return TablePopover; +}(); + + +// CONCATENATED MODULE: ./src/js/base/module/VideoDialog.js +function VideoDialog_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function VideoDialog_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function VideoDialog_createClass(Constructor, protoProps, staticProps) { if (protoProps) VideoDialog_defineProperties(Constructor.prototype, protoProps); if (staticProps) VideoDialog_defineProperties(Constructor, staticProps); return Constructor; } + + + + + +var VideoDialog_VideoDialog = /*#__PURE__*/function () { + function VideoDialog(context) { + VideoDialog_classCallCheck(this, VideoDialog); + + this.context = context; + this.ui = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default.a.summernote.ui; + this.$body = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(document.body); + this.$editor = context.layoutInfo.editor; + this.options = context.options; + this.lang = this.options.langInfo; + } + + VideoDialog_createClass(VideoDialog, [{ + key: "initialize", + value: function initialize() { + var $container = this.options.dialogsInBody ? this.$body : this.options.container; + var body = ['
    ', ""), ""), '
    '].join(''); + var buttonClass = 'btn btn-primary note-btn note-btn-primary note-video-btn'; + var footer = ""); + this.$dialog = this.ui.dialog({ + title: this.lang.video.insert, + fade: this.options.dialogsFade, + body: body, + footer: footer + }).render().appendTo($container); + } + }, { + key: "destroy", + value: function destroy() { + this.ui.hideDialog(this.$dialog); + this.$dialog.remove(); + } + }, { + key: "bindEnterKey", + value: function bindEnterKey($input, $btn) { + $input.on('keypress', function (event) { + if (event.keyCode === core_key.code.ENTER) { + event.preventDefault(); + $btn.trigger('click'); + } + }); + } + }, { + key: "createVideoNode", + value: function createVideoNode(url) { + // video url patterns(youtube, instagram, vimeo, dailymotion, youku, mp4, ogg, webm) + var ytRegExp = /\/\/(?:(?:www|m)\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))([\w|-]{11})(?:(?:[\?&]t=)(\S+))?$/; + var ytRegExpForStart = /^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$/; + var ytMatch = url.match(ytRegExp); + var igRegExp = /(?:www\.|\/\/)instagram\.com\/p\/(.[a-zA-Z0-9_-]*)/; + var igMatch = url.match(igRegExp); + var vRegExp = /\/\/vine\.co\/v\/([a-zA-Z0-9]+)/; + var vMatch = url.match(vRegExp); + var vimRegExp = /\/\/(player\.)?vimeo\.com\/([a-z]*\/)*(\d+)[?]?.*/; + var vimMatch = url.match(vimRegExp); + var dmRegExp = /.+dailymotion.com\/(video|hub)\/([^_]+)[^#]*(#video=([^_&]+))?/; + var dmMatch = url.match(dmRegExp); + var youkuRegExp = /\/\/v\.youku\.com\/v_show\/id_(\w+)=*\.html/; + var youkuMatch = url.match(youkuRegExp); + var qqRegExp = /\/\/v\.qq\.com.*?vid=(.+)/; + var qqMatch = url.match(qqRegExp); + var qqRegExp2 = /\/\/v\.qq\.com\/x?\/?(page|cover).*?\/([^\/]+)\.html\??.*/; + var qqMatch2 = url.match(qqRegExp2); + var mp4RegExp = /^.+.(mp4|m4v)$/; + var mp4Match = url.match(mp4RegExp); + var oggRegExp = /^.+.(ogg|ogv)$/; + var oggMatch = url.match(oggRegExp); + var webmRegExp = /^.+.(webm)$/; + var webmMatch = url.match(webmRegExp); + var fbRegExp = /(?:www\.|\/\/)facebook\.com\/([^\/]+)\/videos\/([0-9]+)/; + var fbMatch = url.match(fbRegExp); + var $video; + + if (ytMatch && ytMatch[1].length === 11) { + var youtubeId = ytMatch[1]; + var start = 0; + + if (typeof ytMatch[2] !== 'undefined') { + var ytMatchForStart = ytMatch[2].match(ytRegExpForStart); + + if (ytMatchForStart) { + for (var n = [3600, 60, 1], i = 0, r = n.length; i < r; i++) { + start += typeof ytMatchForStart[i + 1] !== 'undefined' ? n[i] * parseInt(ytMatchForStart[i + 1], 10) : 0; + } + } + } + + $video = external_root_jQuery_commonjs2_jquery_commonjs_jquery_amd_jquery_default()(' + + + + + + +
    + + +
    + + +
    + + + + +
    + + +
    + + +
    +
    + + +
    + +
      +
    • +
    • +
    • +
    +
    + +
    + +
    +
    + + + + + \ No newline at end of file diff --git a/common/smarteditor/SmartEditor2SkinnoPhoto.html b/common/smarteditor/SmartEditor2SkinnoPhoto.html new file mode 100644 index 0000000..4bd24e3 --- /dev/null +++ b/common/smarteditor/SmartEditor2SkinnoPhoto.html @@ -0,0 +1,795 @@ + + + + + + +네이버 :: Smart Editor 2 ™ + + + + + + + + + + + + + + + + + + +
    +
    글쓰기영역으로 바로가기 +
    + +
    +
      +
    • + +
      +
      +
        +
      • + +
      • +
      • +
      • +
      • +
      +
      +
      + +
    • + +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +
      + +
    • +
      +
    • + +
    • + +
    • + +
    • + +
    • + + + +
    • + +
    • + + + +
    • + +
    • + +
    • +
      +
    • + +
    • + +
    • + +
    • + +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +

      직접 입력

      + + + + + +
      + +
      +
      +
      +
      + +
    • +
      +
    • +
      +
        +
      • +
      • +
      • +
      • +
      +
      +
    • +
      +
    • + + + +
    • +
      + + +
    • + +
      +
      +
      +
        +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      +

      + +

      +
      +
      +
      + +
    • + +
    • + + +
      +
      +
      +
      + 칸수 지정 +
      +
      +
      + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + + + + +
          
          
          
      +
      +
      + 속성직접입력 +
      +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      + + +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      + 표스타일 +
      +
      +
      + + + +
      +
      +
      +

      + +

      + +
      + +
      +
      +
      + + +
    • + +
    • + + +
      +
      +
      + +

      찾기/바꾸기

      +
        +
      • +
      • +
      +
      +
      +
      +
      +

      + +

      +
      + + +
      +
      +
      + + +
    • +
    + +
    + +
    + + + + + +
    + +
    + + + + + + + + + +
    + + +
    + + +
    + + + + +
    + + +
    + + +
    +
    + + +
    + +
      +
    • +
    • +
    • +
    +
    + +
    + +
    +
    + + + + + \ No newline at end of file diff --git a/common/smarteditor/css/smart_editor2.css b/common/smarteditor/css/smart_editor2.css new file mode 100644 index 0000000..1b389d5 --- /dev/null +++ b/common/smarteditor/css/smart_editor2.css @@ -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; } diff --git a/common/smarteditor/css/smart_editor2_in.css b/common/smarteditor/css/smart_editor2_in.css new file mode 100644 index 0000000..6b70087 --- /dev/null +++ b/common/smarteditor/css/smart_editor2_in.css @@ -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: 11pt; 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; } diff --git a/common/smarteditor/css/smart_editor2_items.css b/common/smarteditor/css/smart_editor2_items.css new file mode 100644 index 0000000..acabb25 --- /dev/null +++ b/common/smarteditor/css/smart_editor2_items.css @@ -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; } diff --git a/common/smarteditor/css/smart_editor2_out.css b/common/smarteditor/css/smart_editor2_out.css new file mode 100644 index 0000000..b01e34b --- /dev/null +++ b/common/smarteditor/css/smart_editor2_out.css @@ -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; } diff --git a/common/smarteditor/editor.php b/common/smarteditor/editor.php new file mode 100644 index 0000000..a245b20 --- /dev/null +++ b/common/smarteditor/editor.php @@ -0,0 +1,53 @@ + + + + + + diff --git a/common/smarteditor/img/bg_b1.png b/common/smarteditor/img/bg_b1.png new file mode 100644 index 0000000..8bd0c06 Binary files /dev/null and b/common/smarteditor/img/bg_b1.png differ diff --git a/common/smarteditor/img/bg_button.gif b/common/smarteditor/img/bg_button.gif new file mode 100644 index 0000000..1619320 Binary files /dev/null and b/common/smarteditor/img/bg_button.gif differ diff --git a/common/smarteditor/img/bg_button_left.gif b/common/smarteditor/img/bg_button_left.gif new file mode 100644 index 0000000..7b86ffd Binary files /dev/null and b/common/smarteditor/img/bg_button_left.gif differ diff --git a/common/smarteditor/img/bg_button_right.gif b/common/smarteditor/img/bg_button_right.gif new file mode 100644 index 0000000..0ac699c Binary files /dev/null and b/common/smarteditor/img/bg_button_right.gif differ diff --git a/common/smarteditor/img/bg_find_h3.gif b/common/smarteditor/img/bg_find_h3.gif new file mode 100644 index 0000000..06627d9 Binary files /dev/null and b/common/smarteditor/img/bg_find_h3.gif differ diff --git a/common/smarteditor/img/bg_help.gif b/common/smarteditor/img/bg_help.gif new file mode 100644 index 0000000..f2aae94 Binary files /dev/null and b/common/smarteditor/img/bg_help.gif differ diff --git a/common/smarteditor/img/bg_icon_tool.gif b/common/smarteditor/img/bg_icon_tool.gif new file mode 100644 index 0000000..ef680eb Binary files /dev/null and b/common/smarteditor/img/bg_icon_tool.gif differ diff --git a/common/smarteditor/img/bg_line1.gif b/common/smarteditor/img/bg_line1.gif new file mode 100644 index 0000000..8c506a4 Binary files /dev/null and b/common/smarteditor/img/bg_line1.gif differ diff --git a/common/smarteditor/img/bg_quote2.gif b/common/smarteditor/img/bg_quote2.gif new file mode 100644 index 0000000..eb8cd04 Binary files /dev/null and b/common/smarteditor/img/bg_quote2.gif differ diff --git a/common/smarteditor/img/bg_set.gif b/common/smarteditor/img/bg_set.gif new file mode 100644 index 0000000..14d0973 Binary files /dev/null and b/common/smarteditor/img/bg_set.gif differ diff --git a/common/smarteditor/img/bg_text_tool.gif b/common/smarteditor/img/bg_text_tool.gif new file mode 100644 index 0000000..60d61de Binary files /dev/null and b/common/smarteditor/img/bg_text_tool.gif differ diff --git a/common/smarteditor/img/bg_tool2.gif b/common/smarteditor/img/bg_tool2.gif new file mode 100644 index 0000000..f96aafb Binary files /dev/null and b/common/smarteditor/img/bg_tool2.gif differ diff --git a/common/smarteditor/img/editor_guideline_698.gif b/common/smarteditor/img/editor_guideline_698.gif new file mode 100644 index 0000000..9635089 Binary files /dev/null and b/common/smarteditor/img/editor_guideline_698.gif differ diff --git a/common/smarteditor/img/editor_guideline_890.gif b/common/smarteditor/img/editor_guideline_890.gif new file mode 100644 index 0000000..5a241e1 Binary files /dev/null and b/common/smarteditor/img/editor_guideline_890.gif differ diff --git a/common/smarteditor/img/ico_extend.png b/common/smarteditor/img/ico_extend.png new file mode 100644 index 0000000..1aa88ff Binary files /dev/null and b/common/smarteditor/img/ico_extend.png differ diff --git a/common/smarteditor/img/icon_set.gif b/common/smarteditor/img/icon_set.gif new file mode 100644 index 0000000..842d394 Binary files /dev/null and b/common/smarteditor/img/icon_set.gif differ diff --git a/common/smarteditor/img/ko_KR/btn_set.png b/common/smarteditor/img/ko_KR/btn_set.png new file mode 100644 index 0000000..f8935d1 Binary files /dev/null and b/common/smarteditor/img/ko_KR/btn_set.png differ diff --git a/common/smarteditor/img/ko_KR/bx_set_110302.gif b/common/smarteditor/img/ko_KR/bx_set_110302.gif new file mode 100644 index 0000000..86662e9 Binary files /dev/null and b/common/smarteditor/img/ko_KR/bx_set_110302.gif differ diff --git a/common/smarteditor/img/ko_KR/text_tool_set.png b/common/smarteditor/img/ko_KR/text_tool_set.png new file mode 100644 index 0000000..c1e5be3 Binary files /dev/null and b/common/smarteditor/img/ko_KR/text_tool_set.png differ diff --git a/common/smarteditor/img/photoQuickPopup/bg_drag_image.png b/common/smarteditor/img/photoQuickPopup/bg_drag_image.png new file mode 100644 index 0000000..0a68013 Binary files /dev/null and b/common/smarteditor/img/photoQuickPopup/bg_drag_image.png differ diff --git a/common/smarteditor/img/photoQuickPopup/btn_cancel.png b/common/smarteditor/img/photoQuickPopup/btn_cancel.png new file mode 100644 index 0000000..a39adf8 Binary files /dev/null and b/common/smarteditor/img/photoQuickPopup/btn_cancel.png differ diff --git a/common/smarteditor/img/photoQuickPopup/btn_confirm.png b/common/smarteditor/img/photoQuickPopup/btn_confirm.png new file mode 100644 index 0000000..4b7ed66 Binary files /dev/null and b/common/smarteditor/img/photoQuickPopup/btn_confirm.png differ diff --git a/common/smarteditor/img/photoQuickPopup/btn_confirm2.png b/common/smarteditor/img/photoQuickPopup/btn_confirm2.png new file mode 100644 index 0000000..7d1accf Binary files /dev/null and b/common/smarteditor/img/photoQuickPopup/btn_confirm2.png differ diff --git a/common/smarteditor/img/photoQuickPopup/btn_del.png b/common/smarteditor/img/photoQuickPopup/btn_del.png new file mode 100644 index 0000000..9bbf595 Binary files /dev/null and b/common/smarteditor/img/photoQuickPopup/btn_del.png differ diff --git a/common/smarteditor/img/photoQuickPopup/btn_find.png b/common/smarteditor/img/photoQuickPopup/btn_find.png new file mode 100644 index 0000000..054a411 Binary files /dev/null and b/common/smarteditor/img/photoQuickPopup/btn_find.png differ diff --git a/common/smarteditor/img/text_tool_set2.png b/common/smarteditor/img/text_tool_set2.png new file mode 100644 index 0000000..889a333 Binary files /dev/null and b/common/smarteditor/img/text_tool_set2.png differ diff --git a/common/smarteditor/js/HuskyEZCreator.js b/common/smarteditor/js/HuskyEZCreator.js new file mode 100644 index 0000000..76ce164 --- /dev/null +++ b/common/smarteditor/js/HuskyEZCreator.js @@ -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("', + error : '

    The requested content cannot be loaded.
    Please try again later.

    ', + closeBtn : '', + next : '', + prev : '' + }, + + // Properties for each animation type + // Opening fancyBox + openEffect : 'fade', // 'elastic', 'fade' or 'none' + openSpeed : 250, + openEasing : 'swing', + openOpacity : true, + openMethod : 'zoomIn', + + // Closing fancyBox + closeEffect : 'fade', // 'elastic', 'fade' or 'none' + closeSpeed : 250, + closeEasing : 'swing', + closeOpacity : true, + closeMethod : 'zoomOut', + + // Changing next gallery item + nextEffect : 'elastic', // 'elastic', 'fade' or 'none' + nextSpeed : 250, + nextEasing : 'swing', + nextMethod : 'changeIn', + + // Changing previous gallery item + prevEffect : 'elastic', // 'elastic', 'fade' or 'none' + prevSpeed : 250, + prevEasing : 'swing', + prevMethod : 'changeOut', + + // Enable default helpers + helpers : { + overlay : true, + title : true + }, + + // Callbacks + onCancel : $.noop, // If canceling + beforeLoad : $.noop, // Before loading + afterLoad : $.noop, // After loading + beforeShow : $.noop, // Before changing in current item + afterShow : $.noop, // After opening + beforeChange : $.noop, // Before changing gallery item + beforeClose : $.noop, // Before closing + afterClose : $.noop // After closing + }, + + //Current state + group : {}, // Selected group + opts : {}, // Group options + previous : null, // Previous element + coming : null, // Element being loaded + current : null, // Currently loaded element + isActive : false, // Is activated + isOpen : false, // Is currently open + isOpened : false, // Have been fully opened at least once + + wrap : null, + skin : null, + outer : null, + inner : null, + + player : { + timer : null, + isActive : false + }, + + // Loaders + ajaxLoad : null, + imgPreload : null, + + // Some collections + transitions : {}, + helpers : {}, + + /* + * Static methods + */ + + open: function (group, opts) { + if (!group) { + return; + } + + if (!$.isPlainObject(opts)) { + opts = {}; + } + + // Close if already active + if (false === F.close(true)) { + return; + } + + // Normalize group + if (!$.isArray(group)) { + group = isQuery(group) ? $(group).get() : [group]; + } + + // Recheck if the type of each element is `object` and set content type (image, ajax, etc) + $.each(group, function(i, element) { + var obj = {}, + href, + title, + content, + type, + rez, + hrefParts, + selector; + + if ($.type(element) === "object") { + // Check if is DOM element + if (element.nodeType) { + element = $(element); + } + + if (isQuery(element)) { + obj = { + href : element.data('fancybox-href') || element.attr('href'), + title : element.data('fancybox-title') || element.attr('title'), + isDom : true, + element : element + }; + + if ($.metadata) { + $.extend(true, obj, element.metadata()); + } + + } else { + obj = element; + } + } + + href = opts.href || obj.href || (isString(element) ? element : null); + title = opts.title !== undefined ? opts.title : obj.title || ''; + + content = opts.content || obj.content; + type = content ? 'html' : (opts.type || obj.type); + + if (!type && obj.isDom) { + type = element.data('fancybox-type'); + + if (!type) { + rez = element.prop('class').match(/fancybox\.(\w+)/); + type = rez ? rez[1] : null; + } + } + + if (isString(href)) { + // Try to guess the content type + if (!type) { + if (F.isImage(href)) { + type = 'image'; + + } else if (F.isSWF(href)) { + type = 'swf'; + + } else if (href.charAt(0) === '#') { + type = 'inline'; + + } else if (isString(element)) { + type = 'html'; + content = element; + } + } + + // Split url into two pieces with source url and content selector, e.g, + // "/mypage.html #my_id" will load "/mypage.html" and display element having id "my_id" + if (type === 'ajax') { + hrefParts = href.split(/\s+/, 2); + href = hrefParts.shift(); + selector = hrefParts.shift(); + } + } + + if (!content) { + if (type === 'inline') { + if (href) { + content = $( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7 + + } else if (obj.isDom) { + content = element; + } + + } else if (type === 'html') { + content = href; + + } else if (!type && !href && obj.isDom) { + type = 'inline'; + content = element; + } + } + + $.extend(obj, { + href : href, + type : type, + content : content, + title : title, + selector : selector + }); + + group[ i ] = obj; + }); + + // Extend the defaults + F.opts = $.extend(true, {}, F.defaults, opts); + + // All options are merged recursive except keys + if (opts.keys !== undefined) { + F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false; + } + + F.group = group; + + return F._start(F.opts.index); + }, + + // Cancel image loading or abort ajax request + cancel: function () { + var coming = F.coming; + + if (!coming || false === F.trigger('onCancel')) { + return; + } + + F.hideLoading(); + + if (F.ajaxLoad) { + F.ajaxLoad.abort(); + } + + F.ajaxLoad = null; + + if (F.imgPreload) { + F.imgPreload.onload = F.imgPreload.onerror = null; + } + + if (coming.wrap) { + coming.wrap.stop(true, true).trigger('onReset').remove(); + } + + F.coming = null; + + // If the first item has been canceled, then clear everything + if (!F.current) { + F._afterZoomOut( coming ); + } + }, + + // Start closing animation if is open; remove immediately if opening/closing + close: function (event) { + F.cancel(); + + if (false === F.trigger('beforeClose')) { + return; + } + + F.unbindEvents(); + + if (!F.isActive) { + return; + } + + if (!F.isOpen || event === true) { + $('.fancybox-wrap').stop(true).trigger('onReset').remove(); + + F._afterZoomOut(); + + } else { + F.isOpen = F.isOpened = false; + F.isClosing = true; + + $('.fancybox-item, .fancybox-nav').remove(); + + F.wrap.stop(true, true).removeClass('fancybox-opened'); + + F.transitions[ F.current.closeMethod ](); + } + }, + + // Manage slideshow: + // $.fancybox.play(); - toggle slideshow + // $.fancybox.play( true ); - start + // $.fancybox.play( false ); - stop + play: function ( action ) { + var clear = function () { + clearTimeout(F.player.timer); + }, + set = function () { + clear(); + + if (F.current && F.player.isActive) { + F.player.timer = setTimeout(F.next, F.current.playSpeed); + } + }, + stop = function () { + clear(); + + D.unbind('.player'); + + F.player.isActive = false; + + F.trigger('onPlayEnd'); + }, + start = function () { + if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) { + F.player.isActive = true; + + D.bind({ + 'onCancel.player beforeClose.player' : stop, + 'onUpdate.player' : set, + 'beforeLoad.player' : clear + }); + + set(); + + F.trigger('onPlayStart'); + } + }; + + if (action === true || (!F.player.isActive && action !== false)) { + start(); + } else { + stop(); + } + }, + + // Navigate to next gallery item + next: function ( direction ) { + var current = F.current; + + if (current) { + if (!isString(direction)) { + direction = current.direction.next; + } + + F.jumpto(current.index + 1, direction, 'next'); + } + }, + + // Navigate to previous gallery item + prev: function ( direction ) { + var current = F.current; + + if (current) { + if (!isString(direction)) { + direction = current.direction.prev; + } + + F.jumpto(current.index - 1, direction, 'prev'); + } + }, + + // Navigate to gallery item by index + jumpto: function ( index, direction, router ) { + var current = F.current; + + if (!current) { + return; + } + + index = getScalar(index); + + F.direction = direction || current.direction[ (index >= current.index ? 'next' : 'prev') ]; + F.router = router || 'jumpto'; + + if (current.loop) { + if (index < 0) { + index = current.group.length + (index % current.group.length); + } + + index = index % current.group.length; + } + + if (current.group[ index ] !== undefined) { + F.cancel(); + + F._start(index); + } + }, + + // Center inside viewport and toggle position type to fixed or absolute if needed + reposition: function (e, onlyAbsolute) { + var current = F.current, + wrap = current ? current.wrap : null, + pos; + + if (wrap) { + pos = F._getPosition(onlyAbsolute); + + if (e && e.type === 'scroll') { + delete pos.position; + + wrap.stop(true, true).animate(pos, 200); + + } else { + wrap.css(pos); + + current.pos = $.extend({}, current.dim, pos); + } + } + }, + + update: function (e) { + var type = (e && e.type), + anyway = !type || type === 'orientationchange'; + + if (anyway) { + clearTimeout(didUpdate); + + didUpdate = null; + } + + if (!F.isOpen || didUpdate) { + return; + } + + didUpdate = setTimeout(function() { + var current = F.current; + + if (!current || F.isClosing) { + return; + } + + F.wrap.removeClass('fancybox-tmp'); + + if (anyway || type === 'load' || (type === 'resize' && current.autoResize)) { + F._setDimension(); + } + + if (!(type === 'scroll' && current.canShrink)) { + F.reposition(e); + } + + F.trigger('onUpdate'); + + didUpdate = null; + + }, (anyway && !isTouch ? 0 : 300)); + }, + + // Shrink content to fit inside viewport or restore if resized + toggle: function ( action ) { + if (F.isOpen) { + F.current.fitToView = $.type(action) === "boolean" ? action : !F.current.fitToView; + + // Help browser to restore document dimensions + if (isTouch) { + F.wrap.removeAttr('style').addClass('fancybox-tmp'); + + F.trigger('onUpdate'); + } + + F.update(); + } + }, + + hideLoading: function () { + D.unbind('.loading'); + + $('#fancybox-loading').remove(); + }, + + showLoading: function () { + var el, viewport; + + F.hideLoading(); + + el = $('
    ').click(F.cancel).appendTo('body'); + + // If user will press the escape-button, the request will be canceled + D.bind('keydown.loading', function(e) { + if ((e.which || e.keyCode) === 27) { + e.preventDefault(); + + F.cancel(); + } + }); + + if (!F.defaults.fixed) { + viewport = F.getViewport(); + + el.css({ + position : 'absolute', + top : (viewport.h * 0.5) + viewport.y, + left : (viewport.w * 0.5) + viewport.x + }); + } + }, + + getViewport: function () { + var locked = (F.current && F.current.locked) || false, + rez = { + x: W.scrollLeft(), + y: W.scrollTop() + }; + + if (locked) { + rez.w = locked[0].clientWidth; + rez.h = locked[0].clientHeight; + + } else { + // See http://bugs.jquery.com/ticket/6724 + rez.w = isTouch && window.innerWidth ? window.innerWidth : W.width(); + rez.h = isTouch && window.innerHeight ? window.innerHeight : W.height(); + } + + return rez; + }, + + // Unbind the keyboard / clicking actions + unbindEvents: function () { + if (F.wrap && isQuery(F.wrap)) { + F.wrap.unbind('.fb'); + } + + D.unbind('.fb'); + W.unbind('.fb'); + }, + + bindEvents: function () { + var current = F.current, + keys; + + if (!current) { + return; + } + + // Changing document height on iOS devices triggers a 'resize' event, + // that can change document height... repeating infinitely + W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update); + + keys = current.keys; + + if (keys) { + D.bind('keydown.fb', function (e) { + var code = e.which || e.keyCode, + target = e.target || e.srcElement; + + // Skip esc key if loading, because showLoading will cancel preloading + if (code === 27 && F.coming) { + return false; + } + + // Ignore key combinations and key events within form elements + if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) { + $.each(keys, function(i, val) { + if (current.group.length > 1 && val[ code ] !== undefined) { + F[ i ]( val[ code ] ); + + e.preventDefault(); + return false; + } + + if ($.inArray(code, val) > -1) { + F[ i ] (); + + e.preventDefault(); + return false; + } + }); + } + }); + } + + if ($.fn.mousewheel && current.mouseWheel) { + F.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) { + var target = e.target || null, + parent = $(target), + canScroll = false; + + while (parent.length) { + if (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) { + break; + } + + canScroll = isScrollable( parent[0] ); + parent = $(parent).parent(); + } + + if (delta !== 0 && !canScroll) { + if (F.group.length > 1 && !current.canShrink) { + if (deltaY > 0 || deltaX > 0) { + F.prev( deltaY > 0 ? 'down' : 'left' ); + + } else if (deltaY < 0 || deltaX < 0) { + F.next( deltaY < 0 ? 'up' : 'right' ); + } + + e.preventDefault(); + } + } + }); + } + }, + + trigger: function (event, o) { + var ret, obj = o || F.coming || F.current; + + if (!obj) { + return; + } + + if ($.isFunction( obj[event] )) { + ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1)); + } + + if (ret === false) { + return false; + } + + if (obj.helpers) { + $.each(obj.helpers, function (helper, opts) { + if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) { + F.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj); + } + }); + } + + D.trigger(event); + }, + + isImage: function (str) { + return isString(str) && str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i); + }, + + isSWF: function (str) { + return isString(str) && str.match(/\.(swf)((\?|#).*)?$/i); + }, + + _start: function (index) { + var coming = {}, + obj, + href, + type, + margin, + padding; + + index = getScalar( index ); + obj = F.group[ index ] || null; + + if (!obj) { + return false; + } + + coming = $.extend(true, {}, F.opts, obj); + + // Convert margin and padding properties to array - top, right, bottom, left + margin = coming.margin; + padding = coming.padding; + + if ($.type(margin) === 'number') { + coming.margin = [margin, margin, margin, margin]; + } + + if ($.type(padding) === 'number') { + coming.padding = [padding, padding, padding, padding]; + } + + // 'modal' propery is just a shortcut + if (coming.modal) { + $.extend(true, coming, { + closeBtn : false, + closeClick : false, + nextClick : false, + arrows : false, + mouseWheel : false, + keys : null, + helpers: { + overlay : { + closeClick : false + } + } + }); + } + + // 'autoSize' property is a shortcut, too + if (coming.autoSize) { + coming.autoWidth = coming.autoHeight = true; + } + + if (coming.width === 'auto') { + coming.autoWidth = true; + } + + if (coming.height === 'auto') { + coming.autoHeight = true; + } + + /* + * Add reference to the group, so it`s possible to access from callbacks, example: + * afterLoad : function() { + * this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : ''); + * } + */ + + coming.group = F.group; + coming.index = index; + + // Give a chance for callback or helpers to update coming item (type, title, etc) + F.coming = coming; + + if (false === F.trigger('beforeLoad')) { + F.coming = null; + + return; + } + + type = coming.type; + href = coming.href; + + if (!type) { + F.coming = null; + + //If we can not determine content type then drop silently or display next/prev item if looping through gallery + if (F.current && F.router && F.router !== 'jumpto') { + F.current.index = index; + + return F[ F.router ]( F.direction ); + } + + return false; + } + + F.isActive = true; + + if (type === 'image' || type === 'swf') { + coming.autoHeight = coming.autoWidth = false; + coming.scrolling = 'visible'; + } + + if (type === 'image') { + coming.aspectRatio = true; + } + + if (type === 'iframe' && isTouch) { + coming.scrolling = 'scroll'; + } + + // Build the neccessary markup + coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' ); + + $.extend(coming, { + skin : $('.fancybox-skin', coming.wrap), + outer : $('.fancybox-outer', coming.wrap), + inner : $('.fancybox-inner', coming.wrap) + }); + + $.each(["Top", "Right", "Bottom", "Left"], function(i, v) { + coming.skin.css('padding' + v, getValue(coming.padding[ i ])); + }); + + F.trigger('onReady'); + + // Check before try to load; 'inline' and 'html' types need content, others - href + if (type === 'inline' || type === 'html') { + if (!coming.content || !coming.content.length) { + return F._error( 'content' ); + } + + } else if (!href) { + return F._error( 'href' ); + } + + if (type === 'image') { + F._loadImage(); + + } else if (type === 'ajax') { + F._loadAjax(); + + } else if (type === 'iframe') { + F._loadIframe(); + + } else { + F._afterLoad(); + } + }, + + _error: function ( type ) { + $.extend(F.coming, { + type : 'html', + autoWidth : true, + autoHeight : true, + minWidth : 0, + minHeight : 0, + scrolling : 'no', + hasError : type, + content : F.coming.tpl.error + }); + + F._afterLoad(); + }, + + _loadImage: function () { + // Reset preload image so it is later possible to check "complete" property + var img = F.imgPreload = new Image(); + + img.onload = function () { + this.onload = this.onerror = null; + + F.coming.width = this.width / F.opts.pixelRatio; + F.coming.height = this.height / F.opts.pixelRatio; + + F._afterLoad(); + }; + + img.onerror = function () { + this.onload = this.onerror = null; + + F._error( 'image' ); + }; + + img.src = F.coming.href; + + if (img.complete !== true) { + F.showLoading(); + } + }, + + _loadAjax: function () { + var coming = F.coming; + + F.showLoading(); + + F.ajaxLoad = $.ajax($.extend({}, coming.ajax, { + url: coming.href, + error: function (jqXHR, textStatus) { + if (F.coming && textStatus !== 'abort') { + F._error( 'ajax', jqXHR ); + + } else { + F.hideLoading(); + } + }, + success: function (data, textStatus) { + if (textStatus === 'success') { + coming.content = data; + + F._afterLoad(); + } + } + })); + }, + + _loadIframe: function() { + var coming = F.coming, + iframe = $(coming.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime())) + .attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling) + .attr('src', coming.href); + + // This helps IE + $(coming.wrap).bind('onReset', function () { + try { + $(this).find('iframe').hide().attr('src', '//about:blank').end().empty(); + } catch (e) {} + }); + + if (coming.iframe.preload) { + F.showLoading(); + + iframe.one('load', function() { + $(this).data('ready', 1); + + // iOS will lose scrolling if we resize + if (!isTouch) { + $(this).bind('load.fb', F.update); + } + + // Without this trick: + // - iframe won't scroll on iOS devices + // - IE7 sometimes displays empty iframe + $(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show(); + + F._afterLoad(); + }); + } + + coming.content = iframe.appendTo( coming.inner ); + + if (!coming.iframe.preload) { + F._afterLoad(); + } + }, + + _preloadImages: function() { + var group = F.group, + current = F.current, + len = group.length, + cnt = current.preload ? Math.min(current.preload, len - 1) : 0, + item, + i; + + for (i = 1; i <= cnt; i += 1) { + item = group[ (current.index + i ) % len ]; + + if (item.type === 'image' && item.href) { + new Image().src = item.href; + } + } + }, + + _afterLoad: function () { + var coming = F.coming, + previous = F.current, + placeholder = 'fancybox-placeholder', + current, + content, + type, + scrolling, + href, + embed; + + F.hideLoading(); + + if (!coming || F.isActive === false) { + return; + } + + if (false === F.trigger('afterLoad', coming, previous)) { + coming.wrap.stop(true).trigger('onReset').remove(); + + F.coming = null; + + return; + } + + if (previous) { + F.trigger('beforeChange', previous); + + previous.wrap.stop(true).removeClass('fancybox-opened') + .find('.fancybox-item, .fancybox-nav') + .remove(); + } + + F.unbindEvents(); + + current = coming; + content = coming.content; + type = coming.type; + scrolling = coming.scrolling; + + $.extend(F, { + wrap : current.wrap, + skin : current.skin, + outer : current.outer, + inner : current.inner, + current : current, + previous : previous + }); + + href = current.href; + + switch (type) { + case 'inline': + case 'ajax': + case 'html': + if (current.selector) { + content = $('
    ').html(content).find(current.selector); + + } else if (isQuery(content)) { + if (!content.data(placeholder)) { + content.data(placeholder, $('
    ').insertAfter( content ).hide() ); + } + + content = content.show().detach(); + + current.wrap.bind('onReset', function () { + if ($(this).find(content).length) { + content.hide().replaceAll( content.data(placeholder) ).data(placeholder, false); + } + }); + } + break; + + case 'image': + content = current.tpl.image.replace('{href}', href); + break; + + case 'swf': + content = ''; + embed = ''; + + $.each(current.swf, function(name, val) { + content += ''; + embed += ' ' + name + '="' + val + '"'; + }); + + content += ''; + break; + } + + if (!(isQuery(content) && content.parent().is(current.inner))) { + current.inner.append( content ); + } + + // Give a chance for helpers or callbacks to update elements + F.trigger('beforeShow'); + + // Set scrolling before calculating dimensions + current.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling)); + + // Set initial dimensions and start position + F._setDimension(); + + F.reposition(); + + F.isOpen = false; + F.coming = null; + + F.bindEvents(); + + if (!F.isOpened) { + $('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove(); + + } else if (previous.prevMethod) { + F.transitions[ previous.prevMethod ](); + } + + F.transitions[ F.isOpened ? current.nextMethod : current.openMethod ](); + + F._preloadImages(); + }, + + _setDimension: function () { + var viewport = F.getViewport(), + steps = 0, + canShrink = false, + canExpand = false, + wrap = F.wrap, + skin = F.skin, + inner = F.inner, + current = F.current, + width = current.width, + height = current.height, + minWidth = current.minWidth, + minHeight = current.minHeight, + maxWidth = current.maxWidth, + maxHeight = current.maxHeight, + scrolling = current.scrolling, + scrollOut = current.scrollOutside ? current.scrollbarWidth : 0, + margin = current.margin, + wMargin = getScalar(margin[1] + margin[3]), + hMargin = getScalar(margin[0] + margin[2]), + wPadding, + hPadding, + wSpace, + hSpace, + origWidth, + origHeight, + origMaxWidth, + origMaxHeight, + ratio, + width_, + height_, + maxWidth_, + maxHeight_, + iframe, + body; + + // Reset dimensions so we could re-check actual size + wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp'); + + wPadding = getScalar(skin.outerWidth(true) - skin.width()); + hPadding = getScalar(skin.outerHeight(true) - skin.height()); + + // Any space between content and viewport (margin, padding, border, title) + wSpace = wMargin + wPadding; + hSpace = hMargin + hPadding; + + origWidth = isPercentage(width) ? (viewport.w - wSpace) * getScalar(width) / 100 : width; + origHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height; + + if (current.type === 'iframe') { + iframe = current.content; + + if (current.autoHeight && iframe.data('ready') === 1) { + try { + if (iframe[0].contentWindow.document.location) { + inner.width( origWidth ).height(9999); + + body = iframe.contents().find('body'); + + if (scrollOut) { + body.css('overflow-x', 'hidden'); + } + + origHeight = body.outerHeight(true); + } + + } catch (e) {} + } + + } else if (current.autoWidth || current.autoHeight) { + inner.addClass( 'fancybox-tmp' ); + + // Set width or height in case we need to calculate only one dimension + if (!current.autoWidth) { + inner.width( origWidth ); + } + + if (!current.autoHeight) { + inner.height( origHeight ); + } + + if (current.autoWidth) { + origWidth = inner.width(); + } + + if (current.autoHeight) { + origHeight = inner.height(); + } + + inner.removeClass( 'fancybox-tmp' ); + } + + width = getScalar( origWidth ); + height = getScalar( origHeight ); + + ratio = origWidth / origHeight; + + // Calculations for the content + minWidth = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth); + maxWidth = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth); + + minHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight); + maxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight); + + // These will be used to determine if wrap can fit in the viewport + origMaxWidth = maxWidth; + origMaxHeight = maxHeight; + + if (current.fitToView) { + maxWidth = Math.min(viewport.w - wSpace, maxWidth); + maxHeight = Math.min(viewport.h - hSpace, maxHeight); + } + + maxWidth_ = viewport.w - wMargin; + maxHeight_ = viewport.h - hMargin; + + if (current.aspectRatio) { + if (width > maxWidth) { + width = maxWidth; + height = getScalar(width / ratio); + } + + if (height > maxHeight) { + height = maxHeight; + width = getScalar(height * ratio); + } + + if (width < minWidth) { + width = minWidth; + height = getScalar(width / ratio); + } + + if (height < minHeight) { + height = minHeight; + width = getScalar(height * ratio); + } + + } else { + width = Math.max(minWidth, Math.min(width, maxWidth)); + + if (current.autoHeight && current.type !== 'iframe') { + inner.width( width ); + + height = inner.height(); + } + + height = Math.max(minHeight, Math.min(height, maxHeight)); + } + + // Try to fit inside viewport (including the title) + if (current.fitToView) { + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + // Real wrap dimensions + width_ = wrap.width(); + height_ = wrap.height(); + + if (current.aspectRatio) { + while ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) { + if (steps++ > 19) { + break; + } + + height = Math.max(minHeight, Math.min(maxHeight, height - 10)); + width = getScalar(height * ratio); + + if (width < minWidth) { + width = minWidth; + height = getScalar(width / ratio); + } + + if (width > maxWidth) { + width = maxWidth; + height = getScalar(width / ratio); + } + + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + width_ = wrap.width(); + height_ = wrap.height(); + } + + } else { + width = Math.max(minWidth, Math.min(width, width - (width_ - maxWidth_))); + height = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_))); + } + } + + if (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) { + width += scrollOut; + } + + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + width_ = wrap.width(); + height_ = wrap.height(); + + canShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight; + canExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight)); + + $.extend(current, { + dim : { + width : getValue( width_ ), + height : getValue( height_ ) + }, + origWidth : origWidth, + origHeight : origHeight, + canShrink : canShrink, + canExpand : canExpand, + wPadding : wPadding, + hPadding : hPadding, + wrapSpace : height_ - skin.outerHeight(true), + skinSpace : skin.height() - height + }); + + if (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) { + inner.height('auto'); + } + }, + + _getPosition: function (onlyAbsolute) { + var current = F.current, + viewport = F.getViewport(), + margin = current.margin, + width = F.wrap.width() + margin[1] + margin[3], + height = F.wrap.height() + margin[0] + margin[2], + rez = { + position: 'absolute', + top : margin[0], + left : margin[3] + }; + + if (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) { + rez.position = 'fixed'; + + } else if (!current.locked) { + rez.top += viewport.y; + rez.left += viewport.x; + } + + rez.top = getValue(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio))); + rez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width) * current.leftRatio))); + + return rez; + }, + + _afterZoomIn: function () { + var current = F.current; + + if (!current) { + return; + } + + F.isOpen = F.isOpened = true; + + F.wrap.css('overflow', 'visible').addClass('fancybox-opened'); + + F.update(); + + // Assign a click event + if ( current.closeClick || (current.nextClick && F.group.length > 1) ) { + F.inner.css('cursor', 'pointer').bind('click.fb', function(e) { + if (!$(e.target).is('a') && !$(e.target).parent().is('a')) { + e.preventDefault(); + + F[ current.closeClick ? 'close' : 'next' ](); + } + }); + } + + // Create a close button + if (current.closeBtn) { + $(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) { + e.preventDefault(); + + F.close(); + }); + } + + // Create navigation arrows + if (current.arrows && F.group.length > 1) { + if (current.loop || current.index > 0) { + $(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev); + } + + if (current.loop || current.index < F.group.length - 1) { + $(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next); + } + } + + F.trigger('afterShow'); + + // Stop the slideshow if this is the last item + if (!current.loop && current.index === current.group.length - 1) { + F.play( false ); + + } else if (F.opts.autoPlay && !F.player.isActive) { + F.opts.autoPlay = false; + + F.play(); + } + }, + + _afterZoomOut: function ( obj ) { + obj = obj || F.current; + + $('.fancybox-wrap').trigger('onReset').remove(); + + $.extend(F, { + group : {}, + opts : {}, + router : false, + current : null, + isActive : false, + isOpened : false, + isOpen : false, + isClosing : false, + wrap : null, + skin : null, + outer : null, + inner : null + }); + + F.trigger('afterClose', obj); + } + }); + + /* + * Default transitions + */ + + F.transitions = { + getOrigPosition: function () { + var current = F.current, + element = current.element, + orig = current.orig, + pos = {}, + width = 50, + height = 50, + hPadding = current.hPadding, + wPadding = current.wPadding, + viewport = F.getViewport(); + + if (!orig && current.isDom && element.is(':visible')) { + orig = element.find('img:first'); + + if (!orig.length) { + orig = element; + } + } + + if (isQuery(orig)) { + pos = orig.offset(); + + if (orig.is('img')) { + width = orig.outerWidth(); + height = orig.outerHeight(); + } + + } else { + pos.top = viewport.y + (viewport.h - height) * current.topRatio; + pos.left = viewport.x + (viewport.w - width) * current.leftRatio; + } + + if (F.wrap.css('position') === 'fixed' || current.locked) { + pos.top -= viewport.y; + pos.left -= viewport.x; + } + + pos = { + top : getValue(pos.top - hPadding * current.topRatio), + left : getValue(pos.left - wPadding * current.leftRatio), + width : getValue(width + wPadding), + height : getValue(height + hPadding) + }; + + return pos; + }, + + step: function (now, fx) { + var ratio, + padding, + value, + prop = fx.prop, + current = F.current, + wrapSpace = current.wrapSpace, + skinSpace = current.skinSpace; + + if (prop === 'width' || prop === 'height') { + ratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start); + + if (F.isClosing) { + ratio = 1 - ratio; + } + + padding = prop === 'width' ? current.wPadding : current.hPadding; + value = now - padding; + + F.skin[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) ) ); + F.inner[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) ); + } + }, + + zoomIn: function () { + var current = F.current, + startPos = current.pos, + effect = current.openEffect, + elastic = effect === 'elastic', + endPos = $.extend({opacity : 1}, startPos); + + // Remove "position" property that breaks older IE + delete endPos.position; + + if (elastic) { + startPos = this.getOrigPosition(); + + if (current.openOpacity) { + startPos.opacity = 0.1; + } + + } else if (effect === 'fade') { + startPos.opacity = 0.1; + } + + F.wrap.css(startPos).animate(endPos, { + duration : effect === 'none' ? 0 : current.openSpeed, + easing : current.openEasing, + step : elastic ? this.step : null, + complete : F._afterZoomIn + }); + }, + + zoomOut: function () { + var current = F.current, + effect = current.closeEffect, + elastic = effect === 'elastic', + endPos = {opacity : 0.1}; + + if (elastic) { + endPos = this.getOrigPosition(); + + if (current.closeOpacity) { + endPos.opacity = 0.1; + } + } + + F.wrap.animate(endPos, { + duration : effect === 'none' ? 0 : current.closeSpeed, + easing : current.closeEasing, + step : elastic ? this.step : null, + complete : F._afterZoomOut + }); + }, + + changeIn: function () { + var current = F.current, + effect = current.nextEffect, + startPos = current.pos, + endPos = { opacity : 1 }, + direction = F.direction, + distance = 200, + field; + + startPos.opacity = 0.1; + + if (effect === 'elastic') { + field = direction === 'down' || direction === 'up' ? 'top' : 'left'; + + if (direction === 'down' || direction === 'right') { + startPos[ field ] = getValue(getScalar(startPos[ field ]) - distance); + endPos[ field ] = '+=' + distance + 'px'; + + } else { + startPos[ field ] = getValue(getScalar(startPos[ field ]) + distance); + endPos[ field ] = '-=' + distance + 'px'; + } + } + + // Workaround for http://bugs.jquery.com/ticket/12273 + if (effect === 'none') { + F._afterZoomIn(); + + } else { + F.wrap.css(startPos).animate(endPos, { + duration : current.nextSpeed, + easing : current.nextEasing, + complete : F._afterZoomIn + }); + } + }, + + changeOut: function () { + var previous = F.previous, + effect = previous.prevEffect, + endPos = { opacity : 0.1 }, + direction = F.direction, + distance = 200; + + if (effect === 'elastic') { + endPos[ direction === 'down' || direction === 'up' ? 'top' : 'left' ] = ( direction === 'up' || direction === 'left' ? '-' : '+' ) + '=' + distance + 'px'; + } + + previous.wrap.animate(endPos, { + duration : effect === 'none' ? 0 : previous.prevSpeed, + easing : previous.prevEasing, + complete : function () { + $(this).trigger('onReset').remove(); + } + }); + } + }; + + /* + * Overlay helper + */ + + F.helpers.overlay = { + defaults : { + closeClick : true, // if true, fancyBox will be closed when user clicks on the overlay + speedOut : 200, // duration of fadeOut animation + showEarly : true, // indicates if should be opened immediately or wait until the content is ready + css : {}, // custom CSS properties + locked : !isTouch, // if true, the content will be locked into overlay + fixed : true // if false, the overlay CSS position property will not be set to "fixed" + }, + + overlay : null, // current handle + fixed : false, // indicates if the overlay has position "fixed" + el : $('html'), // element that contains "the lock" + + // Public methods + create : function(opts) { + opts = $.extend({}, this.defaults, opts); + + if (this.overlay) { + this.close(); + } + + this.overlay = $('
    ').appendTo( F.coming ? F.coming.parent : opts.parent ); + this.fixed = false; + + if (opts.fixed && F.defaults.fixed) { + this.overlay.addClass('fancybox-overlay-fixed'); + + this.fixed = true; + } + }, + + open : function(opts) { + var that = this; + + opts = $.extend({}, this.defaults, opts); + + if (this.overlay) { + this.overlay.unbind('.overlay').width('auto').height('auto'); + + } else { + this.create(opts); + } + + if (!this.fixed) { + W.bind('resize.overlay', $.proxy( this.update, this) ); + + this.update(); + } + + if (opts.closeClick) { + this.overlay.bind('click.overlay', function(e) { + if ($(e.target).hasClass('fancybox-overlay')) { + if (F.isActive) { + F.close(); + } else { + that.close(); + } + + return false; + } + }); + } + + this.overlay.css( opts.css ).show(); + }, + + close : function() { + var scrollV, scrollH; + + W.unbind('resize.overlay'); + + if (this.el.hasClass('fancybox-lock')) { + $('.fancybox-margin').removeClass('fancybox-margin'); + + scrollV = W.scrollTop(); + scrollH = W.scrollLeft(); + + this.el.removeClass('fancybox-lock'); + + W.scrollTop( scrollV ).scrollLeft( scrollH ); + } + + $('.fancybox-overlay').remove().hide(); + + $.extend(this, { + overlay : null, + fixed : false + }); + }, + + // Private, callbacks + + update : function () { + var width = '100%', offsetWidth; + + // Reset width/height so it will not mess + this.overlay.width(width).height('100%'); + + // jQuery does not return reliable result for IE + if (IE) { + offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth); + + if (D.width() > offsetWidth) { + width = D.width(); + } + + } else if (D.width() > W.width()) { + width = D.width(); + } + + this.overlay.width(width).height(D.height()); + }, + + // This is where we can manipulate DOM, because later it would cause iframes to reload + onReady : function (opts, obj) { + var overlay = this.overlay; + + $('.fancybox-overlay').stop(true, true); + + if (!overlay) { + this.create(opts); + } + + if (opts.locked && this.fixed && obj.fixed) { + if (!overlay) { + this.margin = D.height() > W.height() ? $('html').css('margin-right').replace("px", "") : false; + } + + obj.locked = this.overlay.append( obj.wrap ); + obj.fixed = false; + } + + if (opts.showEarly === true) { + this.beforeShow.apply(this, arguments); + } + }, + + beforeShow : function(opts, obj) { + var scrollV, scrollH; + + if (obj.locked) { + if (this.margin !== false) { + $('*').filter(function(){ + return ($(this).css('position') === 'fixed' && !$(this).hasClass("fancybox-overlay") && !$(this).hasClass("fancybox-wrap") ); + }).addClass('fancybox-margin'); + + this.el.addClass('fancybox-margin'); + } + + scrollV = W.scrollTop(); + scrollH = W.scrollLeft(); + + this.el.addClass('fancybox-lock'); + + W.scrollTop( scrollV ).scrollLeft( scrollH ); + } + + this.open(opts); + }, + + onUpdate : function() { + if (!this.fixed) { + this.update(); + } + }, + + afterClose: function (opts) { + // Remove overlay if exists and fancyBox is not opening + // (e.g., it is not being open using afterClose callback) + //if (this.overlay && !F.isActive) { + if (this.overlay && !F.coming) { + this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this )); + } + } + }; + + /* + * Title helper + */ + + F.helpers.title = { + defaults : { + type : 'float', // 'float', 'inside', 'outside' or 'over', + position : 'bottom' // 'top' or 'bottom' + }, + + beforeShow: function (opts) { + var current = F.current, + text = current.title, + type = opts.type, + title, + target; + + if ($.isFunction(text)) { + text = text.call(current.element, current); + } + + if (!isString(text) || $.trim(text) === '') { + return; + } + + title = $('
    ' + text + '
    '); + + switch (type) { + case 'inside': + target = F.skin; + break; + + case 'outside': + target = F.wrap; + break; + + case 'over': + target = F.inner; + break; + + default: // 'float' + target = F.skin; + + title.appendTo('body'); + + if (IE) { + title.width( title.width() ); + } + + title.wrapInner(''); + + //Increase bottom margin so this title will also fit into viewport + F.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) ); + break; + } + + title[ (opts.position === 'top' ? 'prependTo' : 'appendTo') ](target); + } + }; + + // jQuery plugin initialization + $.fn.fancybox = function (options) { + var index, + that = $(this), + selector = this.selector || '', + run = function(e) { + var what = $(this).blur(), idx = index, relType, relVal; + + if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) { + relType = options.groupAttr || 'data-fancybox-group'; + relVal = what.attr(relType); + + if (!relVal) { + relType = 'rel'; + relVal = what.get(0)[ relType ]; + } + + if (relVal && relVal !== '' && relVal !== 'nofollow') { + what = selector.length ? $(selector) : that; + what = what.filter('[' + relType + '="' + relVal + '"]'); + idx = what.index(this); + } + + options.index = idx; + + // Stop an event from bubbling if everything is fine + if (F.open(what, options) !== false) { + e.preventDefault(); + } + } + }; + + options = options || {}; + index = options.index || 0; + + if (!selector || options.live === false) { + that.unbind('click.fb-start').bind('click.fb-start', run); + + } else { + D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.fancybox-item, .fancybox-nav')", 'click.fb-start', run); + } + + this.filter('[data-fancybox-start=1]').trigger('click'); + + return this; + }; + + // Tests that need a body at doc ready + D.ready(function() { + var w1, w2; + + if ( $.scrollbarWidth === undefined ) { + // http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth + $.scrollbarWidth = function() { + var parent = $('
    ').appendTo('body'), + child = parent.children(), + width = child.innerWidth() - child.height( 99 ).innerWidth(); + + parent.remove(); + + return width; + }; + } + + if ( $.support.fixedPosition === undefined ) { + $.support.fixedPosition = (function() { + var elem = $('
    ').appendTo('body'), + fixed = ( elem[0].offsetTop === 20 || elem[0].offsetTop === 15 ); + + elem.remove(); + + return fixed; + }()); + } + + $.extend(F.defaults, { + scrollbarWidth : $.scrollbarWidth(), + fixed : $.support.fixedPosition, + parent : $('body') + }); + + //Get real width of page scroll-bar + w1 = $(window).width(); + + H.addClass('fancybox-lock-test'); + + w2 = $(window).width(); + + H.removeClass('fancybox-lock-test'); + + $("").appendTo("head"); + }); + +}(window, document, jQuery)); \ No newline at end of file diff --git a/fancybox/source/jquery.fancybox.pack.js b/fancybox/source/jquery.fancybox.pack.js new file mode 100644 index 0000000..73f7578 --- /dev/null +++ b/fancybox/source/jquery.fancybox.pack.js @@ -0,0 +1,46 @@ +/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ +(function(r,G,f,v){var J=f("html"),n=f(r),p=f(G),b=f.fancybox=function(){b.open.apply(this,arguments)},I=navigator.userAgent.match(/msie/i),B=null,s=G.createTouch!==v,t=function(a){return a&&a.hasOwnProperty&&a instanceof f},q=function(a){return a&&"string"===f.type(a)},E=function(a){return q(a)&&0
    ',image:'',iframe:'",error:'

    The requested content cannot be loaded.
    Please try again later.

    ',closeBtn:'',next:'',prev:''},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0, +openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1, +isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=t(a)?f(a).get():[a]),f.each(a,function(e,c){var k={},g,h,j,m,l;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),t(c)?(k={href:c.data("fancybox-href")||c.attr("href"),title:c.data("fancybox-title")||c.attr("title"),isDom:!0,element:c},f.metadata&&f.extend(!0,k, +c.metadata())):k=c);g=d.href||k.href||(q(c)?c:null);h=d.title!==v?d.title:k.title||"";m=(j=d.content||k.content)?"html":d.type||k.type;!m&&k.isDom&&(m=c.data("fancybox-type"),m||(m=(m=c.prop("class").match(/fancybox\.(\w+)/))?m[1]:null));q(g)&&(m||(b.isImage(g)?m="image":b.isSWF(g)?m="swf":"#"===g.charAt(0)?m="inline":q(c)&&(m="html",j=c)),"ajax"===m&&(l=g.split(/\s+/,2),g=l.shift(),l=l.shift()));j||("inline"===m?g?j=f(q(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):k.isDom&&(j=c):"html"===m?j=g:!m&&(!g&& +k.isDom)&&(m="inline",j=c));f.extend(k,{href:g,type:m,content:j,title:h,selector:l});a[e]=k}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==v&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1!==b.trigger("onCancel")&&(b.hideLoading(),b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(),b.coming=null,b.current|| +b._afterZoomOut(a))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(!b.isOpen||!0===a?(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut()):(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&&(b.player.timer= +setTimeout(b.next,b.current.playSpeed))},c=function(){d();p.unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};if(!0===a||!b.player.isActive&&!1!==a){if(b.current&&(b.current.loop||b.current.index=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==v&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,k;c&&(k=b._getPosition(d),a&&"scroll"===a.type?(delete k.position,c.stop(!0,!0).animate(k,200)):(c.css(k),e.pos=f.extend({},e.dim,k)))},update:function(a){var d= +a&&a.type,e=!d||"orientationchange"===d;e&&(clearTimeout(B),B=null);b.isOpen&&!B&&(B=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),B=null)},e&&!s?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,s&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"),b.trigger("onUpdate")), +b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('
    ').click(b.cancel).appendTo("body");p.bind("keydown.loading",function(a){if(27===(a.which||a.keyCode))a.preventDefault(),b.cancel()});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}))},getViewport:function(){var a=b.current&&b.current.locked||!1,d={x:n.scrollLeft(), +y:n.scrollTop()};a?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=s&&r.innerWidth?r.innerWidth:n.width(),d.h=s&&r.innerHeight?r.innerHeight:n.height());return d},unbindEvents:function(){b.wrap&&t(b.wrap)&&b.wrap.unbind(".fb");p.unbind(".fb");n.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(n.bind("orientationchange.fb"+(s?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&p.bind("keydown.fb",function(e){var c=e.which||e.keyCode,k=e.target||e.srcElement; +if(27===c&&b.coming)return!1;!e.ctrlKey&&(!e.altKey&&!e.shiftKey&&!e.metaKey&&(!k||!k.type&&!f(k).is("[contenteditable]")))&&f.each(d,function(d,k){if(1h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();if(0!==c&&!j&&1g||0>k)b.next(0>g?"up":"right");d.preventDefault()}}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,e){if(e&&b.helpers[d]&&f.isFunction(b.helpers[d][a]))b.helpers[d][a](f.extend(!0, +{},b.helpers[d].defaults,e),c)});p.trigger(a)}},isImage:function(a){return q(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(a){return q(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=l(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&(d.padding=[c,c,c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1, +mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=!0;if("image"===c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio= +!0);"iframe"===c&&s&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(s?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,w(d.padding[a]))});b.trigger("onReady");if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href"); +"image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width=this.width/b.opts.pixelRatio;b.coming.height=this.height/b.opts.pixelRatio;b._afterLoad()};a.onerror=function(){this.onload= +this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming,d=f(a.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",s?"auto":a.iframe.scrolling).attr("src",a.href); +f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);s||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload||b._afterLoad()},_preloadImages:function(){var a=b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload, +e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,k,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());b.unbindEvents();e=a.content;c=a.type;k=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin, +outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("
    ").html(e).find(a.selector):t(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('
    ').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder",!1)}));break;case "image":e=a.tpl.image.replace("{href}", +g);break;case "swf":e='',h="",f.each(a.swf,function(a,b){e+='';h+=" "+a+'="'+b+'"'}),e+='"}(!t(e)||!e.parent().is(a.inner))&&a.inner.append(e);b.trigger("beforeShow");a.inner.css("overflow","yes"===k?"scroll": +"no"===k?"hidden":k);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(b.isOpened){if(d.prevMethod)b.transitions[d.prevMethod]()}else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,k=b.skin,g=b.inner,h=b.current,c=h.width,j=h.height,m=h.minWidth,u=h.minHeight,n=h.maxWidth,p=h.maxHeight,s=h.scrolling,q=h.scrollOutside? +h.scrollbarWidth:0,x=h.margin,y=l(x[1]+x[3]),r=l(x[0]+x[2]),v,z,t,C,A,F,B,D,H;e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp");x=l(k.outerWidth(!0)-k.width());v=l(k.outerHeight(!0)-k.height());z=y+x;t=r+v;C=E(c)?(a.w-z)*l(c)/100:c;A=E(j)?(a.h-t)*l(j)/100:j;if("iframe"===h.type){if(H=h.content,h.autoHeight&&1===H.data("ready"))try{H[0].contentWindow.document.location&&(g.width(C).height(9999),F=H.contents().find("body"),q&&F.css("overflow-x","hidden"),A=F.outerHeight(!0))}catch(G){}}else if(h.autoWidth|| +h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(C),h.autoHeight||g.height(A),h.autoWidth&&(C=g.width()),h.autoHeight&&(A=g.height()),g.removeClass("fancybox-tmp");c=l(C);j=l(A);D=C/A;m=l(E(m)?l(m,"w")-z:m);n=l(E(n)?l(n,"w")-z:n);u=l(E(u)?l(u,"h")-t:u);p=l(E(p)?l(p,"h")-t:p);F=n;B=p;h.fitToView&&(n=Math.min(a.w-z,n),p=Math.min(a.h-t,p));z=a.w-y;r=a.h-r;h.aspectRatio?(c>n&&(c=n,j=l(c/D)),j>p&&(j=p,c=l(j*D)),cz||y>r)&&(c>m&&j>u)&&!(19n&&(c=n,j=l(c/D)),g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height();else c=Math.max(m,Math.min(c,c-(a-z))),j=Math.max(u,Math.min(j,j-(y-r)));q&&("auto"===s&&jz||y>r)&&c>m&&j>u;c=h.aspectRatio?cu&&j
    ').appendTo(b.coming?b.coming.parent:a.parent);this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(n.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay",function(a){if(f(a.target).hasClass("fancybox-overlay"))return b.isActive? +b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function(){var a,b;n.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fancybox-margin").removeClass("fancybox-margin"),a=n.scrollTop(),b=n.scrollLeft(),this.el.removeClass("fancybox-lock"),n.scrollTop(a).scrollLeft(b));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,fixed:!1})},update:function(){var a="100%",b;this.overlay.width(a).height("100%");I?(b=Math.max(G.documentElement.offsetWidth,G.body.offsetWidth), +p.width()>b&&(a=p.width())):p.width()>n.width()&&(a=p.width());this.overlay.width(a).height(p.height())},onReady:function(a,b){var e=this.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.locked&&(this.fixed&&b.fixed)&&(e||(this.margin=p.height()>n.height()?f("html").css("margin-right").replace("px",""):!1),b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){var e,c;b.locked&&(!1!==this.margin&&(f("*").filter(function(){return"fixed"=== +f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin")),e=n.scrollTop(),c=n.scrollLeft(),this.el.addClass("fancybox-lock"),n.scrollTop(e).scrollLeft(c));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(a){var d= +b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(q(e)&&""!==f.trim(e)){d=f('
    '+e+"
    ");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),I&&d.width(d.width()),d.wrapInner(''),b.current.margin[2]+=Math.abs(l(d.css("margin-bottom")))}d["top"===a.position?"prependTo":"appendTo"](c)}}};f.fn.fancybox=function(a){var d, +e=f(this),c=this.selector||"",k=function(g){var h=f(this).blur(),j=d,k,l;!g.ctrlKey&&(!g.altKey&&!g.shiftKey&&!g.metaKey)&&!h.is(".fancybox-wrap")&&(k=a.groupAttr||"data-fancybox-group",l=h.attr(k),l||(k="rel",l=h.get(0)[k]),l&&(""!==l&&"nofollow"!==l)&&(h=c.length?f(c):e,h=h.filter("["+k+'="'+l+'"]'),j=h.index(this)),a.index=j,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;!c||!1===a.live?e.unbind("click.fb-start").bind("click.fb-start",k):p.undelegate(c,"click.fb-start").delegate(c+ +":not('.fancybox-item, .fancybox-nav')","click.fb-start",k);this.filter("[data-fancybox-start=1]").trigger("click");return this};p.ready(function(){var a,d;f.scrollbarWidth===v&&(f.scrollbarWidth=function(){var a=f('
    ').appendTo("body"),b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});if(f.support.fixedPosition===v){a=f.support;d=f('
    ').appendTo("body");var e=20=== +d[0].offsetTop||15===d[0].offsetTop;d.remove();a.fixedPosition=e}f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")});a=f(r).width();J.addClass("fancybox-lock-test");d=f(r).width();J.removeClass("fancybox-lock-test");f("").appendTo("head")})})(window,document,jQuery); \ No newline at end of file diff --git a/fancybox/sprite.psd b/fancybox/sprite.psd new file mode 100644 index 0000000..6f2032d Binary files /dev/null and b/fancybox/sprite.psd differ diff --git a/fonts/notosanskr/NotoSanskr-Black.eot b/fonts/notosanskr/NotoSanskr-Black.eot new file mode 100644 index 0000000..e78db8c Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Black.eot differ diff --git a/fonts/notosanskr/NotoSanskr-Black.otf b/fonts/notosanskr/NotoSanskr-Black.otf new file mode 100644 index 0000000..b847af0 Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Black.otf differ diff --git a/fonts/notosanskr/NotoSanskr-Black.woff b/fonts/notosanskr/NotoSanskr-Black.woff new file mode 100644 index 0000000..f72661e Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Black.woff differ diff --git a/fonts/notosanskr/NotoSanskr-Bold.eot b/fonts/notosanskr/NotoSanskr-Bold.eot new file mode 100644 index 0000000..72c200a Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Bold.eot differ diff --git a/fonts/notosanskr/NotoSanskr-Bold.otf b/fonts/notosanskr/NotoSanskr-Bold.otf new file mode 100644 index 0000000..ae03532 Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Bold.otf differ diff --git a/fonts/notosanskr/NotoSanskr-Bold.woff b/fonts/notosanskr/NotoSanskr-Bold.woff new file mode 100644 index 0000000..6a0cb7f Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Bold.woff differ diff --git a/fonts/notosanskr/NotoSanskr-DemiLight.eot b/fonts/notosanskr/NotoSanskr-DemiLight.eot new file mode 100644 index 0000000..a406775 Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-DemiLight.eot differ diff --git a/fonts/notosanskr/NotoSanskr-DemiLight.otf b/fonts/notosanskr/NotoSanskr-DemiLight.otf new file mode 100644 index 0000000..88c16f7 Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-DemiLight.otf differ diff --git a/fonts/notosanskr/NotoSanskr-DemiLight.woff b/fonts/notosanskr/NotoSanskr-DemiLight.woff new file mode 100644 index 0000000..78052e5 Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-DemiLight.woff differ diff --git a/fonts/notosanskr/NotoSanskr-Light.eot b/fonts/notosanskr/NotoSanskr-Light.eot new file mode 100644 index 0000000..63ead0d Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Light.eot differ diff --git a/fonts/notosanskr/NotoSanskr-Light.otf b/fonts/notosanskr/NotoSanskr-Light.otf new file mode 100644 index 0000000..9ace51e Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Light.otf differ diff --git a/fonts/notosanskr/NotoSanskr-Light.woff b/fonts/notosanskr/NotoSanskr-Light.woff new file mode 100644 index 0000000..1b1e42c Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Light.woff differ diff --git a/fonts/notosanskr/NotoSanskr-Medium.eot b/fonts/notosanskr/NotoSanskr-Medium.eot new file mode 100644 index 0000000..f29dbcf Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Medium.eot differ diff --git a/fonts/notosanskr/NotoSanskr-Medium.otf b/fonts/notosanskr/NotoSanskr-Medium.otf new file mode 100644 index 0000000..db37a9a Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Medium.otf differ diff --git a/fonts/notosanskr/NotoSanskr-Medium.woff b/fonts/notosanskr/NotoSanskr-Medium.woff new file mode 100644 index 0000000..7d8b8ea Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Medium.woff differ diff --git a/fonts/notosanskr/NotoSanskr-Regular.eot b/fonts/notosanskr/NotoSanskr-Regular.eot new file mode 100644 index 0000000..93d4cb7 Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Regular.eot differ diff --git a/fonts/notosanskr/NotoSanskr-Regular.otf b/fonts/notosanskr/NotoSanskr-Regular.otf new file mode 100644 index 0000000..e6fc499 Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Regular.otf differ diff --git a/fonts/notosanskr/NotoSanskr-Regular.woff b/fonts/notosanskr/NotoSanskr-Regular.woff new file mode 100644 index 0000000..23acdd3 Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Regular.woff differ diff --git a/fonts/notosanskr/NotoSanskr-Thin.eot b/fonts/notosanskr/NotoSanskr-Thin.eot new file mode 100644 index 0000000..911a02b Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Thin.eot differ diff --git a/fonts/notosanskr/NotoSanskr-Thin.otf b/fonts/notosanskr/NotoSanskr-Thin.otf new file mode 100644 index 0000000..4f7cecc Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Thin.otf differ diff --git a/fonts/notosanskr/NotoSanskr-Thin.woff b/fonts/notosanskr/NotoSanskr-Thin.woff new file mode 100644 index 0000000..ba74c0e Binary files /dev/null and b/fonts/notosanskr/NotoSanskr-Thin.woff differ diff --git a/images/bbs/arrow_down.gif b/images/bbs/arrow_down.gif new file mode 100644 index 0000000..f3d9cf4 Binary files /dev/null and b/images/bbs/arrow_down.gif differ diff --git a/images/bbs/arrow_up.gif b/images/bbs/arrow_up.gif new file mode 100644 index 0000000..046ce93 Binary files /dev/null and b/images/bbs/arrow_up.gif differ diff --git a/images/bbs/btn_first.gif b/images/bbs/btn_first.gif new file mode 100644 index 0000000..8091cf0 Binary files /dev/null and b/images/bbs/btn_first.gif differ diff --git a/images/bbs/btn_first.png b/images/bbs/btn_first.png new file mode 100644 index 0000000..d0e4ee1 Binary files /dev/null and b/images/bbs/btn_first.png differ diff --git a/images/bbs/btn_first_on.png b/images/bbs/btn_first_on.png new file mode 100644 index 0000000..94cf9f7 Binary files /dev/null and b/images/bbs/btn_first_on.png differ diff --git a/images/bbs/btn_last.gif b/images/bbs/btn_last.gif new file mode 100644 index 0000000..1f31572 Binary files /dev/null and b/images/bbs/btn_last.gif differ diff --git a/images/bbs/btn_last.png b/images/bbs/btn_last.png new file mode 100644 index 0000000..95a2151 Binary files /dev/null and b/images/bbs/btn_last.png differ diff --git a/images/bbs/btn_last_on.png b/images/bbs/btn_last_on.png new file mode 100644 index 0000000..2cfdd88 Binary files /dev/null and b/images/bbs/btn_last_on.png differ diff --git a/images/bbs/btn_next.gif b/images/bbs/btn_next.gif new file mode 100644 index 0000000..bdfde21 Binary files /dev/null and b/images/bbs/btn_next.gif differ diff --git a/images/bbs/btn_next.png b/images/bbs/btn_next.png new file mode 100644 index 0000000..5eeec48 Binary files /dev/null and b/images/bbs/btn_next.png differ diff --git a/images/bbs/btn_next_on.png b/images/bbs/btn_next_on.png new file mode 100644 index 0000000..ec53bda Binary files /dev/null and b/images/bbs/btn_next_on.png differ diff --git a/images/bbs/btn_prev.gif b/images/bbs/btn_prev.gif new file mode 100644 index 0000000..46f8b92 Binary files /dev/null and b/images/bbs/btn_prev.gif differ diff --git a/images/bbs/btn_prev.png b/images/bbs/btn_prev.png new file mode 100644 index 0000000..28b2dbf Binary files /dev/null and b/images/bbs/btn_prev.png differ diff --git a/images/bbs/btn_prev_on.png b/images/bbs/btn_prev_on.png new file mode 100644 index 0000000..7f047fd Binary files /dev/null and b/images/bbs/btn_prev_on.png differ diff --git a/images/bbs/cal_bt_next.png b/images/bbs/cal_bt_next.png new file mode 100644 index 0000000..9a1291b Binary files /dev/null and b/images/bbs/cal_bt_next.png differ diff --git a/images/bbs/cal_bt_prev.png b/images/bbs/cal_bt_prev.png new file mode 100644 index 0000000..4b5b7a8 Binary files /dev/null and b/images/bbs/cal_bt_prev.png differ diff --git a/images/bbs/faq_a.png b/images/bbs/faq_a.png new file mode 100644 index 0000000..4b42f16 Binary files /dev/null and b/images/bbs/faq_a.png differ diff --git a/images/bbs/faq_off.png b/images/bbs/faq_off.png new file mode 100644 index 0000000..4790c8e Binary files /dev/null and b/images/bbs/faq_off.png differ diff --git a/images/bbs/faq_on.png b/images/bbs/faq_on.png new file mode 100644 index 0000000..0bfe8c8 Binary files /dev/null and b/images/bbs/faq_on.png differ diff --git a/images/bbs/faq_q.png b/images/bbs/faq_q.png new file mode 100644 index 0000000..c544349 Binary files /dev/null and b/images/bbs/faq_q.png differ diff --git a/images/bbs/faq_q_on.png b/images/bbs/faq_q_on.png new file mode 100644 index 0000000..1cdfb65 Binary files /dev/null and b/images/bbs/faq_q_on.png differ diff --git a/images/bbs/file_close.gif b/images/bbs/file_close.gif new file mode 100644 index 0000000..1a992f5 Binary files /dev/null and b/images/bbs/file_close.gif differ diff --git a/images/bbs/file_down.gif b/images/bbs/file_down.gif new file mode 100644 index 0000000..cad7552 Binary files /dev/null and b/images/bbs/file_down.gif differ diff --git a/images/bbs/file_ico.gif b/images/bbs/file_ico.gif new file mode 100644 index 0000000..65b8f77 Binary files /dev/null and b/images/bbs/file_ico.gif differ diff --git a/images/bbs/icon_calendar.gif b/images/bbs/icon_calendar.gif new file mode 100644 index 0000000..60d6fa3 Binary files /dev/null and b/images/bbs/icon_calendar.gif differ diff --git a/images/bbs/icon_down.png b/images/bbs/icon_down.png new file mode 100644 index 0000000..e8837f2 Binary files /dev/null and b/images/bbs/icon_down.png differ diff --git a/images/bbs/icon_download.png b/images/bbs/icon_download.png new file mode 100644 index 0000000..d4c2dc7 Binary files /dev/null and b/images/bbs/icon_download.png differ diff --git a/images/bbs/icon_download_on.png b/images/bbs/icon_download_on.png new file mode 100644 index 0000000..28b13ee Binary files /dev/null and b/images/bbs/icon_download_on.png differ diff --git a/images/bbs/icon_file.gif b/images/bbs/icon_file.gif new file mode 100644 index 0000000..3c82a2a Binary files /dev/null and b/images/bbs/icon_file.gif differ diff --git a/images/bbs/icon_list.png b/images/bbs/icon_list.png new file mode 100644 index 0000000..654d955 Binary files /dev/null and b/images/bbs/icon_list.png differ diff --git a/images/bbs/icon_lock.png b/images/bbs/icon_lock.png new file mode 100644 index 0000000..84a6fe8 Binary files /dev/null and b/images/bbs/icon_lock.png differ diff --git a/images/bbs/icon_new.gif b/images/bbs/icon_new.gif new file mode 100644 index 0000000..72b5255 Binary files /dev/null and b/images/bbs/icon_new.gif differ diff --git a/images/bbs/icon_new.png b/images/bbs/icon_new.png new file mode 100644 index 0000000..34e1646 Binary files /dev/null and b/images/bbs/icon_new.png differ diff --git a/images/bbs/icon_online.png b/images/bbs/icon_online.png new file mode 100644 index 0000000..ac91d08 Binary files /dev/null and b/images/bbs/icon_online.png differ diff --git a/images/bbs/icon_reply.gif b/images/bbs/icon_reply.gif new file mode 100644 index 0000000..0eea0e3 Binary files /dev/null and b/images/bbs/icon_reply.gif differ diff --git a/images/bbs/icon_secret.gif b/images/bbs/icon_secret.gif new file mode 100644 index 0000000..954dc62 Binary files /dev/null and b/images/bbs/icon_secret.gif differ diff --git a/images/bbs/noimg.gif b/images/bbs/noimg.gif new file mode 100644 index 0000000..7126566 Binary files /dev/null and b/images/bbs/noimg.gif differ diff --git a/images/bbs/noimg10x6.gif b/images/bbs/noimg10x6.gif new file mode 100644 index 0000000..3c8ba11 Binary files /dev/null and b/images/bbs/noimg10x6.gif differ diff --git a/images/bbs/noimg2.gif b/images/bbs/noimg2.gif new file mode 100644 index 0000000..68d256f Binary files /dev/null and b/images/bbs/noimg2.gif differ diff --git a/images/bbs/noimg3x4.gif b/images/bbs/noimg3x4.gif new file mode 100644 index 0000000..5ef5ff2 Binary files /dev/null and b/images/bbs/noimg3x4.gif differ diff --git a/images/bbs/noimg5x5.gif b/images/bbs/noimg5x5.gif new file mode 100644 index 0000000..25b5e07 Binary files /dev/null and b/images/bbs/noimg5x5.gif differ diff --git a/images/bbs/noimg6x10.gif b/images/bbs/noimg6x10.gif new file mode 100644 index 0000000..b3559ab Binary files /dev/null and b/images/bbs/noimg6x10.gif differ diff --git a/images/bbs/notice.png b/images/bbs/notice.png new file mode 100644 index 0000000..c771619 Binary files /dev/null and b/images/bbs/notice.png differ diff --git a/images/bbs/tmp1.jpg b/images/bbs/tmp1.jpg new file mode 100644 index 0000000..7a37f6d Binary files /dev/null and b/images/bbs/tmp1.jpg differ diff --git a/images/bbs/tmp2.jpg b/images/bbs/tmp2.jpg new file mode 100644 index 0000000..6310029 Binary files /dev/null and b/images/bbs/tmp2.jpg differ diff --git a/images/bbs/tmp3.jpg b/images/bbs/tmp3.jpg new file mode 100644 index 0000000..018fd5b Binary files /dev/null and b/images/bbs/tmp3.jpg differ diff --git a/images/common/fancybox_close.png b/images/common/fancybox_close.png new file mode 100644 index 0000000..560f1be Binary files /dev/null and b/images/common/fancybox_close.png differ diff --git a/images/common/home.png b/images/common/home.png new file mode 100644 index 0000000..8c4ddae Binary files /dev/null and b/images/common/home.png differ diff --git a/images/common/logo.png b/images/common/logo.png new file mode 100644 index 0000000..ca69978 Binary files /dev/null and b/images/common/logo.png differ diff --git a/images/common/logo_old.png b/images/common/logo_old.png new file mode 100644 index 0000000..4d05d16 Binary files /dev/null and b/images/common/logo_old.png differ diff --git a/images/common/path_arrow.png b/images/common/path_arrow.png new file mode 100644 index 0000000..836d592 Binary files /dev/null and b/images/common/path_arrow.png differ diff --git a/images/common/sub_visual1.jpg b/images/common/sub_visual1.jpg new file mode 100644 index 0000000..a8ba363 Binary files /dev/null and b/images/common/sub_visual1.jpg differ diff --git a/images/common/sub_visual2.jpg b/images/common/sub_visual2.jpg new file mode 100644 index 0000000..f59a4c2 Binary files /dev/null and b/images/common/sub_visual2.jpg differ diff --git a/images/common/sub_visual3.jpg b/images/common/sub_visual3.jpg new file mode 100644 index 0000000..217016c Binary files /dev/null and b/images/common/sub_visual3.jpg differ diff --git a/images/common/sub_visual4.jpg b/images/common/sub_visual4.jpg new file mode 100644 index 0000000..1f105be Binary files /dev/null and b/images/common/sub_visual4.jpg differ diff --git a/images/common/sub_visual5.jpg b/images/common/sub_visual5.jpg new file mode 100644 index 0000000..2893be4 Binary files /dev/null and b/images/common/sub_visual5.jpg differ diff --git a/images/common/sub_visual6.jpg b/images/common/sub_visual6.jpg new file mode 100644 index 0000000..20a12f3 Binary files /dev/null and b/images/common/sub_visual6.jpg differ diff --git a/images/common/sub_visual_priv.jpg b/images/common/sub_visual_priv.jpg new file mode 100644 index 0000000..ca73d02 Binary files /dev/null and b/images/common/sub_visual_priv.jpg differ diff --git a/images/main/bg_security.jpg b/images/main/bg_security.jpg new file mode 100644 index 0000000..e3e3107 Binary files /dev/null and b/images/main/bg_security.jpg differ diff --git a/images/main/ico_cs.png b/images/main/ico_cs.png new file mode 100644 index 0000000..d737dd2 Binary files /dev/null and b/images/main/ico_cs.png differ diff --git a/images/main/ico_secu1.png b/images/main/ico_secu1.png new file mode 100644 index 0000000..570d196 Binary files /dev/null and b/images/main/ico_secu1.png differ diff --git a/images/main/ico_secu1_on.png b/images/main/ico_secu1_on.png new file mode 100644 index 0000000..570d196 Binary files /dev/null and b/images/main/ico_secu1_on.png differ diff --git a/images/main/ico_secu2.png b/images/main/ico_secu2.png new file mode 100644 index 0000000..dd01293 Binary files /dev/null and b/images/main/ico_secu2.png differ diff --git a/images/main/ico_secu2_on.png b/images/main/ico_secu2_on.png new file mode 100644 index 0000000..dd01293 Binary files /dev/null and b/images/main/ico_secu2_on.png differ diff --git a/images/main/ico_secu3.png b/images/main/ico_secu3.png new file mode 100644 index 0000000..afcdbcf Binary files /dev/null and b/images/main/ico_secu3.png differ diff --git a/images/main/ico_secu3_on.png b/images/main/ico_secu3_on.png new file mode 100644 index 0000000..afcdbcf Binary files /dev/null and b/images/main/ico_secu3_on.png differ diff --git a/images/main/ico_skype.png b/images/main/ico_skype.png new file mode 100644 index 0000000..d37d2dd Binary files /dev/null and b/images/main/ico_skype.png differ diff --git a/images/main/ico_sv.png b/images/main/ico_sv.png new file mode 100644 index 0000000..358757c Binary files /dev/null and b/images/main/ico_sv.png differ diff --git a/images/main/ico_telegram.png b/images/main/ico_telegram.png new file mode 100644 index 0000000..ba21512 Binary files /dev/null and b/images/main/ico_telegram.png differ diff --git a/images/main/more.png b/images/main/more.png new file mode 100644 index 0000000..7a0bae1 Binary files /dev/null and b/images/main/more.png differ diff --git a/images/main/prod1.jpg b/images/main/prod1.jpg new file mode 100644 index 0000000..ccd2b59 Binary files /dev/null and b/images/main/prod1.jpg differ diff --git a/images/main/prod2.jpg b/images/main/prod2.jpg new file mode 100644 index 0000000..93ba2ce Binary files /dev/null and b/images/main/prod2.jpg differ diff --git a/images/main/prod3.jpg b/images/main/prod3.jpg new file mode 100644 index 0000000..c7337b5 Binary files /dev/null and b/images/main/prod3.jpg differ diff --git a/images/main/ptn01.jpg b/images/main/ptn01.jpg new file mode 100644 index 0000000..b2800c3 Binary files /dev/null and b/images/main/ptn01.jpg differ diff --git a/images/main/ptn02.jpg b/images/main/ptn02.jpg new file mode 100644 index 0000000..4554b0e Binary files /dev/null and b/images/main/ptn02.jpg differ diff --git a/images/main/ptn03.jpg b/images/main/ptn03.jpg new file mode 100644 index 0000000..fd8190e Binary files /dev/null and b/images/main/ptn03.jpg differ diff --git a/images/main/ptn04.jpg b/images/main/ptn04.jpg new file mode 100644 index 0000000..4f19175 Binary files /dev/null and b/images/main/ptn04.jpg differ diff --git a/images/main/ptn05.jpg b/images/main/ptn05.jpg new file mode 100644 index 0000000..307cb6b Binary files /dev/null and b/images/main/ptn05.jpg differ diff --git a/images/main/ptn_next.png b/images/main/ptn_next.png new file mode 100644 index 0000000..1245029 Binary files /dev/null and b/images/main/ptn_next.png differ diff --git a/images/main/ptn_prev.png b/images/main/ptn_prev.png new file mode 100644 index 0000000..59a0fe9 Binary files /dev/null and b/images/main/ptn_prev.png differ diff --git a/images/main/slide_next.png b/images/main/slide_next.png new file mode 100644 index 0000000..015e4bc Binary files /dev/null and b/images/main/slide_next.png differ diff --git a/images/main/slide_prev.png b/images/main/slide_prev.png new file mode 100644 index 0000000..51a58b3 Binary files /dev/null and b/images/main/slide_prev.png differ diff --git a/images/main/visual1.jpg b/images/main/visual1.jpg new file mode 100644 index 0000000..f0350f2 Binary files /dev/null and b/images/main/visual1.jpg differ diff --git a/images/main/visual2.jpg b/images/main/visual2.jpg new file mode 100644 index 0000000..614f4fd Binary files /dev/null and b/images/main/visual2.jpg differ diff --git a/images/main/visual3.jpg b/images/main/visual3.jpg new file mode 100644 index 0000000..a1d60b9 Binary files /dev/null and b/images/main/visual3.jpg differ diff --git a/images/sns_link.png b/images/sns_link.png new file mode 100644 index 0000000..8b42b6d Binary files /dev/null and b/images/sns_link.png differ diff --git a/images/sub/bg_lineinfo.jpg b/images/sub/bg_lineinfo.jpg new file mode 100644 index 0000000..af394c1 Binary files /dev/null and b/images/sub/bg_lineinfo.jpg differ diff --git a/images/sub/blt.png b/images/sub/blt.png new file mode 100644 index 0000000..0ba64cb Binary files /dev/null and b/images/sub/blt.png differ diff --git a/images/sub/greeting.jpg b/images/sub/greeting.jpg new file mode 100644 index 0000000..d47e0ce Binary files /dev/null and b/images/sub/greeting.jpg differ diff --git a/images/sub/ico_cs.png b/images/sub/ico_cs.png new file mode 100644 index 0000000..10bc372 Binary files /dev/null and b/images/sub/ico_cs.png differ diff --git a/images/sub/ico_serv1.png b/images/sub/ico_serv1.png new file mode 100644 index 0000000..22f7ac9 Binary files /dev/null and b/images/sub/ico_serv1.png differ diff --git a/images/sub/ico_serv2.png b/images/sub/ico_serv2.png new file mode 100644 index 0000000..aa0dd73 Binary files /dev/null and b/images/sub/ico_serv2.png differ diff --git a/images/sub/ico_serv3.png b/images/sub/ico_serv3.png new file mode 100644 index 0000000..d93f319 Binary files /dev/null and b/images/sub/ico_serv3.png differ diff --git a/images/sub/ico_skype.png b/images/sub/ico_skype.png new file mode 100644 index 0000000..54edba6 Binary files /dev/null and b/images/sub/ico_skype.png differ diff --git a/images/sub/ico_telegram.png b/images/sub/ico_telegram.png new file mode 100644 index 0000000..ba21512 Binary files /dev/null and b/images/sub/ico_telegram.png differ diff --git a/images/sub/ico_value1.png b/images/sub/ico_value1.png new file mode 100644 index 0000000..2966585 Binary files /dev/null and b/images/sub/ico_value1.png differ diff --git a/images/sub/ico_value2.png b/images/sub/ico_value2.png new file mode 100644 index 0000000..394dc06 Binary files /dev/null and b/images/sub/ico_value2.png differ diff --git a/images/sub/ico_value3.png b/images/sub/ico_value3.png new file mode 100644 index 0000000..c85a777 Binary files /dev/null and b/images/sub/ico_value3.png differ diff --git a/images/sub/ico_value4.png b/images/sub/ico_value4.png new file mode 100644 index 0000000..f6ada6a Binary files /dev/null and b/images/sub/ico_value4.png differ diff --git a/images/sub/org.jpg b/images/sub/org.jpg new file mode 100644 index 0000000..a5a3771 Binary files /dev/null and b/images/sub/org.jpg differ diff --git a/images/sub/pro1_1.jpg b/images/sub/pro1_1.jpg new file mode 100644 index 0000000..2a3ce9c Binary files /dev/null and b/images/sub/pro1_1.jpg differ diff --git a/images/sub/pro1_2.jpg b/images/sub/pro1_2.jpg new file mode 100644 index 0000000..fbcd8ed Binary files /dev/null and b/images/sub/pro1_2.jpg differ diff --git a/images/sub/pro1_3.jpg b/images/sub/pro1_3.jpg new file mode 100644 index 0000000..05f9c3e Binary files /dev/null and b/images/sub/pro1_3.jpg differ diff --git a/images/sub/pro1_4.jpg b/images/sub/pro1_4.jpg new file mode 100644 index 0000000..313fb0b Binary files /dev/null and b/images/sub/pro1_4.jpg differ diff --git a/images/sub/sub2_1_1.jpg b/images/sub/sub2_1_1.jpg new file mode 100644 index 0000000..283b391 Binary files /dev/null and b/images/sub/sub2_1_1.jpg differ diff --git a/images/sub/sub2_1_2.jpg b/images/sub/sub2_1_2.jpg new file mode 100644 index 0000000..f3cdb2d Binary files /dev/null and b/images/sub/sub2_1_2.jpg differ diff --git a/images/sub/sub2_1_3.jpg b/images/sub/sub2_1_3.jpg new file mode 100644 index 0000000..cadb127 Binary files /dev/null and b/images/sub/sub2_1_3.jpg differ diff --git a/images/sub/sub2_1_4.jpg b/images/sub/sub2_1_4.jpg new file mode 100644 index 0000000..0cf7e96 Binary files /dev/null and b/images/sub/sub2_1_4.jpg differ diff --git a/images/sub/sub2_2_1.jpg b/images/sub/sub2_2_1.jpg new file mode 100644 index 0000000..f1c7369 Binary files /dev/null and b/images/sub/sub2_2_1.jpg differ diff --git a/images/sub/sub2_2_2.jpg b/images/sub/sub2_2_2.jpg new file mode 100644 index 0000000..f6f7feb Binary files /dev/null and b/images/sub/sub2_2_2.jpg differ diff --git a/images/sub/sub2_2_3.jpg b/images/sub/sub2_2_3.jpg new file mode 100644 index 0000000..a174ebd Binary files /dev/null and b/images/sub/sub2_2_3.jpg differ diff --git a/images/sub/sub3_1.jpg b/images/sub/sub3_1.jpg new file mode 100644 index 0000000..07bcb06 Binary files /dev/null and b/images/sub/sub3_1.jpg differ diff --git a/images/sub/sub3_2.jpg b/images/sub/sub3_2.jpg new file mode 100644 index 0000000..674b21a Binary files /dev/null and b/images/sub/sub3_2.jpg differ diff --git a/images/sub/sub3_2_1.jpg b/images/sub/sub3_2_1.jpg new file mode 100644 index 0000000..f304b06 Binary files /dev/null and b/images/sub/sub3_2_1.jpg differ diff --git a/images/sub/sub3_2_2.jpg b/images/sub/sub3_2_2.jpg new file mode 100644 index 0000000..1ce6ca6 Binary files /dev/null and b/images/sub/sub3_2_2.jpg differ diff --git a/images/sub/sub3_2_3.jpg b/images/sub/sub3_2_3.jpg new file mode 100644 index 0000000..feec7ec Binary files /dev/null and b/images/sub/sub3_2_3.jpg differ diff --git a/images/sub/sub3_2_4.jpg b/images/sub/sub3_2_4.jpg new file mode 100644 index 0000000..9c35fdf Binary files /dev/null and b/images/sub/sub3_2_4.jpg differ diff --git a/images/sub/sub3_3.jpg b/images/sub/sub3_3.jpg new file mode 100644 index 0000000..0a0da74 Binary files /dev/null and b/images/sub/sub3_3.jpg differ diff --git a/images/sub/sub3_4.jpg b/images/sub/sub3_4.jpg new file mode 100644 index 0000000..fb3830a Binary files /dev/null and b/images/sub/sub3_4.jpg differ diff --git a/images/sub/sub4_1_1.jpg b/images/sub/sub4_1_1.jpg new file mode 100644 index 0000000..9c81c9f Binary files /dev/null and b/images/sub/sub4_1_1.jpg differ diff --git a/images/sub/sub4_1_2.jpg b/images/sub/sub4_1_2.jpg new file mode 100644 index 0000000..0e41e8f Binary files /dev/null and b/images/sub/sub4_1_2.jpg differ diff --git a/images/sub/sub4_2_1.jpg b/images/sub/sub4_2_1.jpg new file mode 100644 index 0000000..3e0252c Binary files /dev/null and b/images/sub/sub4_2_1.jpg differ diff --git a/images/sub/sub4_2_2.jpg b/images/sub/sub4_2_2.jpg new file mode 100644 index 0000000..c49ff98 Binary files /dev/null and b/images/sub/sub4_2_2.jpg differ diff --git a/images/sub/sub4_2_3.jpg b/images/sub/sub4_2_3.jpg new file mode 100644 index 0000000..6030912 Binary files /dev/null and b/images/sub/sub4_2_3.jpg differ diff --git a/images/sub/sub4_3_1.jpg b/images/sub/sub4_3_1.jpg new file mode 100644 index 0000000..a0cde62 Binary files /dev/null and b/images/sub/sub4_3_1.jpg differ diff --git a/images/sub/sub4_3_2.jpg b/images/sub/sub4_3_2.jpg new file mode 100644 index 0000000..739bb00 Binary files /dev/null and b/images/sub/sub4_3_2.jpg differ diff --git a/images/sub/sub5_1_1.jpg b/images/sub/sub5_1_1.jpg new file mode 100644 index 0000000..da67e9c Binary files /dev/null and b/images/sub/sub5_1_1.jpg differ diff --git a/images/sub/sub5_1_2.jpg b/images/sub/sub5_1_2.jpg new file mode 100644 index 0000000..76df665 Binary files /dev/null and b/images/sub/sub5_1_2.jpg differ diff --git a/images/sub/sub5_1_3.jpg b/images/sub/sub5_1_3.jpg new file mode 100644 index 0000000..310b5be Binary files /dev/null and b/images/sub/sub5_1_3.jpg differ diff --git a/images/sub/sub5_1_4.jpg b/images/sub/sub5_1_4.jpg new file mode 100644 index 0000000..e3e1f91 Binary files /dev/null and b/images/sub/sub5_1_4.jpg differ diff --git a/images/sub/sub5_1_5.jpg b/images/sub/sub5_1_5.jpg new file mode 100644 index 0000000..1d61f35 Binary files /dev/null and b/images/sub/sub5_1_5.jpg differ diff --git a/include/depth1.php b/include/depth1.php new file mode 100644 index 0000000..5b2e584 --- /dev/null +++ b/include/depth1.php @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/include/footer.php b/include/footer.php new file mode 120000 index 0000000..5fbf578 --- /dev/null +++ b/include/footer.php @@ -0,0 +1 @@ +footer_empty.php \ No newline at end of file diff --git a/include/footer_empty.php b/include/footer_empty.php new file mode 100644 index 0000000..fc969cb --- /dev/null +++ b/include/footer_empty.php @@ -0,0 +1,17 @@ + + + + +
    + + diff --git a/include/footer_jp.php b/include/footer_jp.php new file mode 100644 index 0000000..eba2416 --- /dev/null +++ b/include/footer_jp.php @@ -0,0 +1,26 @@ + + + + +
    + + diff --git a/include/footer_kr.php b/include/footer_kr.php new file mode 100644 index 0000000..ab37b06 --- /dev/null +++ b/include/footer_kr.php @@ -0,0 +1,26 @@ + + + + +
    + + diff --git a/include/header.php b/include/header.php new file mode 100644 index 0000000..7658038 --- /dev/null +++ b/include/header.php @@ -0,0 +1,149 @@ + + + + + + + + + + + + + <?=$arrSetInfo["list"][0][shop_title]?> + "> + "> + "> + + "> + "> + /images/sns_link.png"> + "> + + + + + + + + + + + + + + + + + + + +"> + +
    + + + diff --git a/include/menu01.php b/include/menu01.php new file mode 100644 index 0000000..001aff1 --- /dev/null +++ b/include/menu01.php @@ -0,0 +1,21 @@ +
    +
    +

    IDC소개

    +
    +
    +
    +
    +
    HOME
    +
    + IDC소개 + +
    +
    + + +
    +
    +
    \ No newline at end of file diff --git a/include/menu02.php b/include/menu02.php new file mode 100644 index 0000000..9a6046c --- /dev/null +++ b/include/menu02.php @@ -0,0 +1,35 @@ +
    +
    +

    호스팅

    +
    +
    +
    +
    +
    HOME
    +
    + 호스팅 + +
    +
    + + +
    +
    + + + + + + +
    +
    +
    diff --git a/include/menu03.php b/include/menu03.php new file mode 100644 index 0000000..eb01f64 --- /dev/null +++ b/include/menu03.php @@ -0,0 +1,21 @@ +
    +
    +

    회선서비스

    +
    +
    +
    +
    +
    HOME
    + +
    + + +
    +
    +
    \ No newline at end of file diff --git a/include/menu04.php b/include/menu04.php new file mode 100644 index 0000000..f084691 --- /dev/null +++ b/include/menu04.php @@ -0,0 +1,22 @@ +
    +
    +

    DDOS방어

    +
    +
    +
    +
    +
    HOME
    +
    + DDOS방어 + +
    +
    + + +
    +
    +
    \ No newline at end of file diff --git a/include/menu05.php b/include/menu05.php new file mode 100644 index 0000000..ac60553 --- /dev/null +++ b/include/menu05.php @@ -0,0 +1,20 @@ +
    +
    +

    부가서비스

    +
    +
    +
    +
    +
    HOME
    + +
    + + +
    +
    +
    \ No newline at end of file diff --git a/include/menu06.php b/include/menu06.php new file mode 100644 index 0000000..cd00cec --- /dev/null +++ b/include/menu06.php @@ -0,0 +1,21 @@ +
    +
    +

    고객지원

    +
    +
    +
    +
    +
    HOME
    +
    + 고객지원 + +
    +
    + + +
    +
    +
    diff --git a/include/subtab1.php b/include/subtab1.php new file mode 100644 index 0000000..d25e7e2 --- /dev/null +++ b/include/subtab1.php @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..9b5d924 --- /dev/null +++ b/index.php @@ -0,0 +1,236 @@ + + + +
    +
    +
    +
    +

    GDIDC

    +

    고객만족을 위해 최상의 솔루션을 제공합니다.

    +
    +
      +
    • +
    • +
    • +
    +
    +
    + +
    +
    +

    SERVER HOSTING 주력상품 안내

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    A TypeB TypeC TypeD Type
    CPUE5530X5560*2E5-2630v2*2E5-2690v2*2
    Core4core8core12Core20core
    RAM8G16G16G32G
    HDDSSD128G*2, SATA500G*2SSD128G*2, SATA500G*2SSD128G*2, SATA500G*2SSD128G*2, SATA500G*2
    Cost30만원40만원60만원70만원
    +
    +
    +
    + + + +
    +
    +
    +
    +
    +

    공지사항

    +
      + 0) { + for ($i = 0; $i < $latest["list"]["total"]; $i++) { + if (strtotime($latest["list"][$i][wdate]) + (3 * 86400) > time()) { + $newImage = " \"새"; + } else { + $newImage = ""; + } + ?> +
    • + "> + + + +
    • + +
    • 등록된 공지사항이 없습니다.
    • + + +
    + +
    +
    +
    +
    +

    고객센터

    +

    365일 24시간 가능

    +
    1661-4598
    +
    + + gdidc0125@gmail.com +
    +
    + + @GDIDC0125 +
    +
    +
    +
    +
    +

    네임서버 정보안내

    +
    +
    1차
    +
    margo.ns.cloudflare.com
    +
    2차
    +
    rosemary.ns.cloudflare.com
    +
    +
    +
    +
    +
    +
    + + + +
    +
    +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    +
    +
    + + diff --git a/js/html5.js b/js/html5.js new file mode 100644 index 0000000..448cebd --- /dev/null +++ b/js/html5.js @@ -0,0 +1,8 @@ +/* + HTML5 Shiv v3.7.0 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); +a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; +c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| +"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f); +if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;da?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
    ",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h; +if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
    a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:k.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m(" + +*/ +?> + 0){ + $RS2 = deleteMember($RS["list"][0]["user_id"]); + if($RS2 == true){ + session_destroy(); + //탈퇴자에게 메일발송 + $arrMailInfo = getMailConfig("withdrawal"); + sendMailMemberInfo($arrInfo, $arrMailInfo); + //탈퇴자에게 메일발송 + if($_REQUEST[rt_url]){ + jsGo($_REQUEST[rt_url],"",$RS["list"][0]["user_id"] . "님 정상적으로 탈퇴 되었습니다."); + }else{ + jsGo("/","",$RS["list"][0]["user_id"] . "님 정상적으로 탈퇴 되었습니다."); + } + }else{ + if($_REQUEST[rt_url]){ + jsGo($_REQUEST[rt_url],"","탈퇴처리중 오류가 발생하였습니다."); + }else{ + jsGo("/","","탈퇴처리중 오류가 발생하였습니다."); + } + } + }else{ + jsMsg("입력하신 정보가 올바르지 않습니다."); + jsHistory("-1") ; + } + }else{ + jsMsg("로그인한 ID만 탈퇴하실 수 있습니다."); + jsHistory("-1") ; + } + + +}else if($_POST[evnMode]=="login"){ + + $user_id = mysql_real_escape_string(trim($_POST[id])); + $user_pw = mysql_real_escape_string(trim($_POST[pw])); + + $arrInfo = getUserInfo($user_id); + + if($arrInfo["total"] < 1){ + jsMsg("해당하는 아이디가 없습니다."); + jsHistory("-1"); + } + + + $RS = loginMember($user_id, $user_pw); + + + if($RS["total"] > 0){ + + $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"] = $RS["list"][0]["user_id"]; + $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["NAME"] = $RS["list"][0]["user_name"]; + $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["EMAIL"] = $RS["list"][0]["email"]; + $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["LEVEL"] = $RS["list"][0]["user_level"]; + //$_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["EMAIL_ACCEPT"] = $RS["list"][0]["email_accept"]; + + if($_REQUEST[save_id]=="1"){ + setcookie("login_id", $RS["list"][0]["user_id"], time()+(3600*24*30), "/", $_SERVER[SERVER_NAME]); + }else{ + setcookie("login_id", "", time()+(3600*24*30), "/", $_SERVER[SERVER_NAME]); + } + + + //장바구니의 해당 세션을 로그인한 회원의 장바구니로 옮김 + @updateCartSession($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]); + + if($_REQUEST[rt_url]){ + jsGo($_REQUEST[rt_url],"",$RS["list"][0]["user_id"] . "님 로그인 되었습니다."); + }else{ + jsGo("/","",$RS["list"][0]["user_id"] . "님 로그인 되었습니다."); + } + }else{ + jsMsg("비밀번호가 일치하지 않습니다."); + jsHistory("-1") ; + } + +}else if($_POST[evnMode]=="login_guest"){ + + $_SESSION[$_SITE["DOMAIN"]]["GUEST"]["NAME"] = $_POST[name]; + //$_SESSION[$_SITE["DOMAIN"]]["GUEST"]["MOBILE"] = mysql_real_escape_string(trim($_POST[mobile])); + $_SESSION[$_SITE["DOMAIN"]]["GUEST"]["MOBILE"] = mysql_real_escape_string(trim($_POST[mobile_1]))."-".mysql_real_escape_string(trim($_POST[mobile_2]))."-".mysql_real_escape_string(trim($_POST[mobile_3])); + + if($_REQUEST[rt_url]){ + jsGo($_REQUEST[rt_url],"",$_SESSION[$_SITE["DOMAIN"]]["GUEST"]["NAME"] . "님 손님으로 로그인 되었습니다."); + }else{ + jsGo("/","",$_SESSION[$_SITE["DOMAIN"]]["GUEST"]["NAME"] . "님 손님으로 로그인 되었습니다."); + } + +}else if($_REQUEST[evnMode]=="logout"){ + session_destroy(); + if($_REQUEST[rt_url]){ + jsGo($_REQUEST[rt_url],"","로그아웃 되었습니다."); + }else{ + jsGo("/","","로그아웃 되었습니다."); + } +} + +//DB해제 +SetDisConn($dblink); +?> \ No newline at end of file diff --git a/module/member/member_join.php b/module/member/member_join.php new file mode 100644 index 0000000..8a9ebc0 --- /dev/null +++ b/module/member/member_join.php @@ -0,0 +1,290 @@ + + document.location.href = '/member.php?goPage=Agree'; + "; +} +//회원약관 동의를 하지 않았으면 약관동의 페이지로 이동시킴 +if($_POST[chkAgree2]!="Y"){ + echo ""; +} +?> + + +
    +

    회원가입

    +
    HOME > 회원전용 > 회원가입
    +
    +
    + +
    + + + +
    +

    기본정보입력

    +

    허위로 작성된 가입정보일 경우 임의로 삭제처리될 수 있으니 주의해 주세요.

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    회원정보입력 개인회원
    + + 중복확인 +
    + +   영문, 숫자포함 6~15자이상 입력하세요. +
    +    + +
    + 년 + 월 + 일 +
    + +
    +
    +
    +
    + +
    +
    + + - + - +
    + + - + - +
    @ +
    +    + +
    +
    +
    +
    +
    + + +
    +
    + + + + + diff --git a/module/member/member_leave.php b/module/member/member_leave.php new file mode 100644 index 0000000..6d3fa43 --- /dev/null +++ b/module/member/member_leave.php @@ -0,0 +1,73 @@ + + +
    +

    회원탈퇴

    +
    HOME > 마이페이지 > 회원탈퇴
    +
    +
    +
    + + + "> +
    +
    + 사용하고 계신 아이디는 탈퇴할 경우 재사용 및 복구가 불가능합니다.
    + 탈퇴한 아이디는 본인과 타인 모두 재사용 및 복구가 불가하오니 신중하게 선택하시기 바랍니다. +
    +
    +
    + 회원탈퇴 + +

    원활한 회원탈퇴를 위해 가입시 입력하셨던 정보를 다시 한번 입력해 주세요.

    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    + +
    +
    + +
    +
    +
    + + + + +
    + diff --git a/module/member/member_modify.php b/module/member/member_modify.php new file mode 100644 index 0000000..8ee6e10 --- /dev/null +++ b/module/member/member_modify.php @@ -0,0 +1,240 @@ + + +
    +

    회원정보수정

    +
    HOME > 마이페이지 > 회원정보수정
    +
    +
    +
    + + "> +
    +

    기본정보

    +

    허위로 작성된 가입정보일 경우 임의로 삭제처리될 수 있으니 주의해 주세요.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    회원정보입력 개인회원
    + +   영문, 숫자포함 6~15자이상 입력하세요. +
    + />    + /> +
    + 년 + 월 + 일 +
    주소 +
    + " title="우편번호"> + 우편번호검색 +
    +
    + " /> +
    +
    + " /> +
    +
    + + - + - +
    + + - + - +
    + @ + +
    + />   + /> +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    diff --git a/module/member/member_thanks.php b/module/member/member_thanks.php new file mode 100644 index 0000000..538e2e9 --- /dev/null +++ b/module/member/member_thanks.php @@ -0,0 +1,283 @@ + + +
    +

    HOME > 회원가입

    +
    + +

    회원가입

    + + +

    + + + +
    +

    기업고객 회원가입개인고객 회원가입

    + +
    +
    아이디 및 비밀번호
    + + + + + + + + + + + + + + + + + + + +
    회원ID *
    가입경로 *
    추천ID
    + + +
    회사정보
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    사업자등록번호 *

    +
    회사명 *
    대표자성명 *
    사업장주소 * -
    +
    +
    업태/종목 *업태: / 종목: +
    직원수 *구매형태: / 직원수: +

    + * 세금계산서는 위의 정보로 발행됩니다.
    + * 사업자등록번호, 회사명, 대표자성명, 사업장주소, 업태/종목은 웹상에서 수정이 불가능하므로
    +    회원가입시 정확한 회사정보를 입력해주시기 바랍니다.
    +

    +
    + +
    구매 담당자 정보
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    담당자명(실명) *
    전화번호 *
    팩스번호
    휴대폰번호 *
    + 이벤트 및 제품정보에 대한 무료SMS서비스를 받겠습니다. () +
    E-mail 주소 *
    E-mail 수신여부
    부서/직위 * /
    담당자 생년월일
    성별
    오피스픽에 바라는 점
    + +
    세금계산서 담당자 정보
    + + + + + + + + + + + + + + + + + + + +
    이름 *
    휴대폰번호 *
    세금계산서 E-mail주소 *
    + +
    직장 배송지 정보
    + + + + + + + + + + + + + + + + + + + +
    수취인 *
    연락처 *
    주소 *() +
    +
    + +
    +
    + +
    개인정보
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    이름(성명) *
    전화번호 *
    팩스번호
    휴대폰번호 *
    + 이벤트 및 제품정보에 대한 무료SMS서비스를 받겠습니다. () +
    E-mail 주소 *
    E-mail 수신여부
    생년월일
    성별
    오피스픽에 바라는 점
    + +
    자택 배송지 정보
    + + + + + + + + + + + + + + + + + + + +
    수취인 *
    연락처 *
    주소 *() +
    +
    + +
    +
    + + + +
    + 가입완료 다시작성 +
    + diff --git a/module/memo/ajax_memo.php b/module/memo/ajax_memo.php new file mode 100644 index 0000000..dbf0ff0 --- /dev/null +++ b/module/memo/ajax_memo.php @@ -0,0 +1,31 @@ + 0){ + //˸ ش Ʈ + setMemoNotifiy($id); +?> + + + + +
    Կ Ͽϴ.
    ݱ
    + diff --git a/module/memo/memo.lib.php b/module/memo/memo.lib.php new file mode 100644 index 0000000..870ea9e --- /dev/null +++ b/module/memo/memo.lib.php @@ -0,0 +1,400 @@ + 0){ + //Կ + $sql = "INSERT INTO ".$tbl3." set "; + $sql .= "r_idx = '$insert_idx', "; + $sql .= "user_id = '".$from_id."', "; + $sql .= "to_user_id = '".$to_id."', "; + $sql .= "content = '".mysql_real_escape_string($_POST[contents])."', "; + $sql .= "wdate = now() , "; + $sql .= "is_read = 'N', "; + $sql .= "rdate = ''"; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total2 = mysql_affected_rows($GLOBALS[dblink]); + + if($total2 >0){ + return true; + }else{ + $sql = "DELETE FROM ".$tbl." WHERE idx='$insert_idx' "; + mysql_query($sql, $GLOBALS[dblink]); + return false; + } + } +} + +//receivememo list +function receivememoList($from_id, $sw, $sk, $scale, $offset){ + $tbl1 = $GLOBALS["_conf_tbl"]["memo_receive"]; + + $sql = "select count(idx) from ".$tbl1." where user_id='".$from_id."' "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $row = mysql_fetch_row($rs); + $total_rs = $row[0]; + + $sql = "select * from ".$tbl1." where user_id='".$from_id."' "; + + if($total_rs > 0){ + $list['total'] = $total_rs; + // ׺̼ . + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + //scale 0 ÿ ü + if($scale > 0){ + $sql .= " order by wdate desc limit $offset,$scale "; + }else{ + $sql .= " order by main "; + } + + $rs = mysql_query($sql,$GLOBALS[dblink]); + // offset ̿ limit + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // ׺̼ . + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//sendmemo list +function sendmemoList($to_id, $sw, $sk, $scale, $offset){ + $tbl1 = $GLOBALS["_conf_tbl"]["memo_send"]; + + $sql = "select count(idx) from ".$tbl1." where user_id='".$to_id."' "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $row = mysql_fetch_row($rs); + $total_rs = $row[0]; + + $sql = "select * from ".$tbl1." where user_id='".$to_id."' "; + + if($total_rs > 0){ + $list['total'] = $total_rs; + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + //scale 0 ÿ ü + if($scale > 0){ + $sql .= " order by wdate desc limit $offset,$scale "; + }else{ + $sql .= " order by main "; + } + + $rs = mysql_query($sql,$GLOBALS[dblink]); + // offset ̿ limit + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // ׺̼ . + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//receive memoview +function receivememoView($from_id, $stat, $idx){ + $tbl = $GLOBALS["_conf_tbl"]["memo_receive"]; + $tbl2 = $GLOBALS["_conf_tbl"]["memo_send"]; + + if($stat=="N"){ + $sql = "UPDATE $tbl SET "; + $sql .= " is_read = 'Y', "; + $sql .= " rdate = now() "; + $sql .= "WHERE idx = '$idx' "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + + $sql = "UPDATE $tbl2 set is_read = 'Y' , rdate = now() where idx='$idx'"; + $rs = mysql_query($sql, $GLOBALS[dblink]); + } + + $sql = "SELECT * "; + $sql .= "FROM $tbl "; + $sql .= "WHERE idx = '$idx' "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + $list['list'][$i][content] = nl2br(htmlspecialchars($list['list'][$i][content])); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//send memoveiw +function sendmemoView($from_id, $stat, $idx){ + $tbl = $GLOBALS["_conf_tbl"]["memo_send"]; + + $sql = "SELECT * from $tbl where idx='$idx' "; + $rs = mysql_query($sql,$GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs >0){ + $list['total'] = $total_rs; + for($i=0;$i<$total_rs;$i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + $list['list'][$i][content] = nl2br(htmlspecialchars($list['list'][$i][content])); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//delete memo +function deleteMemo($idx,$type,$id){ + +if($type=="receive"){ + $tbl = $GLOBALS["_conf_tbl"]["memo_receive"]; + + $sql = "SELECT user_id from $tbl where idx='$idx' "; + $r = mysql_query($sql,$GLOBALS[dblink]); + $rid = mysql_fetch_array($r); + if($id!=$rid[user_id]){ + jsGo("memo_view.php",""," Ͽϴ."); + } + + $sql = "DELETE from $tbl where idx='$idx'"; + +} +if($type=="send"){ + $tbl = $GLOBALS["_conf_tbl"]["memo_send"]; + + $sql = "SELECT user_id from $tbl where idx='$idx' "; + + $r = mysql_query($sql,$GLOBALS[dblink]); + $rid = mysql_fetch_array($r); + + if($id!=$rid[user_id]){ + jsGo("memo_view.php",""," Ͽϴ."); + } + + $sql = "DELETE from $tbl where idx='$idx'"; +} +if($type=="save"){ + $tbl = $GLOBALS["_conf_tbl"]["memo_save"]; + + $sql = "SELECT user_id from $tbl where idx='$idx' "; + $r = mysql_query($sql,$GLOBALS[dblink]); + $rid = mysql_fetch_array($r); + + if($id!=$rid[user_id]){ + jsGo("memo_view.php",""," Ͽϴ."); + } + + $sql = "DELETE from $tbl where idx='$idx'"; +} + $rs = mysql_query($sql,$GLOBALS[dblink]); + + if($rs){ + return true; + }else{ + return false; + } +} + +//Insert save memo +function savereceivememoList($idx,$type){ + $tbl = $GLOBALS["_conf_tbl"]["memo_receive"]; + $tbl2 = $GLOBALS["_conf_tbl"]["memo_save"]; + + $sql = "SELECT * from $tbl where idx='$idx' "; + $rs = mysql_query($sql,$GLOBALS[dblink]); + $row = mysql_fetch_array($rs); + if($rs){ + + //save + $sql = "INSERT into $tbl2 set "; + $sql .= "user_id = '$row[user_id]', "; + $sql .= "from_user_id = '$row[from_user_id]', "; + $sql .= "content = '$row[content]', "; + $sql .= "wdate = '$row[wdate]' "; + $rs = mysql_query($sql,$GLOBALS[dblink]); + + //delete + $sql = "DELETE from $tbl where idx='$idx' "; + $rs = mysql_query($sql,$GLOBALS[dblink]); + + if($rs){ + return true; + }else{ + return false; + } + } +} + +//savememoList view +function savememoList($from_id, $sw, $sk, $scale, $offset){ + $tbl1 = $GLOBALS["_conf_tbl"]["memo_save"]; + + $sql = "select count(idx) from ".$tbl1." where user_id='".$from_id."' "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $row = mysql_fetch_row($rs); + $total_rs = $row[0]; + + $sql = "select * from ".$tbl1." where user_id='".$from_id."' "; + + if($total_rs > 0){ + $list['total'] = $total_rs; + // ׺̼ . + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + //scale 0 ÿ ü + if($scale > 0){ + $sql .= " order by wdate desc limit $offset,$scale "; + }else{ + $sql .= " order by main "; + } + + $rs = mysql_query($sql,$GLOBALS[dblink]); + // offset ̿ limit + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // ׺̼ . + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//savememo view +function savememoView($from_id, $idx){ + $tbl = $GLOBALS["_conf_tbl"]["memo_save"]; + + $sql = "SELECT * from $tbl where idx='$idx' "; + $rs = mysql_query($sql,$GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs >0){ + $list['total'] = $total_rs; + for($i=0;$i<$total_rs;$i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + $list['list'][$i][content] = nl2br(htmlspecialchars($list['list'][$i][content])); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//memo layer +function getmemoInfo($id){ + $tbl = $GLOBALS["_conf_tbl"]["memo_receive"]; + $sql = "select idx from $tbl where is_notify = 'N' And user_id='$id' "; + $rs = mysql_query($sql,$GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs >0){ + $list['total'] = $total_rs; + for($i=0;$i<$total_rs;$i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + return $list; +} + +function setMemoNotifiy($id){ + $tbl = $GLOBALS["_conf_tbl"]["memo_receive"]; + $sql = "UPDATE $tbl set is_notify = 'Y' WHERE user_id='$id' AND is_notify ='N' "; + $rs = mysql_query($sql,$GLOBALS[dblink]); + + if($rs){ + return true; + }else{ + return false; + } + +} +?> diff --git a/module/memo/memo_evn.php b/module/memo/memo_evn.php new file mode 100644 index 0000000..8e48b30 --- /dev/null +++ b/module/memo/memo_evn.php @@ -0,0 +1,36 @@ + \ No newline at end of file diff --git a/module/memo/memo_insert.php b/module/memo/memo_insert.php new file mode 100644 index 0000000..513b8c0 --- /dev/null +++ b/module/memo/memo_insert.php @@ -0,0 +1,62 @@ + + + + + + + + +
    / / /
    + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + +
    ̵: 
    ޴¾̵:
    :
    +
    + + +
    + + \ No newline at end of file diff --git a/module/memo/memo_list.php b/module/memo/memo_list.php new file mode 100644 index 0000000..57778fb --- /dev/null +++ b/module/memo/memo_list.php @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + +
    / / /
    + + + + + + + + + + + + 0){ + for($i=0; $i < $memoList["list"]["total"]; $i++){ + //űԱ ǥ + if(strtotime($memoList["list"][$i][wdate])+(1*86400) > mktime()){ + $newImage =" "; + } + else{ + $newImage =""; + } + ?> + + + + + + + + + + + + + +
    No.ContentsIDDateStatRead Date
    ϵ ϴ.
    +
    + 0){ + for($i=0; $i < $memoList["list"]["total"]; $i++){ + //űԱ ǥ + if(strtotime($memoList["list"][$i][wdate])+(1*86400) > mktime()){ + $newImage =" "; + } + else{ + $newImage =""; + } + ?> +
    ϵ ϴ.
    + + + + + + + + + + + + \ No newline at end of file diff --git a/module/memo/memo_savelist.php b/module/memo/memo_savelist.php new file mode 100644 index 0000000..40a30e5 --- /dev/null +++ b/module/memo/memo_savelist.php @@ -0,0 +1,70 @@ + + + + + + + +
    / / /
    + + + + + + + + +
    + + + + + + + + + + 0){ + for($i=0; $i < $memoList["list"]["total"]; $i++){ + //űԱ ǥ + if(strtotime($memoList["list"][$i][wdate])+(1*86400) > mktime()){ + $newImage =" "; + } + else{ + $newImage =""; + } + ?> + + + + + + + + + + + +
    No.ContentsIDDate
    ϵ ϴ.
    +
    + + +
    + + + \ No newline at end of file diff --git a/module/memo/memo_view.php b/module/memo/memo_view.php new file mode 100644 index 0000000..4cbe9cb --- /dev/null +++ b/module/memo/memo_view.php @@ -0,0 +1,63 @@ + + + + + + + + + +
    / / /
    + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + +
    ̵:޴¾̵:
    :
    + | | +
    +
    + + +
    + \ No newline at end of file diff --git a/module/memo/new_memo_check.inc.php b/module/memo/new_memo_check.inc.php new file mode 100644 index 0000000..b97dadb --- /dev/null +++ b/module/memo/new_memo_check.inc.php @@ -0,0 +1,41 @@ + + + + diff --git a/module/one_to_one/one_to_one.lib.php b/module/one_to_one/one_to_one.lib.php new file mode 100644 index 0000000..7a286c6 --- /dev/null +++ b/module/one_to_one/one_to_one.lib.php @@ -0,0 +1,207 @@ + 0){ + return true; + }else{ + return false; + } +} + +//1:1 亯 (亯) +function editOneToOne($idx){ + $tbl = $GLOBALS["_conf_tbl"]["one_to_one"]; + + $sql = "UPDATE ".$tbl." SET + status='".mysql_real_escape_string($_POST[status])."', + re_contents = '".mysql_real_escape_string($_POST[re_contents])."' + WHERE idx='$idx' + "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + + if($rs){ + return true; + }else{ + return false; + } +} + +//1:1 亯 +function deleteOneToOne($idx){ + $tbl = $GLOBALS["_conf_tbl"]["one_to_one"]; + + $sql = "DELETE FROM ".$tbl." WHERE idx='$idx' "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($total > 0){ + return true; + }else{ + return false; + } +} + +//1:1 亯 - +function deleteOneToOneUser($user_id, $idx){ + $tbl = $GLOBALS["_conf_tbl"]["one_to_one"]; + + $sql = "DELETE FROM ".$tbl." WHERE user_id='$user_id' AND idx='$idx' "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($total > 0){ + return true; + }else{ + return false; + } +} + +//1:1 亯 +function getOneToOneListAll($sw, $sk, $scale, $offset=0){ + // ̺ + $tbl = $GLOBALS["_conf_tbl"]["one_to_one"]; + + $sql = "SELECT * FROM $tbl WHERE 1=1 "; + + if($sw == "id"){ + $sql .= " AND user_id like '%$sk%' "; + } + if($sw == "name"){ + $sql .= " AND user_name like '%$sk%' "; + } + if($sw == "st"){ + $sql .= " AND status = '$sk' "; + } + $sql .= " order by idx desc "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + //echo $sql; + + if($total_rs > 0){ + $list['total'] = $total_rs; + // ׺̼ . + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset ü Խù offset üԽù - offset + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + //scale 0 ÿ ü + if($scale > 0){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset ̿ limit + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // ׺̼ . + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + return $list; +} + +//1:1 亯 +function getOneToOneList($user_id, $scale, $offset=0){ + // ̺ + $tbl = $GLOBALS["_conf_tbl"]["one_to_one"]; + + $sql = "SELECT * FROM $tbl WHERE 1=1 AND user_id='$user_id' "; + + $sql .= " order by idx desc "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + //echo $sql; + + if($total_rs > 0){ + $list['total'] = $total_rs; + // ׺̼ . + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset ü Խù offset üԽù - offset + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + //scale 0 ÿ ü + if($scale > 0){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset ̿ limit + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // ׺̼ . + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + return $list; +} + +//1:1 亯 +function getOneToOneInfo($idx){ + $tbl = $GLOBALS["_conf_tbl"]["one_to_one"]; + + $sql = "SELECT * "; + $sql .= "FROM ".$tbl." "; + $sql .= "WHERE idx = '$idx' "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} +?> \ No newline at end of file diff --git a/module/one_to_one/one_to_one.php b/module/one_to_one/one_to_one.php new file mode 100644 index 0000000..eda5afe --- /dev/null +++ b/module/one_to_one/one_to_one.php @@ -0,0 +1,83 @@ + +
    +

    마이페이지

    +
    + +
    + + + · 고객님께서 상품에 대해 남기신 질문과 판매자의 답변을 확인하실 수 있습니다.
    +
    + + + + + +
    + diff --git a/module/one_to_one/one_to_one_evn.php b/module/one_to_one/one_to_one_evn.php new file mode 100644 index 0000000..ff7b829 --- /dev/null +++ b/module/one_to_one/one_to_one_evn.php @@ -0,0 +1,42 @@ + \ No newline at end of file diff --git a/module/one_to_one/one_to_one_form.php b/module/one_to_one/one_to_one_form.php new file mode 100644 index 0000000..23e9bce --- /dev/null +++ b/module/one_to_one/one_to_one_form.php @@ -0,0 +1,84 @@ + + +
    +

    마이페이지

    +
    +
    +
    + + + + +
    + + +
    +
    + 글 작성 +

    + + () +

    +

    + + +

    +

    + + +

    +

    + + +

    +
    +
    + +
    +
    + + 취소 +
    +
    +
    +
    +
    diff --git a/module/one_to_one/one_to_one_view.php b/module/one_to_one/one_to_one_view.php new file mode 100644 index 0000000..2bca5db --- /dev/null +++ b/module/one_to_one/one_to_one_view.php @@ -0,0 +1,102 @@ + + + + +
    +

    마이페이지

    +
    +
    +
    + + + + +
    +
    +
    제목
    +
    +
    +
    +
    작성자
    +
    +
    +
    +
    작성일자
    +
    +
    +
    + +
    + +
    + + +
    + +
    + +
    + 등록된 답변이 없습니다. +
    + + +
    + +
    + +
    +
    diff --git a/module/online/download.php b/module/online/download.php new file mode 100644 index 0000000..e04b114 --- /dev/null +++ b/module/online/download.php @@ -0,0 +1,89 @@ + 0){ + $src_file = $_SERVER[DOCUMENT_ROOT] . "/uploaded/online/" . $arrFile["list"][0][re_name]; + + if(!$_REQUEST[mode]){ + + //ٿε Ʈ + $sql = "UPDATE " .$GLOBALS["_conf_tbl"]["board_files"]." SET "; + $sql .= " download = download + 1 "; + $sql .= "WHERE idx = '".$arrFile["list"][0][idx]."' "; + + mysql_query($sql, $GLOBALS[dblink]); + + if($arrFile["list"][0][ext]=="swf"){ + $size = GetImageSize($src_file); + $width = $size[0]+10; + $height = $size[1]+28; + echo" + + +
    + + + + + + + + +
    + "; + exit; + }elseif($arrFile["list"][0][ext]=="gif" || $arrFile["list"][0][ext]=="jpg" || $arrFile["list"][0][ext]=="png" || $arrFile["list"][0][ext]=="bmp") + { + $size = GetImageSize($src_file); + $width = $size[0]+30; + $height = $size[1]+55; + echo" + + "; + + $go_url = $_SERVER[PHP_SELF] . "?mode=img_view&boardid=" . $boardid . "&no=" . $no; + jsGo($_SERVER[PHP_SELF]."?mode=img_view&boardid=".$_GET[boardid]."&b_idx=".$_GET[b_idx]."&idx=".$_GET[idx],"",""); + exit; + }else{//Ϲ϶ + fileDownload($src_file, iconv("UTF-8","EUC-KR",$arrFile["list"][0][ori_name])); + + } + }elseif($_REQUEST[mode]=='img_view'){ + /* + if (is_file($src_file)){ + $fp = fopen($src_file, "r"); + if (!fpassthru($fp)){ + fclose($fp); + } + } + */ + header("Content-Type: " .$arrFile["list"][0][type]); + header("Content-Length: " . filesize($src_file)); + + if (is_file($src_file)){ + $fp = fopen($src_file, "r"); + if (!fpassthru($fp)){ + fclose($fp); + } + } + + } +}else{ + jsMsg('ش ϴ.'); + selfClose(); +} +//DB +SetDisConn($dblink); +?> \ No newline at end of file diff --git a/module/online/mail_send.html b/module/online/mail_send.html new file mode 100644 index 0000000..d6e9fd6 --- /dev/null +++ b/module/online/mail_send.html @@ -0,0 +1,19 @@ + + + + + + +

    + ※ 문의접수

    + * 이름 : ::이름::
    + * 연락처 : ::연락처::
    + * 이메일 : ::이메일::
    + * 제목 : ::제목::
    + * 내용 :

    + ::내용:: +

    + + + + \ No newline at end of file diff --git a/module/online/online.lib.php b/module/online/online.lib.php new file mode 100644 index 0000000..48bd988 --- /dev/null +++ b/module/online/online.lib.php @@ -0,0 +1,282 @@ + 0){ + return true; + }else{ + return false; + } +} + +//¶ΰ, ڷû, ǰ (亯) +function editOnline($idx){ + $tbl = $GLOBALS["_conf_tbl"]["online_form"]; + + $sql = "UPDATE ".$tbl." SET + status='".mysql_real_escape_string($_POST[status])."', + re_contents = '".mysql_real_escape_string($_POST[re_contents])."' + WHERE idx='$idx' + "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + + if($rs){ + return true; + }else{ + return false; + } +} + +//¶ΰ, ڷû, ǰ +function deleteOnline($idx){ + $tbl = $GLOBALS["_conf_tbl"]["online_form"]; + + $arrFile = getOnlineInfo(mysql_real_escape_string($idx)); + for($i=0;$i<$arrFile["total"];$i++){ + @unlink($_SERVER[DOCUMENT_ROOT]."/uploaded/online/".$arrFile["list"][$i][re_name]); + } + + $sql = "DELETE FROM ".$tbl." WHERE idx='$idx' "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + //ϻ ڵ + mysql_query("DELETE FROM ".$GLOBALS["_conf_tbl"]["online_files"]." WHERE boardid='online_form' AND b_idx='".$idx."' ", $GLOBALS[dblink]); + //ũ + + if($total > 0){ + return true; + }else{ + return false; + } +} + +//¶ΰ, ڷû, ǰ +function getOnlineList($o_type, $sw, $sk, $scale, $offset=0){ + // ̺ + $tbl = $GLOBALS["_conf_tbl"]["online_form"]; + + $sql = "SELECT * FROM $tbl WHERE 1=1 "; + + if($o_type){ + $sql .= " AND o_type='$o_type' "; + } + + if($sw == "id"){ + $sql .= " AND user_id like '%$sk%' "; + } + if($sw == "name"){ + $sql .= " AND user_name like '%$sk%' "; + } + $sql .= " order by idx desc "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + //echo $sql; + + if($total_rs > 0){ + $list['total'] = $total_rs; + // ׺̼ . + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset ü Խù offset üԽù - offset + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + //scale 0 ÿ ü + if($scale > 0){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset ̿ limit + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // ׺̼ . + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + return $list; +} + + +// +function getOnlineInfo($idx){ + $tbl = $GLOBALS["_conf_tbl"]["online_form"]; + $tbl_files = $GLOBALS["_conf_tbl"]["online_files"]; + + $sql = "SELECT A.*, B.* "; + $sql .= "FROM $tbl A "; + $sql .= "LEFT JOIN ".$tbl_files." B ON A.idx=B.b_idx "; + $sql .= "WHERE A.idx='$idx '"; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + + +function inputOnlineFiles($boardid, $idx, $HTTP_POST_FILES, $thumwidth){ + + for($i=0;$i 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +/*********************************** ¶ΰ, , ǰ *************************************/ +?> \ No newline at end of file diff --git a/module/online/online.php b/module/online/online.php new file mode 100644 index 0000000..37a3146 --- /dev/null +++ b/module/online/online.php @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + +
    + + + + +
    + + "> + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ǰ">
    ̸">
    ̸ + @ + +
    ȸ">
    μ">
    å">
    ȣ + - + + +
    ּ + ">
    + "> +
    ȭȣ + - + + - +
    ѽȣ + - + + - +
    ޴ȣ + - + + - +
    - , ûڷḦ ü ּ.
    +   +
    +
    + + + + +
    +
    + + + \ No newline at end of file diff --git a/module/online/online_evn.php b/module/online/online_evn.php new file mode 100644 index 0000000..bdbba99 --- /dev/null +++ b/module/online/online_evn.php @@ -0,0 +1,56 @@ + + + \ No newline at end of file diff --git a/module/online/send_mail.php b/module/online/send_mail.php new file mode 100644 index 0000000..c522f24 --- /dev/null +++ b/module/online/send_mail.php @@ -0,0 +1,45 @@ + + +
    + + + + + +"/> +"/> +"> + + +
    + + + + + + + +\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + exit; +} + +?> \ No newline at end of file diff --git a/module/point/point.lib.php b/module/point/point.lib.php new file mode 100644 index 0000000..9ad8e7d --- /dev/null +++ b/module/point/point.lib.php @@ -0,0 +1,212 @@ + 0){ + $list = mysql_fetch_assoc($rs); + } + + return $list; +} + +// +function setMinusPoint($user_id, $minus, $contents){ + $tbl = $GLOBALS["_conf_tbl"]["point"];// ̺ + + // 밡 üũ + $arrNowPoint = getNowPoint($user_id); + + //Ϸ 밡 ݺ Ұ + if($arrNowPoint[nowpoint] < $minus){ + return false; + } + + $save_point = $arrNowPoint[nowpoint] - $minus; + + $sql = "INSERT INTO ".$tbl." set + user_id = '$user_id', + minus = '$minus', + nowpoint = '$save_point', + wdate = now(), + ip = '".$_SERVER[REMOTE_ADDR]."', + contents = '$contents' + "; + + if($minus > 0){ + $rs = mysql_query($sql, $GLOBALS[dblink]); + $insert_idx = mysql_insert_id($GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + } + if($total > 0){ + return $insert_idx; + }else{ + return false; + } +} + +// +function setPlusPoint($user_id, $plus, $contents){ + $tbl = $GLOBALS["_conf_tbl"]["point"];// ̺ + + // 밡 üũ + $arrNowPoint = getNowPoint($user_id); + + $save_point = $arrNowPoint[nowpoint] + $plus; + + $sql = "INSERT INTO ".$tbl." set + user_id = '$user_id', + plus = '$plus', + nowpoint = '$save_point', + wdate = now(), + ip = '".$_SERVER[REMOTE_ADDR]."', + contents = '$contents' + "; + + if($plus > 0){ + $rs = mysql_query($sql, $GLOBALS[dblink]); + $insert_idx = mysql_insert_id($GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + } + if($total > 0){ + return $insert_idx; + }else{ + return false; + } +} + +// +function getPointList($user_id, $type, $scale, $offset=0){ + $tbl = $GLOBALS["_conf_tbl"]["point"];// ̺ + + $que_where = " AND user_id='$user_id' "; + + if($type=="minus"){ + $que_where .= " AND minus > 0 "; + } + + if($type=="plus"){ + $que_where .= " AND plus > 0 "; + } + + //īƮ + $sql = "select count(idx) from $tbl WHERE 1=1 $que_where "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $row = mysql_fetch_row($rs); + $total_rs = $row[0]; + + // + $sql = "SELECT * "; + $sql .= "FROM ".$tbl." "; + $sql .= "WHERE 1=1 $que_where ORDER BY idx DESC "; + + if($total_rs > 0){ + $list['total'] = $total_rs; + // ׺̼ . + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset ü Խù offset üԽù - offset + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + if($scale != "0"){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset ̿ limit + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // ׺̼ . + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + return $list; +} + +// +function getPointListAdmin($user_id, $type, $s_date, $e_date, $scale, $offset=0){ + $tbl = $GLOBALS["_conf_tbl"]["point"];// ̺ + + if($user_id){ + $que_where = " AND user_id='$user_id' "; + } + + if($type=="minus"){ + $que_where .= " AND minus > 0 "; + } + + if($type=="plus"){ + $que_where .= " AND plus > 0 "; + } + + if($s_date){ + $que_where .= " AND wdate >= '$s_date 00:00:00' "; + } + + if($e_date){ + $que_where .= " AND wdate <= '$e_date 23:59:59' "; + } + + + //īƮ + $sql = "select count(idx) from $tbl WHERE 1=1 $que_where "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $row = mysql_fetch_row($rs); + $total_rs = $row[0]; + + // + $sql = "SELECT * "; + $sql .= "FROM ".$tbl." "; + $sql .= "WHERE 1=1 $que_where ORDER BY idx DESC "; + + if($total_rs > 0){ + $list['total'] = $total_rs; + // ׺̼ . + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset ü Խù offset üԽù - offset + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + if($scale != "0"){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset ̿ limit + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // ׺̼ . + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + return $list; +} +?> \ No newline at end of file diff --git a/module/poll/poll.lib.php b/module/poll/poll.lib.php new file mode 100644 index 0000000..d360ce8 --- /dev/null +++ b/module/poll/poll.lib.php @@ -0,0 +1,310 @@ + 0){ + //ǥ׸ Է + for($i=0;$i 0){ + $list['total'] = $total_rs; + // ׺̼ . + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset ü Խù offset üԽù - offset + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + //scale 0 ÿ ü + if($scale > 0){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset ̿ limit + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // ׺̼ . + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + return $list; +} + +//̺ +function getPollAnswerList($idx, $orderby){ + // ̺ + $tbl = $GLOBALS["_conf_tbl"]["poll_contents"]; + + if($orderby){ + $orderby = $orderby; + }else{ + $orderby = "idx asc"; + } + $sql = "SELECT * "; + $sql .= "FROM $tbl WHERE p_idx='$idx' order by $orderby "; + + +//echo $sql; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//ǥհ谡 +function getPollAnswerTotal($idx){ + // ̺ + $tbl = $GLOBALS["_conf_tbl"]["poll_contents"]; + + $sql = "SELECT sum(vote) "; + $sql .= "FROM $tbl WHERE p_idx='$idx' "; + + +//echo $sql; + $rs = mysql_query($sql, $GLOBALS[dblink]); + + $row = mysql_fetch_row($rs); + return $row[0]; +} + + + +//ǥ +function editPoll($idx){ + $tbl = $GLOBALS["_conf_tbl"]["poll_info"]; + $tbl_contents = $GLOBALS["_conf_tbl"]["poll_contents"]; + + $use_login = mysql_real_escape_string($_POST[use_login])=="Y"?"Y":"N"; + $is_show = mysql_real_escape_string($_POST[is_show])=="Y"?"Y":"N"; + + //ǥ Է + $sql = "update ".$tbl." SET + subject= '".mysql_real_escape_string($_POST[subject])."', + use_login= '".$use_login."', + is_show= '".$is_show."', + sdate = '".mysql_real_escape_string($_POST[sdate])."', + edate = '".mysql_real_escape_string($_POST[edate])."' + WHERE idx='$idx' + "; + + $rs = mysql_query($sql,$GLOBALS[dblink]); + + if($rs){ + //ǥ׸񿡼 + for($i=0;$i $val){ + $sql = "UPDATE ".$tbl_contents." SET + answer = '$val' + WHERE idx='$key' + "; + mysql_query($sql,$GLOBALS[dblink]); + } + + //ǥ׸ Է + for($i=0;$i date("Y-m-d",mktime())){ + jsMsg(" ۵ ǥԴϴ."); + jsHistory("-1") ; + exit; + } + if($arrInfo["list"][0][edate] < date("Y-m-d",mktime())){ + jsMsg("̹ ǥԴϴ."); + jsHistory("-1") ; + exit; + } + + //α ؾϴ ǥ ̹ ߴ üũ + if($arrInfo["list"][0][use_login]=="Y"){ + $sql = "select * from $tbl_log WHERE p_idx='$p_idx' AND user_id='".$_SESSION[$GLOBALS["_SITE"]["DOMAIN"]]["MEMBER"]["ID"]."' "; + $rs = mysql_query($sql,$GLOBALS[dblink]); + $total = mysql_num_rows($rs); + + if($total > 0){ + jsMsg("̹ Ͻ ǥԴϴ."); + jsHistory("-1") ; + exit; + } + } + + //ǥ׸ Ʈ + $sql = "UPDATE ".$tbl_contents." SET + vote = vote +1 WHERE idx = '$pc_idx' + "; + $rs = mysql_query($sql,$GLOBALS[dblink]); + + if($rs){ + //ǥα׿ Է + $sql = "insert into ".$tbl_log." SET + p_idx= '".$p_idx."', + pc_idx= '".$pc_idx."', + user_id= '".$_SESSION[$GLOBALS["_SITE"]["DOMAIN"]]["MEMBER"]["ID"]."', + ip = '".$_SERVER[REMOTE_ADDR]."', + wdate = now() + "; + + $rs = mysql_query($sql,$GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + } + + if($total > 0){ + return true; + }else{ + return false; + } +} +?> \ No newline at end of file diff --git a/module/poll/poll.php b/module/poll/poll.php new file mode 100644 index 0000000..4c8dc1b --- /dev/null +++ b/module/poll/poll.php @@ -0,0 +1,47 @@ + 0){ +?> + + + + + + + + + + "> + + + + + + + + + +
    + + + " value="" style="border:0">
    + +
    + \ No newline at end of file diff --git a/module/poll/poll_evn.php b/module/poll/poll_evn.php new file mode 100644 index 0000000..e595a09 --- /dev/null +++ b/module/poll/poll_evn.php @@ -0,0 +1,32 @@ + \ No newline at end of file diff --git a/module/popup/popup.inc.php b/module/popup/popup.inc.php new file mode 100644 index 0000000..5d04376 --- /dev/null +++ b/module/popup/popup.inc.php @@ -0,0 +1,50 @@ + + 0){ + for($i=0;$i<$arrPopupList["total"];$i++){ + if($arrPopupList["list"][$i]['p_mode'] == "P") { +?> + + diff --git a/module/popup/popup.lib.php b/module/popup/popup.lib.php new file mode 100644 index 0000000..ae58869 --- /dev/null +++ b/module/popup/popup.lib.php @@ -0,0 +1,168 @@ + 0){ + return true; + }else{ + return false; + } +} + + + +//팝업 수정하기 +function editPopup($idx){ + // 테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["popup"]; + + //이미지파일 처리 + $arrInfo = getArticleInfo($tbl, $idx); + + + + if ($_FILES[photo_file][error] == 0){ + //확장자 검사후 파일이름 생성 + $filename = $_FILES[photo_file][name]; + $attach_ext = explode(".",$filename); + $extension = $attach_ext[sizeof($attach_ext)-1]; + $extension = strtolower($extension); + $filerename = md5(mktime()) . "." . $extension; + $filesize = $_FILES[photo_file][size]; + $filetype = $_FILES[photo_file][type]; + + // 파일 확장자 검사 + if(!strcmp($extension,"htm") ||!strcmp($extension,"html") ||!strcmp($extension,"phtml") ||!strcmp($extension,"php") ||!strcmp($extension,"php3") ||!strcmp($extension,"php4") ||!strcmp($extension,"inc") ||!strcmp($extension,"pl") ||!strcmp($extension,"cgi")){ + jsMsg("not allowed file extension"); + jsHistory("-1"); + } + + if (is_uploaded_file($_FILES[photo_file][tmp_name])) { + unlink($GLOBALS["_SITE"]["UPLOADED_DATA"] . "/popup/".$arrInfo["list"][0][p_image]); + move_uploaded_file ($_FILES[photo_file][tmp_name],$GLOBALS["_SITE"]["UPLOADED_DATA"] . "/popup/".$filerename); + } + }else{ + $filerename = $arrInfo["list"][0][p_image]; + } + + // 테이블에 입력 + $sql = "UPDATE ".$tbl." set + subject='".mysql_real_escape_string($_POST[subject])."', + contents='".mysql_real_escape_string($_POST[contents])."', + width='".mysql_real_escape_string($_POST[width])."', + height='".mysql_real_escape_string($_POST[height])."', + p_mode='".mysql_real_escape_string($_POST[p_mode]=="P"?"P":"L")."', + p_type='".mysql_real_escape_string($_POST[p_type]=="IMG"?"IMG":"HTML")."', + p_image='".$filerename."', + p_url='".mysql_real_escape_string($_POST[p_url])."', + p_target='".mysql_real_escape_string($_POST[p_target]=="O"?"O":"B")."', + s_date='".mysql_real_escape_string($_POST[s_date])."', + e_date='".mysql_real_escape_string($_POST[e_date])."', + pop_top='".mysql_real_escape_string($_POST[pop_top])."', + pop_left='".mysql_real_escape_string($_POST[pop_left])."' + WHERE idx='".mysql_real_escape_string($_POST[idx])."' + "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($rs){ + return true; + }else{ + return false; + } + +} + +//팝업 삭제하기 +function deletePopup($idx){ + // 테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["popup"]; + + //이미지파일 처리 + $arrInfo = getArticleInfo($tbl, $idx); + + //게시판 테이블에서 삭제 + $sql = "DELETE FROM ".$tbl." + WHERE idx='".mysql_real_escape_string($_POST[idx])."' + "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($total > 0){ + @unlink($GLOBALS["_SITE"]["UPLOADED_DATA"] . "/popup/".$arrInfo["list"][0][p_image]); + return true; + }else{ + return false; + } +} + +//팝업 가져오기 +function getActivePopup(){ + $tbl = $GLOBALS["_conf_tbl"]["popup"]; + + $sql = "SELECT * "; + $sql .= "FROM ".$tbl." "; + $sql .= "WHERE s_date <= curdate() "; + $sql .= "AND e_date >= curdate() "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} +?> \ No newline at end of file diff --git a/module/popup/popup.php b/module/popup/popup.php new file mode 100644 index 0000000..a3f5e0a --- /dev/null +++ b/module/popup/popup.php @@ -0,0 +1,71 @@ + + + + <?=stripslashes($arrInfo["list"][0][subject])?> + + + + + + + + + + + + + + + +
    + + + " border="0"> + + " border="0"> + + + + +
    [창닫기]
    + + \ No newline at end of file diff --git a/module/popup/popup_layer.php b/module/popup/popup_layer.php new file mode 100644 index 0000000..87618c6 --- /dev/null +++ b/module/popup/popup_layer.php @@ -0,0 +1,60 @@ + + +
    " style="z-index:1000; position:absolute; left: px; top: px; background-color:#fff"> + +"> + + + + +
    + + " height="" cellpadding="0" cellspacing="0" style="line-height:0px;"> + + + +
    + + + ();">" border="0"> + + " border="0"> + + + + +
    + + + + + + +
    오늘하루 열지않음 ();">  ()" style="color:#FFCC66;font-size:9pt">[닫기]
    + +
    +
    + diff --git a/module/product/ajax.product.php b/module/product/ajax.product.php new file mode 100644 index 0000000..2cc64bf --- /dev/null +++ b/module/product/ajax.product.php @@ -0,0 +1,44 @@ + true, + "result" => $list, + ); + } else { + $return = array( + "success" => false, + "result" => $list, + ); + } + break; +} + +//DB해제 +SetDisConn($dblink); + +echo json_encode($return); +exit; +?> \ No newline at end of file diff --git a/module/product/catalog_download.php b/module/product/catalog_download.php new file mode 100644 index 0000000..1aaf58a --- /dev/null +++ b/module/product/catalog_download.php @@ -0,0 +1,27 @@ + 0){ + $src_file = $_SERVER[DOCUMENT_ROOT] . "/uploaded/product/" .$b_idx."/". $arrFile["list"][0][re_name]; + + //다운로드 수 업데이트 + $sql = "UPDATE " .$GLOBALS["_conf_tbl"]["catalog_files"]." SET "; + $sql .= " download = download + 1 "; + $sql .= "WHERE idx = '".$arrFile["list"][0][idx]."' "; + //echo $sql; + + fileDownload($src_file, iconv("utf-8","euc-kr",$arrFile["list"][0][ori_name])); + mysql_query($sql, $GLOBALS[dblink]); +}else{ + jsMsg('해당 파일이 없습니다.'); + //selfClose(); +} +//DB해제 +SetDisConn($dblink); +?> \ No newline at end of file diff --git a/module/product/photo_view.php b/module/product/photo_view.php new file mode 100644 index 0000000..d90773b --- /dev/null +++ b/module/product/photo_view.php @@ -0,0 +1,36 @@ + + + +<?=$arrInfo["list"][0]["ori_name"]?> + + + + + +
    + +
    + + \ No newline at end of file diff --git a/module/product/product.lib.php b/module/product/product.lib.php new file mode 100644 index 0000000..dad6ca6 --- /dev/null +++ b/module/product/product.lib.php @@ -0,0 +1,747 @@ + 1){ + $p_image = mysql_real_escape_string($_POST[p_image]); + }else{ + $p_image = $arrCurInfo["list"][0][p_image]; + } + + //ܵ + for($i=0; $i < count($_POST[shop_icon]); $i++){ + $str_icons .= $_POST[shop_icon][$i]; + if($i != count($_POST[shop_icon])-1){ + $str_icons .= "|"; + } + } + + for ($i=0; $i 0){ + return true; + }else{ + return false; + } + +} + +//ǰ ϱ +function editProduct($idx){ + //ǰ ̺ + $tbl = $GLOBALS["_conf_tbl"]["product"]; + + $arrInfo = getCategoryInfo(mysql_real_escape_string($_POST[cat_no])); + + // + $arrCurInfo = getArticleInfo($tbl, $idx); + + //ǥ̹ + if(strlen(mysql_real_escape_string($_POST[p_image])) > 1){ + $p_image = mysql_real_escape_string($_POST[p_image]); + }else{ + $p_image = $arrCurInfo["list"][0][p_image]; + } + + //ܵ + for($i=0; $i < count($_POST[shop_icon]); $i++){ + $str_icons .= $_POST[shop_icon][$i]; + if($i != count($_POST[shop_icon])-1){ + $str_icons .= "|"; + } + } + + for ($i=0; $i 0){ + return true; + }else{ + return false; + } + + +} + +//ǰ ó +function inputProductFiles($idx, $HTTP_POST_FILES){ + //̹ ó + + for($i=0;$i 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//ǰ ó +function delProductFiles($idx, $HTTP_POST_FILES){ + //ǰ ̺ + $tbl = $GLOBALS["_conf_tbl"]["product"]; + $tbl_files = $GLOBALS["_conf_tbl"]["product_files"]; + + // + $arrCurInfo = getArticleInfo($tbl, $idx); + + //̹ ϻ ڵ - üũ Ѱ͸ ó + for($i=0;$i0){ + $fileinfo = getProductFileInfo($arrCurInfo["list"][0][idx], $_POST[delPhoto][$i]); + //񿡼 + mysql_query("DELETE FROM ".$tbl_files." WHERE idx='".$fileinfo["list"][0][idx]."' ", $GLOBALS[dblink]); + //ũ + unlink($GLOBALS["_SITE"]["UPLOADED_DATA"]."/product/" . $arrCurInfo["list"][0][idx]."/".$fileinfo["list"][0][re_name]); + unlink($GLOBALS["_SITE"]["UPLOADED_DATA"]."/product/" . $arrCurInfo["list"][0][idx]."/l_".$fileinfo["list"][0][re_name]); + unlink($GLOBALS["_SITE"]["UPLOADED_DATA"]."/product/" . $arrCurInfo["list"][0][idx]."/m_".$fileinfo["list"][0][re_name]); + unlink($GLOBALS["_SITE"]["UPLOADED_DATA"]."/product/" . $arrCurInfo["list"][0][idx]."/s_".$fileinfo["list"][0][re_name]); + } + } + //̹ ϻ ڵ +} + + + +//īŻα ó +function inputCatalogFiles($idx, $HTTP_POST_FILES){ + + for($i=0;$i 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//īŻα ó +function delCatalogFiles($idx, $HTTP_POST_FILES){ + //ǰ ̺ + $tbl = $GLOBALS["_conf_tbl"]["product"]; + $tbl_files = $GLOBALS["_conf_tbl"]["catalog_files"]; + + // + $arrCurInfo = getArticleInfo($tbl, $idx); + + //ϻ ڵ - üũ Ѱ͸ ó + for($i=0;$i0){ + $fileinfo = getCatalogFileInfo($arrCurInfo["list"][0][idx], $_POST[delCatalog][$i]); + //񿡼 + mysql_query("DELETE FROM ".$tbl_files." WHERE idx='".$fileinfo["list"][0][idx]."' ", $GLOBALS[dblink]); + //ũ + unlink($GLOBALS["_SITE"]["UPLOADED_DATA"]."/product/" . $arrCurInfo["list"][0][idx]."/".$fileinfo["list"][0][re_name]); + } + } + //ϻ ڵ +} + +//ǰ - +function getProductListBaseNFile($cat_no, $orderby, $sw="", $sk="", $scale, $offset=0){ + //̺ + $tbl = $GLOBALS["_conf_tbl"]["product"];//ǰ + $tbl_files = $GLOBALS["_conf_tbl"]["product_files"];//ǰ + $tbl_category = $GLOBALS["_conf_tbl"]["category"];//īװ + + //īװ + if($cat_no !=""){ + $arrCategoryInfo = getCategoryInfo(mysql_real_escape_string($cat_no)); + $que_where .= " and A.cat_code like '" . $arrCategoryInfo["list"][0][cat_code] . "%' "; + } + + //˻Ű尡 + if($sk !=""){ + switch($sw){ + case("name") : + $que_where .= " and (A.p_name like '%$sk%') "; + break; + case("category") : + $que_where .= " and (C.cat_name like '%$sk%') "; + break; + case("contents") : + $que_where .= " and (A.contents like '%$sk%') "; + break; + case("recommand") : + $que_where .= " and (A.show_recommand = 'Y' ) "; + break; + case("best_lg") : + $que_where .= " and (A.show_best_lg = 'Y' ) "; + break; + case("best") : + $que_where .= " and (A.show_best= 'Y' ) "; + break; + case("main") : + $que_where .= " and (A.show_main= 'Y' ) "; + break; + default : + $que_where .= " and (A.p_name like '%$sk%' or C.cat_name like '%$sk%' or A.contents like '%$sk%') "; + } + } + + //order by + if($orderby !=""){ + $orderby = $orderby; + }else{ + $orderby = "A.sort_num DESC, A.idx DESC"; + } + + //īƮ + $sql = "select count(A.idx) from $tbl A LEFT JOIN ".$tbl_category." C ON A.cat_no=C.cat_no WHERE 1=1 $que_where "; +// echo $sql; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $row = mysql_fetch_row($rs); + $total_rs = $row[0]; + + // + $sql = "SELECT A.*, B.idx AS f_idx, B.ori_name, B.re_name, B.type, B.size, C.cat_name "; + $sql .= "FROM ".$tbl." A "; + $sql .= "LEFT JOIN ".$tbl_files." B ON A.idx=B.b_idx "; + $sql .= "LEFT JOIN ".$tbl_category." C ON A.cat_no=C.cat_no "; + $sql .= "WHERE 1=1 $que_where group by A.idx order by $orderby "; + + + if($total_rs > 0){ + $list['total'] = $total_rs; + // ׺̼ . + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset ü Խù offset üԽù - offset + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + if($scale != "0"){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset ̿ limit + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // ׺̼ . + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + + +//ǰ - +function getProductListMain($limit){ + //̺ + $tbl = $GLOBALS["_conf_tbl"]["product"];//ǰ + $tbl_files = $GLOBALS["_conf_tbl"]["product_files"];//ǰ + + // + $sql = "SELECT A.idx, A.p_name, A.wdate , B.re_name, B.width, B.height "; + $sql .= "FROM ".$tbl." A "; + $sql .= "LEFT JOIN ".$tbl_files." B ON A.idx=B.b_idx "; + $sql .= "WHERE show_main='Y' group by A.idx order by A.sort_num DESC, A.idx DESC limit $limit "; + + + $rs = mysql_query($sql,$GLOBALS[dblink]); + $total = mysql_num_rows($rs); + + $list['list']['total'] = $total; + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + + return $list; +} + +//ǰ - id +function getProductInfo($idx){ + //̺ + $tbl = $GLOBALS["_conf_tbl"]["product"];//ǰ + $tbl_files = $GLOBALS["_conf_tbl"]["product_files"];//ǰ + $tbl_catalog_files = $GLOBALS["_conf_tbl"]["catalog_files"];//īŻα + + //⺻ + $sql = "SELECT A.* "; + $sql .= "FROM ".$tbl." A "; + $sql .= " WHERE A.idx = '$idx' "; + $rs = mysql_query($sql, $GLOBALS[dblink]); +// echo $sql; + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + + // (ǰ) + $sql = "SELECT * "; + $sql .= "FROM ".$tbl_files." "; + $sql .= "WHERE b_idx = '$idx' order by idx "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total_files'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['files'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total_files'] = 0; + } + + // (īŻα) + $sql = "SELECT * "; + $sql .= "FROM ".$tbl_catalog_files." "; + $sql .= "WHERE b_idx = '$idx' and type2 = '' order by idx"; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total_catalog_files'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['catalog_files'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['catalog_total_files'] = 0; + } + + // (īŻα) + $sql = "SELECT * "; + $sql .= "FROM ".$tbl_catalog_files." "; + $sql .= "WHERE b_idx = '$idx' and type2 = 'catalog1' order by idx"; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total_catalog_files1'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['catalog_files1'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['catalog_total_files1'] = 0; + } + // (īŻα) + $sql = "SELECT * "; + $sql .= "FROM ".$tbl_catalog_files." "; + $sql .= "WHERE b_idx = '$idx' and type2 = 'catalog2' order by idx"; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total_catalog_files2'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['catalog_files2'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['catalog_total_files2'] = 0; + } + // (īŻα) + $sql = "SELECT * "; + $sql .= "FROM ".$tbl_catalog_files." "; + $sql .= "WHERE b_idx = '$idx' and type2 = 'catalog3' order by idx"; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total_catalog_files3'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['catalog_files3'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['catalog_total_files3'] = 0; + } + + + return $list; +} + +function deleteProduct($idx){ + //ǰ ̺ + $tbl = $GLOBALS["_conf_tbl"]["product"];//ǰ + $tbl_files = $GLOBALS["_conf_tbl"]["product_files"];//ǰ + $tbl_catalog_files = $GLOBALS["_conf_tbl"]["catalog_files"];//īŻα + $tbl_board_product = $GLOBALS["_conf_tbl"]["board_product"];//ǰ+Խù + + $arrInfo = getArticleInfo($tbl, $idx); + + if($arrInfo["total"] > 0){ + //ǰ + $sql = "DELETE FROM ".$tbl." WHERE idx='".$arrInfo["list"][0][idx]."' "; + //echo $sql . "
    "; + $rs1 = mysql_query($sql, $GLOBALS[dblink]); + + //ǰ + $sql = "DELETE FROM ".$tbl_files." WHERE b_idx='".$arrInfo["list"][0][idx]."' "; + //echo $sql . "
    "; + $rs2 = mysql_query($sql, $GLOBALS[dblink]); + + //īŻα + $sql = "DELETE FROM ".$tbl_catalog_files." WHERE b_idx='".$arrInfo["list"][0][idx]."' "; + //echo $sql . "
    "; + $rs3 = mysql_query($sql, $GLOBALS[dblink]); + + //Խù+ǰ + mysql_query("DELETE FROM ".$tbl_board_product." WHERE p_idx='".$idx."' ", $GLOBALS[dblink]); + + if($rs1 && $rs2 && $rs3 && $arrInfo["list"][0][idx]){ + //ǰ ϻ + rrmdir ($GLOBALS["_SITE"]["UPLOADED_DATA"]."/product/" . $arrInfo["list"][0][idx]); + // Լ 丮 ϴ ׷ Ʒ ߰ + @rmdir ($GLOBALS["_SITE"]["UPLOADED_DATA"]."/product/" . $arrInfo["list"][0][idx]); + return true; + }else{ + return false; + } + }else{ + return false; + } +} + +//߰ īװ +function getProductExtCat($p_idx){ + $tbl = $GLOBALS["_conf_tbl"]["product_cat"]; + + $sql = "SELECT * "; + $sql .= "FROM " .$tbl." "; + $sql .= "WHERE p_idx = '$p_idx' "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} +?> \ No newline at end of file diff --git a/module/research/research.lib.php b/module/research/research.lib.php new file mode 100644 index 0000000..20e31c4 --- /dev/null +++ b/module/research/research.lib.php @@ -0,0 +1,495 @@ + 0){ + //׸ Է + for($i=0;$i 0){ + $list['total'] = $total_rs; + // ׺̼ . + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset ü Խù offset üԽù - offset + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + //scale 0 ÿ ü + if($scale > 0){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset ̿ limit + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // ׺̼ . + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + return $list; +} + +//̺ +function getResearchQuestionList($idx, $orderby){ + // ̺ + $tbl = $GLOBALS["_conf_tbl"]["research_question"]; + + if($orderby){ + $orderby = $orderby; + }else{ + $orderby = "idx asc"; + } + $sql = "SELECT * "; + $sql .= "FROM $tbl WHERE r_idx='$idx' order by $orderby "; + + +//echo $sql; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//̺ +function getResearchAnswerList($r_idx, $rq_idx, $orderby){ + // ̺ + $tbl = $GLOBALS["_conf_tbl"]["research_answer"]; + + if($orderby){ + $orderby = $orderby; + }else{ + $orderby = "idx asc"; + } + $sql = "SELECT * "; + $sql .= "FROM $tbl WHERE r_idx='$r_idx' AND rq_idx='$rq_idx' order by $orderby "; + + +//echo $sql; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//հ谡 +function getResearchAnswerTotal($idx){ + // ̺ + $tbl = $GLOBALS["_conf_tbl"]["research_contents"]; + + $sql = "SELECT sum(vote) "; + $sql .= "FROM $tbl WHERE p_idx='$idx' "; + + +//echo $sql; + $rs = mysql_query($sql, $GLOBALS[dblink]); + + $row = mysql_fetch_row($rs); + return $row[0]; +} + + + +// +function editResearch($idx){ + $tbl = $GLOBALS["_conf_tbl"]["research_info"]; + $tbl_question = $GLOBALS["_conf_tbl"]["research_question"]; + + $use_login = mysql_real_escape_string($_POST[use_login])=="Y"?"Y":"N"; + $is_show = mysql_real_escape_string($_POST[is_show])=="Y"?"Y":"N"; + + // Է + $sql = "update ".$tbl." SET + subject= '".mysql_real_escape_string($_POST[subject])."', + use_login= '".$use_login."', + is_show= '".$is_show."', + sdate = '".mysql_real_escape_string($_POST[sdate])."', + edate = '".mysql_real_escape_string($_POST[edate])."' + WHERE idx='$idx' + "; + + $rs = mysql_query($sql,$GLOBALS[dblink]); + + if($rs){ + //׸񿡼 + for($i=0;$i $val){ + $sql = "UPDATE ".$tbl_question." SET + question = '$val' + WHERE idx='$key' + "; + mysql_query($sql,$GLOBALS[dblink]); + } + + //׸ Է + for($i=0;$i 0){ + $sql = "DELETE FROM ".$tbl." WHERE idx = '$idx' "; + $rsf = mysql_query($sql,$GLOBALS[dblink]); + + $sql = "DELETE FROM ".$tbl_answer." WHERE r_idx = '$idx' "; + $rsf = mysql_query($sql,$GLOBALS[dblink]); + + $sql = "DELETE FROM ".$tbl_log." WHERE r_idx = '$idx' "; + $rsf = mysql_query($sql,$GLOBALS[dblink]); + + return true; + }else{ + return false; + } +} + + +function getMainResearch(){ + // ̺ + $tbl = $GLOBALS["_conf_tbl"]["research_info"]; + $tbl_question = $GLOBALS["_conf_tbl"]["research_question"]; + $tbl_answer = $GLOBALS["_conf_tbl"]["research_answer"]; + + $sql = "SELECT * FROM $tbl WHERE is_show='Y' AND sdate <= now() AND concat(edate,' 23:59:59') >= now() order by idx desc "; + + $rs = mysql_query($sql,$GLOBALS[dblink]); + $total = mysql_num_rows($rs); + + $list['list']['total'] = $total; + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + // 亯 + $sql = " + SELECT A.question, B.* FROM $tbl_question A LEFT JOIN $tbl_answer B ON A.idx=B.rq_idx + WHERE A.r_idx = '".$list['list'][$i][idx]."' + "; + $rs_q = mysql_query($sql,$GLOBALS[dblink]); + $total_q = mysql_num_rows($rs_q); + $list['list'][$i]['qalist']['total'] = $total_q; + + for($j=0; $j < $total_q; $j++){ + $list['list'][$i]['qalist'][$j] = mysql_fetch_assoc($rs_q); + } + } + + return $list; +} + + + +// 亯 +function editResearchAnswer($r_idx, $rq_idx){ + $tbl = $GLOBALS["_conf_tbl"]["research_info"]; + $tbl_answer = $GLOBALS["_conf_tbl"]["research_answer"]; + + //亯 ׸񿡼 + for($i=0;$i $val){ + $sql = "UPDATE ".$tbl_answer." SET + answer = '$val' + WHERE idx='$key' + "; + $rs = mysql_query($sql,$GLOBALS[dblink]); + } + } + //亯 ׸ Է + for($i=0;$i date("Y-m-d",mktime())){ + jsMsg(" ۵ Դϴ."); + jsHistory("-1") ; + exit; + } + if($arrInfo["list"][0][edate] < date("Y-m-d",mktime())){ + jsMsg("̹ Դϴ."); + jsHistory("-1") ; + exit; + } + + //α ؾϴ ̹ ߴ üũ + if($arrInfo["list"][0][use_login]=="Y"){ + $sql = "select * from $tbl_log WHERE r_idx='$r_idx' AND user_id='".$_SESSION[$GLOBALS["_SITE"]["DOMAIN"]]["MEMBER"]["ID"]."' "; + $rs = mysql_query($sql,$GLOBALS[dblink]); + $total = mysql_num_rows($rs); + + if($total > 0){ + jsMsg("̹ Ͻ Դϴ."); + jsHistory("-1") ; + exit; + } + }else{ + //αǰ Ƿ ̹ ߴ üũ + $sql = "select * from $tbl_log WHERE r_idx='$r_idx' AND ip='".$_SERVER[REMOTE_ADDR]."' "; + $rs = mysql_query($sql,$GLOBALS[dblink]); + $total = mysql_num_rows($rs); + + if($total > 0){ + jsMsg("̹ Ͻ Դϴ."); + jsHistory("-1") ; + exit; + } + } + + // 50 ϰ~ (Ȥø spam Է) + if($_POST[total_q] < 50){ + for($i=1;$i 0){ + $list['total'] = $total_rs; + // ׺̼ . + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset ü Խù offset üԽù - offset + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + //scale 0 ÿ ü + if($scale > 0){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset ̿ limit + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // ׺̼ . + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + return $list; +} + + +function getResearchJoinView($r_idx, $user_id){ + // ̺ + $tbl = $GLOBALS["_conf_tbl"]["research_log"]; + $tbl_question = $GLOBALS["_conf_tbl"]["research_question"]; + $tbl_answer = $GLOBALS["_conf_tbl"]["research_answer"]; + + $sql = " + SELECT A. * , B.question, C.answer + FROM $tbl A + LEFT JOIN $tbl_question B ON A.rq_idx = B.idx + LEFT JOIN $tbl_answer C ON A.ra_idx = C.idx + WHERE A.r_idx = '$r_idx' + AND user_id = '$user_id' + "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + return $list; +} +?> \ No newline at end of file diff --git a/module/research/research.php b/module/research/research.php new file mode 100644 index 0000000..f7e13f4 --- /dev/null +++ b/module/research/research.php @@ -0,0 +1,84 @@ + 0){ +?> + + + + + + + + + + "> + + + + + + + + + + + + + + + + + + + +
    + . +
    + |" style="border:0"> +
    + + + \ No newline at end of file diff --git a/module/research/research_evn.php b/module/research/research_evn.php new file mode 100644 index 0000000..8b495f1 --- /dev/null +++ b/module/research/research_evn.php @@ -0,0 +1,28 @@ + \ No newline at end of file diff --git a/module/shop/ajax.good.php b/module/shop/ajax.good.php new file mode 100644 index 0000000..f1f6e56 --- /dev/null +++ b/module/shop/ajax.good.php @@ -0,0 +1,44 @@ + true, + "result" => $list, + ); + } else { + $return = array( + "success" => false, + "result" => $list, + ); + } + break; +} + +//DB해제 +SetDisConn($dblink); + +echo json_encode($return); +exit; +?> \ No newline at end of file diff --git a/module/shop/ajax_cart_process.php b/module/shop/ajax_cart_process.php new file mode 100644 index 0000000..7c8befa --- /dev/null +++ b/module/shop/ajax_cart_process.php @@ -0,0 +1,46 @@ + \ No newline at end of file diff --git a/module/shop/ajax_ext_cat.php b/module/shop/ajax_ext_cat.php new file mode 100644 index 0000000..5d37c52 --- /dev/null +++ b/module/shop/ajax_ext_cat.php @@ -0,0 +1,46 @@ + + + + + + + + + 1차 초기화는 따로위에서 함 + ?> + + + + + + + + + +
    +
    +     +
    \ No newline at end of file diff --git a/module/shop/ajax_get_rel_opt.php b/module/shop/ajax_get_rel_opt.php new file mode 100644 index 0000000..2e5cc54 --- /dev/null +++ b/module/shop/ajax_get_rel_opt.php @@ -0,0 +1,22 @@ + \ No newline at end of file diff --git a/module/shop/ajax_wish_process.php b/module/shop/ajax_wish_process.php new file mode 100644 index 0000000..7df7b3a --- /dev/null +++ b/module/shop/ajax_wish_process.php @@ -0,0 +1,32 @@ + \ No newline at end of file diff --git a/module/shop/cart.php b/module/shop/cart.php new file mode 100644 index 0000000..5f59c0b --- /dev/null +++ b/module/shop/cart.php @@ -0,0 +1,144 @@ + +
    +
    +
    + +
    +

    장바구니

    +
    + +
    +
      +
    1. 1. 장바구니에 담긴 상품은 로그 오프 시 자동 삭제 됩니다.
    2. +
    3. 2. 품절 및 판매중지된 상품은 장바구니 목록에서 자동으로 삭제됩니다.
    4. +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + 0){ + for($i=0;$i<$arrList["total"];$i++){ + $arrOpt1[$i] = explode("|",$arrList["list"][$i][opt_1]); + $arrOpt2[$i] = explode("|",$arrList["list"][$i][opt_2]); + $arrOpt3[$i] = explode("|",$arrList["list"][$i][opt_3]); + $arrOpt4[$i] = explode("|",$arrList["list"][$i][opt_4]); + $arrOpt5[$i] = explode("|",$arrList["list"][$i][opt_5]); + $arrOptRel1[$i] = explode("|",$arrList["list"][$i][opt_rel_1]); + + //추가금액 계산 + $optionPrice = $arrOpt1[$i][1] + $arrOpt2[$i][1] + $arrOpt3[$i][1] + $arrOpt4[$i][1] + $arrOpt5[$i][1]; + + //적립금계산 + if($arrList["list"][$i][point_unit]=="P"){ + $thisPoint = (($arrList["list"][$i][point]*($arrList["list"][$i][price]+$optionPrice))/100) * $arrList["list"][$i][qty]; + }else{ + $thisPoint = $arrList["list"][$i][point] * $arrList["list"][$i][qty]; + } + + //합계금액 계산 + $totalPrice += ($arrList["list"][$i][price]*$arrList["list"][$i][qty])+($optionPrice * $arrList["list"][$i][qty]); + ?> + + + + + + + + + + + + + + + + +
    상품명판매가수량배송비합계/추가금관리
    " checked="checked"> + + " class="input"/> +

    ',frmCartList.qty_.value);">수정하기

    +

    ');">삭제하기

    +
    장바구니가 비었습니다.
    + +
    + + [상품금액] + [배송비] = [총구매액]
    + + +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/module/shop/cart_evn.php b/module/shop/cart_evn.php new file mode 100644 index 0000000..fbee4fa --- /dev/null +++ b/module/shop/cart_evn.php @@ -0,0 +1,52 @@ + \ No newline at end of file diff --git a/module/shop/coupon_list.php b/module/shop/coupon_list.php new file mode 100644 index 0000000..a2d4042 --- /dev/null +++ b/module/shop/coupon_list.php @@ -0,0 +1,232 @@ +0){ +for($i=0;$i<$arrList["total"];$i++){ + $arrIdx .= $arrList["list"][$i][g_idx]."|"; + + if($arrList["list"][$i][price_1] > 0) { + $price = $arrList["list"][$i][price_1]; + } else { + $price = $arrList["list"][$i][price]; + } + $arrOpt1[$i] = explode("|",$arrList["list"][$i][opt_1]); + $arrOpt2[$i] = explode("|",$arrList["list"][$i][opt_2]); + $arrOpt3[$i] = explode("|",$arrList["list"][$i][opt_3]); + $arrOpt4[$i] = explode("|",$arrList["list"][$i][opt_4]); + $arrOpt5[$i] = explode("|",$arrList["list"][$i][opt_5]); + $arrOptRel1[$i] = explode("|",$arrList["list"][$i][opt_rel_1]); + + //추가금액 계산 + $optionPrice = $arrOpt1[$i][1] + $arrOpt2[$i][1] + $arrOpt3[$i][1] + $arrOpt4[$i][1] + $arrOpt5[$i][1]; + + $cart_qty[$arrList["list"][$i][g_idx]] = $arrList["list"][$i][qty]; + $cart_price[$arrList["list"][$i][g_idx]] = $price+$optionPrice; + + $totalPrice += ($price*$arrList["list"][$i][qty])+($optionPrice * $arrList["list"][$i][qty]); +} +} + +$arrGoodList = getCouponGoodList($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], substr($arrIdx,0,-1), "N"); + +$arrGoodList2 =getMypageCouponList($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], "Y1", 0, 0, $totalPrice); + +//DB해제 +SetDisConn($dblink); +?> + + + + + + + + + + + + +
    +

    쿠폰목록

    +

    상품할인 쿠폰

    +
    + + + + + + + + + + + + + + + + + + + + 0){ + for($i=0;$i<$arrGoodList["total"];$i++){ + + if($arrGoodList["list"][$i][coupon_unit]=="P") { + $couponprice = ($arrGoodList["list"][$i][coupon_dis]*$cart_price[$arrGoodList["list"][$i][g_idx]])/100; + } else { + $couponprice = $arrGoodList["list"][$i][coupon_dis]; + } + ?> + + "> + "> + + + + + + + + + + + + + + + + + +
    상품명가격쿠폰수량할인액쿠폰적용가사용
    등록된 쿠폰이 없습니다.
    +
    + +

    이벤트 쿠폰

    +
    + + + + + + + + + + + + + + 0){ + for($i=0;$i<$arrGoodList2["total"];$i++){ + if($arrGoodList2["list"][$i][coupon_unit]=="P") { + if($arrGoodList2["list"][$i][over_price] < $totalPrice && $arrGoodList2["list"][$i][over_price]!="0") { + $couponprice = ($arrGoodList2["list"][$i][coupon_dis]*$arrGoodList2["list"][$i][over_price])/100; + } else { + $couponprice = ($arrGoodList2["list"][$i][coupon_dis]*$totalPrice)/100; + } + } else { + $couponprice = $arrGoodList2["list"][$i][coupon_dis]; + } + ?> + + "> + + + + + + + + + + + + + +
    쿠폰명기간할인액사용
    ~
    등록된 쿠폰이 없습니다.
    +
    + + +
    할인금액: 0원    [ 쿠폰 사용하기 ]
    + +
    + + \ No newline at end of file diff --git a/module/shop/good_detail.php b/module/shop/good_detail.php new file mode 100644 index 0000000..d244cf6 --- /dev/null +++ b/module/shop/good_detail.php @@ -0,0 +1,461 @@ + 20){ + array_shift($_SESSION[$_SITE["DOMAIN"]]["SHOP"]["VIEW"]); + } +}else{ + $_SESSION[$_SITE["DOMAIN"]]["SHOP"]["VIEW"][] = array($arrInfo["list"][0][idx],$arrInfo["list"][0][p_image]); +} +?> + + +
    +
    +
    +

    +
    + +
    + "> + "> +
    + + + +
    +
    +
    + /" name="overimage" width="448" height="298" alt=""> +
    + +
    +
    +

    + + + + +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0){?> + + + + + + + + +
    상품번호
    판매가
    제조사
    원산지
    제조년도
    배송비 + + 무료배송 + + 수신자부담(착불) + + + + (만원 이상 무료배송) + +
    보유수량
    +
    + + + 증가 + 감소 + +
    +
    + "> + +
    +
    +
    +
    총 상품금액
    +
    +
    + + + +
    +
    + + + + +
    + +

    전자상거래 등에서의 상품정보제공 고시

    + + +
    +
    + + + +
    + +
    +
    +

    교환/반품 안내

    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    교환/반품 안내
    교환/반품 비용- 왕복비용(단, 고객 변심의 경우에만 발생)
    + - 도서산간 및 일부 지역 추가비용 발생
    + - 부분반품 시, 남은 금액이 무료배송 조건을 유지하면 편도 배송비용만 부과
    교환/반품 신청 기준일- 단순변심에 의한 교환/반품은 상품 수령 후 7일 이내까지만 가능(배송비용과 교환/반품비용 왕복 배송비 고객부담)
    + - 상품의 내용이 표시‧광고의 내용과 다른 경우에는 상품을 수령한 날부터 3개월 이내, 그 사실을 안 날 또는 알 수 있었던 날부터
    +    30일이내에 청약철회 가능
    교환/반품 제한사항- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우
    + - 고객의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우
    + - 세트상품 일부 사용, 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염으로 재판매 불가한 경우
    + - 모니터 해상도의 차이로 인해 색상이나 이미지가 실제와 달라, 고객이 단순 변심으로 교환/반품을 무료로 요청하는 경우
    +
    +
    + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    + +
    diff --git a/module/shop/good_list.php b/module/shop/good_list.php new file mode 100644 index 0000000..e91c606 --- /dev/null +++ b/module/shop/good_list.php @@ -0,0 +1,149 @@ + +
    +

    +
    Home > 재품소개 > >
    +
    +
    + + + 0): ?> +
    + +
    + + + + + + + + + +
    +
      + 0){?> + 0){ + for($k=0;$k "; + } + } + } + + //신규글 표시(28일간) + if(strtotime($arrList["list"][$i][wdate])+(28*86400) > time()){ + $newImage =" New"; + }else{ + $newImage =""; + } + ?> +
    • + +
      +
      +
      +
      +
    • + + +
    • 등록된 상품이 없습니다.
    • + +
    +
    +
    + +
    +
    +
    diff --git a/module/shop/good_list.php.bak b/module/shop/good_list.php.bak new file mode 100644 index 0000000..6491e07 --- /dev/null +++ b/module/shop/good_list.php.bak @@ -0,0 +1,172 @@ + +
    +
    +
    +

    추천제품 소개 각 카테고리에서 추천드리는 상품입니다.

    +
    Home >
    +
    + + +
    +
      + 0){?> + 0){ + for($k=0;$k "; + } + } + } + if($i%4==0){echo "
      ";} + ?> +
    • + +
      <?=$arrBestList['list'][$i]['etc_9']?>
      + +
      + +
      + +
      +
      +
    • + + +
    • 등록된 상품이 없습니다.
    • + +
    +
    + +
    +
    +
    +
    +

    +
    +
    + + + + +
    +
    · 총 의 상품이 진열되어 있습니다.
    +
    + + +
    + 0){?> +
      + 0){ + for($k=0;$k "; + } + } + } + if($i%4==0){echo "
      ";} + ?> +
    • + +
      <?=$arrList['list'][$i]['etc_9']?>
      + +
      + +
      + +
      +
      +
    • + +
    + +
      등록된 상품이 없습니다.
    + +
    + +
    + +
    + + +
    +
    \ No newline at end of file diff --git a/module/shop/good_opt.php b/module/shop/good_opt.php new file mode 100644 index 0000000..08073d1 --- /dev/null +++ b/module/shop/good_opt.php @@ -0,0 +1,255 @@ + + +
    +
    +

    + HOME > +
    + + +
    -
    + +
    +
      + 0):?> + +
    • + + [ ]
      +
      +
      +
      + +
    • + +
    • 등록된 상품이 없습니다.
    • + +
    +


    + +
    -
    + +
    +
      + 0):?> + +
    • + + [ ]
      +
      +
      +
      + +
    • + +
    • 등록된 상품이 없습니다.
    • + +
    +


    + +
    -
    + +
    +
      + 0):?> + +
    • + + [ ]
      +
      +
      +
      + +
    • + +
    • 등록된 상품이 없습니다.
    • + +
    +


    + +
    -
    + +
    +
      + 0):?> + +
    • + + [ ]
      +
      +
      +
      + +
    • + +
    • 등록된 상품이 없습니다.
    • + +
    +


    + +
    -
    + +
    +
      + 0):?> + +
    • + + [ ]
      +
      +
      +
      + +
    • + +
    • 등록된 상품이 없습니다.
    • + +
    +
    + + + + + +
    +
      + 0):?> + 0){ + for($k=0;$k "; + } + } + } + ?> +
    • + + [ ]
      +
      + +
      + + +
      + + +
      + + +
      + + +
    • + +
    • 등록된 상품이 없습니다.
    • + +
    +
    + + + +
    + +
    +
    \ No newline at end of file diff --git a/module/shop/good_popup.php b/module/shop/good_popup.php new file mode 100644 index 0000000..6008dce --- /dev/null +++ b/module/shop/good_popup.php @@ -0,0 +1,271 @@ + + + + +<?=$_SITE["NAME"]?> 관리자 + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + 상품검색 + + + +
    + + + 1차 초기화는 따로위에서 함 + ?> + + + + + +
    +
    +
    + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + + + + + + + + + + +
    선택사진상품코드상품분류상품명판매가등록일
    + + + ":""?> + +
    등록된 상품이 없습니다.
    + +
    + + + + +
    + + + + + diff --git a/module/shop/good_review.php b/module/shop/good_review.php new file mode 100644 index 0000000..81b4661 --- /dev/null +++ b/module/shop/good_review.php @@ -0,0 +1,23 @@ + + + + + + + VJ Center + + + + + + + + + \ No newline at end of file diff --git a/module/shop/good_search.php b/module/shop/good_search.php new file mode 100644 index 0000000..0d34e4a --- /dev/null +++ b/module/shop/good_search.php @@ -0,0 +1,111 @@ + + + +
    +
    +
    +

    제품검색

    +
    Home > 제품검색
    +
    +
    +
    ""로 검색한 결과, 개의 제품이 등록되어 있습니다.
    + + + +
    + 0){?> +
      + 0){ + for($k=0;$k "; + } + } + } + if($i%4==0){echo "
      ";} + ?> +
    • +
      + +
      + []
      +
      +
      +
    • + +
    + +
      등록된 상품이 없습니다.
    + +
    + +
    + +
    + + +
    +
    \ No newline at end of file diff --git a/module/shop/mypage/mypage.php b/module/shop/mypage/mypage.php new file mode 100644 index 0000000..2350864 --- /dev/null +++ b/module/shop/mypage/mypage.php @@ -0,0 +1,205 @@ + + +
    +

    HOME > 마이페이지

    +
    + + + +
    +
    +
    +

    회원님 오피스픽을 방문해주셔서 감사합니다. 오늘도 좋은 하루 되세요~

    +

    + 연락처 :
    + 기본배송지 주소 : () +

    +

    회원정보 수정

    +
    +
    + 나의 총 구매금액은? +
    +
    +

    + 회원구분 개인회원 +

    +

    + 이달의 회원등급 일반회원 +

    +

    + 나의 포인트 현황 +

    +
    +
    + + + + +

    최근 주문정보

    +
    + + + + + + + + + + + + + + 0){ + for($i=0;$i<$arrOrderList["list"]["total"];$i++){ + //합계금액 계산 + $totalPrice = $arrOrderList["list"][$i][total_amount]+$arrOrderList["list"][$i][ship_amount]; + ?> + + + + + + + + + + + + + + + + +
    주문일자상품명주문총액결제수단주문상태송장번호

    &listURL=">

    376665241

    주문내역이 없습니다.
    +
    + + + + + +

    관심상품정보

    +
    + +
    +
      +
    • 장바구니 상품
    • +
    • 찜한 상품
    • +
    • 최근 본 상품
    • +
    +
    + +
    + +
    + + + + + + + + + +
    + diff --git a/module/shop/mypage/order_info.php b/module/shop/mypage/order_info.php new file mode 100644 index 0000000..3652c74 --- /dev/null +++ b/module/shop/mypage/order_info.php @@ -0,0 +1,300 @@ + + 0){ +?> + +
    +
    +

    주문/배송조회

    +
    + Home > 마이페이지 > 주문/배송조회 +
    +
    +
    + + +
    +
    [주문번호]     [주문내역]
    +
    +
    + + + + + + + + + + + + + + + + + + + + + 0){ + for($i=0;$i<$arrInfo["good_total"];$i++){ + //추가금액 계산 + $optionPrice = $arrInfo["good_list"][$i][g_opt_1_price] + $arrInfo["good_list"][$i][g_opt_2_price] + $arrInfo["good_list"][$i][g_opt_3_price] + $arrInfo["good_list"][$i][g_opt_4_price] + $arrInfo["good_list"][$i][g_opt_5_price]; + + //합계금액 계산 + $totalPrice += ($arrInfo["good_list"][$i][g_price]*$arrInfo["good_list"][$i][g_qty])+($optionPrice * $arrInfo["good_list"][$i][g_qty]); + ?> + + + + + + + + + + + + + + +
    상품명판매가수량합계/추가금배송상태
    +
    + +
    +
    +
    ".$arrInfo["good_list"][$i][g_opt_1]:""?> + ".$arrInfo["good_list"][$i][g_opt_2]:""?> + ".$arrInfo["good_list"][$i][g_opt_3]:""?> + ".$arrInfo["good_list"][$i][g_opt_4]:""?> + ".$arrInfo["good_list"][$i][g_opt_5]:""?> +
    +
    +
    +
    +

    + + + +
    구매항목이 없습니다.
    +
    + +
    +

    주문하시는 분 정보

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    이름
    주소[]
    전화번호
    휴대폰번호
    E-mail
    +
    +

    +
    +

    배송지 정보

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    이름
    주소[]
    전화번호
    휴대폰번호
    남기실 내용
    +
    + + +

    +
    +

    결제내역

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    결제방법
    결제내역 조회 + ※당일 결제건에 한해서 영수증 출력이 가능합니다.
    + http://www.allthegate.com/support/card_search.html +
    결제금액 산출상품구매금액(원) + 배송비(원) +
    적립금 사용
    총결제금액
    입금계좌
    입금자명
    입금예정일자
    택배회사
    송장번호 +
    + + " readonly> + +   + + + + +
    + + +
    +
    + +
    + +
    + + +
    +
    +
    +
    + + + + + + +
    해당하는 주문내역이 없습니다.
    + + + +
    + + +
    \ No newline at end of file diff --git a/module/shop/mypage/order_list.php b/module/shop/mypage/order_list.php new file mode 100644 index 0000000..c583139 --- /dev/null +++ b/module/shop/mypage/order_list.php @@ -0,0 +1,117 @@ + +
    +

    주문/배송조회

    +
    + Home > 마이페이지 > 주문/배송조회 +
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + 0){ + for($i=0;$i<$arrList["list"]["total"];$i++){ + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){//회원로그인을 한 상태라면 + $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], 1, mysql_real_escape_string($arrList["list"][$i][order_no])); + }else{ + $arrInfo = getOrderInfoGuest($_SESSION[$_SITE["DOMAIN"]]["GUEST"]["NAME"], $_SESSION[$_SITE["DOMAIN"]]["GUEST"]["MOBILE"], mysql_real_escape_string($arrList["list"][$i][order_no])); + } + ?> + + + + + + + + + + + + + + + +
    주문번호주문상품정보결제금액결제수단주문상태주문일자
    "> + +

    +

    + +

    ')" class="btn-pack medium">취소요청

    + +
    주문내역이 없습니다.
    +
    + +
    + +
    + +
    +
      +
    • · 주문취소와 반품/교환은 “ 입금대기중”과 “결제완료” 단계에서만 가능합니다.
    • +
    • · 무통장 입금 주문 후, 3일 동안 입금하지 않으시면 자동주문취소처리 됩니다.
    • +
    • · 상품이 택배사로 인도되면 “배송중” 상태가 되며, 택배사에서 수취확인일이 확인된 주문은 “주문완료”상태로 변경됩니다.
    • +
    • · 배송 완료 후 3일 이후에는 반품 및 교환이 불가하며, 제품후기를 작성하시면 적립금을 받으실 수 있습니다.
    • +
    • · 주문번호를 클릭하시면 주문상세내역을 확인하실 수 있으며, 영수증은 주문상세내역에서 출력하실 수 있습니다.
    • +
    +
    + + +
    +
    + +
    + + +
    \ No newline at end of file diff --git a/module/shop/mypage/point.php b/module/shop/mypage/point.php new file mode 100644 index 0000000..e174183 --- /dev/null +++ b/module/shop/mypage/point.php @@ -0,0 +1,72 @@ + +
    +

    마이페이지

    +
    +
    + + +
    사용가능한 적립금은 입니다.
    +
    +
    + + + + + + + + + + + + + + + + + + + 0):?> + + + + + + + + + + + + + + + + +
    날짜적립/사용 내용차감 내역적립 내역잔여 적립금
    적립금 기록이 없습니다.
    +
    + +
    + +
    + + +
    + diff --git a/module/shop/mypage/wish_list.php b/module/shop/mypage/wish_list.php new file mode 100644 index 0000000..b873387 --- /dev/null +++ b/module/shop/mypage/wish_list.php @@ -0,0 +1,100 @@ + +
    +

    관심상품

    +
    + Home > 마이페이지 > 관심상품 +
    +
    +
    + + +
    + + + + + + + + + + + + + + + + + 0){ + for($i=0;$i<$arrList["total"];$i++){ + //적립금계산 + if($arrList["list"][$i][point_unit]=="P"){ + $thisPoint = ($arrList["list"][$i][point]*$arrList["list"][$i][price])/100; + }else{ + $thisPoint = $arrList["list"][$i][point]; + } + + //추가금액 계산 + $optionPrice = $arrOpt1[$i][1] + $arrOpt2[$i][1] + $arrOpt3[$i][1] + $arrOpt4[$i][1] + $arrOpt5[$i][1]; + + //합계금액 계산 + $totalPrice += $arrList["list"][$i][price]; + ?> + + + + + + + + + + + + +
    상품명판매가격적립금관리
    + + +

    +
    +

    장바구니

    +

    ');">삭제하기

    +
    찜한 상품이 없습니다.
    +
    + +
    + +
    + +
    +
      +
    • · 상품이미지 및 상품명을 클릭하시면 해당 상품 페이지로 이동합니다.
    • +
    • · 품절/판매중지/절판 상품인 경우에는 한번에 장바구니에 담을 수 없습니다.
    • +
    +
    + + +
    + diff --git a/module/shop/order.php b/module/shop/order.php new file mode 100644 index 0000000..db89609 --- /dev/null +++ b/module/shop/order.php @@ -0,0 +1,430 @@ + + + +
    + +
    +

    주문서작성/결제

    +
    +
    + + + + + + + + + + + + + + + + + + + + + 0){ + for($i=0;$i<$arrList["total"];$i++){ + $arrOpt1[$i] = explode("|",$arrList["list"][$i][opt_1]); + $arrOpt2[$i] = explode("|",$arrList["list"][$i][opt_2]); + $arrOpt3[$i] = explode("|",$arrList["list"][$i][opt_3]); + $arrOpt4[$i] = explode("|",$arrList["list"][$i][opt_4]); + $arrOpt5[$i] = explode("|",$arrList["list"][$i][opt_5]); + $arrOptRel1[$i] = explode("|",$arrList["list"][$i][opt_rel_1]); + + //추가금액 계산 + $optionPrice = $arrOpt1[$i][1] + $arrOpt2[$i][1] + $arrOpt3[$i][1] + $arrOpt4[$i][1] + $arrOpt5[$i][1]; + + //적립금계산 + if($arrList["list"][$i][point_unit]=="P"){ + $thisPoint = (($arrList["list"][$i][point]*($arrList["list"][$i][price]+$optionPrice))/100) * $arrList["list"][$i][qty]; + }else{ + $thisPoint = $arrList["list"][$i][point] * $arrList["list"][$i][qty]; + } + + //합계금액 계산 + $totalPrice += ($arrList["list"][$i][price]*$arrList["list"][$i][qty])+($optionPrice * $arrList["list"][$i][qty]); + ?> + + + + + + + + + + + + + + +
    상품명판매가적립금수량합계/추가금
    +
    + +
    + +
    + + + + + + + + + +
    +
    +
    +
    장바구니가 비었습니다.
    +
    + +
    총상품금액 : 원 + [배송비 : 원] =
    + + 주문번호가 있어야만 주문가능 +if($arrList["list"][0][order_no] !=""){ + +//아래 결제대행사 파일에서 사용하는 변수 +//주문요약 정보 +if($arrList["total"]==1){ + $order_summary = $arrList["list"][0]["g_name"]; +}else{ + $order_summary = $arrList["list"][0]["g_name"] . " 외 " . ($arrList["total"]-1). "건"; +} + +//결제금액 +$payPrice = $totalPrice+$shipPrice; + +//주문번호 +$order_no = $arrList["list"][0][order_no]; +?> + +
    + + + + + +
    +
    +

    결제

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    결제방식 + + $val){?> + + + + $val){?> + + + + +
    쿠폰사용
    현재 보유 적립금
    적립금 사용 + 적립금으로 결재할 금액
    + * 적림금의 경우 보유 적립금이 이상 될 경우에만 사용가능합니다. (1,000점씩 사용가능합니다.) + +
    결제금액 산출상품구매금액(원) + 배송비(원)
    결제하실 금액
    + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    +
    +

    주문하시는 분 정보

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    이름" style="width:120px;"/>
    이메일" style="width:70%;" />
    주소 +
    + " maxlength="8" style="width:60px;"/> + 우편번호검색 + +
    +
    + " style="width:95%;" />
    +
    +
    + " style="width:95%;" /> +
    +
    전화번호 + - + - + +
    휴대폰번호 + - + - + +
    +
    + +
    +
    +

    받으시는 분 정보

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    이름
    주소 + +
    +
    +
    +
    + +
    +
    전화번호 + - + - + +
    휴대폰번호 + - + - + +
    남기실 내용
    +
    +
    + +
    +
    +

    개인정보 수집 및 활용 동의

    +
    +
    + oooo에서는 기업/단체 및 개인의 정보 수집 및 이용 등 처리에 있어 아래의 사항을 관계법령에 따라 고지하고 안내해 드립니다.
    +
    + 1. 정보수집의 이용 목적
    + 물품 및 서비스 상품에 대한 주문 및 접수, 대금 결제를 이용하고 주문 상품 배송 및 회원에게 제공되는 각종 편의 서비스를 이용
    +
    + 2. 수집/이용 항목
    + 이름, 주소, 전화번호, 핸드폰번호
    +
    + 3. 보유 및 이용기간
    + 개인정보 수집 및 이용목적이 달성된 후에는 예외 없이 해당 정보를 지체 없이 파기.
    +
    + 4. 개인정보처리담당
    + 이름 : ooo
    + 이메일 : test@naver.com
    + 전화 : 000-111-2222 +
    + +
    + + + +
    + + +
    + 주문번호가 있어야만 주문가능 +?> diff --git a/module/shop/order_evn.php b/module/shop/order_evn.php new file mode 100644 index 0000000..3833d30 --- /dev/null +++ b/module/shop/order_evn.php @@ -0,0 +1,99 @@ + + opener.document.location.href='/shop.php?goPage=OrderList'; + self.close(); + "; + }else{ + jsMsg("증빙서류 발급신청중 에러가 발생했습니다."); + jsHistory("-1") ; + } + +} else if($_POST[evnMode]=="orderCancel"){ + + $RS = setOrderInfoCancel($_POST["order_no"]); + + if($RS==true){ + jsGo("/shop.php?goPage=OrderList","",""); + }else{ + jsMsg("취소요청이 실패하였습니다."); + jsHistory("-1") ; + } + +} else { + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //재고체크 + checkPreOderStock($arrList); + + + //_POST 로 받는 주문번호가 기존에 주문된 주문번호인지 확인 + if(checkVaildOrderNo(mysql_real_escape_string($_POST["order_no"]))==true){ + jsGo("/shop.php?goPage=Cart","parent","이미 주문이 완료되었습니다."); + } + + //_POST 로 받은 주문번호가 구매직전 장바구니에 있는지 확인 + if($_POST["order_no"] != $arrList["list"][0]["order_no"]){ + jsGo("/shop.php?goPage=Cart","parent","잘못된 주문 정보 입니다. 주문 장바구니에 해당 주문건이 없습니다."); + } + + //_POST 정보를 주문정보 테이블에 입력 + + //$blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"]); + $blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"],"1"); + + if($blnRS==true){ + //주문자에게 메일발송 + $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_real_escape_string($_REQUEST["order_no"])); + $arrMailInfo = getMailConfig(1); + + //jsGo("/shop.php?goPage=Thanks&order_no=".$arrList["list"][0]["order_no"],"parent",""); + if($_POST[pay_type]=="cash"){//무통장결제 + jsGo("/shop.php?goPage=Thanks&order_no=".$arrList["list"][0]["order_no"],"parent",""); + }else{ + jsGo("/shop.php?goPage=PayCard&order_no=".$arrList["list"][0]["order_no"],"parent",""); + } + } +} +//DB해제 +SetDisConn($dblink); +?> \ No newline at end of file diff --git a/module/shop/order_mobile.php b/module/shop/order_mobile.php new file mode 100644 index 0000000..94c19b7 --- /dev/null +++ b/module/shop/order_mobile.php @@ -0,0 +1,406 @@ + + +
    +
    +
    + +
    +

    주문서작성/결제

    +
    +
    + + + + + + + + + + + + + + + + + + + + + 0){ + for($i=0;$i<$arrList["total"];$i++){ + $arrOpt1[$i] = explode("|",$arrList["list"][$i][opt_1]); + $arrOpt2[$i] = explode("|",$arrList["list"][$i][opt_2]); + $arrOpt3[$i] = explode("|",$arrList["list"][$i][opt_3]); + $arrOpt4[$i] = explode("|",$arrList["list"][$i][opt_4]); + $arrOpt5[$i] = explode("|",$arrList["list"][$i][opt_5]); + $arrOptRel1[$i] = explode("|",$arrList["list"][$i][opt_rel_1]); + + //추가금액 계산 + $optionPrice = $arrOpt1[$i][1] + $arrOpt2[$i][1] + $arrOpt3[$i][1] + $arrOpt4[$i][1] + $arrOpt5[$i][1]; + + //적립금계산 + if($arrList["list"][$i][point_unit]=="P"){ + $thisPoint = (($arrList["list"][$i][point]*($arrList["list"][$i][price]+$optionPrice))/100) * $arrList["list"][$i][qty]; + }else{ + $thisPoint = $arrList["list"][$i][point] * $arrList["list"][$i][qty]; + } + + //합계금액 계산 + $totalPrice += ($arrList["list"][$i][price]*$arrList["list"][$i][qty])+($optionPrice * $arrList["list"][$i][qty]); + ?> + + + + + + + + + + + + + + +
    상품명판매가적립금수량합계/추가금
    +
    + +
    + +
    + + + + + + + + + +
    +
    +
    +
    장바구니가 비었습니다.
    +
    + +
    총상품금액 : 원 + [배송비 : 원] =
    + + 주문번호가 있어야만 주문가능 +if($arrList["list"][0][order_no] !=""){ + +//아래 결제대행사 파일에서 사용하는 변수 +//주문요약 정보 +if($arrList["total"]==1){ + $order_summary = $arrList["list"][0]["g_name"]; +}else{ + $order_summary = $arrList["list"][0]["g_name"] . " 외 " . ($arrList["total"]-1). "건"; +} + +//결제금액 +$payPrice = $totalPrice+$shipPrice; + +//주문번호 +$order_no = $arrList["list"][0][order_no]; +?> + +
    + + + + + +
    +
    +

    결제

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    결제방식 + + $val){?> + + + + $val){?> + + + + +
    쿠폰사용
    현재 보유 적립금
    적립금 사용 + 적립금으로 결재할 금액
    + * 적림금의 경우 보유 적립금이 이상 될 경우에만 사용가능합니다. (1,000점씩 사용가능합니다.) + +
    결제금액 산출상품구매금액(원) + 배송비(원)
    결제하실 금액
    + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    +
    +

    주문하시는 분 정보

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    이름" />
    이메일" />
    주소 + " maxlength="8" /> + 우편번호검색 + + " style="width:98%;" />
    + " style="width:98%;" /> +
    전화번호 - -
    휴대폰번호 - -
    +
    + + + + +
    +
    +

    받으시는 분 정보

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    이름
    주소 + + 우편번호검색 + +
    + +
    전화번호 - -
    휴대폰번호 - -
    남기실 내용
    +
    +
    + +
    +
    +

    개인정보 수집 및 활용 동의

    +
    +
    + C4 H&N Trading에서는 기업/단체 및 개인의 정보 수집 및 이용 등 처리에 있어 아래의 사항을 관계법령에 따라 고지하고 안내해 드립니다.
    +
    + 1. 정보수집의 이용 목적
    + 물품 및 서비스 상품에 대한 주문 및 접수, 대금 결제를 이용하고 주문 상품 배송 및 회원에게 제공되는 각종 편의 서비스를 이용
    +
    + 2. 수집/이용 항목
    + 이름, 주소, 전화번호, 핸드폰번호
    +
    + 3. 보유 및 이용기간
    + 개인정보 수집 및 이용목적이 달성된 후에는 예외 없이 해당 정보를 지체 없이 파기.
    +
    + 4. 개인정보처리담당
    + 이름 :
    + 이메일 : c4hnntrading01@hanmail.net
    + 전화 : +49-(0)611-3605-9767 +
    + +
    + + + +
    + + +
    + 주문번호가 있어야만 주문가능 +?> diff --git a/module/shop/pay_card.php b/module/shop/pay_card.php new file mode 100644 index 0000000..1bad658 --- /dev/null +++ b/module/shop/pay_card.php @@ -0,0 +1,166 @@ + +
    +
    +
    + + +
    +

    주문서작성/결제

    +
    + +
    + + + + + + + + + + + + + + 0){ + for($i=0;$i<$arrInfo["good_total"];$i++){ + $GoodsInfo = getGoodInfo($arrInfo["good_list"][$i][g_idx]); + //추가금액 계산 + $optionPrice = $arrInfo["good_list"][$i][g_opt_1_price] + $arrInfo["good_list"][$i][g_opt_2_price] + $arrInfo["good_list"][$i][g_opt_3_price] + $arrInfo["good_list"][$i][g_opt_4_price] + $arrInfo["good_list"][$i][g_opt_rel_1_price] + $arrInfo["good_list"][$i][g_opt_rel_2_price]; + + //합계금액 계산 + $totalPrice += ($arrInfo["good_list"][$i][g_price]*$arrInfo["good_list"][$i][g_qty])+($optionPrice * $arrInfo["good_list"][$i][g_qty]); + ?> + + + + + + + + + + + + +
    상품명합계/추가금
    + /" width="70" height="70" border="0" /> + + + + + + + + + +
    구매항목이 없습니다.
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    결제 방식 +
    결제금액 산출상품구매금액(원)
    적립금 사용
    총결제금액
    + +
    + + + + +
    + + + + +"; +//echo "os_type2 : ".$_SERVER['HTTP_USER_AGENT']."
    "; +?> + + +
    +
    + +
    \ No newline at end of file diff --git a/module/shop/pg/agspay.php b/module/shop/pg/agspay.php new file mode 100644 index 0000000..fae0548 --- /dev/null +++ b/module/shop/pg/agspay.php @@ -0,0 +1,365 @@ + + + + + +"> +"> +"> +"> +"> + +"> +"> +"> +"> +"> +"> +"> +"> +"> +"> +"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +"> +"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/module/shop/pg/agspay/AGSLib.php b/module/shop/pg/agspay/AGSLib.php new file mode 100644 index 0000000..f628f0d --- /dev/null +++ b/module/shop/pg/agspay/AGSLib.php @@ -0,0 +1,1925 @@ +ERRMSG = ""; + + /* + Log ü + */ + $this->log = new PayLog( $this->REQUEST ); + if(!$this->log->InitLog()) + { + $this->ERRMSG .= "α ϴ.[".$this->REQUEST["AgsPayHome"]."]" ; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = $this->ERRMSG; + return false; + } + + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Start!" ); + + if($this->REQUEST["Type"] == "Cancel") + { + if($this->REQUEST["AuthTy"] == "virtual" ) + { + $this->log->WriteLog( WARN, "Cannot Cancel AuthTy[".$this->REQUEST["AuthTy"]."]" ); + $this->log->CloseLog( "AuthTy[".$this->REQUEST["AuthTy"]."] End"); + return false; + } + } + + /* + û αױ + */ + $this->writeLogArray($this->REQUEST); + + + //ҿû + if($this->REQUEST["Type"] == "Cancel") + { + if( $this->NetCancel() == false ) + { + /* + αױ + */ + $this->log->WriteLog( ERROR,$this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Result Value [" ); + $this->writeLogArray($this->RESULT); + $this->log->WriteLog( ERROR, "]" ); + + $this->log->WriteLog( ERROR, $this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Fail End" ); + $this->payQuit(); + return false; + } + + /* + αױ + */ + $this->log->WriteLog( WARN,$this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Result Value [" ); + $this->writeLogArray($this->RESULT); + $this->log->WriteLog( WARN, "]" ); + + $this->log->WriteLog( WARN, $this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Success End" ); + //log ü ݱ + $this->log->CloseLog( $this->GetResult("rCancelResMsg") ); + return true; + } + + if( empty( $this->REQUEST["StoreId"] ) || $this->REQUEST["StoreId"] == "" ) + { + $this->ERRMSG .= "̵ Է¿ Ȯο
    "; //̵ + } + + if( empty( $this->REQUEST["OrdNo"] ) || $this->REQUEST["OrdNo"] == "" ) + { + $this->ERRMSG .= "ֹȣ Է¿ Ȯο
    "; //ֹȣ + } + + if( empty( $this->REQUEST["ProdNm"] ) || $this->REQUEST["ProdNm"] == "" ) + { + $this->ERRMSG .= "ǰ Է¿ Ȯο
    "; //ǰ + } + + if( empty( $this->REQUEST["Amt"] ) || $this->REQUEST["Amt"] == "" ) + { + $this->ERRMSG .= "ݾ Է¿ Ȯο
    "; //ݾ + } + + if( empty( $this->REQUEST["DeviId"] ) || $this->REQUEST["DeviId"] == "" ) + { + $this->ERRMSG .= "̵ܸ Է¿ Ȯο
    "; //̵ܸ + } + + if( empty( $this->REQUEST["AuthYn"] ) || $this->REQUEST["AuthYn"] == "" ) + { + $this->ERRMSG .= " Է¿ Ȯο
    "; // + } + + if( strlen($this->ERRMSG) == 0 ){ + + /* Make Tid */ + if( ($MakeTIDResult = $this->MakeNetCancID()) != true){ + $this->log->WriteLog( FATAL, "Make NetCancelID Fail" ); + $this->payQuit(); + return false; + }else{ + $this->log->WriteLog( INFO, "Make NetCancelID OK" ); + } + + /* Make Pay Msg */ + if( ($MakeMsgResult = $this->MakeMsg()) != true){ + $this->log->WriteLog( FATAL, "Make Pay Msg Fail" ); + $this->ERRMSG = "û ."; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->payQuit(); + return false; + }else{ + $this->log->WriteLog( INFO, "Make Pay Msg OK" ); + } + + + + /* Send & Recv Msg */ + if( ($ParseResult = $this->SendRecvMsg()) != true){ + $this->log->WriteLog( FATAL, "Send & Recv Msg Fail" ); + $this->ERRMSG = "û ۼ .( Ȯּ)"; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->REQUEST["CancelMsg"] = "Send & Recv Msg Fail"; + $this->log->WriteLog( WARN, "NetCancel Call" ); + if( $this->NetCancel() == false ) // + { + $this->log->WriteLog( FATAL, "NetCancel Fail End" ); + $this->payQuit(); + return false; + } + $this->log->WriteLog( INFO, "NetCancel Success End" ); + $this->payQuit(); + return false; + }else{ + $this->log->WriteLog( INFO, "Send & Recv Msg OK" ); + } + + /* RecvMsg Parsing */ + if( ($ParseResult = $this->ParseMsg()) != true){ + $this->log->WriteLog( FATAL, "Msg Parsing Fail" ); + $this->ERRMSG = " ó .( Ȯּ)"; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->REQUEST["CancelMsg"] = "Msg Parsing Fail"; + $this->log->WriteLog( WARN, "NetCancel Call" ); + if( $this->NetCancel() == false ) // + { + $this->log->WriteLog( FATAL, "NetCancel Fail End" ); + $this->payQuit(); + return false; + } + $this->log->WriteLog( INFO, "NetCancel Success End" ); + $this->payQuit(); + return false; + }else{ + $this->log->WriteLog( INFO, "Msg Parsing OK" ); + } + + } + else + { + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + } + + /* + αױ + */ + + $this->log->WriteLog( INFO,$this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Result Value [" ); + $this->writeLogArray($this->RESULT); + $this->log->WriteLog( INFO, "]" ); + + //log ü ݱ + $this->log->CloseLog( $this->GetResult("rResMsg") ); + + return true; + + } //startPay() End + + + /* + μ + */ + function payQuit() + { + //log ü ݱ + $this->log->CloseLog( $this->GetResult("rResMsg") ); + + /** close **/ + if($this->fp != false ){ + fclose( $this->fp ); + } + + } + + /* + μ + */ + function writeLogArray($array) + { + foreach ($array as $key => $value) + { + $this->log->WriteLog( INFO, $key.":".$value ); + } + } + + /* + û Msg ۽ Msg + */ + function SendRecvMsg() + { + $this->log->WriteLog( INFO, "Send & Recv Msg Start" ); + + /**************************************************************************** + * + * ȣȭProcess ϰ ۼ + * + ****************************************************************************/ + + /** ȣȭProcess **/ + $this->log->WriteLog( INFO, "Send Data To PG Start [ " ); + $this->SendValArray = array(); + $this->SendValArray = explode( "|", $this->sSendMsg ); + $this->log->WriteLog( INFO, $this->SendValArray); + $this->log->WriteLog( INFO, "] Send Data To PG End " ); + $this->log->WriteLog( INFO, "SendMsg : [".$this->sSendMsg."]" ); + + /** open **/ + $this->log->WriteLog( INFO, "Connect IP:[".$this->LOCALADDR."] Port:[".$this->LOCALPORT."]" ); + $this->fp = fsockopen( $this->LOCALADDR, $this->LOCALPORT , &$errno, &$errstr, $this->CONN_TIMEOUT ); + + if( !$this->fp ) + { + $this->log->WriteLog( ERROR, "Socket Connect Error: [".$errno."-".$errstr."]" ); + + /** з ޼ **/ + if($this->REQUEST["Type"] == "Cancel") + { + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = "Socket Connect Fail"; + $this->log->WriteLog( ERROR, $this->RESULT["rCancelResMsg"] ); + } + else + { + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = "Socket Connect Fail"; + $this->log->WriteLog( ERROR, $this->RESULT["rResMsg"] ); + } + if($this->fp) fclose( $this->fp ); + return false; + } + /** ῡ ϿǷ ͸ ޴´. **/ + $this->log->WriteLog( INFO, "Socket Open OK" ); + + fputs( $this->fp, $this->sSendMsg ); + + socket_set_timeout($this->fp, $this->READ_TIMEOUT); + + /** 6Ʈ ̸ üũ ͸ŭ ޴´. **/ + /**************************************************************************** + * + * PHP üũ ߻ ֽϴ + * ޼: () üũ ſ + * üũ Ʒ Ͽ Ͻʽÿ + * $this->sRecvLen = fgets( $this->fp, 6 ); + * $this->sRecvMsg = fgets( $this->fp, $this->sRecvLen ); + * + ****************************************************************************/ + + if($this->REQUEST["RecvLen"] == 7) + { + $this->sRecvLen = fgets( $this->fp, $this->REQUEST["RecvLen"] ); + $this->sRecvMsg = fgets( $this->fp, $this->sRecvLen + 1 ); + } + else if($this->REQUEST["RecvLen"] == 6) + { + $this->sRecvLen = fgets( $this->fp, $this->REQUEST["RecvLen"] ); + $this->sRecvMsg = fgets( $this->fp, $this->sRecvLen); + } + else + { + $this->REQUEST["RecvLen"] = 7; + $this->sRecvLen = fgets( $this->fp, $this->REQUEST["RecvLen"] ); + $this->sRecvMsg = fgets( $this->fp, $this->sRecvLen + 1 ); + } + + $this->log->WriteLog( INFO, "RecvMsg Length : [".$this->sRecvLen."]" ); + $this->log->WriteLog( INFO, "RecvMsg : [".$this->sRecvMsg."]" ); + + /** close **/ + fclose( $this->fp ); + $this->log->WriteLog( INFO, "Socket Close OK"); + + if( strlen( $this->sRecvMsg ) > 0 && strlen( $this->sRecvMsg ) == $this->sRecvLen ) + { + /** () üũ **/ + $this->log->WriteLog( INFO, "RecvMsg Length Check OK"); + + $this->RecvValArray = array(); + $this->RecvValArray = explode( "|", $this->sRecvMsg ); + + /** null Ǵ NULL , 0 ȯ + for( $i = 0; $i < sizeof( $this->RecvValArray); $i++ ) + { + $this->RecvValArray[$i] = trim( $this->RecvValArray[$i] ); + + if( !strcmp( $this->RecvValArray[$i], "null" ) || !strcmp( $this->RecvValArray[$i], "NULL" ) ) + { + $this->RecvValArray[$i] = ""; + } + + if( IsNumber( $this->RecvValArray[$i] ) ) + { + if( $this->RecvValArray[$i] == 0 ) $this->RecvValArray[$i] = ""; + } + } + **/ + $this->log->WriteLog( INFO, "Send & Recv Msg End" ); + return true; + } + else + { + /** () üũ ſ з **/ + if($this->REQUEST["Type"] == "Cancel") + { + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = "Recv Msg Length Check Errror"; + $this->log->WriteLog( ERROR, $this->RESULT["rCancelResMsg"]." : sRecvLen[".$this->sRecvLen."]"."sRecvMsg Length[".strlen( $this->sRecvMsg )."]"); + } + else + { + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = "Recv Msg Length Check Errror"; + $this->log->WriteLog( ERROR, $this->RESULT["rResMsg"]." : sRecvLen[".$this->sRecvLen."]"."sRecvMsg Length[".strlen( $this->sRecvMsg )."]"); + } + + return false; + + } + + } //SendMsg() End + + /* + Msg ۽ Msg + */ + function SendRecvMsgWeb() + { + // ۾ + return false; + } + + /* + Make Pay Msg + */ + function MakeMsg() + { + $this->log->WriteLog( INFO, "Make Msg Start" ); + /**************************************************************************** + * + * + * AuthTy = "card" ſī + * - SubTy = "isp" ISP + * - SubTy = "visa3d" ȽŬ + * - SubTy = "normal" Ϲݰ + * + * AuthTy = "iche" Ϲ-ü + * + * AuthTy = "virtual" Ϲ-(Ա) + * + * AuthTy = "hp" ڵ + * + * AuthTy = "ars" ARS + * + ****************************************************************************/ + + if( strcmp( $this->REQUEST["AuthTy"], "card" ) == 0 ) + { + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) + { + /**************************************************************************** + * + * [1-1] ſī - ISP + * + * -- ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- û + * + ͱ(6) + ISPڵ(1) + + * + ( "|" Ѵ.) + * (6) | üID(20) | ȸID(20) | ݾ(12) | + * ֹȣ(40) | ܸȣ(10) | (40) | ȭ(21) | + * (100) | ֹڸ(40) | ֹڿó(100) | Ÿ䱸(350) | + * ǰ(300) | ȭڵ(3) | ϹҺαⰣ(2) | ҺαⰣ(2) | + * KVPīڵ(22) | Ű(256) | ȣȭ(2048) | ī(50) | + * ȸ IP(20) | ȸ Email(50) | ID (50) | + * + ****************************************************************************/ + + $this->ENCTYPE = 2; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "plug15"."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["DeviId"]."|". + $this->REQUEST["RcpNm"]."|". + $this->REQUEST["RcpPhone"]."|". + $this->REQUEST["DlvAddr"]."|". + $this->REQUEST["OrdNm"]."|". + $this->REQUEST["OrdPhone"]."|". + $this->REQUEST["Remark"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["KVP_CURRENCY"]."|". + $this->REQUEST["partial_mm"]."|". + $this->REQUEST["noIntMonth"]."|". + $this->REQUEST["KVP_CARDCODE"]."|". + $this->REQUEST["KVP_SESSIONKEY"]."|". + $this->REQUEST["KVP_ENCDATA"]."|". + $this->REQUEST["KVP_CONAME"]."|". + $this->REQUEST["UserIp"]."|". + $this->REQUEST["UserEmail"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."Make MSG OK " ); + } + else if( ( strcmp( $this->REQUEST["SubTy"], "visa3d" ) == 0 ) || ( strcmp( $this->REQUEST["SubTy"], "normal" ) == 0 ) ) + { + /**************************************************************************** + * + * [1-2] ſī - VISA3D, Ϲ + * + * -- ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" ϸ īȣ,ȿⰣ,йȣ,ֹιȣ ȣȭȴ.) + * (6) | üID(20) | ȸID(20) | ݾ(12) | ֹȣ(40) | + * ܸȣ(10) | īȣ(16) | ȿⰣ(6) | ҺαⰣ(4) | (1) | + * īйȣ(2) | ֹεϹȣ/ڹȣ(10) | (40) | ȭ(21) | (100) | + * ֹڸ(40) | ֹڿó(100) | Ÿ䱸(350) | ǰ(300) | MPI_CAVV | MPI_MD64 | MPI_ECI | ID (50) | + * + ****************************************************************************/ + + $this->ENCTYPE = 0; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "plug15"."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["DeviId"]."|". + $this->encrypt_aegis($this->REQUEST["CardNo"])."|". + $this->encrypt_aegis($this->REQUEST["ExpYear"].$this->REQUEST["ExpMon"])."|". + $this->REQUEST["Instmt"]."|". + $this->REQUEST["AuthYn"]."|". + $this->encrypt_aegis($this->REQUEST["Passwd"])."|". + $this->encrypt_aegis($this->REQUEST["SocId"])."|". + $this->REQUEST["RcpNm"]."|". + $this->REQUEST["RcpPhone"]."|". + $this->REQUEST["DlvAddr"]."|". + $this->REQUEST["OrdNm"]."|". + $this->REQUEST["UserIp"].";".$this->REQUEST["OrdPhone"]."|". + $this->REQUEST["UserEmail"].";".$this->REQUEST["Remark"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["MPI_CAVV"]."|". + $this->REQUEST["MPI_MD64"]."|". + $this->REQUEST["MPI_ECI"]."|". + $this->REQUEST["UserEmail"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."Make MSG OK " ); + } + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0) + { + /**************************************************************************** + * + * [2-1] ͳݹŷ ü() ó + * + * -- ̺κ ͳݹŷ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ͳݹŷ û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | ֹȣ(40) | ָ(20) | ŷݾ(8) | + * ڵ(2) | ֹιȣ(13) | ֹڿó(16) | ̸ּ(50) | ǰ(100) | + * ֹ̿ȣ(50) | FNBC ŷȣ(20) | üð(14) | ݿ࿩(1) | ȸ̵(20) | + * ŷڱ(2) | źȮιȣ(13) | ũλ뿩(1) | ũȸȣ(17) | ũΰݾ(8)| + * ũμݾ(8) | + * + ****************************************************************************/ + + $this->ENCTYPE = R; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "RB-PayReq"."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["ICHE_OUTBANKMASTER"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["ICHE_OUTBANKNAME"]."|". + $this->REQUEST["ICHE_OUTACCTNO"]."|". + $this->REQUEST["OrdPhone"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["ICHE_POSMTID"]."|". + $this->REQUEST["ICHE_FNBCMTID"]."|". + $this->REQUEST["ICHE_APTRTS"]."|". + $this->REQUEST["ICHE_CASHYN"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["ICHE_CASHGUBUN_CD"]."|". + $this->REQUEST["ICHE_CASHID_NO"]."|". + $this->REQUEST["ICHE_ECWYN"]."|". + $this->REQUEST["ICHE_ECWID"]."|". + $this->REQUEST["ICHE_ECWAMT1"]."|". + $this->REQUEST["ICHE_ECWAMT2"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHEARS_SOCKETYN"], "Y" ) == 0) + { + /**************************************************************************** + * + * [2-2] ڷŷ ü() ó + * + * -- ̺κ ڷŷ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ڷŷ û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | ֹȣ(40) | ָ(20) | + * ŷݾ(8) | ڵ(2) | ֹιȣ(13) | ֹڿó(16) | + * ̸ּ(50) | ǰ(100) | ֹ̿ȣ(50) | FNBC ŷȣ(20) | + * üð(14) | ݿ࿩(1) | ȸ̵(20) | ŷڱ(2) | + * źȮιȣ(13) | ũλ뿩(1) | ũȸȣ(17) | ũΰݾ(8) | + * ũμݾ(8) | + * + ****************************************************************************/ + + $this->ENCTYPE = B; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "TB-PayReq"."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["ICHEARS_POSMTID"]."|". + $this->REQUEST["ICHEARS_ADMNO"]."|". + $this->REQUEST["ICHEARS_CENTERCD"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["ICHE_OUTACCTNO"]."|". + $this->REQUEST["ICHE_OUTBANKMASTER"]."|". + $this->REQUEST["ICHEARS_HPNO"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["ICHE_ECWYN"]."|". + $this->REQUEST["ICHE_ECWID"]."|". + $this->REQUEST["ICHE_ECWAMT1"]."|". + $this->REQUEST["ICHE_ECWAMT2"]."|". + $this->REQUEST["ICHE_CASHYN"]."|". + $this->REQUEST["ICHE_CASHGUBUN_CD"]."|". + $this->REQUEST["ICHE_CASHID_NO"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + + } + else if( strcmp( $this->REQUEST["AuthTy"], "virtual" ) == 0 ) //߰ + { + /**************************************************************************** + * + * [3] + * + * -- ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- û + * + ͱ(6) + ȣȭ (1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | ֹȣ(40) | ڵ(4) | ¹ȣ(20) | + * ŷݾ(13) | Աݿ(8) | ڸ(20) | ֹιȣ(13) | + * ̵ȭ(21) | ̸(50) | ּ(100) | ڸ(20) | + * ڿó(21) | ּ(100) | ǰ(100) | Ÿ䱸(300) | (50) | (100)| + * + ****************************************************************************/ + + $this->ENCTYPE = "V"; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + /* $this->REQUEST["AuthTy"]."|". */ + "vir_n|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["VIRTUAL_CENTERCD"]."|". + $this->REQUEST["VIRTUAL_NO"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["VIRTUAL_DEPODT"]."|". + $this->REQUEST["OrdNm"]."|". + $this->REQUEST["ZuminCode"]."|". + $this->REQUEST["OrdPhone"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["OrdAddr"]."|". + $this->REQUEST["RcpNm"]."|". + $this->REQUEST["RcpPhone"]."|". + $this->REQUEST["DlvAddr"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["Remark"]."|". + $this->REQUEST["MallUrl"]."|". + $this->REQUEST["MallPage"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + } + else if( strcmp( $this->REQUEST["AuthTy"], "hp" ) == 0 ) + { + /**************************************************************************** + * + * [4] ڵ + * + * ڵ ʴ AGS_pay.html ҹ ſī() ñ ٶϴ. + * + * ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- û + * + ͱ(6) + ڵڵ(1) + + * + ( "|" Ѵ.) + * + ****************************************************************************/ + + $this->ENCTYPE = "h"; + $this->REQUEST["StrSubTy"] = "Bill"; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + $this->REQUEST["StrSubTy"]."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["HP_SERVERINFO"]."|". + $this->REQUEST["HP_ID"]."|". + $this->REQUEST["HP_SUBID"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["HP_UNITType"]."|". + $this->REQUEST["HP_HANDPHONE"]."|". + $this->REQUEST["HP_COMPANY"]."|". + $this->REQUEST["HP_IDEN"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["HP_IPADDR"]."|". + $this->REQUEST["ProdNm"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + + } + else if( strcmp( $this->REQUEST["AuthTy"], "ars" ) == 0 ) + { + /**************************************************************************** + * + * [5] ARS + * + * ARS ʴ AGS_pay.html ҹ ſī() ñ ٶϴ. + * + * ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- û + * + ͱ(6) + ARSڵ(1) + + * + ( "|" Ѵ.) + * + ****************************************************************************/ + + $this->ENCTYPE = "A"; + $this->REQUEST["StrSubTy"] = "ABill"; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + $this->REQUEST["StrSubTy"]."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["HP_SERVERINFO"]."|". + $this->REQUEST["HP_ID"]."|". + $this->REQUEST["HP_UNITType"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["HP_SUBID"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["ARS_PHONE"]."|". + $this->REQUEST["HP_IDEN"]."|". + $this->REQUEST["ARS_NAME"]."|". + $this->REQUEST["HP_COMPANY"]."|". + $this->REQUEST["HP_IPADDR"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + }else{ + $this->ERRMSG .= " . AuthTy:[".$this->REQUEST["AuthTy"]."],SubTy:[".$this->REQUEST["SubTy"]."]"; + $this->log->WriteLog( ERROR, $this->ERRMSG ); + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + + return false; + } + $this->log->WriteLog( INFO, "Make Msg End" ); + return true; + } // MakeMsg() End + + + /* + Make Cancel Msg + */ + function MakeCancelMsg() + { + $this->log->WriteLog( INFO, "Make Cancel Msg Start" ); + if( strcmp( $this->REQUEST["AuthTy"], "card" ) == 0 ) + { + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) + { + + /**************************************************************************** + * + * [1-1] ſī - ISP + * + * -- ̺κ ó PGProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ. + * (6) | ü̵(20) | ιȣ(20) | νð(8) | ŷȣ(6) | + * + * -- + * + ͱ(6) + + * + ( "|" Ѵ. + * üID(20) | ιȣ(20) | νð(8) | ڵ(4) | ŷȣ(6) | (1) | + * + ****************************************************************************/ + + $this->ENCTYPE = 2; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "cancel"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("rApprNo")."|". + substr($this->GetResult("rApprTm"),0,8)."|". + $this->GetResult("rDealNo")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."Make Cancel MSG OK " ); + } + else if( ( strcmp( $this->REQUEST["SubTy"], "visa3d" ) == 0 ) || ( strcmp( $this->REQUEST["SubTy"], "normal" ) == 0 ) ) + { + /**************************************************************************** + * + * [1-2] ſī - VISA3D, Ϲ + * + * -- ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * + * -- û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" ϸ īȣ,ȿⰣ,йȣ,ֹιȣ ȣȭȴ.) + * (6) | ü̵(20) | ιȣ(8) | νð(14) | īȣ(16) | + * + * -- + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * üID(20) | ιȣ(8) | νð(14) | ڵ(4) | (1) | + * ֹȣ(20) | Һΰ(2) | ݾ(20) | ī(20) | īڵ(4) | + * ȣ(15) | Իڵ(4) | Ի(20) | ǥȣ(6) + * + ****************************************************************************/ + + $this->ENCTYPE = 0; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "cancel"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("rApprNo")."|". + substr($this->GetResult("rApprTm"),0,8)."|". + $this->GetResult("rDealNo")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."Make Cancel MSG OK " ); + } + }else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0){ + + /**************************************************************************** + * + * [2-1] ͳݹŷ ü() ó + * + * -- ̺κ ͳݹŷ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ͳݹŷ û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | MTID(ü ) | ݾ(8) | ڵ(2) + * + ****************************************************************************/ + + $this->ENCTYPE = R; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "RB-CanReq"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("ICHE_POSMTID")."|". + $this->GetResult("Amt")."|". + $this->GetResult("ICHE_OUTBANKNAME")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make Cancel MSG OK " ); + + }else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHEARS_SOCKETYN"], "Y" ) == 0){ + + /**************************************************************************** + * + * [2-1] ڷŷ ü() ó + * + * -- ̺κ ڷŷ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ڷŷ û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | MTID(ü ) | ݾ(8) | ڵ(2) + * + ****************************************************************************/ + + $this->ENCTYPE = B; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "TB-CanReq"."|". + $this->GetResult("StoreId")."|". + ""."|". + ""."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make Cancel MSG OK " ); + + }else if( strcmp( $this->REQUEST["AuthTy"], "hp" ) == 0 ){ + + /**************************************************************************** + * + * [3] ڵ ó + * + * -- ̺κ ڵ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ڵ û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | NetCancID | + * + ****************************************************************************/ + + $this->ENCTYPE = H; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + $this->sDataMsg = $this->ENCTYPE. + "MobileCanReq"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make Cancel MSG OK " ); + + }else if( strcmp( $this->REQUEST["AuthTy"], "ars" ) == 0 ){ + + /**************************************************************************** + * + * [4] ARS ó + * + * -- ̺κ ARS ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ARS û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | NetCancID | + * + ****************************************************************************/ + + $this->ENCTYPE = A; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + $this->sDataMsg = $this->ENCTYPE. + "ARSCanReq"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make Cancel MSG OK " ); + + }else{ + //ſī,ü ̿ ұ . + $this->log->WriteLog( WARN, "Cancel Passed. AuthTy : [".$this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]."] " ); + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = "Cannot Cancel AuthTy[".$this->REQUEST["AuthTy"]."]"; + return false; + } + $this->log->WriteLog( INFO, "Make Cancel Msg End" ); + return true; + } //MakeCancelMsg End + + + /* + RecvMsg Parsing + */ + function ParseMsg() + { + $this->log->WriteLog( INFO, "Parse Msg Start" ); + /**************************************************************************** + * + * + * AuthTy = "card" ſī + * - SubTy = "isp" ISP + * - SubTy = "visa3d" ȽŬ + * - SubTy = "normal" Ϲݰ + * + * AuthTy = "iche" Ϲ-ü + * + * AuthTy = "virtual" Ϲ-(Ա) + * + * AuthTy = "hp" ڵ + * + * AuthTy = "ars" ARS + * + ****************************************************************************/ + + if( strcmp( $this->REQUEST["AuthTy"], "card" ) == 0 ) + { + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) + { + /**************************************************************************** + * + * [1-1] ſī ISP ó + * + * + * -- + * + ͱ(6) + + * + ( "|" Ѵ. + * üID(20) | ڵ(4) | ŷȣ(6) | ιȣ(8) | + * ŷݾ(12) | (1) | л(20) | νð(14) | + * īڵ(4) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rBusiCd"] = $this->RecvValArray[1]; + $this->RESULT["rOrdNo"] = $this->REQUEST["OrdNo"]; + $this->RESULT["rDealNo"] = $this->RecvValArray[2]; + $this->RESULT["rApprNo"] = $this->RecvValArray[3]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->RESULT["rAmt"] = $this->RecvValArray[4]; + $this->RESULT["rInstmt"] = $this->REQUEST["KVP_QUOTA"]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[5]; + $this->RESULT["rResMsg"] = $this->RecvValArray[6]; + $this->RESULT["rApprTm"] = $this->RecvValArray[7]; + $this->RESULT["rCardCd"] = $this->RecvValArray[8]; + + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."RECV MSG Parsing OK " ); + } + else if( ( strcmp( $this->REQUEST["SubTy"], "visa3d" ) == 0 ) || ( strcmp( $this->REQUEST["SubTy"], "normal" ) == 0 ) ) + { + /**************************************************************************** + * + * [1-2] ȽŬ or Ϲݰ ó + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * üID(20) | ڵ(4) | ֹȣ(40) | ιȣ(8) | ŷݾ(12) | + * (1) | л(20) | ī(20) | νð(14) | īڵ(4) | + * ȣ(15) | Իڵ(4) | Ի(20) | ǥȣ(6) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rBusiCd"] = $this->RecvValArray[1]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[2]; + $this->RESULT["rApprNo"] = $this->RecvValArray[3]; + $this->RESULT["rInstmt"] = $this->REQUEST["Instmt"]; + $this->RESULT["rAmt"] = $this->RecvValArray[4]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[5]; + $this->RESULT["rResMsg"] = $this->RecvValArray[6]; + $this->RESULT["rCardNm"] = $this->RecvValArray[7]; + $this->RESULT["rApprTm"] = $this->RecvValArray[8]; + $this->RESULT["rCardCd"] = $this->RecvValArray[9]; + $this->RESULT["rMembNo"] = $this->RecvValArray[10]; + $this->RESULT["rAquiCd"] = $this->RecvValArray[11]; + $this->RESULT["rAquiNm"] = $this->RecvValArray[12]; + $this->RESULT["rDealNo"] = $this->RecvValArray[13]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."RECV MSG Parsing OK " ); + } + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0) + { + /**************************************************************************** + * + * [2-1] ü Ϲ(ͳݹŷ) û + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * (10) | ̵(20) | ֹȣ(40) | ֹ̿ȣ(50) | ڵ(4) | ޽(300) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[2]; + $this->RESULT["rMTid"] = $this->RecvValArray[3]; + $this->RESULT["ES_SENDNO"] = $this->RecvValArray[4]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[5]; + $this->RESULT["rResMsg"] = $this->RecvValArray[6]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."RECV MSG Parsing OK " ); + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHEARS_SOCKETYN"], "Y" ) == 0) + { + /**************************************************************************** + * + * [2-2] ü ڷŷ ó + * + * -- ڷŷ û + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * (10) | ̵(20) | ֹȣ(40) | ֹ̿ȣ(50) | ڵ(4) | ޽(300) |* + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[2]; + $this->RESULT["rMTid"] = $this->RecvValArray[3]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[4]; + $this->RESULT["rResMsg"] = $this->RecvValArray[5]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Parse MSG Passed " ); + + $pos = strpos($this->RESULT["rResMsg"],':'); + if( $pos !== false ) + { + $this->RESULT["ES_SENDNO"] = substr($this->RESULT["rResMsg"],$pos+1,6) ; + $this->log->WriteLog( INFO, "ES_SENDNO : [".$this->RESULT["ES_SENDNO"]."] "); + } + + } + else if( strcmp( $this->REQUEST["AuthTy"], "virtual" ) == 0 ) + { + /**************************************************************************** + * + * [3] (Ա) ó + * + * -- + * + ͱ(6) + ȣȭ (1) + + * + ( "|" Ѵ. + * (10) | üID(20) | (14) | ¹ȣ(20) | ڵ(1) | ޽(100) | + * + ****************************************************************************/ + + $this->RESULT["rAuthTy"] = $this->RecvValArray[0]; + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rApprTm"] = $this->RecvValArray[2]; + $this->RESULT["rVirNo"] = $this->RecvValArray[3]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[4]; + $this->RESULT["rResMsg"] = $this->RecvValArray[5]; + + $this->RESULT["rOrdNo"] = $this->REQUEST["OrdNo"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + + $pos = strpos($this->RESULT["rResMsg"],':'); + if( $pos !== false ) + { + $this->RESULT["ES_SENDNO"] = substr($this->RESULT["rResMsg"],$pos+1,6) ; + $this->log->WriteLog( INFO, "ES_SENDNO : [".$this->RESULT["ES_SENDNO"]."] "); + } + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."RECV MSG Parsing OK " ); + + } + else if( strcmp( $this->REQUEST["AuthTy"], "hp" ) == 0 ) + { + /**************************************************************************** + * + * [4] ڵ + * + * -- + * + ͱ(6) + + * + ( "|" Ѵ.) + * üID(20) | ڵ(1) | ޽(100) | ڵ(8) | ڵ TID(12) | ŷݾ(12) | ֹȣ(40) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[1]; + $this->RESULT["rResMsg"] = $this->RecvValArray[2]; + $this->RESULT["rHP_DATE"] = $this->RecvValArray[3]; + $this->RESULT["rHP_TID"] = $this->RecvValArray[4]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + $this->RESULT["rOrdNo"] = $this->REQUEST["OrdNo"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."RECV MSG Parsing OK " ); + + } + else if( strcmp( $this->REQUEST["AuthTy"], "ars" ) == 0 ) + { + /**************************************************************************** + * + * [5] ARS + * + * -- + * + ͱ(6) + + * + ( "|" Ѵ.) + * üID(20) | ڵ(1) | ޽(100) | ARS(8) | ARS TID(12) | ŷݾ(12) | ֹȣ(40) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[1]; + $this->RESULT["rResMsg"] = $this->RecvValArray[2]; + $this->RESULT["rHP_DATE"] = $this->RecvValArray[3]; + $this->RESULT["rHP_TID"] = $this->RecvValArray[4]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + $this->RESULT["rOrdNo"] = $this->REQUEST["OrdNo"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."RECV MSG Parsing OK " ); + }else{ + $this->log->WriteLog( FATAL, "Unknown AuthTy. AuthTy:[".$this->REQUEST["AuthTy"]."],SubTy:[".$this->REQUEST["SubTy"]."]"); + return false; + } + $this->log->WriteLog( INFO, "Parse Msg End" ); + return true; + + } //ParseMsg() End + + + /* + RecvCancelMsg Parsing + */ + function ParseCancelMsg() + { + $this->log->WriteLog( INFO, "Parse Cancel Msg Start" ); + if( strcmp( $this->REQUEST["AuthTy"], "card" ) == 0 ) + { + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) + { + /* [1-1] ISP ó */ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rApprNo"] = $this->RecvValArray[1]; + $this->RESULT["rApprTm"] = $this->RecvValArray[2]; + $this->RESULT["rBusiCd"] = $this->RecvValArray[3]; + $this->RESULT["rDealNo"] = $this->RecvValArray[4]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[5]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[6]; + + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."RECV MSG Parsing OK " ); + } + else if( ( strcmp( $this->REQUEST["SubTy"], "visa3d" ) == 0 ) || ( strcmp( $this->REQUEST["SubTy"], "normal" ) == 0 ) ) + { + /* [1-2] ȽŬ or Ϲݰ ó */ + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rApprNo"] = $this->RecvValArray[1]; + $this->RESULT["rApprTm"] = $this->RecvValArray[2]; + $this->RESULT["rBusiCd"] = $this->RecvValArray[3]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[4]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[5]; + $this->RESULT["rInstmt"] = $this->RecvValArray[6]; + $this->RESULT["rAmt"] = $this->RecvValArray[7]; + $this->RESULT["rCardNm"] = $this->RecvValArray[8]; + $this->RESULT["rCardCd"] = $this->RecvValArray[9]; + $this->RESULT["rMembNo"] = $this->RecvValArray[10]; + $this->RESULT["rAquiCd"] = $this->RecvValArray[11]; + $this->RESULT["rAquiNm"] = $this->RecvValArray[12]; + $this->RESULT["rDealNo"] = $this->RecvValArray[13]; + + if($this->RESULT["rCancelSuccYn"] == "y") + { + $this->RESULT["rCancelResMsg"] = ""; + } + else + { + $this->RESULT["rCancelResMsg"] = "ҽ"; + } + + + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."RECV MSG Parsing OK " ); + } + + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0) + { + /* [2-1] ü ͳݹŷ */ + /* [RB-CanRes|ID|posmTid|ֹȣ|y|Ҽ|] */ + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["ICHE_POSMTID"] = $this->RecvValArray[2]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[3]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[4]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[5]; + + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHEARS_SOCKETYN"], "Y" ) == 0) + { + /* [2-2] ü ڷŷ */ + /* [TB-CanRes|ID|posmTid|ֹȣ|y|Ҽ|] */ + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rMTid"] = $this->RecvValArray[2]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[3]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[4]; + + } + else if( strcmp( $this->REQUEST["AuthTy"], "hp" ) == 0 ) + { + /**************************************************************************** + * + * [4] ڵ + * + * -- + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * | MobileCanRes | üID(20) | (1) | ޼ | óϽ | ֹ̿ȣ | + * + ****************************************************************************/ + + /* [MobileCanRes|ID|(y/n)|޼|Ͻ|ֹ̿ȣ|] */ + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[2]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[3]; + $this->RESULT["rCancelDate"] = $this->RecvValArray[4]; + $this->RESULT["rTid"] = $this->RecvValArray[5]; + + } + else if( strcmp( $this->REQUEST["AuthTy"], "ars" ) == 0 ) + { + /**************************************************************************** + * + * [5] ARS + * + * -- + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * | ArsCanRes | üID(20) | (1) | ޼ | óϽ | ֹ̿ȣ | + * + ****************************************************************************/ + + /* [ArsCanRes|ID|(y/n)|޼|Ͻ|ֹ̿ȣ|] */ + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[2]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[3]; + $this->RESULT["rCancelDate"] = $this->RecvValArray[4]; + $this->RESULT["rTid"] = $this->RecvValArray[5]; + + } + else + { + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Parse CancelMSG Passed " ); + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = "Cannot Cancel AuthTy[".$this->REQUEST["AuthTy"]."]"; + return false; + } + $this->log->WriteLog( INFO, "Parse Cancel Msg End" ); + return true; + } + + + /* + û + */ + function NetCancel() + { + $this->log->WriteLog( WARN, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." Cancel Start"); + + if( $this->REQUEST["UseNetCancel"] == "true" || $this->REQUEST["Type"] == "Cancel" ) + { + $this->log->WriteLog( WARN, "Cancel Reason : ".$this->REQUEST["CancelMsg"]); + + if( !($this->MakeCancelMsg()) ) + { + $this->log->WriteLog( ERROR, "Make CancelMsg Error"); + return false; + } + if( !($this->SendRecvMsg()) ) + { + $this->log->WriteLog( ERROR, "Send & Recv Msg Error"); + return false; + } + if( !($this->ParseCancelMsg()) ) + { + $this->log->WriteLog( ERROR, "ParseCancelMsg Error"); + return false; + } + if( $this->RESULT["rCancelSuccYn"] == "y") + { + $this->log->WriteLog( WARN, "Cancel Success"); + } + else + { + $this->log->WriteLog( FATAL, "Cancel FAIL"); + } + } + else + { + $this->log->WriteLog( WARN, "Cancel Passed (UseNetCancel value Is false)"); + } + + $this->log->WriteLog( WARN, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." Cancel End"); + + if($this->RESULT["rCancelSuccYn"] == "y"){ + // з + $this->SetPayResult( "rSuccYn", "n" ); + $this->SetPayResult( "rResMsg", $this->REQUEST["CancelMsg"] ); + return true; + }else{ + return false; + } + + } + + /* + Ȯοû + */ + function checkPayResult( $TID ) + { + /* + Log ü + */ + $this->log = new PayLog( $this->REQUEST ); + if(!$this->log->InitLog()) + { + $this->ERRMSG .= "α ϴ.[".$this->REQUEST["AgsPayHome"]."]" ; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = $this->ERRMSG; + return false; + } + + $this->log->WriteLog( INFO, "[".$TID."] Check PayResult Start"); + + + //"AEGIS_".$TidTp . $this->REQUEST["StoreId"] . $datestr . rand(100,999); + + switch(substr($TID,6,4)){ + case("ISP_"): // ſī ISP + $this->REQUEST["AuthTy"] = "card" ; + $this->REQUEST["SubTy"] = "isp" ; + break; + case("VISA"): // ſī ȽŬ/Ϲ + $this->REQUEST["AuthTy"] = "card" ; + $this->REQUEST["SubTy"] = "visa3d" ; + break; + case("IBK_"): // ͳݹŷ + $this->REQUEST["AuthTy"] = "iche" ; + break; + case("TBK_"): // ڷŷ + $this->REQUEST["AuthTy"] = "iche" ; + break; + case("VIR_"): // + $this->REQUEST["AuthTy"] = "virtual" ; + break; + case("HPP_"): // ޴ + $this->REQUEST["AuthTy"] = "hp" ; + break; + case("ARS_"): // ARS ȭ + $this->REQUEST["AuthTy"] = "ars" ; + break; + default: // Ȯ + $this->REQUEST["AuthTy"] = "unknown" ; + break; + } + + /**************************************************************************** + * Make + ****************************************************************************/ + $this->ENCTYPE = "I"; + + $this->sDataMsg = $this->ENCTYPE. + "PayInfo"."|". + $this->REQUEST["StoreId"]."|". + $TID."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + + if( !($this->SendRecvMsg()) ) // ŷ Ȯ + { + if( !($this->SendRecvMsgWeb()) ) // ŷ Ȯ + { + + } + } + + if( !($this->ParseMsg()) ) + { + $this->log->WriteLog( ERROR, "Parse Check PayResult Error"); + return false; + } + + $this->log->WriteLog( INFO, "[".$TID."] Check PayResult End"); + + $this->writeLogArray($this->RESULT); + + //log ü ݱ + $this->log->CloseLog( $this->GetResult("rResMsg") ); + + return true; + } + + + /* + Set + */ + function SetValue( $key, $val ) + { + $this->REQUEST[$key] = $val; + } + + /* + Get + */ + function GetResult( $name ) + { + $result = $this->RESULT[$name]; + if( strlen($result) == 0 || $result == "") $result = $this->REQUEST[$name]; + return $result; + } + + /* + rSuccYn Set + */ + function SetPayResult( $key, $val ) + { + $this->RESULT[$key] = $val; + } + + /* + Make NetCancel ID(); + */ + + function MakeNetCancID() + { + $this->log->WriteLog( INFO, "Make NetCancel ID Start" ); + switch($this->REQUEST["AuthTy"]){ + case("card"): // ſī + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) $TidTp = "ISP_"; else $TidTp = "VISA"; + break; + case("iche"): // ü (IBK:ͳݹŷ, TBK:ڷŷ) + if( strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0 ) $TidTp = "IBK_"; else $TidTp = "TBK_"; + break; + case("virtual"): // + $TidTp = "VIR_"; break; + case("hp"): // ޴ + $TidTp = "HPP_"; break; + case("ars"): // ARS ȭ + $TidTp = "ARS_"; break; + default: + $TidTp = "UNKW"; //Ȯ + } + + list($usec, $sec) = explode(" ", microtime()); + $datestr = date("YmdHis", $sec).substr($usec,2,3); //YYYYMMDDHHMMSSSSS + + //TID ּ 31ڸ ,ִ 51ڸ ʴ´. + $this->RESULT["NetCancID"] = "AEGIS_".$TidTp . $this->REQUEST["StoreId"] . "_" . $datestr . rand(100,999); + if( (!strlen( $this->RESULT["NetCancID"] ) >= 31 && strlen( $this->RESULT["NetCancID"] ) <= 51) ) + { + $this->log->WriteLog( ERROR, $this->RESULT["NetCancID"]); + return false; + } + $this->log->WriteLog( INFO, $this->RESULT["NetCancID"]); + $this->log->WriteLog( INFO, "Make NetCancel ID End" ); + return true; + } + + /* + Set Error Msg ; + */ + function SetErrorMsg($rSuccYn,$rResMsg) + { + $this->log->WriteLog( INFO, "Set Result Msg Start"); + $this->RESULT["rSuccYn"] = $rSuccYn; + $this->RESULT["rResMsg"] = $rResMsg; + $this->log->WriteLog( INFO, "Set Result Msg End"); + } + + /* + Aegis ī嵥 Encrypt + */ + function encrypt_aegis( $OrgData ) + { + $this->log->WriteLog( INFO, "Encrypt Start"); + if( empty( $OrgData ) || $OrgData == "" ) + { + $this->log->WriteLog( INFO, "Encrypt End"); + return ""; + } + + $temp = ""; + for( $i = 0; $i < strlen( $OrgData ); $i++ ) + { + $temp .= substr( $OrgData, (strlen( $OrgData ) - 1) - $i, 1 ); + } + + //print "Reverse data : ".$temp."
    "; + + $one_char = ""; + $EncData = ""; + for( $i = 0; $i < strlen( $temp ); $i++ ) + { + $one_char = substr( $temp, $i, 1 ); + $EncData .= ($one_char + $i * 77) % 10 ; + } + + //print "Enc Data : ".$EncData."
    "; + + $this->log->WriteLog( INFO, "Encrypt End"); + + return $EncData; + } + + /* + ڿ + */ + function format_string($TSTR,$TLEN,$TAG) + { + if ( !isset($TSTR) ) + { + for ( $i=0 ; $i < $TLEN ; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + } + + $TSTR = trim($TSTR); + + $TSTR = stripslashes($TSTR); + + // Էڷᰡ ̺ ڸ ѱó + + if ( strlen($TSTR) > $TLEN ) + { + // $flag == 1 ̸ Ʈ ѱ Ʈ ̶ ű ڸ Ǹ + // ѱ Ǵ ߻մϴ. + + $flag = 0; + + for($i=0 ; $i< $TLEN ; $i++) + { + $j = ord($TSTR[$i]); // ASCII մϴ. + // ASCII 127 ũ Ʈ ѱ ۹Ʈ̰ų Ʈ(?) . + if($j > 127) + { + if( $flag ) $flag = 0; // $flag Ѵٴ ̹ ڴ ѱ Ʈ̱ + // $flag 0 ݴϴ. + else $flag = 1; // ѱ ۹Ʈ. ׷Ƿ $flag 1! + } + else $flag = 0; // ٸ ڳ ϶ ׳ Ѿ ǰ. + } + if( $flag ) + { + // ̷ ؼ ڱ $flag ؼ $flag ϸ + $TSTR = substr($TSTR, 0, $TLEN - 1); + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + else + { + // ѹƮ ؼ ڸ ڸ ؾ߰. + $TSTR = substr($TSTR, 0, $TLEN); // ƴ .... + } + + return $TSTR; // Ʈ ȯմϴ. + + // Էڷᰡ ̺ SPACE ä + } + else if ( strlen($TSTR) < $TLEN ) + { + $TLENGTH = strlen($TSTR); + for ( $i=0 ; $i < $TLEN - $TLENGTH; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + + return ($TSTR); + + // Էڷᰡ ̿ + } + else if ( strlen($TSTR) == $TLEN ) + { + return ($TSTR); + } + } + + /* + Է ڰ ھƽŰ شϴ Ǵ. + */ + function IsNumber($word) + { + + for($i = 0; $i < strlen($word); $i++) + { + $wordNum = ord( substr( $word, $i, 1 ) ); + + if( $wordNum < 48 || $wordNum > 57 ) + { + return false; + } + + } + + return true; + } + /* + ޼ + */ + function AlertMsg( $msg , $go=0) + { + + $msg = str_replace( "\"" ,"'" ,$msg ); + $msg = str_replace( "\n" ,"\\n" ,$msg ); + print ""; + + } + function HistoryGo( $go ) + { + print ""; + } + + function AlertExit( $msg ) + { + + AlertMsg( $msg ); + exit; + + } + + function AlertGoBack( $msg ) + { + + AlertMsg( $msg, -1); + exit; + } + +} + +/************************************************************************************** +* +* ôƮ α Ŭ +* +***************************************************************************************/ +class PayLog +{ + var $log_fd; + var $log; + var $logLevel; + var $array_key; + var $debug_msg; + var $starttime; + var $homedir; + var $StoreId; + + function PayLog( $request ) + { + $this->debug_msg = array( "", "FATAL", "ERROR", "WARN", "INFO", "DEBUG" ); + $this->log = $request["log"]; + $this->logLevel = $request["logLevel"]; + $this->homedir = $request["AgsPayHome"]; + $this->StoreId = $request["StoreId"]; + $this->starttime=GetTime(); + } + function InitLog() + { + if( $this->log == "false" ) return true; + + $logfile = $this->homedir. "/log/".PROGRAM."_".TYPE."_".$this->StoreId."_".date("ymd").".log"; + + $this->log_fd = fopen( $logfile, "a+" ); + if( !$this->log_fd ) return false; + $this->WriteLog( INFO, "===============================================================" ); + $this->WriteLog( INFO, "START ".PROGRAM." ".TYPE." (OS:".php_uname('s').php_uname('r').",PHP:".phpversion().")" ); + return true; + } + function WriteLog($debug, $data) + { + if( $this->log == "false" || !$this->log_fd ) return; + + if(strtoupper($this->logLevel) == "FATAL") $logLevel_int = 1; + if(strtoupper($this->logLevel) == "ERROR") $logLevel_int = 2; + if(strtoupper($this->logLevel) == "WARN") $logLevel_int = 3; + if(strtoupper($this->logLevel) == "INFO") $logLevel_int = 4; + if(strtoupper($this->logLevel) == "DEBUG") $logLevel_int = 5; + + if( $debug > $logLevel_int ){ return; } + + $prefix = $this->debug_msg[$debug]."\t[" . SetTimeStamp() . "] <" . getmypid() . "> "; + if( is_array( $data ) ) + { + foreach ($data as $key => $val) + { + fwrite( $this->log_fd, $prefix . $key . ":" . $val . "\r\n"); + } + } + else + { + fwrite( $this->log_fd, $prefix . $data . "\r\n" ); + } + fflush( $this->log_fd ); + } + function CloseLog($msg) + { + if( $this->log == "false" ) return; + + $Transaction_time=GetTime()-$this->starttime; + $this->WriteLog( INFO, "END ".$this->REQUEST["Type"]." ".$msg." Transaction time:[".round($Transaction_time,3)."sec]" ); + $this->WriteLog( INFO, "===============================================================" ); + fclose( $this->log_fd ); + } +} + +function GetTime() +{ + list($sec1, $sec2) = explode(" ", microtime(true)); + return (float)$sec1 + (float)$sec2; +} + +function SetTimeStamp() +{ + $microtm = explode(' ',microtime()); + list($t_Seconds, $Milliseconds) = array($microtm[1], (int)round($microtm[0]*1000,3)); + return date("Y-m-d H:i:s", $t_Seconds) . ":$Milliseconds"; +} + +?> \ No newline at end of file diff --git a/module/shop/pg/agspay/AGSMobile_approve.php b/module/shop/pg/agspay/AGSMobile_approve.php new file mode 100644 index 0000000..9de8c88 --- /dev/null +++ b/module/shop/pg/agspay/AGSMobile_approve.php @@ -0,0 +1,328 @@ +setLogging(true); //true : 로그기록, false : 로그기록안함. + + //////////////////////////////////////////////////////// + // + // getTrackingInfo() 는 최초 올더게이트 페이지를 호출할 때 전달 했던 Form 값들이 Array()로 저장되어 있습니다. + // + //////////////////////////////////////////////////////// + + $info = $agsMobile->getTrackingInfo(); //$info 변수는 array() 형식입니다. + + ///////////////////////////////////////////////////////////////////////////////// + // -- tracking_info에 들어있는 컬럼 -- + // + // 결제방법 : AuthTy (card,hp,virtual) + // 서브결제방법 : SubTy (카드일 경우 세팅 : isp,visa3d) + // + // 회원아이디 : UserId + // 구매자이름 : OrdNm + // 상점이름 : StoreNm + // 결제방법 : Job + // 상품명 : ProdNm + // + // 휴대폰번호 : OrdPhone + // 수신자명 : RcpNm + // 수신자연락처 : RcpPhone + // 주문자주소 : OrdAddr + // 주문번호 : OrdNo + // 배송지주소 : DlvAddr + // 상품코드 : ProdCode + // 입금예정일 : VIRTUAL_DEPODT + // 상품종류 : HP_UNITType + // 성공 URL : RtnUrl + // 상점아이디 : StoreId + // 가격 : Amt + // 이메일 : UserEmail + // 상점URL : MallUrl + // 취소 URL : CancelUrl + // 통보페이지 : MallPage + // + // 기타요구사항 : Remark + // 추가사용필드1 : Column1 + // 추가사용필드1 : Column2 + // 추가사용필드1 : Column3 + // CP아이디 : HP_ID + // CP비밀번호 : HP_PWD + // SUB-CP아이디 : HP_SUBID + // 상품코드 : ProdCode + // 결제정보 : DeviId ( 9000400001:일반결제, 9000400002:무이자결제) + // 카드사선택 : CardSelect + // 할부기간 : QuotaInf + // 무이자 할부기간: NointInf + // + //////////////////////////////////////////////////////////////////////////////////////////////// + + // tracking_info의 정보들은 아래의 방법으로 가져오시면 됩니다 + // + // print_r($info); //tracking_info + // echo "주문번호 : ".$info["OrdNo"]."
    "; + // echo "상품명 : ".$info["ProdNm"]."
    "; + // echo "결제방법 : ".$info["Job"]."
    "; + // echo "회원아이디 : ".$info["UserId"]."
    "; + // echo "구매자이름 : ".$info["OrdNm"]."
    "; + // + + echo "AuthTy : ".$info["AuthTy"]."
    "; + echo "SubTy : ".$info["SubTy"]."
    "; + + + $ret = $agsMobile->approve(); + + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + // 결제결과에 따른 상점DB 저장 및 기타 필요한 처리작업을 수행하는 부분입니다. + // 아래의 결과값들을 통하여 각 결제수단별 결제결과값을 사용하실 수 있습니다. + // + // $ret는 array() 형식으로 다음과 같은 구조를 가집니다. + // + // $ret = array ( + // 'status' => 'ok' | 'error' //승인성공일 경우 ok , 실패면 error + // 'message' => '에러일 경우 에러메시지' + // 'data' => 결제수단별 정보 array() //승인성공일 경우만 세팅됩니다. + // ) + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + + + if ($ret['status'] == "ok") { + /// 승인 성공 + + echo "성공여부: ".$ret['status']."
    "; //ok이면 성공.. + echo "결과메시지: ".$ret["message"]."
    "; + + + //data 이하에 서버 응답 메시지가 있습니다. + echo "업체ID : ".$ret["data"]["StoreId"]."
    "; + echo "주문번호: ".$ret["data"]["OrdNo"]."
    "; + echo "거래금액: ".$ret["data"]["Amt"]."원
    "; + echo "tracking_id: ".$tracking_id."
    "; + + + + if($ret["paytype"] == "card"){ + + /// 카드 결제 후 받은 정보 + /* + echo "AuthTy : ".$ret["data"]["AuthTy"]."
    "; + echo "SubTy: ".$ret["data"]["SubTy"]."
    "; + + echo "업체ID : ".$ret["data"]["StoreId"]."
    "; + echo "망취소ID : ".$ret["data"]["NetCancelId"]."
    "; + echo "주문번호: ".$ret["data"]["OrdNo"]."
    "; + echo "거래금액: ".$ret["data"]["Amt"]."원
    "; + echo "에스크로여부 : ".$ret["data"]["EscrowYn"]."
    "; //y이면 escrow + echo "무이자여부: ".$ret["data"]["NoInt"]."
    "; //y이면 무이자 + echo "에스크로전문번호 : ".$ret["data"]["EscrowSendNo"]."
    "; + + + echo "전문코드 : ".$ret["data"]["BusiCd"]."
    "; + echo "거래번호: ".$ret["data"]["DealNo"]."
    "; + echo "승인번호: ".$ret["data"]["AdmNo"]."
    "; + echo "승인시각: ".$ret["data"]['AdmTime']."
    "; + echo "카드사코드: ".$ret["data"]["CardCd"]."
    "; + echo "카드사명: ".$ret["data"]["CardNm"]."
    "; + echo "할부개월수: ".$ret["data"]["PartialMm"]."
    "; + */ + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //주문건 업데이트 + $blnRS = updatePayState("card", $ret["data"]["OrdNo"], "M"); + ///////////////////////////////////////// + // + // 카드 거래의 경우, + // 상점 DB 및 기타 상점측 예외상황으로 결제를 바로 취소해야 한다면 + // 아래의 승인 이후 아래의 함수 호출로 취소가 가능합니다. + // + ///////////////////////////////////////// + + // 아래 부분을 주석해제 하면 바로 강제 취소 할 수 있습니다. (카드 정상 승인 이후에만 가능) + + + /* + $cancelRet = $agsMobile->forceCancel(); + + // 상점은 아래에서 처리하세요 + if ($cancelRet['status'] == "ok") { + echo "취소 성공
    "; + echo "업체ID : ".$cancelRet["data"]["StoreId"]."
    "; + echo "승인번호: ".$cancelRet["data"]["AdmNo"]."
    "; + echo "승인시각: ".$cancelRet["data"]["AdmTime"]."
    "; + echo "코드: ".$cancelRet["data"]['Code']."
    "; + + }else { + //취소 통신 실패 + echo "취소 실패 : ".$cancelRet['message']; // 에러 메시지 + } +*/ + + ////////////////////////////////////////////// + // + // 영수증 사용시 아래의 링크를 사용하시면 됩니다. + // + ////////////////////////////////////////////// + + $url = "http://www.allthegate.com/customer/receiptLast3.jsp"; + $url .= "?sRetailer_id=".$ret["data"]["StoreId"]; + $url .= "?approve=".$ret["data"]["AdmNo"]; + $url .= "?send_no=".$ret["data"]["DealNo"]; + $url .= "?send_dt=".substr($ret["data"]["AdmTime"],0,8); + + }else if($ret["paytype"] == "hp"){ + /// 핸드폰 결제 후 받은 정보 + echo "AuthTy : ".$ret["data"]["AuthTy"]."
    "; + echo "SubTy: ".$ret["data"]["SubTy"]."
    "; + + echo "업체ID : ".$ret["data"]["StoreId"]."
    "; + echo "망취소ID : ".$ret["data"]["NetCancelId"]."
    "; + echo "주문번호: ".$ret["data"]["OrdNo"]."
    "; + echo "거래금액: ".$ret["data"]["Amt"]."원
    "; + + echo "핸드폰통신사 : ".$ret["data"]["PhoneCompany"]."
    "; + echo "핸드폰번호 : ".$ret["data"]["Phone"]."
    "; + echo "핸드폰결제 TID : ".$ret["data"]["AdmTID"]."
    "; + + //주문건 업데이트 + $blnRS = updatePayState("hp", $ret["data"]["OrdNo"], "M"); + + ///////////////////////////////////////// + // + // 휴대폰 거래의 경우, + // 상점 DB 및 기타 상점측 예외상황으로 결제를 바로 취소해야 한다면 + // 아래의 승인 이후 아래의 함수 호출로 취소가 가능합니다. + // + ///////////////////////////////////////// + + // 아래 부분을 주석해제 하면 바로 강제 취소 할 수 있습니다. (휴대폰 정상 승인 이후에만 가능) + +// $cancelRet = $agsMobile->forceCancel(); +// +// // 상점은 아래에서 처리하세요 +// if ($cancelRet['status'] == "ok") { +// +// echo "업체ID : ".$cancelRet["data"]["StoreId"]."
    "; +// echo "핸드폰결제 TID : ".$cancelRet["data"]["AdmTID"]."
    "; +// +// }else { +// //취소 통신 실패 +// echo "취소 실패 : ".$cancelRet['message']; // 에러 메시지 +// } + + }else if($ret["paytype"] == "virtual"){ + /// 가상계좌 처리 후 받은 정보 /// + + //////////////////////////////////////////////////////// + // + // 가상계좌의 결제성공은 가상계좌발급의 성공만을 의미하며 입금대기상태로 실제 고객이 입금을 완료한 것은 아닙니다. + // 따라서 가상계좌 결제완료시 결제완료로 처리하여 상품을 배송하시면 안됩니다. + // 결제후 고객이 발급받은 계좌로 입금이 완료되면 MallPage(상점 입금통보 페이지(가상계좌))로 입금결과가 전송되며 + // 이때 비로소 결제가 완료되게 되므로 결제완료에 대한 처리(배송요청 등)은 MallPage에 작업해주셔야 합니다. + // + // 승인일자 : $ret["data"]["SuccessTime"] + // 가상계좌번호 : $ret["data"]["VirtualNo"] + // 입금은행코드 : $ret["data"]["BankCode"] + // + //////////////////////////////////////////////////////// + + echo "AuthTy : ".$ret["data"]["AuthTy"]."
    "; + echo "SubTy: ".$ret["data"]["SubTy"]."
    "; + + + echo "업체ID : ".$ret["data"]["StoreId"]."
    "; + echo "망취소ID : ".$ret["data"]["NetCancelId"]."
    "; + echo "주문번호: ".$ret["data"]["OrdNo"]."
    "; + echo "거래금액: ".$ret["data"]["Amt"]."원
    "; + echo "에스크로여부 : ".$ret["data"]["EscrowYn"]."
    "; //y이면 escrow + echo "에스크로전문번호 : ".$ret["data"]["EscrowSendNo"]."
    "; + + echo "승인일자 : ".$ret["data"]["SuccessTime"]."
    "; + echo "가상계좌번호 : ".$ret["data"]["VirtualNo"]."
    "; + echo "입금은행코드 : ".$ret["data"]["BankCode"]."
    "; + echo "입금기한 : ".$ret["data"]["DueDate"]."
    "; + } + + + + }else { + /// 승인 실패 + echo "승인실패 : ".$ret['message']."
    "; // 에러 메시지 + exit; + } + +?> + + + + + +
    + +"> + + + +"> +"> +"> +"> +"> +"> +"> + + + +"> +"> + + +"> +"> +"> +"> + +"> +"> +"> +"> + + +"> +"> +"> +"> + + +"> +"> + + +"> + +
    + + \ No newline at end of file diff --git a/module/shop/pg/agspay/AGSMobile_cancel.html b/module/shop/pg/agspay/AGSMobile_cancel.html new file mode 100644 index 0000000..490ce5f --- /dev/null +++ b/module/shop/pg/agspay/AGSMobile_cancel.html @@ -0,0 +1,157 @@ + + +ôƮ + + + + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     

    ſī ҿû ׽Ʈ
     
    + 1) ҿû ° ϰ Ͽ Ͻʽÿ.
    + 2) ڸ ֵ ϼž ϸ, ȸ www.allthegate.com Ʈ ڿ ϰ Ƿ, Ȩ ݵ ž ϴ ƴմϴ.
    +
     
    ǥô ʼ Է»Դϴ.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + ,BC (ISP) +   + ,Z,ȯ,,Ե Ÿī (ȽŬ) +
    ̵ (20)
    ιȣ(AdmNo) (8)
    Ͻ(AdmDt) (8) (YYYYMMDD)
    ŷȣ(SendNo) (6)
    Ʈŷ̵(tracking_id)
    ŷ ֹȣ(Store_OrdNo) (40)
    +

    + +
     
    +
    +
    + + \ No newline at end of file diff --git a/module/shop/pg/agspay/AGSMobile_cancel.php b/module/shop/pg/agspay/AGSMobile_cancel.php new file mode 100644 index 0000000..ffa8fbb --- /dev/null +++ b/module/shop/pg/agspay/AGSMobile_cancel.php @@ -0,0 +1,71 @@ +setLogging(true); //true : αױ, false : αױϾ. + + $ret = $agsMobile->cancel($AdmNo, $AdmDt, $SendNo); + + // Ʒ óϼ + if ($ret['status'] == "ok") { + + echo "üID : ".$ret["data"]["StoreId"]."
    "; + echo "ιȣ: ".$ret["data"]["AdmNo"]."
    "; + echo "νð: ".$ret["data"]["AdmTime"]."
    "; + echo "ڵ: ".$ret["data"]['Code']."
    "; + + }else { + // + echo " : ".$ret['message']; // ޽ + } + + }else{ + + echo "ν : ŷ ã ߽ϴ."; // ҿû ƴ ó + } + + function Cancel_Check($Store_OrdNo) + { + $flag = False; + /*********************************************************************************** + *⼭ ŷ ɴϴ. + *ҿû ŷ ŷ ϰ + *Ұ ̸ True, ƴϸ False + * $Order //ex. ŷ + ************************************************************************************/ + /* + if ( $Store_OrdNo == $Order ){ + $flag = True; + }else{ + $flag = False; + } + */ + // ************************************************************************************/ + + return $flag; + + } + +?> \ No newline at end of file diff --git a/module/shop/pg/agspay/AGSMobile_start.php b/module/shop/pg/agspay/AGSMobile_start.php new file mode 100644 index 0000000..9c9c059 --- /dev/null +++ b/module/shop/pg/agspay/AGSMobile_start.php @@ -0,0 +1,311 @@ + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ֹȣ
    ǰ
    鼼ݾ
    ̸
    ̸
    ޴ȣ
    ̸
    + +
    ̵
    URL"/>
    ȸ̵
    ֹּ
    ڸ
    ڿó
    ּ
    Ÿ䱸
    ī缱
    URL/module/shop/pg/AGSMobile_approve.php">
    URL Scheme (ھ ) + + +
    + AppRtnScheme + RtnUrl ģ ٽ ȣմϴ.
    + ھ ƴѰ +
    URL/module/shop/pg/AGSMobile_user_cancel.php">
    ߰ʵ1
    ߰ʵ2
    ߰ʵ3
    Աݿ
    ڵ
    CP̵
    CPйȣ
    SUB-CP̵
    ǰڵ
    ǰ + +
    ǰⰣ
    + + + + + + + +
    + + \ No newline at end of file diff --git a/module/shop/pg/agspay/AGSMobile_user_cancel.php b/module/shop/pg/agspay/AGSMobile_user_cancel.php new file mode 100644 index 0000000..bb043ba --- /dev/null +++ b/module/shop/pg/agspay/AGSMobile_user_cancel.php @@ -0,0 +1,11 @@ + + + + + + + ϼ̽ϴ. + + \ No newline at end of file diff --git a/module/shop/pg/agspay/AGSMobile_virtual_result.php b/module/shop/pg/agspay/AGSMobile_virtual_result.php new file mode 100644 index 0000000..4d570d1 --- /dev/null +++ b/module/shop/pg/agspay/AGSMobile_virtual_result.php @@ -0,0 +1,42 @@ + \ No newline at end of file diff --git a/module/shop/pg/agspay/AGS_VirAcctResult.php b/module/shop/pg/agspay/AGS_VirAcctResult.php new file mode 100644 index 0000000..e35fc1f --- /dev/null +++ b/module/shop/pg/agspay/AGS_VirAcctResult.php @@ -0,0 +1,42 @@ + \ No newline at end of file diff --git a/module/shop/pg/agspay/AGS_cancel.html b/module/shop/pg/agspay/AGS_cancel.html new file mode 100644 index 0000000..fa46609 --- /dev/null +++ b/module/shop/pg/agspay/AGS_cancel.html @@ -0,0 +1,146 @@ + + +ôƮ + + + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     

    ſī ҿû ׽Ʈ
     
    + 1) ҿû ° ϰ Ͽ Ͻʽÿ.
    + 2) ڸ ֵ ϼž ϸ, ȸ www.allthegate.com Ʈ ڿ ϰ Ƿ, Ȩ ݵ ž ϴ ƴմϴ.
    + 3) ҽÿ ̵ ιȣ(rApprNo),Ͻ(rApprTm),ŷȣ(rDealNo) ݵ ʿմϴ. +
     
    ǥô ʼ Է»Դϴ.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + ,BC (ISP) +   + ,Z,ȯ,,Ե Ÿī (ȽŬ) +
    ̵ (20)
    ιȣ(rApprNo) (8)
    Ͻ(rApprTm) (8) (YYYYMMDDHHmmss)
    ŷȣ(rDealNo) (6)
    +

    + + +
     
    +
    +
    + + \ No newline at end of file diff --git a/module/shop/pg/agspay/AGS_cancel_ing.php b/module/shop/pg/agspay/AGS_cancel_ing.php new file mode 100644 index 0000000..eb1a4fb --- /dev/null +++ b/module/shop/pg/agspay/AGS_cancel_ing.php @@ -0,0 +1,104 @@ +SetValue("AgsPayHome","C:/htdocs/agspay"); //ôƮ ġ 丮 ( ° ) + $agspay->SetValue("AgsPayHome","/data2/local_docs/agspay40/php"); //ôƮ ġ 丮 ( ° ) + $agspay->SetValue("log","true"); //true : αױ, false : αױϾ. + $agspay->SetValue("logLevel","ERROR"); //α׷ : DEBUG, INFO, WARN, ERROR, FATAL (ش ̻ α׸ ϵ) + $agspay->SetValue("Type", "Cancel"); //(Ұ) + $agspay->SetValue("RecvLen", 7); // () üũ 6 Ǵ 7 . + + $agspay->SetValue("StoreId",trim($_POST["StoreId"])); //̵ + $agspay->SetValue("AuthTy",trim($_POST["AuthTy"])); // + $agspay->SetValue("SubTy",trim($_POST["SubTy"])); // + $agspay->SetValue("rApprNo",trim($_POST["rApprNo"])); //ιȣ + $agspay->SetValue("rApprTm",trim($_POST["rApprTm"])); // + $agspay->SetValue("rDealNo",trim($_POST["rDealNo"])); //ŷȣ + + /**************************************************************************** + * + * [4] ôƮ ûմϴ. + * + ****************************************************************************/ + echo ($agspay->startPay()); + + /**************************************************************************** + * + * [5] ҿû DB Ÿ ʿ ó۾ ϴ κԴϴ. + * + * ſī Ұ ŵǾǷ DB ۾ + * ͸ ϱ ̺κп ϸȴ. + * + * ⼭ DB ۾ ּ. + * Ҽ : $agspay->GetResult("rCancelSuccYn") (:y :n) + * Ұ޽ : $agspay->GetResult("rCancelResMsg") + * + ****************************************************************************/ + + if($agspay->GetResult("rCancelSuccYn") == "y") + { + // ҿ óκ + echo ("ſī Ұ óǾϴ. [" . $agspay->GetResult("rCancelSuccYn")."]". $agspay->GetResult("rCancelResMsg").". " ); + } + else + { + // п óκ + echo ("ſī Ұ óǾϴ. [" . $agspay->GetResult("rCancelSuccYn")."]". $agspay->GetResult("rCancelResMsg").". " ); + } +?> + + + + +
    +"> +"> +"> +"> +"> +"> +"> +"> +"> +"> +"> +"> +"> +"> +"> +"> +"> +
    + + diff --git a/module/shop/pg/agspay/AGS_cancel_result.php b/module/shop/pg/agspay/AGS_cancel_result.php new file mode 100644 index 0000000..79bf7f6 --- /dev/null +++ b/module/shop/pg/agspay/AGS_cancel_result.php @@ -0,0 +1,149 @@ + + + +ôƮ + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +


    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ̵ :
    ιȣ :
    νð :
    ڵ :
    :
    ó޼ :
    ֹȣ :
    Һΰ :
    ݾ :
    īڵ :
    ī :
    Իڵ :
    Ի :
    ȣ :
    ŷȣ :
     
    ī ̿ ó ȿ() ǥ˴ϴ.
    +

    Copyright AEGIS ENTERPRISE.Co.,Ltd. All rights reserved.
    +
    + + diff --git a/module/shop/pg/agspay/AGS_pay.php b/module/shop/pg/agspay/AGS_pay.php new file mode 100644 index 0000000..6f89882 --- /dev/null +++ b/module/shop/pg/agspay/AGS_pay.php @@ -0,0 +1,586 @@ + + + + +ôƮ + + + + + + + + + + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + +
     

    ҿû ׽Ʈ
     
    + 1) ҿû ° ϰ Ͽ Ͻʽÿ.
    + 2) ôƮ ÷ ٿεϿ ġϵ Ǿ ֽϴ. ٿεĿ Ȱâ ߸ Ȯ ư("") Ͽ ÷ ġ ֽʽÿ. ġ Ͽ ٿεϿ ġ ֽʽÿ.
    + 3) ҿû ʿ Է 'ҿû'ư ŬϽø ôƮ ÷ մϴ.
    + 4) ſī常 ҹ ſī() ֽʽÿ.
    + 5) DB ۾ Ͻ (rSuccYn) ȮĿ ۾Ͽ ֽʽÿ.
    + 6) ڵ ôƮ ߱޹[ڵ̵,йȣ,ǰڵ,ǰŸ] ԷϿ ֽʽÿ.
    + 7) Է½ "|" ôƮ ڷ ϴ ̹Ƿ Է ֽʽÿ. +
     
    ǥô ʼ Է»Դϴ.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    ҹ + + + + + +
    ҹ Է ) card:iche
    ̵ (20)
    ֹȣ (40)
    ݾ (12)) ݾ ޸(,)ԷºҰ
    (50)
    ǰ (300)
    URL (50)) http://www.abc.com
    ̸ֹ (50)
    ΰ̹ URL
    âԷ)ü;ǸŻǰ;ݾ;Ⱓ;
    +
    + + + + + + +
    ȸ̵ (20)
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    + ī &
    ֹڸ (40)
    ֹڿó (21)
    ֹּ (100)
    ڸ (40)
    ڿó (21)
    ּ (100)
    Ÿ䱸 (350)
    ī缱
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    + ڵ
    CP̵ (10)
    CPйȣ (10)
    SUB-CP̵ (10)
    ǰڵ (10)
    ǰ + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
     
    +
    뺸 (100)) /ab/AGS_VirAcctResult.jsp
    Աݿ (8)) 20100120
    +
    +

    + + +
     
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + \ No newline at end of file diff --git a/module/shop/pg/agspay/AGS_pay_ing.php b/module/shop/pg/agspay/AGS_pay_ing.php new file mode 100644 index 0000000..2c253b2 --- /dev/null +++ b/module/shop/pg/agspay/AGS_pay_ing.php @@ -0,0 +1,344 @@ + $row) $_POST[$key] = iconv("UTF-8", "EUC-KR", $row); + + /**/ + //$agspay->SetValue("AgsPayHome","C:/htdocs/agspay"); //ôƮ ġ 丮 ( ° ) + //$agspay->SetValue("AgsPayHome","/data2/local_docs/agspay40/php"); //ôƮ ġ 丮 ( ° ) + $agspay->SetValue("AgsPayHome",$_SERVER[DOCUMENT_ROOT]."/module/shop/pg/agspay"); //ôƮ ġ 丮 ( ° ) + $agspay->SetValue("StoreId",trim($_POST["StoreId"])); //̵ + $agspay->SetValue("log","true"); //true : αױ, false : αױϾ. + $agspay->SetValue("logLevel","INFO"); //α׷ : DEBUG, INFO, WARN, ERROR, FATAL (ش ̻ α׸ ϵ) + $agspay->SetValue("UseNetCancel","true"); //true : . false: ̻ + $agspay->SetValue("Type", "Pay"); //(Ұ) + $agspay->SetValue("RecvLen", 7); // () üũ 6 Ǵ 7 . + + $agspay->SetValue("AuthTy",trim($_POST["AuthTy"])); // + $agspay->SetValue("SubTy",trim($_POST["SubTy"])); // + $agspay->SetValue("OrdNo",trim($_POST["OrdNo"])); //ֹȣ + $agspay->SetValue("Amt",trim($_POST["Amt"])); //ݾ + $agspay->SetValue("UserEmail",trim($_POST["UserEmail"])); //̸ֹ + $agspay->SetValue("ProdNm",trim($_POST["ProdNm"])); //ǰ + $AGS_HASHDATA = trim( $_POST["AGS_HASHDATA"] ); //ȣȭ HASHDATA + + /*ſī&»*/ + $agspay->SetValue("MallUrl",trim($_POST["MallUrl"])); //MallUrl(Ա) - ߰ + $agspay->SetValue("UserId",trim($_POST["UserId"])); //ȸ̵ + + + /*ſī*/ + $agspay->SetValue("OrdNm",trim($_POST["OrdNm"])); //ֹڸ + $agspay->SetValue("OrdPhone",trim($_POST["OrdPhone"])); //ֹڿó + $agspay->SetValue("OrdAddr",trim($_POST["OrdAddr"])); //ֹּ ߰ + $agspay->SetValue("RcpNm",trim($_POST["RcpNm"])); //ڸ + $agspay->SetValue("RcpPhone",trim($_POST["RcpPhone"])); //ڿó + $agspay->SetValue("DlvAddr",trim($_POST["DlvAddr"])); //ּ + $agspay->SetValue("Remark",trim($_POST["Remark"])); // + $agspay->SetValue("DeviId",trim($_POST["DeviId"])); //̵ܸ + $agspay->SetValue("AuthYn",trim($_POST["AuthYn"])); // + $agspay->SetValue("Instmt",trim($_POST["Instmt"])); //Һΰ + $agspay->SetValue("UserIp",$_SERVER["REMOTE_ADDR"]); //ȸ IP + + /*ſī(ISP)*/ + $agspay->SetValue("partial_mm",trim($_POST["partial_mm"])); //ϹҺαⰣ + $agspay->SetValue("noIntMonth",trim($_POST["noIntMonth"])); //ҺαⰣ + $agspay->SetValue("KVP_CURRENCY",trim($_POST["KVP_CURRENCY"])); //KVP_ȭڵ + $agspay->SetValue("KVP_CARDCODE",trim($_POST["KVP_CARDCODE"])); //KVP_īڵ + $agspay->SetValue("KVP_SESSIONKEY",$_POST["KVP_SESSIONKEY"]); //KVP_SESSIONKEY + $agspay->SetValue("KVP_ENCDATA",$_POST["KVP_ENCDATA"]); //KVP_ENCDATA + $agspay->SetValue("KVP_CONAME",trim($_POST["KVP_CONAME"])); //KVP_ī + $agspay->SetValue("KVP_NOINT",trim($_POST["KVP_NOINT"])); //KVP_=1 Ϲ=0 + $agspay->SetValue("KVP_QUOTA",trim($_POST["KVP_QUOTA"])); //KVP_Һΰ + + /*ſī(Ƚ)*/ + $agspay->SetValue("CardNo",trim($_POST["CardNo"])); //īȣ + $agspay->SetValue("MPI_CAVV",$_POST["MPI_CAVV"]); //MPI_CAVV + $agspay->SetValue("MPI_ECI",$_POST["MPI_ECI"]); //MPI_ECI + $agspay->SetValue("MPI_MD64",$_POST["MPI_MD64"]); //MPI_MD64 + + /*ſī(Ϲ)*/ + $agspay->SetValue("ExpMon",trim($_POST["ExpMon"])); //ȿⰣ() + $agspay->SetValue("ExpYear",trim($_POST["ExpYear"])); //ȿⰣ() + $agspay->SetValue("Passwd",trim($_POST["Passwd"])); //йȣ + $agspay->SetValue("SocId",trim($_POST["SocId"])); //ֹεϹȣ/ڵϹȣ + + /*ü*/ + $agspay->SetValue("ICHE_OUTBANKNAME",trim($_POST["ICHE_OUTBANKNAME"])); //ü + $agspay->SetValue("ICHE_OUTACCTNO",trim($_POST["ICHE_OUTACCTNO"])); //ü¹ȣ + $agspay->SetValue("ICHE_OUTBANKMASTER",trim($_POST["ICHE_OUTBANKMASTER"])); //ü¼ + $agspay->SetValue("ICHE_AMOUNT",trim($_POST["ICHE_AMOUNT"])); //üݾ + + /*ڵ*/ + $agspay->SetValue("HP_SERVERINFO",trim($_POST["HP_SERVERINFO"])); //SERVER_INFO(ڵ) + $agspay->SetValue("HP_HANDPHONE",trim($_POST["HP_HANDPHONE"])); //HANDPHONE(ڵ) + $agspay->SetValue("HP_COMPANY",trim($_POST["HP_COMPANY"])); //COMPANY(ڵ) + $agspay->SetValue("HP_ID",trim($_POST["HP_ID"])); //HP_ID(ڵ) + $agspay->SetValue("HP_SUBID",trim($_POST["HP_SUBID"])); //HP_SUBID(ڵ) + $agspay->SetValue("HP_UNITType",trim($_POST["HP_UNITType"])); //HP_UNITType(ڵ) + $agspay->SetValue("HP_IDEN",trim($_POST["HP_IDEN"])); //HP_IDEN(ڵ) + $agspay->SetValue("HP_IPADDR",trim($_POST["HP_IPADDR"])); //HP_IPADDR(ڵ) + + /*ARS*/ + $agspay->SetValue("ARS_NAME",trim($_POST["ARS_NAME"])); //ARS_NAME(ARS) + $agspay->SetValue("ARS_PHONE",trim($_POST["ARS_PHONE"])); //ARS_PHONE(ARS) + + /*»*/ + $agspay->SetValue("VIRTUAL_CENTERCD",trim($_POST["VIRTUAL_CENTERCD"])); //ڵ() + $agspay->SetValue("VIRTUAL_DEPODT",trim($_POST["VIRTUAL_DEPODT"])); //Աݿ() + $agspay->SetValue("ZuminCode",trim($_POST["ZuminCode"])); //ֹιȣ() + $agspay->SetValue("MallPage",trim($_POST["MallPage"])); // / 뺸 () + $agspay->SetValue("VIRTUAL_NO",trim($_POST["VIRTUAL_NO"])); //¹ȣ() + + /*ũλ*/ + $agspay->SetValue("ES_SENDNO",trim($_POST["ES_SENDNO"])); //ũȣ + + /*ü() */ + $agspay->SetValue("ICHE_SOCKETYN",trim($_POST["ICHE_SOCKETYN"])); //ü() + $agspay->SetValue("ICHE_POSMTID",trim($_POST["ICHE_POSMTID"])); //ü() ֹ̿ȣ + $agspay->SetValue("ICHE_FNBCMTID",trim($_POST["ICHE_FNBCMTID"])); //ü() FNBCŷȣ + $agspay->SetValue("ICHE_APTRTS",trim($_POST["ICHE_APTRTS"])); //ü() ü ð + $agspay->SetValue("ICHE_REMARK1",trim($_POST["ICHE_REMARK1"])); //ü() Ÿ1 + $agspay->SetValue("ICHE_REMARK2",trim($_POST["ICHE_REMARK2"])); //ü() Ÿ2 + $agspay->SetValue("ICHE_ECWYN",trim($_POST["ICHE_ECWYN"])); //ü() ũο + $agspay->SetValue("ICHE_ECWID",trim($_POST["ICHE_ECWID"])); //ü() ũID + $agspay->SetValue("ICHE_ECWAMT1",trim($_POST["ICHE_ECWAMT1"])); //ü() ũΰݾ1 + $agspay->SetValue("ICHE_ECWAMT2",trim($_POST["ICHE_ECWAMT2"])); //ü() ũΰݾ2 + $agspay->SetValue("ICHE_CASHYN",trim($_POST["ICHE_CASHYN"])); //ü() ݿ࿩ + $agspay->SetValue("ICHE_CASHGUBUN_CD",trim($_POST["ICHE_CASHGUBUN_CD"])); //ü() ݿ + $agspay->SetValue("ICHE_CASHID_NO",trim($_POST["ICHE_CASHID_NO"])); //ü() ݿźȮιȣ + + /*ü-ڷŷ() */ + $agspay->SetValue("ICHEARS_SOCKETYN", trim($_POST["ICHEARS_SOCKETYN"])); //ڷŷü() + $agspay->SetValue("ICHEARS_ADMNO", trim($_POST["ICHEARS_ADMNO"])); //ڷŷü ιȣ + $agspay->SetValue("ICHEARS_POSMTID", trim($_POST["ICHEARS_POSMTID"])); //ڷŷü ֹ̿ȣ + $agspay->SetValue("ICHEARS_CENTERCD", trim($_POST["ICHEARS_CENTERCD"])); //ڷŷü ڵ + $agspay->SetValue("ICHEARS_HPNO", trim($_POST["ICHEARS_HPNO"])); //ڷŷü ޴ȣ + + /**************************************************************************** + * + * [4] ôƮ ûմϴ. + * + ****************************************************************************/ + $agspay->startPay(); + + + /**************************************************************************** + * + * [5] DB Ÿ ʿ ó۾ ϴ κԴϴ. + * + * Ʒ Ͽ ܺ Ͻ ֽϴ. + * + * -- -- + * üID : $agspay->GetResult("rStoreId") + * ֹȣ : $agspay->GetResult("rOrdNo") + * ǰ : $agspay->GetResult("rProdNm") + * ŷݾ : $agspay->GetResult("rAmt") + * : $agspay->GetResult("rSuccYn") (:y :n) + * ޽ : $agspay->GetResult("rResMsg") + * + * 1. ſī + * + * ڵ : $agspay->GetResult("rBusiCd") + * ŷȣ : $agspay->GetResult("rDealNo") + * ιȣ : $agspay->GetResult("rApprNo") + * Һΰ : $agspay->GetResult("rInstmt") + * νð : $agspay->GetResult("rApprTm") + * īڵ : $agspay->GetResult("rCardCd") + * + * 2.ü(ͳݹŷ/ڷŷ) + * ũֹȣ : $agspay->GetResult("ES_SENDNO") (ũ ) + * + * 3. + * ¹߱ ǹϸ Աݴ· Ա Ϸ ƴմϴ. + * Ϸ Ϸ óϿ ǰ Ͻø ȵ˴ϴ. + * ߱޹ · Ա ϷǸ MallPage( Ա뺸 ()) Աݰ ۵Ǹ + * ̶ μ Ϸǰ ǹǷ Ϸῡ ó(ۿû ) MallPage ۾ּž մϴ. + * : $agspay->GetResult("rAuthTy") ( Ϲ : vir_n Ŭ : vir_u ũ : vir_s) + * : $agspay->GetResult("rApprTm") + * ¹ȣ : $agspay->GetResult("rVirNo") + * + * 4.ڵ + * ڵ : $agspay->GetResult("rHP_DATE") + * ڵ TID : $agspay->GetResult("rHP_TID") + * + * 5.ARS + * ARS : $agspay->GetResult("rHP_DATE") + * ARS TID : $agspay->GetResult("rHP_TID") + * + ****************************************************************************/ + + if($agspay->GetResult("rSuccYn") == "y") + { + if($agspay->GetResult("AuthTy") == "virtual"){ + //° Ա Ϸ Աݴ( ߱޼)̹Ƿ ǰ Ͻø ȵ˴ϴ. + + }else{ + //DB + $dblink = SetConn($_conf_db["main_db"]); + + // óκ + if($agspay->GetResult("AuthTy") == "card"){ + $blnRS = updatePayState("card",$_POST["OrdNo"]); + }else if($agspay->GetResult("AuthTy") == "onlycardselfescrow"){ + $blnRS = updatePayState("card",$_POST["OrdNo"]); + }else if($agspay->GetResult("AuthTy") == "hp"){ + $blnRS = updatePayState("hp",$_POST["OrdNo"]); + } + //echo (" óǾϴ. [" . $agspay->GetResult("rSuccYn")."]". $agspay->GetResult("rResMsg").". " ); + } + } + else + { + // п óκ + //echo (" óǾϴ. [" . $agspay->GetResult("rSuccYn")."]". $agspay->GetResult("rResMsg").". " ); + } + + + /******************************************************************* + * [6] ó $agspay->GetResult("NetCancID") ̿Ͽ + * Ȯοû ֽϴ. + * + * ߰ ͼۼ ߻ϹǷ ó ʾ 쿡 Ͻñ ٶϴ. + * + * : + * $agspay->checkPayResult($agspay->GetResult("NetCancID")); + * + *******************************************************************/ + + /* + $agspay->SetValue("Type", "Pay"); // + $agspay->checkPayResult($agspay->GetResult("NetCancID")); + */ + + /******************************************************************* + * [7] DB Ÿ ó۾ н + * + * $cancelReq : "true" ҽ, "false" ҽ. + * + * óκ ϴ + * Ʒ ڵ带 Ͽ ŷ ֽϴ. + * Ҽ : $agspay->GetResult("rCancelSuccYn") (:y :n) + * Ұ޽ : $agspay->GetResult("rCancelResMsg") + * + * ǻ : + * (virtual) ʽϴ. + *******************************************************************/ + + // óκ н $cancelReq "true" Ͽ + // Ҹ ǵ ֽϴ. + // $cancelReq "true" Ǵϼž մϴ. + + /* + $cancelReq = "false"; + + if($cancelReq == "true") + { + $agspay->SetValue("Type", "Cancel"); // + $agspay->SetValue("CancelMsg", "DB FAIL"); // һ + $agspay->startPay(); + } + */ + + +?> + + + + +
    + +"> + + + +"> +"> +"> +"> +"> +"> +"> + + +"> +"> +"> + + +"> +"> +"> +"> + +"> +"> +"> +"> + + +"> +"> +"> + + +"> +"> +"> +"> + + +"> + + +"> +"> + + +"> + +
    + + \ No newline at end of file diff --git a/module/shop/pg/agspay/AGS_pay_ing_mobile.php b/module/shop/pg/agspay/AGS_pay_ing_mobile.php new file mode 100644 index 0000000..45018c6 --- /dev/null +++ b/module/shop/pg/agspay/AGS_pay_ing_mobile.php @@ -0,0 +1,409 @@ +SetValue("AgsPayHome",$_SERVER[DOCUMENT_ROOT]."/module/shop/pg/agspay"); //올더게이트 결제설치 디렉토리 (상점에 맞게 수정) +$agspay->SetValue("StoreId",trim($_POST["StoreId"])); //상점아이디 +$agspay->SetValue("log","true"); //true : 로그기록, false : 로그기록안함. +$agspay->SetValue("logLevel","INFO"); //로그레벨 : DEBUG, INFO, WARN, ERROR, FATAL (해당 레벨이상의 로그만 기록됨) +$agspay->SetValue("UseNetCancel","true"); //true : 망취소 사용. false: 망취소 미사용 +$agspay->SetValue("Type", "Pay"); //고정값(수정불가) +$agspay->SetValue("RecvLen", 7); //수신 데이터(길이) 체크 에러시 6 또는 7 설정. + +$agspay->SetValue("AuthTy",trim($_POST["AuthTy"])); //결제형태 +$agspay->SetValue("SubTy", trim($_POST["SubTy"])); //서브결제형태 +$agspay->SetValue("OrdNo", trim($_POST["OrdNo"])); //주문번호 +$agspay->SetValue("Amt", trim($_POST["Amt"])); //금액 +$agspay->SetValue("UserEmail", trim($_POST["UserEmail"])); //주문자이메일 +$agspay->SetValue("ProdNm", trim($_POST["ProdNm"])); //상품명 +// $AGS_HASHDATA = trim($_POST["AGS_HASHDATA"])); //암호화 HASHDATA + +/*신용카드&가상계좌사용*/ +$agspay->SetValue("MallUrl", trim($_POST["MallUrl"])); //MallUrl(무통장입금) - 상점 도메인 가상계좌추가 +$agspay->SetValue("UserId", trim($_POST["UserId"])); //회원아이디 + +/*신용카드사용*/ +$agspay->SetValue("OrdNm", trim($_POST["OrdNm"])); //주문자명 +$agspay->SetValue("OrdPhone", trim($_POST["OrdPhone"])); //주문자연락처 +$agspay->SetValue("OrdAddr",trim($_POST["OrdAddr"])); //주문자주소 가상계좌추가 +$agspay->SetValue("RcpNm", trim($_POST["RcpNm"])); //수신자명 +$agspay->SetValue("RcpPhone", trim($_POST["RcpPhone"])); //수신자연락처 +$agspay->SetValue("DlvAddr", trim($_POST["DlvAddr"])); //배송지주소 +$agspay->SetValue("Remark", trim($_POST["Remark"])); //비고 +$agspay->SetValue("DeviId", trim($_POST["DeviId"])); //단말기아이디 +$agspay->SetValue("AuthYn", trim($_POST["AuthYn"])); //인증여부 +$agspay->SetValue("Instmt", trim($_POST["Instmt"])); //할부개월수 +//$agspay->SetValue("rCardCd", trim($_POST["rCardCd"])); //카드사코드 +$agspay->SetValue("UserIp",$_SERVER["REMOTE_ADDR"]); //회원 IP + +/*신용카드(ISP)*/ +$agspay->SetValue("partial_mm", trim($_POST["partial_mm"])); //일반할부기간 +$agspay->SetValue("noIntMonth", trim($_POST["noIntMonth"])); //무이자할부기간 +$agspay->SetValue("KVP_CURRENCY", trim($_POST["KVP_CURRENCY"])); //KVP_통화코드 +$agspay->SetValue("KVP_CARDCODE", trim($_POST["KVP_CARDCODE"])); //KVP_카드사코드 +$agspay->SetValue("KVP_SESSIONKEY", $_POST["KVP_SESSIONKEY"]); //KVP_SESSIONKEY +$agspay->SetValue("KVP_ENCDATA", $_POST["KVP_ENCDATA"]); //KVP_ENCDATA +$agspay->SetValue("KVP_CONAME", trim($_POST["KVP_CONAME"])); //KVP_카드명 +$agspay->SetValue("KVP_NOINT", trim($_POST["KVP_NOINT"])); //KVP_무이자=1 일반=0 +$agspay->SetValue("KVP_QUOTA", trim($_POST["KVP_QUOTA"])); //KVP_할부개월 + +/*신용카드(안심)*/ +$agspay->SetValue("CardNo", trim($_POST["CardNo"])); //카드번호 +$agspay->SetValue("MPI_CAVV", $_POST["MPI_CAVV"]); //MPI_CAVV +$agspay->SetValue("MPI_ECI", $_POST["MPI_ECI"]); //MPI_ECI +$agspay->SetValue("MPI_MD64", $_POST["MPI_MD64"]); //MPI_MD64 + +/*신용카드(일반)*/ +$agspay->SetValue("ExpMon", trim($_POST["ExpMon"])); //유효기간(월) +$agspay->SetValue("ExpYear", trim($_POST["ExpYear"])); //유효기간(년) +$agspay->SetValue("Passwd", trim($_POST["Passwd"])); //비밀번호 +$agspay->SetValue("SocId", trim($_POST["SocId"])); //주민등록번호/사업자등록번호 + +/*핸드폰사용*/ +$agspay->SetValue("HP_SERVERINFO", trim($_POST["HP_SERVERINFO"])); //SERVER_INFO(핸드폰결제) +$agspay->SetValue("HP_HANDPHONE", trim($_POST["HP_HANDPHONE"])); //HANDPHONE(핸드폰결제) +$agspay->SetValue("HP_COMPANY", trim($_POST["HP_COMPANY"])); //COMPANY(핸드폰결제) +$agspay->SetValue("HP_ID", trim($_POST["HP_ID"])); //HP_ID(핸드폰결제) +$agspay->SetValue("HP_SUBID", trim($_POST["HP_SUBID"])); //HP_SUBID(핸드폰결제) +$agspay->SetValue("HP_UNITType", trim($_POST["HP_UNITType"])); //HP_UNITType(핸드폰결제) +$agspay->SetValue("HP_IDEN", trim($_POST["HP_IDEN"])); //HP_IDEN(핸드폰결제) +$agspay->SetValue("HP_IPADDR", trim($_POST["HP_IPADDR"])); //HP_IPADDR(핸드폰결제) + +/*가상계좌사용*/ +$agspay->SetValue("VIRTUAL_CENTERCD", trim($_POST["VIRTUAL_CENTERCD"])); //은행코드(가상계좌) +$agspay->SetValue("VIRTUAL_DEPODT", trim($_POST["VIRTUAL_DEPODT"])); //입금예정일(가상계좌) +$agspay->SetValue("ZuminCode", trim($_POST["ZuminCode"])); //주민번호(가상계좌) +$agspay->SetValue("MallPage", trim($_POST["MallPage"])); //상점 입/출금 통보 페이지(가상계좌) +$agspay->SetValue("VIRTUAL_NO", trim($_POST["VIRTUAL_NO"])); //가상계좌번호(가상계좌) + +/*에스크로사용*/ +$agspay->SetValue("ES_SENDNO", trim($_POST["ES_SENDNO"])); //에스크로전문번호 + + +/*추가사용필드*/ +$agspay->SetValue("Column1", trim($_POST["Column1"])); //추가사용필드1 +$agspay->SetValue("Column2", trim($_POST["Column2"])); //추가사용필드2 +$agspay->SetValue("Column3", trim($_POST["Column3"])); //추가사용필드3 + +/**************************************************************************** +* +* [4] 올더게이트 결제서버로 결제를 요청합니다. +* +****************************************************************************/ +$agspay->startPay(); + + +/**************************************************************************** +* +* [5] 결제결과에 따른 상점DB 저장 및 기타 필요한 처리작업을 수행하는 부분입니다. +* +* 아래의 결과값들을 통하여 각 결제수단별 결제결과값을 사용하실 수 있습니다. +* +* -- 공통사용 -- +* 업체ID : $agspay->GetResult("rStoreId") +* 주문번호 : $agspay->GetResult("rOrdNo") +* 상품명 : $agspay->GetResult("rProdNm") +* 거래금액 : $agspay->GetResult("rAmt") +* 성공여부 : $agspay->GetResult("rSuccYn") (성공:y 실패:n) +* 결과메시지 : $agspay->GetResult("rResMsg") +* +* 1. 신용카드 +* +* 전문코드 : $agspay->GetResult("rBusiCd") +* 거래번호 : $agspay->GetResult("rDealNo") +* 승인번호 : $agspay->GetResult("rApprNo") +* 할부개월 : $agspay->GetResult("rInstmt") +* 승인시각 : $agspay->GetResult("rApprTm") +* 카드사코드 : $agspay->GetResult("rCardCd") +* +* +* 2.가상계좌 +* 가상계좌의 결제성공은 가상계좌발급의 성공만을 의미하며 입금대기상태로 실제 고객이 입금을 완료한 것은 아닙니다. +* 따라서 가상계좌 결제완료시 결제완료로 처리하여 상품을 배송하시면 안됩니다. +* 결제후 고객이 발급받은 계좌로 입금이 완료되면 MallPage(상점 입금통보 페이지(가상계좌))로 입금결과가 전송되며 +* 이때 비로소 결제가 완료되게 되므로 결제완료에 대한 처리(배송요청 등)은 MallPage에 작업해주셔야 합니다. +* 결제종류 : $agspay->GetResult("rAuthTy") (가상계좌 일반 : vir_n 유클릭 : vir_u 에스크로 : vir_s) +* 승인일자 : $agspay->GetResult("rApprTm") +* 가상계좌번호 : $agspay->GetResult("rVirNo") +* +* 3.핸드폰결제 +* 핸드폰결제일 : $agspay->GetResult("rHP_DATE") +* 핸드폰결제 TID : $agspay->GetResult("rHP_TID") +* +****************************************************************************/ + +if($agspay->GetResult("rSuccYn") == "y") +{ + $resultArray = array( + "OrdNm" => $agspay->GetResult("OrdNm"), + "OrdPhone" => $agspay->GetResult("OrdPhone"), + "Column1" => $agspay->GetResult("Column1"), + "OrdAddr" => $agspay->GetResult("OrdAddr"), + "UserEmail" => $agspay->GetResult("UserEmail"), + "RcpNm" => $agspay->GetResult("RcpNm"), + "RcpPhone" => $agspay->GetResult("RcpPhone"), + "Column2" => $agspay->GetResult("Column2"), + "DlvAddr" => $agspay->GetResult("DlvAddr"), + "Remark" => $agspay->GetResult("Remark"), + "Column3" => $agspay->GetResult("Column3") + ); + + if($agspay->GetResult("AuthTy") == "virtual"){ + //가상계좌결제의 경우 입금이 완료되지 않은 입금대기상태(가상계좌 발급성공)이므로 상품을 배송하시면 안됩니다. + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //_POST 로 받는 주문번호가 기존에 주문된 주문번호인지 확인 +// if(checkVaildOrderNo(mysql_real_escape_string($_POST["order_no"]))==true){ + if(checkVaildOrderNo(mysql_real_escape_string($agspay->GetResult("rOrdNo")))==true){ + jsMsg("이미 주문이 완료되었습니다."); + } + + //_POST 로 받은 주문번호가 구매직전 장바구니에 있는지 확인 +// if($_POST["order_no"] != $arrList["list"][0]["order_no"]){ + if($agspay->GetResult("rOrdNo") != $arrList["list"][0]["order_no"]){ + jsMsg("잘못된 주문 정보 입니다. 주문 장바구니에 해당 주문건이 없습니다."); + } + + //주문정보 입력 +// if($rSuccYn=="y"){ + $blnRS = setOrderInfoMobile($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 1, $resultArray); +// }else{ +// jsMsg("일반 가상계좌결제 승인실패"); +// } + if($blnRS==true){ + + //주문자에게 메일발송 + // $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_real_escape_string($_REQUEST["order_no"])); + // $arrMailInfo = getMailConfig(1); + // sendMailShopInfo($arrInfo, $arrMailInfo); + //주문자에게 메일발송 + } + //DB해제 + SetDisConn($dblink); + + }else if($agspay->GetResult("AuthTy") == "card"){ + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //_POST 로 받는 주문번호가 기존에 주문된 주문번호인지 확인 +// if(checkVaildOrderNo(mysql_real_escape_string($_POST["order_no"]))==true){ + $blnRS = updatePayState("card",$_POST["OrdNo"]); + if(checkVaildOrderNo(mysql_real_escape_string($agspay->GetResult("rOrdNo")))==true){ + //jsMsg("이미 주문이 완료되었습니다.card"); + } + + //_POST 로 받은 주문번호가 구매직전 장바구니에 있는지 확인 +// if($_POST["order_no"] != $arrList["list"][0]["order_no"]){ + if($agspay->GetResult("rOrdNo") != $arrList["list"][0]["order_no"]){ + //jsMsg("잘못된 주문 정보 입니다. 주문 장바구니에 해당 주문건이 없습니다.card"); + } + + //주문정보 입력 +// if($rSuccYn=="y"){ + $blnRS = setOrderInfoMobile($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 6, $resultArray); +// $blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 2, $agspay->GetResult("rApprNo"), $agspay->GetResult("rApprTm"), $agspay->GetResult("rDealNo"), $agspay->GetResult("AuthTy"), $agspay->GetResult("SubTy")); +// }else{ +// jsMsg("신용카드 승인실패"); +// } + if($blnRS==true){ + //주문자에게 메일발송 + } + //DB해제 + SetDisConn($dblink); + + }else if($agspay->GetResult("AuthTy") == "hp"){ + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //_POST 로 받는 주문번호가 기존에 주문된 주문번호인지 확인 +// if(checkVaildOrderNo(mysql_real_escape_string($_POST["order_no"]))==true){ + if(checkVaildOrderNo(mysql_real_escape_string($agspay->GetResult("rOrdNo")))==true){ + jsMsg("이미 주문이 완료되었습니다."); + } + + //_POST 로 받은 주문번호가 구매직전 장바구니에 있는지 확인 +// if($_POST["order_no"] != $arrList["list"][0]["order_no"]){ + if($agspay->GetResult("rOrdNo") != $arrList["list"][0]["order_no"]){ + jsMsg("잘못된 주문 정보 입니다. 주문 장바구니에 해당 주문건이 없습니다."); + } + + //주문정보 입력 +// if($rSuccYn=="y"){ + $blnRS = setOrderInfoMobile($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 6, $resultArray); +// $blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 2); +// }else{ +// jsMsg("신용카드 승인실패"); +// } + if($blnRS==true){ + //주문자에게 메일발송 +// $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_real_escape_string($_REQUEST["order_no"])); +// $arrMailInfo = getMailConfig(6); +// sendMailShopInfo($arrInfo, $arrMailInfo); + //주문자에게 메일발송 + } + //DB해제 + SetDisConn($dblink); + } +} +else +{ + // 결제실패에 따른 상점처리부분 + echo ("결제가 실패처리되었습니다. [" . $agspay->GetResult("rSuccYn")."]". $agspay->GetResult("rResMsg").". " ); +} + +/******************************************************************* +* [6] 결제가 정상처리되지 못했을 경우 $agspay->GetResult("NetCancID") 값을 이용하여 +* 결제결과에 대한 재확인요청을 할 수 있습니다. +* +* 추가 데이터송수신이 발생하므로 결제가 정상처리되지 않았을 경우에만 사용하시기 바랍니다. +* +* 사용방법 : +* $agspay->checkPayResult($agspay->GetResult("NetCancID")); +* +*******************************************************************/ + +/* +$agspay->SetValue("Type", "Pay"); // 고정 +$agspay->checkPayResult($agspay->GetResult("NetCancID")); +*/ + +/******************************************************************* +* [7] 상점DB 저장 및 기타 처리작업 수행실패시 강제취소 +* +* $cancelReq : "true" 강제취소실행, "false" 강제취소실행안함. +* +* 결제결과에 따른 상점처리부분 수행 중 실패하는 경우 +* 아래의 코드를 참조하여 거래를 취소할 수 있습니다. +* 취소성공여부 : $agspay->GetResult("rCancelSuccYn") (성공:y 실패:n) +* 취소결과메시지 : $agspay->GetResult("rCancelResMsg") +* +* 유의사항 : +* 가상계좌(virtual)는 강제취소 기능이 지원되지 않습니다. +*******************************************************************/ + +// 상점처리부분 수행실패시 $cancelReq를 "true"로 변경하여 +// 결제취소를 수행되도록 할 수 있습니다. +// $cancelReq의 "true"값으로 변경조건은 상점에서 판단하셔야 합니다. + +/* +$cancelReq = "false"; + +if($cancelReq == "true") +{ + $agspay->SetValue("Type", "Cancel"); // 고정 + $agspay->SetValue("CancelMsg", "DB FAIL"); // 취소사유 + $agspay->startPay(); +} +*/ +?> + + + + + +
    + +"> + + + +"> +"> +"> +"> +"> +"> +"> + + +"> +"> +"> + + +"> +"> +"> +"> + +"> +"> +"> +"> + + +"> +"> +"> +"> + + +"> +"> + + +"> + +
    + + diff --git a/module/shop/pg/agspay/AGS_pay_result.php b/module/shop/pg/agspay/AGS_pay_result.php new file mode 100644 index 0000000..93f76ba --- /dev/null +++ b/module/shop/pg/agspay/AGS_pay_result.php @@ -0,0 +1,425 @@ + + + +ôƮ + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +


    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    : + +
    ̵ :
    ֹȣ :
    ֹڸ :
    ǰ :
    ݾ :
    :
    ó޼ :
    νð :
    ڵ :
    ιȣ :
    īڵ :
    ŷȣ :
    ī :
    Իڵ :
    Ի :
    ȣ :
    ü :
    üݾ :
    ü¼ :
    ũ(SEND_NO) :
    ڵTID :
    ڵ¥ :
    ڵڵȣ :
    ڵŻ :
    ARSTID :
    ARS¥ :
    ARSȭȣ :
    ARSŻ :
    Աݰ¹ȣ :
    Ա :
    ָ : ()
    ũ(SEND_NO) :
    :
     
    ī ̿ ó ȿ() ǥ˴ϴ.
    ؽ :
    ؽ :
     
    +

    Copyright AEGIS ENTERPRISE.Co.,Ltd. All rights reserved.
    +
    + + + diff --git a/module/shop/pg/agspay/AGS_progress.html b/module/shop/pg/agspay/AGS_progress.html new file mode 100644 index 0000000..41e2043 --- /dev/null +++ b/module/shop/pg/agspay/AGS_progress.html @@ -0,0 +1,27 @@ + + + +ó... + + + + + + + + +
    + óԴϴ. ø ٷ ֽʽÿ. +
    +
    + +
    + + \ No newline at end of file diff --git a/module/shop/pg/agspay/aegis_Func.php b/module/shop/pg/agspay/aegis_Func.php new file mode 100644 index 0000000..ecdc07b --- /dev/null +++ b/module/shop/pg/agspay/aegis_Func.php @@ -0,0 +1,211 @@ + $Value ) + { + if( strcmp( $Value, $StoreId ) == 0 ) + { + $CurrTime = date( "H" ); + if( $CurrTime >= $Limit_StartTime[$Index] || $CurrTime < $Limit_EndTime[$Index] ) + { + print " + + "; + } + return; + } + } +} +*/ + +/* + Aegis 카드데이터 Encrypt +*/ + +function encrypt_aegis( $OrgData ) +{ + if( empty( $OrgData ) || $OrgData == "" ) + { + return ""; + } + + $temp = ""; + for( $i = 0; $i < strlen( $OrgData ); $i++ ) + { + $temp .= substr( $OrgData, (strlen( $OrgData ) - 1) - $i, 1 ); + } + + //print "Reverse data : ".$temp."
    "; + + $one_char = ""; + $EncData = ""; + for( $i = 0; $i < strlen( $temp ); $i++ ) + { + $one_char = substr( $temp, $i, 1 ); + $EncData .= ($one_char + $i * 77) % 10 ; + } + + //print "Enc Data : ".$EncData."
    "; + + return $EncData; +} + +/* + 문자열 포멧 +*/ +function format_string($TSTR,$TLEN,$TAG) +{ + if ( !isset($TSTR) ) + { + for ( $i=0 ; $i < $TLEN ; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + } + + $TSTR = trim($TSTR); + + $TSTR = stripslashes($TSTR); + + // 입력자료가 길이보다 긴 경우 자르고 한글처리 + + if ( strlen($TSTR) > $TLEN ) + { + // $flag == 1 이면 그 바이트는 한글의 시작 바이트 이라서 거기까지 자르게 되면 + // 한글이 깨지게 되는 현상이 발생합니다. + + $flag = 0; + + for($i=0 ; $i< $TLEN ; $i++) + { + $j = ord($TSTR[$i]); // 문자의 ASCII 값을 구합니다. + // 구한 ASCII값이 127보다 크면 그 바이트가 한글의 시작바이트이거나 끝바이트(?)라는 뜻이죠. + if($j > 127) + { + if( $flag ) $flag = 0; // $flag 값이 존재한다는 것은 이번 문자는 한글의 끝바이트이기 때문에 + // $flag 를 0으로 해줍니다. + else $flag = 1; // 값이 존재하지 않으면 한글의 시작바이트이죠. 그러므로 $flag 는 1! + } + else $flag = 0; // 다른 숫자나 영문일때는 그냥 넘어가면 되겠죠. + } + if( $flag ) + { + // 이렇게 해서 마지막 문자까지의 $flag를 계산해서 $flag가 존재하면 + $TSTR = substr($TSTR, 0, $TLEN - 1); + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + else + { + // 한바이트를 더해서 자르던지 빼서 자르던지 해야겠죠. + $TSTR = substr($TSTR, 0, $TLEN); // 아님 말구.... + } + + return $TSTR; // 이제 결정된 스트링을 반환합니다. + + // 입력자료가 길이보다 작은 경우 SPACE로 채운다 + } + else if ( strlen($TSTR) < $TLEN ) + { + $TLENGTH = strlen($TSTR); + for ( $i=0 ; $i < $TLEN - $TLENGTH; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + + return ($TSTR); + + // 입력자료가 길이와 같은경우 + } + else if ( strlen($TSTR) == $TLEN ) + { + return ($TSTR); + } +} + +/* + 입력한 글자가 숫자아스키값에 해당하는지 판단. +*/ +function IsNumber($word) +{ + + for($i = 0; $i < strlen($word); $i++) + { + $wordNum = ord( substr( $word, $i, 1 ) ); + + if( $wordNum < 48 || $wordNum > 57 ) + { + return false; + } + + } + + return true; +} +/* + 경고 메세지 +*/ +function AlertMsg( $msg , $go=0) +{ + + $msg = str_replace( "\"" ,"'" ,$msg ); + $msg = str_replace( "\n" ,"\\n" ,$msg ); + print ""; + +} +function HistoryGo( $go ) +{ + print ""; +} + +function AlertExit( $msg ) +{ + + AlertMsg( $msg ); + exit; + +} + +function AlertGoBack( $msg ) +{ + + AlertMsg( $msg, -1); + exit; +} + +?> \ No newline at end of file diff --git a/module/shop/pg/agspay/default.html b/module/shop/pg/agspay/default.html new file mode 100644 index 0000000..7052783 --- /dev/null +++ b/module/shop/pg/agspay/default.html @@ -0,0 +1,30 @@ + + + +ôƮ ý + + + + + + + +









    + + + + +
    + + + + + + + + + +
    + + + diff --git a/module/shop/pg/agspay/image/demo_bg.gif b/module/shop/pg/agspay/image/demo_bg.gif new file mode 100644 index 0000000..bc92081 Binary files /dev/null and b/module/shop/pg/agspay/image/demo_bg.gif differ diff --git a/module/shop/pg/agspay/image/demo_btn_01.gif b/module/shop/pg/agspay/image/demo_btn_01.gif new file mode 100644 index 0000000..86a8bc8 Binary files /dev/null and b/module/shop/pg/agspay/image/demo_btn_01.gif differ diff --git a/module/shop/pg/agspay/image/demo_btn_02.gif b/module/shop/pg/agspay/image/demo_btn_02.gif new file mode 100644 index 0000000..e8a0c23 Binary files /dev/null and b/module/shop/pg/agspay/image/demo_btn_02.gif differ diff --git a/module/shop/pg/agspay/image/demo_btn_03.gif b/module/shop/pg/agspay/image/demo_btn_03.gif new file mode 100644 index 0000000..8b96940 Binary files /dev/null and b/module/shop/pg/agspay/image/demo_btn_03.gif differ diff --git a/module/shop/pg/agspay/image/demo_btn_04.gif b/module/shop/pg/agspay/image/demo_btn_04.gif new file mode 100644 index 0000000..d3559d0 Binary files /dev/null and b/module/shop/pg/agspay/image/demo_btn_04.gif differ diff --git a/module/shop/pg/agspay/image/demo_icon_01.gif b/module/shop/pg/agspay/image/demo_icon_01.gif new file mode 100644 index 0000000..6b0a337 Binary files /dev/null and b/module/shop/pg/agspay/image/demo_icon_01.gif differ diff --git a/module/shop/pg/agspay/image/demo_icon_02.gif b/module/shop/pg/agspay/image/demo_icon_02.gif new file mode 100644 index 0000000..1116843 Binary files /dev/null and b/module/shop/pg/agspay/image/demo_icon_02.gif differ diff --git a/module/shop/pg/agspay/image/demo_img_01.gif b/module/shop/pg/agspay/image/demo_img_01.gif new file mode 100644 index 0000000..1e8c3e1 Binary files /dev/null and b/module/shop/pg/agspay/image/demo_img_01.gif differ diff --git a/module/shop/pg/agspay/image/demo_img_02.gif b/module/shop/pg/agspay/image/demo_img_02.gif new file mode 100644 index 0000000..f2248c2 Binary files /dev/null and b/module/shop/pg/agspay/image/demo_img_02.gif differ diff --git a/module/shop/pg/agspay/image/demo_img_03.gif b/module/shop/pg/agspay/image/demo_img_03.gif new file mode 100644 index 0000000..0d6b51e Binary files /dev/null and b/module/shop/pg/agspay/image/demo_img_03.gif differ diff --git a/module/shop/pg/agspay/image/demo_tb_bg01.gif b/module/shop/pg/agspay/image/demo_tb_bg01.gif new file mode 100644 index 0000000..5ee9964 Binary files /dev/null and b/module/shop/pg/agspay/image/demo_tb_bg01.gif differ diff --git a/module/shop/pg/agspay/image/demo_tb_bg02.gif b/module/shop/pg/agspay/image/demo_tb_bg02.gif new file mode 100644 index 0000000..79764ca Binary files /dev/null and b/module/shop/pg/agspay/image/demo_tb_bg02.gif differ diff --git a/module/shop/pg/agspay/image/demo_tb_bottom01.gif b/module/shop/pg/agspay/image/demo_tb_bottom01.gif new file mode 100644 index 0000000..779080a Binary files /dev/null and b/module/shop/pg/agspay/image/demo_tb_bottom01.gif differ diff --git a/module/shop/pg/agspay/image/demo_tb_bottom02.gif b/module/shop/pg/agspay/image/demo_tb_bottom02.gif new file mode 100644 index 0000000..504faca Binary files /dev/null and b/module/shop/pg/agspay/image/demo_tb_bottom02.gif differ diff --git a/module/shop/pg/agspay/image/demo_tb_top01.gif b/module/shop/pg/agspay/image/demo_tb_top01.gif new file mode 100644 index 0000000..0416af3 Binary files /dev/null and b/module/shop/pg/agspay/image/demo_tb_top01.gif differ diff --git a/module/shop/pg/agspay/image/demo_tb_top02.gif b/module/shop/pg/agspay/image/demo_tb_top02.gif new file mode 100644 index 0000000..adcc09c Binary files /dev/null and b/module/shop/pg/agspay/image/demo_tb_top02.gif differ diff --git a/module/shop/pg/agspay/image/progress.gif b/module/shop/pg/agspay/image/progress.gif new file mode 100644 index 0000000..cec0ccb Binary files /dev/null and b/module/shop/pg/agspay/image/progress.gif differ diff --git a/module/shop/pg/agspay/image/style.css b/module/shop/pg/agspay/image/style.css new file mode 100644 index 0000000..35de380 --- /dev/null +++ b/module/shop/pg/agspay/image/style.css @@ -0,0 +1,38 @@ +body { + font-family:""; + font-size:9pt; + color:#333333; + font-weight:normal; + letter-spacing:0pt; + line-height:180%; +} +td { + font-family:""; + font-size:9pt; + color:#333333; + font-weight:normal; + letter-spacing:0pt; + line-height:180%; +} +.title { + font-family:""; + font-size:9pt; + color:#174586; + font-weight:bold; + padding-top:20px; +} +.title2 { + font-family:""; + font-size:9pt; + color:#FF3300; + padding-left:10px; + text-align:left; +} +.clsright { + padding-right:10px; + text-align:right; +} +.clsleft { + padding-left:10px; + text-align:left; +} \ No newline at end of file diff --git a/module/shop/pg/agspay/lib/AGSLib.php b/module/shop/pg/agspay/lib/AGSLib.php new file mode 100644 index 0000000..ded9cf9 --- /dev/null +++ b/module/shop/pg/agspay/lib/AGSLib.php @@ -0,0 +1,1925 @@ +ERRMSG = ""; + + /* + Log 기록 객체생성 + */ + $this->log = new PayLog( $this->REQUEST ); + if(!$this->log->InitLog()) + { + $this->ERRMSG .= "로그파일을 열수가 없습니다.[".$this->REQUEST["AgsPayHome"]."]" ; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = $this->ERRMSG; + return false; + } + + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Start!" ); + + if($this->REQUEST["Type"] == "Cancel") + { + if($this->REQUEST["AuthTy"] == "virtual" ) + { + $this->log->WriteLog( WARN, "Cannot Cancel AuthTy[".$this->REQUEST["AuthTy"]."]" ); + $this->log->CloseLog( "AuthTy[".$this->REQUEST["AuthTy"]."] End"); + return false; + } + } + + /* + 요청값 로그기록 + */ + $this->writeLogArray($this->REQUEST); + + + //취소요청 + if($this->REQUEST["Type"] == "Cancel") + { + if( $this->NetCancel() == false ) + { + /* + 결과값 로그기록 + */ + $this->log->WriteLog( ERROR,$this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Result Value [" ); + $this->writeLogArray($this->RESULT); + $this->log->WriteLog( ERROR, "]" ); + + $this->log->WriteLog( ERROR, $this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Fail End" ); + $this->payQuit(); + return false; + } + + /* + 결과값 로그기록 + */ + $this->log->WriteLog( WARN,$this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Result Value [" ); + $this->writeLogArray($this->RESULT); + $this->log->WriteLog( WARN, "]" ); + + $this->log->WriteLog( WARN, $this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Success End" ); + //log 객체 닫기 + $this->log->CloseLog( $this->GetResult("rCancelResMsg") ); + return true; + } + + if( empty( $this->REQUEST["StoreId"] ) || $this->REQUEST["StoreId"] == "" ) + { + $this->ERRMSG .= "상점아이디 입력여부 확인요망
    "; //상점아이디 + } + + if( empty( $this->REQUEST["OrdNo"] ) || $this->REQUEST["OrdNo"] == "" ) + { + $this->ERRMSG .= "주문번호 입력여부 확인요망
    "; //주문번호 + } + + if( empty( $this->REQUEST["ProdNm"] ) || $this->REQUEST["ProdNm"] == "" ) + { + $this->ERRMSG .= "상품명 입력여부 확인요망
    "; //상품명 + } + + if( empty( $this->REQUEST["Amt"] ) || $this->REQUEST["Amt"] == "" ) + { + $this->ERRMSG .= "금액 입력여부 확인요망
    "; //금액 + } + + if( empty( $this->REQUEST["DeviId"] ) || $this->REQUEST["DeviId"] == "" ) + { + $this->ERRMSG .= "단말기아이디 입력여부 확인요망
    "; //단말기아이디 + } + + if( empty( $this->REQUEST["AuthYn"] ) || $this->REQUEST["AuthYn"] == "" ) + { + $this->ERRMSG .= "인증여부 입력여부 확인요망
    "; //인증여부 + } + + if( strlen($this->ERRMSG) == 0 ){ + + /* Make Tid */ + if( ($MakeTIDResult = $this->MakeNetCancID()) != true){ + $this->log->WriteLog( FATAL, "Make NetCancelID Fail" ); + $this->payQuit(); + return false; + }else{ + $this->log->WriteLog( INFO, "Make NetCancelID OK" ); + } + + /* Make Pay Msg */ + if( ($MakeMsgResult = $this->MakeMsg()) != true){ + $this->log->WriteLog( FATAL, "Make Pay Msg Fail" ); + $this->ERRMSG = "결제요청전문생성 오류."; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->payQuit(); + return false; + }else{ + $this->log->WriteLog( INFO, "Make Pay Msg OK" ); + } + + + + /* Send & Recv Msg */ + if( ($ParseResult = $this->SendRecvMsg()) != true){ + $this->log->WriteLog( FATAL, "Send & Recv Msg Fail" ); + $this->ERRMSG = "결제요청전문 송수신 오류.(결제내역을 꼭 확인해주세요)"; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->REQUEST["CancelMsg"] = "Send & Recv Msg Fail"; + $this->log->WriteLog( WARN, "NetCancel Call" ); + if( $this->NetCancel() == false ) //망취소 + { + $this->log->WriteLog( FATAL, "NetCancel Fail End" ); + $this->payQuit(); + return false; + } + $this->log->WriteLog( INFO, "NetCancel Success End" ); + $this->payQuit(); + return false; + }else{ + $this->log->WriteLog( INFO, "Send & Recv Msg OK" ); + } + + /* RecvMsg Parsing */ + if( ($ParseResult = $this->ParseMsg()) != true){ + $this->log->WriteLog( FATAL, "Msg Parsing Fail" ); + $this->ERRMSG = "결제결과전문 처리중 오류.(결제내역을 꼭 확인해주세요)"; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->REQUEST["CancelMsg"] = "Msg Parsing Fail"; + $this->log->WriteLog( WARN, "NetCancel Call" ); + if( $this->NetCancel() == false ) //망취소 + { + $this->log->WriteLog( FATAL, "NetCancel Fail End" ); + $this->payQuit(); + return false; + } + $this->log->WriteLog( INFO, "NetCancel Success End" ); + $this->payQuit(); + return false; + }else{ + $this->log->WriteLog( INFO, "Msg Parsing OK" ); + } + + } + else + { + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + } + + /* + 결과값 로그기록 + */ + + $this->log->WriteLog( INFO,$this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Result Value [" ); + $this->writeLogArray($this->RESULT); + $this->log->WriteLog( INFO, "]" ); + + //log 객체 닫기 + $this->log->CloseLog( $this->GetResult("rResMsg") ); + + return true; + + } //startPay() End + + + /* + 프로세스 종료 + */ + function payQuit() + { + //log 객체 닫기 + $this->log->CloseLog( $this->GetResult("rResMsg") ); + + /** 소켓 close **/ + if($this->fp != false ){ + fclose( $this->fp ); + } + + } + + /* + 프로세스 종료 + */ + function writeLogArray($array) + { + foreach ($array as $key => $value) + { + $this->log->WriteLog( INFO, $key.":".$value ); + } + } + + /* + 결제요청 Msg 송신 및 결과 Msg수신 + */ + function SendRecvMsg() + { + $this->log->WriteLog( INFO, "Send & Recv Msg Start" ); + + /**************************************************************************** + * + * 암호화Process와 연결을 하고 승인 데이터 송수신 + * + ****************************************************************************/ + + /** 승인 전문을 암호화Process로 전송 **/ + $this->log->WriteLog( INFO, "Send Data To PG Start [ " ); + $this->SendValArray = array(); + $this->SendValArray = explode( "|", $this->sSendMsg ); + $this->log->WriteLog( INFO, $this->SendValArray); + $this->log->WriteLog( INFO, "] Send Data To PG End " ); + $this->log->WriteLog( INFO, "SendMsg : [".$this->sSendMsg."]" ); + + /** 소켓 open **/ + $this->log->WriteLog( INFO, "Connect IP:[".$this->LOCALADDR."] Port:[".$this->LOCALPORT."]" ); + $this->fp = fsockopen( $this->LOCALADDR, $this->LOCALPORT , &$errno, &$errstr, $this->CONN_TIMEOUT ); + + if( !$this->fp ) + { + $this->log->WriteLog( ERROR, "Socket Connect Error: [".$errno."-".$errstr."]" ); + + /** 연결 실패로 인한 실패 메세지 전송 **/ + if($this->REQUEST["Type"] == "Cancel") + { + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = "Socket Connect Fail"; + $this->log->WriteLog( ERROR, $this->RESULT["rCancelResMsg"] ); + } + else + { + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = "Socket Connect Fail"; + $this->log->WriteLog( ERROR, $this->RESULT["rResMsg"] ); + } + if($this->fp) fclose( $this->fp ); + return false; + } + /** 연결에 성공하였으므로 데이터를 받는다. **/ + $this->log->WriteLog( INFO, "Socket Open OK" ); + + fputs( $this->fp, $this->sSendMsg ); + + socket_set_timeout($this->fp, $this->READ_TIMEOUT); + + /** 최초 6바이트를 수신해 데이터 길이를 체크한 후 데이터만큼만 받는다. **/ + /**************************************************************************** + * + * PHP 버전에 따라 수신 데이터 길이 체크시 페이지오류가 발생할 수 있습니다 + * 에러메세지:수신 데이터(길이) 체크 에러 통신오류에 의한 승인 실패 + * 데이터 길이 체크 오류시 아래와 같이 변경하여 사용하십시오 + * $this->sRecvLen = fgets( $this->fp, 6 ); + * $this->sRecvMsg = fgets( $this->fp, $this->sRecvLen ); + * + ****************************************************************************/ + + if($this->REQUEST["RecvLen"] == 7) + { + $this->sRecvLen = fgets( $this->fp, $this->REQUEST["RecvLen"] ); + $this->sRecvMsg = fgets( $this->fp, $this->sRecvLen + 1 ); + } + else if($this->REQUEST["RecvLen"] == 6) + { + $this->sRecvLen = fgets( $this->fp, $this->REQUEST["RecvLen"] ); + $this->sRecvMsg = fgets( $this->fp, $this->sRecvLen); + } + else + { + $this->REQUEST["RecvLen"] = 7; + $this->sRecvLen = fgets( $this->fp, $this->REQUEST["RecvLen"] ); + $this->sRecvMsg = fgets( $this->fp, $this->sRecvLen + 1 ); + } + + $this->log->WriteLog( INFO, "RecvMsg Length : [".$this->sRecvLen."]" ); + $this->log->WriteLog( INFO, "RecvMsg : [".$this->sRecvMsg."]" ); + + /** 소켓 close **/ + fclose( $this->fp ); + $this->log->WriteLog( INFO, "Socket Close OK"); + + if( strlen( $this->sRecvMsg ) > 0 && strlen( $this->sRecvMsg ) == $this->sRecvLen ) + { + /** 수신 데이터(길이) 체크 정상 **/ + $this->log->WriteLog( INFO, "RecvMsg Length Check OK"); + + $this->RecvValArray = array(); + $this->RecvValArray = explode( "|", $this->sRecvMsg ); + + /** null 또는 NULL 문자, 0 을 공백으로 변환 + for( $i = 0; $i < sizeof( $this->RecvValArray); $i++ ) + { + $this->RecvValArray[$i] = trim( $this->RecvValArray[$i] ); + + if( !strcmp( $this->RecvValArray[$i], "null" ) || !strcmp( $this->RecvValArray[$i], "NULL" ) ) + { + $this->RecvValArray[$i] = ""; + } + + if( IsNumber( $this->RecvValArray[$i] ) ) + { + if( $this->RecvValArray[$i] == 0 ) $this->RecvValArray[$i] = ""; + } + } + **/ + $this->log->WriteLog( INFO, "Send & Recv Msg End" ); + return true; + } + else + { + /** 수신 데이터(길이) 체크 에러시 통신오류에 의한 승인 실패로 간주 **/ + if($this->REQUEST["Type"] == "Cancel") + { + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = "Recv Msg Length Check Errror"; + $this->log->WriteLog( ERROR, $this->RESULT["rCancelResMsg"]." : sRecvLen[".$this->sRecvLen."]"."sRecvMsg Length[".strlen( $this->sRecvMsg )."]"); + } + else + { + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = "Recv Msg Length Check Errror"; + $this->log->WriteLog( ERROR, $this->RESULT["rResMsg"]." : sRecvLen[".$this->sRecvLen."]"."sRecvMsg Length[".strlen( $this->sRecvMsg )."]"); + } + + return false; + + } + + } //SendMsg() End + + /* + 웹을 통한 Msg 송신 및 결과 Msg수신 + */ + function SendRecvMsgWeb() + { + //추후 작업예정 + return false; + } + + /* + Make Pay Msg + */ + function MakeMsg() + { + $this->log->WriteLog( INFO, "Make Msg Start" ); + /**************************************************************************** + * ※ 결제 형태 변수의 값에 따른 결제 구분 + * + * * AuthTy = "card" 신용카드결제 + * - SubTy = "isp" 안전결제ISP + * - SubTy = "visa3d" 안심클릭 + * - SubTy = "normal" 일반결제 + * + * * AuthTy = "iche" 일반-계좌이체 + * + * * AuthTy = "virtual" 일반-가상계좌(무통장입금) + * + * * AuthTy = "hp" 핸드폰결제 + * + * * AuthTy = "ars" ARS결제 + * + ****************************************************************************/ + + if( strcmp( $this->REQUEST["AuthTy"], "card" ) == 0 ) + { + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) + { + /**************************************************************************** + * + * [1-1] 신용카드결제 - ISP + * + * -- 이부분은 승인 처리를 위해 암호화Process와 Socket통신하는 부분이다. + * 가장 핵심이 되는 부분이므로 수정후에는 테스트를 하여야 한다. + * -- 데이터 길이는 매뉴얼 참고 + * + * -- 승인 요청 전문 포멧 + * + 데이터길이(6) + ISP구분코드(1) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다.) + * 결제종류(6) | 업체ID(20) | 회원ID(20) | 결제금액(12) | + * 주문번호(40) | 단말기번호(10) | 수신인(40) | 수신인전화(21) | + * 배송지(100) | 주문자명(40) | 주문자연락처(100) | 기타요구사항(350) | + * 상품명(300) | 통화코드(3) | 일반할부기간(2) | 무이자할부기간(2) | + * KVP카드코드(22) | 세션키(256) | 암호화데이터(2048) | 카드명(50) | + * 회원 IP(20) | 회원 Email(50) | 망취소ID (50) | + * + ****************************************************************************/ + + $this->ENCTYPE = 2; + + /**************************************************************************** + * + * 전송 전문 Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "plug15"."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["DeviId"]."|". + $this->REQUEST["RcpNm"]."|". + $this->REQUEST["RcpPhone"]."|". + $this->REQUEST["DlvAddr"]."|". + $this->REQUEST["OrdNm"]."|". + $this->REQUEST["OrdPhone"]."|". + $this->REQUEST["Remark"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["KVP_CURRENCY"]."|". + $this->REQUEST["partial_mm"]."|". + $this->REQUEST["noIntMonth"]."|". + $this->REQUEST["KVP_CARDCODE"]."|". + $this->REQUEST["KVP_SESSIONKEY"]."|". + $this->REQUEST["KVP_ENCDATA"]."|". + $this->REQUEST["KVP_CONAME"]."|". + $this->REQUEST["UserIp"]."|". + $this->REQUEST["UserEmail"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."Make MSG OK " ); + } + else if( ( strcmp( $this->REQUEST["SubTy"], "visa3d" ) == 0 ) || ( strcmp( $this->REQUEST["SubTy"], "normal" ) == 0 ) ) + { + /**************************************************************************** + * + * [1-2] 신용카드결제 - VISA3D, 일반 + * + * -- 이부분은 승인 처리를 위해 암호화Process와 Socket통신하는 부분이다. + * 가장 핵심이 되는 부분이므로 수정후에는 실제 서비스전까지 적절한 테스트를 하여야 한다. + * -- 데이터 길이는 매뉴얼 참고 + * + * -- 승인 요청 전문 포멧 + * + 데이터길이(6) + 암호화여부(1) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 하며 카드번호,유효기간,비밀번호,주민번호는 암호화된다.) + * 결제종류(6) | 업체ID(20) | 회원ID(20) | 결제금액(12) | 주문번호(40) | + * 단말기번호(10) | 카드번호(16) | 유효기간(6) | 할부기간(4) | 인증유무(1) | + * 카드비밀번호(2) | 주민등록번호/사업자번호(10) | 수신인(40) | 수신인전화(21) | 배송지(100) | + * 주문자명(40) | 주문자연락처(100) | 기타요구사항(350) | 상품명(300) | MPI_CAVV | MPI_MD64 | MPI_ECI | 망취소ID (50) | + * + ****************************************************************************/ + + $this->ENCTYPE = 0; + + /**************************************************************************** + * + * 전송 전문 Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "plug15"."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["DeviId"]."|". + $this->encrypt_aegis($this->REQUEST["CardNo"])."|". + $this->encrypt_aegis($this->REQUEST["ExpYear"].$this->REQUEST["ExpMon"])."|". + $this->REQUEST["Instmt"]."|". + $this->REQUEST["AuthYn"]."|". + $this->encrypt_aegis($this->REQUEST["Passwd"])."|". + $this->encrypt_aegis($this->REQUEST["SocId"])."|". + $this->REQUEST["RcpNm"]."|". + $this->REQUEST["RcpPhone"]."|". + $this->REQUEST["DlvAddr"]."|". + $this->REQUEST["OrdNm"]."|". + $this->REQUEST["UserIp"].";".$this->REQUEST["OrdPhone"]."|". + $this->REQUEST["UserEmail"].";".$this->REQUEST["Remark"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["MPI_CAVV"]."|". + $this->REQUEST["MPI_MD64"]."|". + $this->REQUEST["MPI_ECI"]."|". + $this->REQUEST["UserEmail"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."Make MSG OK " ); + } + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0) + { + /**************************************************************************** + * + * [2-1] 인터넷뱅킹 계좌이체(소켓) 처리 + * + * -- 이부분은 인터넷뱅킹 결제 처리를 위해 암호화Process와 Socket통신하는 부분이다. + * 가장 핵심이 되는 부분이므로 수정후에는 실제 서비스전까지 적절한 테스트를 하여야 한다. + * -- 데이터 길이는 매뉴얼 참고 + * + * -- 인터넷뱅킹 결제 요청 전문 포멧 + * + 데이터길이(6) + 암호화여부(1) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다.) + * 결제종류(10) | 업체ID(20) | 주문번호(40) | 예금주명(20) | 거래금액(8) | + * 은행코드(2) | 예금주주민번호(13) | 주문자연락처(16) | 이메일주소(50) | 상품명(100) | + * 이용기관주문번호(50) | FNBC 거래번호(20) | 이체시각(14) | 현금영수증발행여부(1) | 회원아이디(20) | + * 거래자구분(2) | 신분확인번호(13) | 에스크로사용여부(1) | 에스크로회원번호(17) | 에스크로결제금액(8)| + * 에스크로수수료금액(8) | + * + ****************************************************************************/ + + $this->ENCTYPE = R; + + /**************************************************************************** + * + * 전송 전문 Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "RB-PayReq"."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["ICHE_OUTBANKMASTER"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["ICHE_OUTBANKNAME"]."|". + $this->REQUEST["ICHE_OUTACCTNO"]."|". + $this->REQUEST["OrdPhone"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["ICHE_POSMTID"]."|". + $this->REQUEST["ICHE_FNBCMTID"]."|". + $this->REQUEST["ICHE_APTRTS"]."|". + $this->REQUEST["ICHE_CASHYN"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["ICHE_CASHGUBUN_CD"]."|". + $this->REQUEST["ICHE_CASHID_NO"]."|". + $this->REQUEST["ICHE_ECWYN"]."|". + $this->REQUEST["ICHE_ECWID"]."|". + $this->REQUEST["ICHE_ECWAMT1"]."|". + $this->REQUEST["ICHE_ECWAMT2"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHEARS_SOCKETYN"], "Y" ) == 0) + { + /**************************************************************************** + * + * [2-2] 텔레뱅킹 계좌이체(소켓) 처리 + * + * -- 이부분은 텔레뱅킹 결제 처리를 위해 암호화Process와 Socket통신하는 부분이다. + * 가장 핵심이 되는 부분이므로 수정후에는 실제 서비스전까지 적절한 테스트를 하여야 한다. + * -- 데이터 길이는 매뉴얼 참고 + * + * -- 텔레뱅킹 결제 요청 전문 포멧 + * + 데이터길이(6) + 암호화여부(1) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다.) + * 결제종류(10) | 업체ID(20) | 주문번호(40) | 예금주명(20) | + * 거래금액(8) | 은행코드(2) | 예금주주민번호(13) | 주문자연락처(16) | + * 이메일주소(50) | 상품명(100) | 이용기관주문번호(50) | FNBC 거래번호(20) | + * 이체시각(14) | 현금영수증발행여부(1) | 회원아이디(20) | 거래자구분(2) | + * 신분확인번호(13) | 에스크로사용여부(1) | 에스크로회원번호(17) | 에스크로결제금액(8) | + * 에스크로수수료금액(8) | + * + ****************************************************************************/ + + $this->ENCTYPE = B; + + /**************************************************************************** + * + * 전송 전문 Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "TB-PayReq"."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["ICHEARS_POSMTID"]."|". + $this->REQUEST["ICHEARS_ADMNO"]."|". + $this->REQUEST["ICHEARS_CENTERCD"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["ICHE_OUTACCTNO"]."|". + $this->REQUEST["ICHE_OUTBANKMASTER"]."|". + $this->REQUEST["ICHEARS_HPNO"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["ICHE_ECWYN"]."|". + $this->REQUEST["ICHE_ECWID"]."|". + $this->REQUEST["ICHE_ECWAMT1"]."|". + $this->REQUEST["ICHE_ECWAMT2"]."|". + $this->REQUEST["ICHE_CASHYN"]."|". + $this->REQUEST["ICHE_CASHGUBUN_CD"]."|". + $this->REQUEST["ICHE_CASHID_NO"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + + } + else if( strcmp( $this->REQUEST["AuthTy"], "virtual" ) == 0 ) //가상계좌추가 + { + /**************************************************************************** + * + * [3] 가상계좌 결제 + * + * -- 이부분은 승인 처리를 위해 암호화Process와 Socket통신하는 부분이다. + * 가장 핵심이 되는 부분이므로 수정후에는 테스트를 하여야 한다. + * -- 데이터 길이는 매뉴얼 참고 + * + * -- 승인 요청 전문 포멧 + * + 데이터길이(6) + 암호화 구분(1) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다.) + * 결제종류(10) | 업체ID(20) | 주문번호(40) | 은행코드(4) | 가상계좌번호(20) | + * 거래금액(13) | 입금예정일(8) | 구매자명(20) | 주민번호(13) | + * 이동전화(21) | 이메일(50) | 구매자주소(100) | 수신자명(20) | + * 수신자연락처(21) | 배송지주소(100) | 상품명(100) | 기타요구사항(300) | 상점 도메인(50) | 상점 페이지(100)| + * + ****************************************************************************/ + + $this->ENCTYPE = "V"; + + /**************************************************************************** + * + * 전송 전문 Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + /* $this->REQUEST["AuthTy"]."|". */ + "vir_n|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["VIRTUAL_CENTERCD"]."|". + $this->REQUEST["VIRTUAL_NO"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["VIRTUAL_DEPODT"]."|". + $this->REQUEST["OrdNm"]."|". + $this->REQUEST["ZuminCode"]."|". + $this->REQUEST["OrdPhone"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["OrdAddr"]."|". + $this->REQUEST["RcpNm"]."|". + $this->REQUEST["RcpPhone"]."|". + $this->REQUEST["DlvAddr"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["Remark"]."|". + $this->REQUEST["MallUrl"]."|". + $this->REQUEST["MallPage"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + } + else if( strcmp( $this->REQUEST["AuthTy"], "hp" ) == 0 ) + { + /**************************************************************************** + * + * [4] 핸드폰 결제 + * + * 핸드폰 결제를 사용하지않는 상점은 AGS_pay.html에서 지불방법을 꼭 신용카드(전용)으로 설정해 놓으시기 바랍니다. + * + * 이부분은 승인 처리를 위해 암호화Process와 Socket통신하는 부분이다. + * 가장 핵심이 되는 부분이므로 수정후에는 테스트를 하여야 한다. + * -- 승인 요청 전문 포멧 + * + 데이터길이(6) + 핸드폰구분코드(1) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다.) + * + ****************************************************************************/ + + $this->ENCTYPE = "h"; + $this->REQUEST["StrSubTy"] = "Bill"; + + /**************************************************************************** + * + * 전송 전문 Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + $this->REQUEST["StrSubTy"]."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["HP_SERVERINFO"]."|". + $this->REQUEST["HP_ID"]."|". + $this->REQUEST["HP_SUBID"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["HP_UNITType"]."|". + $this->REQUEST["HP_HANDPHONE"]."|". + $this->REQUEST["HP_COMPANY"]."|". + $this->REQUEST["HP_IDEN"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["HP_IPADDR"]."|". + $this->REQUEST["ProdNm"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + + } + else if( strcmp( $this->REQUEST["AuthTy"], "ars" ) == 0 ) + { + /**************************************************************************** + * + * [5] ARS 결제 + * + * ARS 결제를 사용하지않는 상점은 AGS_pay.html에서 지불방법을 꼭 신용카드(전용)으로 설정해 놓으시기 바랍니다. + * + * 이부분은 승인 처리를 위해 암호화Process와 Socket통신하는 부분이다. + * 가장 핵심이 되는 부분이므로 수정후에는 테스트를 하여야 한다. + * -- 승인 요청 전문 포멧 + * + 데이터길이(6) + ARS구분코드(1) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다.) + * + ****************************************************************************/ + + $this->ENCTYPE = "A"; + $this->REQUEST["StrSubTy"] = "ABill"; + + /**************************************************************************** + * + * 전송 전문 Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + $this->REQUEST["StrSubTy"]."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["HP_SERVERINFO"]."|". + $this->REQUEST["HP_ID"]."|". + $this->REQUEST["HP_UNITType"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["HP_SUBID"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["ARS_PHONE"]."|". + $this->REQUEST["HP_IDEN"]."|". + $this->REQUEST["ARS_NAME"]."|". + $this->REQUEST["HP_COMPANY"]."|". + $this->REQUEST["HP_IPADDR"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + }else{ + $this->ERRMSG .= "결제수단 오류. AuthTy:[".$this->REQUEST["AuthTy"]."],SubTy:[".$this->REQUEST["SubTy"]."]"; + $this->log->WriteLog( ERROR, $this->ERRMSG ); + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + + return false; + } + $this->log->WriteLog( INFO, "Make Msg End" ); + return true; + } // MakeMsg() End + + + /* + Make Cancel Msg + */ + function MakeCancelMsg() + { + $this->log->WriteLog( INFO, "Make Cancel Msg Start" ); + if( strcmp( $this->REQUEST["AuthTy"], "card" ) == 0 ) + { + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) + { + + /**************************************************************************** + * + * [1-1] 신용카드승인취소 - ISP + * + * -- 이부분은 취소 승인 처리를 위해 PG서버Process와 Socket통신하는 부분이다. + * 가장 핵심이 되는 부분이므로 수정후에는 실제 서비스전까지 적절한 테스트를 하여야 한다. + * -- 데이터 길이는 매뉴얼 참고 + * + * -- 취소 승인 요청 전문 포멧 + * + 데이터길이(6) + 암호화여부(1) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다. + * 결제종류(6) | 업체아이디(20) | 승인번호(20) | 승인시간(8) | 거래고유번호(6) | + * + * -- 취소 승인 응답 전문 포멧 + * + 데이터길이(6) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다. + * 업체ID(20) | 승인번호(20) | 승인시각(8) | 전문코드(4) | 거래고유번호(6) | 성공여부(1) | + * + ****************************************************************************/ + + $this->ENCTYPE = 2; + + /**************************************************************************** + * + * 전송 전문 Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "cancel"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("rApprNo")."|". + substr($this->GetResult("rApprTm"),0,8)."|". + $this->GetResult("rDealNo")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."Make Cancel MSG OK " ); + } + else if( ( strcmp( $this->REQUEST["SubTy"], "visa3d" ) == 0 ) || ( strcmp( $this->REQUEST["SubTy"], "normal" ) == 0 ) ) + { + /**************************************************************************** + * + * [1-2] 신용카드승인취소 - VISA3D, 일반 + * + * -- 이부분은 취소 승인 처리를 위해 암호화Process와 Socket통신하는 부분이다. + * 가장 핵심이 되는 부분이므로 수정후에는 실제 서비스전까지 적절한 테스트를 하여야 한다. + * + * -- 취소 승인 요청 전문 포멧 + * + 데이터길이(6) + 암호화여부(1) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 하며 카드번호,유효기간,비밀번호,주민번호는 암호화된다.) + * 결제종류(6) | 업체아이디(20) | 승인번호(8) | 승인시간(14) | 카드번호(16) | + * + * -- 취소 승인 응답 전문 포멧 + * + 데이터길이(6) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 하며 암호화Process에서 해독된후 실데이터를 수신하게 된다. + * 업체ID(20) | 승인번호(8) | 승인시각(14) | 전문코드(4) | 성공여부(1) | + * 주문번호(20) | 할부개월(2) | 결제금액(20) | 카드사명(20) | 카드사코드(4) | + * 가맹점번호(15) | 매입사코드(4) | 매입사명(20) | 전표번호(6) + * + ****************************************************************************/ + + $this->ENCTYPE = 0; + + /**************************************************************************** + * + * 전송 전문 Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "cancel"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("rApprNo")."|". + substr($this->GetResult("rApprTm"),0,8)."|". + $this->GetResult("rDealNo")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."Make Cancel MSG OK " ); + } + }else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0){ + + /**************************************************************************** + * + * [2-1] 인터넷뱅킹 계좌이체(소켓) 취소처리 + * + * -- 이부분은 인터넷뱅킹 결제 취소처리를 위해 암호화Process와 Socket통신하는 부분이다. + * 가장 핵심이 되는 부분이므로 수정후에는 실제 서비스전까지 적절한 테스트를 하여야 한다. + * -- 데이터 길이는 매뉴얼 참고 + * + * -- 인터넷뱅킹 결제 요청 전문 포멧 + * + 데이터길이(6) + 암호화여부(1) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다.) + * 결제종류(10) | 업체ID(20) | MTID(계좌이체결제 결과값) | 결제금액(8) | 은행코드(2) + * + ****************************************************************************/ + + $this->ENCTYPE = R; + + /**************************************************************************** + * + * 전송 전문 Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "RB-CanReq"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("ICHE_POSMTID")."|". + $this->GetResult("Amt")."|". + $this->GetResult("ICHE_OUTBANKNAME")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make Cancel MSG OK " ); + + }else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHEARS_SOCKETYN"], "Y" ) == 0){ + + /**************************************************************************** + * + * [2-1] 텔레뱅킹 계좌이체(소켓) 취소처리 + * + * -- 이부분은 텔레뱅킹 결제 취소처리를 위해 암호화Process와 Socket통신하는 부분이다. + * 가장 핵심이 되는 부분이므로 수정후에는 실제 서비스전까지 적절한 테스트를 하여야 한다. + * -- 데이터 길이는 매뉴얼 참고 + * + * -- 텔레뱅킹 결제 요청 전문 포멧 + * + 데이터길이(6) + 암호화여부(1) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다.) + * 결제종류(10) | 업체ID(20) | MTID(계좌이체결제 결과값) | 결제금액(8) | 은행코드(2) + * + ****************************************************************************/ + + $this->ENCTYPE = B; + + /**************************************************************************** + * + * 전송 전문 Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "TB-CanReq"."|". + $this->GetResult("StoreId")."|". + ""."|". + ""."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make Cancel MSG OK " ); + + }else if( strcmp( $this->REQUEST["AuthTy"], "hp" ) == 0 ){ + + /**************************************************************************** + * + * [3] 핸드폰 취소처리 + * + * -- 이부분은 핸드폰 결제 취소처리를 위해 암호화Process와 Socket통신하는 부분이다. + * 가장 핵심이 되는 부분이므로 수정후에는 실제 서비스전까지 적절한 테스트를 하여야 한다. + * -- 데이터 길이는 매뉴얼 참고 + * + * -- 핸드폰 결제 요청 전문 포멧 + * + 데이터길이(6) + 암호화여부(1) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다.) + * 결제종류(10) | 업체ID(20) | NetCancID | + * + ****************************************************************************/ + + $this->ENCTYPE = H; + + /**************************************************************************** + * + * 전송 전문 Make + * + ****************************************************************************/ + $this->sDataMsg = $this->ENCTYPE. + "MobileCanReq"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make Cancel MSG OK " ); + + }else if( strcmp( $this->REQUEST["AuthTy"], "ars" ) == 0 ){ + + /**************************************************************************** + * + * [4] ARS 취소처리 + * + * -- 이부분은 ARS 결제 취소처리를 위해 암호화Process와 Socket통신하는 부분이다. + * 가장 핵심이 되는 부분이므로 수정후에는 실제 서비스전까지 적절한 테스트를 하여야 한다. + * -- 데이터 길이는 매뉴얼 참고 + * + * -- ARS 결제 요청 전문 포멧 + * + 데이터길이(6) + 암호화여부(1) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다.) + * 결제종류(10) | 업체ID(20) | NetCancID | + * + ****************************************************************************/ + + $this->ENCTYPE = A; + + /**************************************************************************** + * + * 전송 전문 Make + * + ****************************************************************************/ + $this->sDataMsg = $this->ENCTYPE. + "ARSCanReq"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make Cancel MSG OK " ); + + }else{ + //신용카드,계좌이체 이외의 결제수단은 취소기능 적용되지 않음. + $this->log->WriteLog( WARN, "Cancel Passed. AuthTy : [".$this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]."] " ); + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = "Cannot Cancel AuthTy[".$this->REQUEST["AuthTy"]."]"; + return false; + } + $this->log->WriteLog( INFO, "Make Cancel Msg End" ); + return true; + } //MakeCancelMsg End + + + /* + RecvMsg Parsing + */ + function ParseMsg() + { + $this->log->WriteLog( INFO, "Parse Msg Start" ); + /**************************************************************************** + * ※ 결제 형태 변수의 값에 따른 결제 구분 + * + * * AuthTy = "card" 신용카드결제 + * - SubTy = "isp" 안전결제ISP + * - SubTy = "visa3d" 안심클릭 + * - SubTy = "normal" 일반결제 + * + * * AuthTy = "iche" 일반-계좌이체 + * + * * AuthTy = "virtual" 일반-가상계좌(무통장입금) + * + * * AuthTy = "hp" 핸드폰결제 + * + * * AuthTy = "ars" ARS결제 + * + ****************************************************************************/ + + if( strcmp( $this->REQUEST["AuthTy"], "card" ) == 0 ) + { + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) + { + /**************************************************************************** + * + * [1-1] 신용카드 안전결제ISP 처리 + * + * + * -- 승인 응답 전문 포멧 + * + 데이터길이(6) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다. + * 업체ID(20) | 전문코드(4) | 거래고유번호(6) | 승인번호(8) | + * 거래금액(12) | 성공여부(1) | 실패사유(20) | 승인시각(14) | + * 카드사코드(4) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rBusiCd"] = $this->RecvValArray[1]; + $this->RESULT["rOrdNo"] = $this->REQUEST["OrdNo"]; + $this->RESULT["rDealNo"] = $this->RecvValArray[2]; + $this->RESULT["rApprNo"] = $this->RecvValArray[3]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->RESULT["rAmt"] = $this->RecvValArray[4]; + $this->RESULT["rInstmt"] = $this->REQUEST["KVP_QUOTA"]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[5]; + $this->RESULT["rResMsg"] = $this->RecvValArray[6]; + $this->RESULT["rApprTm"] = $this->RecvValArray[7]; + $this->RESULT["rCardCd"] = $this->RecvValArray[8]; + + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."RECV MSG Parsing OK " ); + } + else if( ( strcmp( $this->REQUEST["SubTy"], "visa3d" ) == 0 ) || ( strcmp( $this->REQUEST["SubTy"], "normal" ) == 0 ) ) + { + /**************************************************************************** + * + * [1-2] 안심클릭 or 일반결제 처리 승인응답 전문포맷 + * + 데이터길이(6) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 하며 암호화Process에서 해독된후 실데이터를 수신하게 된다. + * 업체ID(20) | 전문코드(4) | 주문번호(40) | 승인번호(8) | 거래금액(12) | + * 성공여부(1) | 실패사유(20) | 카드사명(20) | 승인시각(14) | 카드사코드(4) | + * 가맹점번호(15) | 매입사코드(4) | 매입사명(20) | 전표번호(6) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rBusiCd"] = $this->RecvValArray[1]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[2]; + $this->RESULT["rApprNo"] = $this->RecvValArray[3]; + $this->RESULT["rInstmt"] = $this->REQUEST["Instmt"]; + $this->RESULT["rAmt"] = $this->RecvValArray[4]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[5]; + $this->RESULT["rResMsg"] = $this->RecvValArray[6]; + $this->RESULT["rCardNm"] = $this->RecvValArray[7]; + $this->RESULT["rApprTm"] = $this->RecvValArray[8]; + $this->RESULT["rCardCd"] = $this->RecvValArray[9]; + $this->RESULT["rMembNo"] = $this->RecvValArray[10]; + $this->RESULT["rAquiCd"] = $this->RecvValArray[11]; + $this->RESULT["rAquiNm"] = $this->RecvValArray[12]; + $this->RESULT["rDealNo"] = $this->RecvValArray[13]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."RECV MSG Parsing OK " ); + } + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0) + { + /**************************************************************************** + * + * [2-1] 계좌이체 소켓방식(인터넷뱅킹) 결제 요청 응답 전문 포멧 + * + 데이터길이(6) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 하며 암호화Process에서 해독된후 실데이터를 수신하게 된다. + * 결제종류(10) | 상점아이디(20) | 주문번호(40) | 이용기관주문번호(50) | 결과코드(4) | 결과메시지(300) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[2]; + $this->RESULT["rMTid"] = $this->RecvValArray[3]; + $this->RESULT["ES_SENDNO"] = $this->RecvValArray[4]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[5]; + $this->RESULT["rResMsg"] = $this->RecvValArray[6]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."RECV MSG Parsing OK " ); + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHEARS_SOCKETYN"], "Y" ) == 0) + { + /**************************************************************************** + * + * [2-2] 계좌이체 텔레뱅킹 처리 + * + * -- 텔레뱅킹 결제 요청 응답 전문 포멧 + * + 데이터길이(6) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 하며 암호화Process에서 해독된후 실데이터를 수신하게 된다. + * 결제종류(10) | 상점아이디(20) | 주문번호(40) | 이용기관주문번호(50) | 결과코드(4) | 결과메시지(300) |* + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[2]; + $this->RESULT["rMTid"] = $this->RecvValArray[3]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[4]; + $this->RESULT["rResMsg"] = $this->RecvValArray[5]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Parse MSG Passed " ); + + $pos = strpos($this->RESULT["rResMsg"],':'); + if( $pos !== false ) + { + $this->RESULT["ES_SENDNO"] = substr($this->RESULT["rResMsg"],$pos+1,6) ; + $this->log->WriteLog( INFO, "ES_SENDNO : [".$this->RESULT["ES_SENDNO"]."] "); + } + + } + else if( strcmp( $this->REQUEST["AuthTy"], "virtual" ) == 0 ) + { + /**************************************************************************** + * + * [3] 가상계좌(무통장입금) 처리 + * + * -- 승인 응답 전문 포멧 + * + 데이터길이(6) + 암호화 구분(1) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다. + * 결제종류(10) | 업체ID(20) | 승인일자(14) | 가상계좌번호(20) | 결과코드(1) | 결과메시지(100) | + * + ****************************************************************************/ + + $this->RESULT["rAuthTy"] = $this->RecvValArray[0]; + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rApprTm"] = $this->RecvValArray[2]; + $this->RESULT["rVirNo"] = $this->RecvValArray[3]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[4]; + $this->RESULT["rResMsg"] = $this->RecvValArray[5]; + + $this->RESULT["rOrdNo"] = $this->REQUEST["OrdNo"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + + $pos = strpos($this->RESULT["rResMsg"],':'); + if( $pos !== false ) + { + $this->RESULT["ES_SENDNO"] = substr($this->RESULT["rResMsg"],$pos+1,6) ; + $this->log->WriteLog( INFO, "ES_SENDNO : [".$this->RESULT["ES_SENDNO"]."] "); + } + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."RECV MSG Parsing OK " ); + + } + else if( strcmp( $this->REQUEST["AuthTy"], "hp" ) == 0 ) + { + /**************************************************************************** + * + * [4] 핸드폰 결제 + * + * -- 승인 응답 전문 포멧 + * + 데이터길이(6) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다.) + * 업체ID(20) | 결과코드(1) | 결과메시지(100) | 핸드폰결제일(8) | 핸드폰결제 TID(12) | 거래금액(12) | 주문번호(40) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[1]; + $this->RESULT["rResMsg"] = $this->RecvValArray[2]; + $this->RESULT["rHP_DATE"] = $this->RecvValArray[3]; + $this->RESULT["rHP_TID"] = $this->RecvValArray[4]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + $this->RESULT["rOrdNo"] = $this->REQUEST["OrdNo"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."RECV MSG Parsing OK " ); + + } + else if( strcmp( $this->REQUEST["AuthTy"], "ars" ) == 0 ) + { + /**************************************************************************** + * + * [5] ARS 결제 + * + * -- 승인 응답 전문 포멧 + * + 데이터길이(6) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다.) + * 업체ID(20) | 결과코드(1) | 결과메시지(100) | ARS결제일(8) | ARS결제 TID(12) | 거래금액(12) | 주문번호(40) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[1]; + $this->RESULT["rResMsg"] = $this->RecvValArray[2]; + $this->RESULT["rHP_DATE"] = $this->RecvValArray[3]; + $this->RESULT["rHP_TID"] = $this->RecvValArray[4]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + $this->RESULT["rOrdNo"] = $this->REQUEST["OrdNo"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."RECV MSG Parsing OK " ); + }else{ + $this->log->WriteLog( FATAL, "Unknown AuthTy. AuthTy:[".$this->REQUEST["AuthTy"]."],SubTy:[".$this->REQUEST["SubTy"]."]"); + return false; + } + $this->log->WriteLog( INFO, "Parse Msg End" ); + return true; + + } //ParseMsg() End + + + /* + RecvCancelMsg Parsing + */ + function ParseCancelMsg() + { + $this->log->WriteLog( INFO, "Parse Cancel Msg Start" ); + if( strcmp( $this->REQUEST["AuthTy"], "card" ) == 0 ) + { + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) + { + /* [1-1] 안전결제ISP 처리 */ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rApprNo"] = $this->RecvValArray[1]; + $this->RESULT["rApprTm"] = $this->RecvValArray[2]; + $this->RESULT["rBusiCd"] = $this->RecvValArray[3]; + $this->RESULT["rDealNo"] = $this->RecvValArray[4]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[5]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[6]; + + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."RECV MSG Parsing OK " ); + } + else if( ( strcmp( $this->REQUEST["SubTy"], "visa3d" ) == 0 ) || ( strcmp( $this->REQUEST["SubTy"], "normal" ) == 0 ) ) + { + /* [1-2] 안심클릭 or 일반결제 처리 */ + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rApprNo"] = $this->RecvValArray[1]; + $this->RESULT["rApprTm"] = $this->RecvValArray[2]; + $this->RESULT["rBusiCd"] = $this->RecvValArray[3]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[4]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[5]; + $this->RESULT["rInstmt"] = $this->RecvValArray[6]; + $this->RESULT["rAmt"] = $this->RecvValArray[7]; + $this->RESULT["rCardNm"] = $this->RecvValArray[8]; + $this->RESULT["rCardCd"] = $this->RecvValArray[9]; + $this->RESULT["rMembNo"] = $this->RecvValArray[10]; + $this->RESULT["rAquiCd"] = $this->RecvValArray[11]; + $this->RESULT["rAquiNm"] = $this->RecvValArray[12]; + $this->RESULT["rDealNo"] = $this->RecvValArray[13]; + + if($this->RESULT["rCancelSuccYn"] == "y") + { + $this->RESULT["rCancelResMsg"] = "정상취소"; + } + else + { + $this->RESULT["rCancelResMsg"] = "취소실패"; + } + + + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."RECV MSG Parsing OK " ); + } + + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0) + { + /* [2-1] 계좌이체 인터넷뱅킹 취소*/ + /* [RB-CanRes|상점ID|posmTid|주문번호|y|취소성공|] */ + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["ICHE_POSMTID"] = $this->RecvValArray[2]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[3]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[4]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[5]; + + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHEARS_SOCKETYN"], "Y" ) == 0) + { + /* [2-2] 계좌이체 텔레뱅킹 취소*/ + /* [TB-CanRes|상점ID|posmTid|주문번호|y|취소성공|] */ + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rMTid"] = $this->RecvValArray[2]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[3]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[4]; + + } + else if( strcmp( $this->REQUEST["AuthTy"], "hp" ) == 0 ) + { + /**************************************************************************** + * + * [4] 핸드폰 결제 취소 + * + * -- 취소 응답 전문 포멧 + * + 데이터길이(6) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 하며 암호화Process에서 해독된후 실데이터를 수신하게 된다. + * | MobileCanRes | 업체ID(20) | 성공여부(1) | 결과메세지 | 취소처리일시 | 이용기관주문번호 | + * + ****************************************************************************/ + + /* [MobileCanRes|상점ID|결과(y/n)|결과메세지|취소일시|이용기관주문번호|] */ + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[2]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[3]; + $this->RESULT["rCancelDate"] = $this->RecvValArray[4]; + $this->RESULT["rTid"] = $this->RecvValArray[5]; + + } + else if( strcmp( $this->REQUEST["AuthTy"], "ars" ) == 0 ) + { + /**************************************************************************** + * + * [5] ARS 결제 취소 + * + * -- 취소 응답 전문 포멧 + * + 데이터길이(6) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 하며 암호화Process에서 해독된후 실데이터를 수신하게 된다. + * | ArsCanRes | 업체ID(20) | 성공여부(1) | 결과메세지 | 취소처리일시 | 이용기관주문번호 | + * + ****************************************************************************/ + + /* [ArsCanRes|상점ID|결과(y/n)|결과메세지|취소일시|이용기관주문번호|] */ + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[2]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[3]; + $this->RESULT["rCancelDate"] = $this->RecvValArray[4]; + $this->RESULT["rTid"] = $this->RecvValArray[5]; + + } + else + { + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Parse CancelMSG Passed " ); + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = "Cannot Cancel AuthTy[".$this->REQUEST["AuthTy"]."]"; + return false; + } + $this->log->WriteLog( INFO, "Parse Cancel Msg End" ); + return true; + } + + + /* + 망취소 요청 + */ + function NetCancel() + { + $this->log->WriteLog( WARN, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." Cancel Start"); + + if( $this->REQUEST["UseNetCancel"] == "true" || $this->REQUEST["Type"] == "Cancel" ) + { + $this->log->WriteLog( WARN, "Cancel Reason : ".$this->REQUEST["CancelMsg"]); + + if( !($this->MakeCancelMsg()) ) + { + $this->log->WriteLog( ERROR, "Make CancelMsg Error"); + return false; + } + if( !($this->SendRecvMsg()) ) + { + $this->log->WriteLog( ERROR, "Send & Recv Msg Error"); + return false; + } + if( !($this->ParseCancelMsg()) ) + { + $this->log->WriteLog( ERROR, "ParseCancelMsg Error"); + return false; + } + if( $this->RESULT["rCancelSuccYn"] == "y") + { + $this->log->WriteLog( WARN, "Cancel Success"); + } + else + { + $this->log->WriteLog( FATAL, "Cancel FAIL"); + } + } + else + { + $this->log->WriteLog( WARN, "Cancel Passed (UseNetCancel value Is false)"); + } + + $this->log->WriteLog( WARN, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." Cancel End"); + + if($this->RESULT["rCancelSuccYn"] == "y"){ + //결제결과값 실패로 설정 + $this->SetPayResult( "rSuccYn", "n" ); + $this->SetPayResult( "rResMsg", $this->REQUEST["CancelMsg"] ); + return true; + }else{ + return false; + } + + } + + /* + 데이터 확인요청 + */ + function checkPayResult( $TID ) + { + /* + Log 기록 객체생성 + */ + $this->log = new PayLog( $this->REQUEST ); + if(!$this->log->InitLog()) + { + $this->ERRMSG .= "로그파일을 열수가 없습니다.[".$this->REQUEST["AgsPayHome"]."]" ; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = $this->ERRMSG; + return false; + } + + $this->log->WriteLog( INFO, "[".$TID."] Check PayResult Start"); + + + //"AEGIS_".$TidTp . $this->REQUEST["StoreId"] . $datestr . rand(100,999); + + switch(substr($TID,6,4)){ + case("ISP_"): // 신용카드 ISP + $this->REQUEST["AuthTy"] = "card" ; + $this->REQUEST["SubTy"] = "isp" ; + break; + case("VISA"): // 신용카드 안심클릭/일반 + $this->REQUEST["AuthTy"] = "card" ; + $this->REQUEST["SubTy"] = "visa3d" ; + break; + case("IBK_"): // 인터넷뱅킹 + $this->REQUEST["AuthTy"] = "iche" ; + break; + case("TBK_"): // 텔레뱅킹 + $this->REQUEST["AuthTy"] = "iche" ; + break; + case("VIR_"): // 가상계좌 + $this->REQUEST["AuthTy"] = "virtual" ; + break; + case("HPP_"): // 휴대폰 결제 + $this->REQUEST["AuthTy"] = "hp" ; + break; + case("ARS_"): // ARS 전화결제 + $this->REQUEST["AuthTy"] = "ars" ; + break; + default: // 미확인 결제방식 + $this->REQUEST["AuthTy"] = "unknown" ; + break; + } + + /**************************************************************************** + * 전송 전문 Make + ****************************************************************************/ + $this->ENCTYPE = "I"; + + $this->sDataMsg = $this->ENCTYPE. + "PayInfo"."|". + $this->REQUEST["StoreId"]."|". + $TID."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + + if( !($this->SendRecvMsg()) ) //소켓을 통해 거래결과 확인 + { + if( !($this->SendRecvMsgWeb()) ) //웹을 통해 거래결과 확인 + { + + } + } + + if( !($this->ParseMsg()) ) + { + $this->log->WriteLog( ERROR, "Parse Check PayResult Error"); + return false; + } + + $this->log->WriteLog( INFO, "[".$TID."] Check PayResult End"); + + $this->writeLogArray($this->RESULT); + + //log 객체 닫기 + $this->log->CloseLog( $this->GetResult("rResMsg") ); + + return true; + } + + + /* + 결제데이터 Set + */ + function SetValue( $key, $val ) + { + $this->REQUEST[$key] = $val; + } + + /* + 결제데이터 Get + */ + function GetResult( $name ) + { + $result = $this->RESULT[$name]; + if( strlen($result) == 0 || $result == "") $result = $this->REQUEST[$name]; + return $result; + } + + /* + 결제결과 rSuccYn Set + */ + function SetPayResult( $key, $val ) + { + $this->RESULT[$key] = $val; + } + + /* + Make NetCancel ID(); + */ + + function MakeNetCancID() + { + $this->log->WriteLog( INFO, "Make NetCancel ID Start" ); + switch($this->REQUEST["AuthTy"]){ + case("card"): // 신용카드 + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) $TidTp = "ISP_"; else $TidTp = "VISA"; + break; + case("iche"): // 은행 계좌 이체 (IBK:인터넷뱅킹, TBK:텔레뱅킹) + if( strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0 ) $TidTp = "IBK_"; else $TidTp = "TBK_"; + break; + case("virtual"): // 가상계좌 + $TidTp = "VIR_"; break; + case("hp"): // 휴대폰 결제 + $TidTp = "HPP_"; break; + case("ars"): // ARS 전화결제 + $TidTp = "ARS_"; break; + default: + $TidTp = "UNKW"; //미확인 결제방식 + } + + list($usec, $sec) = explode(" ", microtime()); + $datestr = date("YmdHis", $sec).substr($usec,2,3); //YYYYMMDDHHMMSSSSS + + //TID는 최소 31자리 ,최대 51자리를 넘지 않는다. + $this->RESULT["NetCancID"] = "AEGIS_".$TidTp . $this->REQUEST["StoreId"] . "_" . $datestr . rand(100,999); + if( (!strlen( $this->RESULT["NetCancID"] ) >= 31 && strlen( $this->RESULT["NetCancID"] ) <= 51) ) + { + $this->log->WriteLog( ERROR, $this->RESULT["NetCancID"]); + return false; + } + $this->log->WriteLog( INFO, $this->RESULT["NetCancID"]); + $this->log->WriteLog( INFO, "Make NetCancel ID End" ); + return true; + } + + /* + Set Error Msg ; + */ + function SetErrorMsg($rSuccYn,$rResMsg) + { + $this->log->WriteLog( INFO, "Set Result Msg Start"); + $this->RESULT["rSuccYn"] = $rSuccYn; + $this->RESULT["rResMsg"] = $rResMsg; + $this->log->WriteLog( INFO, "Set Result Msg End"); + } + + /* + Aegis 카드데이터 Encrypt + */ + function encrypt_aegis( $OrgData ) + { + $this->log->WriteLog( INFO, "Encrypt Start"); + if( empty( $OrgData ) || $OrgData == "" ) + { + $this->log->WriteLog( INFO, "Encrypt End"); + return ""; + } + + $temp = ""; + for( $i = 0; $i < strlen( $OrgData ); $i++ ) + { + $temp .= substr( $OrgData, (strlen( $OrgData ) - 1) - $i, 1 ); + } + + //print "Reverse data : ".$temp."
    "; + + $one_char = ""; + $EncData = ""; + for( $i = 0; $i < strlen( $temp ); $i++ ) + { + $one_char = substr( $temp, $i, 1 ); + $EncData .= ($one_char + $i * 77) % 10 ; + } + + //print "Enc Data : ".$EncData."
    "; + + $this->log->WriteLog( INFO, "Encrypt End"); + + return $EncData; + } + + /* + 문자열 포멧 + */ + function format_string($TSTR,$TLEN,$TAG) + { + if ( !isset($TSTR) ) + { + for ( $i=0 ; $i < $TLEN ; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + } + + $TSTR = trim($TSTR); + + $TSTR = stripslashes($TSTR); + + // 입력자료가 길이보다 긴 경우 자르고 한글처리 + + if ( strlen($TSTR) > $TLEN ) + { + // $flag == 1 이면 그 바이트는 한글의 시작 바이트 이라서 거기까지 자르게 되면 + // 한글이 깨지게 되는 현상이 발생합니다. + + $flag = 0; + + for($i=0 ; $i< $TLEN ; $i++) + { + $j = ord($TSTR[$i]); // 문자의 ASCII 값을 구합니다. + // 구한 ASCII값이 127보다 크면 그 바이트가 한글의 시작바이트이거나 끝바이트(?)라는 뜻이죠. + if($j > 127) + { + if( $flag ) $flag = 0; // $flag 값이 존재한다는 것은 이번 문자는 한글의 끝바이트이기 때문에 + // $flag 를 0으로 해줍니다. + else $flag = 1; // 값이 존재하지 않으면 한글의 시작바이트이죠. 그러므로 $flag 는 1! + } + else $flag = 0; // 다른 숫자나 영문일때는 그냥 넘어가면 되겠죠. + } + if( $flag ) + { + // 이렇게 해서 마지막 문자까지의 $flag를 계산해서 $flag가 존재하면 + $TSTR = substr($TSTR, 0, $TLEN - 1); + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + else + { + // 한바이트를 더해서 자르던지 빼서 자르던지 해야겠죠. + $TSTR = substr($TSTR, 0, $TLEN); // 아님 말구.... + } + + return $TSTR; // 이제 결정된 스트링을 반환합니다. + + // 입력자료가 길이보다 작은 경우 SPACE로 채운다 + } + else if ( strlen($TSTR) < $TLEN ) + { + $TLENGTH = strlen($TSTR); + for ( $i=0 ; $i < $TLEN - $TLENGTH; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + + return ($TSTR); + + // 입력자료가 길이와 같은경우 + } + else if ( strlen($TSTR) == $TLEN ) + { + return ($TSTR); + } + } + + /* + 입력한 글자가 숫자아스키값에 해당하는지 판단. + */ + function IsNumber($word) + { + + for($i = 0; $i < strlen($word); $i++) + { + $wordNum = ord( substr( $word, $i, 1 ) ); + + if( $wordNum < 48 || $wordNum > 57 ) + { + return false; + } + + } + + return true; + } + /* + 경고 메세지 + */ + function AlertMsg( $msg , $go=0) + { + + $msg = str_replace( "\"" ,"'" ,$msg ); + $msg = str_replace( "\n" ,"\\n" ,$msg ); + print ""; + + } + function HistoryGo( $go ) + { + print ""; + } + + function AlertExit( $msg ) + { + + AlertMsg( $msg ); + exit; + + } + + function AlertGoBack( $msg ) + { + + AlertMsg( $msg, -1); + exit; + } + +} + +/************************************************************************************** +* +* 올더게이트 결제로그 기록 클래스 +* +***************************************************************************************/ +class PayLog +{ + var $log_fd; + var $log; + var $logLevel; + var $array_key; + var $debug_msg; + var $starttime; + var $homedir; + var $StoreId; + + function PayLog( $request ) + { + $this->debug_msg = array( "", "FATAL", "ERROR", "WARN", "INFO", "DEBUG" ); + $this->log = $request["log"]; + $this->logLevel = $request["logLevel"]; + $this->homedir = $request["AgsPayHome"]; + $this->StoreId = $request["StoreId"]; + $this->starttime=GetTime(); + } + function InitLog() + { + if( $this->log == "false" ) return true; + + $logfile = $this->homedir. "/log/".PROGRAM."_".TYPE."_".$this->StoreId."_".date("ymd").".log"; + + $this->log_fd = fopen( $logfile, "a+" ); + if( !$this->log_fd ) return false; + $this->WriteLog( INFO, "===============================================================" ); + $this->WriteLog( INFO, "START ".PROGRAM." ".TYPE." (OS:".php_uname('s').php_uname('r').",PHP:".phpversion().")" ); + return true; + } + function WriteLog($debug, $data) + { + if( $this->log == "false" || !$this->log_fd ) return; + + if(strtoupper($this->logLevel) == "FATAL") $logLevel_int = 1; + if(strtoupper($this->logLevel) == "ERROR") $logLevel_int = 2; + if(strtoupper($this->logLevel) == "WARN") $logLevel_int = 3; + if(strtoupper($this->logLevel) == "INFO") $logLevel_int = 4; + if(strtoupper($this->logLevel) == "DEBUG") $logLevel_int = 5; + + if( $debug > $logLevel_int ){ return; } + + $prefix = $this->debug_msg[$debug]."\t[" . SetTimeStamp() . "] <" . getmypid() . "> "; + if( is_array( $data ) ) + { + foreach ($data as $key => $val) + { + fwrite( $this->log_fd, $prefix . $key . ":" . $val . "\r\n"); + } + } + else + { + fwrite( $this->log_fd, $prefix . $data . "\r\n" ); + } + fflush( $this->log_fd ); + } + function CloseLog($msg) + { + if( $this->log == "false" ) return; + + $Transaction_time=GetTime()-$this->starttime; + $this->WriteLog( INFO, "END ".$this->REQUEST["Type"]." ".$msg." Transaction time:[".round($Transaction_time,3)."sec]" ); + $this->WriteLog( INFO, "===============================================================" ); + fclose( $this->log_fd ); + } +} + +function GetTime() +{ + list($sec1, $sec2) = explode(" ", microtime(true)); + return (float)$sec1 + (float)$sec2; +} + +function SetTimeStamp() +{ + $microtm = explode(' ',microtime()); + list($t_Seconds, $Milliseconds) = array($microtm[1], (int)round($microtm[0]*1000,3)); + return date("Y-m-d H:i:s", $t_Seconds) . ":$Milliseconds"; +} + +?> \ No newline at end of file diff --git a/module/shop/pg/agspay/lib/AGSMobile.php b/module/shop/pg/agspay/lib/AGSMobile.php new file mode 100644 index 0000000..08fd25c --- /dev/null +++ b/module/shop/pg/agspay/lib/AGSMobile.php @@ -0,0 +1,612 @@ +store_id = $store_id; + $this->tracking_id = $tracking_id; + $this->transaction = $transaction; + $this->log_path = $log_path; + $this->tracking_info = $this->callApi( + AGSHOST."/payment/mobilev2/transaction/tracking.jsp", + array( + "storeID"=>$this->store_id, + "trackingID"=>$this->tracking_id + ) + + ); + + $this->log($this->tracking_info); + $this->tracking_info = json_decode($this->tracking_info,true); + } + + function setLogging($b) { + $this->logging = $b; + } + + function log($str) { + if($this->logging){ + $path = $this->log_path; + $folder_path = ""; + + if($path == null){ + $path = "/log"; + } + + $folder = dirname(__FILE__).$path; + if (!@file_exists($folder)) { + @mkdir($folder); + } + + if (!$this->logfile ) { + $this->logfile = @fopen($folder."/".date("Y-m-d").".log","a"); + if (!$this->logfile) { + die($folder."/".date("Y-m-d").".log ϴ"); + } + } + + if ($this->logfile && $this->logging) { + $str = date("Y-m-d H:i:s")."==>".$str."\n"; + @fwrite($this->logfile,$str); + } + }else { + if ($this->logfile) { + @fclose($this->logfile); + } + } + } + + function getTrackingInfo() { + return $this->tracking_info; + } + + function callApi($url , $params) { + + $query = ""; + foreach($params as $key => $value) { + $query .= $key."=".$value; + $query .= "&"; + } + $nurl = $url . "?" . $query; + $this->log($nurl); + + if(function_exists('curl_version')) { + + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $nurl); + curl_setopt($ch, CURLOPT_TIMEOUT, 90); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 90 ); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt($ch, CURLOPT_USERAGENT, 'AGSMobile 2.0'); + $str = curl_exec($ch); + curl_close($ch); + }else { + $str = file_get_contents($nurl); + } + + + return $str; + } + + + + + function approve() { + + $ret = array( + "status"=>"error", + "message"=>" " + ); + + $data = array( + + ); + + + + switch($this->transaction) { + + /* virtual */ + case "virtual" : { + $ret["paytype"]= "virtual"; + + $html = $this->callApi( + AGSHOST."/payment/mobilev2/transaction/virtual.jsp", + array( + "storeID"=>$this->store_id, + "trackingID"=>$this->tracking_id, + "type"=>"approve" + ) + ); + $this->log($html); + if ($html) { + $json = json_decode($html,true); + + if (!is_array($json) || !isset($json['code'])) { + return $ret; + } + if ($json['code'] == 400) { + $ret["message"] = $json['message']; + $ret["status"] = "error"; + return $ret; + } + + $json = $json['data']; + + if ($json['Success'] != "y") { + $ret["status"]="error"; + $ret["message"]=$json['ResMsg']; + $ret["data"]=null; + }else { + $ret["status"]="ok"; + $ret["message"]="ok"; + + + $ret["data"]=array( + + //Ʒ .. + "AuthTy" => $json['AuthTy'], + "SubTy" => $json['SubTy'], + "NetCancelId" => $json['NetCancelId'], + "StoreId" => $json['StoreId'], + "OrdNo" => $json['OrdNo'], + "Amt" => $json['Amt'], + "EscrowYn"=> $json['EscrowYn'], + "NoInt" => $json['DeviId'] == "9000400002" ? "y" : "n", + "EscrowSendNo" => $json['EscrowSendNo'], + + "VirtualNo" => $json['VirtualNum'], // Աݰ¹ȣ(¹ȣ) + "BankCode" => $json['BankCode'], // Աڵ + "SuccessTime" => $json['SuccessTime'], // + "DueDate" => $json['DueDate'] // + + ); + } + } + + + + };break; + + + + /* hp */ + case "hp" : { + $ret["paytype"]= "hp"; + $html = $this->callApi( + AGSHOST."/payment/mobilev2/transaction/phone.jsp", + array( + "storeID"=>$this->store_id, + "trackingID"=>$this->tracking_id, + "type"=>"approve" + ) + ); + $this->log($html); + + + if ($html) { + $json = json_decode($html,true); + if (!is_array($json) || !isset($json['code'])) { + return $ret; + } + if ($json['code'] == 400) { + $ret["message"] = $json['message']; + $ret["status"] = "error"; + return $ret; + } + + $json = $json['data']; + + if ($json['Success'] != "y") { + $ret["status"]="error"; + $ret["message"]=$json['ResMsg']; + $ret["data"]=null; + }else { + $ret["status"]="ok"; + $ret["message"]="ok"; + $this->netCancelId = $json['NetCancelId']; + $ret["data"]=array( + + "AuthTy" => $json['AuthTy'], + "SubTy" => $json['SubTy'], + "NetCancelId" => $json['NetCancelId'], + "StoreId" => $json['StoreId'], + "OrdNo" => $json['OrdNo'], + "Amt" => $json['Amt'], + "EscrowYn"=> $json['EscrowYn'], + "NoInt" => $json['DeviId'] == "9000400002" ? "y" : "n", + + + "AdmTID" => $json['HpTid'], // TID + "PhoneCompany" => $json['HpCompany'], // Ż + "Phone" => $json['HpNumber'] // ڵ ȣ + ); + } + + } + + + };break; + + + + /* kmpi */ + case "kmpi" : + case "ansim" : + case "xansim" : + { + $ret["paytype"]= "card"; + + $html = $this->callApi( + AGSHOST."/payment/mobilev2/transaction/ansim.jsp", + array( + "storeID"=>$this->store_id, + "trackingID"=>$this->tracking_id, + "type"=>"approve" + ) + ); + $this->log($html); + if ($html) { + $json = json_decode($html,true); + if (!is_array($json) || !isset($json['code'])) { + return $ret; + } + if ($json['code'] == 400) { + $ret["message"] = $json['message']; + $ret["status"] = "error"; + return $ret; + } + + $json = $json['data']; + + if ($json['Success'] != "y") { + $ret["status"]="error"; + $ret["message"]=$json['FailReason']; + $ret["data"]=null; + }else { + $ret["status"]="ok"; + $ret["message"]="ok"; + $this->netCancelId = $json['NetCancelId']; + $ret["data"]=array( + + + "AuthTy" => $json['AuthTy'], + "SubTy" => $json['SubTy'], + + "NetCancelId" => $json['NetCancelId'], + "StoreId" => $json['StoreId'], + "OrdNo" => $json['OrdNo'], + "Amt" => $json['Amt'], + "EscrowYn"=> $json['EscrowYn'], + "NoInt" => $json['DeviId'] == "9000400002" ? "y" : "n", + "EscrowSendNo" => $json['EscrowSendNo'], + + "BusiCd" => $json['Code'], // ڵ + "AdmNo" => $json['AdmNo'], // ιȣ + "AdmTime" => $json['AdmTime'], // νð + "CardCd" => $json['CardType'], // īڵ + "CardNm" => $json['CardName'], // ī + "DealNo" => $json['SendNo'], // ŷȣ + "PartialMm" => $json["CardPartialMm"] + ); + } + + } + + };break; + + + + + + /* isp */ + case "isp" : { + + $ret["paytype"]= "card"; + + + $html = $this->callApi( + AGSHOST."/payment/mobilev2/transaction/isp.jsp", + array( + "storeID"=>$this->store_id, + "trackingID"=>$this->tracking_id, + "type"=>"approve" + ) + ); + $this->log($html); + + if ($html) { + $json = json_decode($html,true); + if (!is_array($json) || !isset($json['code'])) { + return $ret; + } + if ($json['code'] == 400) { + $ret["message"] = $json['message']; + $ret["status"] = "error"; + return $ret; + } + + $json = $json['data']; + + if ($json['Success'] != "y") { + $ret["status"]="error"; + $ret["message"]=$json['FailReason']; + $ret["data"]=null; + }else { + $ret["status"]="ok"; + $ret["message"]="ok"; + /* + ° json ̾ƿͼ data ؾ.. +  data 12 ڸ + ʿ tracking_info . + */ + $this->netCancelId = $json['NetCancelId']; + $ret["data"]=array( + //Ʒ .. + "AuthTy" => $json['AuthTy'], + "SubTy" => $json['SubTy'], + + "NetCancelId" => $json['NetCancelId'], + "StoreId" => $json['StoreId'], + "OrdNo" => $json['OrdNo'], + "Amt" => $json['Amt'], + "EscrowYn"=> $json['EscrowYn'], + "NoInt" => $json['DeviId'] == "9000400002" ? "y" : "n", + "EscrowSendNo" => $json['EscrowSendNo'], + + "BusiCd" => $json['Code'], // ڵ + "AdmNo" => $json['AdmNo'], // ιȣ + "AdmTime" => $json['AdmTime'], // νð + "CardCd" => $json['CardType'], // īڵ + "CardNm" => $json['CardName'], // ī + "DealNo" => $json['SendNo'], // ŷȣ + "PartialMm" => $json["CardPartialMm"] + ); + } + + } + + + + }break; + + + + /* type default */ + default : { + $this->log(" Ÿ Ǿϴ." . $this->transaction); + $ret["message"] = " Ÿ "; + $ret["status"] = "error"; + }break; + } + + return $ret; + + } + + function forceCancel() { + return $this->cancel("","","",$this->netCancelId); + } + + function cancel($AdmNo, $AdmDt, $SendNo, $NetCancID = "") { + + $ret = array( + "status"=>"error", + "message"=>" " + ); + + $data = array( + + ); + + + + switch($this->transaction) { + + /* ansim, xansim, kmpi */ + case "ansim" : + case "xansim" : + case "kmpi" : + { + $ret["paytype"]= "card"; + + $html = $this->callApi( + AGSHOST."/payment/mobilev2/transaction/ansim.jsp", + array( + "storeID"=>$this->store_id, + "trackingID"=>$this->tracking_id, + "admNo"=>$AdmNo, + "sendNo"=>$SendNo, + "admDt"=>$AdmDt, + "NetCancelId"=>$NetCancID, + "type"=>"cancel" + ) + ); + $this->log($html); + + if ($html) { + $json = json_decode($html,true); + if (!is_array($json) || !isset($json['code'])) { + return $ret; + } + if ($json['code'] == 400) { + $ret["message"] = $json['message']; + $ret["status"] = "error"; + return $ret; + } + + $json = $json['data']; + + if ($json['Success'] != "y") { + $ret["status"]="error"; + $ret["message"]=$json['FailReason']; + $ret["data"]=null; + }else { + $ret["status"]="ok"; + $ret["message"]="ok"; + + $ret["data"]=array( + "StoreId" => $json['StoreId'], // üID + "AdmNo" => $json['AdmNo'], // ιȣ + "AdmTime" => $json['DealTime'], // νð + "Code" => $json['Code'] // S000 : , S001 : ó(̹óȰ), E999 : Ÿ. + ); + } + + } + + };break; + + /* isp */ + case "isp" : { + + $ret["paytype"]= "card"; + + $html = $this->callApi( + AGSHOST."/payment/mobilev2/transaction/isp.jsp", + array( + "storeID"=>$this->store_id, + "trackingID"=>$this->tracking_id, + "admNo"=>$AdmNo, + "sendNo"=>$SendNo, + "admDt"=>$AdmDt, + "NetCancelId"=>$NetCancID, + "type"=>"cancel" + ) + ); + $this->log($html); + + if ($html) { + $json = json_decode($html,true); + if (!is_array($json) || !isset($json['code'])) { + return $ret; + } + if ($json['code'] == 400) { + $ret["message"] = $json['message']; + $ret["status"] = "error"; + return $ret; + } + + $json = $json['data']; + + if ($json['Success'] != "y") { + $ret["status"]="error"; + $ret["message"]=$json['FailReason']; + $ret["data"]=null; + }else { + $ret["status"]="ok"; + $ret["message"]="ok"; + + $ret["data"]=array( + "AuthTy" => $json['AuthTy'], + "SubTy" => $json['SubTy'], + "StoreId" => $json['StoreId'], // üID + "AdmNo" => $json['AdmNo'], // ιȣ + "AdmTime" => $json['DealTime'], // νð + "Code" => $json['Code'] // S000 : , S001 : ó(̹óȰ), E999 : Ÿ. + + ); + } + + } + + + + }break; + + + + /* hp */ + case "hp" : { + + $ret["paytype"]= "hp"; + + $html = $this->callApi( + AGSHOST."/payment/mobilev2/transaction/phone.jsp", + array( + "storeID"=>$this->store_id, + "trackingID"=>$this->tracking_id, + "NetCancelId"=>$NetCancID, + "type"=>"cancel" + ) + ); + $this->log($html); + + if ($html) { + $json = json_decode($html,true); + if (!is_array($json) || !isset($json['code'])) { + return $ret; + } + if ($json['code'] == 400) { + $ret["message"] = $json['message']; + $ret["status"] = "error"; + return $ret; + } + + $json = $json['data']; + + if ($json['Success'] != "y") { + $ret["status"]="error"; + $ret["message"]=$json['ResMsg']; + $ret["data"]=null; + }else { + $ret["status"]="ok"; + $ret["message"]="ok"; + + $ret["data"]=array( + "AuthTy" => $json['AuthTy'], + "SubTy" => $json['SubTy'], + "StoreId" => $json['StoreId'], // üID + "AdmTime" => $json['AdmTime'], // νð + "AdmTID" => $json['HpTid'] // TID + ); + } + + } + + + + }break; + + + + /* type default */ + default : { + $this->log(" Ÿ Ǿϴ."); + $ret["message"] = " Ÿ "; + $ret["status"] = "error"; + }break; + } + + return $ret; + + } + + } +?> \ No newline at end of file diff --git a/module/shop/pg/agspay/lib/JSON.php b/module/shop/pg/agspay/lib/JSON.php new file mode 100644 index 0000000..0cddbdd --- /dev/null +++ b/module/shop/pg/agspay/lib/JSON.php @@ -0,0 +1,806 @@ + + * @author Matt Knapp + * @author Brett Stimmerman + * @copyright 2005 Michal Migurski + * @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $ + * @license http://www.opensource.org/licenses/bsd-license.php + * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198 + */ + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_SLICE', 1); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_STR', 2); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_ARR', 3); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_OBJ', 4); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_CMT', 5); + +/** + * Behavior switch for Services_JSON::decode() + */ +define('SERVICES_JSON_LOOSE_TYPE', 16); + +/** + * Behavior switch for Services_JSON::decode() + */ +define('SERVICES_JSON_SUPPRESS_ERRORS', 32); + +/** + * Converts to and from JSON format. + * + * Brief example of use: + * + * + * // create a new instance of Services_JSON + * $json = new Services_JSON(); + * + * // convert a complexe value to JSON notation, and send it to the browser + * $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4))); + * $output = $json->encode($value); + * + * print($output); + * // prints: ["foo","bar",[1,2,"baz"],[3,[4]]] + * + * // accept incoming POST data, assumed to be in JSON notation + * $input = file_get_contents('php://input', 1000000); + * $value = $json->decode($input); + * + */ +class Services_JSON +{ + /** + * constructs a new JSON instance + * + * @param int $use object behavior flags; combine with boolean-OR + * + * possible values: + * - SERVICES_JSON_LOOSE_TYPE: loose typing. + * "{...}" syntax creates associative arrays + * instead of objects in decode(). + * - SERVICES_JSON_SUPPRESS_ERRORS: error suppression. + * Values which can't be encoded (e.g. resources) + * appear as NULL instead of throwing errors. + * By default, a deeply-nested resource will + * bubble up with an error, so all return values + * from encode() should be checked with isError() + */ + function Services_JSON($use = 0) + { + $this->use = $use; + } + + /** + * convert a string from one UTF-16 char to one UTF-8 char + * + * Normally should be handled by mb_convert_encoding, but + * provides a slower PHP-only method for installations + * that lack the multibye string extension. + * + * @param string $utf16 UTF-16 character + * @return string UTF-8 character + * @access private + */ + function utf162utf8($utf16) + { + // oh please oh please oh please oh please oh please + if(function_exists('mb_convert_encoding')) { + return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); + } + + $bytes = (ord($utf16{0}) << 8) | ord($utf16{1}); + + switch(true) { + case ((0x7F & $bytes) == $bytes): + // this case should never be reached, because we are in ASCII range + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0x7F & $bytes); + + case (0x07FF & $bytes) == $bytes: + // return a 2-byte UTF-8 character + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0xC0 | (($bytes >> 6) & 0x1F)) + . chr(0x80 | ($bytes & 0x3F)); + + case (0xFFFF & $bytes) == $bytes: + // return a 3-byte UTF-8 character + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0xE0 | (($bytes >> 12) & 0x0F)) + . chr(0x80 | (($bytes >> 6) & 0x3F)) + . chr(0x80 | ($bytes & 0x3F)); + } + + // ignoring UTF-32 for now, sorry + return ''; + } + + /** + * convert a string from one UTF-8 char to one UTF-16 char + * + * Normally should be handled by mb_convert_encoding, but + * provides a slower PHP-only method for installations + * that lack the multibye string extension. + * + * @param string $utf8 UTF-8 character + * @return string UTF-16 character + * @access private + */ + function utf82utf16($utf8) + { + // oh please oh please oh please oh please oh please + if(function_exists('mb_convert_encoding')) { + return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); + } + + switch(strlen($utf8)) { + case 1: + // this case should never be reached, because we are in ASCII range + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return $utf8; + + case 2: + // return a UTF-16 character from a 2-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0x07 & (ord($utf8{0}) >> 2)) + . chr((0xC0 & (ord($utf8{0}) << 6)) + | (0x3F & ord($utf8{1}))); + + case 3: + // return a UTF-16 character from a 3-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr((0xF0 & (ord($utf8{0}) << 4)) + | (0x0F & (ord($utf8{1}) >> 2))) + . chr((0xC0 & (ord($utf8{1}) << 6)) + | (0x7F & ord($utf8{2}))); + } + + // ignoring UTF-32 for now, sorry + return ''; + } + + /** + * encodes an arbitrary variable into JSON format + * + * @param mixed $var any number, boolean, string, array, or object to be encoded. + * see argument 1 to Services_JSON() above for array-parsing behavior. + * if var is a strng, note that encode() always expects it + * to be in ASCII or UTF-8 format! + * + * @return mixed JSON string representation of input var or an error if a problem occurs + * @access public + */ + function encode($var) + { + switch (gettype($var)) { + case 'boolean': + return $var ? 'true' : 'false'; + + case 'NULL': + return 'null'; + + case 'integer': + return (int) $var; + + case 'double': + case 'float': + return (float) $var; + + case 'string': + // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT + $ascii = ''; + $strlen_var = strlen($var); + + /* + * Iterate over every character in the string, + * escaping with a slash or encoding to UTF-8 where necessary + */ + for ($c = 0; $c < $strlen_var; ++$c) { + + $ord_var_c = ord($var{$c}); + + switch (true) { + case $ord_var_c == 0x08: + $ascii .= '\b'; + break; + case $ord_var_c == 0x09: + $ascii .= '\t'; + break; + case $ord_var_c == 0x0A: + $ascii .= '\n'; + break; + case $ord_var_c == 0x0C: + $ascii .= '\f'; + break; + case $ord_var_c == 0x0D: + $ascii .= '\r'; + break; + + case $ord_var_c == 0x22: + case $ord_var_c == 0x2F: + case $ord_var_c == 0x5C: + // double quote, slash, slosh + $ascii .= '\\'.$var{$c}; + break; + + case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)): + // characters U-00000000 - U-0000007F (same as ASCII) + $ascii .= $var{$c}; + break; + + case (($ord_var_c & 0xE0) == 0xC0): + // characters U-00000080 - U-000007FF, mask 110XXXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, ord($var{$c + 1})); + $c += 1; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF0) == 0xE0): + // characters U-00000800 - U-0000FFFF, mask 1110XXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2})); + $c += 2; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF8) == 0xF0): + // characters U-00010000 - U-001FFFFF, mask 11110XXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3})); + $c += 3; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFC) == 0xF8): + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4})); + $c += 4; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFE) == 0xFC): + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4}), + ord($var{$c + 5})); + $c += 5; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + } + } + + return '"'.$ascii.'"'; + + case 'array': + /* + * As per JSON spec if any array key is not an integer + * we must treat the the whole array as an object. We + * also try to catch a sparsely populated associative + * array with numeric keys here because some JS engines + * will create an array with empty indexes up to + * max_index which can cause memory issues and because + * the keys, which may be relevant, will be remapped + * otherwise. + * + * As per the ECMA and JSON specification an object may + * have any string as a property. Unfortunately due to + * a hole in the ECMA specification if the key is a + * ECMA reserved word or starts with a digit the + * parameter is only accessible using ECMAScript's + * bracket notation. + */ + + // treat as a JSON object + if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) { + $properties = array_map(array($this, 'name_value'), + array_keys($var), + array_values($var)); + + foreach($properties as $property) { + if(Services_JSON::isError($property)) { + return $property; + } + } + + return '{' . join(',', $properties) . '}'; + } + + // treat it like a regular array + $elements = array_map(array($this, 'encode'), $var); + + foreach($elements as $element) { + if(Services_JSON::isError($element)) { + return $element; + } + } + + return '[' . join(',', $elements) . ']'; + + case 'object': + $vars = get_object_vars($var); + + $properties = array_map(array($this, 'name_value'), + array_keys($vars), + array_values($vars)); + + foreach($properties as $property) { + if(Services_JSON::isError($property)) { + return $property; + } + } + + return '{' . join(',', $properties) . '}'; + + default: + return ($this->use & SERVICES_JSON_SUPPRESS_ERRORS) + ? 'null' + : new Services_JSON_Error(gettype($var)." can not be encoded as JSON string"); + } + } + + /** + * array-walking function for use in generating JSON-formatted name-value pairs + * + * @param string $name name of key to use + * @param mixed $value reference to an array element to be encoded + * + * @return string JSON-formatted name-value pair, like '"name":value' + * @access private + */ + function name_value($name, $value) + { + $encoded_value = $this->encode($value); + + if(Services_JSON::isError($encoded_value)) { + return $encoded_value; + } + + return $this->encode(strval($name)) . ':' . $encoded_value; + } + + /** + * reduce a string by removing leading and trailing comments and whitespace + * + * @param $str string string value to strip of comments and whitespace + * + * @return string string value stripped of comments and whitespace + * @access private + */ + function reduce_string($str) + { + $str = preg_replace(array( + + // eliminate single line comments in '// ...' form + '#^\s*//(.+)$#m', + + // eliminate multi-line comments in '/* ... */' form, at start of string + '#^\s*/\*(.+)\*/#Us', + + // eliminate multi-line comments in '/* ... */' form, at end of string + '#/\*(.+)\*/\s*$#Us' + + ), '', $str); + + // eliminate extraneous space + return trim($str); + } + + /** + * decodes a JSON string into appropriate variable + * + * @param string $str JSON-formatted string + * + * @return mixed number, boolean, string, array, or object + * corresponding to given JSON input string. + * See argument 1 to Services_JSON() above for object-output behavior. + * Note that decode() always returns strings + * in ASCII or UTF-8 format! + * @access public + */ + function decode($str) + { + $str = $this->reduce_string($str); + + switch (strtolower($str)) { + case 'true': + return true; + + case 'false': + return false; + + case 'null': + return null; + + default: + $m = array(); + + if (is_numeric($str)) { + // Lookie-loo, it's a number + + // This would work on its own, but I'm trying to be + // good about returning integers where appropriate: + // return (float)$str; + + // Return float or int, as appropriate + return ((float)$str == (integer)$str) + ? (integer)$str + : (float)$str; + + } elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) { + // STRINGS RETURNED IN UTF-8 FORMAT + $delim = substr($str, 0, 1); + $chrs = substr($str, 1, -1); + $utf8 = ''; + $strlen_chrs = strlen($chrs); + + for ($c = 0; $c < $strlen_chrs; ++$c) { + + $substr_chrs_c_2 = substr($chrs, $c, 2); + $ord_chrs_c = ord($chrs{$c}); + + switch (true) { + case $substr_chrs_c_2 == '\b': + $utf8 .= chr(0x08); + ++$c; + break; + case $substr_chrs_c_2 == '\t': + $utf8 .= chr(0x09); + ++$c; + break; + case $substr_chrs_c_2 == '\n': + $utf8 .= chr(0x0A); + ++$c; + break; + case $substr_chrs_c_2 == '\f': + $utf8 .= chr(0x0C); + ++$c; + break; + case $substr_chrs_c_2 == '\r': + $utf8 .= chr(0x0D); + ++$c; + break; + + case $substr_chrs_c_2 == '\\"': + case $substr_chrs_c_2 == '\\\'': + case $substr_chrs_c_2 == '\\\\': + case $substr_chrs_c_2 == '\\/': + if (($delim == '"' && $substr_chrs_c_2 != '\\\'') || + ($delim == "'" && $substr_chrs_c_2 != '\\"')) { + $utf8 .= $chrs{++$c}; + } + break; + + case preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6)): + // single, escaped unicode character + $utf16 = chr(hexdec(substr($chrs, ($c + 2), 2))) + . chr(hexdec(substr($chrs, ($c + 4), 2))); + $utf8 .= $this->utf162utf8($utf16); + $c += 5; + break; + + case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F): + $utf8 .= $chrs{$c}; + break; + + case ($ord_chrs_c & 0xE0) == 0xC0: + // characters U-00000080 - U-000007FF, mask 110XXXXX + //see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 2); + ++$c; + break; + + case ($ord_chrs_c & 0xF0) == 0xE0: + // characters U-00000800 - U-0000FFFF, mask 1110XXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 3); + $c += 2; + break; + + case ($ord_chrs_c & 0xF8) == 0xF0: + // characters U-00010000 - U-001FFFFF, mask 11110XXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 4); + $c += 3; + break; + + case ($ord_chrs_c & 0xFC) == 0xF8: + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 5); + $c += 4; + break; + + case ($ord_chrs_c & 0xFE) == 0xFC: + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 6); + $c += 5; + break; + + } + + } + + return $utf8; + + } elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) { + // array, or object notation + + if ($str{0} == '[') { + $stk = array(SERVICES_JSON_IN_ARR); + $arr = array(); + } else { + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $stk = array(SERVICES_JSON_IN_OBJ); + $obj = array(); + } else { + $stk = array(SERVICES_JSON_IN_OBJ); + $obj = new stdClass(); + } + } + + array_push($stk, array('what' => SERVICES_JSON_SLICE, + 'where' => 0, + 'delim' => false)); + + $chrs = substr($str, 1, -1); + $chrs = $this->reduce_string($chrs); + + if ($chrs == '') { + if (reset($stk) == SERVICES_JSON_IN_ARR) { + return $arr; + + } else { + return $obj; + + } + } + + //print("\nparsing {$chrs}\n"); + + $strlen_chrs = strlen($chrs); + + for ($c = 0; $c <= $strlen_chrs; ++$c) { + + $top = end($stk); + $substr_chrs_c_2 = substr($chrs, $c, 2); + + if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) { + // found a comma that is not inside a string, array, etc., + // OR we've reached the end of the character list + $slice = substr($chrs, $top['where'], ($c - $top['where'])); + array_push($stk, array('what' => SERVICES_JSON_SLICE, 'where' => ($c + 1), 'delim' => false)); + //print("Found split at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + if (reset($stk) == SERVICES_JSON_IN_ARR) { + // we are in an array, so just push an element onto the stack + array_push($arr, $this->decode($slice)); + + } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { + // we are in an object, so figure + // out the property name and set an + // element in an associative array, + // for now + $parts = array(); + + if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { + // "name":value pair + $key = $this->decode($parts[1]); + $val = $this->decode($parts[2]); + + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $obj[$key] = $val; + } else { + $obj->$key = $val; + } + } elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { + // name:value pair, where name is unquoted + $key = $parts[1]; + $val = $this->decode($parts[2]); + + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $obj[$key] = $val; + } else { + $obj->$key = $val; + } + } + + } + + } elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) { + // found a quote, and we are not inside a string + array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c})); + //print("Found start of string at {$c}\n"); + + } elseif (($chrs{$c} == $top['delim']) && + ($top['what'] == SERVICES_JSON_IN_STR) && + ((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) { + // found a quote, we're in a string, and it's not escaped + // we know that it's not escaped becase there is _not_ an + // odd number of backslashes at the end of the string so far + array_pop($stk); + //print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n"); + + } elseif (($chrs{$c} == '[') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a left-bracket, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false)); + //print("Found start of array at {$c}\n"); + + } elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) { + // found a right-bracket, and we're in an array + array_pop($stk); + //print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } elseif (($chrs{$c} == '{') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a left-brace, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false)); + //print("Found start of object at {$c}\n"); + + } elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) { + // found a right-brace, and we're in an object + array_pop($stk); + //print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } elseif (($substr_chrs_c_2 == '/*') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a comment start, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_CMT, 'where' => $c, 'delim' => false)); + $c++; + //print("Found start of comment at {$c}\n"); + + } elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == SERVICES_JSON_IN_CMT)) { + // found a comment end, and we're in one now + array_pop($stk); + $c++; + + for ($i = $top['where']; $i <= $c; ++$i) + $chrs = substr_replace($chrs, ' ', $i, 1); + + //print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } + + } + + if (reset($stk) == SERVICES_JSON_IN_ARR) { + return $arr; + + } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { + return $obj; + + } + + } + } + } + + /** + * @todo Ultimately, this should just call PEAR::isError() + */ + function isError($data, $code = null) + { + if (class_exists('pear')) { + return PEAR::isError($data, $code); + } elseif (is_object($data) && (get_class($data) == 'services_json_error' || + is_subclass_of($data, 'services_json_error'))) { + return true; + } + + return false; + } +} + +if (class_exists('PEAR_Error')) { + + class Services_JSON_Error extends PEAR_Error + { + function Services_JSON_Error($message = 'unknown error', $code = null, + $mode = null, $options = null, $userinfo = null) + { + parent::PEAR_Error($message, $code, $mode, $options, $userinfo); + } + } + +} else { + + /** + * @todo Ultimately, this class shall be descended from PEAR_Error + */ + class Services_JSON_Error + { + function Services_JSON_Error($message = 'unknown error', $code = null, + $mode = null, $options = null, $userinfo = null) + { + + } + } + +} + +?> diff --git a/module/shop/pg/agspay/lib/JSONFunc.php b/module/shop/pg/agspay/lib/JSONFunc.php new file mode 100644 index 0000000..687fbc1 --- /dev/null +++ b/module/shop/pg/agspay/lib/JSONFunc.php @@ -0,0 +1,22 @@ +decode($content); + } +} + +if (!function_exists('json_encode')) { + function json_encode($content) { + require_once 'JSON.php'; + $json = new Services_JSON; + return $json->encode($content); + } +} +?> \ No newline at end of file diff --git a/module/shop/pg/agspay/lib/log/2017-06-22.log b/module/shop/pg/agspay/lib/log/2017-06-22.log new file mode 100644 index 0000000..a761683 --- /dev/null +++ b/module/shop/pg/agspay/lib/log/2017-06-22.log @@ -0,0 +1,182 @@ +2017-06-22 09:06:55==>https://www.allthegate.com/payment/mobilev2/transaction/ansim.jsp?storeID=&trackingID=950671be5d924a9fe89331c39cbadb7667cccf6168200863d71eb625517c9058&type=approve& +2017-06-22 09:06:56==> + + + + + + + + + +{"message":"ANSIM 응답","status":"ok","data":{"AdmTime":"20170622090659","EscrowSendNo":"","DealWon":"000000003500","DealNo":"507551","Success":"y","Code":"0610","CardType2":"0500","StoreId":"aegis","OrderNo":"20170622085223T48755","CardName":"신한","SendNo":"507551","CardName2":"신한","CardType":"0500","AdmNo":"10168921","AgentNo":"18570317","PayType":"card","CardPartialMm":"0","DeviId":"9000400001","OrdNo":"20170622085223T48755","Amt":"3500","EscrowYn":"","NetCancelId":"AEGIS_VISAaegis_20170622090519066289","AuthTy":"card","SubTy":"visa3d"},"code":"200"} + +2017-06-22 09:07:01==>https://www.allthegate.com/payment/mobilev2/transaction/ansim.jsp?storeID=&trackingID=950671be5d924a9fe89331c39cbadb7667cccf6168200863d71eb625517c9058&type=approve& +2017-06-22 09:07:01==> + + + + + + + + + +{"message":"이미 승인된 결제입니다","status":"error","code":"400"} + +2017-06-22 09:09:15==>https://www.allthegate.com/payment/mobilev2/transaction/ansim.jsp?storeID=&trackingID=950671be5d924a9fe89331c39cbadb7667cccf6168200863d71eb625517c9058&type=approve& +2017-06-22 09:09:15==> + + + + + + + + + +{"message":"이미 승인된 결제입니다","status":"error","code":"400"} + +2017-06-22 09:10:42==>https://www.allthegate.com/payment/mobilev2/transaction/ansim.jsp?storeID=&trackingID=950671be5d924a9fe89331c39cbadb7667cccf6168200863d71eb625517c9058&type=approve& +2017-06-22 09:10:42==> + + + + + + + + + +{"message":"이미 승인된 결제입니다","status":"error","code":"400"} + +2017-06-22 09:12:38==>https://www.allthegate.com/payment/mobilev2/transaction/ansim.jsp?storeID=&trackingID=950671be5d924a9fe89331c39cbadb7667cccf6168200863d71eb625517c9058&type=approve& +2017-06-22 09:12:38==> + + + + + + + + + +{"message":"이미 승인된 결제입니다","status":"error","code":"400"} + +2017-06-22 09:13:32==>https://www.allthegate.com/payment/mobilev2/transaction/ansim.jsp?storeID=&trackingID=950671be5d924a9fe89331c39cbadb7667cccf6168200863d71eb625517c9058&type=approve& +2017-06-22 09:13:33==> + + + + + + + + + +{"message":"이미 승인된 결제입니다","status":"error","code":"400"} + +2017-06-22 09:13:37==>https://www.allthegate.com/payment/mobilev2/transaction/ansim.jsp?storeID=&trackingID=950671be5d924a9fe89331c39cbadb7667cccf6168200863d71eb625517c9058&type=approve& +2017-06-22 09:13:37==> + + + + + + + + + +{"message":"이미 승인된 결제입니다","status":"error","code":"400"} + +2017-06-22 09:13:51==>https://www.allthegate.com/payment/mobilev2/transaction/ansim.jsp?storeID=&trackingID=950671be5d924a9fe89331c39cbadb7667cccf6168200863d71eb625517c9058&type=approve& +2017-06-22 09:13:51==> + + + + + + + + + +{"message":"이미 승인된 결제입니다","status":"error","code":"400"} + +2017-06-22 09:15:00==>https://www.allthegate.com/payment/mobilev2/transaction/ansim.jsp?storeID=&trackingID=b08a3eeb5d0d3bc08bd75a7b9c8447badda21f686d17ed7dd6beb7cf43c07ada&type=approve& +2017-06-22 09:15:00==> + + + + + + + + + +{"message":"ANSIM 응답","status":"ok","data":{"AdmTime":"20170622091504","EscrowSendNo":"","DealWon":"000000003500","DealNo":"507814","Success":"y","Code":"0610","CardType2":"0500","StoreId":"aegis","OrderNo":"20170622085223T48755","CardName":"신한","SendNo":"507814","CardName2":"신한","CardType":"0500","AdmNo":"10168922","AgentNo":"18570317","PayType":"card","CardPartialMm":"0","DeviId":"9000400001","OrdNo":"20170622085223T48755","Amt":"3500","EscrowYn":"","NetCancelId":"AEGIS_VISAaegis_20170622091421726256","AuthTy":"card","SubTy":"visa3d"},"code":"200"} + +2017-06-22 09:16:29==>https://www.allthegate.com/payment/mobilev2/transaction/ansim.jsp?storeID=&trackingID=b08a3eeb5d0d3bc08bd75a7b9c8447badda21f686d17ed7dd6beb7cf43c07ada&type=approve& +2017-06-22 09:16:29==> + + + + + + + + + +{"message":"이미 승인된 결제입니다","status":"error","code":"400"} + +2017-06-22 09:17:05==>https://www.allthegate.com/payment/mobilev2/transaction/ansim.jsp?storeID=&trackingID=4e30b3c117bd25da80c00620566e7f6dd6bec16c8685094149c241bb34362556&type=approve& +2017-06-22 09:17:06==> + + + + + + + + + +{"message":"ANSIM 응답","status":"ok","data":{"AdmTime":"20170622091709","EscrowSendNo":"","DealWon":"000000003500","DealNo":"507890","Success":"y","Code":"0610","CardType2":"0500","StoreId":"aegis","OrderNo":"20170622085223T48755","CardName":"신한","SendNo":"507890","CardName2":"신한","CardType":"0500","AdmNo":"10168923","AgentNo":"18570317","PayType":"card","CardPartialMm":"0","DeviId":"9000400001","OrdNo":"20170622085223T48755","Amt":"3500","EscrowYn":"","NetCancelId":"AEGIS_VISAaegis_20170622091638528023","AuthTy":"card","SubTy":"visa3d"},"code":"200"} + +2017-06-22 09:17:20==>https://www.allthegate.com/payment/mobilev2/transaction/ansim.jsp?storeID=&trackingID=4e30b3c117bd25da80c00620566e7f6dd6bec16c8685094149c241bb34362556&type=approve& +2017-06-22 09:17:20==> + + + + + + + + + +{"message":"이미 승인된 결제입니다","status":"error","code":"400"} + +2017-06-22 09:18:03==>https://www.allthegate.com/payment/mobilev2/transaction/ansim.jsp?storeID=&trackingID=442f0d2760482b52c97e7a28b7846ca5073888874fb0a1aa22dcb3fdb4a72c76&type=approve& +2017-06-22 09:18:03==> + + + + + + + + + +{"message":"ANSIM 응답","status":"ok","data":{"AdmTime":"20170622091807","EscrowSendNo":"","DealWon":"000000003500","DealNo":"507921","Success":"y","Code":"0610","CardType2":"0500","StoreId":"aegis","OrderNo":"20170622085223T48755","CardName":"신한","SendNo":"507921","CardName2":"신한","CardType":"0500","AdmNo":"10168924","AgentNo":"18570317","PayType":"card","CardPartialMm":"0","DeviId":"9000400001","OrdNo":"20170622085223T48755","Amt":"3500","EscrowYn":"","NetCancelId":"AEGIS_VISAaegis_20170622091730625522","AuthTy":"card","SubTy":"visa3d"},"code":"200"} + +2017-06-22 09:24:07==>https://www.allthegate.com/payment/mobilev2/transaction/ansim.jsp?storeID=&trackingID=84e6dd39598540a0e3fc34ab2dd2d8274022efbf204b3e0558f7c11b06f38b12&type=approve& +2017-06-22 09:24:08==> + + + + + + + + + +{"message":"ANSIM 응답","status":"ok","data":{"AdmTime":"20170622092411","EscrowSendNo":"","DealWon":"000000003500","DealNo":"508090","Success":"y","Code":"0610","CardType2":"0500","StoreId":"aegis","OrderNo":"20170622092311T50470","CardName":"신한","SendNo":"508090","CardName2":"신한","CardType":"0500","AdmNo":"10168925","AgentNo":"18570317","PayType":"card","CardPartialMm":"0","DeviId":"9000400001","OrdNo":"20170622092311T50470","Amt":"3500","EscrowYn":"","NetCancelId":"AEGIS_VISAaegis_20170622092323641746","AuthTy":"card","SubTy":"visa3d"},"code":"200"} + diff --git a/module/shop/pg/agspay/log/AgsPay40_php__170615.log b/module/shop/pg/agspay/log/AgsPay40_php__170615.log new file mode 100644 index 0000000..b210d5a --- /dev/null +++ b/module/shop/pg/agspay/log/AgsPay40_php__170615.log @@ -0,0 +1,90 @@ +INFO [2017-06-15 10:59:34:449] <10582> =============================================================== +INFO [2017-06-15 10:59:34:449] <10582> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.14) +INFO [2017-06-15 10:59:34:449] <10582> Pay Start! +INFO [2017-06-15 10:59:34:449] <10582> AgsPayHome:/home/igrowlaser/www2/module/shop/pg/agspay +INFO [2017-06-15 10:59:34:449] <10582> StoreId: +INFO [2017-06-15 10:59:34:449] <10582> log:true +INFO [2017-06-15 10:59:34:450] <10582> logLevel:INFO +INFO [2017-06-15 10:59:34:450] <10582> UseNetCancel:true +INFO [2017-06-15 10:59:34:450] <10582> Type:Pay +INFO [2017-06-15 10:59:34:450] <10582> RecvLen:7 +INFO [2017-06-15 10:59:34:450] <10582> AuthTy: +INFO [2017-06-15 10:59:34:450] <10582> SubTy: +INFO [2017-06-15 10:59:34:450] <10582> OrdNo: +INFO [2017-06-15 10:59:34:450] <10582> Amt: +INFO [2017-06-15 10:59:34:450] <10582> UserEmail: +INFO [2017-06-15 10:59:34:450] <10582> ProdNm: +INFO [2017-06-15 10:59:34:450] <10582> MallUrl: +INFO [2017-06-15 10:59:34:450] <10582> UserId: +INFO [2017-06-15 10:59:34:450] <10582> OrdNm: +INFO [2017-06-15 10:59:34:450] <10582> OrdPhone: +INFO [2017-06-15 10:59:34:450] <10582> OrdAddr: +INFO [2017-06-15 10:59:34:450] <10582> RcpNm: +INFO [2017-06-15 10:59:34:450] <10582> RcpPhone: +INFO [2017-06-15 10:59:34:450] <10582> DlvAddr: +INFO [2017-06-15 10:59:34:450] <10582> Remark: +INFO [2017-06-15 10:59:34:450] <10582> DeviId: +INFO [2017-06-15 10:59:34:450] <10582> AuthYn: +INFO [2017-06-15 10:59:34:450] <10582> Instmt: +INFO [2017-06-15 10:59:34:450] <10582> UserIp:199.116.169.254 +INFO [2017-06-15 10:59:34:451] <10582> partial_mm: +INFO [2017-06-15 10:59:34:451] <10582> noIntMonth: +INFO [2017-06-15 10:59:34:451] <10582> KVP_CURRENCY: +INFO [2017-06-15 10:59:34:451] <10582> KVP_CARDCODE: +INFO [2017-06-15 10:59:34:451] <10582> KVP_SESSIONKEY: +INFO [2017-06-15 10:59:34:451] <10582> KVP_ENCDATA: +INFO [2017-06-15 10:59:34:451] <10582> KVP_CONAME: +INFO [2017-06-15 10:59:34:451] <10582> KVP_NOINT: +INFO [2017-06-15 10:59:34:451] <10582> KVP_QUOTA: +INFO [2017-06-15 10:59:34:451] <10582> CardNo: +INFO [2017-06-15 10:59:34:451] <10582> MPI_CAVV: +INFO [2017-06-15 10:59:34:451] <10582> MPI_ECI: +INFO [2017-06-15 10:59:34:451] <10582> MPI_MD64: +INFO [2017-06-15 10:59:34:451] <10582> ExpMon: +INFO [2017-06-15 10:59:34:451] <10582> ExpYear: +INFO [2017-06-15 10:59:34:451] <10582> Passwd: +INFO [2017-06-15 10:59:34:451] <10582> SocId: +INFO [2017-06-15 10:59:34:451] <10582> ICHE_OUTBANKNAME: +INFO [2017-06-15 10:59:34:451] <10582> ICHE_OUTACCTNO: +INFO [2017-06-15 10:59:34:451] <10582> ICHE_OUTBANKMASTER: +INFO [2017-06-15 10:59:34:451] <10582> ICHE_AMOUNT: +INFO [2017-06-15 10:59:34:451] <10582> HP_SERVERINFO: +INFO [2017-06-15 10:59:34:452] <10582> HP_HANDPHONE: +INFO [2017-06-15 10:59:34:452] <10582> HP_COMPANY: +INFO [2017-06-15 10:59:34:452] <10582> HP_ID: +INFO [2017-06-15 10:59:34:452] <10582> HP_SUBID: +INFO [2017-06-15 10:59:34:452] <10582> HP_UNITType: +INFO [2017-06-15 10:59:34:452] <10582> HP_IDEN: +INFO [2017-06-15 10:59:34:452] <10582> HP_IPADDR: +INFO [2017-06-15 10:59:34:452] <10582> ARS_NAME: +INFO [2017-06-15 10:59:34:452] <10582> ARS_PHONE: +INFO [2017-06-15 10:59:34:452] <10582> VIRTUAL_CENTERCD: +INFO [2017-06-15 10:59:34:452] <10582> VIRTUAL_DEPODT: +INFO [2017-06-15 10:59:34:452] <10582> ZuminCode: +INFO [2017-06-15 10:59:34:452] <10582> MallPage: +INFO [2017-06-15 10:59:34:452] <10582> VIRTUAL_NO: +INFO [2017-06-15 10:59:34:452] <10582> ES_SENDNO: +INFO [2017-06-15 10:59:34:452] <10582> ICHE_SOCKETYN: +INFO [2017-06-15 10:59:34:452] <10582> ICHE_POSMTID: +INFO [2017-06-15 10:59:34:452] <10582> ICHE_FNBCMTID: +INFO [2017-06-15 10:59:34:452] <10582> ICHE_APTRTS: +INFO [2017-06-15 10:59:34:452] <10582> ICHE_REMARK1: +INFO [2017-06-15 10:59:34:452] <10582> ICHE_REMARK2: +INFO [2017-06-15 10:59:34:452] <10582> ICHE_ECWYN: +INFO [2017-06-15 10:59:34:452] <10582> ICHE_ECWID: +INFO [2017-06-15 10:59:34:453] <10582> ICHE_ECWAMT1: +INFO [2017-06-15 10:59:34:453] <10582> ICHE_ECWAMT2: +INFO [2017-06-15 10:59:34:453] <10582> ICHE_CASHYN: +INFO [2017-06-15 10:59:34:453] <10582> ICHE_CASHGUBUN_CD: +INFO [2017-06-15 10:59:34:453] <10582> ICHE_CASHID_NO: +INFO [2017-06-15 10:59:34:453] <10582> ICHEARS_SOCKETYN: +INFO [2017-06-15 10:59:34:453] <10582> ICHEARS_ADMNO: +INFO [2017-06-15 10:59:34:453] <10582> ICHEARS_POSMTID: +INFO [2017-06-15 10:59:34:453] <10582> ICHEARS_CENTERCD: +INFO [2017-06-15 10:59:34:453] <10582> ICHEARS_HPNO: +INFO [2017-06-15 10:59:34:453] <10582> Pay Result Value [ +INFO [2017-06-15 10:59:34:453] <10582> rSuccYn:n +INFO [2017-06-15 10:59:34:453] <10582> rResMsg:상점아이디 입력여부 확인요망
    주문번호 입력여부 확인요망
    상품명 입력여부 확인요망
    금액 입력여부 확인요망
    단말기아이디 입력여부 확인요망
    인증여부 입력여부 확인요망
    +INFO [2017-06-15 10:59:34:453] <10582> ] +INFO [2017-06-15 10:59:34:453] <10582> END 상점아이디 입력여부 확인요망
    주문번호 입력여부 확인요망
    상품명 입력여부 확인요망
    금액 입력여부 확인요망
    단말기아이디 입력여부 확인요망
    인증여부 입력여부 확인요망
    Transaction time:[0sec] +INFO [2017-06-15 10:59:34:453] <10582> =============================================================== diff --git a/module/shop/pg/agspay/log/AgsPay40_php_womenscare_170614.log b/module/shop/pg/agspay/log/AgsPay40_php_womenscare_170614.log new file mode 100644 index 0000000..b6006ca --- /dev/null +++ b/module/shop/pg/agspay/log/AgsPay40_php_womenscare_170614.log @@ -0,0 +1,1630 @@ +INFO [2017-06-14 20:18:52:636] <4827> =============================================================== +INFO [2017-06-14 20:18:52:636] <4827> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.14) +INFO [2017-06-14 20:18:52:636] <4827> card Pay Start! +INFO [2017-06-14 20:18:52:636] <4827> AgsPayHome:/home/igrowlaser/www2/module/shop/pg/agspay +INFO [2017-06-14 20:18:52:636] <4827> StoreId:womenscare +INFO [2017-06-14 20:18:52:636] <4827> log:true +INFO [2017-06-14 20:18:52:636] <4827> logLevel:INFO +INFO [2017-06-14 20:18:52:636] <4827> UseNetCancel:true +INFO [2017-06-14 20:18:52:636] <4827> Type:Pay +INFO [2017-06-14 20:18:52:636] <4827> RecvLen:7 +INFO [2017-06-14 20:18:52:636] <4827> AuthTy:card +INFO [2017-06-14 20:18:52:636] <4827> SubTy:visa3d +INFO [2017-06-14 20:18:52:636] <4827> OrdNo:20170614195125T45538 +INFO [2017-06-14 20:18:52:636] <4827> Amt:4000 +INFO [2017-06-14 20:18:52:637] <4827> UserEmail:test@naver.com +INFO [2017-06-14 20:18:52:637] <4827> ProdNm:테스트 +INFO [2017-06-14 20:18:52:637] <4827> MallUrl:http://igrowlaser.phpweb.co.kr +INFO [2017-06-14 20:18:52:637] <4827> UserId:test +INFO [2017-06-14 20:18:52:637] <4827> OrdNm:테스트아이디 +INFO [2017-06-14 20:18:52:637] <4827> OrdPhone:02-123-1234 +INFO [2017-06-14 20:18:52:637] <4827> OrdAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:18:52:637] <4827> RcpNm:test +INFO [2017-06-14 20:18:52:637] <4827> RcpPhone:02-123-1234 +INFO [2017-06-14 20:18:52:637] <4827> DlvAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:18:52:637] <4827> Remark: +INFO [2017-06-14 20:18:52:637] <4827> DeviId:9000400001 +INFO [2017-06-14 20:18:52:637] <4827> AuthYn:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 20:18:52:637] <4827> Instmt:00 +INFO [2017-06-14 20:18:52:637] <4827> UserIp:211.243.232.13 +INFO [2017-06-14 20:18:52:637] <4827> partial_mm: +INFO [2017-06-14 20:18:52:637] <4827> noIntMonth: +INFO [2017-06-14 20:18:52:637] <4827> KVP_CURRENCY:WON +INFO [2017-06-14 20:18:52:637] <4827> KVP_CARDCODE: +INFO [2017-06-14 20:18:52:637] <4827> KVP_SESSIONKEY: +INFO [2017-06-14 20:18:52:637] <4827> KVP_ENCDATA: +INFO [2017-06-14 20:18:52:637] <4827> KVP_CONAME: +INFO [2017-06-14 20:18:52:638] <4827> KVP_NOINT: +INFO [2017-06-14 20:18:52:638] <4827> KVP_QUOTA: +INFO [2017-06-14 20:18:52:638] <4827> CardNo:5107373509616712 +INFO [2017-06-14 20:18:52:638] <4827> MPI_CAVV:AAABAEVRgiAXBhQgGFGCAAAAMRc= +INFO [2017-06-14 20:18:52:638] <4827> MPI_ECI:05 +INFO [2017-06-14 20:18:52:638] <4827> MPI_MD64:MjAxNzA2MTQyMDE3MzQ4NzExMjA= +INFO [2017-06-14 20:18:52:638] <4827> ExpMon:12 +INFO [2017-06-14 20:18:52:638] <4827> ExpYear:2049 +INFO [2017-06-14 20:18:52:638] <4827> Passwd: +INFO [2017-06-14 20:18:52:638] <4827> SocId: +INFO [2017-06-14 20:18:52:638] <4827> ICHE_OUTBANKNAME: +INFO [2017-06-14 20:18:52:638] <4827> ICHE_OUTACCTNO: +INFO [2017-06-14 20:18:52:638] <4827> ICHE_OUTBANKMASTER: +INFO [2017-06-14 20:18:52:638] <4827> ICHE_AMOUNT: +INFO [2017-06-14 20:18:52:638] <4827> HP_SERVERINFO: +INFO [2017-06-14 20:18:52:638] <4827> HP_HANDPHONE: +INFO [2017-06-14 20:18:52:638] <4827> HP_COMPANY: +INFO [2017-06-14 20:18:52:638] <4827> HP_ID: +INFO [2017-06-14 20:18:52:638] <4827> HP_SUBID: +INFO [2017-06-14 20:18:52:638] <4827> HP_UNITType: +INFO [2017-06-14 20:18:52:638] <4827> HP_IDEN: +INFO [2017-06-14 20:18:52:638] <4827> HP_IPADDR: +INFO [2017-06-14 20:18:52:639] <4827> ARS_NAME: +INFO [2017-06-14 20:18:52:639] <4827> ARS_PHONE: +INFO [2017-06-14 20:18:52:639] <4827> VIRTUAL_CENTERCD:99 +INFO [2017-06-14 20:18:52:639] <4827> VIRTUAL_DEPODT: +INFO [2017-06-14 20:18:52:639] <4827> ZuminCode: +INFO [2017-06-14 20:18:52:639] <4827> MallPage:/shop.php?goPage=PayCard&order_no=20170614195125T45538 +INFO [2017-06-14 20:18:52:639] <4827> VIRTUAL_NO: +INFO [2017-06-14 20:18:52:639] <4827> ES_SENDNO: +INFO [2017-06-14 20:18:52:639] <4827> ICHE_SOCKETYN:Y +INFO [2017-06-14 20:18:52:639] <4827> ICHE_POSMTID: +INFO [2017-06-14 20:18:52:639] <4827> ICHE_FNBCMTID: +INFO [2017-06-14 20:18:52:639] <4827> ICHE_APTRTS: +INFO [2017-06-14 20:18:52:639] <4827> ICHE_REMARK1: +INFO [2017-06-14 20:18:52:639] <4827> ICHE_REMARK2: +INFO [2017-06-14 20:18:52:639] <4827> ICHE_ECWYN: +INFO [2017-06-14 20:18:52:639] <4827> ICHE_ECWID: +INFO [2017-06-14 20:18:52:639] <4827> ICHE_ECWAMT1: +INFO [2017-06-14 20:18:52:639] <4827> ICHE_ECWAMT2: +INFO [2017-06-14 20:18:52:639] <4827> ICHE_CASHYN:N +INFO [2017-06-14 20:18:52:639] <4827> ICHE_CASHGUBUN_CD: +INFO [2017-06-14 20:18:52:639] <4827> ICHE_CASHID_NO: +INFO [2017-06-14 20:18:52:639] <4827> ICHEARS_SOCKETYN: +INFO [2017-06-14 20:18:52:640] <4827> ICHEARS_ADMNO: +INFO [2017-06-14 20:18:52:640] <4827> ICHEARS_POSMTID: +INFO [2017-06-14 20:18:52:640] <4827> ICHEARS_CENTERCD: +INFO [2017-06-14 20:18:52:640] <4827> ICHEARS_HPNO: +INFO [2017-06-14 20:18:52:640] <4827> Make NetCancel ID Start +INFO [2017-06-14 20:18:52:640] <4827> AEGIS_VISAwomenscare_20170614201852640377 +INFO [2017-06-14 20:18:52:640] <4827> Make NetCancel ID End +INFO [2017-06-14 20:18:52:640] <4827> Make NetCancelID OK +INFO [2017-06-14 20:18:52:640] <4827> Make Msg Start +INFO [2017-06-14 20:18:52:640] <4827> Encrypt Start +INFO [2017-06-14 20:18:52:640] <4827> Encrypt End +INFO [2017-06-14 20:18:52:640] <4827> Encrypt Start +INFO [2017-06-14 20:18:52:640] <4827> Encrypt End +INFO [2017-06-14 20:18:52:640] <4827> Encrypt Start +INFO [2017-06-14 20:18:52:640] <4827> Encrypt End +INFO [2017-06-14 20:18:52:640] <4827> Encrypt Start +INFO [2017-06-14 20:18:52:640] <4827> Encrypt End +INFO [2017-06-14 20:18:52:640] <4827> card-visa3d Make MSG OK +INFO [2017-06-14 20:18:52:640] <4827> Make Msg End +INFO [2017-06-14 20:18:52:641] <4827> Make Pay Msg OK +INFO [2017-06-14 20:18:52:641] <4827> Send & Recv Msg Start +INFO [2017-06-14 20:18:52:641] <4827> Send Data To PG Start [ +INFO [2017-06-14 20:18:52:641] <4827> 0:0003740plug15 +INFO [2017-06-14 20:18:52:641] <4827> 1:womenscare +INFO [2017-06-14 20:18:52:641] <4827> 2:test +INFO [2017-06-14 20:18:52:641] <4827> 3:4000 +INFO [2017-06-14 20:18:52:641] <4827> 4:20170614195125T45538 +INFO [2017-06-14 20:18:52:641] <4827> 5:9000400001 +INFO [2017-06-14 20:18:52:641] <4827> 6:2817911916701190 +INFO [2017-06-14 20:18:52:641] <4827> 7:283587 +INFO [2017-06-14 20:18:52:641] <4827> 8:00 +INFO [2017-06-14 20:18:52:641] <4827> 9:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 20:18:52:641] <4827> 10: +INFO [2017-06-14 20:18:52:641] <4827> 11: +INFO [2017-06-14 20:18:52:641] <4827> 12:test +INFO [2017-06-14 20:18:52:641] <4827> 13:02-123-1234 +INFO [2017-06-14 20:18:52:641] <4827> 14:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:18:52:641] <4827> 15:테스트아이디 +INFO [2017-06-14 20:18:52:641] <4827> 16:211.243.232.13;02-123-1234 +INFO [2017-06-14 20:18:52:641] <4827> 17:test@naver.com; +INFO [2017-06-14 20:18:52:641] <4827> 18:테스트 +INFO [2017-06-14 20:18:52:641] <4827> 19:AAABAEVRgiAXBhQgGFGCAAAAMRc= +INFO [2017-06-14 20:18:52:641] <4827> 20:MjAxNzA2MTQyMDE3MzQ4NzExMjA= +INFO [2017-06-14 20:18:52:641] <4827> 21:05 +INFO [2017-06-14 20:18:52:641] <4827> 22:test@naver.com +INFO [2017-06-14 20:18:52:641] <4827> 23:AEGIS_VISAwomenscare_20170614201852640377 +INFO [2017-06-14 20:18:52:641] <4827> 24: +INFO [2017-06-14 20:18:52:641] <4827> ] Send Data To PG End +INFO [2017-06-14 20:18:52:641] <4827> SendMsg : [0003740plug15|womenscare|test|4000|20170614195125T45538|9000400001|2817911916701190|283587|00|N;211.243.232.13;N;;4000;;;;;|||test|02-123-1234|서울 관악구 난향길 5 (신림동)123456|테스트아이디|211.243.232.13;02-123-1234|test@naver.com;|테스트|AAABAEVRgiAXBhQgGFGCAAAAMRc=|MjAxNzA2MTQyMDE3MzQ4NzExMjA=|05|test@naver.com|AEGIS_VISAwomenscare_20170614201852640377|] +INFO [2017-06-14 20:18:52:641] <4827> Connect IP:[121.133.126.1] Port:[29760] +INFO [2017-06-14 20:18:52:644] <4827> Socket Open OK +INFO [2017-06-14 20:18:53:313] <4827> RecvMsg Length : [000112] +INFO [2017-06-14 20:18:53:313] <4827> RecvMsg : [womenscare|0610|20170614195125T45538| |000000004000|n|83-īȭ||20170614201856|0500||0||540081| +] +INFO [2017-06-14 20:18:53:313] <4827> Socket Close OK +INFO [2017-06-14 20:18:53:313] <4827> RecvMsg Length Check OK +INFO [2017-06-14 20:18:53:313] <4827> Send & Recv Msg End +INFO [2017-06-14 20:18:53:313] <4827> Send & Recv Msg OK +INFO [2017-06-14 20:18:53:313] <4827> Parse Msg Start +INFO [2017-06-14 20:18:53:313] <4827> card-visa3d RECV MSG Parsing OK +INFO [2017-06-14 20:18:53:313] <4827> Parse Msg End +INFO [2017-06-14 20:18:53:313] <4827> Msg Parsing OK +INFO [2017-06-14 20:18:53:313] <4827> card Pay Result Value [ +INFO [2017-06-14 20:18:53:314] <4827> NetCancID:AEGIS_VISAwomenscare_20170614201852640377 +INFO [2017-06-14 20:18:53:314] <4827> rStoreId:womenscare +INFO [2017-06-14 20:18:53:314] <4827> rBusiCd:0610 +INFO [2017-06-14 20:18:53:314] <4827> rOrdNo:20170614195125T45538 +INFO [2017-06-14 20:18:53:314] <4827> rApprNo: +INFO [2017-06-14 20:18:53:314] <4827> rInstmt:00 +INFO [2017-06-14 20:18:53:314] <4827> rAmt:000000004000 +INFO [2017-06-14 20:18:53:314] <4827> rSuccYn:n +INFO [2017-06-14 20:18:53:314] <4827> rResMsg:83-īȭ +INFO [2017-06-14 20:18:53:314] <4827> rCardNm: +INFO [2017-06-14 20:18:53:314] <4827> rApprTm:20170614201856 +INFO [2017-06-14 20:18:53:314] <4827> rCardCd:0500 +INFO [2017-06-14 20:18:53:314] <4827> rMembNo: +INFO [2017-06-14 20:18:53:314] <4827> rAquiCd:0 +INFO [2017-06-14 20:18:53:314] <4827> rAquiNm: +INFO [2017-06-14 20:18:53:314] <4827> rDealNo:540081 +INFO [2017-06-14 20:18:53:314] <4827> rProdNm:테스트 +INFO [2017-06-14 20:18:53:314] <4827> ] +INFO [2017-06-14 20:18:53:314] <4827> END 83-īȭ Transaction time:[0.67sec] +INFO [2017-06-14 20:18:53:314] <4827> =============================================================== +INFO [2017-06-14 20:20:29:510] <4828> =============================================================== +INFO [2017-06-14 20:20:29:510] <4828> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.14) +INFO [2017-06-14 20:20:29:510] <4828> card Pay Start! +INFO [2017-06-14 20:20:29:511] <4828> AgsPayHome:/home/igrowlaser/www2/module/shop/pg/agspay +INFO [2017-06-14 20:20:29:511] <4828> StoreId:womenscare +INFO [2017-06-14 20:20:29:511] <4828> log:true +INFO [2017-06-14 20:20:29:511] <4828> logLevel:INFO +INFO [2017-06-14 20:20:29:511] <4828> UseNetCancel:true +INFO [2017-06-14 20:20:29:511] <4828> Type:Pay +INFO [2017-06-14 20:20:29:511] <4828> RecvLen:7 +INFO [2017-06-14 20:20:29:511] <4828> AuthTy:card +INFO [2017-06-14 20:20:29:511] <4828> SubTy:visa3d +INFO [2017-06-14 20:20:29:511] <4828> OrdNo:20170614195125T45538 +INFO [2017-06-14 20:20:29:511] <4828> Amt:4000 +INFO [2017-06-14 20:20:29:511] <4828> UserEmail:test@naver.com +INFO [2017-06-14 20:20:29:511] <4828> ProdNm:테스트 +INFO [2017-06-14 20:20:29:511] <4828> MallUrl:http://igrowlaser.phpweb.co.kr +INFO [2017-06-14 20:20:29:511] <4828> UserId:test +INFO [2017-06-14 20:20:29:511] <4828> OrdNm:테스트아이디 +INFO [2017-06-14 20:20:29:511] <4828> OrdPhone:02-123-1234 +INFO [2017-06-14 20:20:29:511] <4828> OrdAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:20:29:511] <4828> RcpNm:test +INFO [2017-06-14 20:20:29:511] <4828> RcpPhone:02-123-1234 +INFO [2017-06-14 20:20:29:511] <4828> DlvAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:20:29:512] <4828> Remark: +INFO [2017-06-14 20:20:29:512] <4828> DeviId:9000400001 +INFO [2017-06-14 20:20:29:512] <4828> AuthYn:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 20:20:29:512] <4828> Instmt:00 +INFO [2017-06-14 20:20:29:512] <4828> UserIp:211.243.232.13 +INFO [2017-06-14 20:20:29:512] <4828> partial_mm: +INFO [2017-06-14 20:20:29:512] <4828> noIntMonth: +INFO [2017-06-14 20:20:29:512] <4828> KVP_CURRENCY:WON +INFO [2017-06-14 20:20:29:512] <4828> KVP_CARDCODE: +INFO [2017-06-14 20:20:29:512] <4828> KVP_SESSIONKEY: +INFO [2017-06-14 20:20:29:512] <4828> KVP_ENCDATA: +INFO [2017-06-14 20:20:29:512] <4828> KVP_CONAME: +INFO [2017-06-14 20:20:29:512] <4828> KVP_NOINT: +INFO [2017-06-14 20:20:29:512] <4828> KVP_QUOTA: +INFO [2017-06-14 20:20:29:512] <4828> CardNo:5107373509616712 +INFO [2017-06-14 20:20:29:512] <4828> MPI_CAVV:AAABAEVRgiAXBhQgGFGCAAAAMRc= +INFO [2017-06-14 20:20:29:512] <4828> MPI_ECI:05 +INFO [2017-06-14 20:20:29:512] <4828> MPI_MD64:MjAxNzA2MTQyMDE3MzQ4NzExMjA= +INFO [2017-06-14 20:20:29:512] <4828> ExpMon:12 +INFO [2017-06-14 20:20:29:512] <4828> ExpYear:2049 +INFO [2017-06-14 20:20:29:512] <4828> Passwd: +INFO [2017-06-14 20:20:29:512] <4828> SocId: +INFO [2017-06-14 20:20:29:513] <4828> ICHE_OUTBANKNAME: +INFO [2017-06-14 20:20:29:513] <4828> ICHE_OUTACCTNO: +INFO [2017-06-14 20:20:29:513] <4828> ICHE_OUTBANKMASTER: +INFO [2017-06-14 20:20:29:513] <4828> ICHE_AMOUNT: +INFO [2017-06-14 20:20:29:513] <4828> HP_SERVERINFO: +INFO [2017-06-14 20:20:29:513] <4828> HP_HANDPHONE: +INFO [2017-06-14 20:20:29:513] <4828> HP_COMPANY: +INFO [2017-06-14 20:20:29:513] <4828> HP_ID: +INFO [2017-06-14 20:20:29:513] <4828> HP_SUBID: +INFO [2017-06-14 20:20:29:513] <4828> HP_UNITType: +INFO [2017-06-14 20:20:29:513] <4828> HP_IDEN: +INFO [2017-06-14 20:20:29:513] <4828> HP_IPADDR: +INFO [2017-06-14 20:20:29:513] <4828> ARS_NAME: +INFO [2017-06-14 20:20:29:513] <4828> ARS_PHONE: +INFO [2017-06-14 20:20:29:513] <4828> VIRTUAL_CENTERCD:99 +INFO [2017-06-14 20:20:29:513] <4828> VIRTUAL_DEPODT: +INFO [2017-06-14 20:20:29:513] <4828> ZuminCode: +INFO [2017-06-14 20:20:29:513] <4828> MallPage:/shop.php?goPage=PayCard&order_no=20170614195125T45538 +INFO [2017-06-14 20:20:29:513] <4828> VIRTUAL_NO: +INFO [2017-06-14 20:20:29:513] <4828> ES_SENDNO: +INFO [2017-06-14 20:20:29:513] <4828> ICHE_SOCKETYN:Y +INFO [2017-06-14 20:20:29:513] <4828> ICHE_POSMTID: +INFO [2017-06-14 20:20:29:514] <4828> ICHE_FNBCMTID: +INFO [2017-06-14 20:20:29:514] <4828> ICHE_APTRTS: +INFO [2017-06-14 20:20:29:514] <4828> ICHE_REMARK1: +INFO [2017-06-14 20:20:29:514] <4828> ICHE_REMARK2: +INFO [2017-06-14 20:20:29:514] <4828> ICHE_ECWYN: +INFO [2017-06-14 20:20:29:514] <4828> ICHE_ECWID: +INFO [2017-06-14 20:20:29:514] <4828> ICHE_ECWAMT1: +INFO [2017-06-14 20:20:29:514] <4828> ICHE_ECWAMT2: +INFO [2017-06-14 20:20:29:514] <4828> ICHE_CASHYN:N +INFO [2017-06-14 20:20:29:514] <4828> ICHE_CASHGUBUN_CD: +INFO [2017-06-14 20:20:29:514] <4828> ICHE_CASHID_NO: +INFO [2017-06-14 20:20:29:514] <4828> ICHEARS_SOCKETYN: +INFO [2017-06-14 20:20:29:514] <4828> ICHEARS_ADMNO: +INFO [2017-06-14 20:20:29:514] <4828> ICHEARS_POSMTID: +INFO [2017-06-14 20:20:29:514] <4828> ICHEARS_CENTERCD: +INFO [2017-06-14 20:20:29:514] <4828> ICHEARS_HPNO: +INFO [2017-06-14 20:20:29:514] <4828> Make NetCancel ID Start +INFO [2017-06-14 20:20:29:514] <4828> AEGIS_VISAwomenscare_20170614202029514909 +INFO [2017-06-14 20:20:29:514] <4828> Make NetCancel ID End +INFO [2017-06-14 20:20:29:514] <4828> Make NetCancelID OK +INFO [2017-06-14 20:20:29:514] <4828> Make Msg Start +INFO [2017-06-14 20:20:29:515] <4828> Encrypt Start +INFO [2017-06-14 20:20:29:515] <4828> Encrypt End +INFO [2017-06-14 20:20:29:515] <4828> Encrypt Start +INFO [2017-06-14 20:20:29:515] <4828> Encrypt End +INFO [2017-06-14 20:20:29:515] <4828> Encrypt Start +INFO [2017-06-14 20:20:29:515] <4828> Encrypt End +INFO [2017-06-14 20:20:29:515] <4828> Encrypt Start +INFO [2017-06-14 20:20:29:515] <4828> Encrypt End +INFO [2017-06-14 20:20:29:515] <4828> card-visa3d Make MSG OK +INFO [2017-06-14 20:20:29:515] <4828> Make Msg End +INFO [2017-06-14 20:20:29:515] <4828> Make Pay Msg OK +INFO [2017-06-14 20:20:29:515] <4828> Send & Recv Msg Start +INFO [2017-06-14 20:20:29:515] <4828> Send Data To PG Start [ +INFO [2017-06-14 20:20:29:515] <4828> 0:0003740plug15 +INFO [2017-06-14 20:20:29:515] <4828> 1:womenscare +INFO [2017-06-14 20:20:29:515] <4828> 2:test +INFO [2017-06-14 20:20:29:515] <4828> 3:4000 +INFO [2017-06-14 20:20:29:515] <4828> 4:20170614195125T45538 +INFO [2017-06-14 20:20:29:515] <4828> 5:9000400001 +INFO [2017-06-14 20:20:29:515] <4828> 6:2817911916701190 +INFO [2017-06-14 20:20:29:515] <4828> 7:283587 +INFO [2017-06-14 20:20:29:515] <4828> 8:00 +INFO [2017-06-14 20:20:29:515] <4828> 9:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 20:20:29:515] <4828> 10: +INFO [2017-06-14 20:20:29:515] <4828> 11: +INFO [2017-06-14 20:20:29:515] <4828> 12:test +INFO [2017-06-14 20:20:29:515] <4828> 13:02-123-1234 +INFO [2017-06-14 20:20:29:515] <4828> 14:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:20:29:515] <4828> 15:테스트아이디 +INFO [2017-06-14 20:20:29:515] <4828> 16:211.243.232.13;02-123-1234 +INFO [2017-06-14 20:20:29:515] <4828> 17:test@naver.com; +INFO [2017-06-14 20:20:29:515] <4828> 18:테스트 +INFO [2017-06-14 20:20:29:515] <4828> 19:AAABAEVRgiAXBhQgGFGCAAAAMRc= +INFO [2017-06-14 20:20:29:515] <4828> 20:MjAxNzA2MTQyMDE3MzQ4NzExMjA= +INFO [2017-06-14 20:20:29:515] <4828> 21:05 +INFO [2017-06-14 20:20:29:515] <4828> 22:test@naver.com +INFO [2017-06-14 20:20:29:515] <4828> 23:AEGIS_VISAwomenscare_20170614202029514909 +INFO [2017-06-14 20:20:29:515] <4828> 24: +INFO [2017-06-14 20:20:29:515] <4828> ] Send Data To PG End +INFO [2017-06-14 20:20:29:515] <4828> SendMsg : [0003740plug15|womenscare|test|4000|20170614195125T45538|9000400001|2817911916701190|283587|00|N;211.243.232.13;N;;4000;;;;;|||test|02-123-1234|서울 관악구 난향길 5 (신림동)123456|테스트아이디|211.243.232.13;02-123-1234|test@naver.com;|테스트|AAABAEVRgiAXBhQgGFGCAAAAMRc=|MjAxNzA2MTQyMDE3MzQ4NzExMjA=|05|test@naver.com|AEGIS_VISAwomenscare_20170614202029514909|] +INFO [2017-06-14 20:20:29:515] <4828> Connect IP:[121.133.126.1] Port:[29760] +INFO [2017-06-14 20:20:29:518] <4828> Socket Open OK +INFO [2017-06-14 20:20:29:958] <4828> RecvMsg Length : [000112] +INFO [2017-06-14 20:20:29:958] <4828> RecvMsg : [womenscare|0610|20170614195125T45538| |000000004000|n|83-īȭ||20170614202033|0500||0||540173| +] +INFO [2017-06-14 20:20:29:958] <4828> Socket Close OK +INFO [2017-06-14 20:20:29:958] <4828> RecvMsg Length Check OK +INFO [2017-06-14 20:20:29:958] <4828> Send & Recv Msg End +INFO [2017-06-14 20:20:29:958] <4828> Send & Recv Msg OK +INFO [2017-06-14 20:20:29:958] <4828> Parse Msg Start +INFO [2017-06-14 20:20:29:958] <4828> card-visa3d RECV MSG Parsing OK +INFO [2017-06-14 20:20:29:958] <4828> Parse Msg End +INFO [2017-06-14 20:20:29:958] <4828> Msg Parsing OK +INFO [2017-06-14 20:20:29:958] <4828> card Pay Result Value [ +INFO [2017-06-14 20:20:29:958] <4828> NetCancID:AEGIS_VISAwomenscare_20170614202029514909 +INFO [2017-06-14 20:20:29:958] <4828> rStoreId:womenscare +INFO [2017-06-14 20:20:29:958] <4828> rBusiCd:0610 +INFO [2017-06-14 20:20:29:958] <4828> rOrdNo:20170614195125T45538 +INFO [2017-06-14 20:20:29:958] <4828> rApprNo: +INFO [2017-06-14 20:20:29:958] <4828> rInstmt:00 +INFO [2017-06-14 20:20:29:958] <4828> rAmt:000000004000 +INFO [2017-06-14 20:20:29:959] <4828> rSuccYn:n +INFO [2017-06-14 20:20:29:959] <4828> rResMsg:83-īȭ +INFO [2017-06-14 20:20:29:959] <4828> rCardNm: +INFO [2017-06-14 20:20:29:959] <4828> rApprTm:20170614202033 +INFO [2017-06-14 20:20:29:959] <4828> rCardCd:0500 +INFO [2017-06-14 20:20:29:959] <4828> rMembNo: +INFO [2017-06-14 20:20:29:959] <4828> rAquiCd:0 +INFO [2017-06-14 20:20:29:959] <4828> rAquiNm: +INFO [2017-06-14 20:20:29:959] <4828> rDealNo:540173 +INFO [2017-06-14 20:20:29:959] <4828> rProdNm:테스트 +INFO [2017-06-14 20:20:29:959] <4828> ] +INFO [2017-06-14 20:20:29:959] <4828> END 83-īȭ Transaction time:[0.45sec] +INFO [2017-06-14 20:20:29:959] <4828> =============================================================== +INFO [2017-06-14 20:31:45:918] <4825> =============================================================== +INFO [2017-06-14 20:31:45:918] <4825> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.14) +INFO [2017-06-14 20:31:45:918] <4825> card Pay Start! +INFO [2017-06-14 20:31:45:918] <4825> AgsPayHome:/home/igrowlaser/www2/module/shop/pg/agspay +INFO [2017-06-14 20:31:45:919] <4825> StoreId:womenscare +INFO [2017-06-14 20:31:45:919] <4825> log:true +INFO [2017-06-14 20:31:45:919] <4825> logLevel:INFO +INFO [2017-06-14 20:31:45:919] <4825> UseNetCancel:true +INFO [2017-06-14 20:31:45:919] <4825> Type:Pay +INFO [2017-06-14 20:31:45:919] <4825> RecvLen:7 +INFO [2017-06-14 20:31:45:919] <4825> AuthTy:card +INFO [2017-06-14 20:31:45:919] <4825> SubTy:visa3d +INFO [2017-06-14 20:31:45:919] <4825> OrdNo:20170614203101T34822 +INFO [2017-06-14 20:31:45:919] <4825> Amt:4000 +INFO [2017-06-14 20:31:45:919] <4825> UserEmail:test@naver.com +INFO [2017-06-14 20:31:45:919] <4825> ProdNm:테스트 +INFO [2017-06-14 20:31:45:919] <4825> MallUrl:http://igrowlaser.phpweb.co.kr +INFO [2017-06-14 20:31:45:919] <4825> UserId:test +INFO [2017-06-14 20:31:45:919] <4825> OrdNm:테스트아이디 +INFO [2017-06-14 20:31:45:919] <4825> OrdPhone:02-123-1234 +INFO [2017-06-14 20:31:45:919] <4825> OrdAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:31:45:919] <4825> RcpNm:test +INFO [2017-06-14 20:31:45:919] <4825> RcpPhone:02-123-1234 +INFO [2017-06-14 20:31:45:919] <4825> DlvAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:31:45:919] <4825> Remark: +INFO [2017-06-14 20:31:45:919] <4825> DeviId:9000400001 +INFO [2017-06-14 20:31:45:920] <4825> AuthYn:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 20:31:45:920] <4825> Instmt:00 +INFO [2017-06-14 20:31:45:920] <4825> UserIp:211.243.232.13 +INFO [2017-06-14 20:31:45:920] <4825> partial_mm: +INFO [2017-06-14 20:31:45:920] <4825> noIntMonth: +INFO [2017-06-14 20:31:45:920] <4825> KVP_CURRENCY:WON +INFO [2017-06-14 20:31:45:920] <4825> KVP_CARDCODE: +INFO [2017-06-14 20:31:45:920] <4825> KVP_SESSIONKEY: +INFO [2017-06-14 20:31:45:920] <4825> KVP_ENCDATA: +INFO [2017-06-14 20:31:45:920] <4825> KVP_CONAME: +INFO [2017-06-14 20:31:45:920] <4825> KVP_NOINT: +INFO [2017-06-14 20:31:45:920] <4825> KVP_QUOTA: +INFO [2017-06-14 20:31:45:920] <4825> CardNo:5107374327239679 +INFO [2017-06-14 20:31:45:920] <4825> MPI_CAVV:AAABATNiVyAXBhQgMWJXAAAAMRc= +INFO [2017-06-14 20:31:45:920] <4825> MPI_ECI:05 +INFO [2017-06-14 20:31:45:920] <4825> MPI_MD64:MjAxNzA2MTQyMDMxMjcyNDMxMjA= +INFO [2017-06-14 20:31:45:920] <4825> ExpMon:12 +INFO [2017-06-14 20:31:45:920] <4825> ExpYear:2049 +INFO [2017-06-14 20:31:45:920] <4825> Passwd: +INFO [2017-06-14 20:31:45:920] <4825> SocId: +INFO [2017-06-14 20:31:45:920] <4825> ICHE_OUTBANKNAME: +INFO [2017-06-14 20:31:45:921] <4825> ICHE_OUTACCTNO: +INFO [2017-06-14 20:31:45:921] <4825> ICHE_OUTBANKMASTER: +INFO [2017-06-14 20:31:45:921] <4825> ICHE_AMOUNT: +INFO [2017-06-14 20:31:45:921] <4825> HP_SERVERINFO: +INFO [2017-06-14 20:31:45:921] <4825> HP_HANDPHONE: +INFO [2017-06-14 20:31:45:921] <4825> HP_COMPANY: +INFO [2017-06-14 20:31:45:921] <4825> HP_ID: +INFO [2017-06-14 20:31:45:921] <4825> HP_SUBID: +INFO [2017-06-14 20:31:45:921] <4825> HP_UNITType: +INFO [2017-06-14 20:31:45:921] <4825> HP_IDEN: +INFO [2017-06-14 20:31:45:921] <4825> HP_IPADDR: +INFO [2017-06-14 20:31:45:921] <4825> ARS_NAME: +INFO [2017-06-14 20:31:45:921] <4825> ARS_PHONE: +INFO [2017-06-14 20:31:45:921] <4825> VIRTUAL_CENTERCD:99 +INFO [2017-06-14 20:31:45:921] <4825> VIRTUAL_DEPODT: +INFO [2017-06-14 20:31:45:921] <4825> ZuminCode: +INFO [2017-06-14 20:31:45:921] <4825> MallPage:/shop.php?goPage=PayCard&order_no=20170614203101T34822 +INFO [2017-06-14 20:31:45:921] <4825> VIRTUAL_NO: +INFO [2017-06-14 20:31:45:921] <4825> ES_SENDNO: +INFO [2017-06-14 20:31:45:921] <4825> ICHE_SOCKETYN:Y +INFO [2017-06-14 20:31:45:922] <4825> ICHE_POSMTID: +INFO [2017-06-14 20:31:45:922] <4825> ICHE_FNBCMTID: +INFO [2017-06-14 20:31:45:922] <4825> ICHE_APTRTS: +INFO [2017-06-14 20:31:45:922] <4825> ICHE_REMARK1: +INFO [2017-06-14 20:31:45:922] <4825> ICHE_REMARK2: +INFO [2017-06-14 20:31:45:922] <4825> ICHE_ECWYN: +INFO [2017-06-14 20:31:45:922] <4825> ICHE_ECWID: +INFO [2017-06-14 20:31:45:922] <4825> ICHE_ECWAMT1: +INFO [2017-06-14 20:31:45:922] <4825> ICHE_ECWAMT2: +INFO [2017-06-14 20:31:45:922] <4825> ICHE_CASHYN:N +INFO [2017-06-14 20:31:45:922] <4825> ICHE_CASHGUBUN_CD: +INFO [2017-06-14 20:31:45:922] <4825> ICHE_CASHID_NO: +INFO [2017-06-14 20:31:45:922] <4825> ICHEARS_SOCKETYN: +INFO [2017-06-14 20:31:45:922] <4825> ICHEARS_ADMNO: +INFO [2017-06-14 20:31:45:922] <4825> ICHEARS_POSMTID: +INFO [2017-06-14 20:31:45:922] <4825> ICHEARS_CENTERCD: +INFO [2017-06-14 20:31:45:922] <4825> ICHEARS_HPNO: +INFO [2017-06-14 20:31:45:922] <4825> Make NetCancel ID Start +INFO [2017-06-14 20:31:45:922] <4825> AEGIS_VISAwomenscare_20170614203145922291 +INFO [2017-06-14 20:31:45:922] <4825> Make NetCancel ID End +INFO [2017-06-14 20:31:45:923] <4825> Make NetCancelID OK +INFO [2017-06-14 20:31:45:923] <4825> Make Msg Start +INFO [2017-06-14 20:31:45:923] <4825> Encrypt Start +INFO [2017-06-14 20:31:45:923] <4825> Encrypt End +INFO [2017-06-14 20:31:45:923] <4825> Encrypt Start +INFO [2017-06-14 20:31:45:923] <4825> Encrypt End +INFO [2017-06-14 20:31:45:923] <4825> Encrypt Start +INFO [2017-06-14 20:31:45:923] <4825> Encrypt End +INFO [2017-06-14 20:31:45:923] <4825> Encrypt Start +INFO [2017-06-14 20:31:45:923] <4825> Encrypt End +INFO [2017-06-14 20:31:45:923] <4825> card-visa3d Make MSG OK +INFO [2017-06-14 20:31:45:923] <4825> Make Msg End +INFO [2017-06-14 20:31:45:923] <4825> Make Pay Msg OK +INFO [2017-06-14 20:31:45:923] <4825> Send & Recv Msg Start +INFO [2017-06-14 20:31:45:923] <4825> Send Data To PG Start [ +INFO [2017-06-14 20:31:45:923] <4825> 0:0003740plug15 +INFO [2017-06-14 20:31:45:923] <4825> 1:womenscare +INFO [2017-06-14 20:31:45:923] <4825> 2:test +INFO [2017-06-14 20:31:45:923] <4825> 3:4000 +INFO [2017-06-14 20:31:45:923] <4825> 4:20170614203101T34822 +INFO [2017-06-14 20:31:45:923] <4825> 5:9000400001 +INFO [2017-06-14 20:31:45:923] <4825> 6:9400179197701190 +INFO [2017-06-14 20:31:45:923] <4825> 7:283587 +INFO [2017-06-14 20:31:45:923] <4825> 8:00 +INFO [2017-06-14 20:31:45:923] <4825> 9:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 20:31:45:923] <4825> 10: +INFO [2017-06-14 20:31:45:923] <4825> 11: +INFO [2017-06-14 20:31:45:923] <4825> 12:test +INFO [2017-06-14 20:31:45:923] <4825> 13:02-123-1234 +INFO [2017-06-14 20:31:45:923] <4825> 14:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:31:45:923] <4825> 15:테스트아이디 +INFO [2017-06-14 20:31:45:923] <4825> 16:211.243.232.13;02-123-1234 +INFO [2017-06-14 20:31:45:923] <4825> 17:test@naver.com; +INFO [2017-06-14 20:31:45:923] <4825> 18:테스트 +INFO [2017-06-14 20:31:45:923] <4825> 19:AAABATNiVyAXBhQgMWJXAAAAMRc= +INFO [2017-06-14 20:31:45:923] <4825> 20:MjAxNzA2MTQyMDMxMjcyNDMxMjA= +INFO [2017-06-14 20:31:45:923] <4825> 21:05 +INFO [2017-06-14 20:31:45:923] <4825> 22:test@naver.com +INFO [2017-06-14 20:31:45:923] <4825> 23:AEGIS_VISAwomenscare_20170614203145922291 +INFO [2017-06-14 20:31:45:923] <4825> 24: +INFO [2017-06-14 20:31:45:924] <4825> ] Send Data To PG End +INFO [2017-06-14 20:31:45:924] <4825> SendMsg : [0003740plug15|womenscare|test|4000|20170614203101T34822|9000400001|9400179197701190|283587|00|N;211.243.232.13;N;;4000;;;;;|||test|02-123-1234|서울 관악구 난향길 5 (신림동)123456|테스트아이디|211.243.232.13;02-123-1234|test@naver.com;|테스트|AAABATNiVyAXBhQgMWJXAAAAMRc=|MjAxNzA2MTQyMDMxMjcyNDMxMjA=|05|test@naver.com|AEGIS_VISAwomenscare_20170614203145922291|] +INFO [2017-06-14 20:31:45:924] <4825> Connect IP:[121.133.126.1] Port:[29760] +INFO [2017-06-14 20:31:45:928] <4825> Socket Open OK +INFO [2017-06-14 20:31:46:460] <4825> RecvMsg Length : [000112] +INFO [2017-06-14 20:31:46:460] <4825> RecvMsg : [womenscare|0610|20170614203101T34822| |000000004000|n|83-īȭ||20170614203150|0500||0||540807| +] +INFO [2017-06-14 20:31:46:460] <4825> Socket Close OK +INFO [2017-06-14 20:31:46:460] <4825> RecvMsg Length Check OK +INFO [2017-06-14 20:31:46:460] <4825> Send & Recv Msg End +INFO [2017-06-14 20:31:46:460] <4825> Send & Recv Msg OK +INFO [2017-06-14 20:31:46:460] <4825> Parse Msg Start +INFO [2017-06-14 20:31:46:460] <4825> card-visa3d RECV MSG Parsing OK +INFO [2017-06-14 20:31:46:460] <4825> Parse Msg End +INFO [2017-06-14 20:31:46:460] <4825> Msg Parsing OK +INFO [2017-06-14 20:31:46:460] <4825> card Pay Result Value [ +INFO [2017-06-14 20:31:46:460] <4825> NetCancID:AEGIS_VISAwomenscare_20170614203145922291 +INFO [2017-06-14 20:31:46:460] <4825> rStoreId:womenscare +INFO [2017-06-14 20:31:46:460] <4825> rBusiCd:0610 +INFO [2017-06-14 20:31:46:460] <4825> rOrdNo:20170614203101T34822 +INFO [2017-06-14 20:31:46:460] <4825> rApprNo: +INFO [2017-06-14 20:31:46:461] <4825> rInstmt:00 +INFO [2017-06-14 20:31:46:461] <4825> rAmt:000000004000 +INFO [2017-06-14 20:31:46:461] <4825> rSuccYn:n +INFO [2017-06-14 20:31:46:461] <4825> rResMsg:83-īȭ +INFO [2017-06-14 20:31:46:461] <4825> rCardNm: +INFO [2017-06-14 20:31:46:461] <4825> rApprTm:20170614203150 +INFO [2017-06-14 20:31:46:461] <4825> rCardCd:0500 +INFO [2017-06-14 20:31:46:461] <4825> rMembNo: +INFO [2017-06-14 20:31:46:461] <4825> rAquiCd:0 +INFO [2017-06-14 20:31:46:461] <4825> rAquiNm: +INFO [2017-06-14 20:31:46:461] <4825> rDealNo:540807 +INFO [2017-06-14 20:31:46:461] <4825> rProdNm:테스트 +INFO [2017-06-14 20:31:46:461] <4825> ] +INFO [2017-06-14 20:31:46:461] <4825> END 83-īȭ Transaction time:[0.54sec] +INFO [2017-06-14 20:31:46:461] <4825> =============================================================== +INFO [2017-06-14 20:35:53:229] <4819> =============================================================== +INFO [2017-06-14 20:35:53:229] <4819> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.14) +INFO [2017-06-14 20:35:53:229] <4819> card Pay Start! +INFO [2017-06-14 20:35:53:229] <4819> AgsPayHome:/home/igrowlaser/www2/module/shop/pg/agspay +INFO [2017-06-14 20:35:53:229] <4819> StoreId:womenscare +INFO [2017-06-14 20:35:53:229] <4819> log:true +INFO [2017-06-14 20:35:53:229] <4819> logLevel:INFO +INFO [2017-06-14 20:35:53:229] <4819> UseNetCancel:true +INFO [2017-06-14 20:35:53:229] <4819> Type:Pay +INFO [2017-06-14 20:35:53:229] <4819> RecvLen:7 +INFO [2017-06-14 20:35:53:230] <4819> AuthTy:card +INFO [2017-06-14 20:35:53:230] <4819> SubTy:visa3d +INFO [2017-06-14 20:35:53:230] <4819> OrdNo:20170614203522T15591 +INFO [2017-06-14 20:35:53:230] <4819> Amt:4000 +INFO [2017-06-14 20:35:53:230] <4819> UserEmail:test@naver.com +INFO [2017-06-14 20:35:53:230] <4819> ProdNm:테스트 +INFO [2017-06-14 20:35:53:230] <4819> MallUrl:http://igrowlaser.phpweb.co.kr +INFO [2017-06-14 20:35:53:230] <4819> UserId:test +INFO [2017-06-14 20:35:53:230] <4819> OrdNm:테스트아이디 +INFO [2017-06-14 20:35:53:230] <4819> OrdPhone:02-123-1234 +INFO [2017-06-14 20:35:53:230] <4819> OrdAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:35:53:230] <4819> RcpNm:test +INFO [2017-06-14 20:35:53:230] <4819> RcpPhone:02-123-1234 +INFO [2017-06-14 20:35:53:230] <4819> DlvAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:35:53:230] <4819> Remark: +INFO [2017-06-14 20:35:53:230] <4819> DeviId:9000400001 +INFO [2017-06-14 20:35:53:230] <4819> AuthYn:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 20:35:53:230] <4819> Instmt:00 +INFO [2017-06-14 20:35:53:230] <4819> UserIp:211.243.232.13 +INFO [2017-06-14 20:35:53:230] <4819> partial_mm: +INFO [2017-06-14 20:35:53:230] <4819> noIntMonth: +INFO [2017-06-14 20:35:53:230] <4819> KVP_CURRENCY:WON +INFO [2017-06-14 20:35:53:231] <4819> KVP_CARDCODE: +INFO [2017-06-14 20:35:53:231] <4819> KVP_SESSIONKEY: +INFO [2017-06-14 20:35:53:231] <4819> KVP_ENCDATA: +INFO [2017-06-14 20:35:53:231] <4819> KVP_CONAME: +INFO [2017-06-14 20:35:53:231] <4819> KVP_NOINT: +INFO [2017-06-14 20:35:53:231] <4819> KVP_QUOTA: +INFO [2017-06-14 20:35:53:231] <4819> CardNo:5107374327239679 +INFO [2017-06-14 20:35:53:231] <4819> MPI_CAVV:AAABBYBpNiAXBhQgNWk2AAAAMRc= +INFO [2017-06-14 20:35:53:231] <4819> MPI_ECI:05 +INFO [2017-06-14 20:35:53:231] <4819> MPI_MD64:MjAxNzA2MTQyMDM1NDE2ODkxMjA= +INFO [2017-06-14 20:35:53:231] <4819> ExpMon:12 +INFO [2017-06-14 20:35:53:231] <4819> ExpYear:2049 +INFO [2017-06-14 20:35:53:231] <4819> Passwd: +INFO [2017-06-14 20:35:53:231] <4819> SocId: +INFO [2017-06-14 20:35:53:231] <4819> ICHE_OUTBANKNAME: +INFO [2017-06-14 20:35:53:231] <4819> ICHE_OUTACCTNO: +INFO [2017-06-14 20:35:53:231] <4819> ICHE_OUTBANKMASTER: +INFO [2017-06-14 20:35:53:231] <4819> ICHE_AMOUNT: +INFO [2017-06-14 20:35:53:231] <4819> HP_SERVERINFO: +INFO [2017-06-14 20:35:53:231] <4819> HP_HANDPHONE: +INFO [2017-06-14 20:35:53:231] <4819> HP_COMPANY: +INFO [2017-06-14 20:35:53:232] <4819> HP_ID: +INFO [2017-06-14 20:35:53:232] <4819> HP_SUBID: +INFO [2017-06-14 20:35:53:232] <4819> HP_UNITType: +INFO [2017-06-14 20:35:53:232] <4819> HP_IDEN: +INFO [2017-06-14 20:35:53:232] <4819> HP_IPADDR: +INFO [2017-06-14 20:35:53:232] <4819> ARS_NAME: +INFO [2017-06-14 20:35:53:232] <4819> ARS_PHONE: +INFO [2017-06-14 20:35:53:232] <4819> VIRTUAL_CENTERCD:99 +INFO [2017-06-14 20:35:53:232] <4819> VIRTUAL_DEPODT: +INFO [2017-06-14 20:35:53:232] <4819> ZuminCode: +INFO [2017-06-14 20:35:53:232] <4819> MallPage:/shop.php?goPage=PayCard&order_no=20170614203522T15591 +INFO [2017-06-14 20:35:53:232] <4819> VIRTUAL_NO: +INFO [2017-06-14 20:35:53:232] <4819> ES_SENDNO: +INFO [2017-06-14 20:35:53:232] <4819> ICHE_SOCKETYN:Y +INFO [2017-06-14 20:35:53:232] <4819> ICHE_POSMTID: +INFO [2017-06-14 20:35:53:232] <4819> ICHE_FNBCMTID: +INFO [2017-06-14 20:35:53:232] <4819> ICHE_APTRTS: +INFO [2017-06-14 20:35:53:232] <4819> ICHE_REMARK1: +INFO [2017-06-14 20:35:53:232] <4819> ICHE_REMARK2: +INFO [2017-06-14 20:35:53:232] <4819> ICHE_ECWYN: +INFO [2017-06-14 20:35:53:232] <4819> ICHE_ECWID: +INFO [2017-06-14 20:35:53:232] <4819> ICHE_ECWAMT1: +INFO [2017-06-14 20:35:53:232] <4819> ICHE_ECWAMT2: +INFO [2017-06-14 20:35:53:233] <4819> ICHE_CASHYN:N +INFO [2017-06-14 20:35:53:233] <4819> ICHE_CASHGUBUN_CD: +INFO [2017-06-14 20:35:53:233] <4819> ICHE_CASHID_NO: +INFO [2017-06-14 20:35:53:233] <4819> ICHEARS_SOCKETYN: +INFO [2017-06-14 20:35:53:233] <4819> ICHEARS_ADMNO: +INFO [2017-06-14 20:35:53:233] <4819> ICHEARS_POSMTID: +INFO [2017-06-14 20:35:53:233] <4819> ICHEARS_CENTERCD: +INFO [2017-06-14 20:35:53:233] <4819> ICHEARS_HPNO: +INFO [2017-06-14 20:35:53:233] <4819> Make NetCancel ID Start +INFO [2017-06-14 20:35:53:233] <4819> AEGIS_VISAwomenscare_20170614203553233486 +INFO [2017-06-14 20:35:53:233] <4819> Make NetCancel ID End +INFO [2017-06-14 20:35:53:233] <4819> Make NetCancelID OK +INFO [2017-06-14 20:35:53:233] <4819> Make Msg Start +INFO [2017-06-14 20:35:53:233] <4819> Encrypt Start +INFO [2017-06-14 20:35:53:233] <4819> Encrypt End +INFO [2017-06-14 20:35:53:233] <4819> Encrypt Start +INFO [2017-06-14 20:35:53:233] <4819> Encrypt End +INFO [2017-06-14 20:35:53:233] <4819> Encrypt Start +INFO [2017-06-14 20:35:53:233] <4819> Encrypt End +INFO [2017-06-14 20:35:53:234] <4819> Encrypt Start +INFO [2017-06-14 20:35:53:234] <4819> Encrypt End +INFO [2017-06-14 20:35:53:234] <4819> card-visa3d Make MSG OK +INFO [2017-06-14 20:35:53:234] <4819> Make Msg End +INFO [2017-06-14 20:35:53:234] <4819> Make Pay Msg OK +INFO [2017-06-14 20:35:53:234] <4819> Send & Recv Msg Start +INFO [2017-06-14 20:35:53:234] <4819> Send Data To PG Start [ +INFO [2017-06-14 20:35:53:234] <4819> 0:0003740plug15 +INFO [2017-06-14 20:35:53:234] <4819> 1:womenscare +INFO [2017-06-14 20:35:53:234] <4819> 2:test +INFO [2017-06-14 20:35:53:234] <4819> 3:4000 +INFO [2017-06-14 20:35:53:234] <4819> 4:20170614203522T15591 +INFO [2017-06-14 20:35:53:234] <4819> 5:9000400001 +INFO [2017-06-14 20:35:53:234] <4819> 6:9400179197701190 +INFO [2017-06-14 20:35:53:234] <4819> 7:283587 +INFO [2017-06-14 20:35:53:234] <4819> 8:00 +INFO [2017-06-14 20:35:53:234] <4819> 9:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 20:35:53:234] <4819> 10: +INFO [2017-06-14 20:35:53:234] <4819> 11: +INFO [2017-06-14 20:35:53:234] <4819> 12:test +INFO [2017-06-14 20:35:53:234] <4819> 13:02-123-1234 +INFO [2017-06-14 20:35:53:234] <4819> 14:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:35:53:234] <4819> 15:테스트아이디 +INFO [2017-06-14 20:35:53:234] <4819> 16:211.243.232.13;02-123-1234 +INFO [2017-06-14 20:35:53:234] <4819> 17:test@naver.com; +INFO [2017-06-14 20:35:53:234] <4819> 18:테스트 +INFO [2017-06-14 20:35:53:234] <4819> 19:AAABBYBpNiAXBhQgNWk2AAAAMRc= +INFO [2017-06-14 20:35:53:234] <4819> 20:MjAxNzA2MTQyMDM1NDE2ODkxMjA= +INFO [2017-06-14 20:35:53:234] <4819> 21:05 +INFO [2017-06-14 20:35:53:234] <4819> 22:test@naver.com +INFO [2017-06-14 20:35:53:234] <4819> 23:AEGIS_VISAwomenscare_20170614203553233486 +INFO [2017-06-14 20:35:53:234] <4819> 24: +INFO [2017-06-14 20:35:53:234] <4819> ] Send Data To PG End +INFO [2017-06-14 20:35:53:234] <4819> SendMsg : [0003740plug15|womenscare|test|4000|20170614203522T15591|9000400001|9400179197701190|283587|00|N;211.243.232.13;N;;4000;;;;;|||test|02-123-1234|서울 관악구 난향길 5 (신림동)123456|테스트아이디|211.243.232.13;02-123-1234|test@naver.com;|테스트|AAABBYBpNiAXBhQgNWk2AAAAMRc=|MjAxNzA2MTQyMDM1NDE2ODkxMjA=|05|test@naver.com|AEGIS_VISAwomenscare_20170614203553233486|] +INFO [2017-06-14 20:35:53:234] <4819> Connect IP:[121.133.126.1] Port:[29760] +INFO [2017-06-14 20:35:53:237] <4819> Socket Open OK +INFO [2017-06-14 20:35:53:852] <4819> RecvMsg Length : [000112] +INFO [2017-06-14 20:35:53:852] <4819> RecvMsg : [womenscare|0610|20170614203522T15591| |000000004000|n|83-īȭ||20170614203557|0500||0||541035| +] +INFO [2017-06-14 20:35:53:852] <4819> Socket Close OK +INFO [2017-06-14 20:35:53:852] <4819> RecvMsg Length Check OK +INFO [2017-06-14 20:35:53:852] <4819> Send & Recv Msg End +INFO [2017-06-14 20:35:53:852] <4819> Send & Recv Msg OK +INFO [2017-06-14 20:35:53:852] <4819> Parse Msg Start +INFO [2017-06-14 20:35:53:852] <4819> card-visa3d RECV MSG Parsing OK +INFO [2017-06-14 20:35:53:852] <4819> Parse Msg End +INFO [2017-06-14 20:35:53:852] <4819> Msg Parsing OK +INFO [2017-06-14 20:35:53:852] <4819> card Pay Result Value [ +INFO [2017-06-14 20:35:53:853] <4819> NetCancID:AEGIS_VISAwomenscare_20170614203553233486 +INFO [2017-06-14 20:35:53:853] <4819> rStoreId:womenscare +INFO [2017-06-14 20:35:53:853] <4819> rBusiCd:0610 +INFO [2017-06-14 20:35:53:853] <4819> rOrdNo:20170614203522T15591 +INFO [2017-06-14 20:35:53:853] <4819> rApprNo: +INFO [2017-06-14 20:35:53:853] <4819> rInstmt:00 +INFO [2017-06-14 20:35:53:853] <4819> rAmt:000000004000 +INFO [2017-06-14 20:35:53:853] <4819> rSuccYn:n +INFO [2017-06-14 20:35:53:853] <4819> rResMsg:83-īȭ +INFO [2017-06-14 20:35:53:853] <4819> rCardNm: +INFO [2017-06-14 20:35:53:853] <4819> rApprTm:20170614203557 +INFO [2017-06-14 20:35:53:853] <4819> rCardCd:0500 +INFO [2017-06-14 20:35:53:853] <4819> rMembNo: +INFO [2017-06-14 20:35:53:853] <4819> rAquiCd:0 +INFO [2017-06-14 20:35:53:854] <4819> rAquiNm: +INFO [2017-06-14 20:35:53:854] <4819> rDealNo:541035 +INFO [2017-06-14 20:35:53:854] <4819> rProdNm:테스트 +INFO [2017-06-14 20:35:53:854] <4819> ] +INFO [2017-06-14 20:35:53:854] <4819> END 83-īȭ Transaction time:[0.62sec] +INFO [2017-06-14 20:35:53:854] <4819> =============================================================== +INFO [2017-06-14 20:39:26:993] <4893> =============================================================== +INFO [2017-06-14 20:39:26:993] <4893> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.14) +INFO [2017-06-14 20:39:26:993] <4893> card Pay Start! +INFO [2017-06-14 20:39:26:993] <4893> AgsPayHome:/home/igrowlaser/www2/module/shop/pg/agspay +INFO [2017-06-14 20:39:26:993] <4893> StoreId:womenscare +INFO [2017-06-14 20:39:26:993] <4893> log:true +INFO [2017-06-14 20:39:26:993] <4893> logLevel:INFO +INFO [2017-06-14 20:39:26:993] <4893> UseNetCancel:true +INFO [2017-06-14 20:39:26:993] <4893> Type:Pay +INFO [2017-06-14 20:39:26:993] <4893> RecvLen:7 +INFO [2017-06-14 20:39:26:993] <4893> AuthTy:card +INFO [2017-06-14 20:39:26:994] <4893> SubTy:visa3d +INFO [2017-06-14 20:39:26:994] <4893> OrdNo:20170614203857T60276 +INFO [2017-06-14 20:39:26:994] <4893> Amt:4000 +INFO [2017-06-14 20:39:26:994] <4893> UserEmail:test@naver.com +INFO [2017-06-14 20:39:26:994] <4893> ProdNm:테스트 +INFO [2017-06-14 20:39:26:994] <4893> MallUrl:http://igrowlaser.phpweb.co.kr +INFO [2017-06-14 20:39:26:994] <4893> UserId:test +INFO [2017-06-14 20:39:26:994] <4893> OrdNm:테스트아이디 +INFO [2017-06-14 20:39:26:994] <4893> OrdPhone:02-123-1234 +INFO [2017-06-14 20:39:26:994] <4893> OrdAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:39:26:994] <4893> RcpNm:test +INFO [2017-06-14 20:39:26:994] <4893> RcpPhone:02-123-1234 +INFO [2017-06-14 20:39:26:994] <4893> DlvAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:39:26:994] <4893> Remark: +INFO [2017-06-14 20:39:26:994] <4893> DeviId:9000400001 +INFO [2017-06-14 20:39:26:994] <4893> AuthYn:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 20:39:26:994] <4893> Instmt:00 +INFO [2017-06-14 20:39:26:994] <4893> UserIp:211.243.232.13 +INFO [2017-06-14 20:39:26:994] <4893> partial_mm: +INFO [2017-06-14 20:39:26:994] <4893> noIntMonth: +INFO [2017-06-14 20:39:26:994] <4893> KVP_CURRENCY:WON +INFO [2017-06-14 20:39:26:995] <4893> KVP_CARDCODE: +INFO [2017-06-14 20:39:26:995] <4893> KVP_SESSIONKEY: +INFO [2017-06-14 20:39:26:995] <4893> KVP_ENCDATA: +INFO [2017-06-14 20:39:26:995] <4893> KVP_CONAME: +INFO [2017-06-14 20:39:26:995] <4893> KVP_NOINT: +INFO [2017-06-14 20:39:26:995] <4893> KVP_QUOTA: +INFO [2017-06-14 20:39:26:995] <4893> CardNo:5107374327239679 +INFO [2017-06-14 20:39:26:995] <4893> MPI_CAVV:AAABBGRpdCAXBhQgOWl0AAAAMRc= +INFO [2017-06-14 20:39:26:995] <4893> MPI_ECI:05 +INFO [2017-06-14 20:39:26:995] <4893> MPI_MD64:MjAxNzA2MTQyMDM5MTY5MDMxMjA= +INFO [2017-06-14 20:39:26:995] <4893> ExpMon:12 +INFO [2017-06-14 20:39:26:995] <4893> ExpYear:2049 +INFO [2017-06-14 20:39:26:995] <4893> Passwd: +INFO [2017-06-14 20:39:26:995] <4893> SocId: +INFO [2017-06-14 20:39:26:995] <4893> ICHE_OUTBANKNAME: +INFO [2017-06-14 20:39:26:995] <4893> ICHE_OUTACCTNO: +INFO [2017-06-14 20:39:26:995] <4893> ICHE_OUTBANKMASTER: +INFO [2017-06-14 20:39:26:995] <4893> ICHE_AMOUNT: +INFO [2017-06-14 20:39:26:995] <4893> HP_SERVERINFO: +INFO [2017-06-14 20:39:26:995] <4893> HP_HANDPHONE: +INFO [2017-06-14 20:39:26:995] <4893> HP_COMPANY: +INFO [2017-06-14 20:39:26:995] <4893> HP_ID: +INFO [2017-06-14 20:39:26:996] <4893> HP_SUBID: +INFO [2017-06-14 20:39:26:996] <4893> HP_UNITType: +INFO [2017-06-14 20:39:26:996] <4893> HP_IDEN: +INFO [2017-06-14 20:39:26:996] <4893> HP_IPADDR: +INFO [2017-06-14 20:39:26:996] <4893> ARS_NAME: +INFO [2017-06-14 20:39:26:996] <4893> ARS_PHONE: +INFO [2017-06-14 20:39:26:996] <4893> VIRTUAL_CENTERCD:99 +INFO [2017-06-14 20:39:26:996] <4893> VIRTUAL_DEPODT: +INFO [2017-06-14 20:39:26:996] <4893> ZuminCode: +INFO [2017-06-14 20:39:26:996] <4893> MallPage:/shop.php?goPage=PayCard&order_no=20170614203857T60276 +INFO [2017-06-14 20:39:26:996] <4893> VIRTUAL_NO: +INFO [2017-06-14 20:39:26:996] <4893> ES_SENDNO: +INFO [2017-06-14 20:39:26:996] <4893> ICHE_SOCKETYN:Y +INFO [2017-06-14 20:39:26:996] <4893> ICHE_POSMTID: +INFO [2017-06-14 20:39:26:996] <4893> ICHE_FNBCMTID: +INFO [2017-06-14 20:39:26:996] <4893> ICHE_APTRTS: +INFO [2017-06-14 20:39:26:996] <4893> ICHE_REMARK1: +INFO [2017-06-14 20:39:26:996] <4893> ICHE_REMARK2: +INFO [2017-06-14 20:39:26:996] <4893> ICHE_ECWYN: +INFO [2017-06-14 20:39:26:996] <4893> ICHE_ECWID: +INFO [2017-06-14 20:39:26:996] <4893> ICHE_ECWAMT1: +INFO [2017-06-14 20:39:26:996] <4893> ICHE_ECWAMT2: +INFO [2017-06-14 20:39:26:997] <4893> ICHE_CASHYN:N +INFO [2017-06-14 20:39:26:997] <4893> ICHE_CASHGUBUN_CD: +INFO [2017-06-14 20:39:26:997] <4893> ICHE_CASHID_NO: +INFO [2017-06-14 20:39:26:997] <4893> ICHEARS_SOCKETYN: +INFO [2017-06-14 20:39:26:997] <4893> ICHEARS_ADMNO: +INFO [2017-06-14 20:39:26:997] <4893> ICHEARS_POSMTID: +INFO [2017-06-14 20:39:26:997] <4893> ICHEARS_CENTERCD: +INFO [2017-06-14 20:39:26:997] <4893> ICHEARS_HPNO: +INFO [2017-06-14 20:39:26:997] <4893> Make NetCancel ID Start +INFO [2017-06-14 20:39:26:997] <4893> AEGIS_VISAwomenscare_20170614203926997161 +INFO [2017-06-14 20:39:26:997] <4893> Make NetCancel ID End +INFO [2017-06-14 20:39:26:997] <4893> Make NetCancelID OK +INFO [2017-06-14 20:39:26:997] <4893> Make Msg Start +INFO [2017-06-14 20:39:26:997] <4893> Encrypt Start +INFO [2017-06-14 20:39:26:997] <4893> Encrypt End +INFO [2017-06-14 20:39:26:997] <4893> Encrypt Start +INFO [2017-06-14 20:39:26:997] <4893> Encrypt End +INFO [2017-06-14 20:39:26:997] <4893> Encrypt Start +INFO [2017-06-14 20:39:26:997] <4893> Encrypt End +INFO [2017-06-14 20:39:26:998] <4893> Encrypt Start +INFO [2017-06-14 20:39:26:998] <4893> Encrypt End +INFO [2017-06-14 20:39:26:998] <4893> card-visa3d Make MSG OK +INFO [2017-06-14 20:39:26:998] <4893> Make Msg End +INFO [2017-06-14 20:39:26:998] <4893> Make Pay Msg OK +INFO [2017-06-14 20:39:26:998] <4893> Send & Recv Msg Start +INFO [2017-06-14 20:39:26:998] <4893> Send Data To PG Start [ +INFO [2017-06-14 20:39:26:998] <4893> 0:0003740plug15 +INFO [2017-06-14 20:39:26:998] <4893> 1:womenscare +INFO [2017-06-14 20:39:26:998] <4893> 2:test +INFO [2017-06-14 20:39:26:998] <4893> 3:4000 +INFO [2017-06-14 20:39:26:998] <4893> 4:20170614203857T60276 +INFO [2017-06-14 20:39:26:998] <4893> 5:9000400001 +INFO [2017-06-14 20:39:26:998] <4893> 6:9400179197701190 +INFO [2017-06-14 20:39:26:998] <4893> 7:283587 +INFO [2017-06-14 20:39:26:998] <4893> 8:00 +INFO [2017-06-14 20:39:26:998] <4893> 9:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 20:39:26:998] <4893> 10: +INFO [2017-06-14 20:39:26:998] <4893> 11: +INFO [2017-06-14 20:39:26:998] <4893> 12:test +INFO [2017-06-14 20:39:26:998] <4893> 13:02-123-1234 +INFO [2017-06-14 20:39:26:998] <4893> 14:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:39:26:998] <4893> 15:테스트아이디 +INFO [2017-06-14 20:39:26:998] <4893> 16:211.243.232.13;02-123-1234 +INFO [2017-06-14 20:39:26:998] <4893> 17:test@naver.com; +INFO [2017-06-14 20:39:26:998] <4893> 18:테스트 +INFO [2017-06-14 20:39:26:998] <4893> 19:AAABBGRpdCAXBhQgOWl0AAAAMRc= +INFO [2017-06-14 20:39:26:998] <4893> 20:MjAxNzA2MTQyMDM5MTY5MDMxMjA= +INFO [2017-06-14 20:39:26:998] <4893> 21:05 +INFO [2017-06-14 20:39:26:998] <4893> 22:test@naver.com +INFO [2017-06-14 20:39:26:998] <4893> 23:AEGIS_VISAwomenscare_20170614203926997161 +INFO [2017-06-14 20:39:26:998] <4893> 24: +INFO [2017-06-14 20:39:26:998] <4893> ] Send Data To PG End +INFO [2017-06-14 20:39:26:998] <4893> SendMsg : [0003740plug15|womenscare|test|4000|20170614203857T60276|9000400001|9400179197701190|283587|00|N;211.243.232.13;N;;4000;;;;;|||test|02-123-1234|서울 관악구 난향길 5 (신림동)123456|테스트아이디|211.243.232.13;02-123-1234|test@naver.com;|테스트|AAABBGRpdCAXBhQgOWl0AAAAMRc=|MjAxNzA2MTQyMDM5MTY5MDMxMjA=|05|test@naver.com|AEGIS_VISAwomenscare_20170614203926997161|] +INFO [2017-06-14 20:39:26:998] <4893> Connect IP:[121.133.126.1] Port:[29760] +INFO [2017-06-14 20:39:27:1] <4893> Socket Open OK +INFO [2017-06-14 20:39:27:577] <4893> RecvMsg Length : [000112] +INFO [2017-06-14 20:39:27:577] <4893> RecvMsg : [womenscare|0610|20170614203857T60276| |000000004000|n|83-īȭ||20170614203931|0500||0||541226| +] +INFO [2017-06-14 20:39:27:577] <4893> Socket Close OK +INFO [2017-06-14 20:39:27:577] <4893> RecvMsg Length Check OK +INFO [2017-06-14 20:39:27:577] <4893> Send & Recv Msg End +INFO [2017-06-14 20:39:27:577] <4893> Send & Recv Msg OK +INFO [2017-06-14 20:39:27:578] <4893> Parse Msg Start +INFO [2017-06-14 20:39:27:578] <4893> card-visa3d RECV MSG Parsing OK +INFO [2017-06-14 20:39:27:578] <4893> Parse Msg End +INFO [2017-06-14 20:39:27:578] <4893> Msg Parsing OK +INFO [2017-06-14 20:39:27:578] <4893> card Pay Result Value [ +INFO [2017-06-14 20:39:27:578] <4893> NetCancID:AEGIS_VISAwomenscare_20170614203926997161 +INFO [2017-06-14 20:39:27:578] <4893> rStoreId:womenscare +INFO [2017-06-14 20:39:27:578] <4893> rBusiCd:0610 +INFO [2017-06-14 20:39:27:578] <4893> rOrdNo:20170614203857T60276 +INFO [2017-06-14 20:39:27:578] <4893> rApprNo: +INFO [2017-06-14 20:39:27:578] <4893> rInstmt:00 +INFO [2017-06-14 20:39:27:578] <4893> rAmt:000000004000 +INFO [2017-06-14 20:39:27:578] <4893> rSuccYn:n +INFO [2017-06-14 20:39:27:578] <4893> rResMsg:83-īȭ +INFO [2017-06-14 20:39:27:578] <4893> rCardNm: +INFO [2017-06-14 20:39:27:578] <4893> rApprTm:20170614203931 +INFO [2017-06-14 20:39:27:578] <4893> rCardCd:0500 +INFO [2017-06-14 20:39:27:578] <4893> rMembNo: +INFO [2017-06-14 20:39:27:578] <4893> rAquiCd:0 +INFO [2017-06-14 20:39:27:578] <4893> rAquiNm: +INFO [2017-06-14 20:39:27:578] <4893> rDealNo:541226 +INFO [2017-06-14 20:39:27:579] <4893> rProdNm:테스트 +INFO [2017-06-14 20:39:27:579] <4893> ] +INFO [2017-06-14 20:39:27:579] <4893> END 83-īȭ Transaction time:[0.59sec] +INFO [2017-06-14 20:39:27:579] <4893> =============================================================== +INFO [2017-06-14 20:45:53:765] <4912> =============================================================== +INFO [2017-06-14 20:45:53:765] <4912> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.14) +INFO [2017-06-14 20:45:53:765] <4912> card Pay Start! +INFO [2017-06-14 20:45:53:765] <4912> AgsPayHome:/home/igrowlaser/www2/module/shop/pg/agspay +INFO [2017-06-14 20:45:53:765] <4912> StoreId:womenscare +INFO [2017-06-14 20:45:53:765] <4912> log:true +INFO [2017-06-14 20:45:53:765] <4912> logLevel:INFO +INFO [2017-06-14 20:45:53:765] <4912> UseNetCancel:true +INFO [2017-06-14 20:45:53:765] <4912> Type:Pay +INFO [2017-06-14 20:45:53:766] <4912> RecvLen:7 +INFO [2017-06-14 20:45:53:766] <4912> AuthTy:card +INFO [2017-06-14 20:45:53:766] <4912> SubTy:visa3d +INFO [2017-06-14 20:45:53:766] <4912> OrdNo:20170614204524T39984 +INFO [2017-06-14 20:45:53:766] <4912> Amt:4000 +INFO [2017-06-14 20:45:53:766] <4912> UserEmail:test@naver.com +INFO [2017-06-14 20:45:53:766] <4912> ProdNm:테스트 +INFO [2017-06-14 20:45:53:766] <4912> MallUrl:http://igrowlaser.phpweb.co.kr +INFO [2017-06-14 20:45:53:766] <4912> UserId:test +INFO [2017-06-14 20:45:53:766] <4912> OrdNm:테스트아이디 +INFO [2017-06-14 20:45:53:766] <4912> OrdPhone:02-123-1234 +INFO [2017-06-14 20:45:53:766] <4912> OrdAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:45:53:766] <4912> RcpNm:test +INFO [2017-06-14 20:45:53:766] <4912> RcpPhone:02-123-1234 +INFO [2017-06-14 20:45:53:766] <4912> DlvAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:45:53:766] <4912> Remark: +INFO [2017-06-14 20:45:53:766] <4912> DeviId:9000400001 +INFO [2017-06-14 20:45:53:766] <4912> AuthYn:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 20:45:53:766] <4912> Instmt:00 +INFO [2017-06-14 20:45:53:766] <4912> UserIp:211.243.232.13 +INFO [2017-06-14 20:45:53:766] <4912> partial_mm: +INFO [2017-06-14 20:45:53:766] <4912> noIntMonth: +INFO [2017-06-14 20:45:53:767] <4912> KVP_CURRENCY:WON +INFO [2017-06-14 20:45:53:767] <4912> KVP_CARDCODE: +INFO [2017-06-14 20:45:53:767] <4912> KVP_SESSIONKEY: +INFO [2017-06-14 20:45:53:767] <4912> KVP_ENCDATA: +INFO [2017-06-14 20:45:53:767] <4912> KVP_CONAME: +INFO [2017-06-14 20:45:53:767] <4912> KVP_NOINT: +INFO [2017-06-14 20:45:53:767] <4912> KVP_QUOTA: +INFO [2017-06-14 20:45:53:767] <4912> CardNo:5107374327239679 +INFO [2017-06-14 20:45:53:767] <4912> MPI_CAVV:AAABAHl4OCAXBhQgRXg4AAAAMRc= +INFO [2017-06-14 20:45:53:767] <4912> MPI_ECI:05 +INFO [2017-06-14 20:45:53:767] <4912> MPI_MD64:MjAxNzA2MTQyMDQ1NDM2MDAxMjA= +INFO [2017-06-14 20:45:53:767] <4912> ExpMon:12 +INFO [2017-06-14 20:45:53:767] <4912> ExpYear:2049 +INFO [2017-06-14 20:45:53:767] <4912> Passwd: +INFO [2017-06-14 20:45:53:767] <4912> SocId: +INFO [2017-06-14 20:45:53:767] <4912> ICHE_OUTBANKNAME: +INFO [2017-06-14 20:45:53:767] <4912> ICHE_OUTACCTNO: +INFO [2017-06-14 20:45:53:767] <4912> ICHE_OUTBANKMASTER: +INFO [2017-06-14 20:45:53:767] <4912> ICHE_AMOUNT: +INFO [2017-06-14 20:45:53:767] <4912> HP_SERVERINFO: +INFO [2017-06-14 20:45:53:767] <4912> HP_HANDPHONE: +INFO [2017-06-14 20:45:53:767] <4912> HP_COMPANY: +INFO [2017-06-14 20:45:53:768] <4912> HP_ID: +INFO [2017-06-14 20:45:53:768] <4912> HP_SUBID: +INFO [2017-06-14 20:45:53:768] <4912> HP_UNITType: +INFO [2017-06-14 20:45:53:768] <4912> HP_IDEN: +INFO [2017-06-14 20:45:53:768] <4912> HP_IPADDR: +INFO [2017-06-14 20:45:53:768] <4912> ARS_NAME: +INFO [2017-06-14 20:45:53:768] <4912> ARS_PHONE: +INFO [2017-06-14 20:45:53:768] <4912> VIRTUAL_CENTERCD:99 +INFO [2017-06-14 20:45:53:768] <4912> VIRTUAL_DEPODT: +INFO [2017-06-14 20:45:53:768] <4912> ZuminCode: +INFO [2017-06-14 20:45:53:768] <4912> MallPage:/shop.php?goPage=PayCard&order_no=20170614204524T39984 +INFO [2017-06-14 20:45:53:768] <4912> VIRTUAL_NO: +INFO [2017-06-14 20:45:53:768] <4912> ES_SENDNO: +INFO [2017-06-14 20:45:53:768] <4912> ICHE_SOCKETYN:Y +INFO [2017-06-14 20:45:53:768] <4912> ICHE_POSMTID: +INFO [2017-06-14 20:45:53:768] <4912> ICHE_FNBCMTID: +INFO [2017-06-14 20:45:53:768] <4912> ICHE_APTRTS: +INFO [2017-06-14 20:45:53:768] <4912> ICHE_REMARK1: +INFO [2017-06-14 20:45:53:768] <4912> ICHE_REMARK2: +INFO [2017-06-14 20:45:53:768] <4912> ICHE_ECWYN: +INFO [2017-06-14 20:45:53:768] <4912> ICHE_ECWID: +INFO [2017-06-14 20:45:53:768] <4912> ICHE_ECWAMT1: +INFO [2017-06-14 20:45:53:769] <4912> ICHE_ECWAMT2: +INFO [2017-06-14 20:45:53:769] <4912> ICHE_CASHYN:N +INFO [2017-06-14 20:45:53:769] <4912> ICHE_CASHGUBUN_CD: +INFO [2017-06-14 20:45:53:769] <4912> ICHE_CASHID_NO: +INFO [2017-06-14 20:45:53:769] <4912> ICHEARS_SOCKETYN: +INFO [2017-06-14 20:45:53:769] <4912> ICHEARS_ADMNO: +INFO [2017-06-14 20:45:53:769] <4912> ICHEARS_POSMTID: +INFO [2017-06-14 20:45:53:769] <4912> ICHEARS_CENTERCD: +INFO [2017-06-14 20:45:53:769] <4912> ICHEARS_HPNO: +INFO [2017-06-14 20:45:53:769] <4912> Make NetCancel ID Start +INFO [2017-06-14 20:45:53:769] <4912> AEGIS_VISAwomenscare_20170614204553769980 +INFO [2017-06-14 20:45:53:769] <4912> Make NetCancel ID End +INFO [2017-06-14 20:45:53:769] <4912> Make NetCancelID OK +INFO [2017-06-14 20:45:53:769] <4912> Make Msg Start +INFO [2017-06-14 20:45:53:769] <4912> Encrypt Start +INFO [2017-06-14 20:45:53:769] <4912> Encrypt End +INFO [2017-06-14 20:45:53:769] <4912> Encrypt Start +INFO [2017-06-14 20:45:53:769] <4912> Encrypt End +INFO [2017-06-14 20:45:53:769] <4912> Encrypt Start +INFO [2017-06-14 20:45:53:769] <4912> Encrypt End +INFO [2017-06-14 20:45:53:770] <4912> Encrypt Start +INFO [2017-06-14 20:45:53:770] <4912> Encrypt End +INFO [2017-06-14 20:45:53:770] <4912> card-visa3d Make MSG OK +INFO [2017-06-14 20:45:53:770] <4912> Make Msg End +INFO [2017-06-14 20:45:53:770] <4912> Make Pay Msg OK +INFO [2017-06-14 20:45:53:770] <4912> Send & Recv Msg Start +INFO [2017-06-14 20:45:53:770] <4912> Send Data To PG Start [ +INFO [2017-06-14 20:45:53:770] <4912> 0:0003740plug15 +INFO [2017-06-14 20:45:53:770] <4912> 1:womenscare +INFO [2017-06-14 20:45:53:770] <4912> 2:test +INFO [2017-06-14 20:45:53:770] <4912> 3:4000 +INFO [2017-06-14 20:45:53:770] <4912> 4:20170614204524T39984 +INFO [2017-06-14 20:45:53:770] <4912> 5:9000400001 +INFO [2017-06-14 20:45:53:770] <4912> 6:9400179197701190 +INFO [2017-06-14 20:45:53:770] <4912> 7:283587 +INFO [2017-06-14 20:45:53:770] <4912> 8:00 +INFO [2017-06-14 20:45:53:770] <4912> 9:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 20:45:53:770] <4912> 10: +INFO [2017-06-14 20:45:53:770] <4912> 11: +INFO [2017-06-14 20:45:53:770] <4912> 12:test +INFO [2017-06-14 20:45:53:770] <4912> 13:02-123-1234 +INFO [2017-06-14 20:45:53:770] <4912> 14:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:45:53:770] <4912> 15:테스트아이디 +INFO [2017-06-14 20:45:53:770] <4912> 16:211.243.232.13;02-123-1234 +INFO [2017-06-14 20:45:53:770] <4912> 17:test@naver.com; +INFO [2017-06-14 20:45:53:770] <4912> 18:테스트 +INFO [2017-06-14 20:45:53:770] <4912> 19:AAABAHl4OCAXBhQgRXg4AAAAMRc= +INFO [2017-06-14 20:45:53:770] <4912> 20:MjAxNzA2MTQyMDQ1NDM2MDAxMjA= +INFO [2017-06-14 20:45:53:770] <4912> 21:05 +INFO [2017-06-14 20:45:53:770] <4912> 22:test@naver.com +INFO [2017-06-14 20:45:53:770] <4912> 23:AEGIS_VISAwomenscare_20170614204553769980 +INFO [2017-06-14 20:45:53:770] <4912> 24: +INFO [2017-06-14 20:45:53:770] <4912> ] Send Data To PG End +INFO [2017-06-14 20:45:53:770] <4912> SendMsg : [0003740plug15|womenscare|test|4000|20170614204524T39984|9000400001|9400179197701190|283587|00|N;211.243.232.13;N;;4000;;;;;|||test|02-123-1234|서울 관악구 난향길 5 (신림동)123456|테스트아이디|211.243.232.13;02-123-1234|test@naver.com;|테스트|AAABAHl4OCAXBhQgRXg4AAAAMRc=|MjAxNzA2MTQyMDQ1NDM2MDAxMjA=|05|test@naver.com|AEGIS_VISAwomenscare_20170614204553769980|] +INFO [2017-06-14 20:45:53:770] <4912> Connect IP:[121.133.126.1] Port:[29760] +INFO [2017-06-14 20:45:53:773] <4912> Socket Open OK +INFO [2017-06-14 20:45:54:406] <4912> RecvMsg Length : [000112] +INFO [2017-06-14 20:45:54:406] <4912> RecvMsg : [womenscare|0610|20170614204524T39984| |000000004000|n|83-īȭ||20170614204558|0500||0||541596| +] +INFO [2017-06-14 20:45:54:406] <4912> Socket Close OK +INFO [2017-06-14 20:45:54:406] <4912> RecvMsg Length Check OK +INFO [2017-06-14 20:45:54:406] <4912> Send & Recv Msg End +INFO [2017-06-14 20:45:54:406] <4912> Send & Recv Msg OK +INFO [2017-06-14 20:45:54:407] <4912> Parse Msg Start +INFO [2017-06-14 20:45:54:407] <4912> card-visa3d RECV MSG Parsing OK +INFO [2017-06-14 20:45:54:407] <4912> Parse Msg End +INFO [2017-06-14 20:45:54:407] <4912> Msg Parsing OK +INFO [2017-06-14 20:45:54:407] <4912> card Pay Result Value [ +INFO [2017-06-14 20:45:54:407] <4912> NetCancID:AEGIS_VISAwomenscare_20170614204553769980 +INFO [2017-06-14 20:45:54:407] <4912> rStoreId:womenscare +INFO [2017-06-14 20:45:54:407] <4912> rBusiCd:0610 +INFO [2017-06-14 20:45:54:407] <4912> rOrdNo:20170614204524T39984 +INFO [2017-06-14 20:45:54:407] <4912> rApprNo: +INFO [2017-06-14 20:45:54:407] <4912> rInstmt:00 +INFO [2017-06-14 20:45:54:407] <4912> rAmt:000000004000 +INFO [2017-06-14 20:45:54:407] <4912> rSuccYn:n +INFO [2017-06-14 20:45:54:407] <4912> rResMsg:83-īȭ +INFO [2017-06-14 20:45:54:407] <4912> rCardNm: +INFO [2017-06-14 20:45:54:407] <4912> rApprTm:20170614204558 +INFO [2017-06-14 20:45:54:407] <4912> rCardCd:0500 +INFO [2017-06-14 20:45:54:407] <4912> rMembNo: +INFO [2017-06-14 20:45:54:407] <4912> rAquiCd:0 +INFO [2017-06-14 20:45:54:407] <4912> rAquiNm: +INFO [2017-06-14 20:45:54:407] <4912> rDealNo:541596 +INFO [2017-06-14 20:45:54:407] <4912> rProdNm:테스트 +INFO [2017-06-14 20:45:54:408] <4912> ] +INFO [2017-06-14 20:45:54:408] <4912> END 83-īȭ Transaction time:[0.64sec] +INFO [2017-06-14 20:45:54:408] <4912> =============================================================== +INFO [2017-06-14 20:51:14:845] <4938> =============================================================== +INFO [2017-06-14 20:51:14:845] <4938> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.14) +INFO [2017-06-14 20:51:14:845] <4938> card Pay Start! +INFO [2017-06-14 20:51:14:845] <4938> AgsPayHome:/home/igrowlaser/www2/module/shop/pg/agspay +INFO [2017-06-14 20:51:14:846] <4938> StoreId:womenscare +INFO [2017-06-14 20:51:14:846] <4938> log:true +INFO [2017-06-14 20:51:14:846] <4938> logLevel:INFO +INFO [2017-06-14 20:51:14:846] <4938> UseNetCancel:true +INFO [2017-06-14 20:51:14:846] <4938> Type:Pay +INFO [2017-06-14 20:51:14:846] <4938> RecvLen:7 +INFO [2017-06-14 20:51:14:846] <4938> AuthTy:card +INFO [2017-06-14 20:51:14:846] <4938> SubTy:visa3d +INFO [2017-06-14 20:51:14:846] <4938> OrdNo:20170614205044T16546 +INFO [2017-06-14 20:51:14:846] <4938> Amt:4000 +INFO [2017-06-14 20:51:14:846] <4938> UserEmail:test@naver.com +INFO [2017-06-14 20:51:14:846] <4938> ProdNm:테스트 +INFO [2017-06-14 20:51:14:846] <4938> MallUrl:http://igrowlaser.phpweb.co.kr +INFO [2017-06-14 20:51:14:846] <4938> UserId:test +INFO [2017-06-14 20:51:14:846] <4938> OrdNm:테스트아이디 +INFO [2017-06-14 20:51:14:846] <4938> OrdPhone:02-123-1234 +INFO [2017-06-14 20:51:14:846] <4938> OrdAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:51:14:846] <4938> RcpNm:test +INFO [2017-06-14 20:51:14:846] <4938> RcpPhone:02-123-1234 +INFO [2017-06-14 20:51:14:846] <4938> DlvAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:51:14:846] <4938> Remark: +INFO [2017-06-14 20:51:14:846] <4938> DeviId:9000400001 +INFO [2017-06-14 20:51:14:847] <4938> AuthYn:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 20:51:14:847] <4938> Instmt:00 +INFO [2017-06-14 20:51:14:847] <4938> UserIp:211.243.232.13 +INFO [2017-06-14 20:51:14:847] <4938> partial_mm: +INFO [2017-06-14 20:51:14:847] <4938> noIntMonth: +INFO [2017-06-14 20:51:14:847] <4938> KVP_CURRENCY:WON +INFO [2017-06-14 20:51:14:847] <4938> KVP_CARDCODE: +INFO [2017-06-14 20:51:14:847] <4938> KVP_SESSIONKEY: +INFO [2017-06-14 20:51:14:847] <4938> KVP_ENCDATA: +INFO [2017-06-14 20:51:14:847] <4938> KVP_CONAME: +INFO [2017-06-14 20:51:14:847] <4938> KVP_NOINT: +INFO [2017-06-14 20:51:14:847] <4938> KVP_QUOTA: +INFO [2017-06-14 20:51:14:847] <4938> CardNo:5107374327239679 +INFO [2017-06-14 20:51:14:847] <4938> MPI_CAVV:AAABAwd1gCAXBhQgUXWAAAAAMRc= +INFO [2017-06-14 20:51:14:847] <4938> MPI_ECI:05 +INFO [2017-06-14 20:51:14:847] <4938> MPI_MD64:MjAxNzA2MTQyMDUxMDA4MzcxMjA= +INFO [2017-06-14 20:51:14:847] <4938> ExpMon:12 +INFO [2017-06-14 20:51:14:847] <4938> ExpYear:2049 +INFO [2017-06-14 20:51:14:847] <4938> Passwd: +INFO [2017-06-14 20:51:14:847] <4938> SocId: +INFO [2017-06-14 20:51:14:847] <4938> ICHE_OUTBANKNAME: +INFO [2017-06-14 20:51:14:847] <4938> ICHE_OUTACCTNO: +INFO [2017-06-14 20:51:14:848] <4938> ICHE_OUTBANKMASTER: +INFO [2017-06-14 20:51:14:848] <4938> ICHE_AMOUNT: +INFO [2017-06-14 20:51:14:848] <4938> HP_SERVERINFO: +INFO [2017-06-14 20:51:14:848] <4938> HP_HANDPHONE: +INFO [2017-06-14 20:51:14:848] <4938> HP_COMPANY: +INFO [2017-06-14 20:51:14:848] <4938> HP_ID: +INFO [2017-06-14 20:51:14:848] <4938> HP_SUBID: +INFO [2017-06-14 20:51:14:848] <4938> HP_UNITType: +INFO [2017-06-14 20:51:14:848] <4938> HP_IDEN: +INFO [2017-06-14 20:51:14:848] <4938> HP_IPADDR: +INFO [2017-06-14 20:51:14:848] <4938> ARS_NAME: +INFO [2017-06-14 20:51:14:848] <4938> ARS_PHONE: +INFO [2017-06-14 20:51:14:848] <4938> VIRTUAL_CENTERCD:99 +INFO [2017-06-14 20:51:14:848] <4938> VIRTUAL_DEPODT: +INFO [2017-06-14 20:51:14:848] <4938> ZuminCode: +INFO [2017-06-14 20:51:14:848] <4938> MallPage:/shop.php?goPage=PayCard&order_no=20170614205044T16546 +INFO [2017-06-14 20:51:14:848] <4938> VIRTUAL_NO: +INFO [2017-06-14 20:51:14:848] <4938> ES_SENDNO: +INFO [2017-06-14 20:51:14:848] <4938> ICHE_SOCKETYN:Y +INFO [2017-06-14 20:51:14:848] <4938> ICHE_POSMTID: +INFO [2017-06-14 20:51:14:848] <4938> ICHE_FNBCMTID: +INFO [2017-06-14 20:51:14:848] <4938> ICHE_APTRTS: +INFO [2017-06-14 20:51:14:849] <4938> ICHE_REMARK1: +INFO [2017-06-14 20:51:14:849] <4938> ICHE_REMARK2: +INFO [2017-06-14 20:51:14:849] <4938> ICHE_ECWYN: +INFO [2017-06-14 20:51:14:849] <4938> ICHE_ECWID: +INFO [2017-06-14 20:51:14:849] <4938> ICHE_ECWAMT1: +INFO [2017-06-14 20:51:14:849] <4938> ICHE_ECWAMT2: +INFO [2017-06-14 20:51:14:849] <4938> ICHE_CASHYN:N +INFO [2017-06-14 20:51:14:849] <4938> ICHE_CASHGUBUN_CD: +INFO [2017-06-14 20:51:14:849] <4938> ICHE_CASHID_NO: +INFO [2017-06-14 20:51:14:849] <4938> ICHEARS_SOCKETYN: +INFO [2017-06-14 20:51:14:849] <4938> ICHEARS_ADMNO: +INFO [2017-06-14 20:51:14:849] <4938> ICHEARS_POSMTID: +INFO [2017-06-14 20:51:14:849] <4938> ICHEARS_CENTERCD: +INFO [2017-06-14 20:51:14:849] <4938> ICHEARS_HPNO: +INFO [2017-06-14 20:51:14:849] <4938> Make NetCancel ID Start +INFO [2017-06-14 20:51:14:849] <4938> AEGIS_VISAwomenscare_20170614205114849173 +INFO [2017-06-14 20:51:14:849] <4938> Make NetCancel ID End +INFO [2017-06-14 20:51:14:849] <4938> Make NetCancelID OK +INFO [2017-06-14 20:51:14:849] <4938> Make Msg Start +INFO [2017-06-14 20:51:14:849] <4938> Encrypt Start +INFO [2017-06-14 20:51:14:849] <4938> Encrypt End +INFO [2017-06-14 20:51:14:850] <4938> Encrypt Start +INFO [2017-06-14 20:51:14:850] <4938> Encrypt End +INFO [2017-06-14 20:51:14:850] <4938> Encrypt Start +INFO [2017-06-14 20:51:14:850] <4938> Encrypt End +INFO [2017-06-14 20:51:14:850] <4938> Encrypt Start +INFO [2017-06-14 20:51:14:850] <4938> Encrypt End +INFO [2017-06-14 20:51:14:850] <4938> card-visa3d Make MSG OK +INFO [2017-06-14 20:51:14:850] <4938> Make Msg End +INFO [2017-06-14 20:51:14:850] <4938> Make Pay Msg OK +INFO [2017-06-14 20:51:14:850] <4938> Send & Recv Msg Start +INFO [2017-06-14 20:51:14:850] <4938> Send Data To PG Start [ +INFO [2017-06-14 20:51:14:850] <4938> 0:0003740plug15 +INFO [2017-06-14 20:51:14:850] <4938> 1:womenscare +INFO [2017-06-14 20:51:14:850] <4938> 2:test +INFO [2017-06-14 20:51:14:850] <4938> 3:4000 +INFO [2017-06-14 20:51:14:850] <4938> 4:20170614205044T16546 +INFO [2017-06-14 20:51:14:850] <4938> 5:9000400001 +INFO [2017-06-14 20:51:14:850] <4938> 6:9400179197701190 +INFO [2017-06-14 20:51:14:850] <4938> 7:283587 +INFO [2017-06-14 20:51:14:850] <4938> 8:00 +INFO [2017-06-14 20:51:14:850] <4938> 9:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 20:51:14:850] <4938> 10: +INFO [2017-06-14 20:51:14:850] <4938> 11: +INFO [2017-06-14 20:51:14:850] <4938> 12:test +INFO [2017-06-14 20:51:14:850] <4938> 13:02-123-1234 +INFO [2017-06-14 20:51:14:850] <4938> 14:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:51:14:850] <4938> 15:테스트아이디 +INFO [2017-06-14 20:51:14:850] <4938> 16:211.243.232.13;02-123-1234 +INFO [2017-06-14 20:51:14:850] <4938> 17:test@naver.com; +INFO [2017-06-14 20:51:14:850] <4938> 18:테스트 +INFO [2017-06-14 20:51:14:850] <4938> 19:AAABAwd1gCAXBhQgUXWAAAAAMRc= +INFO [2017-06-14 20:51:14:850] <4938> 20:MjAxNzA2MTQyMDUxMDA4MzcxMjA= +INFO [2017-06-14 20:51:14:850] <4938> 21:05 +INFO [2017-06-14 20:51:14:850] <4938> 22:test@naver.com +INFO [2017-06-14 20:51:14:850] <4938> 23:AEGIS_VISAwomenscare_20170614205114849173 +INFO [2017-06-14 20:51:14:850] <4938> 24: +INFO [2017-06-14 20:51:14:850] <4938> ] Send Data To PG End +INFO [2017-06-14 20:51:14:850] <4938> SendMsg : [0003740plug15|womenscare|test|4000|20170614205044T16546|9000400001|9400179197701190|283587|00|N;211.243.232.13;N;;4000;;;;;|||test|02-123-1234|서울 관악구 난향길 5 (신림동)123456|테스트아이디|211.243.232.13;02-123-1234|test@naver.com;|테스트|AAABAwd1gCAXBhQgUXWAAAAAMRc=|MjAxNzA2MTQyMDUxMDA4MzcxMjA=|05|test@naver.com|AEGIS_VISAwomenscare_20170614205114849173|] +INFO [2017-06-14 20:51:14:850] <4938> Connect IP:[121.133.126.1] Port:[29760] +INFO [2017-06-14 20:51:14:853] <4938> Socket Open OK +INFO [2017-06-14 20:51:15:536] <4938> RecvMsg Length : [000112] +INFO [2017-06-14 20:51:15:536] <4938> RecvMsg : [womenscare|0610|20170614205044T16546| |000000004000|n|83-īȭ||20170614205119|0500||0||541899| +] +INFO [2017-06-14 20:51:15:536] <4938> Socket Close OK +INFO [2017-06-14 20:51:15:536] <4938> RecvMsg Length Check OK +INFO [2017-06-14 20:51:15:536] <4938> Send & Recv Msg End +INFO [2017-06-14 20:51:15:536] <4938> Send & Recv Msg OK +INFO [2017-06-14 20:51:15:536] <4938> Parse Msg Start +INFO [2017-06-14 20:51:15:536] <4938> card-visa3d RECV MSG Parsing OK +INFO [2017-06-14 20:51:15:536] <4938> Parse Msg End +INFO [2017-06-14 20:51:15:536] <4938> Msg Parsing OK +INFO [2017-06-14 20:51:15:536] <4938> card Pay Result Value [ +INFO [2017-06-14 20:51:15:536] <4938> NetCancID:AEGIS_VISAwomenscare_20170614205114849173 +INFO [2017-06-14 20:51:15:536] <4938> rStoreId:womenscare +INFO [2017-06-14 20:51:15:537] <4938> rBusiCd:0610 +INFO [2017-06-14 20:51:15:537] <4938> rOrdNo:20170614205044T16546 +INFO [2017-06-14 20:51:15:537] <4938> rApprNo: +INFO [2017-06-14 20:51:15:537] <4938> rInstmt:00 +INFO [2017-06-14 20:51:15:537] <4938> rAmt:000000004000 +INFO [2017-06-14 20:51:15:537] <4938> rSuccYn:n +INFO [2017-06-14 20:51:15:537] <4938> rResMsg:83-īȭ +INFO [2017-06-14 20:51:15:537] <4938> rCardNm: +INFO [2017-06-14 20:51:15:537] <4938> rApprTm:20170614205119 +INFO [2017-06-14 20:51:15:537] <4938> rCardCd:0500 +INFO [2017-06-14 20:51:15:537] <4938> rMembNo: +INFO [2017-06-14 20:51:15:537] <4938> rAquiCd:0 +INFO [2017-06-14 20:51:15:537] <4938> rAquiNm: +INFO [2017-06-14 20:51:15:538] <4938> rDealNo:541899 +INFO [2017-06-14 20:51:15:538] <4938> rProdNm:테스트 +INFO [2017-06-14 20:51:15:538] <4938> ] +INFO [2017-06-14 20:51:15:538] <4938> END 83-īȭ Transaction time:[0.69sec] +INFO [2017-06-14 20:51:15:538] <4938> =============================================================== +INFO [2017-06-14 20:58:02:578] <4958> =============================================================== +INFO [2017-06-14 20:58:02:578] <4958> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.14) +INFO [2017-06-14 20:58:02:578] <4958> card Pay Start! +INFO [2017-06-14 20:58:02:579] <4958> AgsPayHome:/home/igrowlaser/www2/module/shop/pg/agspay +INFO [2017-06-14 20:58:02:579] <4958> StoreId:womenscare +INFO [2017-06-14 20:58:02:579] <4958> log:true +INFO [2017-06-14 20:58:02:579] <4958> logLevel:INFO +INFO [2017-06-14 20:58:02:579] <4958> UseNetCancel:true +INFO [2017-06-14 20:58:02:579] <4958> Type:Pay +INFO [2017-06-14 20:58:02:579] <4958> RecvLen:7 +INFO [2017-06-14 20:58:02:579] <4958> AuthTy:card +INFO [2017-06-14 20:58:02:579] <4958> SubTy:visa3d +INFO [2017-06-14 20:58:02:579] <4958> OrdNo:20170614205714T86891 +INFO [2017-06-14 20:58:02:579] <4958> Amt:4000 +INFO [2017-06-14 20:58:02:579] <4958> UserEmail:test@naver.com +INFO [2017-06-14 20:58:02:579] <4958> ProdNm:테스트 +INFO [2017-06-14 20:58:02:579] <4958> MallUrl:http://igrowlaser.phpweb.co.kr +INFO [2017-06-14 20:58:02:579] <4958> UserId:test +INFO [2017-06-14 20:58:02:579] <4958> OrdNm:테스트아이디 +INFO [2017-06-14 20:58:02:579] <4958> OrdPhone:02-123-1234 +INFO [2017-06-14 20:58:02:579] <4958> OrdAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:58:02:579] <4958> RcpNm:test +INFO [2017-06-14 20:58:02:579] <4958> RcpPhone:02-123-1234 +INFO [2017-06-14 20:58:02:579] <4958> DlvAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:58:02:580] <4958> Remark: +INFO [2017-06-14 20:58:02:580] <4958> DeviId:9000400001 +INFO [2017-06-14 20:58:02:580] <4958> AuthYn:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 20:58:02:580] <4958> Instmt:00 +INFO [2017-06-14 20:58:02:580] <4958> UserIp:211.243.232.13 +INFO [2017-06-14 20:58:02:580] <4958> partial_mm: +INFO [2017-06-14 20:58:02:580] <4958> noIntMonth: +INFO [2017-06-14 20:58:02:580] <4958> KVP_CURRENCY:WON +INFO [2017-06-14 20:58:02:580] <4958> KVP_CARDCODE: +INFO [2017-06-14 20:58:02:580] <4958> KVP_SESSIONKEY: +INFO [2017-06-14 20:58:02:580] <4958> KVP_ENCDATA: +INFO [2017-06-14 20:58:02:580] <4958> KVP_CONAME: +INFO [2017-06-14 20:58:02:580] <4958> KVP_NOINT: +INFO [2017-06-14 20:58:02:580] <4958> KVP_QUOTA: +INFO [2017-06-14 20:58:02:580] <4958> CardNo:5107373509616712 +INFO [2017-06-14 20:58:02:580] <4958> MPI_CAVV:AAABAUiFgyAXBhQgWIWDAAAAMRc= +INFO [2017-06-14 20:58:02:580] <4958> MPI_ECI:05 +INFO [2017-06-14 20:58:02:580] <4958> MPI_MD64:MjAxNzA2MTQyMDU3Mzk2MDIxMjA= +INFO [2017-06-14 20:58:02:580] <4958> ExpMon:12 +INFO [2017-06-14 20:58:02:580] <4958> ExpYear:2049 +INFO [2017-06-14 20:58:02:580] <4958> Passwd: +INFO [2017-06-14 20:58:02:580] <4958> SocId: +INFO [2017-06-14 20:58:02:581] <4958> ICHE_OUTBANKNAME: +INFO [2017-06-14 20:58:02:581] <4958> ICHE_OUTACCTNO: +INFO [2017-06-14 20:58:02:581] <4958> ICHE_OUTBANKMASTER: +INFO [2017-06-14 20:58:02:581] <4958> ICHE_AMOUNT: +INFO [2017-06-14 20:58:02:581] <4958> HP_SERVERINFO: +INFO [2017-06-14 20:58:02:581] <4958> HP_HANDPHONE: +INFO [2017-06-14 20:58:02:581] <4958> HP_COMPANY: +INFO [2017-06-14 20:58:02:581] <4958> HP_ID: +INFO [2017-06-14 20:58:02:581] <4958> HP_SUBID: +INFO [2017-06-14 20:58:02:581] <4958> HP_UNITType: +INFO [2017-06-14 20:58:02:581] <4958> HP_IDEN: +INFO [2017-06-14 20:58:02:581] <4958> HP_IPADDR: +INFO [2017-06-14 20:58:02:581] <4958> ARS_NAME: +INFO [2017-06-14 20:58:02:581] <4958> ARS_PHONE: +INFO [2017-06-14 20:58:02:581] <4958> VIRTUAL_CENTERCD:99 +INFO [2017-06-14 20:58:02:581] <4958> VIRTUAL_DEPODT: +INFO [2017-06-14 20:58:02:581] <4958> ZuminCode: +INFO [2017-06-14 20:58:02:581] <4958> MallPage:/shop.php?goPage=PayCard&order_no=20170614205714T86891 +INFO [2017-06-14 20:58:02:581] <4958> VIRTUAL_NO: +INFO [2017-06-14 20:58:02:581] <4958> ES_SENDNO: +INFO [2017-06-14 20:58:02:581] <4958> ICHE_SOCKETYN:Y +INFO [2017-06-14 20:58:02:581] <4958> ICHE_POSMTID: +INFO [2017-06-14 20:58:02:582] <4958> ICHE_FNBCMTID: +INFO [2017-06-14 20:58:02:582] <4958> ICHE_APTRTS: +INFO [2017-06-14 20:58:02:582] <4958> ICHE_REMARK1: +INFO [2017-06-14 20:58:02:582] <4958> ICHE_REMARK2: +INFO [2017-06-14 20:58:02:582] <4958> ICHE_ECWYN: +INFO [2017-06-14 20:58:02:582] <4958> ICHE_ECWID: +INFO [2017-06-14 20:58:02:582] <4958> ICHE_ECWAMT1: +INFO [2017-06-14 20:58:02:582] <4958> ICHE_ECWAMT2: +INFO [2017-06-14 20:58:02:582] <4958> ICHE_CASHYN:N +INFO [2017-06-14 20:58:02:582] <4958> ICHE_CASHGUBUN_CD: +INFO [2017-06-14 20:58:02:582] <4958> ICHE_CASHID_NO: +INFO [2017-06-14 20:58:02:582] <4958> ICHEARS_SOCKETYN: +INFO [2017-06-14 20:58:02:582] <4958> ICHEARS_ADMNO: +INFO [2017-06-14 20:58:02:582] <4958> ICHEARS_POSMTID: +INFO [2017-06-14 20:58:02:582] <4958> ICHEARS_CENTERCD: +INFO [2017-06-14 20:58:02:582] <4958> ICHEARS_HPNO: +INFO [2017-06-14 20:58:02:582] <4958> Make NetCancel ID Start +INFO [2017-06-14 20:58:02:582] <4958> AEGIS_VISAwomenscare_20170614205802582671 +INFO [2017-06-14 20:58:02:582] <4958> Make NetCancel ID End +INFO [2017-06-14 20:58:02:582] <4958> Make NetCancelID OK +INFO [2017-06-14 20:58:02:582] <4958> Make Msg Start +INFO [2017-06-14 20:58:02:583] <4958> Encrypt Start +INFO [2017-06-14 20:58:02:583] <4958> Encrypt End +INFO [2017-06-14 20:58:02:583] <4958> Encrypt Start +INFO [2017-06-14 20:58:02:583] <4958> Encrypt End +INFO [2017-06-14 20:58:02:583] <4958> Encrypt Start +INFO [2017-06-14 20:58:02:583] <4958> Encrypt End +INFO [2017-06-14 20:58:02:583] <4958> Encrypt Start +INFO [2017-06-14 20:58:02:583] <4958> Encrypt End +INFO [2017-06-14 20:58:02:583] <4958> card-visa3d Make MSG OK +INFO [2017-06-14 20:58:02:583] <4958> Make Msg End +INFO [2017-06-14 20:58:02:583] <4958> Make Pay Msg OK +INFO [2017-06-14 20:58:02:583] <4958> Send & Recv Msg Start +INFO [2017-06-14 20:58:02:583] <4958> Send Data To PG Start [ +INFO [2017-06-14 20:58:02:583] <4958> 0:0003740plug15 +INFO [2017-06-14 20:58:02:583] <4958> 1:womenscare +INFO [2017-06-14 20:58:02:583] <4958> 2:test +INFO [2017-06-14 20:58:02:583] <4958> 3:4000 +INFO [2017-06-14 20:58:02:583] <4958> 4:20170614205714T86891 +INFO [2017-06-14 20:58:02:583] <4958> 5:9000400001 +INFO [2017-06-14 20:58:02:583] <4958> 6:2817911916701190 +INFO [2017-06-14 20:58:02:583] <4958> 7:283587 +INFO [2017-06-14 20:58:02:583] <4958> 8:00 +INFO [2017-06-14 20:58:02:583] <4958> 9:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 20:58:02:583] <4958> 10: +INFO [2017-06-14 20:58:02:583] <4958> 11: +INFO [2017-06-14 20:58:02:583] <4958> 12:test +INFO [2017-06-14 20:58:02:583] <4958> 13:02-123-1234 +INFO [2017-06-14 20:58:02:583] <4958> 14:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 20:58:02:583] <4958> 15:테스트아이디 +INFO [2017-06-14 20:58:02:583] <4958> 16:211.243.232.13;02-123-1234 +INFO [2017-06-14 20:58:02:583] <4958> 17:test@naver.com; +INFO [2017-06-14 20:58:02:583] <4958> 18:테스트 +INFO [2017-06-14 20:58:02:583] <4958> 19:AAABAUiFgyAXBhQgWIWDAAAAMRc= +INFO [2017-06-14 20:58:02:583] <4958> 20:MjAxNzA2MTQyMDU3Mzk2MDIxMjA= +INFO [2017-06-14 20:58:02:583] <4958> 21:05 +INFO [2017-06-14 20:58:02:583] <4958> 22:test@naver.com +INFO [2017-06-14 20:58:02:583] <4958> 23:AEGIS_VISAwomenscare_20170614205802582671 +INFO [2017-06-14 20:58:02:583] <4958> 24: +INFO [2017-06-14 20:58:02:583] <4958> ] Send Data To PG End +INFO [2017-06-14 20:58:02:583] <4958> SendMsg : [0003740plug15|womenscare|test|4000|20170614205714T86891|9000400001|2817911916701190|283587|00|N;211.243.232.13;N;;4000;;;;;|||test|02-123-1234|서울 관악구 난향길 5 (신림동)123456|테스트아이디|211.243.232.13;02-123-1234|test@naver.com;|테스트|AAABAUiFgyAXBhQgWIWDAAAAMRc=|MjAxNzA2MTQyMDU3Mzk2MDIxMjA=|05|test@naver.com|AEGIS_VISAwomenscare_20170614205802582671|] +INFO [2017-06-14 20:58:02:583] <4958> Connect IP:[121.133.126.1] Port:[29760] +INFO [2017-06-14 20:58:02:586] <4958> Socket Open OK +INFO [2017-06-14 20:58:03:119] <4958> RecvMsg Length : [000112] +INFO [2017-06-14 20:58:03:119] <4958> RecvMsg : [womenscare|0610|20170614205714T86891| |000000004000|n|83-īȭ||20170614205806|0500||0||542289| +] +INFO [2017-06-14 20:58:03:120] <4958> Socket Close OK +INFO [2017-06-14 20:58:03:120] <4958> RecvMsg Length Check OK +INFO [2017-06-14 20:58:03:120] <4958> Send & Recv Msg End +INFO [2017-06-14 20:58:03:120] <4958> Send & Recv Msg OK +INFO [2017-06-14 20:58:03:120] <4958> Parse Msg Start +INFO [2017-06-14 20:58:03:120] <4958> card-visa3d RECV MSG Parsing OK +INFO [2017-06-14 20:58:03:120] <4958> Parse Msg End +INFO [2017-06-14 20:58:03:120] <4958> Msg Parsing OK +INFO [2017-06-14 20:58:03:120] <4958> card Pay Result Value [ +INFO [2017-06-14 20:58:03:120] <4958> NetCancID:AEGIS_VISAwomenscare_20170614205802582671 +INFO [2017-06-14 20:58:03:120] <4958> rStoreId:womenscare +INFO [2017-06-14 20:58:03:120] <4958> rBusiCd:0610 +INFO [2017-06-14 20:58:03:120] <4958> rOrdNo:20170614205714T86891 +INFO [2017-06-14 20:58:03:120] <4958> rApprNo: +INFO [2017-06-14 20:58:03:120] <4958> rInstmt:00 +INFO [2017-06-14 20:58:03:120] <4958> rAmt:000000004000 +INFO [2017-06-14 20:58:03:120] <4958> rSuccYn:n +INFO [2017-06-14 20:58:03:120] <4958> rResMsg:83-īȭ +INFO [2017-06-14 20:58:03:120] <4958> rCardNm: +INFO [2017-06-14 20:58:03:120] <4958> rApprTm:20170614205806 +INFO [2017-06-14 20:58:03:120] <4958> rCardCd:0500 +INFO [2017-06-14 20:58:03:121] <4958> rMembNo: +INFO [2017-06-14 20:58:03:121] <4958> rAquiCd:0 +INFO [2017-06-14 20:58:03:121] <4958> rAquiNm: +INFO [2017-06-14 20:58:03:121] <4958> rDealNo:542289 +INFO [2017-06-14 20:58:03:121] <4958> rProdNm:테스트 +INFO [2017-06-14 20:58:03:121] <4958> ] +INFO [2017-06-14 20:58:03:121] <4958> END 83-īȭ Transaction time:[0.54sec] +INFO [2017-06-14 20:58:03:121] <4958> =============================================================== +INFO [2017-06-14 21:02:07:355] <4993> =============================================================== +INFO [2017-06-14 21:02:07:355] <4993> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.14) +INFO [2017-06-14 21:02:07:355] <4993> card Pay Start! +INFO [2017-06-14 21:02:07:355] <4993> AgsPayHome:/home/igrowlaser/www2/module/shop/pg/agspay +INFO [2017-06-14 21:02:07:355] <4993> StoreId:womenscare +INFO [2017-06-14 21:02:07:355] <4993> log:true +INFO [2017-06-14 21:02:07:355] <4993> logLevel:INFO +INFO [2017-06-14 21:02:07:356] <4993> UseNetCancel:true +INFO [2017-06-14 21:02:07:356] <4993> Type:Pay +INFO [2017-06-14 21:02:07:356] <4993> RecvLen:7 +INFO [2017-06-14 21:02:07:356] <4993> AuthTy:card +INFO [2017-06-14 21:02:07:356] <4993> SubTy:visa3d +INFO [2017-06-14 21:02:07:356] <4993> OrdNo:1000000001 +INFO [2017-06-14 21:02:07:356] <4993> Amt:1000 +INFO [2017-06-14 21:02:07:356] <4993> UserEmail:test@test.com +INFO [2017-06-14 21:02:07:356] <4993> ProdNm:콺 +INFO [2017-06-14 21:02:07:356] <4993> MallUrl:http://www.allthegate.com +INFO [2017-06-14 21:02:07:356] <4993> UserId:test +INFO [2017-06-14 21:02:07:356] <4993> OrdNm:ȫ浿 +INFO [2017-06-14 21:02:07:356] <4993> OrdPhone:02-111-1111 +INFO [2017-06-14 21:02:07:356] <4993> OrdAddr: û㵿 +INFO [2017-06-14 21:02:07:356] <4993> RcpNm:浿 +INFO [2017-06-14 21:02:07:356] <4993> RcpPhone:02-111-1111 +INFO [2017-06-14 21:02:07:356] <4993> DlvAddr: û㵿 +INFO [2017-06-14 21:02:07:356] <4993> Remark:Ŀ ۿ +INFO [2017-06-14 21:02:07:356] <4993> DeviId:9000400001 +INFO [2017-06-14 21:02:07:356] <4993> AuthYn:N;211.243.232.13;N;;1000;;;;; +INFO [2017-06-14 21:02:07:356] <4993> Instmt:00 +INFO [2017-06-14 21:02:07:356] <4993> UserIp:211.243.232.13 +INFO [2017-06-14 21:02:07:357] <4993> partial_mm: +INFO [2017-06-14 21:02:07:357] <4993> noIntMonth: +INFO [2017-06-14 21:02:07:357] <4993> KVP_CURRENCY:WON +INFO [2017-06-14 21:02:07:357] <4993> KVP_CARDCODE: +INFO [2017-06-14 21:02:07:357] <4993> KVP_SESSIONKEY: +INFO [2017-06-14 21:02:07:357] <4993> KVP_ENCDATA: +INFO [2017-06-14 21:02:07:357] <4993> KVP_CONAME: +INFO [2017-06-14 21:02:07:357] <4993> KVP_NOINT: +INFO [2017-06-14 21:02:07:357] <4993> KVP_QUOTA: +INFO [2017-06-14 21:02:07:357] <4993> CardNo:5107374327239679 +INFO [2017-06-14 21:02:07:357] <4993> MPI_CAVV:AAABB1SJYSAXBhQhAolhAAAAMRc= +INFO [2017-06-14 21:02:07:357] <4993> MPI_ECI:05 +INFO [2017-06-14 21:02:07:357] <4993> MPI_MD64:MjAxNzA2MTQyMTAxNTA0NzExMjA= +INFO [2017-06-14 21:02:07:357] <4993> ExpMon:12 +INFO [2017-06-14 21:02:07:357] <4993> ExpYear:2049 +INFO [2017-06-14 21:02:07:357] <4993> Passwd: +INFO [2017-06-14 21:02:07:357] <4993> SocId: +INFO [2017-06-14 21:02:07:357] <4993> ICHE_OUTBANKNAME: +INFO [2017-06-14 21:02:07:357] <4993> ICHE_OUTACCTNO: +INFO [2017-06-14 21:02:07:357] <4993> ICHE_OUTBANKMASTER: +INFO [2017-06-14 21:02:07:357] <4993> ICHE_AMOUNT: +INFO [2017-06-14 21:02:07:357] <4993> HP_SERVERINFO: +INFO [2017-06-14 21:02:07:358] <4993> HP_HANDPHONE: +INFO [2017-06-14 21:02:07:358] <4993> HP_COMPANY: +INFO [2017-06-14 21:02:07:358] <4993> HP_ID: +INFO [2017-06-14 21:02:07:358] <4993> HP_SUBID: +INFO [2017-06-14 21:02:07:358] <4993> HP_UNITType:1 +INFO [2017-06-14 21:02:07:358] <4993> HP_IDEN: +INFO [2017-06-14 21:02:07:358] <4993> HP_IPADDR: +INFO [2017-06-14 21:02:07:358] <4993> ARS_NAME: +INFO [2017-06-14 21:02:07:358] <4993> ARS_PHONE: +INFO [2017-06-14 21:02:07:358] <4993> VIRTUAL_CENTERCD:99 +INFO [2017-06-14 21:02:07:358] <4993> VIRTUAL_DEPODT: +INFO [2017-06-14 21:02:07:358] <4993> ZuminCode: +INFO [2017-06-14 21:02:07:358] <4993> MallPage:/mall/AGS_VirAcctResult.php +INFO [2017-06-14 21:02:07:358] <4993> VIRTUAL_NO: +INFO [2017-06-14 21:02:07:358] <4993> ES_SENDNO: +INFO [2017-06-14 21:02:07:358] <4993> ICHE_SOCKETYN:Y +INFO [2017-06-14 21:02:07:358] <4993> ICHE_POSMTID: +INFO [2017-06-14 21:02:07:358] <4993> ICHE_FNBCMTID: +INFO [2017-06-14 21:02:07:358] <4993> ICHE_APTRTS: +INFO [2017-06-14 21:02:07:358] <4993> ICHE_REMARK1: +INFO [2017-06-14 21:02:07:358] <4993> ICHE_REMARK2: +INFO [2017-06-14 21:02:07:358] <4993> ICHE_ECWYN: +INFO [2017-06-14 21:02:07:359] <4993> ICHE_ECWID: +INFO [2017-06-14 21:02:07:359] <4993> ICHE_ECWAMT1: +INFO [2017-06-14 21:02:07:359] <4993> ICHE_ECWAMT2: +INFO [2017-06-14 21:02:07:359] <4993> ICHE_CASHYN:N +INFO [2017-06-14 21:02:07:359] <4993> ICHE_CASHGUBUN_CD: +INFO [2017-06-14 21:02:07:359] <4993> ICHE_CASHID_NO: +INFO [2017-06-14 21:02:07:359] <4993> ICHEARS_SOCKETYN:Y +INFO [2017-06-14 21:02:07:359] <4993> ICHEARS_ADMNO: +INFO [2017-06-14 21:02:07:359] <4993> ICHEARS_POSMTID: +INFO [2017-06-14 21:02:07:359] <4993> ICHEARS_CENTERCD: +INFO [2017-06-14 21:02:07:359] <4993> ICHEARS_HPNO: +INFO [2017-06-14 21:02:07:359] <4993> Make NetCancel ID Start +INFO [2017-06-14 21:02:07:359] <4993> AEGIS_VISAwomenscare_20170614210207359764 +INFO [2017-06-14 21:02:07:359] <4993> Make NetCancel ID End +INFO [2017-06-14 21:02:07:359] <4993> Make NetCancelID OK +INFO [2017-06-14 21:02:07:359] <4993> Make Msg Start +INFO [2017-06-14 21:02:07:359] <4993> Encrypt Start +INFO [2017-06-14 21:02:07:359] <4993> Encrypt End +INFO [2017-06-14 21:02:07:359] <4993> Encrypt Start +INFO [2017-06-14 21:02:07:359] <4993> Encrypt End +INFO [2017-06-14 21:02:07:360] <4993> Encrypt Start +INFO [2017-06-14 21:02:07:360] <4993> Encrypt End +INFO [2017-06-14 21:02:07:360] <4993> Encrypt Start +INFO [2017-06-14 21:02:07:360] <4993> Encrypt End +INFO [2017-06-14 21:02:07:360] <4993> card-visa3d Make MSG OK +INFO [2017-06-14 21:02:07:360] <4993> Make Msg End +INFO [2017-06-14 21:02:07:360] <4993> Make Pay Msg OK +INFO [2017-06-14 21:02:07:360] <4993> Send & Recv Msg Start +INFO [2017-06-14 21:02:07:360] <4993> Send Data To PG Start [ +INFO [2017-06-14 21:02:07:360] <4993> 0:0003380plug15 +INFO [2017-06-14 21:02:07:360] <4993> 1:womenscare +INFO [2017-06-14 21:02:07:360] <4993> 2:test +INFO [2017-06-14 21:02:07:360] <4993> 3:1000 +INFO [2017-06-14 21:02:07:360] <4993> 4:1000000001 +INFO [2017-06-14 21:02:07:360] <4993> 5:9000400001 +INFO [2017-06-14 21:02:07:360] <4993> 6:9400179197701190 +INFO [2017-06-14 21:02:07:360] <4993> 7:283587 +INFO [2017-06-14 21:02:07:360] <4993> 8:00 +INFO [2017-06-14 21:02:07:360] <4993> 9:N;211.243.232.13;N;;1000;;;;; +INFO [2017-06-14 21:02:07:360] <4993> 10: +INFO [2017-06-14 21:02:07:360] <4993> 11: +INFO [2017-06-14 21:02:07:360] <4993> 12:浿 +INFO [2017-06-14 21:02:07:360] <4993> 13:02-111-1111 +INFO [2017-06-14 21:02:07:360] <4993> 14: û㵿 +INFO [2017-06-14 21:02:07:360] <4993> 15:ȫ浿 +INFO [2017-06-14 21:02:07:360] <4993> 16:211.243.232.13;02-111-1111 +INFO [2017-06-14 21:02:07:360] <4993> 17:test@test.com;Ŀ ۿ +INFO [2017-06-14 21:02:07:360] <4993> 18:콺 +INFO [2017-06-14 21:02:07:360] <4993> 19:AAABB1SJYSAXBhQhAolhAAAAMRc= +INFO [2017-06-14 21:02:07:360] <4993> 20:MjAxNzA2MTQyMTAxNTA0NzExMjA= +INFO [2017-06-14 21:02:07:360] <4993> 21:05 +INFO [2017-06-14 21:02:07:360] <4993> 22:test@test.com +INFO [2017-06-14 21:02:07:360] <4993> 23:AEGIS_VISAwomenscare_20170614210207359764 +INFO [2017-06-14 21:02:07:360] <4993> 24: +INFO [2017-06-14 21:02:07:360] <4993> ] Send Data To PG End +INFO [2017-06-14 21:02:07:360] <4993> SendMsg : [0003380plug15|womenscare|test|1000|1000000001|9000400001|9400179197701190|283587|00|N;211.243.232.13;N;;1000;;;;;|||浿|02-111-1111| û㵿|ȫ浿|211.243.232.13;02-111-1111|test@test.com;Ŀ ۿ|콺|AAABB1SJYSAXBhQhAolhAAAAMRc=|MjAxNzA2MTQyMTAxNTA0NzExMjA=|05|test@test.com|AEGIS_VISAwomenscare_20170614210207359764|] +INFO [2017-06-14 21:02:07:360] <4993> Connect IP:[121.133.126.1] Port:[29760] +INFO [2017-06-14 21:02:07:363] <4993> Socket Open OK +INFO [2017-06-14 21:02:08:284] <4993> RecvMsg Length : [000112] +INFO [2017-06-14 21:02:08:284] <4993> RecvMsg : [womenscare|0610|1000000001|19296307|000000001000|y|||20170614210211|0500|18570317|0500||542515| +] +INFO [2017-06-14 21:02:08:284] <4993> Socket Close OK +INFO [2017-06-14 21:02:08:284] <4993> RecvMsg Length Check OK +INFO [2017-06-14 21:02:08:285] <4993> Send & Recv Msg End +INFO [2017-06-14 21:02:08:285] <4993> Send & Recv Msg OK +INFO [2017-06-14 21:02:08:285] <4993> Parse Msg Start +INFO [2017-06-14 21:02:08:285] <4993> card-visa3d RECV MSG Parsing OK +INFO [2017-06-14 21:02:08:285] <4993> Parse Msg End +INFO [2017-06-14 21:02:08:285] <4993> Msg Parsing OK +INFO [2017-06-14 21:02:08:285] <4993> card Pay Result Value [ +INFO [2017-06-14 21:02:08:285] <4993> NetCancID:AEGIS_VISAwomenscare_20170614210207359764 +INFO [2017-06-14 21:02:08:285] <4993> rStoreId:womenscare +INFO [2017-06-14 21:02:08:285] <4993> rBusiCd:0610 +INFO [2017-06-14 21:02:08:285] <4993> rOrdNo:1000000001 +INFO [2017-06-14 21:02:08:285] <4993> rApprNo:19296307 +INFO [2017-06-14 21:02:08:285] <4993> rInstmt:00 +INFO [2017-06-14 21:02:08:285] <4993> rAmt:000000001000 +INFO [2017-06-14 21:02:08:285] <4993> rSuccYn:y +INFO [2017-06-14 21:02:08:285] <4993> rResMsg: +INFO [2017-06-14 21:02:08:285] <4993> rCardNm: +INFO [2017-06-14 21:02:08:285] <4993> rApprTm:20170614210211 +INFO [2017-06-14 21:02:08:285] <4993> rCardCd:0500 +INFO [2017-06-14 21:02:08:285] <4993> rMembNo:18570317 +INFO [2017-06-14 21:02:08:285] <4993> rAquiCd:0500 +INFO [2017-06-14 21:02:08:286] <4993> rAquiNm: +INFO [2017-06-14 21:02:08:286] <4993> rDealNo:542515 +INFO [2017-06-14 21:02:08:286] <4993> rProdNm:콺 +INFO [2017-06-14 21:02:08:286] <4993> ] +INFO [2017-06-14 21:02:08:286] <4993> END Transaction time:[0.93sec] +INFO [2017-06-14 21:02:08:286] <4993> =============================================================== +INFO [2017-06-14 21:05:29:352] <4923> =============================================================== +INFO [2017-06-14 21:05:29:353] <4923> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.14) +INFO [2017-06-14 21:05:29:353] <4923> card Pay Start! +INFO [2017-06-14 21:05:29:353] <4923> AgsPayHome:/home/igrowlaser/www2/module/shop/pg/agspay +INFO [2017-06-14 21:05:29:353] <4923> StoreId:womenscare +INFO [2017-06-14 21:05:29:353] <4923> log:true +INFO [2017-06-14 21:05:29:353] <4923> logLevel:INFO +INFO [2017-06-14 21:05:29:353] <4923> UseNetCancel:true +INFO [2017-06-14 21:05:29:353] <4923> Type:Pay +INFO [2017-06-14 21:05:29:353] <4923> RecvLen:7 +INFO [2017-06-14 21:05:29:353] <4923> AuthTy:card +INFO [2017-06-14 21:05:29:353] <4923> SubTy:visa3d +INFO [2017-06-14 21:05:29:353] <4923> OrdNo:20170614210500T73872 +INFO [2017-06-14 21:05:29:353] <4923> Amt:4000 +INFO [2017-06-14 21:05:29:353] <4923> UserEmail:test@naver.com +INFO [2017-06-14 21:05:29:353] <4923> ProdNm:테스트 +INFO [2017-06-14 21:05:29:353] <4923> MallUrl:http://igrowlaser.phpweb.co.kr +INFO [2017-06-14 21:05:29:353] <4923> UserId:test +INFO [2017-06-14 21:05:29:353] <4923> OrdNm:테스트아이디 +INFO [2017-06-14 21:05:29:353] <4923> OrdPhone:02-123-1234 +INFO [2017-06-14 21:05:29:353] <4923> OrdAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 21:05:29:353] <4923> RcpNm:test +INFO [2017-06-14 21:05:29:353] <4923> RcpPhone:02-123-1234 +INFO [2017-06-14 21:05:29:354] <4923> DlvAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 21:05:29:354] <4923> Remark: +INFO [2017-06-14 21:05:29:354] <4923> DeviId:9000400001 +INFO [2017-06-14 21:05:29:354] <4923> AuthYn:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 21:05:29:354] <4923> Instmt:00 +INFO [2017-06-14 21:05:29:354] <4923> UserIp:211.243.232.13 +INFO [2017-06-14 21:05:29:354] <4923> partial_mm: +INFO [2017-06-14 21:05:29:354] <4923> noIntMonth: +INFO [2017-06-14 21:05:29:354] <4923> KVP_CURRENCY:WON +INFO [2017-06-14 21:05:29:354] <4923> KVP_CARDCODE: +INFO [2017-06-14 21:05:29:354] <4923> KVP_SESSIONKEY: +INFO [2017-06-14 21:05:29:354] <4923> KVP_ENCDATA: +INFO [2017-06-14 21:05:29:354] <4923> KVP_CONAME: +INFO [2017-06-14 21:05:29:354] <4923> KVP_NOINT: +INFO [2017-06-14 21:05:29:354] <4923> KVP_QUOTA: +INFO [2017-06-14 21:05:29:354] <4923> CardNo:5107374327239679 +INFO [2017-06-14 21:05:29:354] <4923> MPI_CAVV:AAABB2eJMiAXBhQhBYkyAAAAMRc= +INFO [2017-06-14 21:05:29:354] <4923> MPI_ECI:05 +INFO [2017-06-14 21:05:29:354] <4923> MPI_MD64:MjAxNzA2MTQyMTA1MTcyMjIxMjA= +INFO [2017-06-14 21:05:29:354] <4923> ExpMon:12 +INFO [2017-06-14 21:05:29:354] <4923> ExpYear:2049 +INFO [2017-06-14 21:05:29:354] <4923> Passwd: +INFO [2017-06-14 21:05:29:355] <4923> SocId: +INFO [2017-06-14 21:05:29:355] <4923> ICHE_OUTBANKNAME: +INFO [2017-06-14 21:05:29:355] <4923> ICHE_OUTACCTNO: +INFO [2017-06-14 21:05:29:355] <4923> ICHE_OUTBANKMASTER: +INFO [2017-06-14 21:05:29:355] <4923> ICHE_AMOUNT: +INFO [2017-06-14 21:05:29:355] <4923> HP_SERVERINFO: +INFO [2017-06-14 21:05:29:355] <4923> HP_HANDPHONE: +INFO [2017-06-14 21:05:29:355] <4923> HP_COMPANY: +INFO [2017-06-14 21:05:29:355] <4923> HP_ID: +INFO [2017-06-14 21:05:29:355] <4923> HP_SUBID: +INFO [2017-06-14 21:05:29:355] <4923> HP_UNITType: +INFO [2017-06-14 21:05:29:355] <4923> HP_IDEN: +INFO [2017-06-14 21:05:29:355] <4923> HP_IPADDR: +INFO [2017-06-14 21:05:29:355] <4923> ARS_NAME: +INFO [2017-06-14 21:05:29:355] <4923> ARS_PHONE: +INFO [2017-06-14 21:05:29:355] <4923> VIRTUAL_CENTERCD:99 +INFO [2017-06-14 21:05:29:355] <4923> VIRTUAL_DEPODT: +INFO [2017-06-14 21:05:29:355] <4923> ZuminCode: +INFO [2017-06-14 21:05:29:355] <4923> MallPage:/shop.php?goPage=PayCard&order_no=20170614210500T73872 +INFO [2017-06-14 21:05:29:355] <4923> VIRTUAL_NO: +INFO [2017-06-14 21:05:29:355] <4923> ES_SENDNO: +INFO [2017-06-14 21:05:29:355] <4923> ICHE_SOCKETYN:Y +INFO [2017-06-14 21:05:29:356] <4923> ICHE_POSMTID: +INFO [2017-06-14 21:05:29:356] <4923> ICHE_FNBCMTID: +INFO [2017-06-14 21:05:29:356] <4923> ICHE_APTRTS: +INFO [2017-06-14 21:05:29:356] <4923> ICHE_REMARK1: +INFO [2017-06-14 21:05:29:356] <4923> ICHE_REMARK2: +INFO [2017-06-14 21:05:29:356] <4923> ICHE_ECWYN: +INFO [2017-06-14 21:05:29:356] <4923> ICHE_ECWID: +INFO [2017-06-14 21:05:29:356] <4923> ICHE_ECWAMT1: +INFO [2017-06-14 21:05:29:356] <4923> ICHE_ECWAMT2: +INFO [2017-06-14 21:05:29:356] <4923> ICHE_CASHYN:N +INFO [2017-06-14 21:05:29:356] <4923> ICHE_CASHGUBUN_CD: +INFO [2017-06-14 21:05:29:356] <4923> ICHE_CASHID_NO: +INFO [2017-06-14 21:05:29:356] <4923> ICHEARS_SOCKETYN: +INFO [2017-06-14 21:05:29:356] <4923> ICHEARS_ADMNO: +INFO [2017-06-14 21:05:29:356] <4923> ICHEARS_POSMTID: +INFO [2017-06-14 21:05:29:356] <4923> ICHEARS_CENTERCD: +INFO [2017-06-14 21:05:29:356] <4923> ICHEARS_HPNO: +INFO [2017-06-14 21:05:29:356] <4923> Make NetCancel ID Start +INFO [2017-06-14 21:05:29:356] <4923> AEGIS_VISAwomenscare_20170614210529356351 +INFO [2017-06-14 21:05:29:356] <4923> Make NetCancel ID End +INFO [2017-06-14 21:05:29:356] <4923> Make NetCancelID OK +INFO [2017-06-14 21:05:29:357] <4923> Make Msg Start +INFO [2017-06-14 21:05:29:357] <4923> Encrypt Start +INFO [2017-06-14 21:05:29:357] <4923> Encrypt End +INFO [2017-06-14 21:05:29:357] <4923> Encrypt Start +INFO [2017-06-14 21:05:29:357] <4923> Encrypt End +INFO [2017-06-14 21:05:29:357] <4923> Encrypt Start +INFO [2017-06-14 21:05:29:357] <4923> Encrypt End +INFO [2017-06-14 21:05:29:357] <4923> Encrypt Start +INFO [2017-06-14 21:05:29:357] <4923> Encrypt End +INFO [2017-06-14 21:05:29:357] <4923> card-visa3d Make MSG OK +INFO [2017-06-14 21:05:29:357] <4923> Make Msg End +INFO [2017-06-14 21:05:29:357] <4923> Make Pay Msg OK +INFO [2017-06-14 21:05:29:357] <4923> Send & Recv Msg Start +INFO [2017-06-14 21:05:29:357] <4923> Send Data To PG Start [ +INFO [2017-06-14 21:05:29:357] <4923> 0:0003740plug15 +INFO [2017-06-14 21:05:29:357] <4923> 1:womenscare +INFO [2017-06-14 21:05:29:357] <4923> 2:test +INFO [2017-06-14 21:05:29:357] <4923> 3:4000 +INFO [2017-06-14 21:05:29:357] <4923> 4:20170614210500T73872 +INFO [2017-06-14 21:05:29:357] <4923> 5:9000400001 +INFO [2017-06-14 21:05:29:357] <4923> 6:9400179197701190 +INFO [2017-06-14 21:05:29:357] <4923> 7:283587 +INFO [2017-06-14 21:05:29:357] <4923> 8:00 +INFO [2017-06-14 21:05:29:357] <4923> 9:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-14 21:05:29:357] <4923> 10: +INFO [2017-06-14 21:05:29:357] <4923> 11: +INFO [2017-06-14 21:05:29:357] <4923> 12:test +INFO [2017-06-14 21:05:29:357] <4923> 13:02-123-1234 +INFO [2017-06-14 21:05:29:357] <4923> 14:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-14 21:05:29:357] <4923> 15:테스트아이디 +INFO [2017-06-14 21:05:29:357] <4923> 16:211.243.232.13;02-123-1234 +INFO [2017-06-14 21:05:29:357] <4923> 17:test@naver.com; +INFO [2017-06-14 21:05:29:357] <4923> 18:테스트 +INFO [2017-06-14 21:05:29:357] <4923> 19:AAABB2eJMiAXBhQhBYkyAAAAMRc= +INFO [2017-06-14 21:05:29:357] <4923> 20:MjAxNzA2MTQyMTA1MTcyMjIxMjA= +INFO [2017-06-14 21:05:29:357] <4923> 21:05 +INFO [2017-06-14 21:05:29:357] <4923> 22:test@naver.com +INFO [2017-06-14 21:05:29:357] <4923> 23:AEGIS_VISAwomenscare_20170614210529356351 +INFO [2017-06-14 21:05:29:357] <4923> 24: +INFO [2017-06-14 21:05:29:357] <4923> ] Send Data To PG End +INFO [2017-06-14 21:05:29:357] <4923> SendMsg : [0003740plug15|womenscare|test|4000|20170614210500T73872|9000400001|9400179197701190|283587|00|N;211.243.232.13;N;;4000;;;;;|||test|02-123-1234|서울 관악구 난향길 5 (신림동)123456|테스트아이디|211.243.232.13;02-123-1234|test@naver.com;|테스트|AAABB2eJMiAXBhQhBYkyAAAAMRc=|MjAxNzA2MTQyMTA1MTcyMjIxMjA=|05|test@naver.com|AEGIS_VISAwomenscare_20170614210529356351|] +INFO [2017-06-14 21:05:29:357] <4923> Connect IP:[121.133.126.1] Port:[29760] +INFO [2017-06-14 21:05:29:360] <4923> Socket Open OK +INFO [2017-06-14 21:05:29:971] <4923> RecvMsg Length : [000112] +INFO [2017-06-14 21:05:29:971] <4923> RecvMsg : [womenscare|0610|20170614210500T73872| |000000004000|n|83-īȭ||20170614210533|0500||0||542721| +] +INFO [2017-06-14 21:05:29:971] <4923> Socket Close OK +INFO [2017-06-14 21:05:29:971] <4923> RecvMsg Length Check OK +INFO [2017-06-14 21:05:29:971] <4923> Send & Recv Msg End +INFO [2017-06-14 21:05:29:971] <4923> Send & Recv Msg OK +INFO [2017-06-14 21:05:29:971] <4923> Parse Msg Start +INFO [2017-06-14 21:05:29:971] <4923> card-visa3d RECV MSG Parsing OK +INFO [2017-06-14 21:05:29:972] <4923> Parse Msg End +INFO [2017-06-14 21:05:29:972] <4923> Msg Parsing OK +INFO [2017-06-14 21:05:29:972] <4923> card Pay Result Value [ +INFO [2017-06-14 21:05:29:972] <4923> NetCancID:AEGIS_VISAwomenscare_20170614210529356351 +INFO [2017-06-14 21:05:29:972] <4923> rStoreId:womenscare +INFO [2017-06-14 21:05:29:972] <4923> rBusiCd:0610 +INFO [2017-06-14 21:05:29:972] <4923> rOrdNo:20170614210500T73872 +INFO [2017-06-14 21:05:29:972] <4923> rApprNo: +INFO [2017-06-14 21:05:29:972] <4923> rInstmt:00 +INFO [2017-06-14 21:05:29:972] <4923> rAmt:000000004000 +INFO [2017-06-14 21:05:29:972] <4923> rSuccYn:n +INFO [2017-06-14 21:05:29:972] <4923> rResMsg:83-īȭ +INFO [2017-06-14 21:05:29:972] <4923> rCardNm: +INFO [2017-06-14 21:05:29:972] <4923> rApprTm:20170614210533 +INFO [2017-06-14 21:05:29:972] <4923> rCardCd:0500 +INFO [2017-06-14 21:05:29:972] <4923> rMembNo: +INFO [2017-06-14 21:05:29:972] <4923> rAquiCd:0 +INFO [2017-06-14 21:05:29:972] <4923> rAquiNm: +INFO [2017-06-14 21:05:29:972] <4923> rDealNo:542721 +INFO [2017-06-14 21:05:29:972] <4923> rProdNm:테스트 +INFO [2017-06-14 21:05:29:972] <4923> ] +INFO [2017-06-14 21:05:29:972] <4923> END 83-īȭ Transaction time:[0.62sec] +INFO [2017-06-14 21:05:29:973] <4923> =============================================================== diff --git a/module/shop/pg/agspay/log/AgsPay40_php_womenscare_170615.log b/module/shop/pg/agspay/log/AgsPay40_php_womenscare_170615.log new file mode 100644 index 0000000..d25f33e --- /dev/null +++ b/module/shop/pg/agspay/log/AgsPay40_php_womenscare_170615.log @@ -0,0 +1,326 @@ +INFO [2017-06-15 19:23:41:947] <14043> =============================================================== +INFO [2017-06-15 19:23:41:947] <14043> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.14) +INFO [2017-06-15 19:23:41:948] <14043> card Pay Start! +INFO [2017-06-15 19:23:41:948] <14043> AgsPayHome:/home/igrowlaser/www2/module/shop/pg/agspay +INFO [2017-06-15 19:23:41:948] <14043> StoreId:womenscare +INFO [2017-06-15 19:23:41:948] <14043> log:true +INFO [2017-06-15 19:23:41:948] <14043> logLevel:INFO +INFO [2017-06-15 19:23:41:948] <14043> UseNetCancel:true +INFO [2017-06-15 19:23:41:948] <14043> Type:Pay +INFO [2017-06-15 19:23:41:948] <14043> RecvLen:7 +INFO [2017-06-15 19:23:41:948] <14043> AuthTy:card +INFO [2017-06-15 19:23:41:948] <14043> SubTy:visa3d +INFO [2017-06-15 19:23:41:948] <14043> OrdNo:20170615192202T49569 +INFO [2017-06-15 19:23:41:948] <14043> Amt:4000 +INFO [2017-06-15 19:23:41:948] <14043> UserEmail:test@naver.com +INFO [2017-06-15 19:23:41:948] <14043> ProdNm:축구공 +INFO [2017-06-15 19:23:41:948] <14043> MallUrl:http://igrowlaser.phpweb.co.kr +INFO [2017-06-15 19:23:41:948] <14043> UserId:test +INFO [2017-06-15 19:23:41:948] <14043> OrdNm:테스트아이디 +INFO [2017-06-15 19:23:41:948] <14043> OrdPhone:02-123-1234 +INFO [2017-06-15 19:23:41:948] <14043> OrdAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-15 19:23:41:948] <14043> RcpNm:test +INFO [2017-06-15 19:23:41:948] <14043> RcpPhone:02-123-1234 +INFO [2017-06-15 19:23:41:949] <14043> DlvAddr:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-15 19:23:41:949] <14043> Remark: +INFO [2017-06-15 19:23:41:949] <14043> DeviId:9000400001 +INFO [2017-06-15 19:23:41:949] <14043> AuthYn:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-15 19:23:41:949] <14043> Instmt:00 +INFO [2017-06-15 19:23:41:949] <14043> UserIp:211.243.232.13 +INFO [2017-06-15 19:23:41:949] <14043> partial_mm: +INFO [2017-06-15 19:23:41:949] <14043> noIntMonth: +INFO [2017-06-15 19:23:41:949] <14043> KVP_CURRENCY:WON +INFO [2017-06-15 19:23:41:949] <14043> KVP_CARDCODE: +INFO [2017-06-15 19:23:41:949] <14043> KVP_SESSIONKEY: +INFO [2017-06-15 19:23:41:949] <14043> KVP_ENCDATA: +INFO [2017-06-15 19:23:41:949] <14043> KVP_CONAME: +INFO [2017-06-15 19:23:41:949] <14043> KVP_NOINT: +INFO [2017-06-15 19:23:41:949] <14043> KVP_QUOTA: +INFO [2017-06-15 19:23:41:949] <14043> CardNo:5107374327239679 +INFO [2017-06-15 19:23:41:949] <14043> MPI_CAVV:AAABCWRAFyAXBhUZI0AXAAAAMRc= +INFO [2017-06-15 19:23:41:949] <14043> MPI_ECI:05 +INFO [2017-06-15 19:23:41:949] <14043> MPI_MD64:MjAxNzA2MTUxOTIzMzE2MjMxMjA= +INFO [2017-06-15 19:23:41:949] <14043> ExpMon:12 +INFO [2017-06-15 19:23:41:949] <14043> ExpYear:2049 +INFO [2017-06-15 19:23:41:949] <14043> Passwd: +INFO [2017-06-15 19:23:41:950] <14043> SocId: +INFO [2017-06-15 19:23:41:950] <14043> ICHE_OUTBANKNAME: +INFO [2017-06-15 19:23:41:950] <14043> ICHE_OUTACCTNO: +INFO [2017-06-15 19:23:41:950] <14043> ICHE_OUTBANKMASTER: +INFO [2017-06-15 19:23:41:950] <14043> ICHE_AMOUNT: +INFO [2017-06-15 19:23:41:950] <14043> HP_SERVERINFO: +INFO [2017-06-15 19:23:41:950] <14043> HP_HANDPHONE: +INFO [2017-06-15 19:23:41:950] <14043> HP_COMPANY: +INFO [2017-06-15 19:23:41:950] <14043> HP_ID: +INFO [2017-06-15 19:23:41:950] <14043> HP_SUBID: +INFO [2017-06-15 19:23:41:950] <14043> HP_UNITType: +INFO [2017-06-15 19:23:41:950] <14043> HP_IDEN: +INFO [2017-06-15 19:23:41:950] <14043> HP_IPADDR: +INFO [2017-06-15 19:23:41:950] <14043> ARS_NAME: +INFO [2017-06-15 19:23:41:950] <14043> ARS_PHONE: +INFO [2017-06-15 19:23:41:950] <14043> VIRTUAL_CENTERCD:99 +INFO [2017-06-15 19:23:41:950] <14043> VIRTUAL_DEPODT: +INFO [2017-06-15 19:23:41:950] <14043> ZuminCode: +INFO [2017-06-15 19:23:41:950] <14043> MallPage:/shop.php?goPage=PayCard&order_no=20170615192202T49569 +INFO [2017-06-15 19:23:41:950] <14043> VIRTUAL_NO: +INFO [2017-06-15 19:23:41:950] <14043> ES_SENDNO: +INFO [2017-06-15 19:23:41:950] <14043> ICHE_SOCKETYN:Y +INFO [2017-06-15 19:23:41:951] <14043> ICHE_POSMTID: +INFO [2017-06-15 19:23:41:951] <14043> ICHE_FNBCMTID: +INFO [2017-06-15 19:23:41:951] <14043> ICHE_APTRTS: +INFO [2017-06-15 19:23:41:951] <14043> ICHE_REMARK1: +INFO [2017-06-15 19:23:41:951] <14043> ICHE_REMARK2: +INFO [2017-06-15 19:23:41:951] <14043> ICHE_ECWYN: +INFO [2017-06-15 19:23:41:951] <14043> ICHE_ECWID: +INFO [2017-06-15 19:23:41:951] <14043> ICHE_ECWAMT1: +INFO [2017-06-15 19:23:41:951] <14043> ICHE_ECWAMT2: +INFO [2017-06-15 19:23:41:951] <14043> ICHE_CASHYN:N +INFO [2017-06-15 19:23:41:951] <14043> ICHE_CASHGUBUN_CD: +INFO [2017-06-15 19:23:41:951] <14043> ICHE_CASHID_NO: +INFO [2017-06-15 19:23:41:951] <14043> ICHEARS_SOCKETYN: +INFO [2017-06-15 19:23:41:951] <14043> ICHEARS_ADMNO: +INFO [2017-06-15 19:23:41:951] <14043> ICHEARS_POSMTID: +INFO [2017-06-15 19:23:41:951] <14043> ICHEARS_CENTERCD: +INFO [2017-06-15 19:23:41:951] <14043> ICHEARS_HPNO: +INFO [2017-06-15 19:23:41:951] <14043> Make NetCancel ID Start +INFO [2017-06-15 19:23:41:951] <14043> AEGIS_VISAwomenscare_20170615192341951171 +INFO [2017-06-15 19:23:41:951] <14043> Make NetCancel ID End +INFO [2017-06-15 19:23:41:952] <14043> Make NetCancelID OK +INFO [2017-06-15 19:23:41:952] <14043> Make Msg Start +INFO [2017-06-15 19:23:41:952] <14043> Encrypt Start +INFO [2017-06-15 19:23:41:952] <14043> Encrypt End +INFO [2017-06-15 19:23:41:952] <14043> Encrypt Start +INFO [2017-06-15 19:23:41:952] <14043> Encrypt End +INFO [2017-06-15 19:23:41:952] <14043> Encrypt Start +INFO [2017-06-15 19:23:41:952] <14043> Encrypt End +INFO [2017-06-15 19:23:41:952] <14043> Encrypt Start +INFO [2017-06-15 19:23:41:952] <14043> Encrypt End +INFO [2017-06-15 19:23:41:952] <14043> card-visa3d Make MSG OK +INFO [2017-06-15 19:23:41:952] <14043> Make Msg End +INFO [2017-06-15 19:23:41:952] <14043> Make Pay Msg OK +INFO [2017-06-15 19:23:41:952] <14043> Send & Recv Msg Start +INFO [2017-06-15 19:23:41:952] <14043> Send Data To PG Start [ +INFO [2017-06-15 19:23:41:952] <14043> 0:0003740plug15 +INFO [2017-06-15 19:23:41:952] <14043> 1:womenscare +INFO [2017-06-15 19:23:41:952] <14043> 2:test +INFO [2017-06-15 19:23:41:952] <14043> 3:4000 +INFO [2017-06-15 19:23:41:952] <14043> 4:20170615192202T49569 +INFO [2017-06-15 19:23:41:952] <14043> 5:9000400001 +INFO [2017-06-15 19:23:41:952] <14043> 6:9400179197701190 +INFO [2017-06-15 19:23:41:952] <14043> 7:283587 +INFO [2017-06-15 19:23:41:952] <14043> 8:00 +INFO [2017-06-15 19:23:41:952] <14043> 9:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-15 19:23:41:952] <14043> 10: +INFO [2017-06-15 19:23:41:952] <14043> 11: +INFO [2017-06-15 19:23:41:952] <14043> 12:test +INFO [2017-06-15 19:23:41:952] <14043> 13:02-123-1234 +INFO [2017-06-15 19:23:41:952] <14043> 14:서울 관악구 난향길 5 (신림동)123456 +INFO [2017-06-15 19:23:41:952] <14043> 15:테스트아이디 +INFO [2017-06-15 19:23:41:952] <14043> 16:211.243.232.13;02-123-1234 +INFO [2017-06-15 19:23:41:952] <14043> 17:test@naver.com; +INFO [2017-06-15 19:23:41:952] <14043> 18:축구공 +INFO [2017-06-15 19:23:41:952] <14043> 19:AAABCWRAFyAXBhUZI0AXAAAAMRc= +INFO [2017-06-15 19:23:41:952] <14043> 20:MjAxNzA2MTUxOTIzMzE2MjMxMjA= +INFO [2017-06-15 19:23:41:952] <14043> 21:05 +INFO [2017-06-15 19:23:41:952] <14043> 22:test@naver.com +INFO [2017-06-15 19:23:41:952] <14043> 23:AEGIS_VISAwomenscare_20170615192341951171 +INFO [2017-06-15 19:23:41:952] <14043> 24: +INFO [2017-06-15 19:23:41:952] <14043> ] Send Data To PG End +INFO [2017-06-15 19:23:41:952] <14043> SendMsg : [0003740plug15|womenscare|test|4000|20170615192202T49569|9000400001|9400179197701190|283587|00|N;211.243.232.13;N;;4000;;;;;|||test|02-123-1234|서울 관악구 난향길 5 (신림동)123456|테스트아이디|211.243.232.13;02-123-1234|test@naver.com;|축구공|AAABCWRAFyAXBhUZI0AXAAAAMRc=|MjAxNzA2MTUxOTIzMzE2MjMxMjA=|05|test@naver.com|AEGIS_VISAwomenscare_20170615192341951171|] +INFO [2017-06-15 19:23:41:952] <14043> Connect IP:[121.133.126.1] Port:[29760] +INFO [2017-06-15 19:23:41:955] <14043> Socket Open OK +INFO [2017-06-15 19:23:42:412] <14043> RecvMsg Length : [000112] +INFO [2017-06-15 19:23:42:413] <14043> RecvMsg : [womenscare|0610|20170615192202T49569| |000000004000|n|83-ī�����ȭ���||20170615192350|0500||0||656947| +] +INFO [2017-06-15 19:23:42:413] <14043> Socket Close OK +INFO [2017-06-15 19:23:42:413] <14043> RecvMsg Length Check OK +INFO [2017-06-15 19:23:42:413] <14043> Send & Recv Msg End +INFO [2017-06-15 19:23:42:413] <14043> Send & Recv Msg OK +INFO [2017-06-15 19:23:42:413] <14043> Parse Msg Start +INFO [2017-06-15 19:23:42:413] <14043> card-visa3d RECV MSG Parsing OK +INFO [2017-06-15 19:23:42:413] <14043> Parse Msg End +INFO [2017-06-15 19:23:42:413] <14043> Msg Parsing OK +INFO [2017-06-15 19:23:42:413] <14043> card Pay Result Value [ +INFO [2017-06-15 19:23:42:413] <14043> NetCancID:AEGIS_VISAwomenscare_20170615192341951171 +INFO [2017-06-15 19:23:42:413] <14043> rStoreId:womenscare +INFO [2017-06-15 19:23:42:413] <14043> rBusiCd:0610 +INFO [2017-06-15 19:23:42:413] <14043> rOrdNo:20170615192202T49569 +INFO [2017-06-15 19:23:42:413] <14043> rApprNo: +INFO [2017-06-15 19:23:42:413] <14043> rInstmt:00 +INFO [2017-06-15 19:23:42:413] <14043> rAmt:000000004000 +INFO [2017-06-15 19:23:42:413] <14043> rSuccYn:n +INFO [2017-06-15 19:23:42:413] <14043> rResMsg:83-ī�����ȭ��� +INFO [2017-06-15 19:23:42:413] <14043> rCardNm: +INFO [2017-06-15 19:23:42:414] <14043> rApprTm:20170615192350 +INFO [2017-06-15 19:23:42:414] <14043> rCardCd:0500 +INFO [2017-06-15 19:23:42:414] <14043> rMembNo: +INFO [2017-06-15 19:23:42:414] <14043> rAquiCd:0 +INFO [2017-06-15 19:23:42:414] <14043> rAquiNm: +INFO [2017-06-15 19:23:42:414] <14043> rDealNo:656947 +INFO [2017-06-15 19:23:42:414] <14043> rProdNm:축구공 +INFO [2017-06-15 19:23:42:414] <14043> ] +INFO [2017-06-15 19:23:42:414] <14043> END 83-ī�����ȭ��� Transaction time:[0.46sec] +INFO [2017-06-15 19:23:42:414] <14043> =============================================================== +INFO [2017-06-15 19:33:49:399] <14063> =============================================================== +INFO [2017-06-15 19:33:49:399] <14063> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.14) +INFO [2017-06-15 19:33:49:399] <14063> card Pay Start! +INFO [2017-06-15 19:33:49:399] <14063> AgsPayHome:/home/igrowlaser/www2/module/shop/pg/agspay +INFO [2017-06-15 19:33:49:399] <14063> StoreId:womenscare +INFO [2017-06-15 19:33:49:399] <14063> log:true +INFO [2017-06-15 19:33:49:399] <14063> logLevel:INFO +INFO [2017-06-15 19:33:49:399] <14063> UseNetCancel:true +INFO [2017-06-15 19:33:49:399] <14063> Type:Pay +INFO [2017-06-15 19:33:49:399] <14063> RecvLen:7 +INFO [2017-06-15 19:33:49:399] <14063> AuthTy:card +INFO [2017-06-15 19:33:49:399] <14063> SubTy:visa3d +INFO [2017-06-15 19:33:49:399] <14063> OrdNo:20170615192202T49569 +INFO [2017-06-15 19:33:49:399] <14063> Amt:4000 +INFO [2017-06-15 19:33:49:399] <14063> UserEmail:test@naver.com +INFO [2017-06-15 19:33:49:399] <14063> ProdNm:�౸�� +INFO [2017-06-15 19:33:49:399] <14063> MallUrl:http://igrowlaser.phpweb.co.kr +INFO [2017-06-15 19:33:49:399] <14063> UserId:test +INFO [2017-06-15 19:33:49:400] <14063> OrdNm:�׽�Ʈ���̵� +INFO [2017-06-15 19:33:49:400] <14063> OrdPhone:02-123-1234 +INFO [2017-06-15 19:33:49:400] <14063> OrdAddr:���� ���DZ� ����� 5 (�Ÿ���)123456 +INFO [2017-06-15 19:33:49:400] <14063> RcpNm:test +INFO [2017-06-15 19:33:49:400] <14063> RcpPhone:02-123-1234 +INFO [2017-06-15 19:33:49:400] <14063> DlvAddr:���� ���DZ� ����� 5 (�Ÿ���)123456 +INFO [2017-06-15 19:33:49:400] <14063> Remark: +INFO [2017-06-15 19:33:49:400] <14063> DeviId:9000400001 +INFO [2017-06-15 19:33:49:400] <14063> AuthYn:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-15 19:33:49:400] <14063> Instmt:00 +INFO [2017-06-15 19:33:49:400] <14063> UserIp:211.243.232.13 +INFO [2017-06-15 19:33:49:400] <14063> partial_mm: +INFO [2017-06-15 19:33:49:400] <14063> noIntMonth: +INFO [2017-06-15 19:33:49:400] <14063> KVP_CURRENCY:WON +INFO [2017-06-15 19:33:49:400] <14063> KVP_CARDCODE: +INFO [2017-06-15 19:33:49:400] <14063> KVP_SESSIONKEY: +INFO [2017-06-15 19:33:49:400] <14063> KVP_ENCDATA: +INFO [2017-06-15 19:33:49:400] <14063> KVP_CONAME: +INFO [2017-06-15 19:33:49:400] <14063> KVP_NOINT: +INFO [2017-06-15 19:33:49:400] <14063> KVP_QUOTA: +INFO [2017-06-15 19:33:49:400] <14063> CardNo:5107374327239679 +INFO [2017-06-15 19:33:49:400] <14063> MPI_CAVV:AAABABJHASAXBhUZM0cBAAAAMRc= +INFO [2017-06-15 19:33:49:400] <14063> MPI_ECI:05 +INFO [2017-06-15 19:33:49:401] <14063> MPI_MD64:MjAxNzA2MTUxOTMzNDEzOTExMjA= +INFO [2017-06-15 19:33:49:401] <14063> ExpMon:12 +INFO [2017-06-15 19:33:49:401] <14063> ExpYear:2049 +INFO [2017-06-15 19:33:49:401] <14063> Passwd: +INFO [2017-06-15 19:33:49:401] <14063> SocId: +INFO [2017-06-15 19:33:49:401] <14063> ICHE_OUTBANKNAME: +INFO [2017-06-15 19:33:49:401] <14063> ICHE_OUTACCTNO: +INFO [2017-06-15 19:33:49:401] <14063> ICHE_OUTBANKMASTER: +INFO [2017-06-15 19:33:49:401] <14063> ICHE_AMOUNT: +INFO [2017-06-15 19:33:49:401] <14063> HP_SERVERINFO: +INFO [2017-06-15 19:33:49:401] <14063> HP_HANDPHONE: +INFO [2017-06-15 19:33:49:401] <14063> HP_COMPANY: +INFO [2017-06-15 19:33:49:401] <14063> HP_ID: +INFO [2017-06-15 19:33:49:401] <14063> HP_SUBID: +INFO [2017-06-15 19:33:49:401] <14063> HP_UNITType: +INFO [2017-06-15 19:33:49:401] <14063> HP_IDEN: +INFO [2017-06-15 19:33:49:401] <14063> HP_IPADDR: +INFO [2017-06-15 19:33:49:401] <14063> ARS_NAME: +INFO [2017-06-15 19:33:49:401] <14063> ARS_PHONE: +INFO [2017-06-15 19:33:49:401] <14063> VIRTUAL_CENTERCD:99 +INFO [2017-06-15 19:33:49:401] <14063> VIRTUAL_DEPODT: +INFO [2017-06-15 19:33:49:401] <14063> ZuminCode: +INFO [2017-06-15 19:33:49:402] <14063> MallPage:/shop.php?goPage=PayCard&order_no=20170615192202T49569 +INFO [2017-06-15 19:33:49:402] <14063> VIRTUAL_NO: +INFO [2017-06-15 19:33:49:402] <14063> ES_SENDNO: +INFO [2017-06-15 19:33:49:402] <14063> ICHE_SOCKETYN:Y +INFO [2017-06-15 19:33:49:402] <14063> ICHE_POSMTID: +INFO [2017-06-15 19:33:49:402] <14063> ICHE_FNBCMTID: +INFO [2017-06-15 19:33:49:402] <14063> ICHE_APTRTS: +INFO [2017-06-15 19:33:49:402] <14063> ICHE_REMARK1: +INFO [2017-06-15 19:33:49:402] <14063> ICHE_REMARK2: +INFO [2017-06-15 19:33:49:402] <14063> ICHE_ECWYN: +INFO [2017-06-15 19:33:49:402] <14063> ICHE_ECWID: +INFO [2017-06-15 19:33:49:402] <14063> ICHE_ECWAMT1: +INFO [2017-06-15 19:33:49:402] <14063> ICHE_ECWAMT2: +INFO [2017-06-15 19:33:49:402] <14063> ICHE_CASHYN:N +INFO [2017-06-15 19:33:49:402] <14063> ICHE_CASHGUBUN_CD: +INFO [2017-06-15 19:33:49:402] <14063> ICHE_CASHID_NO: +INFO [2017-06-15 19:33:49:402] <14063> ICHEARS_SOCKETYN: +INFO [2017-06-15 19:33:49:402] <14063> ICHEARS_ADMNO: +INFO [2017-06-15 19:33:49:402] <14063> ICHEARS_POSMTID: +INFO [2017-06-15 19:33:49:402] <14063> ICHEARS_CENTERCD: +INFO [2017-06-15 19:33:49:402] <14063> ICHEARS_HPNO: +INFO [2017-06-15 19:33:49:402] <14063> Make NetCancel ID Start +INFO [2017-06-15 19:33:49:403] <14063> AEGIS_VISAwomenscare_20170615193349403598 +INFO [2017-06-15 19:33:49:403] <14063> Make NetCancel ID End +INFO [2017-06-15 19:33:49:403] <14063> Make NetCancelID OK +INFO [2017-06-15 19:33:49:403] <14063> Make Msg Start +INFO [2017-06-15 19:33:49:403] <14063> Encrypt Start +INFO [2017-06-15 19:33:49:403] <14063> Encrypt End +INFO [2017-06-15 19:33:49:403] <14063> Encrypt Start +INFO [2017-06-15 19:33:49:403] <14063> Encrypt End +INFO [2017-06-15 19:33:49:403] <14063> Encrypt Start +INFO [2017-06-15 19:33:49:403] <14063> Encrypt End +INFO [2017-06-15 19:33:49:403] <14063> Encrypt Start +INFO [2017-06-15 19:33:49:403] <14063> Encrypt End +INFO [2017-06-15 19:33:49:403] <14063> card-visa3d Make MSG OK +INFO [2017-06-15 19:33:49:403] <14063> Make Msg End +INFO [2017-06-15 19:33:49:403] <14063> Make Pay Msg OK +INFO [2017-06-15 19:33:49:403] <14063> Send & Recv Msg Start +INFO [2017-06-15 19:33:49:403] <14063> Send Data To PG Start [ +INFO [2017-06-15 19:33:49:403] <14063> 0:0003540plug15 +INFO [2017-06-15 19:33:49:403] <14063> 1:womenscare +INFO [2017-06-15 19:33:49:403] <14063> 2:test +INFO [2017-06-15 19:33:49:403] <14063> 3:4000 +INFO [2017-06-15 19:33:49:403] <14063> 4:20170615192202T49569 +INFO [2017-06-15 19:33:49:403] <14063> 5:9000400001 +INFO [2017-06-15 19:33:49:403] <14063> 6:9400179197701190 +INFO [2017-06-15 19:33:49:403] <14063> 7:283587 +INFO [2017-06-15 19:33:49:403] <14063> 8:00 +INFO [2017-06-15 19:33:49:403] <14063> 9:N;211.243.232.13;N;;4000;;;;; +INFO [2017-06-15 19:33:49:403] <14063> 10: +INFO [2017-06-15 19:33:49:403] <14063> 11: +INFO [2017-06-15 19:33:49:403] <14063> 12:test +INFO [2017-06-15 19:33:49:403] <14063> 13:02-123-1234 +INFO [2017-06-15 19:33:49:403] <14063> 14:���� ���DZ� ����� 5 (�Ÿ���)123456 +INFO [2017-06-15 19:33:49:403] <14063> 15:�׽�Ʈ���̵� +INFO [2017-06-15 19:33:49:403] <14063> 16:211.243.232.13;02-123-1234 +INFO [2017-06-15 19:33:49:403] <14063> 17:test@naver.com; +INFO [2017-06-15 19:33:49:403] <14063> 18:�౸�� +INFO [2017-06-15 19:33:49:403] <14063> 19:AAABABJHASAXBhUZM0cBAAAAMRc= +INFO [2017-06-15 19:33:49:403] <14063> 20:MjAxNzA2MTUxOTMzNDEzOTExMjA= +INFO [2017-06-15 19:33:49:403] <14063> 21:05 +INFO [2017-06-15 19:33:49:403] <14063> 22:test@naver.com +INFO [2017-06-15 19:33:49:403] <14063> 23:AEGIS_VISAwomenscare_20170615193349403598 +INFO [2017-06-15 19:33:49:403] <14063> 24: +INFO [2017-06-15 19:33:49:404] <14063> ] Send Data To PG End +INFO [2017-06-15 19:33:49:404] <14063> SendMsg : [0003540plug15|womenscare|test|4000|20170615192202T49569|9000400001|9400179197701190|283587|00|N;211.243.232.13;N;;4000;;;;;|||test|02-123-1234|���� ���DZ� ����� 5 (�Ÿ���)123456|�׽�Ʈ���̵�|211.243.232.13;02-123-1234|test@naver.com;|�౸��|AAABABJHASAXBhUZM0cBAAAAMRc=|MjAxNzA2MTUxOTMzNDEzOTExMjA=|05|test@naver.com|AEGIS_VISAwomenscare_20170615193349403598|] +INFO [2017-06-15 19:33:49:404] <14063> Connect IP:[121.133.126.1] Port:[29760] +INFO [2017-06-15 19:33:49:406] <14063> Socket Open OK +INFO [2017-06-15 19:33:50:403] <14063> RecvMsg Length : [000122] +INFO [2017-06-15 19:33:50:403] <14063> RecvMsg : [womenscare|0610|20170615192202T49569|28774338|000000004000|y|�������|����|20170615193357|0500|18570317|0500|����|657154| +] +INFO [2017-06-15 19:33:50:403] <14063> Socket Close OK +INFO [2017-06-15 19:33:50:403] <14063> RecvMsg Length Check OK +INFO [2017-06-15 19:33:50:403] <14063> Send & Recv Msg End +INFO [2017-06-15 19:33:50:403] <14063> Send & Recv Msg OK +INFO [2017-06-15 19:33:50:404] <14063> Parse Msg Start +INFO [2017-06-15 19:33:50:404] <14063> card-visa3d RECV MSG Parsing OK +INFO [2017-06-15 19:33:50:404] <14063> Parse Msg End +INFO [2017-06-15 19:33:50:404] <14063> Msg Parsing OK +INFO [2017-06-15 19:33:50:404] <14063> card Pay Result Value [ +INFO [2017-06-15 19:33:50:404] <14063> NetCancID:AEGIS_VISAwomenscare_20170615193349403598 +INFO [2017-06-15 19:33:50:404] <14063> rStoreId:womenscare +INFO [2017-06-15 19:33:50:404] <14063> rBusiCd:0610 +INFO [2017-06-15 19:33:50:404] <14063> rOrdNo:20170615192202T49569 +INFO [2017-06-15 19:33:50:404] <14063> rApprNo:28774338 +INFO [2017-06-15 19:33:50:404] <14063> rInstmt:00 +INFO [2017-06-15 19:33:50:404] <14063> rAmt:000000004000 +INFO [2017-06-15 19:33:50:404] <14063> rSuccYn:y +INFO [2017-06-15 19:33:50:404] <14063> rResMsg:������� +INFO [2017-06-15 19:33:50:404] <14063> rCardNm:���� +INFO [2017-06-15 19:33:50:404] <14063> rApprTm:20170615193357 +INFO [2017-06-15 19:33:50:404] <14063> rCardCd:0500 +INFO [2017-06-15 19:33:50:404] <14063> rMembNo:18570317 +INFO [2017-06-15 19:33:50:404] <14063> rAquiCd:0500 +INFO [2017-06-15 19:33:50:404] <14063> rAquiNm:���� +INFO [2017-06-15 19:33:50:404] <14063> rDealNo:657154 +INFO [2017-06-15 19:33:50:404] <14063> rProdNm:�౸�� +INFO [2017-06-15 19:33:50:405] <14063> ] +INFO [2017-06-15 19:33:50:405] <14063> END ������� Transaction time:[1.01sec] +INFO [2017-06-15 19:33:50:405] <14063> =============================================================== diff --git a/module/shop/pg/agspay/progress.gif b/module/shop/pg/agspay/progress.gif new file mode 100644 index 0000000..cec0ccb Binary files /dev/null and b/module/shop/pg/agspay/progress.gif differ diff --git a/module/shop/pg/agspay_bak/AGSLib.php b/module/shop/pg/agspay_bak/AGSLib.php new file mode 100644 index 0000000..f628f0d --- /dev/null +++ b/module/shop/pg/agspay_bak/AGSLib.php @@ -0,0 +1,1925 @@ +ERRMSG = ""; + + /* + Log ü + */ + $this->log = new PayLog( $this->REQUEST ); + if(!$this->log->InitLog()) + { + $this->ERRMSG .= "α ϴ.[".$this->REQUEST["AgsPayHome"]."]" ; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = $this->ERRMSG; + return false; + } + + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Start!" ); + + if($this->REQUEST["Type"] == "Cancel") + { + if($this->REQUEST["AuthTy"] == "virtual" ) + { + $this->log->WriteLog( WARN, "Cannot Cancel AuthTy[".$this->REQUEST["AuthTy"]."]" ); + $this->log->CloseLog( "AuthTy[".$this->REQUEST["AuthTy"]."] End"); + return false; + } + } + + /* + û αױ + */ + $this->writeLogArray($this->REQUEST); + + + //ҿû + if($this->REQUEST["Type"] == "Cancel") + { + if( $this->NetCancel() == false ) + { + /* + αױ + */ + $this->log->WriteLog( ERROR,$this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Result Value [" ); + $this->writeLogArray($this->RESULT); + $this->log->WriteLog( ERROR, "]" ); + + $this->log->WriteLog( ERROR, $this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Fail End" ); + $this->payQuit(); + return false; + } + + /* + αױ + */ + $this->log->WriteLog( WARN,$this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Result Value [" ); + $this->writeLogArray($this->RESULT); + $this->log->WriteLog( WARN, "]" ); + + $this->log->WriteLog( WARN, $this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Success End" ); + //log ü ݱ + $this->log->CloseLog( $this->GetResult("rCancelResMsg") ); + return true; + } + + if( empty( $this->REQUEST["StoreId"] ) || $this->REQUEST["StoreId"] == "" ) + { + $this->ERRMSG .= "̵ Է¿ Ȯο
    "; //̵ + } + + if( empty( $this->REQUEST["OrdNo"] ) || $this->REQUEST["OrdNo"] == "" ) + { + $this->ERRMSG .= "ֹȣ Է¿ Ȯο
    "; //ֹȣ + } + + if( empty( $this->REQUEST["ProdNm"] ) || $this->REQUEST["ProdNm"] == "" ) + { + $this->ERRMSG .= "ǰ Է¿ Ȯο
    "; //ǰ + } + + if( empty( $this->REQUEST["Amt"] ) || $this->REQUEST["Amt"] == "" ) + { + $this->ERRMSG .= "ݾ Է¿ Ȯο
    "; //ݾ + } + + if( empty( $this->REQUEST["DeviId"] ) || $this->REQUEST["DeviId"] == "" ) + { + $this->ERRMSG .= "̵ܸ Է¿ Ȯο
    "; //̵ܸ + } + + if( empty( $this->REQUEST["AuthYn"] ) || $this->REQUEST["AuthYn"] == "" ) + { + $this->ERRMSG .= " Է¿ Ȯο
    "; // + } + + if( strlen($this->ERRMSG) == 0 ){ + + /* Make Tid */ + if( ($MakeTIDResult = $this->MakeNetCancID()) != true){ + $this->log->WriteLog( FATAL, "Make NetCancelID Fail" ); + $this->payQuit(); + return false; + }else{ + $this->log->WriteLog( INFO, "Make NetCancelID OK" ); + } + + /* Make Pay Msg */ + if( ($MakeMsgResult = $this->MakeMsg()) != true){ + $this->log->WriteLog( FATAL, "Make Pay Msg Fail" ); + $this->ERRMSG = "û ."; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->payQuit(); + return false; + }else{ + $this->log->WriteLog( INFO, "Make Pay Msg OK" ); + } + + + + /* Send & Recv Msg */ + if( ($ParseResult = $this->SendRecvMsg()) != true){ + $this->log->WriteLog( FATAL, "Send & Recv Msg Fail" ); + $this->ERRMSG = "û ۼ .( Ȯּ)"; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->REQUEST["CancelMsg"] = "Send & Recv Msg Fail"; + $this->log->WriteLog( WARN, "NetCancel Call" ); + if( $this->NetCancel() == false ) // + { + $this->log->WriteLog( FATAL, "NetCancel Fail End" ); + $this->payQuit(); + return false; + } + $this->log->WriteLog( INFO, "NetCancel Success End" ); + $this->payQuit(); + return false; + }else{ + $this->log->WriteLog( INFO, "Send & Recv Msg OK" ); + } + + /* RecvMsg Parsing */ + if( ($ParseResult = $this->ParseMsg()) != true){ + $this->log->WriteLog( FATAL, "Msg Parsing Fail" ); + $this->ERRMSG = " ó .( Ȯּ)"; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->REQUEST["CancelMsg"] = "Msg Parsing Fail"; + $this->log->WriteLog( WARN, "NetCancel Call" ); + if( $this->NetCancel() == false ) // + { + $this->log->WriteLog( FATAL, "NetCancel Fail End" ); + $this->payQuit(); + return false; + } + $this->log->WriteLog( INFO, "NetCancel Success End" ); + $this->payQuit(); + return false; + }else{ + $this->log->WriteLog( INFO, "Msg Parsing OK" ); + } + + } + else + { + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + } + + /* + αױ + */ + + $this->log->WriteLog( INFO,$this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Result Value [" ); + $this->writeLogArray($this->RESULT); + $this->log->WriteLog( INFO, "]" ); + + //log ü ݱ + $this->log->CloseLog( $this->GetResult("rResMsg") ); + + return true; + + } //startPay() End + + + /* + μ + */ + function payQuit() + { + //log ü ݱ + $this->log->CloseLog( $this->GetResult("rResMsg") ); + + /** close **/ + if($this->fp != false ){ + fclose( $this->fp ); + } + + } + + /* + μ + */ + function writeLogArray($array) + { + foreach ($array as $key => $value) + { + $this->log->WriteLog( INFO, $key.":".$value ); + } + } + + /* + û Msg ۽ Msg + */ + function SendRecvMsg() + { + $this->log->WriteLog( INFO, "Send & Recv Msg Start" ); + + /**************************************************************************** + * + * ȣȭProcess ϰ ۼ + * + ****************************************************************************/ + + /** ȣȭProcess **/ + $this->log->WriteLog( INFO, "Send Data To PG Start [ " ); + $this->SendValArray = array(); + $this->SendValArray = explode( "|", $this->sSendMsg ); + $this->log->WriteLog( INFO, $this->SendValArray); + $this->log->WriteLog( INFO, "] Send Data To PG End " ); + $this->log->WriteLog( INFO, "SendMsg : [".$this->sSendMsg."]" ); + + /** open **/ + $this->log->WriteLog( INFO, "Connect IP:[".$this->LOCALADDR."] Port:[".$this->LOCALPORT."]" ); + $this->fp = fsockopen( $this->LOCALADDR, $this->LOCALPORT , &$errno, &$errstr, $this->CONN_TIMEOUT ); + + if( !$this->fp ) + { + $this->log->WriteLog( ERROR, "Socket Connect Error: [".$errno."-".$errstr."]" ); + + /** з ޼ **/ + if($this->REQUEST["Type"] == "Cancel") + { + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = "Socket Connect Fail"; + $this->log->WriteLog( ERROR, $this->RESULT["rCancelResMsg"] ); + } + else + { + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = "Socket Connect Fail"; + $this->log->WriteLog( ERROR, $this->RESULT["rResMsg"] ); + } + if($this->fp) fclose( $this->fp ); + return false; + } + /** ῡ ϿǷ ͸ ޴´. **/ + $this->log->WriteLog( INFO, "Socket Open OK" ); + + fputs( $this->fp, $this->sSendMsg ); + + socket_set_timeout($this->fp, $this->READ_TIMEOUT); + + /** 6Ʈ ̸ üũ ͸ŭ ޴´. **/ + /**************************************************************************** + * + * PHP üũ ߻ ֽϴ + * ޼: () üũ ſ + * üũ Ʒ Ͽ Ͻʽÿ + * $this->sRecvLen = fgets( $this->fp, 6 ); + * $this->sRecvMsg = fgets( $this->fp, $this->sRecvLen ); + * + ****************************************************************************/ + + if($this->REQUEST["RecvLen"] == 7) + { + $this->sRecvLen = fgets( $this->fp, $this->REQUEST["RecvLen"] ); + $this->sRecvMsg = fgets( $this->fp, $this->sRecvLen + 1 ); + } + else if($this->REQUEST["RecvLen"] == 6) + { + $this->sRecvLen = fgets( $this->fp, $this->REQUEST["RecvLen"] ); + $this->sRecvMsg = fgets( $this->fp, $this->sRecvLen); + } + else + { + $this->REQUEST["RecvLen"] = 7; + $this->sRecvLen = fgets( $this->fp, $this->REQUEST["RecvLen"] ); + $this->sRecvMsg = fgets( $this->fp, $this->sRecvLen + 1 ); + } + + $this->log->WriteLog( INFO, "RecvMsg Length : [".$this->sRecvLen."]" ); + $this->log->WriteLog( INFO, "RecvMsg : [".$this->sRecvMsg."]" ); + + /** close **/ + fclose( $this->fp ); + $this->log->WriteLog( INFO, "Socket Close OK"); + + if( strlen( $this->sRecvMsg ) > 0 && strlen( $this->sRecvMsg ) == $this->sRecvLen ) + { + /** () üũ **/ + $this->log->WriteLog( INFO, "RecvMsg Length Check OK"); + + $this->RecvValArray = array(); + $this->RecvValArray = explode( "|", $this->sRecvMsg ); + + /** null Ǵ NULL , 0 ȯ + for( $i = 0; $i < sizeof( $this->RecvValArray); $i++ ) + { + $this->RecvValArray[$i] = trim( $this->RecvValArray[$i] ); + + if( !strcmp( $this->RecvValArray[$i], "null" ) || !strcmp( $this->RecvValArray[$i], "NULL" ) ) + { + $this->RecvValArray[$i] = ""; + } + + if( IsNumber( $this->RecvValArray[$i] ) ) + { + if( $this->RecvValArray[$i] == 0 ) $this->RecvValArray[$i] = ""; + } + } + **/ + $this->log->WriteLog( INFO, "Send & Recv Msg End" ); + return true; + } + else + { + /** () üũ ſ з **/ + if($this->REQUEST["Type"] == "Cancel") + { + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = "Recv Msg Length Check Errror"; + $this->log->WriteLog( ERROR, $this->RESULT["rCancelResMsg"]." : sRecvLen[".$this->sRecvLen."]"."sRecvMsg Length[".strlen( $this->sRecvMsg )."]"); + } + else + { + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = "Recv Msg Length Check Errror"; + $this->log->WriteLog( ERROR, $this->RESULT["rResMsg"]." : sRecvLen[".$this->sRecvLen."]"."sRecvMsg Length[".strlen( $this->sRecvMsg )."]"); + } + + return false; + + } + + } //SendMsg() End + + /* + Msg ۽ Msg + */ + function SendRecvMsgWeb() + { + // ۾ + return false; + } + + /* + Make Pay Msg + */ + function MakeMsg() + { + $this->log->WriteLog( INFO, "Make Msg Start" ); + /**************************************************************************** + * + * + * AuthTy = "card" ſī + * - SubTy = "isp" ISP + * - SubTy = "visa3d" ȽŬ + * - SubTy = "normal" Ϲݰ + * + * AuthTy = "iche" Ϲ-ü + * + * AuthTy = "virtual" Ϲ-(Ա) + * + * AuthTy = "hp" ڵ + * + * AuthTy = "ars" ARS + * + ****************************************************************************/ + + if( strcmp( $this->REQUEST["AuthTy"], "card" ) == 0 ) + { + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) + { + /**************************************************************************** + * + * [1-1] ſī - ISP + * + * -- ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- û + * + ͱ(6) + ISPڵ(1) + + * + ( "|" Ѵ.) + * (6) | üID(20) | ȸID(20) | ݾ(12) | + * ֹȣ(40) | ܸȣ(10) | (40) | ȭ(21) | + * (100) | ֹڸ(40) | ֹڿó(100) | Ÿ䱸(350) | + * ǰ(300) | ȭڵ(3) | ϹҺαⰣ(2) | ҺαⰣ(2) | + * KVPīڵ(22) | Ű(256) | ȣȭ(2048) | ī(50) | + * ȸ IP(20) | ȸ Email(50) | ID (50) | + * + ****************************************************************************/ + + $this->ENCTYPE = 2; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "plug15"."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["DeviId"]."|". + $this->REQUEST["RcpNm"]."|". + $this->REQUEST["RcpPhone"]."|". + $this->REQUEST["DlvAddr"]."|". + $this->REQUEST["OrdNm"]."|". + $this->REQUEST["OrdPhone"]."|". + $this->REQUEST["Remark"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["KVP_CURRENCY"]."|". + $this->REQUEST["partial_mm"]."|". + $this->REQUEST["noIntMonth"]."|". + $this->REQUEST["KVP_CARDCODE"]."|". + $this->REQUEST["KVP_SESSIONKEY"]."|". + $this->REQUEST["KVP_ENCDATA"]."|". + $this->REQUEST["KVP_CONAME"]."|". + $this->REQUEST["UserIp"]."|". + $this->REQUEST["UserEmail"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."Make MSG OK " ); + } + else if( ( strcmp( $this->REQUEST["SubTy"], "visa3d" ) == 0 ) || ( strcmp( $this->REQUEST["SubTy"], "normal" ) == 0 ) ) + { + /**************************************************************************** + * + * [1-2] ſī - VISA3D, Ϲ + * + * -- ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" ϸ īȣ,ȿⰣ,йȣ,ֹιȣ ȣȭȴ.) + * (6) | üID(20) | ȸID(20) | ݾ(12) | ֹȣ(40) | + * ܸȣ(10) | īȣ(16) | ȿⰣ(6) | ҺαⰣ(4) | (1) | + * īйȣ(2) | ֹεϹȣ/ڹȣ(10) | (40) | ȭ(21) | (100) | + * ֹڸ(40) | ֹڿó(100) | Ÿ䱸(350) | ǰ(300) | MPI_CAVV | MPI_MD64 | MPI_ECI | ID (50) | + * + ****************************************************************************/ + + $this->ENCTYPE = 0; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "plug15"."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["DeviId"]."|". + $this->encrypt_aegis($this->REQUEST["CardNo"])."|". + $this->encrypt_aegis($this->REQUEST["ExpYear"].$this->REQUEST["ExpMon"])."|". + $this->REQUEST["Instmt"]."|". + $this->REQUEST["AuthYn"]."|". + $this->encrypt_aegis($this->REQUEST["Passwd"])."|". + $this->encrypt_aegis($this->REQUEST["SocId"])."|". + $this->REQUEST["RcpNm"]."|". + $this->REQUEST["RcpPhone"]."|". + $this->REQUEST["DlvAddr"]."|". + $this->REQUEST["OrdNm"]."|". + $this->REQUEST["UserIp"].";".$this->REQUEST["OrdPhone"]."|". + $this->REQUEST["UserEmail"].";".$this->REQUEST["Remark"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["MPI_CAVV"]."|". + $this->REQUEST["MPI_MD64"]."|". + $this->REQUEST["MPI_ECI"]."|". + $this->REQUEST["UserEmail"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."Make MSG OK " ); + } + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0) + { + /**************************************************************************** + * + * [2-1] ͳݹŷ ü() ó + * + * -- ̺κ ͳݹŷ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ͳݹŷ û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | ֹȣ(40) | ָ(20) | ŷݾ(8) | + * ڵ(2) | ֹιȣ(13) | ֹڿó(16) | ̸ּ(50) | ǰ(100) | + * ֹ̿ȣ(50) | FNBC ŷȣ(20) | üð(14) | ݿ࿩(1) | ȸ̵(20) | + * ŷڱ(2) | źȮιȣ(13) | ũλ뿩(1) | ũȸȣ(17) | ũΰݾ(8)| + * ũμݾ(8) | + * + ****************************************************************************/ + + $this->ENCTYPE = R; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "RB-PayReq"."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["ICHE_OUTBANKMASTER"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["ICHE_OUTBANKNAME"]."|". + $this->REQUEST["ICHE_OUTACCTNO"]."|". + $this->REQUEST["OrdPhone"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["ICHE_POSMTID"]."|". + $this->REQUEST["ICHE_FNBCMTID"]."|". + $this->REQUEST["ICHE_APTRTS"]."|". + $this->REQUEST["ICHE_CASHYN"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["ICHE_CASHGUBUN_CD"]."|". + $this->REQUEST["ICHE_CASHID_NO"]."|". + $this->REQUEST["ICHE_ECWYN"]."|". + $this->REQUEST["ICHE_ECWID"]."|". + $this->REQUEST["ICHE_ECWAMT1"]."|". + $this->REQUEST["ICHE_ECWAMT2"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHEARS_SOCKETYN"], "Y" ) == 0) + { + /**************************************************************************** + * + * [2-2] ڷŷ ü() ó + * + * -- ̺κ ڷŷ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ڷŷ û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | ֹȣ(40) | ָ(20) | + * ŷݾ(8) | ڵ(2) | ֹιȣ(13) | ֹڿó(16) | + * ̸ּ(50) | ǰ(100) | ֹ̿ȣ(50) | FNBC ŷȣ(20) | + * üð(14) | ݿ࿩(1) | ȸ̵(20) | ŷڱ(2) | + * źȮιȣ(13) | ũλ뿩(1) | ũȸȣ(17) | ũΰݾ(8) | + * ũμݾ(8) | + * + ****************************************************************************/ + + $this->ENCTYPE = B; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "TB-PayReq"."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["ICHEARS_POSMTID"]."|". + $this->REQUEST["ICHEARS_ADMNO"]."|". + $this->REQUEST["ICHEARS_CENTERCD"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["ICHE_OUTACCTNO"]."|". + $this->REQUEST["ICHE_OUTBANKMASTER"]."|". + $this->REQUEST["ICHEARS_HPNO"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["ICHE_ECWYN"]."|". + $this->REQUEST["ICHE_ECWID"]."|". + $this->REQUEST["ICHE_ECWAMT1"]."|". + $this->REQUEST["ICHE_ECWAMT2"]."|". + $this->REQUEST["ICHE_CASHYN"]."|". + $this->REQUEST["ICHE_CASHGUBUN_CD"]."|". + $this->REQUEST["ICHE_CASHID_NO"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + + } + else if( strcmp( $this->REQUEST["AuthTy"], "virtual" ) == 0 ) //߰ + { + /**************************************************************************** + * + * [3] + * + * -- ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- û + * + ͱ(6) + ȣȭ (1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | ֹȣ(40) | ڵ(4) | ¹ȣ(20) | + * ŷݾ(13) | Աݿ(8) | ڸ(20) | ֹιȣ(13) | + * ̵ȭ(21) | ̸(50) | ּ(100) | ڸ(20) | + * ڿó(21) | ּ(100) | ǰ(100) | Ÿ䱸(300) | (50) | (100)| + * + ****************************************************************************/ + + $this->ENCTYPE = "V"; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + /* $this->REQUEST["AuthTy"]."|". */ + "vir_n|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["VIRTUAL_CENTERCD"]."|". + $this->REQUEST["VIRTUAL_NO"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["VIRTUAL_DEPODT"]."|". + $this->REQUEST["OrdNm"]."|". + $this->REQUEST["ZuminCode"]."|". + $this->REQUEST["OrdPhone"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["OrdAddr"]."|". + $this->REQUEST["RcpNm"]."|". + $this->REQUEST["RcpPhone"]."|". + $this->REQUEST["DlvAddr"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["Remark"]."|". + $this->REQUEST["MallUrl"]."|". + $this->REQUEST["MallPage"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + } + else if( strcmp( $this->REQUEST["AuthTy"], "hp" ) == 0 ) + { + /**************************************************************************** + * + * [4] ڵ + * + * ڵ ʴ AGS_pay.html ҹ ſī() ñ ٶϴ. + * + * ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- û + * + ͱ(6) + ڵڵ(1) + + * + ( "|" Ѵ.) + * + ****************************************************************************/ + + $this->ENCTYPE = "h"; + $this->REQUEST["StrSubTy"] = "Bill"; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + $this->REQUEST["StrSubTy"]."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["HP_SERVERINFO"]."|". + $this->REQUEST["HP_ID"]."|". + $this->REQUEST["HP_SUBID"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["HP_UNITType"]."|". + $this->REQUEST["HP_HANDPHONE"]."|". + $this->REQUEST["HP_COMPANY"]."|". + $this->REQUEST["HP_IDEN"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["HP_IPADDR"]."|". + $this->REQUEST["ProdNm"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + + } + else if( strcmp( $this->REQUEST["AuthTy"], "ars" ) == 0 ) + { + /**************************************************************************** + * + * [5] ARS + * + * ARS ʴ AGS_pay.html ҹ ſī() ñ ٶϴ. + * + * ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- û + * + ͱ(6) + ARSڵ(1) + + * + ( "|" Ѵ.) + * + ****************************************************************************/ + + $this->ENCTYPE = "A"; + $this->REQUEST["StrSubTy"] = "ABill"; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + $this->REQUEST["StrSubTy"]."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["HP_SERVERINFO"]."|". + $this->REQUEST["HP_ID"]."|". + $this->REQUEST["HP_UNITType"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["HP_SUBID"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["ARS_PHONE"]."|". + $this->REQUEST["HP_IDEN"]."|". + $this->REQUEST["ARS_NAME"]."|". + $this->REQUEST["HP_COMPANY"]."|". + $this->REQUEST["HP_IPADDR"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + }else{ + $this->ERRMSG .= " . AuthTy:[".$this->REQUEST["AuthTy"]."],SubTy:[".$this->REQUEST["SubTy"]."]"; + $this->log->WriteLog( ERROR, $this->ERRMSG ); + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + + return false; + } + $this->log->WriteLog( INFO, "Make Msg End" ); + return true; + } // MakeMsg() End + + + /* + Make Cancel Msg + */ + function MakeCancelMsg() + { + $this->log->WriteLog( INFO, "Make Cancel Msg Start" ); + if( strcmp( $this->REQUEST["AuthTy"], "card" ) == 0 ) + { + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) + { + + /**************************************************************************** + * + * [1-1] ſī - ISP + * + * -- ̺κ ó PGProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ. + * (6) | ü̵(20) | ιȣ(20) | νð(8) | ŷȣ(6) | + * + * -- + * + ͱ(6) + + * + ( "|" Ѵ. + * üID(20) | ιȣ(20) | νð(8) | ڵ(4) | ŷȣ(6) | (1) | + * + ****************************************************************************/ + + $this->ENCTYPE = 2; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "cancel"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("rApprNo")."|". + substr($this->GetResult("rApprTm"),0,8)."|". + $this->GetResult("rDealNo")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."Make Cancel MSG OK " ); + } + else if( ( strcmp( $this->REQUEST["SubTy"], "visa3d" ) == 0 ) || ( strcmp( $this->REQUEST["SubTy"], "normal" ) == 0 ) ) + { + /**************************************************************************** + * + * [1-2] ſī - VISA3D, Ϲ + * + * -- ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * + * -- û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" ϸ īȣ,ȿⰣ,йȣ,ֹιȣ ȣȭȴ.) + * (6) | ü̵(20) | ιȣ(8) | νð(14) | īȣ(16) | + * + * -- + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * üID(20) | ιȣ(8) | νð(14) | ڵ(4) | (1) | + * ֹȣ(20) | Һΰ(2) | ݾ(20) | ī(20) | īڵ(4) | + * ȣ(15) | Իڵ(4) | Ի(20) | ǥȣ(6) + * + ****************************************************************************/ + + $this->ENCTYPE = 0; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "cancel"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("rApprNo")."|". + substr($this->GetResult("rApprTm"),0,8)."|". + $this->GetResult("rDealNo")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."Make Cancel MSG OK " ); + } + }else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0){ + + /**************************************************************************** + * + * [2-1] ͳݹŷ ü() ó + * + * -- ̺κ ͳݹŷ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ͳݹŷ û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | MTID(ü ) | ݾ(8) | ڵ(2) + * + ****************************************************************************/ + + $this->ENCTYPE = R; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "RB-CanReq"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("ICHE_POSMTID")."|". + $this->GetResult("Amt")."|". + $this->GetResult("ICHE_OUTBANKNAME")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make Cancel MSG OK " ); + + }else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHEARS_SOCKETYN"], "Y" ) == 0){ + + /**************************************************************************** + * + * [2-1] ڷŷ ü() ó + * + * -- ̺κ ڷŷ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ڷŷ û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | MTID(ü ) | ݾ(8) | ڵ(2) + * + ****************************************************************************/ + + $this->ENCTYPE = B; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "TB-CanReq"."|". + $this->GetResult("StoreId")."|". + ""."|". + ""."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make Cancel MSG OK " ); + + }else if( strcmp( $this->REQUEST["AuthTy"], "hp" ) == 0 ){ + + /**************************************************************************** + * + * [3] ڵ ó + * + * -- ̺κ ڵ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ڵ û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | NetCancID | + * + ****************************************************************************/ + + $this->ENCTYPE = H; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + $this->sDataMsg = $this->ENCTYPE. + "MobileCanReq"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make Cancel MSG OK " ); + + }else if( strcmp( $this->REQUEST["AuthTy"], "ars" ) == 0 ){ + + /**************************************************************************** + * + * [4] ARS ó + * + * -- ̺κ ARS ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ARS û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | NetCancID | + * + ****************************************************************************/ + + $this->ENCTYPE = A; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + $this->sDataMsg = $this->ENCTYPE. + "ARSCanReq"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make Cancel MSG OK " ); + + }else{ + //ſī,ü ̿ ұ . + $this->log->WriteLog( WARN, "Cancel Passed. AuthTy : [".$this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]."] " ); + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = "Cannot Cancel AuthTy[".$this->REQUEST["AuthTy"]."]"; + return false; + } + $this->log->WriteLog( INFO, "Make Cancel Msg End" ); + return true; + } //MakeCancelMsg End + + + /* + RecvMsg Parsing + */ + function ParseMsg() + { + $this->log->WriteLog( INFO, "Parse Msg Start" ); + /**************************************************************************** + * + * + * AuthTy = "card" ſī + * - SubTy = "isp" ISP + * - SubTy = "visa3d" ȽŬ + * - SubTy = "normal" Ϲݰ + * + * AuthTy = "iche" Ϲ-ü + * + * AuthTy = "virtual" Ϲ-(Ա) + * + * AuthTy = "hp" ڵ + * + * AuthTy = "ars" ARS + * + ****************************************************************************/ + + if( strcmp( $this->REQUEST["AuthTy"], "card" ) == 0 ) + { + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) + { + /**************************************************************************** + * + * [1-1] ſī ISP ó + * + * + * -- + * + ͱ(6) + + * + ( "|" Ѵ. + * üID(20) | ڵ(4) | ŷȣ(6) | ιȣ(8) | + * ŷݾ(12) | (1) | л(20) | νð(14) | + * īڵ(4) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rBusiCd"] = $this->RecvValArray[1]; + $this->RESULT["rOrdNo"] = $this->REQUEST["OrdNo"]; + $this->RESULT["rDealNo"] = $this->RecvValArray[2]; + $this->RESULT["rApprNo"] = $this->RecvValArray[3]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->RESULT["rAmt"] = $this->RecvValArray[4]; + $this->RESULT["rInstmt"] = $this->REQUEST["KVP_QUOTA"]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[5]; + $this->RESULT["rResMsg"] = $this->RecvValArray[6]; + $this->RESULT["rApprTm"] = $this->RecvValArray[7]; + $this->RESULT["rCardCd"] = $this->RecvValArray[8]; + + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."RECV MSG Parsing OK " ); + } + else if( ( strcmp( $this->REQUEST["SubTy"], "visa3d" ) == 0 ) || ( strcmp( $this->REQUEST["SubTy"], "normal" ) == 0 ) ) + { + /**************************************************************************** + * + * [1-2] ȽŬ or Ϲݰ ó + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * üID(20) | ڵ(4) | ֹȣ(40) | ιȣ(8) | ŷݾ(12) | + * (1) | л(20) | ī(20) | νð(14) | īڵ(4) | + * ȣ(15) | Իڵ(4) | Ի(20) | ǥȣ(6) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rBusiCd"] = $this->RecvValArray[1]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[2]; + $this->RESULT["rApprNo"] = $this->RecvValArray[3]; + $this->RESULT["rInstmt"] = $this->REQUEST["Instmt"]; + $this->RESULT["rAmt"] = $this->RecvValArray[4]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[5]; + $this->RESULT["rResMsg"] = $this->RecvValArray[6]; + $this->RESULT["rCardNm"] = $this->RecvValArray[7]; + $this->RESULT["rApprTm"] = $this->RecvValArray[8]; + $this->RESULT["rCardCd"] = $this->RecvValArray[9]; + $this->RESULT["rMembNo"] = $this->RecvValArray[10]; + $this->RESULT["rAquiCd"] = $this->RecvValArray[11]; + $this->RESULT["rAquiNm"] = $this->RecvValArray[12]; + $this->RESULT["rDealNo"] = $this->RecvValArray[13]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."RECV MSG Parsing OK " ); + } + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0) + { + /**************************************************************************** + * + * [2-1] ü Ϲ(ͳݹŷ) û + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * (10) | ̵(20) | ֹȣ(40) | ֹ̿ȣ(50) | ڵ(4) | ޽(300) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[2]; + $this->RESULT["rMTid"] = $this->RecvValArray[3]; + $this->RESULT["ES_SENDNO"] = $this->RecvValArray[4]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[5]; + $this->RESULT["rResMsg"] = $this->RecvValArray[6]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."RECV MSG Parsing OK " ); + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHEARS_SOCKETYN"], "Y" ) == 0) + { + /**************************************************************************** + * + * [2-2] ü ڷŷ ó + * + * -- ڷŷ û + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * (10) | ̵(20) | ֹȣ(40) | ֹ̿ȣ(50) | ڵ(4) | ޽(300) |* + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[2]; + $this->RESULT["rMTid"] = $this->RecvValArray[3]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[4]; + $this->RESULT["rResMsg"] = $this->RecvValArray[5]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Parse MSG Passed " ); + + $pos = strpos($this->RESULT["rResMsg"],':'); + if( $pos !== false ) + { + $this->RESULT["ES_SENDNO"] = substr($this->RESULT["rResMsg"],$pos+1,6) ; + $this->log->WriteLog( INFO, "ES_SENDNO : [".$this->RESULT["ES_SENDNO"]."] "); + } + + } + else if( strcmp( $this->REQUEST["AuthTy"], "virtual" ) == 0 ) + { + /**************************************************************************** + * + * [3] (Ա) ó + * + * -- + * + ͱ(6) + ȣȭ (1) + + * + ( "|" Ѵ. + * (10) | üID(20) | (14) | ¹ȣ(20) | ڵ(1) | ޽(100) | + * + ****************************************************************************/ + + $this->RESULT["rAuthTy"] = $this->RecvValArray[0]; + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rApprTm"] = $this->RecvValArray[2]; + $this->RESULT["rVirNo"] = $this->RecvValArray[3]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[4]; + $this->RESULT["rResMsg"] = $this->RecvValArray[5]; + + $this->RESULT["rOrdNo"] = $this->REQUEST["OrdNo"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + + $pos = strpos($this->RESULT["rResMsg"],':'); + if( $pos !== false ) + { + $this->RESULT["ES_SENDNO"] = substr($this->RESULT["rResMsg"],$pos+1,6) ; + $this->log->WriteLog( INFO, "ES_SENDNO : [".$this->RESULT["ES_SENDNO"]."] "); + } + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."RECV MSG Parsing OK " ); + + } + else if( strcmp( $this->REQUEST["AuthTy"], "hp" ) == 0 ) + { + /**************************************************************************** + * + * [4] ڵ + * + * -- + * + ͱ(6) + + * + ( "|" Ѵ.) + * üID(20) | ڵ(1) | ޽(100) | ڵ(8) | ڵ TID(12) | ŷݾ(12) | ֹȣ(40) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[1]; + $this->RESULT["rResMsg"] = $this->RecvValArray[2]; + $this->RESULT["rHP_DATE"] = $this->RecvValArray[3]; + $this->RESULT["rHP_TID"] = $this->RecvValArray[4]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + $this->RESULT["rOrdNo"] = $this->REQUEST["OrdNo"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."RECV MSG Parsing OK " ); + + } + else if( strcmp( $this->REQUEST["AuthTy"], "ars" ) == 0 ) + { + /**************************************************************************** + * + * [5] ARS + * + * -- + * + ͱ(6) + + * + ( "|" Ѵ.) + * üID(20) | ڵ(1) | ޽(100) | ARS(8) | ARS TID(12) | ŷݾ(12) | ֹȣ(40) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[1]; + $this->RESULT["rResMsg"] = $this->RecvValArray[2]; + $this->RESULT["rHP_DATE"] = $this->RecvValArray[3]; + $this->RESULT["rHP_TID"] = $this->RecvValArray[4]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + $this->RESULT["rOrdNo"] = $this->REQUEST["OrdNo"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."RECV MSG Parsing OK " ); + }else{ + $this->log->WriteLog( FATAL, "Unknown AuthTy. AuthTy:[".$this->REQUEST["AuthTy"]."],SubTy:[".$this->REQUEST["SubTy"]."]"); + return false; + } + $this->log->WriteLog( INFO, "Parse Msg End" ); + return true; + + } //ParseMsg() End + + + /* + RecvCancelMsg Parsing + */ + function ParseCancelMsg() + { + $this->log->WriteLog( INFO, "Parse Cancel Msg Start" ); + if( strcmp( $this->REQUEST["AuthTy"], "card" ) == 0 ) + { + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) + { + /* [1-1] ISP ó */ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rApprNo"] = $this->RecvValArray[1]; + $this->RESULT["rApprTm"] = $this->RecvValArray[2]; + $this->RESULT["rBusiCd"] = $this->RecvValArray[3]; + $this->RESULT["rDealNo"] = $this->RecvValArray[4]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[5]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[6]; + + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."RECV MSG Parsing OK " ); + } + else if( ( strcmp( $this->REQUEST["SubTy"], "visa3d" ) == 0 ) || ( strcmp( $this->REQUEST["SubTy"], "normal" ) == 0 ) ) + { + /* [1-2] ȽŬ or Ϲݰ ó */ + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rApprNo"] = $this->RecvValArray[1]; + $this->RESULT["rApprTm"] = $this->RecvValArray[2]; + $this->RESULT["rBusiCd"] = $this->RecvValArray[3]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[4]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[5]; + $this->RESULT["rInstmt"] = $this->RecvValArray[6]; + $this->RESULT["rAmt"] = $this->RecvValArray[7]; + $this->RESULT["rCardNm"] = $this->RecvValArray[8]; + $this->RESULT["rCardCd"] = $this->RecvValArray[9]; + $this->RESULT["rMembNo"] = $this->RecvValArray[10]; + $this->RESULT["rAquiCd"] = $this->RecvValArray[11]; + $this->RESULT["rAquiNm"] = $this->RecvValArray[12]; + $this->RESULT["rDealNo"] = $this->RecvValArray[13]; + + if($this->RESULT["rCancelSuccYn"] == "y") + { + $this->RESULT["rCancelResMsg"] = ""; + } + else + { + $this->RESULT["rCancelResMsg"] = "ҽ"; + } + + + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."RECV MSG Parsing OK " ); + } + + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0) + { + /* [2-1] ü ͳݹŷ */ + /* [RB-CanRes|ID|posmTid|ֹȣ|y|Ҽ|] */ + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["ICHE_POSMTID"] = $this->RecvValArray[2]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[3]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[4]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[5]; + + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHEARS_SOCKETYN"], "Y" ) == 0) + { + /* [2-2] ü ڷŷ */ + /* [TB-CanRes|ID|posmTid|ֹȣ|y|Ҽ|] */ + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rMTid"] = $this->RecvValArray[2]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[3]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[4]; + + } + else if( strcmp( $this->REQUEST["AuthTy"], "hp" ) == 0 ) + { + /**************************************************************************** + * + * [4] ڵ + * + * -- + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * | MobileCanRes | üID(20) | (1) | ޼ | óϽ | ֹ̿ȣ | + * + ****************************************************************************/ + + /* [MobileCanRes|ID|(y/n)|޼|Ͻ|ֹ̿ȣ|] */ + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[2]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[3]; + $this->RESULT["rCancelDate"] = $this->RecvValArray[4]; + $this->RESULT["rTid"] = $this->RecvValArray[5]; + + } + else if( strcmp( $this->REQUEST["AuthTy"], "ars" ) == 0 ) + { + /**************************************************************************** + * + * [5] ARS + * + * -- + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * | ArsCanRes | üID(20) | (1) | ޼ | óϽ | ֹ̿ȣ | + * + ****************************************************************************/ + + /* [ArsCanRes|ID|(y/n)|޼|Ͻ|ֹ̿ȣ|] */ + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[2]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[3]; + $this->RESULT["rCancelDate"] = $this->RecvValArray[4]; + $this->RESULT["rTid"] = $this->RecvValArray[5]; + + } + else + { + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Parse CancelMSG Passed " ); + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = "Cannot Cancel AuthTy[".$this->REQUEST["AuthTy"]."]"; + return false; + } + $this->log->WriteLog( INFO, "Parse Cancel Msg End" ); + return true; + } + + + /* + û + */ + function NetCancel() + { + $this->log->WriteLog( WARN, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." Cancel Start"); + + if( $this->REQUEST["UseNetCancel"] == "true" || $this->REQUEST["Type"] == "Cancel" ) + { + $this->log->WriteLog( WARN, "Cancel Reason : ".$this->REQUEST["CancelMsg"]); + + if( !($this->MakeCancelMsg()) ) + { + $this->log->WriteLog( ERROR, "Make CancelMsg Error"); + return false; + } + if( !($this->SendRecvMsg()) ) + { + $this->log->WriteLog( ERROR, "Send & Recv Msg Error"); + return false; + } + if( !($this->ParseCancelMsg()) ) + { + $this->log->WriteLog( ERROR, "ParseCancelMsg Error"); + return false; + } + if( $this->RESULT["rCancelSuccYn"] == "y") + { + $this->log->WriteLog( WARN, "Cancel Success"); + } + else + { + $this->log->WriteLog( FATAL, "Cancel FAIL"); + } + } + else + { + $this->log->WriteLog( WARN, "Cancel Passed (UseNetCancel value Is false)"); + } + + $this->log->WriteLog( WARN, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." Cancel End"); + + if($this->RESULT["rCancelSuccYn"] == "y"){ + // з + $this->SetPayResult( "rSuccYn", "n" ); + $this->SetPayResult( "rResMsg", $this->REQUEST["CancelMsg"] ); + return true; + }else{ + return false; + } + + } + + /* + Ȯοû + */ + function checkPayResult( $TID ) + { + /* + Log ü + */ + $this->log = new PayLog( $this->REQUEST ); + if(!$this->log->InitLog()) + { + $this->ERRMSG .= "α ϴ.[".$this->REQUEST["AgsPayHome"]."]" ; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = $this->ERRMSG; + return false; + } + + $this->log->WriteLog( INFO, "[".$TID."] Check PayResult Start"); + + + //"AEGIS_".$TidTp . $this->REQUEST["StoreId"] . $datestr . rand(100,999); + + switch(substr($TID,6,4)){ + case("ISP_"): // ſī ISP + $this->REQUEST["AuthTy"] = "card" ; + $this->REQUEST["SubTy"] = "isp" ; + break; + case("VISA"): // ſī ȽŬ/Ϲ + $this->REQUEST["AuthTy"] = "card" ; + $this->REQUEST["SubTy"] = "visa3d" ; + break; + case("IBK_"): // ͳݹŷ + $this->REQUEST["AuthTy"] = "iche" ; + break; + case("TBK_"): // ڷŷ + $this->REQUEST["AuthTy"] = "iche" ; + break; + case("VIR_"): // + $this->REQUEST["AuthTy"] = "virtual" ; + break; + case("HPP_"): // ޴ + $this->REQUEST["AuthTy"] = "hp" ; + break; + case("ARS_"): // ARS ȭ + $this->REQUEST["AuthTy"] = "ars" ; + break; + default: // Ȯ + $this->REQUEST["AuthTy"] = "unknown" ; + break; + } + + /**************************************************************************** + * Make + ****************************************************************************/ + $this->ENCTYPE = "I"; + + $this->sDataMsg = $this->ENCTYPE. + "PayInfo"."|". + $this->REQUEST["StoreId"]."|". + $TID."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + + if( !($this->SendRecvMsg()) ) // ŷ Ȯ + { + if( !($this->SendRecvMsgWeb()) ) // ŷ Ȯ + { + + } + } + + if( !($this->ParseMsg()) ) + { + $this->log->WriteLog( ERROR, "Parse Check PayResult Error"); + return false; + } + + $this->log->WriteLog( INFO, "[".$TID."] Check PayResult End"); + + $this->writeLogArray($this->RESULT); + + //log ü ݱ + $this->log->CloseLog( $this->GetResult("rResMsg") ); + + return true; + } + + + /* + Set + */ + function SetValue( $key, $val ) + { + $this->REQUEST[$key] = $val; + } + + /* + Get + */ + function GetResult( $name ) + { + $result = $this->RESULT[$name]; + if( strlen($result) == 0 || $result == "") $result = $this->REQUEST[$name]; + return $result; + } + + /* + rSuccYn Set + */ + function SetPayResult( $key, $val ) + { + $this->RESULT[$key] = $val; + } + + /* + Make NetCancel ID(); + */ + + function MakeNetCancID() + { + $this->log->WriteLog( INFO, "Make NetCancel ID Start" ); + switch($this->REQUEST["AuthTy"]){ + case("card"): // ſī + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) $TidTp = "ISP_"; else $TidTp = "VISA"; + break; + case("iche"): // ü (IBK:ͳݹŷ, TBK:ڷŷ) + if( strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0 ) $TidTp = "IBK_"; else $TidTp = "TBK_"; + break; + case("virtual"): // + $TidTp = "VIR_"; break; + case("hp"): // ޴ + $TidTp = "HPP_"; break; + case("ars"): // ARS ȭ + $TidTp = "ARS_"; break; + default: + $TidTp = "UNKW"; //Ȯ + } + + list($usec, $sec) = explode(" ", microtime()); + $datestr = date("YmdHis", $sec).substr($usec,2,3); //YYYYMMDDHHMMSSSSS + + //TID ּ 31ڸ ,ִ 51ڸ ʴ´. + $this->RESULT["NetCancID"] = "AEGIS_".$TidTp . $this->REQUEST["StoreId"] . "_" . $datestr . rand(100,999); + if( (!strlen( $this->RESULT["NetCancID"] ) >= 31 && strlen( $this->RESULT["NetCancID"] ) <= 51) ) + { + $this->log->WriteLog( ERROR, $this->RESULT["NetCancID"]); + return false; + } + $this->log->WriteLog( INFO, $this->RESULT["NetCancID"]); + $this->log->WriteLog( INFO, "Make NetCancel ID End" ); + return true; + } + + /* + Set Error Msg ; + */ + function SetErrorMsg($rSuccYn,$rResMsg) + { + $this->log->WriteLog( INFO, "Set Result Msg Start"); + $this->RESULT["rSuccYn"] = $rSuccYn; + $this->RESULT["rResMsg"] = $rResMsg; + $this->log->WriteLog( INFO, "Set Result Msg End"); + } + + /* + Aegis ī嵥 Encrypt + */ + function encrypt_aegis( $OrgData ) + { + $this->log->WriteLog( INFO, "Encrypt Start"); + if( empty( $OrgData ) || $OrgData == "" ) + { + $this->log->WriteLog( INFO, "Encrypt End"); + return ""; + } + + $temp = ""; + for( $i = 0; $i < strlen( $OrgData ); $i++ ) + { + $temp .= substr( $OrgData, (strlen( $OrgData ) - 1) - $i, 1 ); + } + + //print "Reverse data : ".$temp."
    "; + + $one_char = ""; + $EncData = ""; + for( $i = 0; $i < strlen( $temp ); $i++ ) + { + $one_char = substr( $temp, $i, 1 ); + $EncData .= ($one_char + $i * 77) % 10 ; + } + + //print "Enc Data : ".$EncData."
    "; + + $this->log->WriteLog( INFO, "Encrypt End"); + + return $EncData; + } + + /* + ڿ + */ + function format_string($TSTR,$TLEN,$TAG) + { + if ( !isset($TSTR) ) + { + for ( $i=0 ; $i < $TLEN ; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + } + + $TSTR = trim($TSTR); + + $TSTR = stripslashes($TSTR); + + // Էڷᰡ ̺ ڸ ѱó + + if ( strlen($TSTR) > $TLEN ) + { + // $flag == 1 ̸ Ʈ ѱ Ʈ ̶ ű ڸ Ǹ + // ѱ Ǵ ߻մϴ. + + $flag = 0; + + for($i=0 ; $i< $TLEN ; $i++) + { + $j = ord($TSTR[$i]); // ASCII մϴ. + // ASCII 127 ũ Ʈ ѱ ۹Ʈ̰ų Ʈ(?) . + if($j > 127) + { + if( $flag ) $flag = 0; // $flag Ѵٴ ̹ ڴ ѱ Ʈ̱ + // $flag 0 ݴϴ. + else $flag = 1; // ѱ ۹Ʈ. ׷Ƿ $flag 1! + } + else $flag = 0; // ٸ ڳ ϶ ׳ Ѿ ǰ. + } + if( $flag ) + { + // ̷ ؼ ڱ $flag ؼ $flag ϸ + $TSTR = substr($TSTR, 0, $TLEN - 1); + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + else + { + // ѹƮ ؼ ڸ ڸ ؾ߰. + $TSTR = substr($TSTR, 0, $TLEN); // ƴ .... + } + + return $TSTR; // Ʈ ȯմϴ. + + // Էڷᰡ ̺ SPACE ä + } + else if ( strlen($TSTR) < $TLEN ) + { + $TLENGTH = strlen($TSTR); + for ( $i=0 ; $i < $TLEN - $TLENGTH; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + + return ($TSTR); + + // Էڷᰡ ̿ + } + else if ( strlen($TSTR) == $TLEN ) + { + return ($TSTR); + } + } + + /* + Է ڰ ھƽŰ شϴ Ǵ. + */ + function IsNumber($word) + { + + for($i = 0; $i < strlen($word); $i++) + { + $wordNum = ord( substr( $word, $i, 1 ) ); + + if( $wordNum < 48 || $wordNum > 57 ) + { + return false; + } + + } + + return true; + } + /* + ޼ + */ + function AlertMsg( $msg , $go=0) + { + + $msg = str_replace( "\"" ,"'" ,$msg ); + $msg = str_replace( "\n" ,"\\n" ,$msg ); + print ""; + + } + function HistoryGo( $go ) + { + print ""; + } + + function AlertExit( $msg ) + { + + AlertMsg( $msg ); + exit; + + } + + function AlertGoBack( $msg ) + { + + AlertMsg( $msg, -1); + exit; + } + +} + +/************************************************************************************** +* +* ôƮ α Ŭ +* +***************************************************************************************/ +class PayLog +{ + var $log_fd; + var $log; + var $logLevel; + var $array_key; + var $debug_msg; + var $starttime; + var $homedir; + var $StoreId; + + function PayLog( $request ) + { + $this->debug_msg = array( "", "FATAL", "ERROR", "WARN", "INFO", "DEBUG" ); + $this->log = $request["log"]; + $this->logLevel = $request["logLevel"]; + $this->homedir = $request["AgsPayHome"]; + $this->StoreId = $request["StoreId"]; + $this->starttime=GetTime(); + } + function InitLog() + { + if( $this->log == "false" ) return true; + + $logfile = $this->homedir. "/log/".PROGRAM."_".TYPE."_".$this->StoreId."_".date("ymd").".log"; + + $this->log_fd = fopen( $logfile, "a+" ); + if( !$this->log_fd ) return false; + $this->WriteLog( INFO, "===============================================================" ); + $this->WriteLog( INFO, "START ".PROGRAM." ".TYPE." (OS:".php_uname('s').php_uname('r').",PHP:".phpversion().")" ); + return true; + } + function WriteLog($debug, $data) + { + if( $this->log == "false" || !$this->log_fd ) return; + + if(strtoupper($this->logLevel) == "FATAL") $logLevel_int = 1; + if(strtoupper($this->logLevel) == "ERROR") $logLevel_int = 2; + if(strtoupper($this->logLevel) == "WARN") $logLevel_int = 3; + if(strtoupper($this->logLevel) == "INFO") $logLevel_int = 4; + if(strtoupper($this->logLevel) == "DEBUG") $logLevel_int = 5; + + if( $debug > $logLevel_int ){ return; } + + $prefix = $this->debug_msg[$debug]."\t[" . SetTimeStamp() . "] <" . getmypid() . "> "; + if( is_array( $data ) ) + { + foreach ($data as $key => $val) + { + fwrite( $this->log_fd, $prefix . $key . ":" . $val . "\r\n"); + } + } + else + { + fwrite( $this->log_fd, $prefix . $data . "\r\n" ); + } + fflush( $this->log_fd ); + } + function CloseLog($msg) + { + if( $this->log == "false" ) return; + + $Transaction_time=GetTime()-$this->starttime; + $this->WriteLog( INFO, "END ".$this->REQUEST["Type"]." ".$msg." Transaction time:[".round($Transaction_time,3)."sec]" ); + $this->WriteLog( INFO, "===============================================================" ); + fclose( $this->log_fd ); + } +} + +function GetTime() +{ + list($sec1, $sec2) = explode(" ", microtime(true)); + return (float)$sec1 + (float)$sec2; +} + +function SetTimeStamp() +{ + $microtm = explode(' ',microtime()); + list($t_Seconds, $Milliseconds) = array($microtm[1], (int)round($microtm[0]*1000,3)); + return date("Y-m-d H:i:s", $t_Seconds) . ":$Milliseconds"; +} + +?> \ No newline at end of file diff --git a/module/shop/pg/agspay_bak/AGS_VirAcctResult.php b/module/shop/pg/agspay_bak/AGS_VirAcctResult.php new file mode 100644 index 0000000..80a9e5e --- /dev/null +++ b/module/shop/pg/agspay_bak/AGS_VirAcctResult.php @@ -0,0 +1,42 @@ + \ No newline at end of file diff --git a/module/shop/pg/agspay_bak/AGS_pay.html b/module/shop/pg/agspay_bak/AGS_pay.html new file mode 100644 index 0000000..fa0e812 --- /dev/null +++ b/module/shop/pg/agspay_bak/AGS_pay.html @@ -0,0 +1,526 @@ + + +ôƮ + + + + + + + + + + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + +
     

    ҿû ׽Ʈ
     
    + 1) ҿû ° ϰ Ͽ Ͻʽÿ.
    + 2) ôƮ ÷ ٿεϿ ġϵ Ǿ ֽϴ. ٿεĿ Ȱâ ߸ Ȯ ư("") Ͽ ÷ ġ ֽʽÿ. ġ Ͽ ٿεϿ ġ ֽʽÿ.
    + 3) ҿû ʿ Է 'ҿû'ư ŬϽø ôƮ ÷ մϴ.
    + 4) ſī常 ҹ ſī() ֽʽÿ.
    + 5) DB ۾ Ͻ (rSuccYn) ȮĿ ۾Ͽ ֽʽÿ.
    + 6) ڵ ôƮ ߱޹[ڵ̵,йȣ,ǰڵ,ǰŸ] ԷϿ ֽʽÿ.
    + 7) Է½ "|" ôƮ ڷ ϴ ̹Ƿ Է ֽʽÿ. +
     
    ǥô ʼ Է»Դϴ.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    ҹ + + + + + +
    ҹ Է ) card:iche
    ̵ (20)
    ֹȣ (40)
    ݾ (12)) ݾ ޸(,)ԷºҰ
    (50)
    ǰ (300)
    URL (50)) http://www.abc.com
    ̸ֹ (50)
    +
    + + + + + + +
    ȸ̵ (20)
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    + ī &
    ֹڸ (40)
    ֹڿó (21)
    ֹּ (100)
    ڸ (40)
    ڿó (21)
    ּ (100)
    Ÿ䱸 (350)
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    + ڵ
    CP̵ (10)
    CPйȣ (10)
    SUB-CP̵ (10)
    ǰڵ (10)
    ǰ + + + +
    +
    +
    + + + + + + + + + + + + +
     
    +
    뺸 (100)) /ab/AGS_VirAcctResult.php
    +
    +

    + + + + +
     
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + \ No newline at end of file diff --git a/module/shop/pg/agspay_bak/AGS_pay_ing.php b/module/shop/pg/agspay_bak/AGS_pay_ing.php new file mode 100644 index 0000000..164a442 --- /dev/null +++ b/module/shop/pg/agspay_bak/AGS_pay_ing.php @@ -0,0 +1,1624 @@ +"; //상점아이디 +} + +if( empty( $OrdNo ) || $OrdNo == "" ) +{ + $ERRMSG .= "주문번호 입력여부 확인요망
    "; //주문번호 +} + +if( empty( $ProdNm ) || $ProdNm == "" ) +{ + $ERRMSG .= "상품명 입력여부 확인요망
    "; //상품명 +} + +if( empty( $Amt ) || $Amt == "" ) +{ + $ERRMSG .= "금액 입력여부 확인요망
    "; //금액 +} + +if( empty( $DeviId ) || $DeviId == "" ) +{ + $ERRMSG .= "단말기아이디 입력여부 확인요망
    "; //단말기아이디 +} + +if( empty( $AuthYn ) || $AuthYn == "" ) +{ + $ERRMSG .= "인증여부 입력여부 확인요망
    "; //인증여부 +} + +if( strlen($ERRMSG) == 0 ) +{ + /**************************************************************************** + * ※ 결제 형태 변수의 값에 따른 결제 구분 + * + * * AuthTy = "card" 신용카드결제 + * - SubTy = "isp" 안전결제ISP + * - SubTy = "visa3d" 안심클릭 + * - SubTy = "normal" 일반결제 + * + * * AuthTy = "iche" 계좌이체 + * + * + * + * * AuthTy = "virtual" 가상계좌(무통장입금) + * + * + * + * * AuthTy = "hp" 핸드폰결제 + * + * * AuthTy = "ars" ARS결제 + * + ****************************************************************************/ + + if( strcmp( $AuthTy, "card" ) == 0 ) + { + if( strcmp( $SubTy, "isp" ) == 0 ) + { + /**************************************************************************** + * + * [4] 신용카드결제 - ISP + * + * -- 이부분은 승인 처리를 위해 암호화Process와 Socket통신하는 부분이다. + * 가장 핵심이 되는 부분이므로 수정후에는 테스트를 하여야 한다. + * -- 데이터 길이는 매뉴얼 참고 + * + * -- 승인 요청 전문 포멧 + * + 데이터길이(6) + ISP구분코드(1) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다.) + * 결제종류(6) | 업체ID(20) | 회원ID(20) | 결제금액(12) | + * 주문번호(40) | 단말기번호(10) | 수신인(40) | 수신인전화(21) | + * 배송지(100) | 주문자명(40) | 주문자연락처(21) | 기타요구사항(350) | + * 상품명(300) | 통화코드(3) | 일반할부기간(2) | 무이자할부기간(2) | + * KVP카드코드(22) | 세션키(256) | 암호화데이터(2048) | 카드명(50) | + * 회원 IP(20) | 회원 Email(50) | + * + * -- 승인 응답 전문 포멧 + * + 데이터길이(6) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다. + * 업체ID(20) | 전문코드(4) | 거래고유번호(6) | 승인번호(8) | + * 거래금액(12) | 성공여부(1) | 실패사유(20) | 승인시각(14) | + * 카드사코드(4) | + * + * ※ "|" 값은 저희쪽에서 구분자로 사용하는 문자이므로 결제 데이터에 "|"이 있을경우 + * 결제가 정상적으로 처리되지 않습니다.(수신 데이터 길이 에러 등의 사유) + ****************************************************************************/ + + $ENCTYPE = 2; + + /**************************************************************************** + * + * 전송 전문 Make + * + ****************************************************************************/ + + $sDataMsg = $ENCTYPE. + "plug15"."|". + $StoreId."|". + $UserId."|". + $Amt."|". + $OrdNo."|". + $DeviId."|". + $RcpNm."|". + $RcpPhone."|". + $DlvAddr."|". + $OrdNm."|". + $OrdPhone."|". + $Remark."|". + $ProdNm."|". + $KVP_CURRENCY."|". + $partial_mm."|". + $noIntMonth."|". + $KVP_CARDCODE."|". + $KVP_SESSIONKEY."|". + $KVP_ENCDATA."|". + $KVP_CONAME."|". + $UserIp."|". + $UserEmail."|"; + + $sSendMsg = sprintf( "%06d%s", strlen( $sDataMsg ), $sDataMsg ); + + /**************************************************************************** + * + * 전송 메세지 프린트 + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sSendMsg."
    "; + } + + /**************************************************************************** + * + * 암호화Process와 연결을 하고 승인 데이터 송수신 + * + ****************************************************************************/ + + $fp = fsockopen( $LOCALADDR, $LOCALPORT , &$errno, &$errstr, $CONN_TIMEOUT ); + + if( !$fp ) + { + /** 연결 실패로 인한 승인실패 메세지 전송 **/ + + $rSuccYn = "n"; + $rResMsg = "연결 실패로 인한 승인실패"; + } + else + { + /** 연결에 성공하였으므로 데이터를 받는다. **/ + + $rResMsg = "연결에 성공하였으므로 데이터를 받는다."; + + + /** 승인 전문을 암호화Process로 전송 **/ + + fputs( $fp, $sSendMsg ); + + socket_set_timeout($fp, $READ_TIMEOUT); + + /** 최초 6바이트를 수신해 데이터 길이를 체크한 후 데이터만큼만 받는다. **/ + + $sRecvLen = fgets( $fp, 7 ); + $sRecvMsg = fgets( $fp, $sRecvLen + 1 ); + + /**************************************************************************** + * + * 데이터 값이 정상적으로 넘어가지 않을 경우 이부분을 수정하여 주시기 바랍니다. + * PHP 버전에 따라 수신 데이터 길이 체크시 페이지오류가 발생할 수 있습니다 + * 에러메세지:수신 데이터(길이) 체크 에러 통신오류에 의한 승인 실패 + * 데이터 길이 체크 오류시 아래와 같이 변경하여 사용하십시오 + * $sRecvLen = fgets( $fp, 6 ); + * $sRecvMsg = fgets( $fp, $sRecvLen ); + * + ****************************************************************************/ + + /** 소켓 close **/ + + fclose( $fp ); + } + + /**************************************************************************** + * + * 수신 메세지 프린트 + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sRecvMsg."
    "; + } + + if( strlen( $sRecvMsg ) == $sRecvLen ) + { + /** 수신 데이터(길이) 체크 정상 **/ + + $RecvValArray = array(); + $RecvValArray = explode( "|", $sRecvMsg ); + + /** null 또는 NULL 문자, 0 을 공백으로 변환 + for( $i = 0; $i < sizeof( $RecvValArray); $i++ ) + { + $RecvValArray[$i] = trim( $RecvValArray[$i] ); + + if( !strcmp( $RecvValArray[$i], "null" ) || !strcmp( $RecvValArray[$i], "NULL" ) ) + { + $RecvValArray[$i] = ""; + } + + if( IsNumber( $RecvValArray[$i] ) ) + { + if( $RecvValArray[$i] == 0 ) $RecvValArray[$i] = ""; + } + } **/ + + $rStoreId = $RecvValArray[0]; + $rBusiCd = $RecvValArray[1]; + $rOrdNo = $OrdNo; + $rDealNo = $RecvValArray[2]; + $rApprNo = $RecvValArray[3]; + $rProdNm = $ProdNm; + $rAmt = $RecvValArray[4]; + $rInstmt = $KVP_QUOTA; + $rSuccYn = $RecvValArray[5]; + $rResMsg = $RecvValArray[6]; + $rApprTm = $RecvValArray[7]; + $rCardCd = $RecvValArray[8]; + + /**************************************************************************** + * + * 신용카드결제(ISP) 결과가 정상적으로 수신되었으므로 DB 작업을 할 경우 + * 결과페이지로 데이터를 전송하기 전 이부분에서 하면된다. + * + * 여기서 DB 작업을 해 주세요. + * 주의) $rSuccYn 값이 'y' 일경우 신용카드승인성공 + * 주의) $rSuccYn 값이 'n' 일경우 신용카드승인실패 + * DB 작업을 하실 경우 $rSuccYn 값이 'y' 또는 'n' 일경우에 맞게 작업하십시오. + * + ****************************************************************************/ + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //주문정보 입력 + if($rSuccYn=="y"){ + //$blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 6); + $blnRS = updatePayState("card",$OrdNo); + }else{ + jsMsg("신용카드 승인실패"); + } + if($blnRS==true){ + //KCP 결제후 DB 입력처리 완료 변수 설정 + $bSucc = "true"; + //결제금액 $Amt, 상품명 $ProdNm , 결제형태$AuthTy + + //주문자정보 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){//회원로그인을 한 상태라면 + $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_escape_string($arrList["list"][0]["order_no"])); + }else{ + $arrInfo = getOrderInfoGuest($_SESSION[$_SITE["DOMAIN"]]["GUEST"]["NAME"], $_SESSION[$_SITE["DOMAIN"]]["GUEST"]["EMAIL"], mysql_escape_string($arrList["list"][0]["order_no"])); + } + ?> + "; + } + + /**************************************************************************** + * + * 암호화Process와 연결을 하고 승인 데이터 송수신 + * + ****************************************************************************/ + + $fp = fsockopen( $LOCALADDR, $LOCALPORT , &$errno, &$errstr, $CONN_TIMEOUT ); + + + if( !$fp ) + { + /** 연결 실패로 인한 승인실패 메세지 전송 **/ + + $rSuccYn = "n"; + $rResMsg = "연결 실패로 인한 승인실패"; + } + else + { + /** 승인 전문을 암호화Process로 전송 **/ + + fputs( $fp, $sSendMsg ); + + socket_set_timeout($fp, $READ_TIMEOUT); + + /** 최초 6바이트를 수신해 데이터 길이를 체크한 후 데이터만큼만 받는다. **/ + + $sRecvLen = fgets( $fp, 7 ); + $sRecvMsg = fgets( $fp, $sRecvLen + 1 ); + + /**************************************************************************** + * + * 데이터 값이 정상적으로 넘어가지 않을 경우 이부분을 수정하여 주시기 바랍니다. + * PHP 버전에 따라 수신 데이터 길이 체크시 페이지오류가 발생할 수 있습니다 + * 에러메세지:수신 데이터(길이) 체크 에러 통신오류에 의한 승인 실패 + * 데이터 길이 체크 오류시 아래와 같이 변경하여 사용하십시오 + * $sRecvLen = fgets( $fp, 6 ); + * $sRecvMsg = fgets( $fp, $sRecvLen ); + * + ****************************************************************************/ + + /** 소켓 close **/ + + fclose( $fp ); + } + + /**************************************************************************** + * + * 수신 메세지 프린트 + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sRecvMsg."
    "; + } + + if( strlen( $sRecvMsg ) == $sRecvLen ) + { + /** 수신 데이터(길이) 체크 정상 **/ + + $RecvValArray = array(); + $RecvValArray = explode( "|", $sRecvMsg ); + + /** null 또는 NULL 문자, 0 을 공백으로 변환 + for( $i = 0; $i < sizeof( $RecvValArray); $i++ ) + { + $RecvValArray[$i] = trim( $RecvValArray[$i] ); + + if( !strcmp( $RecvValArray[$i], "null" ) || !strcmp( $RecvValArray[$i], "NULL" ) ) + { + $RecvValArray[$i] = ""; + } + + if( IsNumber( $RecvValArray[$i] ) ) + { + if( $RecvValArray[$i] == 0 ) $RecvValArray[$i] = ""; + } + } **/ + + $rStoreId = $RecvValArray[0]; + $rBusiCd = $RecvValArray[1]; + $rOrdNo = $RecvValArray[2]; + $rApprNo = $RecvValArray[3]; + $rInstmt = $Instmt; + $rAmt = $RecvValArray[4]; + $rSuccYn = $RecvValArray[5]; + $rResMsg = $RecvValArray[6]; + $rCardNm = $RecvValArray[7]; + $rApprTm = $RecvValArray[8]; + $rCardCd = $RecvValArray[9]; + $rMembNo = $RecvValArray[10]; + $rAquiCd = $RecvValArray[11]; + $rAquiNm = $RecvValArray[12]; + $rBillNo = $RecvValArray[13]; + + /**************************************************************************** + * + * 신용카드결제(안심클릭, 일반결제) 결과가 정상적으로 수신되었으므로 DB 작업을 할 경우 + * 결과페이지로 데이터를 전송하기 전 이부분에서 하면된다. + * + * 여기서 DB 작업을 해 주세요. + * 주의) $rSuccYn 값이 'y' 일경우 신용카드승인성공 + * 주의) $rSuccYn 값이 'n' 일경우 신용카드승인실패 + * DB 작업을 하실 경우 $rSuccYn 값이 'y' 또는 'n' 일경우에 맞게 작업하십시오. + * + ****************************************************************************/ + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //주문정보 입력 + if($rSuccYn=="y"){ + //$blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 6); + $blnRS = updatePayState("card",$OrdNo); + }else{ + jsMsg("신용카드 승인실패"); + } + if($blnRS==true){ + //KCP 결제후 DB 입력처리 완료 변수 설정 + $bSucc = "true"; + //결제금액 $Amt, 상품명 $ProdNm , 결제형태$AuthTy + + //주문자정보 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){//회원로그인을 한 상태라면 + $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_escape_string($arrList["list"][0]["order_no"])); + }else{ + $arrInfo = getOrderInfoGuest($_SESSION[$_SITE["DOMAIN"]]["GUEST"]["NAME"], $_SESSION[$_SITE["DOMAIN"]]["GUEST"]["EMAIL"], mysql_escape_string($arrList["list"][0]["order_no"])); + } + ?> + "; + } + + /**************************************************************************** + * + * 암호화Process와 연결을 하고 승인 데이터 송수신 + * + ****************************************************************************/ + + $fp = fsockopen( $LOCALADDR, $LOCALPORT , &$errno, &$errstr, $CONN_TIMEOUT ); + + + if( !$fp ) + { + /** 연결 실패로 인한 승인실패 메세지 전송 **/ + + $rSuccYn = "n"; + $rResMsg = "연결 실패로 인한 승인실패"; + } + else + { + /** 승인 전문을 암호화Process로 전송 **/ + + fputs( $fp, $sSendMsg ); + + socket_set_timeout($fp, $READ_TIMEOUT); + + /** 최초 6바이트를 수신해 데이터 길이를 체크한 후 데이터만큼만 받는다. **/ + + $sRecvLen = fgets( $fp, 7 ); + $sRecvMsg = fgets( $fp, $sRecvLen + 1 ); + + /**************************************************************************** + * + * 데이터 값이 정상적으로 넘어가지 않을 경우 이부분을 수정하여 주시기 바랍니다. + * PHP 버전에 따라 수신 데이터 길이 체크시 페이지오류가 발생할 수 있습니다 + * 에러메세지:수신 데이터(길이) 체크 에러 통신오류에 의한 승인 실패 + * 데이터 길이 체크 오류시 아래와 같이 변경하여 사용하십시오 + * $sRecvLen = fgets( $fp, 6 ); + * $sRecvMsg = fgets( $fp, $sRecvLen ); + * + ****************************************************************************/ + + /** 소켓 close **/ + + fclose( $fp ); + } + + /**************************************************************************** + * + * 수신 메세지 프린트 + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sRecvMsg."
    "; + } + + if( strlen( $sRecvMsg ) == $sRecvLen ) + { + /** 수신 데이터(길이) 체크 정상 **/ + + $RecvValArray = array(); + $RecvValArray = explode( "|", $sRecvMsg ); + + /** null 또는 NULL 문자, 0 을 공백으로 변환 + for( $i = 0; $i < sizeof( $RecvValArray); $i++ ) + { + $RecvValArray[$i] = trim( $RecvValArray[$i] ); + + if( !strcmp( $RecvValArray[$i], "null" ) || !strcmp( $RecvValArray[$i], "NULL" ) ) + { + $RecvValArray[$i] = ""; + } + + if( IsNumber( $RecvValArray[$i] ) ) + { + if( $RecvValArray[$i] == 0 ) $RecvValArray[$i] = ""; + } + } **/ + + $rStoreId = $RecvValArray[1]; + $rOrdNo = $RecvValArray[2]; + $ES_SENDNO = $RecvValArray[4]; + $rSuccYn = $RecvValArray[5]; + $rResMsg = $RecvValArray[6]; + + /**************************************************************************** + * + * 계좌이체(소켓)결제 결과가 정상적으로 수신되었으므로 DB 작업을 할 경우 + * 결과페이지로 데이터를 전송하기 전 이부분에서 하면된다. + * + * 여기서 DB 작업을 해 주세요. + * 주의) $rSuccYn 값이 'y' 일경우 계좌이체결제성공 + * 주의) $rSuccYn 값이 'n' 일경우 계좌이체결제실패 + * DB 작업을 하실 경우 $rSuccYn 값이 'y' 또는 'n' 일경우에 맞게 작업하십시오. + * + ****************************************************************************/ + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //주문정보 입력 + if($rSuccYn=="y"){ + //$blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 6); + $blnRS = updatePayState("escrow",$OrdNo);//입금대기 + }else{ + jsMsg("계좌이체 결제실패"); + } + if($blnRS==true){ + //KCP 결제후 DB 입력처리 완료 변수 설정 + $bSucc = "true"; + //결제금액 $Amt, 상품명 $ProdNm , 결제형태$AuthTy + + //주문자정보 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){//회원로그인을 한 상태라면 + $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_escape_string($arrList["list"][0]["order_no"])); + }else{ + $arrInfo = getOrderInfoGuest($_SESSION[$_SITE["DOMAIN"]]["GUEST"]["NAME"], $_SESSION[$_SITE["DOMAIN"]]["GUEST"]["EMAIL"], mysql_escape_string($arrList["list"][0]["order_no"])); + } + ?> + "; + } + + /**************************************************************************** + * + * 암호화Process와 연결을 하고 승인 데이터 송수신 + * + ****************************************************************************/ + + $fp = fsockopen( $LOCALADDR, $LOCALPORT , &$errno, &$errstr, $CONN_TIMEOUT ); + + if( !$fp ) + { + /** 연결 실패로 인한 승인실패 메세지 전송 **/ + + $rSuccYn = "n"; + $rResMsg = "연결 실패로 인한 승인실패"; + } + else + { + /** 연결에 성공하였으므로 데이터를 받는다. **/ + + $rResMsg = "연결에 성공하였으므로 데이터를 받는다."; + + /** 승인 전문을 암호화Process로 전송 **/ + + fputs( $fp, $sSendMsg ); + + socket_set_timeout($fp, $READ_TIMEOUT); + + /** 최초 6바이트를 수신해 데이터 길이를 체크한 후 데이터만큼만 받는다. **/ + + $sRecvLen = fgets( $fp, 7 ); //수신데이터(길이) 체크에러시 6 또는 7 설정 + $sRecvMsg = fgets( $fp, $sRecvLen + 1 ); + + /**************************************************************************** + * + * 데이터 값이 정상적으로 넘어가지 않을 경우 이부분을 수정하여 주시기 바랍니다. + * PHP 버전에 따라 수신 데이터 길이 체크시 페이지오류가 발생할 수 있습니다 + * 에러메세지:수신 데이터(길이) 체크 에러 통신오류에 의한 승인 실패 + * 데이터 길이 체크 오류시 아래와 같이 변경하여 사용하십시오 + * $sRecvLen = fgets( $fp, 6 ); + * $sRecvMsg = fgets( $fp, $sRecvLen ); + * + ****************************************************************************/ + + /** 소켓 close **/ + + fclose( $fp ); + } + + /**************************************************************************** + * + * 수신 메세지 프린트 + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sRecvMsg."
    "; + } + + if( strlen( $sRecvMsg ) == $sRecvLen ) + { + /** 수신 데이터(길이) 체크 정상 **/ + + $RecvValArray = array(); + $RecvValArray = explode( "|", $sRecvMsg ); + + /** null 또는 NULL 문자, 0 을 공백으로 변환 + for( $i = 0; $i < sizeof( $RecvValArray); $i++ ) + { + $RecvValArray[$i] = trim( $RecvValArray[$i] ); + + if( !strcmp( $RecvValArray[$i], "null" ) || !strcmp( $RecvValArray[$i], "NULL" ) ) + { + $RecvValArray[$i] = ""; + } + + if( IsNumber( $RecvValArray[$i] ) ) + { + if( $RecvValArray[$i] == 0 ) $RecvValArray[$i] = ""; + } + } **/ + + $rAuthTy = $RecvValArray[0]; + $rStoreId = $RecvValArray[1]; + $rApprTm = $RecvValArray[2]; + $rVirNo = $RecvValArray[3]; + $rSuccYn = $RecvValArray[4]; + $rResMsg = $RecvValArray[5]; + + $rOrdNo = $OrdNo; + $rProdNm = $ProdNm; + $rAmt = $Amt; + + /**************************************************************************** + * + * 가상계좌배포 결과가 정상적으로 수신되었으므로 DB 작업을 할 경우 + * 결과페이지로 데이터를 전송하기 전 이부분에서 하면된다. + * + * 여기서 DB 작업을 해 주세요. + * 주의) $rSuccYn 값이 'y' 일경우 일반가상계좌결제승인성공 + * 주의) $rSuccYn 값이 'n' 일경우 일반가상계좌결제승인실패 + * DB 작업을 하실 경우 $rSuccYn 값이 'y' 또는 'n' 일경우에 맞게 작업하십시오. + * + * 에스크로 가상계좌의 경우 rResMsg 필드 값 뒤에서 6자리가 숫자로 들어오며, + * 이 부분을 잘라서 ES_SENDNO(에스크로 전문번호)로 저장하시기 바랍니다. + * + ****************************************************************************/ + + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //주문정보 입력 + if($rSuccYn=="y"){ + //$blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 1); + $blnRS = updatePayState("online",$OrdNo);//입금대기 처리 + }else{ + jsMsg("일반 가상계좌결제 승인실패"); + } + if($blnRS==true){ + //KCP 결제후 DB 입력처리 완료 변수 설정 + $bSucc = "true"; + //결제금액 $Amt, 상품명 $ProdNm , 결제형태$AuthTy + + //주문자정보 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){//회원로그인을 한 상태라면 + $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_escape_string($arrList["list"][0]["order_no"])); + }else{ + $arrInfo = getOrderInfoGuest($_SESSION[$_SITE["DOMAIN"]]["GUEST"]["NAME"], $_SESSION[$_SITE["DOMAIN"]]["GUEST"]["EMAIL"], mysql_escape_string($arrList["list"][0]["order_no"])); + } + ?> + "; + } + + /**************************************************************************** + * + * 암호화Process와 연결을 하고 승인 데이터 송수신 + * + ****************************************************************************/ + + $fp = fsockopen( $LOCALADDR, $LOCALPORT , &$errno, &$errstr, $CONN_TIMEOUT ); + + + if( !$fp ) + { + /** 연결 실패로 인한 승인실패 메세지 전송 **/ + + $rSuccYn = "n"; + $rResMsg = "연결 실패로 인한 승인실패"; + } + else + { + /** 승인 전문을 암호화Process로 전송 **/ + + fputs( $fp, $sSendMsg ); + + socket_set_timeout($fp, $READ_TIMEOUT); + + /** 최초 6바이트를 수신해 데이터 길이를 체크한 후 데이터만큼만 받는다. **/ + + $sRecvLen = fgets( $fp, 7 ); + $sRecvMsg = fgets( $fp, $sRecvLen + 1 ); + + /**************************************************************************** + * + * 데이터 값이 정상적으로 넘어가지 않을 경우 이부분을 수정하여 주시기 바랍니다. + * PHP 버전에 따라 수신 데이터 길이 체크시 페이지오류가 발생할 수 있습니다 + * 에러메세지:수신 데이터(길이) 체크 에러 통신오류에 의한 승인 실패 + * 데이터 길이 체크 오류시 아래와 같이 변경하여 사용하십시오 + * $sRecvLen = fgets( $fp, 6 ); + * $sRecvMsg = fgets( $fp, $sRecvLen ); + * + ****************************************************************************/ + + /** 소켓 close **/ + + fclose( $fp ); + } + + /**************************************************************************** + * + * 수신 메세지 프린트 + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sRecvMsg."
    "; + } + + if( strlen( $sRecvMsg ) == $sRecvLen ) + { + /** 수신 데이터(길이) 체크 정상 **/ + + $RecvValArray = array(); + $RecvValArray = explode( "|", $sRecvMsg ); + + /** null 또는 NULL 문자, 0 을 공백으로 변환 + for( $i = 0; $i < sizeof( $RecvValArray); $i++ ) + { + $RecvValArray[$i] = trim( $RecvValArray[$i] ); + + if( !strcmp( $RecvValArray[$i], "null" ) || !strcmp( $RecvValArray[$i], "NULL" ) ) + { + $RecvValArray[$i] = ""; + } + + if( IsNumber( $RecvValArray[$i] ) ) + { + if( $RecvValArray[$i] == 0 ) $RecvValArray[$i] = ""; + } + } **/ + + $rStoreId = $RecvValArray[0]; + $rSuccYn = $RecvValArray[1]; + $rResMsg = $RecvValArray[2]; + $rHP_DATE = $RecvValArray[3]; + $rHP_TID = $RecvValArray[4]; + $rAmt = $Amt; + $rOrdNo = $OrdNo; + + /**************************************************************************** + * + * 핸드폰결제 결과가 정상적으로 수신되었으므로 DB 작업을 할 경우 + * 결과페이지로 데이터를 전송하기 전 이부분에서 하면된다. + * + * 여기서 DB 작업을 해 주세요. + * 주의) $rSuccYn 값이 'y' 일경우 핸드폰결제승인성공 + * 주의) $rSuccYn 값이 'n' 일경우 핸드폰결제승인실패 + * DB 작업을 하실 경우 $rSuccYn 값이 'y' 또는 'n' 일경우에 맞게 작업하십시오. + * + ****************************************************************************/ + + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + + //주문정보 입력 + if($rSuccYn=="y"){ + //$blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 6); + $blnRS = updatePayState("hp",$OrdNo);//입금확인 + }else{ + jsMsg("핸드폰결제 승인실패"); + } + if($blnRS==true){ + //KCP 결제후 DB 입력처리 완료 변수 설정 + $bSucc = "true"; + //결제금액 $Amt, 상품명 $ProdNm , 결제형태$AuthTy + + //주문자정보 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){//회원로그인을 한 상태라면 + $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_escape_string($arrList["list"][0]["order_no"])); + }else{ + $arrInfo = getOrderInfoGuest($_SESSION[$_SITE["DOMAIN"]]["GUEST"]["NAME"], $_SESSION[$_SITE["DOMAIN"]]["GUEST"]["EMAIL"], mysql_escape_string($arrList["list"][0]["order_no"])); + } + ?> + "; + } + + /**************************************************************************** + * + * 암호화Process와 연결을 하고 승인 데이터 송수신 + * + ****************************************************************************/ + + $fp = fsockopen( $LOCALADDR, $LOCALPORT , &$errno, &$errstr, $CONN_TIMEOUT ); + + + if( !$fp ) + { + /** 연결 실패로 인한 승인실패 메세지 전송 **/ + + $rSuccYn = "n"; + $rResMsg = "연결 실패로 인한 승인실패"; + } + else + { + /** 승인 전문을 암호화Process로 전송 **/ + + fputs( $fp, $sSendMsg ); + + socket_set_timeout($fp, $READ_TIMEOUT); + + /** 최초 6바이트를 수신해 데이터 길이를 체크한 후 데이터만큼만 받는다. **/ + + $sRecvLen = fgets( $fp, 7 ); + $sRecvMsg = fgets( $fp, $sRecvLen + 1 ); + + /**************************************************************************** + * + * 데이터 값이 정상적으로 넘어가지 않을 경우 이부분을 수정하여 주시기 바랍니다. + * PHP 버전에 따라 수신 데이터 길이 체크시 페이지오류가 발생할 수 있습니다 + * 에러메세지:수신 데이터(길이) 체크 에러 통신오류에 의한 승인 실패 + * 데이터 길이 체크 오류시 아래와 같이 변경하여 사용하십시오 + * $sRecvLen = fgets( $fp, 6 ); + * $sRecvMsg = fgets( $fp, $sRecvLen ); + * + ****************************************************************************/ + + /** 소켓 close **/ + + fclose( $fp ); + } + + /**************************************************************************** + * + * 수신 메세지 프린트 + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sRecvMsg."
    "; + } + + if( strlen( $sRecvMsg ) == $sRecvLen ) + { + /** 수신 데이터(길이) 체크 정상 **/ + + $RecvValArray = array(); + $RecvValArray = explode( "|", $sRecvMsg ); + + /** null 또는 NULL 문자, 0 을 공백으로 변환 + for( $i = 0; $i < sizeof( $RecvValArray); $i++ ) + { + $RecvValArray[$i] = trim( $RecvValArray[$i] ); + + if( !strcmp( $RecvValArray[$i], "null" ) || !strcmp( $RecvValArray[$i], "NULL" ) ) + { + $RecvValArray[$i] = ""; + } + + if( IsNumber( $RecvValArray[$i] ) ) + { + if( $RecvValArray[$i] == 0 ) $RecvValArray[$i] = ""; + } + } **/ + + $rStoreId = $RecvValArray[0]; + $rSuccYn = $RecvValArray[1]; + $rResMsg = $RecvValArray[2]; + $rHP_DATE = $RecvValArray[3]; + $rHP_TID = $RecvValArray[4]; + $rAmt = $Amt; + $rOrdNo = $OrdNo; + + /**************************************************************************** + * + * 핸드폰결제 결과가 정상적으로 수신되었으므로 DB 작업을 할 경우 + * 결과페이지로 데이터를 전송하기 전 이부분에서 하면된다. + * + * 여기서 DB 작업을 해 주세요. + * 주의) $rSuccYn 값이 'y' 일경우 핸드폰결제승인성공 + * 주의) $rSuccYn 값이 'n' 일경우 핸드폰결제승인실패 + * DB 작업을 하실 경우 $rSuccYn 값이 'y' 또는 'n' 일경우에 맞게 작업하십시오. + * + ****************************************************************************/ + + + + + + + + } + else + { + /** 수신 데이터(길이) 체크 에러시 통신오류에 의한 승인 실패로 간주 **/ + + $rSuccYn = "n"; + $rResMsg = "수신 데이터(길이) 체크 에러 통신오류에 의한 승인 실패"; + } + } +} +else +{ + $rSuccYn = "n"; + $rResMsg = $ERRMSG; +} +?> + + + + +
    + + + + +"> +"> +"> +"> +"> +"> +"> + +"> +"> +"> + + +"> +"> +"> + +"> +"> +"> +"> +"> + +"> + + +"> +"> +"> + + + + + + + + + + + +"> +"> + +"> + + +"> + +
    + + diff --git a/module/shop/pg/agspay_bak/AGS_pay_ing_mobile.php b/module/shop/pg/agspay_bak/AGS_pay_ing_mobile.php new file mode 100644 index 0000000..9813d4a --- /dev/null +++ b/module/shop/pg/agspay_bak/AGS_pay_ing_mobile.php @@ -0,0 +1,409 @@ +SetValue("AgsPayHome",$_SERVER[DOCUMENT_ROOT]."/module/shop/pg/agspay"); //올더게이트 결제설치 디렉토리 (상점에 맞게 수정) +$agspay->SetValue("StoreId",trim($_POST["StoreId"])); //상점아이디 +$agspay->SetValue("log","true"); //true : 로그기록, false : 로그기록안함. +$agspay->SetValue("logLevel","INFO"); //로그레벨 : DEBUG, INFO, WARN, ERROR, FATAL (해당 레벨이상의 로그만 기록됨) +$agspay->SetValue("UseNetCancel","true"); //true : 망취소 사용. false: 망취소 미사용 +$agspay->SetValue("Type", "Pay"); //고정값(수정불가) +$agspay->SetValue("RecvLen", 7); //수신 데이터(길이) 체크 에러시 6 또는 7 설정. + +$agspay->SetValue("AuthTy",trim($_POST["AuthTy"])); //결제형태 +$agspay->SetValue("SubTy", trim($_POST["SubTy"])); //서브결제형태 +$agspay->SetValue("OrdNo", trim($_POST["OrdNo"])); //주문번호 +$agspay->SetValue("Amt", trim($_POST["Amt"])); //금액 +$agspay->SetValue("UserEmail", trim($_POST["UserEmail"])); //주문자이메일 +$agspay->SetValue("ProdNm", trim($_POST["ProdNm"])); //상품명 +// $AGS_HASHDATA = trim($_POST["AGS_HASHDATA"])); //암호화 HASHDATA + +/*신용카드&가상계좌사용*/ +$agspay->SetValue("MallUrl", trim($_POST["MallUrl"])); //MallUrl(무통장입금) - 상점 도메인 가상계좌추가 +$agspay->SetValue("UserId", trim($_POST["UserId"])); //회원아이디 + +/*신용카드사용*/ +$agspay->SetValue("OrdNm", trim($_POST["OrdNm"])); //주문자명 +$agspay->SetValue("OrdPhone", trim($_POST["OrdPhone"])); //주문자연락처 +$agspay->SetValue("OrdAddr",trim($_POST["OrdAddr"])); //주문자주소 가상계좌추가 +$agspay->SetValue("RcpNm", trim($_POST["RcpNm"])); //수신자명 +$agspay->SetValue("RcpPhone", trim($_POST["RcpPhone"])); //수신자연락처 +$agspay->SetValue("DlvAddr", trim($_POST["DlvAddr"])); //배송지주소 +$agspay->SetValue("Remark", trim($_POST["Remark"])); //비고 +$agspay->SetValue("DeviId", trim($_POST["DeviId"])); //단말기아이디 +$agspay->SetValue("AuthYn", trim($_POST["AuthYn"])); //인증여부 +$agspay->SetValue("Instmt", trim($_POST["Instmt"])); //할부개월수 +//$agspay->SetValue("rCardCd", trim($_POST["rCardCd"])); //카드사코드 +$agspay->SetValue("UserIp",$_SERVER["REMOTE_ADDR"]); //회원 IP + +/*신용카드(ISP)*/ +$agspay->SetValue("partial_mm", trim($_POST["partial_mm"])); //일반할부기간 +$agspay->SetValue("noIntMonth", trim($_POST["noIntMonth"])); //무이자할부기간 +$agspay->SetValue("KVP_CURRENCY", trim($_POST["KVP_CURRENCY"])); //KVP_통화코드 +$agspay->SetValue("KVP_CARDCODE", trim($_POST["KVP_CARDCODE"])); //KVP_카드사코드 +$agspay->SetValue("KVP_SESSIONKEY", $_POST["KVP_SESSIONKEY"]); //KVP_SESSIONKEY +$agspay->SetValue("KVP_ENCDATA", $_POST["KVP_ENCDATA"]); //KVP_ENCDATA +$agspay->SetValue("KVP_CONAME", trim($_POST["KVP_CONAME"])); //KVP_카드명 +$agspay->SetValue("KVP_NOINT", trim($_POST["KVP_NOINT"])); //KVP_무이자=1 일반=0 +$agspay->SetValue("KVP_QUOTA", trim($_POST["KVP_QUOTA"])); //KVP_할부개월 + +/*신용카드(안심)*/ +$agspay->SetValue("CardNo", trim($_POST["CardNo"])); //카드번호 +$agspay->SetValue("MPI_CAVV", $_POST["MPI_CAVV"]); //MPI_CAVV +$agspay->SetValue("MPI_ECI", $_POST["MPI_ECI"]); //MPI_ECI +$agspay->SetValue("MPI_MD64", $_POST["MPI_MD64"]); //MPI_MD64 + +/*신용카드(일반)*/ +$agspay->SetValue("ExpMon", trim($_POST["ExpMon"])); //유효기간(월) +$agspay->SetValue("ExpYear", trim($_POST["ExpYear"])); //유효기간(년) +$agspay->SetValue("Passwd", trim($_POST["Passwd"])); //비밀번호 +$agspay->SetValue("SocId", trim($_POST["SocId"])); //주민등록번호/사업자등록번호 + +/*핸드폰사용*/ +$agspay->SetValue("HP_SERVERINFO", trim($_POST["HP_SERVERINFO"])); //SERVER_INFO(핸드폰결제) +$agspay->SetValue("HP_HANDPHONE", trim($_POST["HP_HANDPHONE"])); //HANDPHONE(핸드폰결제) +$agspay->SetValue("HP_COMPANY", trim($_POST["HP_COMPANY"])); //COMPANY(핸드폰결제) +$agspay->SetValue("HP_ID", trim($_POST["HP_ID"])); //HP_ID(핸드폰결제) +$agspay->SetValue("HP_SUBID", trim($_POST["HP_SUBID"])); //HP_SUBID(핸드폰결제) +$agspay->SetValue("HP_UNITType", trim($_POST["HP_UNITType"])); //HP_UNITType(핸드폰결제) +$agspay->SetValue("HP_IDEN", trim($_POST["HP_IDEN"])); //HP_IDEN(핸드폰결제) +$agspay->SetValue("HP_IPADDR", trim($_POST["HP_IPADDR"])); //HP_IPADDR(핸드폰결제) + +/*가상계좌사용*/ +$agspay->SetValue("VIRTUAL_CENTERCD", trim($_POST["VIRTUAL_CENTERCD"])); //은행코드(가상계좌) +$agspay->SetValue("VIRTUAL_DEPODT", trim($_POST["VIRTUAL_DEPODT"])); //입금예정일(가상계좌) +$agspay->SetValue("ZuminCode", trim($_POST["ZuminCode"])); //주민번호(가상계좌) +$agspay->SetValue("MallPage", trim($_POST["MallPage"])); //상점 입/출금 통보 페이지(가상계좌) +$agspay->SetValue("VIRTUAL_NO", trim($_POST["VIRTUAL_NO"])); //가상계좌번호(가상계좌) + +/*에스크로사용*/ +$agspay->SetValue("ES_SENDNO", trim($_POST["ES_SENDNO"])); //에스크로전문번호 + + +/*추가사용필드*/ +$agspay->SetValue("Column1", trim($_POST["Column1"])); //추가사용필드1 +$agspay->SetValue("Column2", trim($_POST["Column2"])); //추가사용필드2 +$agspay->SetValue("Column3", trim($_POST["Column3"])); //추가사용필드3 + +/**************************************************************************** +* +* [4] 올더게이트 결제서버로 결제를 요청합니다. +* +****************************************************************************/ +$agspay->startPay(); + + +/**************************************************************************** +* +* [5] 결제결과에 따른 상점DB 저장 및 기타 필요한 처리작업을 수행하는 부분입니다. +* +* 아래의 결과값들을 통하여 각 결제수단별 결제결과값을 사용하실 수 있습니다. +* +* -- 공통사용 -- +* 업체ID : $agspay->GetResult("rStoreId") +* 주문번호 : $agspay->GetResult("rOrdNo") +* 상품명 : $agspay->GetResult("rProdNm") +* 거래금액 : $agspay->GetResult("rAmt") +* 성공여부 : $agspay->GetResult("rSuccYn") (성공:y 실패:n) +* 결과메시지 : $agspay->GetResult("rResMsg") +* +* 1. 신용카드 +* +* 전문코드 : $agspay->GetResult("rBusiCd") +* 거래번호 : $agspay->GetResult("rDealNo") +* 승인번호 : $agspay->GetResult("rApprNo") +* 할부개월 : $agspay->GetResult("rInstmt") +* 승인시각 : $agspay->GetResult("rApprTm") +* 카드사코드 : $agspay->GetResult("rCardCd") +* +* +* 2.가상계좌 +* 가상계좌의 결제성공은 가상계좌발급의 성공만을 의미하며 입금대기상태로 실제 고객이 입금을 완료한 것은 아닙니다. +* 따라서 가상계좌 결제완료시 결제완료로 처리하여 상품을 배송하시면 안됩니다. +* 결제후 고객이 발급받은 계좌로 입금이 완료되면 MallPage(상점 입금통보 페이지(가상계좌))로 입금결과가 전송되며 +* 이때 비로소 결제가 완료되게 되므로 결제완료에 대한 처리(배송요청 등)은 MallPage에 작업해주셔야 합니다. +* 결제종류 : $agspay->GetResult("rAuthTy") (가상계좌 일반 : vir_n 유클릭 : vir_u 에스크로 : vir_s) +* 승인일자 : $agspay->GetResult("rApprTm") +* 가상계좌번호 : $agspay->GetResult("rVirNo") +* +* 3.핸드폰결제 +* 핸드폰결제일 : $agspay->GetResult("rHP_DATE") +* 핸드폰결제 TID : $agspay->GetResult("rHP_TID") +* +****************************************************************************/ + +if($agspay->GetResult("rSuccYn") == "y") +{ + $resultArray = array( + "OrdNm" => $agspay->GetResult("OrdNm"), + "OrdPhone" => $agspay->GetResult("OrdPhone"), + "Column1" => $agspay->GetResult("Column1"), + "OrdAddr" => $agspay->GetResult("OrdAddr"), + "UserEmail" => $agspay->GetResult("UserEmail"), + "RcpNm" => $agspay->GetResult("RcpNm"), + "RcpPhone" => $agspay->GetResult("RcpPhone"), + "Column2" => $agspay->GetResult("Column2"), + "DlvAddr" => $agspay->GetResult("DlvAddr"), + "Remark" => $agspay->GetResult("Remark"), + "Column3" => $agspay->GetResult("Column3") + ); + + if($agspay->GetResult("AuthTy") == "virtual"){ + //가상계좌결제의 경우 입금이 완료되지 않은 입금대기상태(가상계좌 발급성공)이므로 상품을 배송하시면 안됩니다. + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //_POST 로 받는 주문번호가 기존에 주문된 주문번호인지 확인 +// if(checkVaildOrderNo(mysql_escape_string($_POST["order_no"]))==true){ + if(checkVaildOrderNo(mysql_escape_string($agspay->GetResult("rOrdNo")))==true){ + jsMsg("이미 주문이 완료되었습니다."); + } + + //_POST 로 받은 주문번호가 구매직전 장바구니에 있는지 확인 +// if($_POST["order_no"] != $arrList["list"][0]["order_no"]){ + if($agspay->GetResult("rOrdNo") != $arrList["list"][0]["order_no"]){ + jsMsg("잘못된 주문 정보 입니다. 주문 장바구니에 해당 주문건이 없습니다."); + } + + //주문정보 입력 +// if($rSuccYn=="y"){ + $blnRS = setOrderInfoMobile($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 1, $resultArray); +// }else{ +// jsMsg("일반 가상계좌결제 승인실패"); +// } + if($blnRS==true){ + + //주문자에게 메일발송 + // $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_escape_string($_REQUEST["order_no"])); + // $arrMailInfo = getMailConfig(1); + // sendMailShopInfo($arrInfo, $arrMailInfo); + //주문자에게 메일발송 + } + //DB해제 + SetDisConn($dblink); + + }else if($agspay->GetResult("AuthTy") == "card"){ + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //_POST 로 받는 주문번호가 기존에 주문된 주문번호인지 확인 +// if(checkVaildOrderNo(mysql_escape_string($_POST["order_no"]))==true){ + $blnRS = updatePayState("card",$_POST["OrdNo"]); + if(checkVaildOrderNo(mysql_escape_string($agspay->GetResult("rOrdNo")))==true){ + //jsMsg("이미 주문이 완료되었습니다.card"); + } + + //_POST 로 받은 주문번호가 구매직전 장바구니에 있는지 확인 +// if($_POST["order_no"] != $arrList["list"][0]["order_no"]){ + if($agspay->GetResult("rOrdNo") != $arrList["list"][0]["order_no"]){ + //jsMsg("잘못된 주문 정보 입니다. 주문 장바구니에 해당 주문건이 없습니다.card"); + } + + //주문정보 입력 +// if($rSuccYn=="y"){ + $blnRS = setOrderInfoMobile($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 6, $resultArray); +// $blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 2, $agspay->GetResult("rApprNo"), $agspay->GetResult("rApprTm"), $agspay->GetResult("rDealNo"), $agspay->GetResult("AuthTy"), $agspay->GetResult("SubTy")); +// }else{ +// jsMsg("신용카드 승인실패"); +// } + if($blnRS==true){ + //주문자에게 메일발송 + } + //DB해제 + SetDisConn($dblink); + + }else if($agspay->GetResult("AuthTy") == "hp"){ + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //_POST 로 받는 주문번호가 기존에 주문된 주문번호인지 확인 +// if(checkVaildOrderNo(mysql_escape_string($_POST["order_no"]))==true){ + if(checkVaildOrderNo(mysql_escape_string($agspay->GetResult("rOrdNo")))==true){ + jsMsg("이미 주문이 완료되었습니다."); + } + + //_POST 로 받은 주문번호가 구매직전 장바구니에 있는지 확인 +// if($_POST["order_no"] != $arrList["list"][0]["order_no"]){ + if($agspay->GetResult("rOrdNo") != $arrList["list"][0]["order_no"]){ + jsMsg("잘못된 주문 정보 입니다. 주문 장바구니에 해당 주문건이 없습니다."); + } + + //주문정보 입력 +// if($rSuccYn=="y"){ + $blnRS = setOrderInfoMobile($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 6, $resultArray); +// $blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 2); +// }else{ +// jsMsg("신용카드 승인실패"); +// } + if($blnRS==true){ + //주문자에게 메일발송 +// $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_escape_string($_REQUEST["order_no"])); +// $arrMailInfo = getMailConfig(6); +// sendMailShopInfo($arrInfo, $arrMailInfo); + //주문자에게 메일발송 + } + //DB해제 + SetDisConn($dblink); + } +} +else +{ + // 결제실패에 따른 상점처리부분 + echo ("결제가 실패처리되었습니다. [" . $agspay->GetResult("rSuccYn")."]". $agspay->GetResult("rResMsg").". " ); +} + +/******************************************************************* +* [6] 결제가 정상처리되지 못했을 경우 $agspay->GetResult("NetCancID") 값을 이용하여 +* 결제결과에 대한 재확인요청을 할 수 있습니다. +* +* 추가 데이터송수신이 발생하므로 결제가 정상처리되지 않았을 경우에만 사용하시기 바랍니다. +* +* 사용방법 : +* $agspay->checkPayResult($agspay->GetResult("NetCancID")); +* +*******************************************************************/ + +/* +$agspay->SetValue("Type", "Pay"); // 고정 +$agspay->checkPayResult($agspay->GetResult("NetCancID")); +*/ + +/******************************************************************* +* [7] 상점DB 저장 및 기타 처리작업 수행실패시 강제취소 +* +* $cancelReq : "true" 강제취소실행, "false" 강제취소실행안함. +* +* 결제결과에 따른 상점처리부분 수행 중 실패하는 경우 +* 아래의 코드를 참조하여 거래를 취소할 수 있습니다. +* 취소성공여부 : $agspay->GetResult("rCancelSuccYn") (성공:y 실패:n) +* 취소결과메시지 : $agspay->GetResult("rCancelResMsg") +* +* 유의사항 : +* 가상계좌(virtual)는 강제취소 기능이 지원되지 않습니다. +*******************************************************************/ + +// 상점처리부분 수행실패시 $cancelReq를 "true"로 변경하여 +// 결제취소를 수행되도록 할 수 있습니다. +// $cancelReq의 "true"값으로 변경조건은 상점에서 판단하셔야 합니다. + +/* +$cancelReq = "false"; + +if($cancelReq == "true") +{ + $agspay->SetValue("Type", "Cancel"); // 고정 + $agspay->SetValue("CancelMsg", "DB FAIL"); // 취소사유 + $agspay->startPay(); +} +*/ +?> + + + + + +
    + +"> + + + +"> +"> +"> +"> +"> +"> +"> + + +"> +"> +"> + + +"> +"> +"> +"> + +"> +"> +"> +"> + + +"> +"> +"> +"> + + +"> +"> + + +"> + +
    + + diff --git a/module/shop/pg/agspay_bak/AGS_pay_result.php b/module/shop/pg/agspay_bak/AGS_pay_result.php new file mode 100644 index 0000000..6cb37aa --- /dev/null +++ b/module/shop/pg/agspay_bak/AGS_pay_result.php @@ -0,0 +1,403 @@ + + + +ôƮ + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +


    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    : + +
    ̵ :
    ֹȣ :
    ֹڸ :
    ǰ :
    ݾ :
    :
    ó޼ :
    νð :
    ڵ :
    ιȣ :
    īڵ :
    ī :
    Իڵ :
    Ի :
    ȣ :
    ǥȣ :
    ŷȣ :
    ü :
    üݾ :
    ü¼ :
    ũ(SEND_NO) :
    ڵTID :
    ڵ¥ :
    ڵڵȣ :
    ڵŻ :
    ARSTID :
    ARS¥ :
    ARSȭȣ :
    ARSŻ :
    Աݰ¹ȣ :
    Ա :
    ָ : ()ȿ
    ũ(SEND_NO) :
    :
     
    ī ̿ ó ȿ() ǥ˴ϴ.
    +

    Copyright 2007-2009 AEGISHYOSUNG.Co.,Ltd. All rights reserved.
    +
    + + + diff --git a/module/shop/pg/agspay_bak/AGS_progress.html b/module/shop/pg/agspay_bak/AGS_progress.html new file mode 100644 index 0000000..3b74a34 --- /dev/null +++ b/module/shop/pg/agspay_bak/AGS_progress.html @@ -0,0 +1,27 @@ + + + +ó... + + + + + + + + +
    + óԴϴ. ø ٷ ֽʽÿ. +
    +
    + +
    + + \ No newline at end of file diff --git a/module/shop/pg/agspay_bak/_mobile.php b/module/shop/pg/agspay_bak/_mobile.php new file mode 100644 index 0000000..fd07c69 --- /dev/null +++ b/module/shop/pg/agspay_bak/_mobile.php @@ -0,0 +1,246 @@ + + + + +/module/shop/pg/agspay/AGS_pay_ing_mobile.php"> +/module/shop/shop.php?goPage=OrderMobile"> + +"> + + +"> + +"> + +"> + + + + + + + + + + + + + + + + + + +"> +"> +"> +"> +"> + + + + + + + diff --git a/module/shop/pg/agspay_bak/aegis_Func.php b/module/shop/pg/agspay_bak/aegis_Func.php new file mode 100644 index 0000000..9fb972c --- /dev/null +++ b/module/shop/pg/agspay_bak/aegis_Func.php @@ -0,0 +1,211 @@ + $Value ) + { + if( strcmp( $Value, $StoreId ) == 0 ) + { + $CurrTime = date( "H" ); + if( $CurrTime >= $Limit_StartTime[$Index] || $CurrTime < $Limit_EndTime[$Index] ) + { + print " + + "; + } + return; + } + } +} +*/ + +/* + Aegis ī嵥 Encrypt +*/ + +function encrypt_aegis( $OrgData ) +{ + if( empty( $OrgData ) || $OrgData == "" ) + { + return ""; + } + + $temp = ""; + for( $i = 0; $i < strlen( $OrgData ); $i++ ) + { + $temp .= substr( $OrgData, (strlen( $OrgData ) - 1) - $i, 1 ); + } + + //print "Reverse data : ".$temp."
    "; + + $one_char = ""; + $EncData = ""; + for( $i = 0; $i < strlen( $temp ); $i++ ) + { + $one_char = substr( $temp, $i, 1 ); + $EncData .= ($one_char + $i * 77) % 10 ; + } + + //print "Enc Data : ".$EncData."
    "; + + return $EncData; +} + +/* + ڿ +*/ +function format_string($TSTR,$TLEN,$TAG) +{ + if ( !isset($TSTR) ) + { + for ( $i=0 ; $i < $TLEN ; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + } + + $TSTR = trim($TSTR); + + $TSTR = stripslashes($TSTR); + + // Էڷᰡ ̺ ڸ ѱó + + if ( strlen($TSTR) > $TLEN ) + { + // $flag == 1 ̸ Ʈ ѱ Ʈ ̶ ű ڸ Ǹ + // ѱ Ǵ ߻մϴ. + + $flag = 0; + + for($i=0 ; $i< $TLEN ; $i++) + { + $j = ord($TSTR[$i]); // ASCII մϴ. + // ASCII 127 ũ Ʈ ѱ ۹Ʈ̰ų Ʈ(?) . + if($j > 127) + { + if( $flag ) $flag = 0; // $flag Ѵٴ ̹ ڴ ѱ Ʈ̱ + // $flag 0 ݴϴ. + else $flag = 1; // ѱ ۹Ʈ. ׷Ƿ $flag 1! + } + else $flag = 0; // ٸ ڳ ϶ ׳ Ѿ ǰ. + } + if( $flag ) + { + // ̷ ؼ ڱ $flag ؼ $flag ϸ + $TSTR = substr($TSTR, 0, $TLEN - 1); + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + else + { + // ѹƮ ؼ ڸ ڸ ؾ߰. + $TSTR = substr($TSTR, 0, $TLEN); // ƴ .... + } + + return $TSTR; // Ʈ ȯմϴ. + + // Էڷᰡ ̺ SPACE ä + } + else if ( strlen($TSTR) < $TLEN ) + { + $TLENGTH = strlen($TSTR); + for ( $i=0 ; $i < $TLEN - $TLENGTH; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + + return ($TSTR); + + // Էڷᰡ ̿ + } + else if ( strlen($TSTR) == $TLEN ) + { + return ($TSTR); + } +} + +/* + Է ڰ ھƽŰ شϴ Ǵ. +*/ +function IsNumber($word) +{ + + for($i = 0; $i < strlen($word); $i++) + { + $wordNum = ord( substr( $word, $i, 1 ) ); + + if( $wordNum < 48 || $wordNum > 57 ) + { + return false; + } + + } + + return true; +} +/* + ޼ +*/ +function AlertMsg( $msg , $go=0) +{ + + $msg = str_replace( "\"" ,"'" ,$msg ); + $msg = str_replace( "\n" ,"\\n" ,$msg ); + print ""; + +} +function HistoryGo( $go ) +{ + print ""; +} + +function AlertExit( $msg ) +{ + + AlertMsg( $msg ); + exit; + +} + +function AlertGoBack( $msg ) +{ + + AlertMsg( $msg, -1); + exit; +} + +?> \ No newline at end of file diff --git a/module/shop/pg/agspay_bak/default.html b/module/shop/pg/agspay_bak/default.html new file mode 100644 index 0000000..1f99068 --- /dev/null +++ b/module/shop/pg/agspay_bak/default.html @@ -0,0 +1,43 @@ + + +ôƮ + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    ôƮ ý

    ҿûôƮ ÷ Ͽ óմϴ.
    ҿûŷȣ(TID) ԷϿ մϴ.

    Copyright 2006-2007 AEGISHYOSUNG.Co.,Ltd. All rights reserved.
    +
    + + diff --git a/module/shop/pg/agspay_bak/log/AgsPay40_php_acetel_140702.log b/module/shop/pg/agspay_bak/log/AgsPay40_php_acetel_140702.log new file mode 100644 index 0000000..1f900cf --- /dev/null +++ b/module/shop/pg/agspay_bak/log/AgsPay40_php_acetel_140702.log @@ -0,0 +1,387 @@ +INFO [2014-07-02 18:29:22:541] <25061> =============================================================== +INFO [2014-07-02 18:29:22:541] <25061> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-02 18:29:22:541] <25061> card Pay Start! +INFO [2014-07-02 18:29:22:541] <25061> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-02 18:29:22:542] <25061> StoreId:acetel +INFO [2014-07-02 18:29:22:542] <25061> log:true +INFO [2014-07-02 18:29:22:542] <25061> logLevel:INFO +INFO [2014-07-02 18:29:22:542] <25061> UseNetCancel:true +INFO [2014-07-02 18:29:22:542] <25061> Type:Pay +INFO [2014-07-02 18:29:22:542] <25061> RecvLen:7 +INFO [2014-07-02 18:29:22:542] <25061> AuthTy:card +INFO [2014-07-02 18:29:22:542] <25061> SubTy:isp +INFO [2014-07-02 18:29:22:542] <25061> OrdNo:20140702182732T74084 +INFO [2014-07-02 18:29:22:542] <25061> Amt:17800 +INFO [2014-07-02 18:29:22:542] <25061> UserEmail:test@empal.com +INFO [2014-07-02 18:29:22:543] <25061> ProdNm:ũ 帲 +INFO [2014-07-02 18:29:22:543] <25061> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-02 18:29:22:543] <25061> UserId:test11 +INFO [2014-07-02 18:29:22:543] <25061> OrdNm:̸ +INFO [2014-07-02 18:29:22:543] <25061> OrdPhone:111-1111-1111 +INFO [2014-07-02 18:29:22:543] <25061> OrdAddr: Ż絿 1234 +INFO [2014-07-02 18:29:22:543] <25061> RcpNm:̸ +INFO [2014-07-02 18:29:22:543] <25061> RcpPhone:111-1111-1111 +INFO [2014-07-02 18:29:22:543] <25061> DlvAddr: Ż絿 ο 1234 +INFO [2014-07-02 18:29:22:543] <25061> Remark:½Ʈ +INFO [2014-07-02 18:29:22:543] <25061> DeviId:9000400001 +INFO [2014-07-02 18:29:22:543] <25061> AuthYn:N +INFO [2014-07-02 18:29:22:543] <25061> Instmt:00 +INFO [2014-07-02 18:29:22:544] <25061> UserIp:125.131.234.203 +INFO [2014-07-02 18:29:22:544] <25061> partial_mm:00 +INFO [2014-07-02 18:29:22:544] <25061> noIntMonth: +INFO [2014-07-02 18:29:22:544] <25061> KVP_CURRENCY:WON +INFO [2014-07-02 18:29:22:544] <25061> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-02 18:29:22:544] <25061> KVP_SESSIONKEY:GjyMqvog78nrNoRamfvld7GPP62GPiPru/dIykVscNysmtt0A1fhw4dbIKknQqsRadgsW0PSXCxW9hxQMWY4MTdEURQzSMCoSuDRgMlyPnJQ6ltzFUSNoJLUGXj4o2Si0EjrkwidgxZfPaZyk09p972ESaq8Adx6CtvziPwCLK4= +INFO [2014-07-02 18:29:22:544] <25061> KVP_ENCDATA:cdata=myYT6zwXX9iaMDW8UNLtk5q1SlgKanMXNOyPcVdGFjndcw0SsDhDBv22mQvZ9eUG0yT6M03/eqs0ojYVKB3o0GPYapfw1qn5HklJluvbbetMi9xp0i1G86eOge0p+7FYtNSBkWyfMtXdGTgcCSY6e5K76D/aEwMjF99E2964MTuMblD1NVOqL97uAUb0SoR4FfyAoLXdYzzAlvtJfmd8BKxJEXnSSMUSgQ/p5bt6FIPTcdPKi+ZgbjWlYicPg80KHIlJL/Zi8ELgc3ZrCsB8Q4XBXWnDw16rg/pkyZBNUdyEHLZpXq+z59z18uWxMwDR4LPRonSD9kTVB91TJO2yM8+p4/budXi61/6hM47pcdmVleDC/HvtD/ld2ERNluwZ5P2fMf1H0E4nlGqNgTUrIML33aZJv3DfzVevGgJwCdv38NLWCLTRLEx5Uc2sZMXv8vlgY8pV3VQ6lPlgknZ1pgJLnjDQ7pK86TrxBRK1TBgnOa53Wpq6zLLPGdb/HKGSKRHty69wWCIrZcbhNcRiQuATzlfJRAprlwzJAVeyd6I= +INFO [2014-07-02 18:29:22:544] <25061> KVP_CONAME: +INFO [2014-07-02 18:29:22:544] <25061> KVP_NOINT:0 +INFO [2014-07-02 18:29:22:544] <25061> KVP_QUOTA:00 +INFO [2014-07-02 18:29:22:544] <25061> CardNo: +INFO [2014-07-02 18:29:22:544] <25061> MPI_CAVV: +INFO [2014-07-02 18:29:22:544] <25061> MPI_ECI: +INFO [2014-07-02 18:29:22:545] <25061> MPI_MD64: +INFO [2014-07-02 18:29:22:545] <25061> ExpMon: +INFO [2014-07-02 18:29:22:545] <25061> ExpYear: +INFO [2014-07-02 18:29:22:545] <25061> Passwd: +INFO [2014-07-02 18:29:22:545] <25061> SocId: +INFO [2014-07-02 18:29:22:545] <25061> HP_SERVERINFO: +INFO [2014-07-02 18:29:22:545] <25061> HP_HANDPHONE: +INFO [2014-07-02 18:29:22:545] <25061> HP_COMPANY: +INFO [2014-07-02 18:29:22:545] <25061> HP_ID: +INFO [2014-07-02 18:29:22:545] <25061> HP_SUBID: +INFO [2014-07-02 18:29:22:545] <25061> HP_UNITType: +INFO [2014-07-02 18:29:22:545] <25061> HP_IDEN: +INFO [2014-07-02 18:29:22:545] <25061> HP_IPADDR: +INFO [2014-07-02 18:29:22:546] <25061> VIRTUAL_CENTERCD: +INFO [2014-07-02 18:29:22:546] <25061> VIRTUAL_DEPODT: +INFO [2014-07-02 18:29:22:546] <25061> ZuminCode: +INFO [2014-07-02 18:29:22:546] <25061> MallPage: +INFO [2014-07-02 18:29:22:546] <25061> VIRTUAL_NO: +INFO [2014-07-02 18:29:22:546] <25061> ES_SENDNO: +INFO [2014-07-02 18:29:22:546] <25061> Column1: +INFO [2014-07-02 18:29:22:546] <25061> Column2: +INFO [2014-07-02 18:29:22:546] <25061> Column3: +INFO [2014-07-02 18:29:22:546] <25061> Make NetCancel ID Start +INFO [2014-07-02 18:29:22:546] <25061> AEGIS_ISP_acetel_20140702182922546582 +INFO [2014-07-02 18:29:22:547] <25061> Make NetCancel ID End +INFO [2014-07-02 18:29:22:547] <25061> Make NetCancelID OK +INFO [2014-07-02 18:29:22:547] <25061> Make Msg Start +INFO [2014-07-02 18:29:22:547] <25061> card-isp Make MSG OK +INFO [2014-07-02 18:29:22:547] <25061> Make Msg End +INFO [2014-07-02 18:29:22:547] <25061> Make Pay Msg OK +INFO [2014-07-02 18:29:22:547] <25061> Send & Recv Msg Start +INFO [2014-07-02 18:29:22:547] <25061> Send Data To PG Start [ +INFO [2014-07-02 18:29:22:547] <25061> 0:0010192plug15 +INFO [2014-07-02 18:29:22:547] <25061> 1:acetel +INFO [2014-07-02 18:29:22:547] <25061> 2:test11 +INFO [2014-07-02 18:29:22:547] <25061> 3:17800 +INFO [2014-07-02 18:29:22:547] <25061> 4:20140702182732T74084 +INFO [2014-07-02 18:29:22:547] <25061> 5:9000400001 +INFO [2014-07-02 18:29:22:547] <25061> 6:̸ +INFO [2014-07-02 18:29:22:547] <25061> 7:111-1111-1111 +INFO [2014-07-02 18:29:22:547] <25061> 8: Ż絿 ο 1234 +INFO [2014-07-02 18:29:22:547] <25061> 9:̸ +INFO [2014-07-02 18:29:22:547] <25061> 10:111-1111-1111 +INFO [2014-07-02 18:29:22:547] <25061> 11:½Ʈ +INFO [2014-07-02 18:29:22:547] <25061> 12:ũ 帲 +INFO [2014-07-02 18:29:22:547] <25061> 13:WON +INFO [2014-07-02 18:29:22:547] <25061> 14:00 +INFO [2014-07-02 18:29:22:547] <25061> 15: +INFO [2014-07-02 18:29:22:547] <25061> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-02 18:29:22:547] <25061> 17:GjyMqvog78nrNoRamfvld7GPP62GPiPru/dIykVscNysmtt0A1fhw4dbIKknQqsRadgsW0PSXCxW9hxQMWY4MTdEURQzSMCoSuDRgMlyPnJQ6ltzFUSNoJLUGXj4o2Si0EjrkwidgxZfPaZyk09p972ESaq8Adx6CtvziPwCLK4= +INFO [2014-07-02 18:29:22:547] <25061> 18:cdata=myYT6zwXX9iaMDW8UNLtk5q1SlgKanMXNOyPcVdGFjndcw0SsDhDBv22mQvZ9eUG0yT6M03/eqs0ojYVKB3o0GPYapfw1qn5HklJluvbbetMi9xp0i1G86eOge0p+7FYtNSBkWyfMtXdGTgcCSY6e5K76D/aEwMjF99E2964MTuMblD1NVOqL97uAUb0SoR4FfyAoLXdYzzAlvtJfmd8BKxJEXnSSMUSgQ/p5bt6FIPTcdPKi+ZgbjWlYicPg80KHIlJL/Zi8ELgc3ZrCsB8Q4XBXWnDw16rg/pkyZBNUdyEHLZpXq+z59z18uWxMwDR4LPRonSD9kTVB91TJO2yM8+p4/budXi61/6hM47pcdmVleDC/HvtD/ld2ERNluwZ5P2fMf1H0E4nlGqNgTUrIML33aZJv3DfzVevGgJwCdv38NLWCLTRLEx5Uc2sZMXv8vlgY8pV3VQ6lPlgknZ1pgJLnjDQ7pK86TrxBRK1TBgnOa53Wpq6zLLPGdb/HKGSKRHty69wWCIrZcbhNcRiQuATzlfJRAprlwzJAVeyd6I= +INFO [2014-07-02 18:29:22:547] <25061> 19: +INFO [2014-07-02 18:29:22:547] <25061> 20:125.131.234.203 +INFO [2014-07-02 18:29:22:547] <25061> 21:test@empal.com +INFO [2014-07-02 18:29:22:547] <25061> 22:AEGIS_ISP_acetel_20140702182922546582 +INFO [2014-07-02 18:29:22:547] <25061> 23: +INFO [2014-07-02 18:29:22:548] <25061> ] Send Data To PG End +INFO [2014-07-02 18:29:22:548] <25061> SendMsg : [0010192plug15|acetel|test11|17800|20140702182732T74084|9000400001|̸|111-1111-1111| Ż絿 ο 1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|GjyMqvog78nrNoRamfvld7GPP62GPiPru/dIykVscNysmtt0A1fhw4dbIKknQqsRadgsW0PSXCxW9hxQMWY4MTdEURQzSMCoSuDRgMlyPnJQ6ltzFUSNoJLUGXj4o2Si0EjrkwidgxZfPaZyk09p972ESaq8Adx6CtvziPwCLK4=|cdata=myYT6zwXX9iaMDW8UNLtk5q1SlgKanMXNOyPcVdGFjndcw0SsDhDBv22mQvZ9eUG0yT6M03/eqs0ojYVKB3o0GPYapfw1qn5HklJluvbbetMi9xp0i1G86eOge0p+7FYtNSBkWyfMtXdGTgcCSY6e5K76D/aEwMjF99E2964MTuMblD1NVOqL97uAUb0SoR4FfyAoLXdYzzAlvtJfmd8BKxJEXnSSMUSgQ/p5bt6FIPTcdPKi+ZgbjWlYicPg80KHIlJL/Zi8ELgc3ZrCsB8Q4XBXWnDw16rg/pkyZBNUdyEHLZpXq+z59z18uWxMwDR4LPRonSD9kTVB91TJO2yM8+p4/budXi61/6hM47pcdmVleDC/HvtD/ld2ERNluwZ5P2fMf1H0E4nlGqNgTUrIML33aZJv3DfzVevGgJwCdv38NLWCLTRLEx5Uc2sZMXv8vlgY8pV3VQ6lPlgknZ1pgJLnjDQ7pK86TrxBRK1TBgnOa53Wpq6zLLPGdb/HKGSKRHty69wWCIrZcbhNcRiQuATzlfJRAprlwzJAVeyd6I=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140702182922546582|] +INFO [2014-07-02 18:29:22:548] <25061> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-02 18:29:22:552] <25061> Socket Open OK +INFO [2014-07-02 18:29:25:687] <25061> RecvMsg Length : [000083] +INFO [2014-07-02 18:29:25:687] <25061> RecvMsg : [acetel|0610|106875|50730140|17800|y|:20140702182732T74084|20140702182932|0100| +] +INFO [2014-07-02 18:29:25:687] <25061> Socket Close OK +INFO [2014-07-02 18:29:25:687] <25061> RecvMsg Length Check OK +INFO [2014-07-02 18:29:25:687] <25061> Send & Recv Msg End +INFO [2014-07-02 18:29:25:687] <25061> Send & Recv Msg OK +INFO [2014-07-02 18:29:25:687] <25061> Parse Msg Start +INFO [2014-07-02 18:29:25:687] <25061> card-isp RECV MSG Parsing OK +INFO [2014-07-02 18:29:25:687] <25061> Parse Msg End +INFO [2014-07-02 18:29:25:687] <25061> Msg Parsing OK +INFO [2014-07-02 18:29:25:687] <25061> card Pay Result Value [ +INFO [2014-07-02 18:29:25:687] <25061> NetCancID:AEGIS_ISP_acetel_20140702182922546582 +INFO [2014-07-02 18:29:25:687] <25061> rStoreId:acetel +INFO [2014-07-02 18:29:25:687] <25061> rBusiCd:0610 +INFO [2014-07-02 18:29:25:687] <25061> rOrdNo:20140702182732T74084 +INFO [2014-07-02 18:29:25:688] <25061> rDealNo:106875 +INFO [2014-07-02 18:29:25:688] <25061> rApprNo:50730140 +INFO [2014-07-02 18:29:25:688] <25061> rProdNm:ũ 帲 +INFO [2014-07-02 18:29:25:688] <25061> rAmt:17800 +INFO [2014-07-02 18:29:25:688] <25061> rInstmt:00 +INFO [2014-07-02 18:29:25:688] <25061> rSuccYn:y +INFO [2014-07-02 18:29:25:688] <25061> rResMsg::20140702182732T74084 +INFO [2014-07-02 18:29:25:688] <25061> rApprTm:20140702182932 +INFO [2014-07-02 18:29:25:688] <25061> rCardCd:0100 +INFO [2014-07-02 18:29:25:688] <25061> ] +INFO [2014-07-02 18:29:25:688] <25061> END :20140702182732T74084 Transaction time:[3.164sec] +INFO [2014-07-02 18:29:25:688] <25061> =============================================================== +INFO [2014-07-02 18:34:00:271] <24844> =============================================================== +INFO [2014-07-02 18:34:00:271] <24844> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-02 18:34:00:271] <24844> card Pay Start! +INFO [2014-07-02 18:34:00:271] <24844> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-02 18:34:00:271] <24844> StoreId:acetel +INFO [2014-07-02 18:34:00:271] <24844> log:true +INFO [2014-07-02 18:34:00:271] <24844> logLevel:INFO +INFO [2014-07-02 18:34:00:271] <24844> UseNetCancel:true +INFO [2014-07-02 18:34:00:271] <24844> Type:Pay +INFO [2014-07-02 18:34:00:272] <24844> RecvLen:7 +INFO [2014-07-02 18:34:00:272] <24844> AuthTy:card +INFO [2014-07-02 18:34:00:272] <24844> SubTy:isp +INFO [2014-07-02 18:34:00:272] <24844> OrdNo:20140702182732T74084 +INFO [2014-07-02 18:34:00:272] <24844> Amt:17800 +INFO [2014-07-02 18:34:00:272] <24844> UserEmail:test@empal.com +INFO [2014-07-02 18:34:00:272] <24844> ProdNm:ũ 帲 +INFO [2014-07-02 18:34:00:272] <24844> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-02 18:34:00:272] <24844> UserId:test11 +INFO [2014-07-02 18:34:00:272] <24844> OrdNm:̸ +INFO [2014-07-02 18:34:00:272] <24844> OrdPhone:111-1111-1111 +INFO [2014-07-02 18:34:00:272] <24844> OrdAddr: Ż絿 1234 +INFO [2014-07-02 18:34:00:272] <24844> RcpNm:̸ +INFO [2014-07-02 18:34:00:273] <24844> RcpPhone:111-1111-1111 +INFO [2014-07-02 18:34:00:273] <24844> DlvAddr: Ż絿 ο 1234 +INFO [2014-07-02 18:34:00:273] <24844> Remark:½Ʈ +INFO [2014-07-02 18:34:00:273] <24844> DeviId:9000400001 +INFO [2014-07-02 18:34:00:273] <24844> AuthYn:N +INFO [2014-07-02 18:34:00:273] <24844> Instmt:00 +INFO [2014-07-02 18:34:00:273] <24844> UserIp:125.131.234.203 +INFO [2014-07-02 18:34:00:273] <24844> partial_mm:00 +INFO [2014-07-02 18:34:00:273] <24844> noIntMonth: +INFO [2014-07-02 18:34:00:273] <24844> KVP_CURRENCY:WON +INFO [2014-07-02 18:34:00:273] <24844> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-02 18:34:00:273] <24844> KVP_SESSIONKEY:GjyMqvog78nrNoRamfvld7GPP62GPiPru/dIykVscNysmtt0A1fhw4dbIKknQqsRadgsW0PSXCxW9hxQMWY4MTdEURQzSMCoSuDRgMlyPnJQ6ltzFUSNoJLUGXj4o2Si0EjrkwidgxZfPaZyk09p972ESaq8Adx6CtvziPwCLK4= +INFO [2014-07-02 18:34:00:273] <24844> KVP_ENCDATA:cdata=myYT6zwXX9iaMDW8UNLtk5q1SlgKanMXNOyPcVdGFjndcw0SsDhDBv22mQvZ9eUG0yT6M03/eqs0ojYVKB3o0GPYapfw1qn5HklJluvbbetMi9xp0i1G86eOge0p+7FYtNSBkWyfMtXdGTgcCSY6e5K76D/aEwMjF99E2964MTuMblD1NVOqL97uAUb0SoR4FfyAoLXdYzzAlvtJfmd8BKxJEXnSSMUSgQ/p5bt6FIPTcdPKi+ZgbjWlYicPg80KHIlJL/Zi8ELgc3ZrCsB8Q4XBXWnDw16rg/pkyZBNUdyEHLZpXq+z59z18uWxMwDR4LPRonSD9kTVB91TJO2yM8+p4/budXi61/6hM47pcdmVleDC/HvtD/ld2ERNluwZ5P2fMf1H0E4nlGqNgTUrIML33aZJv3DfzVevGgJwCdv38NLWCLTRLEx5Uc2sZMXv8vlgY8pV3VQ6lPlgknZ1pgJLnjDQ7pK86TrxBRK1TBgnOa53Wpq6zLLPGdb/HKGSKRHty69wWCIrZcbhNcRiQuATzlfJRAprlwzJAVeyd6I= +INFO [2014-07-02 18:34:00:274] <24844> KVP_CONAME: +INFO [2014-07-02 18:34:00:274] <24844> KVP_NOINT:0 +INFO [2014-07-02 18:34:00:274] <24844> KVP_QUOTA:00 +INFO [2014-07-02 18:34:00:274] <24844> CardNo: +INFO [2014-07-02 18:34:00:274] <24844> MPI_CAVV: +INFO [2014-07-02 18:34:00:274] <24844> MPI_ECI: +INFO [2014-07-02 18:34:00:274] <24844> MPI_MD64: +INFO [2014-07-02 18:34:00:274] <24844> ExpMon: +INFO [2014-07-02 18:34:00:274] <24844> ExpYear: +INFO [2014-07-02 18:34:00:274] <24844> Passwd: +INFO [2014-07-02 18:34:00:274] <24844> SocId: +INFO [2014-07-02 18:34:00:274] <24844> HP_SERVERINFO: +INFO [2014-07-02 18:34:00:274] <24844> HP_HANDPHONE: +INFO [2014-07-02 18:34:00:274] <24844> HP_COMPANY: +INFO [2014-07-02 18:34:00:274] <24844> HP_ID: +INFO [2014-07-02 18:34:00:275] <24844> HP_SUBID: +INFO [2014-07-02 18:34:00:275] <24844> HP_UNITType: +INFO [2014-07-02 18:34:00:275] <24844> HP_IDEN: +INFO [2014-07-02 18:34:00:275] <24844> HP_IPADDR: +INFO [2014-07-02 18:34:00:275] <24844> VIRTUAL_CENTERCD: +INFO [2014-07-02 18:34:00:275] <24844> VIRTUAL_DEPODT: +INFO [2014-07-02 18:34:00:275] <24844> ZuminCode: +INFO [2014-07-02 18:34:00:275] <24844> MallPage: +INFO [2014-07-02 18:34:00:275] <24844> VIRTUAL_NO: +INFO [2014-07-02 18:34:00:275] <24844> ES_SENDNO: +INFO [2014-07-02 18:34:00:275] <24844> Column1: +INFO [2014-07-02 18:34:00:275] <24844> Column2: +INFO [2014-07-02 18:34:00:275] <24844> Column3: +INFO [2014-07-02 18:34:00:275] <24844> Make NetCancel ID Start +INFO [2014-07-02 18:34:00:276] <24844> AEGIS_ISP_acetel_20140702183400275312 +INFO [2014-07-02 18:34:00:276] <24844> Make NetCancel ID End +INFO [2014-07-02 18:34:00:276] <24844> Make NetCancelID OK +INFO [2014-07-02 18:34:00:276] <24844> Make Msg Start +INFO [2014-07-02 18:34:00:276] <24844> card-isp Make MSG OK +INFO [2014-07-02 18:34:00:276] <24844> Make Msg End +INFO [2014-07-02 18:34:00:276] <24844> Make Pay Msg OK +INFO [2014-07-02 18:34:00:276] <24844> Send & Recv Msg Start +INFO [2014-07-02 18:34:00:276] <24844> Send Data To PG Start [ +INFO [2014-07-02 18:34:00:276] <24844> 0:0010192plug15 +INFO [2014-07-02 18:34:00:276] <24844> 1:acetel +INFO [2014-07-02 18:34:00:276] <24844> 2:test11 +INFO [2014-07-02 18:34:00:276] <24844> 3:17800 +INFO [2014-07-02 18:34:00:276] <24844> 4:20140702182732T74084 +INFO [2014-07-02 18:34:00:276] <24844> 5:9000400001 +INFO [2014-07-02 18:34:00:276] <24844> 6:̸ +INFO [2014-07-02 18:34:00:276] <24844> 7:111-1111-1111 +INFO [2014-07-02 18:34:00:276] <24844> 8: Ż絿 ο 1234 +INFO [2014-07-02 18:34:00:276] <24844> 9:̸ +INFO [2014-07-02 18:34:00:276] <24844> 10:111-1111-1111 +INFO [2014-07-02 18:34:00:276] <24844> 11:½Ʈ +INFO [2014-07-02 18:34:00:276] <24844> 12:ũ 帲 +INFO [2014-07-02 18:34:00:276] <24844> 13:WON +INFO [2014-07-02 18:34:00:276] <24844> 14:00 +INFO [2014-07-02 18:34:00:276] <24844> 15: +INFO [2014-07-02 18:34:00:276] <24844> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-02 18:34:00:276] <24844> 17:GjyMqvog78nrNoRamfvld7GPP62GPiPru/dIykVscNysmtt0A1fhw4dbIKknQqsRadgsW0PSXCxW9hxQMWY4MTdEURQzSMCoSuDRgMlyPnJQ6ltzFUSNoJLUGXj4o2Si0EjrkwidgxZfPaZyk09p972ESaq8Adx6CtvziPwCLK4= +INFO [2014-07-02 18:34:00:276] <24844> 18:cdata=myYT6zwXX9iaMDW8UNLtk5q1SlgKanMXNOyPcVdGFjndcw0SsDhDBv22mQvZ9eUG0yT6M03/eqs0ojYVKB3o0GPYapfw1qn5HklJluvbbetMi9xp0i1G86eOge0p+7FYtNSBkWyfMtXdGTgcCSY6e5K76D/aEwMjF99E2964MTuMblD1NVOqL97uAUb0SoR4FfyAoLXdYzzAlvtJfmd8BKxJEXnSSMUSgQ/p5bt6FIPTcdPKi+ZgbjWlYicPg80KHIlJL/Zi8ELgc3ZrCsB8Q4XBXWnDw16rg/pkyZBNUdyEHLZpXq+z59z18uWxMwDR4LPRonSD9kTVB91TJO2yM8+p4/budXi61/6hM47pcdmVleDC/HvtD/ld2ERNluwZ5P2fMf1H0E4nlGqNgTUrIML33aZJv3DfzVevGgJwCdv38NLWCLTRLEx5Uc2sZMXv8vlgY8pV3VQ6lPlgknZ1pgJLnjDQ7pK86TrxBRK1TBgnOa53Wpq6zLLPGdb/HKGSKRHty69wWCIrZcbhNcRiQuATzlfJRAprlwzJAVeyd6I= +INFO [2014-07-02 18:34:00:276] <24844> 19: +INFO [2014-07-02 18:34:00:276] <24844> 20:125.131.234.203 +INFO [2014-07-02 18:34:00:276] <24844> 21:test@empal.com +INFO [2014-07-02 18:34:00:276] <24844> 22:AEGIS_ISP_acetel_20140702183400275312 +INFO [2014-07-02 18:34:00:276] <24844> 23: +INFO [2014-07-02 18:34:00:277] <24844> ] Send Data To PG End +INFO [2014-07-02 18:34:00:277] <24844> SendMsg : [0010192plug15|acetel|test11|17800|20140702182732T74084|9000400001|̸|111-1111-1111| Ż絿 ο 1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|GjyMqvog78nrNoRamfvld7GPP62GPiPru/dIykVscNysmtt0A1fhw4dbIKknQqsRadgsW0PSXCxW9hxQMWY4MTdEURQzSMCoSuDRgMlyPnJQ6ltzFUSNoJLUGXj4o2Si0EjrkwidgxZfPaZyk09p972ESaq8Adx6CtvziPwCLK4=|cdata=myYT6zwXX9iaMDW8UNLtk5q1SlgKanMXNOyPcVdGFjndcw0SsDhDBv22mQvZ9eUG0yT6M03/eqs0ojYVKB3o0GPYapfw1qn5HklJluvbbetMi9xp0i1G86eOge0p+7FYtNSBkWyfMtXdGTgcCSY6e5K76D/aEwMjF99E2964MTuMblD1NVOqL97uAUb0SoR4FfyAoLXdYzzAlvtJfmd8BKxJEXnSSMUSgQ/p5bt6FIPTcdPKi+ZgbjWlYicPg80KHIlJL/Zi8ELgc3ZrCsB8Q4XBXWnDw16rg/pkyZBNUdyEHLZpXq+z59z18uWxMwDR4LPRonSD9kTVB91TJO2yM8+p4/budXi61/6hM47pcdmVleDC/HvtD/ld2ERNluwZ5P2fMf1H0E4nlGqNgTUrIML33aZJv3DfzVevGgJwCdv38NLWCLTRLEx5Uc2sZMXv8vlgY8pV3VQ6lPlgknZ1pgJLnjDQ7pK86TrxBRK1TBgnOa53Wpq6zLLPGdb/HKGSKRHty69wWCIrZcbhNcRiQuATzlfJRAprlwzJAVeyd6I=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140702183400275312|] +INFO [2014-07-02 18:34:00:277] <24844> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-02 18:34:00:282] <24844> Socket Open OK +INFO [2014-07-02 18:34:02:11] <24844> RecvMsg Length : [000063] +INFO [2014-07-02 18:34:02:11] <24844> RecvMsg : [acetel|0610|20140702182732T74084||17800|n|ߺŷ(TID)||0100| +] +INFO [2014-07-02 18:34:02:11] <24844> Socket Close OK +INFO [2014-07-02 18:34:02:11] <24844> RecvMsg Length Check OK +INFO [2014-07-02 18:34:02:11] <24844> Send & Recv Msg End +INFO [2014-07-02 18:34:02:11] <24844> Send & Recv Msg OK +INFO [2014-07-02 18:34:02:11] <24844> Parse Msg Start +INFO [2014-07-02 18:34:02:11] <24844> card-isp RECV MSG Parsing OK +INFO [2014-07-02 18:34:02:11] <24844> Parse Msg End +INFO [2014-07-02 18:34:02:12] <24844> Msg Parsing OK +INFO [2014-07-02 18:34:02:12] <24844> card Pay Result Value [ +INFO [2014-07-02 18:34:02:12] <24844> NetCancID:AEGIS_ISP_acetel_20140702183400275312 +INFO [2014-07-02 18:34:02:12] <24844> rStoreId:acetel +INFO [2014-07-02 18:34:02:12] <24844> rBusiCd:0610 +INFO [2014-07-02 18:34:02:12] <24844> rOrdNo:20140702182732T74084 +INFO [2014-07-02 18:34:02:12] <24844> rDealNo:20140702182732T74084 +INFO [2014-07-02 18:34:02:12] <24844> rApprNo: +INFO [2014-07-02 18:34:02:12] <24844> rProdNm:ũ 帲 +INFO [2014-07-02 18:34:02:12] <24844> rAmt:17800 +INFO [2014-07-02 18:34:02:12] <24844> rInstmt:00 +INFO [2014-07-02 18:34:02:12] <24844> rSuccYn:n +INFO [2014-07-02 18:34:02:12] <24844> rResMsg:ߺŷ(TID) +INFO [2014-07-02 18:34:02:12] <24844> rApprTm: +INFO [2014-07-02 18:34:02:12] <24844> rCardCd:0100 +INFO [2014-07-02 18:34:02:12] <24844> ] +INFO [2014-07-02 18:34:02:12] <24844> END ߺŷ(TID) Transaction time:[1.742sec] +INFO [2014-07-02 18:34:02:12] <24844> =============================================================== +INFO [2014-07-02 18:35:56:758] <25524> =============================================================== +INFO [2014-07-02 18:35:56:758] <25524> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-02 18:35:56:758] <25524> card Pay Start! +INFO [2014-07-02 18:35:56:759] <25524> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-02 18:35:56:759] <25524> StoreId:acetel +INFO [2014-07-02 18:35:56:759] <25524> log:true +INFO [2014-07-02 18:35:56:759] <25524> logLevel:INFO +INFO [2014-07-02 18:35:56:759] <25524> UseNetCancel:true +INFO [2014-07-02 18:35:56:759] <25524> Type:Pay +INFO [2014-07-02 18:35:56:759] <25524> RecvLen:7 +INFO [2014-07-02 18:35:56:759] <25524> AuthTy:card +INFO [2014-07-02 18:35:56:759] <25524> SubTy:isp +INFO [2014-07-02 18:35:56:759] <25524> OrdNo:20140702183431T41266 +INFO [2014-07-02 18:35:56:759] <25524> Amt:17800 +INFO [2014-07-02 18:35:56:759] <25524> UserEmail:test@empal.com +INFO [2014-07-02 18:35:56:760] <25524> ProdNm:ũ 帲 +INFO [2014-07-02 18:35:56:760] <25524> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-02 18:35:56:760] <25524> UserId:test11 +INFO [2014-07-02 18:35:56:760] <25524> OrdNm:̸ +INFO [2014-07-02 18:35:56:760] <25524> OrdPhone:111-1111-1111 +INFO [2014-07-02 18:35:56:760] <25524> OrdAddr: Ż絿 1234 +INFO [2014-07-02 18:35:56:760] <25524> RcpNm:̸ +INFO [2014-07-02 18:35:56:760] <25524> RcpPhone:111-1111-1111 +INFO [2014-07-02 18:35:56:760] <25524> DlvAddr: Ż絿 1234 +INFO [2014-07-02 18:35:56:760] <25524> Remark:½Ʈ +INFO [2014-07-02 18:35:56:760] <25524> DeviId:9000400001 +INFO [2014-07-02 18:35:56:760] <25524> AuthYn:N +INFO [2014-07-02 18:35:56:760] <25524> Instmt:00 +INFO [2014-07-02 18:35:56:761] <25524> UserIp:125.131.234.203 +INFO [2014-07-02 18:35:56:761] <25524> partial_mm:00 +INFO [2014-07-02 18:35:56:761] <25524> noIntMonth: +INFO [2014-07-02 18:35:56:761] <25524> KVP_CURRENCY:WON +INFO [2014-07-02 18:35:56:761] <25524> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-02 18:35:56:761] <25524> KVP_SESSIONKEY:CVCEbjnTTKbaUXq9t8hdtBd0Bcuy8g6CMADHkoadWGfNrgM20rq0c6wjL6q/0dD02NmIcU3nUX5B7vv4A2U7RXMXeWhgKrCFF2sZNOwBU6Q/NtyaD0GIPaLpHtPCTnfXweEKNW9/EWHib8shzCDCK7OS9/tRqbI2Y7XIyFwBiMc= +INFO [2014-07-02 18:35:56:761] <25524> KVP_ENCDATA:cdata=CJ4RaZUZPdVFdugCDfk5R+H/VPZdkGZ4iwx/R3GQ2WCgPMNrsqsNXQlkPafJvAF2abUS+SglPQEUBU0YBEymrrMgaGXCCUQBvBFOaG1QklLMNQ2Oi1QMzi6Ko6+LRfw3Kd2sFA1hCOI+AXoqcF19ZFW/P2HMVadiD27kzzFvBN2xCPdSaHXGX54HVOWS+uvoBynKML+MIgsivGxXsJCT3l0lJSRCou/MWAo0WHH0fiLALf3hY1/qA6UMm+/y9KClFm4HcpHF37Y2geufFnGmKzUzy9m8NtmJfmzmuiDH84+GS+tIyep73EkKIOrqpwdohyvl5dFk0FXJqEU6bb5iNBLcFYJ5hD91q4k0z1OV0H703yRljb+NUlbX2AO9yarx7K/56t/feKIqNV+vbNTODZnY//67kACq9yFEg8us4V5djrhfDPVzlC+CYy0AIMgyH5giuS7lTSOHTMMA8SqSyRcoEDEs2AOMEhyHUUMMjqHRSUb63rsIWaxC7tYbI6HGNSSkB50OVkbQM6TAQwejtGZzC2xZ9r2fq3/zqZHniFY= +INFO [2014-07-02 18:35:56:761] <25524> KVP_CONAME: +INFO [2014-07-02 18:35:56:761] <25524> KVP_NOINT:0 +INFO [2014-07-02 18:35:56:761] <25524> KVP_QUOTA:00 +INFO [2014-07-02 18:35:56:761] <25524> CardNo: +INFO [2014-07-02 18:35:56:762] <25524> MPI_CAVV: +INFO [2014-07-02 18:35:56:762] <25524> MPI_ECI: +INFO [2014-07-02 18:35:56:762] <25524> MPI_MD64: +INFO [2014-07-02 18:35:56:762] <25524> ExpMon: +INFO [2014-07-02 18:35:56:762] <25524> ExpYear: +INFO [2014-07-02 18:35:56:762] <25524> Passwd: +INFO [2014-07-02 18:35:56:762] <25524> SocId: +INFO [2014-07-02 18:35:56:762] <25524> HP_SERVERINFO: +INFO [2014-07-02 18:35:56:762] <25524> HP_HANDPHONE: +INFO [2014-07-02 18:35:56:762] <25524> HP_COMPANY: +INFO [2014-07-02 18:35:56:762] <25524> HP_ID: +INFO [2014-07-02 18:35:56:762] <25524> HP_SUBID: +INFO [2014-07-02 18:35:56:762] <25524> HP_UNITType: +INFO [2014-07-02 18:35:56:763] <25524> HP_IDEN: +INFO [2014-07-02 18:35:56:763] <25524> HP_IPADDR: +INFO [2014-07-02 18:35:56:763] <25524> VIRTUAL_CENTERCD: +INFO [2014-07-02 18:35:56:763] <25524> VIRTUAL_DEPODT: +INFO [2014-07-02 18:35:56:763] <25524> ZuminCode: +INFO [2014-07-02 18:35:56:763] <25524> MallPage: +INFO [2014-07-02 18:35:56:763] <25524> VIRTUAL_NO: +INFO [2014-07-02 18:35:56:763] <25524> ES_SENDNO: +INFO [2014-07-02 18:35:56:763] <25524> Column1: +INFO [2014-07-02 18:35:56:763] <25524> Column2: +INFO [2014-07-02 18:35:56:763] <25524> Column3: +INFO [2014-07-02 18:35:56:763] <25524> Make NetCancel ID Start +INFO [2014-07-02 18:35:56:763] <25524> AEGIS_ISP_acetel_20140702183556763828 +INFO [2014-07-02 18:35:56:764] <25524> Make NetCancel ID End +INFO [2014-07-02 18:35:56:764] <25524> Make NetCancelID OK +INFO [2014-07-02 18:35:56:764] <25524> Make Msg Start +INFO [2014-07-02 18:35:56:764] <25524> card-isp Make MSG OK +INFO [2014-07-02 18:35:56:764] <25524> Make Msg End +INFO [2014-07-02 18:35:56:764] <25524> Make Pay Msg OK +INFO [2014-07-02 18:35:56:764] <25524> Send & Recv Msg Start +INFO [2014-07-02 18:35:56:764] <25524> Send Data To PG Start [ +INFO [2014-07-02 18:35:56:764] <25524> 0:0010192plug15 +INFO [2014-07-02 18:35:56:764] <25524> 1:acetel +INFO [2014-07-02 18:35:56:764] <25524> 2:test11 +INFO [2014-07-02 18:35:56:764] <25524> 3:17800 +INFO [2014-07-02 18:35:56:764] <25524> 4:20140702183431T41266 +INFO [2014-07-02 18:35:56:764] <25524> 5:9000400001 +INFO [2014-07-02 18:35:56:764] <25524> 6:̸ +INFO [2014-07-02 18:35:56:764] <25524> 7:111-1111-1111 +INFO [2014-07-02 18:35:56:764] <25524> 8: Ż絿 1234 +INFO [2014-07-02 18:35:56:764] <25524> 9:̸ +INFO [2014-07-02 18:35:56:764] <25524> 10:111-1111-1111 +INFO [2014-07-02 18:35:56:764] <25524> 11:½Ʈ +INFO [2014-07-02 18:35:56:764] <25524> 12:ũ 帲 +INFO [2014-07-02 18:35:56:764] <25524> 13:WON +INFO [2014-07-02 18:35:56:764] <25524> 14:00 +INFO [2014-07-02 18:35:56:764] <25524> 15: +INFO [2014-07-02 18:35:56:764] <25524> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-02 18:35:56:764] <25524> 17:CVCEbjnTTKbaUXq9t8hdtBd0Bcuy8g6CMADHkoadWGfNrgM20rq0c6wjL6q/0dD02NmIcU3nUX5B7vv4A2U7RXMXeWhgKrCFF2sZNOwBU6Q/NtyaD0GIPaLpHtPCTnfXweEKNW9/EWHib8shzCDCK7OS9/tRqbI2Y7XIyFwBiMc= +INFO [2014-07-02 18:35:56:764] <25524> 18:cdata=CJ4RaZUZPdVFdugCDfk5R+H/VPZdkGZ4iwx/R3GQ2WCgPMNrsqsNXQlkPafJvAF2abUS+SglPQEUBU0YBEymrrMgaGXCCUQBvBFOaG1QklLMNQ2Oi1QMzi6Ko6+LRfw3Kd2sFA1hCOI+AXoqcF19ZFW/P2HMVadiD27kzzFvBN2xCPdSaHXGX54HVOWS+uvoBynKML+MIgsivGxXsJCT3l0lJSRCou/MWAo0WHH0fiLALf3hY1/qA6UMm+/y9KClFm4HcpHF37Y2geufFnGmKzUzy9m8NtmJfmzmuiDH84+GS+tIyep73EkKIOrqpwdohyvl5dFk0FXJqEU6bb5iNBLcFYJ5hD91q4k0z1OV0H703yRljb+NUlbX2AO9yarx7K/56t/feKIqNV+vbNTODZnY//67kACq9yFEg8us4V5djrhfDPVzlC+CYy0AIMgyH5giuS7lTSOHTMMA8SqSyRcoEDEs2AOMEhyHUUMMjqHRSUb63rsIWaxC7tYbI6HGNSSkB50OVkbQM6TAQwejtGZzC2xZ9r2fq3/zqZHniFY= +INFO [2014-07-02 18:35:56:764] <25524> 19: +INFO [2014-07-02 18:35:56:764] <25524> 20:125.131.234.203 +INFO [2014-07-02 18:35:56:764] <25524> 21:test@empal.com +INFO [2014-07-02 18:35:56:764] <25524> 22:AEGIS_ISP_acetel_20140702183556763828 +INFO [2014-07-02 18:35:56:764] <25524> 23: +INFO [2014-07-02 18:35:56:765] <25524> ] Send Data To PG End +INFO [2014-07-02 18:35:56:765] <25524> SendMsg : [0010192plug15|acetel|test11|17800|20140702183431T41266|9000400001|̸|111-1111-1111| Ż絿 1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|CVCEbjnTTKbaUXq9t8hdtBd0Bcuy8g6CMADHkoadWGfNrgM20rq0c6wjL6q/0dD02NmIcU3nUX5B7vv4A2U7RXMXeWhgKrCFF2sZNOwBU6Q/NtyaD0GIPaLpHtPCTnfXweEKNW9/EWHib8shzCDCK7OS9/tRqbI2Y7XIyFwBiMc=|cdata=CJ4RaZUZPdVFdugCDfk5R+H/VPZdkGZ4iwx/R3GQ2WCgPMNrsqsNXQlkPafJvAF2abUS+SglPQEUBU0YBEymrrMgaGXCCUQBvBFOaG1QklLMNQ2Oi1QMzi6Ko6+LRfw3Kd2sFA1hCOI+AXoqcF19ZFW/P2HMVadiD27kzzFvBN2xCPdSaHXGX54HVOWS+uvoBynKML+MIgsivGxXsJCT3l0lJSRCou/MWAo0WHH0fiLALf3hY1/qA6UMm+/y9KClFm4HcpHF37Y2geufFnGmKzUzy9m8NtmJfmzmuiDH84+GS+tIyep73EkKIOrqpwdohyvl5dFk0FXJqEU6bb5iNBLcFYJ5hD91q4k0z1OV0H703yRljb+NUlbX2AO9yarx7K/56t/feKIqNV+vbNTODZnY//67kACq9yFEg8us4V5djrhfDPVzlC+CYy0AIMgyH5giuS7lTSOHTMMA8SqSyRcoEDEs2AOMEhyHUUMMjqHRSUb63rsIWaxC7tYbI6HGNSSkB50OVkbQM6TAQwejtGZzC2xZ9r2fq3/zqZHniFY=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140702183556763828|] +INFO [2014-07-02 18:35:56:765] <25524> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-02 18:35:56:769] <25524> Socket Open OK +INFO [2014-07-02 18:35:59:923] <25524> RecvMsg Length : [000083] +INFO [2014-07-02 18:35:59:923] <25524> RecvMsg : [acetel|0610|106916|50750956|17800|y|:20140702183431T41266|20140702183606|0100| +] +INFO [2014-07-02 18:35:59:923] <25524> Socket Close OK +INFO [2014-07-02 18:35:59:923] <25524> RecvMsg Length Check OK +INFO [2014-07-02 18:35:59:923] <25524> Send & Recv Msg End +INFO [2014-07-02 18:35:59:924] <25524> Send & Recv Msg OK +INFO [2014-07-02 18:35:59:924] <25524> Parse Msg Start +INFO [2014-07-02 18:35:59:924] <25524> card-isp RECV MSG Parsing OK +INFO [2014-07-02 18:35:59:924] <25524> Parse Msg End +INFO [2014-07-02 18:35:59:924] <25524> Msg Parsing OK +INFO [2014-07-02 18:35:59:924] <25524> card Pay Result Value [ +INFO [2014-07-02 18:35:59:924] <25524> NetCancID:AEGIS_ISP_acetel_20140702183556763828 +INFO [2014-07-02 18:35:59:924] <25524> rStoreId:acetel +INFO [2014-07-02 18:35:59:924] <25524> rBusiCd:0610 +INFO [2014-07-02 18:35:59:924] <25524> rOrdNo:20140702183431T41266 +INFO [2014-07-02 18:35:59:924] <25524> rDealNo:106916 +INFO [2014-07-02 18:35:59:924] <25524> rApprNo:50750956 +INFO [2014-07-02 18:35:59:924] <25524> rProdNm:ũ 帲 +INFO [2014-07-02 18:35:59:924] <25524> rAmt:17800 +INFO [2014-07-02 18:35:59:924] <25524> rInstmt:00 +INFO [2014-07-02 18:35:59:924] <25524> rSuccYn:y +INFO [2014-07-02 18:35:59:924] <25524> rResMsg::20140702183431T41266 +INFO [2014-07-02 18:35:59:924] <25524> rApprTm:20140702183606 +INFO [2014-07-02 18:35:59:924] <25524> rCardCd:0100 +INFO [2014-07-02 18:35:59:924] <25524> ] +INFO [2014-07-02 18:35:59:925] <25524> END :20140702183431T41266 Transaction time:[3.167sec] +INFO [2014-07-02 18:35:59:925] <25524> =============================================================== diff --git a/module/shop/pg/agspay_bak/log/AgsPay40_php_acetel_140703.log b/module/shop/pg/agspay_bak/log/AgsPay40_php_acetel_140703.log new file mode 100644 index 0000000..8a3ecbb --- /dev/null +++ b/module/shop/pg/agspay_bak/log/AgsPay40_php_acetel_140703.log @@ -0,0 +1,528 @@ +INFO [2014-07-03 09:40:13:3] <29783> =============================================================== +INFO [2014-07-03 09:40:13:3] <29783> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-03 09:40:13:3] <29783> card Pay Start! +INFO [2014-07-03 09:40:13:3] <29783> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-03 09:40:13:3] <29783> StoreId:acetel +INFO [2014-07-03 09:40:13:3] <29783> log:true +INFO [2014-07-03 09:40:13:3] <29783> logLevel:INFO +INFO [2014-07-03 09:40:13:3] <29783> UseNetCancel:true +INFO [2014-07-03 09:40:13:3] <29783> Type:Pay +INFO [2014-07-03 09:40:13:3] <29783> RecvLen:7 +INFO [2014-07-03 09:40:13:4] <29783> AuthTy:card +INFO [2014-07-03 09:40:13:4] <29783> SubTy:isp +INFO [2014-07-03 09:40:13:4] <29783> OrdNo:20140703093740T00562 +INFO [2014-07-03 09:40:13:4] <29783> Amt:17800 +INFO [2014-07-03 09:40:13:4] <29783> UserEmail:test@empal.com +INFO [2014-07-03 09:40:13:4] <29783> ProdNm:ũ 帲 +INFO [2014-07-03 09:40:13:4] <29783> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-03 09:40:13:4] <29783> UserId:test11 +INFO [2014-07-03 09:40:13:4] <29783> OrdNm:̸ +INFO [2014-07-03 09:40:13:4] <29783> OrdPhone:111-1111-1111 +INFO [2014-07-03 09:40:13:4] <29783> OrdAddr: Ż絿 1234 +INFO [2014-07-03 09:40:13:4] <29783> RcpNm:̸ +INFO [2014-07-03 09:40:13:4] <29783> RcpPhone:111-1111-1111 +INFO [2014-07-03 09:40:13:4] <29783> DlvAddr: Ż絿 1234 +INFO [2014-07-03 09:40:13:4] <29783> Remark:½Ʈ +INFO [2014-07-03 09:40:13:5] <29783> DeviId:9000400001 +INFO [2014-07-03 09:40:13:5] <29783> AuthYn:N +INFO [2014-07-03 09:40:13:5] <29783> Instmt:00 +INFO [2014-07-03 09:40:13:5] <29783> UserIp:125.131.234.203 +INFO [2014-07-03 09:40:13:5] <29783> partial_mm:00 +INFO [2014-07-03 09:40:13:5] <29783> noIntMonth: +INFO [2014-07-03 09:40:13:5] <29783> KVP_CURRENCY:WON +INFO [2014-07-03 09:40:13:5] <29783> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-03 09:40:13:5] <29783> KVP_SESSIONKEY:AdEPKHTWHxOQMfjJ8pwtiirVtArXKl/05I8lBWdksWTqrGzX0iRqRe288xrFO3loYjjrmVCdV64KKeSzBQwTbwXtyPEbRlTZGeGweZUKs2IyIPSlZVifp22w/uSCzUqOS32yqflUNfJs0BA8O9nRW2MeqIjHajfIy4ksgiZD/OI= +INFO [2014-07-03 09:40:13:5] <29783> KVP_ENCDATA:cdata=2/Eaac5M5cZv5gvUutVB6wsIAY4Cb0vbpt9CKkQIIT9gUoeq5GvBoj7bNgTaKh0Rq+GYZuEjb+iKZV7eCbSdDLO6UOVDUYBRQXpNSnDfBeOE1KAgWKKufgWd+j2ziaU8kO0lXsu11zcPE2yKQml/tlVZVGfgEyq53NGJYQT5/Va468M4gu9Rw7CspFFL7k68gH70Zomt8I8qYwJBq1S7GPAXyml/iEm8rv4mrFMxucbZpi7cwC8dWjokK9jelZQ4SYzrtSSSAO+39/UZ2tvYl4+4K+3nXHEttCaX5dfDwDLLFYRmKx7Sdn3rbIlub4fMGhsURzEkKgYKFa383dfXw+Hre+wYhSFsTM1r56T4rEGv0+S03bgojCH4Q0SVTtSdsLyvjIKYzbNipt7OzVxn96NaitK7WHJlW+9r8FbYQRyQSRoPoEuS9H18Dn2Mv9XSvuWi+6tdyWcJfuxqNTyoiZ/NeeXmK97mwUxUDc8906vxEGDewLoqtbCTI88e/5fc9yYZEu9IeTI0NB/hm4suHvNUvLIYq+Tt+ddHxvcZzHE= +INFO [2014-07-03 09:40:13:5] <29783> KVP_CONAME: +INFO [2014-07-03 09:40:13:5] <29783> KVP_NOINT:0 +INFO [2014-07-03 09:40:13:5] <29783> KVP_QUOTA:00 +INFO [2014-07-03 09:40:13:5] <29783> CardNo: +INFO [2014-07-03 09:40:13:6] <29783> MPI_CAVV: +INFO [2014-07-03 09:40:13:6] <29783> MPI_ECI: +INFO [2014-07-03 09:40:13:6] <29783> MPI_MD64: +INFO [2014-07-03 09:40:13:6] <29783> ExpMon: +INFO [2014-07-03 09:40:13:6] <29783> ExpYear: +INFO [2014-07-03 09:40:13:6] <29783> Passwd: +INFO [2014-07-03 09:40:13:6] <29783> SocId: +INFO [2014-07-03 09:40:13:6] <29783> HP_SERVERINFO: +INFO [2014-07-03 09:40:13:6] <29783> HP_HANDPHONE: +INFO [2014-07-03 09:40:13:6] <29783> HP_COMPANY: +INFO [2014-07-03 09:40:13:6] <29783> HP_ID: +INFO [2014-07-03 09:40:13:6] <29783> HP_SUBID: +INFO [2014-07-03 09:40:13:6] <29783> HP_UNITType: +INFO [2014-07-03 09:40:13:6] <29783> HP_IDEN: +INFO [2014-07-03 09:40:13:7] <29783> HP_IPADDR: +INFO [2014-07-03 09:40:13:7] <29783> VIRTUAL_CENTERCD: +INFO [2014-07-03 09:40:13:7] <29783> VIRTUAL_DEPODT: +INFO [2014-07-03 09:40:13:7] <29783> ZuminCode: +INFO [2014-07-03 09:40:13:7] <29783> MallPage: +INFO [2014-07-03 09:40:13:7] <29783> VIRTUAL_NO: +INFO [2014-07-03 09:40:13:7] <29783> ES_SENDNO: +INFO [2014-07-03 09:40:13:7] <29783> Column1:20140703093740T00562 +INFO [2014-07-03 09:40:13:7] <29783> Column2: +INFO [2014-07-03 09:40:13:7] <29783> Column3: +INFO [2014-07-03 09:40:13:7] <29783> Make NetCancel ID Start +INFO [2014-07-03 09:40:13:7] <29783> AEGIS_ISP_acetel_20140703094013007448 +INFO [2014-07-03 09:40:13:7] <29783> Make NetCancel ID End +INFO [2014-07-03 09:40:13:8] <29783> Make NetCancelID OK +INFO [2014-07-03 09:40:13:8] <29783> Make Msg Start +INFO [2014-07-03 09:40:13:8] <29783> card-isp Make MSG OK +INFO [2014-07-03 09:40:13:8] <29783> Make Msg End +INFO [2014-07-03 09:40:13:8] <29783> Make Pay Msg OK +INFO [2014-07-03 09:40:13:8] <29783> Send & Recv Msg Start +INFO [2014-07-03 09:40:13:8] <29783> Send Data To PG Start [ +INFO [2014-07-03 09:40:13:8] <29783> 0:0010192plug15 +INFO [2014-07-03 09:40:13:8] <29783> 1:acetel +INFO [2014-07-03 09:40:13:8] <29783> 2:test11 +INFO [2014-07-03 09:40:13:8] <29783> 3:17800 +INFO [2014-07-03 09:40:13:8] <29783> 4:20140703093740T00562 +INFO [2014-07-03 09:40:13:8] <29783> 5:9000400001 +INFO [2014-07-03 09:40:13:8] <29783> 6:̸ +INFO [2014-07-03 09:40:13:8] <29783> 7:111-1111-1111 +INFO [2014-07-03 09:40:13:8] <29783> 8: Ż絿 1234 +INFO [2014-07-03 09:40:13:8] <29783> 9:̸ +INFO [2014-07-03 09:40:13:8] <29783> 10:111-1111-1111 +INFO [2014-07-03 09:40:13:8] <29783> 11:½Ʈ +INFO [2014-07-03 09:40:13:8] <29783> 12:ũ 帲 +INFO [2014-07-03 09:40:13:8] <29783> 13:WON +INFO [2014-07-03 09:40:13:8] <29783> 14:00 +INFO [2014-07-03 09:40:13:8] <29783> 15: +INFO [2014-07-03 09:40:13:8] <29783> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-03 09:40:13:8] <29783> 17:AdEPKHTWHxOQMfjJ8pwtiirVtArXKl/05I8lBWdksWTqrGzX0iRqRe288xrFO3loYjjrmVCdV64KKeSzBQwTbwXtyPEbRlTZGeGweZUKs2IyIPSlZVifp22w/uSCzUqOS32yqflUNfJs0BA8O9nRW2MeqIjHajfIy4ksgiZD/OI= +INFO [2014-07-03 09:40:13:8] <29783> 18:cdata=2/Eaac5M5cZv5gvUutVB6wsIAY4Cb0vbpt9CKkQIIT9gUoeq5GvBoj7bNgTaKh0Rq+GYZuEjb+iKZV7eCbSdDLO6UOVDUYBRQXpNSnDfBeOE1KAgWKKufgWd+j2ziaU8kO0lXsu11zcPE2yKQml/tlVZVGfgEyq53NGJYQT5/Va468M4gu9Rw7CspFFL7k68gH70Zomt8I8qYwJBq1S7GPAXyml/iEm8rv4mrFMxucbZpi7cwC8dWjokK9jelZQ4SYzrtSSSAO+39/UZ2tvYl4+4K+3nXHEttCaX5dfDwDLLFYRmKx7Sdn3rbIlub4fMGhsURzEkKgYKFa383dfXw+Hre+wYhSFsTM1r56T4rEGv0+S03bgojCH4Q0SVTtSdsLyvjIKYzbNipt7OzVxn96NaitK7WHJlW+9r8FbYQRyQSRoPoEuS9H18Dn2Mv9XSvuWi+6tdyWcJfuxqNTyoiZ/NeeXmK97mwUxUDc8906vxEGDewLoqtbCTI88e/5fc9yYZEu9IeTI0NB/hm4suHvNUvLIYq+Tt+ddHxvcZzHE= +INFO [2014-07-03 09:40:13:8] <29783> 19: +INFO [2014-07-03 09:40:13:8] <29783> 20:125.131.234.203 +INFO [2014-07-03 09:40:13:8] <29783> 21:test@empal.com +INFO [2014-07-03 09:40:13:8] <29783> 22:AEGIS_ISP_acetel_20140703094013007448 +INFO [2014-07-03 09:40:13:8] <29783> 23: +INFO [2014-07-03 09:40:13:9] <29783> ] Send Data To PG End +INFO [2014-07-03 09:40:13:9] <29783> SendMsg : [0010192plug15|acetel|test11|17800|20140703093740T00562|9000400001|̸|111-1111-1111| Ż絿 1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|AdEPKHTWHxOQMfjJ8pwtiirVtArXKl/05I8lBWdksWTqrGzX0iRqRe288xrFO3loYjjrmVCdV64KKeSzBQwTbwXtyPEbRlTZGeGweZUKs2IyIPSlZVifp22w/uSCzUqOS32yqflUNfJs0BA8O9nRW2MeqIjHajfIy4ksgiZD/OI=|cdata=2/Eaac5M5cZv5gvUutVB6wsIAY4Cb0vbpt9CKkQIIT9gUoeq5GvBoj7bNgTaKh0Rq+GYZuEjb+iKZV7eCbSdDLO6UOVDUYBRQXpNSnDfBeOE1KAgWKKufgWd+j2ziaU8kO0lXsu11zcPE2yKQml/tlVZVGfgEyq53NGJYQT5/Va468M4gu9Rw7CspFFL7k68gH70Zomt8I8qYwJBq1S7GPAXyml/iEm8rv4mrFMxucbZpi7cwC8dWjokK9jelZQ4SYzrtSSSAO+39/UZ2tvYl4+4K+3nXHEttCaX5dfDwDLLFYRmKx7Sdn3rbIlub4fMGhsURzEkKgYKFa383dfXw+Hre+wYhSFsTM1r56T4rEGv0+S03bgojCH4Q0SVTtSdsLyvjIKYzbNipt7OzVxn96NaitK7WHJlW+9r8FbYQRyQSRoPoEuS9H18Dn2Mv9XSvuWi+6tdyWcJfuxqNTyoiZ/NeeXmK97mwUxUDc8906vxEGDewLoqtbCTI88e/5fc9yYZEu9IeTI0NB/hm4suHvNUvLIYq+Tt+ddHxvcZzHE=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140703094013007448|] +INFO [2014-07-03 09:40:13:9] <29783> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-03 09:40:13:13] <29783> Socket Open OK +INFO [2014-07-03 09:40:15:612] <29783> RecvMsg Length : [000083] +INFO [2014-07-03 09:40:15:613] <29783> RecvMsg : [acetel|0610|101565|52142551|17800|y|:20140703093740T00562|20140703093925|0100| +] +INFO [2014-07-03 09:40:15:613] <29783> Socket Close OK +INFO [2014-07-03 09:40:15:613] <29783> RecvMsg Length Check OK +INFO [2014-07-03 09:40:15:613] <29783> Send & Recv Msg End +INFO [2014-07-03 09:40:15:613] <29783> Send & Recv Msg OK +INFO [2014-07-03 09:40:15:613] <29783> Parse Msg Start +INFO [2014-07-03 09:40:15:613] <29783> card-isp RECV MSG Parsing OK +INFO [2014-07-03 09:40:15:613] <29783> Parse Msg End +INFO [2014-07-03 09:40:15:613] <29783> Msg Parsing OK +INFO [2014-07-03 09:40:15:613] <29783> card Pay Result Value [ +INFO [2014-07-03 09:40:15:613] <29783> NetCancID:AEGIS_ISP_acetel_20140703094013007448 +INFO [2014-07-03 09:40:15:613] <29783> rStoreId:acetel +INFO [2014-07-03 09:40:15:613] <29783> rBusiCd:0610 +INFO [2014-07-03 09:40:15:613] <29783> rOrdNo:20140703093740T00562 +INFO [2014-07-03 09:40:15:613] <29783> rDealNo:101565 +INFO [2014-07-03 09:40:15:614] <29783> rApprNo:52142551 +INFO [2014-07-03 09:40:15:614] <29783> rProdNm:ũ 帲 +INFO [2014-07-03 09:40:15:614] <29783> rAmt:17800 +INFO [2014-07-03 09:40:15:614] <29783> rInstmt:00 +INFO [2014-07-03 09:40:15:614] <29783> rSuccYn:y +INFO [2014-07-03 09:40:15:614] <29783> rResMsg::20140703093740T00562 +INFO [2014-07-03 09:40:15:614] <29783> rApprTm:20140703093925 +INFO [2014-07-03 09:40:15:614] <29783> rCardCd:0100 +INFO [2014-07-03 09:40:15:614] <29783> ] +INFO [2014-07-03 09:40:15:614] <29783> END :20140703093740T00562 Transaction time:[2.625sec] +INFO [2014-07-03 09:40:15:614] <29783> =============================================================== +INFO [2014-07-03 16:47:21:654] <28698> =============================================================== +INFO [2014-07-03 16:47:21:654] <28698> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-03 16:47:21:655] <28698> card Pay Start! +INFO [2014-07-03 16:47:21:655] <28698> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-03 16:47:21:655] <28698> StoreId:acetel +INFO [2014-07-03 16:47:21:655] <28698> log:true +INFO [2014-07-03 16:47:21:655] <28698> logLevel:INFO +INFO [2014-07-03 16:47:21:655] <28698> UseNetCancel:true +INFO [2014-07-03 16:47:21:655] <28698> Type:Pay +INFO [2014-07-03 16:47:21:655] <28698> RecvLen:7 +INFO [2014-07-03 16:47:21:655] <28698> AuthTy:card +INFO [2014-07-03 16:47:21:655] <28698> SubTy:isp +INFO [2014-07-03 16:47:21:655] <28698> OrdNo:20140703164440T16557 +INFO [2014-07-03 16:47:21:655] <28698> Amt:17800 +INFO [2014-07-03 16:47:21:656] <28698> UserEmail:test@empal.com +INFO [2014-07-03 16:47:21:656] <28698> ProdNm:ũ 帲 +INFO [2014-07-03 16:47:21:656] <28698> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-03 16:47:21:656] <28698> UserId:test11 +INFO [2014-07-03 16:47:21:656] <28698> OrdNm:̸ +INFO [2014-07-03 16:47:21:656] <28698> OrdPhone:111-1111-1111 +INFO [2014-07-03 16:47:21:656] <28698> OrdAddr:135-722@|@| Ż絿 @|@|1234 +INFO [2014-07-03 16:47:21:656] <28698> RcpNm:̸ +INFO [2014-07-03 16:47:21:656] <28698> RcpPhone:111-1111-1111 +INFO [2014-07-03 16:47:21:656] <28698> DlvAddr:135-722@|@| Ż絿 @|@|1234 +INFO [2014-07-03 16:47:21:656] <28698> Remark:½Ʈ +INFO [2014-07-03 16:47:21:656] <28698> DeviId:9000400001 +INFO [2014-07-03 16:47:21:656] <28698> AuthYn:N +INFO [2014-07-03 16:47:21:656] <28698> Instmt:00 +INFO [2014-07-03 16:47:21:657] <28698> UserIp:125.131.234.203 +INFO [2014-07-03 16:47:21:657] <28698> partial_mm:00 +INFO [2014-07-03 16:47:21:657] <28698> noIntMonth: +INFO [2014-07-03 16:47:21:657] <28698> KVP_CURRENCY:WON +INFO [2014-07-03 16:47:21:657] <28698> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-03 16:47:21:657] <28698> KVP_SESSIONKEY:CGvVbFwIVloLyddhmYh9N3v0FYHm4xYRo5P1DfT2TBjGxsycx9mXBbWXNc6/fhlcQq+LRep/oXDj5YkI780njgJWbrbqMTuMOmL7xeWw3HwbQLdyGxXV0uwowcp1hjJoY2f1tI5pZWsLg+wJid8oUBoJRZMlFLet1tA7TpB6Qew= +INFO [2014-07-03 16:47:21:657] <28698> KVP_ENCDATA:cdata=Km8qjak7QQlm4+pcRT3+RQK3ELGXp46nc1RzVfQ1kN2Pp+zKipJkTg3WJCcjh5dguYEhypQK11iUynbm5N750haC4WQY0PeqfKSy6aRU52TQZcyVmkg87E31/o4pq4eNZskXDU306OBFreCyVcNzNyTUvv0m2ZzX1U41To7mpcxJDdPbmLXYfkcc8Yg6bgpL1lPtydvLDoum0MtQdD3LGNKe7AmtlLGfXVaszc5jkM42CeJAPX7SKXDLyBR1kuEzE+RQWjQkNImfmo9wFAD8PJEWlf9nc9Nfzw2J55VaBSOk2tQkMsRX1CSo2GzYf0+RU4TRE95OUJaBi6D5n2IHE9cYnXhJxtZpLFGNNktwV+02OS6iFT0J9kVIP4eE3GPdssF9q3eOv/FYNbeZH4ZeAgJsJ034pp2sBi/FkuVJ7Hzg1SON6qJX2tOd3BeoIlO0v6o3tzwf5r5t1aKoRpCMPF8DWJBdRY/td6j3gsRaW7v/NtvW69WMVQdMVFVUHmbmM6FemQCtangwFTBDbXsgcT/deOzuoSFUjLxbB9APDjU= +INFO [2014-07-03 16:47:21:657] <28698> KVP_CONAME: +INFO [2014-07-03 16:47:21:657] <28698> KVP_NOINT:0 +INFO [2014-07-03 16:47:21:657] <28698> KVP_QUOTA:00 +INFO [2014-07-03 16:47:21:657] <28698> CardNo: +INFO [2014-07-03 16:47:21:657] <28698> MPI_CAVV: +INFO [2014-07-03 16:47:21:657] <28698> MPI_ECI: +INFO [2014-07-03 16:47:21:657] <28698> MPI_MD64: +INFO [2014-07-03 16:47:21:658] <28698> ExpMon: +INFO [2014-07-03 16:47:21:658] <28698> ExpYear: +INFO [2014-07-03 16:47:21:658] <28698> Passwd: +INFO [2014-07-03 16:47:21:658] <28698> SocId: +INFO [2014-07-03 16:47:21:658] <28698> HP_SERVERINFO: +INFO [2014-07-03 16:47:21:658] <28698> HP_HANDPHONE: +INFO [2014-07-03 16:47:21:658] <28698> HP_COMPANY: +INFO [2014-07-03 16:47:21:658] <28698> HP_ID: +INFO [2014-07-03 16:47:21:658] <28698> HP_SUBID: +INFO [2014-07-03 16:47:21:658] <28698> HP_UNITType: +INFO [2014-07-03 16:47:21:658] <28698> HP_IDEN: +INFO [2014-07-03 16:47:21:658] <28698> HP_IPADDR: +INFO [2014-07-03 16:47:21:658] <28698> VIRTUAL_CENTERCD: +INFO [2014-07-03 16:47:21:659] <28698> VIRTUAL_DEPODT: +INFO [2014-07-03 16:47:21:659] <28698> ZuminCode: +INFO [2014-07-03 16:47:21:659] <28698> MallPage: +INFO [2014-07-03 16:47:21:659] <28698> VIRTUAL_NO: +INFO [2014-07-03 16:47:21:659] <28698> ES_SENDNO: +INFO [2014-07-03 16:47:21:659] <28698> Column1:222-2222-2222 +INFO [2014-07-03 16:47:21:659] <28698> Column2:222-2222-2222 +INFO [2014-07-03 16:47:21:659] <28698> Column3:0@|@|cardnormal +INFO [2014-07-03 16:47:21:659] <28698> Make NetCancel ID Start +INFO [2014-07-03 16:47:21:659] <28698> AEGIS_ISP_acetel_20140703164721659196 +INFO [2014-07-03 16:47:21:659] <28698> Make NetCancel ID End +INFO [2014-07-03 16:47:21:659] <28698> Make NetCancelID OK +INFO [2014-07-03 16:47:21:659] <28698> Make Msg Start +INFO [2014-07-03 16:47:21:660] <28698> card-isp Make MSG OK +INFO [2014-07-03 16:47:21:660] <28698> Make Msg End +INFO [2014-07-03 16:47:21:660] <28698> Make Pay Msg OK +INFO [2014-07-03 16:47:21:660] <28698> Send & Recv Msg Start +INFO [2014-07-03 16:47:21:660] <28698> Send Data To PG Start [ +INFO [2014-07-03 16:47:21:660] <28698> 0:0010332plug15 +INFO [2014-07-03 16:47:21:660] <28698> 1:acetel +INFO [2014-07-03 16:47:21:660] <28698> 2:test11 +INFO [2014-07-03 16:47:21:660] <28698> 3:17800 +INFO [2014-07-03 16:47:21:660] <28698> 4:20140703164440T16557 +INFO [2014-07-03 16:47:21:660] <28698> 5:9000400001 +INFO [2014-07-03 16:47:21:660] <28698> 6:̸ +INFO [2014-07-03 16:47:21:660] <28698> 7:111-1111-1111 +INFO [2014-07-03 16:47:21:660] <28698> 8:135-722@ +INFO [2014-07-03 16:47:21:660] <28698> 9:@ +INFO [2014-07-03 16:47:21:660] <28698> 10: Ż絿 @ +INFO [2014-07-03 16:47:21:660] <28698> 11:@ +INFO [2014-07-03 16:47:21:660] <28698> 12:1234 +INFO [2014-07-03 16:47:21:660] <28698> 13:̸ +INFO [2014-07-03 16:47:21:660] <28698> 14:111-1111-1111 +INFO [2014-07-03 16:47:21:660] <28698> 15:½Ʈ +INFO [2014-07-03 16:47:21:660] <28698> 16:ũ 帲 +INFO [2014-07-03 16:47:21:660] <28698> 17:WON +INFO [2014-07-03 16:47:21:660] <28698> 18:00 +INFO [2014-07-03 16:47:21:660] <28698> 19: +INFO [2014-07-03 16:47:21:660] <28698> 20:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-03 16:47:21:660] <28698> 21:CGvVbFwIVloLyddhmYh9N3v0FYHm4xYRo5P1DfT2TBjGxsycx9mXBbWXNc6/fhlcQq+LRep/oXDj5YkI780njgJWbrbqMTuMOmL7xeWw3HwbQLdyGxXV0uwowcp1hjJoY2f1tI5pZWsLg+wJid8oUBoJRZMlFLet1tA7TpB6Qew= +INFO [2014-07-03 16:47:21:660] <28698> 22:cdata=Km8qjak7QQlm4+pcRT3+RQK3ELGXp46nc1RzVfQ1kN2Pp+zKipJkTg3WJCcjh5dguYEhypQK11iUynbm5N750haC4WQY0PeqfKSy6aRU52TQZcyVmkg87E31/o4pq4eNZskXDU306OBFreCyVcNzNyTUvv0m2ZzX1U41To7mpcxJDdPbmLXYfkcc8Yg6bgpL1lPtydvLDoum0MtQdD3LGNKe7AmtlLGfXVaszc5jkM42CeJAPX7SKXDLyBR1kuEzE+RQWjQkNImfmo9wFAD8PJEWlf9nc9Nfzw2J55VaBSOk2tQkMsRX1CSo2GzYf0+RU4TRE95OUJaBi6D5n2IHE9cYnXhJxtZpLFGNNktwV+02OS6iFT0J9kVIP4eE3GPdssF9q3eOv/FYNbeZH4ZeAgJsJ034pp2sBi/FkuVJ7Hzg1SON6qJX2tOd3BeoIlO0v6o3tzwf5r5t1aKoRpCMPF8DWJBdRY/td6j3gsRaW7v/NtvW69WMVQdMVFVUHmbmM6FemQCtangwFTBDbXsgcT/deOzuoSFUjLxbB9APDjU= +INFO [2014-07-03 16:47:21:660] <28698> 23: +INFO [2014-07-03 16:47:21:660] <28698> 24:125.131.234.203 +INFO [2014-07-03 16:47:21:660] <28698> 25:test@empal.com +INFO [2014-07-03 16:47:21:660] <28698> 26:AEGIS_ISP_acetel_20140703164721659196 +INFO [2014-07-03 16:47:21:660] <28698> 27: +INFO [2014-07-03 16:47:21:661] <28698> ] Send Data To PG End +INFO [2014-07-03 16:47:21:661] <28698> SendMsg : [0010332plug15|acetel|test11|17800|20140703164440T16557|9000400001|̸|111-1111-1111|135-722@|@| Ż絿 @|@|1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|CGvVbFwIVloLyddhmYh9N3v0FYHm4xYRo5P1DfT2TBjGxsycx9mXBbWXNc6/fhlcQq+LRep/oXDj5YkI780njgJWbrbqMTuMOmL7xeWw3HwbQLdyGxXV0uwowcp1hjJoY2f1tI5pZWsLg+wJid8oUBoJRZMlFLet1tA7TpB6Qew=|cdata=Km8qjak7QQlm4+pcRT3+RQK3ELGXp46nc1RzVfQ1kN2Pp+zKipJkTg3WJCcjh5dguYEhypQK11iUynbm5N750haC4WQY0PeqfKSy6aRU52TQZcyVmkg87E31/o4pq4eNZskXDU306OBFreCyVcNzNyTUvv0m2ZzX1U41To7mpcxJDdPbmLXYfkcc8Yg6bgpL1lPtydvLDoum0MtQdD3LGNKe7AmtlLGfXVaszc5jkM42CeJAPX7SKXDLyBR1kuEzE+RQWjQkNImfmo9wFAD8PJEWlf9nc9Nfzw2J55VaBSOk2tQkMsRX1CSo2GzYf0+RU4TRE95OUJaBi6D5n2IHE9cYnXhJxtZpLFGNNktwV+02OS6iFT0J9kVIP4eE3GPdssF9q3eOv/FYNbeZH4ZeAgJsJ034pp2sBi/FkuVJ7Hzg1SON6qJX2tOd3BeoIlO0v6o3tzwf5r5t1aKoRpCMPF8DWJBdRY/td6j3gsRaW7v/NtvW69WMVQdMVFVUHmbmM6FemQCtangwFTBDbXsgcT/deOzuoSFUjLxbB9APDjU=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140703164721659196|] +INFO [2014-07-03 16:47:21:661] <28698> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-03 16:47:21:666] <28698> Socket Open OK +INFO [2014-07-03 16:47:22:511] <28698> RecvMsg Length : [000092] +INFO [2014-07-03 16:47:22:511] <28698> RecvMsg : [acetel|0610|20140703164440T16557||17800|n|Ÿ(ȣ ̻)||0100| +] +INFO [2014-07-03 16:47:22:511] <28698> Socket Close OK +INFO [2014-07-03 16:47:22:511] <28698> RecvMsg Length Check OK +INFO [2014-07-03 16:47:22:511] <28698> Send & Recv Msg End +INFO [2014-07-03 16:47:22:511] <28698> Send & Recv Msg OK +INFO [2014-07-03 16:47:22:511] <28698> Parse Msg Start +INFO [2014-07-03 16:47:22:511] <28698> card-isp RECV MSG Parsing OK +INFO [2014-07-03 16:47:22:511] <28698> Parse Msg End +INFO [2014-07-03 16:47:22:512] <28698> Msg Parsing OK +INFO [2014-07-03 16:47:22:512] <28698> card Pay Result Value [ +INFO [2014-07-03 16:47:22:512] <28698> NetCancID:AEGIS_ISP_acetel_20140703164721659196 +INFO [2014-07-03 16:47:22:512] <28698> rStoreId:acetel +INFO [2014-07-03 16:47:22:512] <28698> rBusiCd:0610 +INFO [2014-07-03 16:47:22:512] <28698> rOrdNo:20140703164440T16557 +INFO [2014-07-03 16:47:22:512] <28698> rDealNo:20140703164440T16557 +INFO [2014-07-03 16:47:22:512] <28698> rApprNo: +INFO [2014-07-03 16:47:22:512] <28698> rProdNm:ũ 帲 +INFO [2014-07-03 16:47:22:512] <28698> rAmt:17800 +INFO [2014-07-03 16:47:22:512] <28698> rInstmt:00 +INFO [2014-07-03 16:47:22:512] <28698> rSuccYn:n +INFO [2014-07-03 16:47:22:512] <28698> rResMsg:Ÿ(ȣ ̻) +INFO [2014-07-03 16:47:22:512] <28698> rApprTm: +INFO [2014-07-03 16:47:22:512] <28698> rCardCd:0100 +INFO [2014-07-03 16:47:22:512] <28698> ] +INFO [2014-07-03 16:47:22:513] <28698> END Ÿ(ȣ ̻) Transaction time:[0.868sec] +INFO [2014-07-03 16:47:22:513] <28698> =============================================================== +INFO [2014-07-03 16:50:10:333] <28757> =============================================================== +INFO [2014-07-03 16:50:10:333] <28757> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-03 16:50:10:333] <28757> card Pay Start! +INFO [2014-07-03 16:50:10:333] <28757> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-03 16:50:10:334] <28757> StoreId:acetel +INFO [2014-07-03 16:50:10:334] <28757> log:true +INFO [2014-07-03 16:50:10:334] <28757> logLevel:INFO +INFO [2014-07-03 16:50:10:334] <28757> UseNetCancel:true +INFO [2014-07-03 16:50:10:334] <28757> Type:Pay +INFO [2014-07-03 16:50:10:334] <28757> RecvLen:7 +INFO [2014-07-03 16:50:10:334] <28757> AuthTy:card +INFO [2014-07-03 16:50:10:334] <28757> SubTy:isp +INFO [2014-07-03 16:50:10:334] <28757> OrdNo:20140703164838T44408 +INFO [2014-07-03 16:50:10:334] <28757> Amt:17800 +INFO [2014-07-03 16:50:10:334] <28757> UserEmail:test@empal.com +INFO [2014-07-03 16:50:10:334] <28757> ProdNm:ũ 帲 +INFO [2014-07-03 16:50:10:334] <28757> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-03 16:50:10:334] <28757> UserId:test11 +INFO [2014-07-03 16:50:10:334] <28757> OrdNm:̸ +INFO [2014-07-03 16:50:10:334] <28757> OrdPhone:111-1111-1111 +INFO [2014-07-03 16:50:10:334] <28757> OrdAddr:135-722@|@| Ż絿 @|@|1234 +INFO [2014-07-03 16:50:10:334] <28757> RcpNm:̸ +INFO [2014-07-03 16:50:10:334] <28757> RcpPhone:111-1111-1111 +INFO [2014-07-03 16:50:10:334] <28757> DlvAddr:135-722@|@| Ż絿 @|@|1234 +INFO [2014-07-03 16:50:10:335] <28757> Remark:½Ʈ +INFO [2014-07-03 16:50:10:335] <28757> DeviId:9000400001 +INFO [2014-07-03 16:50:10:335] <28757> AuthYn:N +INFO [2014-07-03 16:50:10:335] <28757> Instmt:00 +INFO [2014-07-03 16:50:10:335] <28757> UserIp:125.131.234.203 +INFO [2014-07-03 16:50:10:335] <28757> partial_mm:00 +INFO [2014-07-03 16:50:10:335] <28757> noIntMonth: +INFO [2014-07-03 16:50:10:335] <28757> KVP_CURRENCY:WON +INFO [2014-07-03 16:50:10:335] <28757> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-03 16:50:10:335] <28757> KVP_SESSIONKEY:EUQwV3C//lD815L+FoCIO34Llp7zZoo0MI8Ft9riChrpZymIPR57FEM3aHmKGqUbNhMQ2dIOgmWtXSsevXMH7YPbCotyS1LRPKylwjaGOM+gCmJpYNozOO4aHEXTpj5N07gfetd7yGFdf6wYn4I8HetHRYucB9PBim2yDRbSEIM= +INFO [2014-07-03 16:50:10:335] <28757> KVP_ENCDATA:cdata=lMDBCwT2LWUcm3aIA6r8h7Oi77WJ8O18gmhrRUyonul6uiW+M/8fh0OnoXpw/wPWKwS9hrZp6ecOeBmNRVC/3M8Fw/SSOQYMAYchLaz5i/4YfI+OLVh4ofT/nnJ4tyWMo1pdMJ0zWLQSGMMDVGhtA4GVlyhciob0G4MMgA2MMap//e8UGzE039PnDGGbZGSUz13ubKC5IHhkPfmOFLh4hz/yKYkEs01nZb6yEHn5PFHQE3IlOPvmpuPaDoXEJc8TSHQcNC2j8ux3QgXYKPL/NbcOXIIrjdD6ltg3ZFFqRi9gWoRWgWtwM2qr9jw/xAgVQ+3Kx2QX6WIcCVC3b9SbmdOpV8IfXa266s+lRF4tz1hR+IYo4WZE6721aMhpydy35V2iKjlxtd5OTTYfjpA9GXiAn9JLeDoFU6Zjjt4j/V8CLeeLKy9FdfVmAQOvQaMXpNaC0L1f3bZD3y9Gx2u+QqF9xy8tV/Y4jZwZHR1I1xoO+hyUqXr0MQULfvUksAQzP1VLnrj+K7Qe/SoYpOQUbKKnH3TL6bWlTx4aZq13qF8= +INFO [2014-07-03 16:50:10:335] <28757> KVP_CONAME: +INFO [2014-07-03 16:50:10:335] <28757> KVP_NOINT:0 +INFO [2014-07-03 16:50:10:335] <28757> KVP_QUOTA:00 +INFO [2014-07-03 16:50:10:335] <28757> CardNo: +INFO [2014-07-03 16:50:10:335] <28757> MPI_CAVV: +INFO [2014-07-03 16:50:10:335] <28757> MPI_ECI: +INFO [2014-07-03 16:50:10:335] <28757> MPI_MD64: +INFO [2014-07-03 16:50:10:335] <28757> ExpMon: +INFO [2014-07-03 16:50:10:335] <28757> ExpYear: +INFO [2014-07-03 16:50:10:335] <28757> Passwd: +INFO [2014-07-03 16:50:10:336] <28757> SocId: +INFO [2014-07-03 16:50:10:336] <28757> HP_SERVERINFO: +INFO [2014-07-03 16:50:10:336] <28757> HP_HANDPHONE: +INFO [2014-07-03 16:50:10:336] <28757> HP_COMPANY: +INFO [2014-07-03 16:50:10:336] <28757> HP_ID: +INFO [2014-07-03 16:50:10:336] <28757> HP_SUBID: +INFO [2014-07-03 16:50:10:336] <28757> HP_UNITType: +INFO [2014-07-03 16:50:10:336] <28757> HP_IDEN: +INFO [2014-07-03 16:50:10:336] <28757> HP_IPADDR: +INFO [2014-07-03 16:50:10:336] <28757> VIRTUAL_CENTERCD: +INFO [2014-07-03 16:50:10:336] <28757> VIRTUAL_DEPODT: +INFO [2014-07-03 16:50:10:336] <28757> ZuminCode: +INFO [2014-07-03 16:50:10:336] <28757> MallPage: +INFO [2014-07-03 16:50:10:336] <28757> VIRTUAL_NO: +INFO [2014-07-03 16:50:10:336] <28757> ES_SENDNO: +INFO [2014-07-03 16:50:10:336] <28757> Column1:222-2222-2222 +INFO [2014-07-03 16:50:10:336] <28757> Column2:222-2222-2222 +INFO [2014-07-03 16:50:10:336] <28757> Column3:0@|@|cardnormal +INFO [2014-07-03 16:50:10:336] <28757> Make NetCancel ID Start +INFO [2014-07-03 16:50:10:336] <28757> AEGIS_ISP_acetel_20140703165010336921 +INFO [2014-07-03 16:50:10:337] <28757> Make NetCancel ID End +INFO [2014-07-03 16:50:10:337] <28757> Make NetCancelID OK +INFO [2014-07-03 16:50:10:337] <28757> Make Msg Start +INFO [2014-07-03 16:50:10:337] <28757> card-isp Make MSG OK +INFO [2014-07-03 16:50:10:337] <28757> Make Msg End +INFO [2014-07-03 16:50:10:337] <28757> Make Pay Msg OK +INFO [2014-07-03 16:50:10:337] <28757> Send & Recv Msg Start +INFO [2014-07-03 16:50:10:337] <28757> Send Data To PG Start [ +INFO [2014-07-03 16:50:10:337] <28757> 0:0010332plug15 +INFO [2014-07-03 16:50:10:337] <28757> 1:acetel +INFO [2014-07-03 16:50:10:337] <28757> 2:test11 +INFO [2014-07-03 16:50:10:337] <28757> 3:17800 +INFO [2014-07-03 16:50:10:337] <28757> 4:20140703164838T44408 +INFO [2014-07-03 16:50:10:337] <28757> 5:9000400001 +INFO [2014-07-03 16:50:10:337] <28757> 6:̸ +INFO [2014-07-03 16:50:10:337] <28757> 7:111-1111-1111 +INFO [2014-07-03 16:50:10:337] <28757> 8:135-722@ +INFO [2014-07-03 16:50:10:337] <28757> 9:@ +INFO [2014-07-03 16:50:10:337] <28757> 10: Ż絿 @ +INFO [2014-07-03 16:50:10:337] <28757> 11:@ +INFO [2014-07-03 16:50:10:337] <28757> 12:1234 +INFO [2014-07-03 16:50:10:337] <28757> 13:̸ +INFO [2014-07-03 16:50:10:337] <28757> 14:111-1111-1111 +INFO [2014-07-03 16:50:10:337] <28757> 15:½Ʈ +INFO [2014-07-03 16:50:10:337] <28757> 16:ũ 帲 +INFO [2014-07-03 16:50:10:337] <28757> 17:WON +INFO [2014-07-03 16:50:10:337] <28757> 18:00 +INFO [2014-07-03 16:50:10:337] <28757> 19: +INFO [2014-07-03 16:50:10:337] <28757> 20:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-03 16:50:10:337] <28757> 21:EUQwV3C//lD815L+FoCIO34Llp7zZoo0MI8Ft9riChrpZymIPR57FEM3aHmKGqUbNhMQ2dIOgmWtXSsevXMH7YPbCotyS1LRPKylwjaGOM+gCmJpYNozOO4aHEXTpj5N07gfetd7yGFdf6wYn4I8HetHRYucB9PBim2yDRbSEIM= +INFO [2014-07-03 16:50:10:337] <28757> 22:cdata=lMDBCwT2LWUcm3aIA6r8h7Oi77WJ8O18gmhrRUyonul6uiW+M/8fh0OnoXpw/wPWKwS9hrZp6ecOeBmNRVC/3M8Fw/SSOQYMAYchLaz5i/4YfI+OLVh4ofT/nnJ4tyWMo1pdMJ0zWLQSGMMDVGhtA4GVlyhciob0G4MMgA2MMap//e8UGzE039PnDGGbZGSUz13ubKC5IHhkPfmOFLh4hz/yKYkEs01nZb6yEHn5PFHQE3IlOPvmpuPaDoXEJc8TSHQcNC2j8ux3QgXYKPL/NbcOXIIrjdD6ltg3ZFFqRi9gWoRWgWtwM2qr9jw/xAgVQ+3Kx2QX6WIcCVC3b9SbmdOpV8IfXa266s+lRF4tz1hR+IYo4WZE6721aMhpydy35V2iKjlxtd5OTTYfjpA9GXiAn9JLeDoFU6Zjjt4j/V8CLeeLKy9FdfVmAQOvQaMXpNaC0L1f3bZD3y9Gx2u+QqF9xy8tV/Y4jZwZHR1I1xoO+hyUqXr0MQULfvUksAQzP1VLnrj+K7Qe/SoYpOQUbKKnH3TL6bWlTx4aZq13qF8= +INFO [2014-07-03 16:50:10:337] <28757> 23: +INFO [2014-07-03 16:50:10:337] <28757> 24:125.131.234.203 +INFO [2014-07-03 16:50:10:337] <28757> 25:test@empal.com +INFO [2014-07-03 16:50:10:337] <28757> 26:AEGIS_ISP_acetel_20140703165010336921 +INFO [2014-07-03 16:50:10:337] <28757> 27: +INFO [2014-07-03 16:50:10:337] <28757> ] Send Data To PG End +INFO [2014-07-03 16:50:10:337] <28757> SendMsg : [0010332plug15|acetel|test11|17800|20140703164838T44408|9000400001|̸|111-1111-1111|135-722@|@| Ż絿 @|@|1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|EUQwV3C//lD815L+FoCIO34Llp7zZoo0MI8Ft9riChrpZymIPR57FEM3aHmKGqUbNhMQ2dIOgmWtXSsevXMH7YPbCotyS1LRPKylwjaGOM+gCmJpYNozOO4aHEXTpj5N07gfetd7yGFdf6wYn4I8HetHRYucB9PBim2yDRbSEIM=|cdata=lMDBCwT2LWUcm3aIA6r8h7Oi77WJ8O18gmhrRUyonul6uiW+M/8fh0OnoXpw/wPWKwS9hrZp6ecOeBmNRVC/3M8Fw/SSOQYMAYchLaz5i/4YfI+OLVh4ofT/nnJ4tyWMo1pdMJ0zWLQSGMMDVGhtA4GVlyhciob0G4MMgA2MMap//e8UGzE039PnDGGbZGSUz13ubKC5IHhkPfmOFLh4hz/yKYkEs01nZb6yEHn5PFHQE3IlOPvmpuPaDoXEJc8TSHQcNC2j8ux3QgXYKPL/NbcOXIIrjdD6ltg3ZFFqRi9gWoRWgWtwM2qr9jw/xAgVQ+3Kx2QX6WIcCVC3b9SbmdOpV8IfXa266s+lRF4tz1hR+IYo4WZE6721aMhpydy35V2iKjlxtd5OTTYfjpA9GXiAn9JLeDoFU6Zjjt4j/V8CLeeLKy9FdfVmAQOvQaMXpNaC0L1f3bZD3y9Gx2u+QqF9xy8tV/Y4jZwZHR1I1xoO+hyUqXr0MQULfvUksAQzP1VLnrj+K7Qe/SoYpOQUbKKnH3TL6bWlTx4aZq13qF8=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140703165010336921|] +INFO [2014-07-03 16:50:10:338] <28757> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-03 16:50:10:342] <28757> Socket Open OK +INFO [2014-07-03 16:50:12:51] <28757> RecvMsg Length : [000092] +INFO [2014-07-03 16:50:12:51] <28757> RecvMsg : [acetel|0610|20140703164838T44408||17800|n|Ÿ(ȣ ̻)||0100| +] +INFO [2014-07-03 16:50:12:51] <28757> Socket Close OK +INFO [2014-07-03 16:50:12:51] <28757> RecvMsg Length Check OK +INFO [2014-07-03 16:50:12:51] <28757> Send & Recv Msg End +INFO [2014-07-03 16:50:12:51] <28757> Send & Recv Msg OK +INFO [2014-07-03 16:50:12:51] <28757> Parse Msg Start +INFO [2014-07-03 16:50:12:52] <28757> card-isp RECV MSG Parsing OK +INFO [2014-07-03 16:50:12:52] <28757> Parse Msg End +INFO [2014-07-03 16:50:12:52] <28757> Msg Parsing OK +INFO [2014-07-03 16:50:12:52] <28757> card Pay Result Value [ +INFO [2014-07-03 16:50:12:52] <28757> NetCancID:AEGIS_ISP_acetel_20140703165010336921 +INFO [2014-07-03 16:50:12:52] <28757> rStoreId:acetel +INFO [2014-07-03 16:50:12:52] <28757> rBusiCd:0610 +INFO [2014-07-03 16:50:12:52] <28757> rOrdNo:20140703164838T44408 +INFO [2014-07-03 16:50:12:52] <28757> rDealNo:20140703164838T44408 +INFO [2014-07-03 16:50:12:52] <28757> rApprNo: +INFO [2014-07-03 16:50:12:52] <28757> rProdNm:ũ 帲 +INFO [2014-07-03 16:50:12:52] <28757> rAmt:17800 +INFO [2014-07-03 16:50:12:52] <28757> rInstmt:00 +INFO [2014-07-03 16:50:12:52] <28757> rSuccYn:n +INFO [2014-07-03 16:50:12:52] <28757> rResMsg:Ÿ(ȣ ̻) +INFO [2014-07-03 16:50:12:52] <28757> rApprTm: +INFO [2014-07-03 16:50:12:52] <28757> rCardCd:0100 +INFO [2014-07-03 16:50:12:52] <28757> ] +INFO [2014-07-03 16:50:12:52] <28757> END Ÿ(ȣ ̻) Transaction time:[1.719sec] +INFO [2014-07-03 16:50:12:52] <28757> =============================================================== +INFO [2014-07-03 16:57:52:301] <29457> =============================================================== +INFO [2014-07-03 16:57:52:301] <29457> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-03 16:57:52:301] <29457> card Pay Start! +INFO [2014-07-03 16:57:52:301] <29457> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-03 16:57:52:301] <29457> StoreId:acetel +INFO [2014-07-03 16:57:52:301] <29457> log:true +INFO [2014-07-03 16:57:52:301] <29457> logLevel:INFO +INFO [2014-07-03 16:57:52:301] <29457> UseNetCancel:true +INFO [2014-07-03 16:57:52:301] <29457> Type:Pay +INFO [2014-07-03 16:57:52:301] <29457> RecvLen:7 +INFO [2014-07-03 16:57:52:301] <29457> AuthTy:card +INFO [2014-07-03 16:57:52:301] <29457> SubTy:isp +INFO [2014-07-03 16:57:52:302] <29457> OrdNo:20140703165309T25500 +INFO [2014-07-03 16:57:52:302] <29457> Amt:17800 +INFO [2014-07-03 16:57:52:302] <29457> UserEmail:test@empal.com +INFO [2014-07-03 16:57:52:302] <29457> ProdNm:ũ 帲 +INFO [2014-07-03 16:57:52:302] <29457> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-03 16:57:52:302] <29457> UserId:test11 +INFO [2014-07-03 16:57:52:302] <29457> OrdNm:̸ +INFO [2014-07-03 16:57:52:302] <29457> OrdPhone:111-1111-1111 +INFO [2014-07-03 16:57:52:302] <29457> OrdAddr:135-722@|@| Ż絿 @|@|1234 +INFO [2014-07-03 16:57:52:302] <29457> RcpNm:̸ +INFO [2014-07-03 16:57:52:302] <29457> RcpPhone:111-1111-1111 +INFO [2014-07-03 16:57:52:302] <29457> DlvAddr:135-722@|@| Ż絿 @|@|1234 +INFO [2014-07-03 16:57:52:302] <29457> Remark:½Ʈ +INFO [2014-07-03 16:57:52:302] <29457> DeviId:9000400001 +INFO [2014-07-03 16:57:52:302] <29457> AuthYn:N +INFO [2014-07-03 16:57:52:302] <29457> Instmt:00 +INFO [2014-07-03 16:57:52:302] <29457> UserIp:125.131.234.203 +INFO [2014-07-03 16:57:52:302] <29457> partial_mm:00 +INFO [2014-07-03 16:57:52:302] <29457> noIntMonth: +INFO [2014-07-03 16:57:52:302] <29457> KVP_CURRENCY:WON +INFO [2014-07-03 16:57:52:302] <29457> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-03 16:57:52:303] <29457> KVP_SESSIONKEY:Bf3Jk2JYw0kJtDCpRv21OyAD2TEH8GVsQgOCWKkRSUVCcV4Mn4psZP4CkbttQZ5OJSdS0hg7GYn2zAaAKYpvL0Jua8IK6D8MBGcuura7Q0rDe5wdtBbWapDtmR2zoQEwUipRACiS+F+/5SWHJ61oMFoqRs1fhrmr7JCReDNEqE0= +INFO [2014-07-03 16:57:52:303] <29457> KVP_ENCDATA:cdata=S8zOclyxfB+iuDLuUdMzgmPIspN4QD4WMzpU1AcpHuEMiIT66HoaJhA5J4ZhmafWz4a1rXFVx6lY55ZGvdEa0u3FhoZVU1Tzx2B8I16ywOw3FHS7nuFILCDnMDZGHvro1zqTcB2jJ4PSWNctBOxzDKm5GVYaE4acFkDrV2f1zHsuaEsOfywPQd0s36123aIPdGR7vpf79L0qV7KOhXiLEUh2tCsKXo954im9i83WgpxBH0prY7RCfjxllPZf4tce4cdnhaeKWowxIyAHlII5zZH4CAMdroU4TRv6nySX+OSe6T7qdHKxQqJHLwMT2g8RWHmfmyi4cMjBnGab4/LPY7yb3bHDlUv7EZvrFVcfEhjm+5p+jo6KGrQTyKG//aQnroPDHatJV36oxM6ML0rdn1l49EsnAtKmBCLbDsR1ZRy8qdfsT1hSu4MGvueE43SKNrj+CeiuruGvgHohTK5p4/EoAsYRzLtm5Gkrk+WyZ2P9PAmrks2NflSfNzOWMb7KDsS6oyAw5kCl8yVfEDmj443smfEBsUYyiuP1k4tRMY4= +INFO [2014-07-03 16:57:52:303] <29457> KVP_CONAME: +INFO [2014-07-03 16:57:52:303] <29457> KVP_NOINT:0 +INFO [2014-07-03 16:57:52:303] <29457> KVP_QUOTA:00 +INFO [2014-07-03 16:57:52:303] <29457> CardNo: +INFO [2014-07-03 16:57:52:303] <29457> MPI_CAVV: +INFO [2014-07-03 16:57:52:303] <29457> MPI_ECI: +INFO [2014-07-03 16:57:52:303] <29457> MPI_MD64: +INFO [2014-07-03 16:57:52:303] <29457> ExpMon: +INFO [2014-07-03 16:57:52:303] <29457> ExpYear: +INFO [2014-07-03 16:57:52:303] <29457> Passwd: +INFO [2014-07-03 16:57:52:303] <29457> SocId: +INFO [2014-07-03 16:57:52:303] <29457> HP_SERVERINFO: +INFO [2014-07-03 16:57:52:303] <29457> HP_HANDPHONE: +INFO [2014-07-03 16:57:52:303] <29457> HP_COMPANY: +INFO [2014-07-03 16:57:52:303] <29457> HP_ID: +INFO [2014-07-03 16:57:52:303] <29457> HP_SUBID: +INFO [2014-07-03 16:57:52:303] <29457> HP_UNITType: +INFO [2014-07-03 16:57:52:304] <29457> HP_IDEN: +INFO [2014-07-03 16:57:52:304] <29457> HP_IPADDR: +INFO [2014-07-03 16:57:52:304] <29457> VIRTUAL_CENTERCD: +INFO [2014-07-03 16:57:52:304] <29457> VIRTUAL_DEPODT: +INFO [2014-07-03 16:57:52:304] <29457> ZuminCode: +INFO [2014-07-03 16:57:52:304] <29457> MallPage: +INFO [2014-07-03 16:57:52:304] <29457> VIRTUAL_NO: +INFO [2014-07-03 16:57:52:304] <29457> ES_SENDNO: +INFO [2014-07-03 16:57:52:304] <29457> Column1:222-2222-2222 +INFO [2014-07-03 16:57:52:304] <29457> Column2:222-2222-2222 +INFO [2014-07-03 16:57:52:304] <29457> Column3:0@|@|cardnormal +INFO [2014-07-03 16:57:52:304] <29457> Make NetCancel ID Start +INFO [2014-07-03 16:57:52:304] <29457> AEGIS_ISP_acetel_20140703165752304455 +INFO [2014-07-03 16:57:52:304] <29457> Make NetCancel ID End +INFO [2014-07-03 16:57:52:304] <29457> Make NetCancelID OK +INFO [2014-07-03 16:57:52:304] <29457> Make Msg Start +INFO [2014-07-03 16:57:52:304] <29457> card-isp Make MSG OK +INFO [2014-07-03 16:57:52:304] <29457> Make Msg End +INFO [2014-07-03 16:57:52:305] <29457> Make Pay Msg OK +INFO [2014-07-03 16:57:52:305] <29457> Send & Recv Msg Start +INFO [2014-07-03 16:57:52:305] <29457> Send Data To PG Start [ +INFO [2014-07-03 16:57:52:305] <29457> 0:0010332plug15 +INFO [2014-07-03 16:57:52:305] <29457> 1:acetel +INFO [2014-07-03 16:57:52:305] <29457> 2:test11 +INFO [2014-07-03 16:57:52:305] <29457> 3:17800 +INFO [2014-07-03 16:57:52:305] <29457> 4:20140703165309T25500 +INFO [2014-07-03 16:57:52:305] <29457> 5:9000400001 +INFO [2014-07-03 16:57:52:305] <29457> 6:̸ +INFO [2014-07-03 16:57:52:305] <29457> 7:111-1111-1111 +INFO [2014-07-03 16:57:52:305] <29457> 8:135-722@ +INFO [2014-07-03 16:57:52:305] <29457> 9:@ +INFO [2014-07-03 16:57:52:305] <29457> 10: Ż絿 @ +INFO [2014-07-03 16:57:52:305] <29457> 11:@ +INFO [2014-07-03 16:57:52:305] <29457> 12:1234 +INFO [2014-07-03 16:57:52:305] <29457> 13:̸ +INFO [2014-07-03 16:57:52:305] <29457> 14:111-1111-1111 +INFO [2014-07-03 16:57:52:305] <29457> 15:½Ʈ +INFO [2014-07-03 16:57:52:305] <29457> 16:ũ 帲 +INFO [2014-07-03 16:57:52:305] <29457> 17:WON +INFO [2014-07-03 16:57:52:305] <29457> 18:00 +INFO [2014-07-03 16:57:52:305] <29457> 19: +INFO [2014-07-03 16:57:52:305] <29457> 20:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-03 16:57:52:305] <29457> 21:Bf3Jk2JYw0kJtDCpRv21OyAD2TEH8GVsQgOCWKkRSUVCcV4Mn4psZP4CkbttQZ5OJSdS0hg7GYn2zAaAKYpvL0Jua8IK6D8MBGcuura7Q0rDe5wdtBbWapDtmR2zoQEwUipRACiS+F+/5SWHJ61oMFoqRs1fhrmr7JCReDNEqE0= +INFO [2014-07-03 16:57:52:305] <29457> 22:cdata=S8zOclyxfB+iuDLuUdMzgmPIspN4QD4WMzpU1AcpHuEMiIT66HoaJhA5J4ZhmafWz4a1rXFVx6lY55ZGvdEa0u3FhoZVU1Tzx2B8I16ywOw3FHS7nuFILCDnMDZGHvro1zqTcB2jJ4PSWNctBOxzDKm5GVYaE4acFkDrV2f1zHsuaEsOfywPQd0s36123aIPdGR7vpf79L0qV7KOhXiLEUh2tCsKXo954im9i83WgpxBH0prY7RCfjxllPZf4tce4cdnhaeKWowxIyAHlII5zZH4CAMdroU4TRv6nySX+OSe6T7qdHKxQqJHLwMT2g8RWHmfmyi4cMjBnGab4/LPY7yb3bHDlUv7EZvrFVcfEhjm+5p+jo6KGrQTyKG//aQnroPDHatJV36oxM6ML0rdn1l49EsnAtKmBCLbDsR1ZRy8qdfsT1hSu4MGvueE43SKNrj+CeiuruGvgHohTK5p4/EoAsYRzLtm5Gkrk+WyZ2P9PAmrks2NflSfNzOWMb7KDsS6oyAw5kCl8yVfEDmj443smfEBsUYyiuP1k4tRMY4= +INFO [2014-07-03 16:57:52:305] <29457> 23: +INFO [2014-07-03 16:57:52:305] <29457> 24:125.131.234.203 +INFO [2014-07-03 16:57:52:305] <29457> 25:test@empal.com +INFO [2014-07-03 16:57:52:305] <29457> 26:AEGIS_ISP_acetel_20140703165752304455 +INFO [2014-07-03 16:57:52:305] <29457> 27: +INFO [2014-07-03 16:57:52:305] <29457> ] Send Data To PG End +INFO [2014-07-03 16:57:52:305] <29457> SendMsg : [0010332plug15|acetel|test11|17800|20140703165309T25500|9000400001|̸|111-1111-1111|135-722@|@| Ż絿 @|@|1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|Bf3Jk2JYw0kJtDCpRv21OyAD2TEH8GVsQgOCWKkRSUVCcV4Mn4psZP4CkbttQZ5OJSdS0hg7GYn2zAaAKYpvL0Jua8IK6D8MBGcuura7Q0rDe5wdtBbWapDtmR2zoQEwUipRACiS+F+/5SWHJ61oMFoqRs1fhrmr7JCReDNEqE0=|cdata=S8zOclyxfB+iuDLuUdMzgmPIspN4QD4WMzpU1AcpHuEMiIT66HoaJhA5J4ZhmafWz4a1rXFVx6lY55ZGvdEa0u3FhoZVU1Tzx2B8I16ywOw3FHS7nuFILCDnMDZGHvro1zqTcB2jJ4PSWNctBOxzDKm5GVYaE4acFkDrV2f1zHsuaEsOfywPQd0s36123aIPdGR7vpf79L0qV7KOhXiLEUh2tCsKXo954im9i83WgpxBH0prY7RCfjxllPZf4tce4cdnhaeKWowxIyAHlII5zZH4CAMdroU4TRv6nySX+OSe6T7qdHKxQqJHLwMT2g8RWHmfmyi4cMjBnGab4/LPY7yb3bHDlUv7EZvrFVcfEhjm+5p+jo6KGrQTyKG//aQnroPDHatJV36oxM6ML0rdn1l49EsnAtKmBCLbDsR1ZRy8qdfsT1hSu4MGvueE43SKNrj+CeiuruGvgHohTK5p4/EoAsYRzLtm5Gkrk+WyZ2P9PAmrks2NflSfNzOWMb7KDsS6oyAw5kCl8yVfEDmj443smfEBsUYyiuP1k4tRMY4=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140703165752304455|] +INFO [2014-07-03 16:57:52:305] <29457> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-03 16:57:52:309] <29457> Socket Open OK +INFO [2014-07-03 16:57:53:836] <29457> RecvMsg Length : [000092] +INFO [2014-07-03 16:57:53:836] <29457> RecvMsg : [acetel|0610|20140703165309T25500||17800|n|Ÿ(ȣ ̻)||0100| +] +INFO [2014-07-03 16:57:53:836] <29457> Socket Close OK +INFO [2014-07-03 16:57:53:837] <29457> RecvMsg Length Check OK +INFO [2014-07-03 16:57:53:837] <29457> Send & Recv Msg End +INFO [2014-07-03 16:57:53:837] <29457> Send & Recv Msg OK +INFO [2014-07-03 16:57:53:837] <29457> Parse Msg Start +INFO [2014-07-03 16:57:53:837] <29457> card-isp RECV MSG Parsing OK +INFO [2014-07-03 16:57:53:837] <29457> Parse Msg End +INFO [2014-07-03 16:57:53:837] <29457> Msg Parsing OK +INFO [2014-07-03 16:57:53:837] <29457> card Pay Result Value [ +INFO [2014-07-03 16:57:53:837] <29457> NetCancID:AEGIS_ISP_acetel_20140703165752304455 +INFO [2014-07-03 16:57:53:837] <29457> rStoreId:acetel +INFO [2014-07-03 16:57:53:837] <29457> rBusiCd:0610 +INFO [2014-07-03 16:57:53:837] <29457> rOrdNo:20140703165309T25500 +INFO [2014-07-03 16:57:53:837] <29457> rDealNo:20140703165309T25500 +INFO [2014-07-03 16:57:53:837] <29457> rApprNo: +INFO [2014-07-03 16:57:53:837] <29457> rProdNm:ũ 帲 +INFO [2014-07-03 16:57:53:837] <29457> rAmt:17800 +INFO [2014-07-03 16:57:53:837] <29457> rInstmt:00 +INFO [2014-07-03 16:57:53:837] <29457> rSuccYn:n +INFO [2014-07-03 16:57:53:837] <29457> rResMsg:Ÿ(ȣ ̻) +INFO [2014-07-03 16:57:53:838] <29457> rApprTm: +INFO [2014-07-03 16:57:53:838] <29457> rCardCd:0100 +INFO [2014-07-03 16:57:53:838] <29457> ] +INFO [2014-07-03 16:57:53:838] <29457> END Ÿ(ȣ ̻) Transaction time:[1.537sec] +INFO [2014-07-03 16:57:53:838] <29457> =============================================================== diff --git a/module/shop/pg/agspay_bak/log/AgsPay40_php_acetel_140704.log b/module/shop/pg/agspay_bak/log/AgsPay40_php_acetel_140704.log new file mode 100644 index 0000000..5c8647f --- /dev/null +++ b/module/shop/pg/agspay_bak/log/AgsPay40_php_acetel_140704.log @@ -0,0 +1,1541 @@ +INFO [2014-07-04 09:38:45:498] <1140> =============================================================== +INFO [2014-07-04 09:38:45:498] <1140> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 09:38:45:498] <1140> card Pay Start! +INFO [2014-07-04 09:38:45:498] <1140> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 09:38:45:498] <1140> StoreId:acetel +INFO [2014-07-04 09:38:45:498] <1140> log:true +INFO [2014-07-04 09:38:45:498] <1140> logLevel:INFO +INFO [2014-07-04 09:38:45:498] <1140> UseNetCancel:true +INFO [2014-07-04 09:38:45:498] <1140> Type:Pay +INFO [2014-07-04 09:38:45:498] <1140> RecvLen:7 +INFO [2014-07-04 09:38:45:499] <1140> AuthTy:card +INFO [2014-07-04 09:38:45:499] <1140> SubTy:isp +INFO [2014-07-04 09:38:45:499] <1140> OrdNo:20140704093707T56544 +INFO [2014-07-04 09:38:45:499] <1140> Amt:17800 +INFO [2014-07-04 09:38:45:499] <1140> UserEmail:test@empal.com +INFO [2014-07-04 09:38:45:499] <1140> ProdNm:ũ 帲 +INFO [2014-07-04 09:38:45:499] <1140> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 09:38:45:499] <1140> UserId:test11 +INFO [2014-07-04 09:38:45:499] <1140> OrdNm:̸ +INFO [2014-07-04 09:38:45:499] <1140> OrdPhone:111-1111-1111 +INFO [2014-07-04 09:38:45:499] <1140> OrdAddr:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:38:45:499] <1140> RcpNm:̸ +INFO [2014-07-04 09:38:45:499] <1140> RcpPhone:111-1111-1111 +INFO [2014-07-04 09:38:45:499] <1140> DlvAddr:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:38:45:500] <1140> Remark:½Ʈ +INFO [2014-07-04 09:38:45:500] <1140> DeviId:9000400001 +INFO [2014-07-04 09:38:45:500] <1140> AuthYn:N +INFO [2014-07-04 09:38:45:500] <1140> Instmt:00 +INFO [2014-07-04 09:38:45:500] <1140> UserIp:125.131.234.203 +INFO [2014-07-04 09:38:45:500] <1140> partial_mm:00 +INFO [2014-07-04 09:38:45:500] <1140> noIntMonth: +INFO [2014-07-04 09:38:45:500] <1140> KVP_CURRENCY:WON +INFO [2014-07-04 09:38:45:500] <1140> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 09:38:45:500] <1140> KVP_SESSIONKEY:F2Gl/9Mrj/7cwW6bgccIIVv0XaD4tTFj0qlxIjL1U4EhkoAkvkxNaz2JtJ6ilH7jxjr1W14oe3il3pUPDuv59UnjWQN4aj0hAcM9YQt9IEaeI3MGtzdrQyhQY5+gWnYVj9sE1QqWs0tnit+ONN9lIYuQXLPi0HNlECcGRJ4jMFs= +INFO [2014-07-04 09:38:45:500] <1140> KVP_ENCDATA:cdata=+oqm8iZ98FNFbTN1Q8INRO/CAOE7ZRvzT+hmh9xefp6Z0vJcONbpUaa8X22VmT1u4l9vYcfJ55MD1oumXcV61wloBl6XgyLAzIc660EGc1PmslWbt2FLks7hlnV0F4x9kyK7LUNLj6Zp1yQM+4yssI50LXlxWvbamtnPpwocLnwli8S9t6ab5fKhwa26rJlhEyuwRwAIArSII0ZJVZdcWWMl87tbLFl92tvU5jfxWUJlKRvi7OGxh4QjqdhikF8jpCavvVAZGbmmxeRkTSGvy6nhnv1wtla3f1XnzK+7DD49hiZUlOohG32WyGHD2mPGtyrMxZLBGj4usYP9xZx/kxp+uotW/8A7p51/gcReGl06rFruEoplem7t8BuaQcjAfitP7rCk/ocUWXlJ8aSx0VJ6lmqZistuP7RQ7DK7lSGZngXAPYIh9NdpqzTWOjMCoJjkGBXxEkrNyFPA1bGjKaDYBB690f01D93jIe5/dU6vNP+WvYlBbWbkoUb9MtWxeFOd14XG3a8wA8V2HUBLvaWYzHSMiBt80AsAtTlsKYw= +INFO [2014-07-04 09:38:45:500] <1140> KVP_CONAME: +INFO [2014-07-04 09:38:45:500] <1140> KVP_NOINT:0 +INFO [2014-07-04 09:38:45:500] <1140> KVP_QUOTA:00 +INFO [2014-07-04 09:38:45:501] <1140> CardNo: +INFO [2014-07-04 09:38:45:501] <1140> MPI_CAVV: +INFO [2014-07-04 09:38:45:501] <1140> MPI_ECI: +INFO [2014-07-04 09:38:45:501] <1140> MPI_MD64: +INFO [2014-07-04 09:38:45:501] <1140> ExpMon: +INFO [2014-07-04 09:38:45:501] <1140> ExpYear: +INFO [2014-07-04 09:38:45:501] <1140> Passwd: +INFO [2014-07-04 09:38:45:501] <1140> SocId: +INFO [2014-07-04 09:38:45:501] <1140> HP_SERVERINFO: +INFO [2014-07-04 09:38:45:501] <1140> HP_HANDPHONE: +INFO [2014-07-04 09:38:45:501] <1140> HP_COMPANY: +INFO [2014-07-04 09:38:45:501] <1140> HP_ID: +INFO [2014-07-04 09:38:45:501] <1140> HP_SUBID: +INFO [2014-07-04 09:38:45:501] <1140> HP_UNITType: +INFO [2014-07-04 09:38:45:502] <1140> HP_IDEN: +INFO [2014-07-04 09:38:45:502] <1140> HP_IPADDR: +INFO [2014-07-04 09:38:45:502] <1140> VIRTUAL_CENTERCD: +INFO [2014-07-04 09:38:45:502] <1140> VIRTUAL_DEPODT: +INFO [2014-07-04 09:38:45:502] <1140> ZuminCode: +INFO [2014-07-04 09:38:45:502] <1140> MallPage: +INFO [2014-07-04 09:38:45:502] <1140> VIRTUAL_NO: +INFO [2014-07-04 09:38:45:502] <1140> ES_SENDNO: +INFO [2014-07-04 09:38:45:502] <1140> Column1:222-2222-2222 +INFO [2014-07-04 09:38:45:502] <1140> Column2:222-2222-2222 +INFO [2014-07-04 09:38:45:502] <1140> Column3:0---cardnormal +INFO [2014-07-04 09:38:45:502] <1140> Make NetCancel ID Start +INFO [2014-07-04 09:38:45:503] <1140> AEGIS_ISP_acetel_20140704093845502664 +INFO [2014-07-04 09:38:45:503] <1140> Make NetCancel ID End +INFO [2014-07-04 09:38:45:503] <1140> Make NetCancelID OK +INFO [2014-07-04 09:38:45:503] <1140> Make Msg Start +INFO [2014-07-04 09:38:45:503] <1140> card-isp Make MSG OK +INFO [2014-07-04 09:38:45:503] <1140> Make Msg End +INFO [2014-07-04 09:38:45:503] <1140> Make Pay Msg OK +INFO [2014-07-04 09:38:45:503] <1140> Send & Recv Msg Start +INFO [2014-07-04 09:38:45:503] <1140> Send Data To PG Start [ +INFO [2014-07-04 09:38:45:503] <1140> 0:0010312plug15 +INFO [2014-07-04 09:38:45:503] <1140> 1:acetel +INFO [2014-07-04 09:38:45:503] <1140> 2:test11 +INFO [2014-07-04 09:38:45:503] <1140> 3:17800 +INFO [2014-07-04 09:38:45:503] <1140> 4:20140704093707T56544 +INFO [2014-07-04 09:38:45:503] <1140> 5:9000400001 +INFO [2014-07-04 09:38:45:503] <1140> 6:̸ +INFO [2014-07-04 09:38:45:503] <1140> 7:111-1111-1111 +INFO [2014-07-04 09:38:45:503] <1140> 8:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:38:45:503] <1140> 9:̸ +INFO [2014-07-04 09:38:45:503] <1140> 10:111-1111-1111 +INFO [2014-07-04 09:38:45:503] <1140> 11:½Ʈ +INFO [2014-07-04 09:38:45:503] <1140> 12:ũ 帲 +INFO [2014-07-04 09:38:45:503] <1140> 13:WON +INFO [2014-07-04 09:38:45:503] <1140> 14:00 +INFO [2014-07-04 09:38:45:503] <1140> 15: +INFO [2014-07-04 09:38:45:503] <1140> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 09:38:45:503] <1140> 17:F2Gl/9Mrj/7cwW6bgccIIVv0XaD4tTFj0qlxIjL1U4EhkoAkvkxNaz2JtJ6ilH7jxjr1W14oe3il3pUPDuv59UnjWQN4aj0hAcM9YQt9IEaeI3MGtzdrQyhQY5+gWnYVj9sE1QqWs0tnit+ONN9lIYuQXLPi0HNlECcGRJ4jMFs= +INFO [2014-07-04 09:38:45:503] <1140> 18:cdata=+oqm8iZ98FNFbTN1Q8INRO/CAOE7ZRvzT+hmh9xefp6Z0vJcONbpUaa8X22VmT1u4l9vYcfJ55MD1oumXcV61wloBl6XgyLAzIc660EGc1PmslWbt2FLks7hlnV0F4x9kyK7LUNLj6Zp1yQM+4yssI50LXlxWvbamtnPpwocLnwli8S9t6ab5fKhwa26rJlhEyuwRwAIArSII0ZJVZdcWWMl87tbLFl92tvU5jfxWUJlKRvi7OGxh4QjqdhikF8jpCavvVAZGbmmxeRkTSGvy6nhnv1wtla3f1XnzK+7DD49hiZUlOohG32WyGHD2mPGtyrMxZLBGj4usYP9xZx/kxp+uotW/8A7p51/gcReGl06rFruEoplem7t8BuaQcjAfitP7rCk/ocUWXlJ8aSx0VJ6lmqZistuP7RQ7DK7lSGZngXAPYIh9NdpqzTWOjMCoJjkGBXxEkrNyFPA1bGjKaDYBB690f01D93jIe5/dU6vNP+WvYlBbWbkoUb9MtWxeFOd14XG3a8wA8V2HUBLvaWYzHSMiBt80AsAtTlsKYw= +INFO [2014-07-04 09:38:45:503] <1140> 19: +INFO [2014-07-04 09:38:45:503] <1140> 20:125.131.234.203 +INFO [2014-07-04 09:38:45:503] <1140> 21:test@empal.com +INFO [2014-07-04 09:38:45:503] <1140> 22:AEGIS_ISP_acetel_20140704093845502664 +INFO [2014-07-04 09:38:45:503] <1140> 23: +INFO [2014-07-04 09:38:45:504] <1140> ] Send Data To PG End +INFO [2014-07-04 09:38:45:504] <1140> SendMsg : [0010312plug15|acetel|test11|17800|20140704093707T56544|9000400001|̸|111-1111-1111|135-722--- Ż絿 ---1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|F2Gl/9Mrj/7cwW6bgccIIVv0XaD4tTFj0qlxIjL1U4EhkoAkvkxNaz2JtJ6ilH7jxjr1W14oe3il3pUPDuv59UnjWQN4aj0hAcM9YQt9IEaeI3MGtzdrQyhQY5+gWnYVj9sE1QqWs0tnit+ONN9lIYuQXLPi0HNlECcGRJ4jMFs=|cdata=+oqm8iZ98FNFbTN1Q8INRO/CAOE7ZRvzT+hmh9xefp6Z0vJcONbpUaa8X22VmT1u4l9vYcfJ55MD1oumXcV61wloBl6XgyLAzIc660EGc1PmslWbt2FLks7hlnV0F4x9kyK7LUNLj6Zp1yQM+4yssI50LXlxWvbamtnPpwocLnwli8S9t6ab5fKhwa26rJlhEyuwRwAIArSII0ZJVZdcWWMl87tbLFl92tvU5jfxWUJlKRvi7OGxh4QjqdhikF8jpCavvVAZGbmmxeRkTSGvy6nhnv1wtla3f1XnzK+7DD49hiZUlOohG32WyGHD2mPGtyrMxZLBGj4usYP9xZx/kxp+uotW/8A7p51/gcReGl06rFruEoplem7t8BuaQcjAfitP7rCk/ocUWXlJ8aSx0VJ6lmqZistuP7RQ7DK7lSGZngXAPYIh9NdpqzTWOjMCoJjkGBXxEkrNyFPA1bGjKaDYBB690f01D93jIe5/dU6vNP+WvYlBbWbkoUb9MtWxeFOd14XG3a8wA8V2HUBLvaWYzHSMiBt80AsAtTlsKYw=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704093845502664|] +INFO [2014-07-04 09:38:45:504] <1140> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 09:38:45:509] <1140> Socket Open OK +INFO [2014-07-04 09:38:48:76] <1140> RecvMsg Length : [000083] +INFO [2014-07-04 09:38:48:76] <1140> RecvMsg : [acetel|0610|101342|55235249|17800|y|:20140704093707T56544|20140704093851|0100| +] +INFO [2014-07-04 09:38:48:76] <1140> Socket Close OK +INFO [2014-07-04 09:38:48:76] <1140> RecvMsg Length Check OK +INFO [2014-07-04 09:38:48:76] <1140> Send & Recv Msg End +INFO [2014-07-04 09:38:48:76] <1140> Send & Recv Msg OK +INFO [2014-07-04 09:38:48:76] <1140> Parse Msg Start +INFO [2014-07-04 09:38:48:77] <1140> card-isp RECV MSG Parsing OK +INFO [2014-07-04 09:38:48:77] <1140> Parse Msg End +INFO [2014-07-04 09:38:48:77] <1140> Msg Parsing OK +INFO [2014-07-04 09:38:48:77] <1140> card Pay Result Value [ +INFO [2014-07-04 09:38:48:77] <1140> NetCancID:AEGIS_ISP_acetel_20140704093845502664 +INFO [2014-07-04 09:38:48:77] <1140> rStoreId:acetel +INFO [2014-07-04 09:38:48:77] <1140> rBusiCd:0610 +INFO [2014-07-04 09:38:48:77] <1140> rOrdNo:20140704093707T56544 +INFO [2014-07-04 09:38:48:77] <1140> rDealNo:101342 +INFO [2014-07-04 09:38:48:77] <1140> rApprNo:55235249 +INFO [2014-07-04 09:38:48:77] <1140> rProdNm:ũ 帲 +INFO [2014-07-04 09:38:48:77] <1140> rAmt:17800 +INFO [2014-07-04 09:38:48:77] <1140> rInstmt:00 +INFO [2014-07-04 09:38:48:77] <1140> rSuccYn:y +INFO [2014-07-04 09:38:48:77] <1140> rResMsg::20140704093707T56544 +INFO [2014-07-04 09:38:48:77] <1140> rApprTm:20140704093851 +INFO [2014-07-04 09:38:48:77] <1140> rCardCd:0100 +INFO [2014-07-04 09:38:48:77] <1140> ] +INFO [2014-07-04 09:38:48:77] <1140> END :20140704093707T56544 Transaction time:[2.592sec] +INFO [2014-07-04 09:38:48:77] <1140> =============================================================== +INFO [2014-07-04 09:51:02:386] <1840> =============================================================== +INFO [2014-07-04 09:51:02:386] <1840> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 09:51:02:386] <1840> card Pay Start! +INFO [2014-07-04 09:51:02:386] <1840> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 09:51:02:386] <1840> StoreId:acetel +INFO [2014-07-04 09:51:02:386] <1840> log:true +INFO [2014-07-04 09:51:02:386] <1840> logLevel:INFO +INFO [2014-07-04 09:51:02:386] <1840> UseNetCancel:true +INFO [2014-07-04 09:51:02:386] <1840> Type:Pay +INFO [2014-07-04 09:51:02:386] <1840> RecvLen:7 +INFO [2014-07-04 09:51:02:387] <1840> AuthTy:card +INFO [2014-07-04 09:51:02:387] <1840> SubTy:isp +INFO [2014-07-04 09:51:02:387] <1840> OrdNo:20140704094935T17521 +INFO [2014-07-04 09:51:02:387] <1840> Amt:27250 +INFO [2014-07-04 09:51:02:387] <1840> UserEmail:test@empal.com +INFO [2014-07-04 09:51:02:387] <1840> ProdNm: 1ǽ +INFO [2014-07-04 09:51:02:387] <1840> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 09:51:02:387] <1840> UserId:test11 +INFO [2014-07-04 09:51:02:387] <1840> OrdNm:̸ +INFO [2014-07-04 09:51:02:387] <1840> OrdPhone:111-1111-1111 +INFO [2014-07-04 09:51:02:387] <1840> OrdAddr:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:51:02:387] <1840> RcpNm:̸ +INFO [2014-07-04 09:51:02:387] <1840> RcpPhone:111-1111-1111 +INFO [2014-07-04 09:51:02:387] <1840> DlvAddr:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:51:02:387] <1840> Remark:½Ʈ +INFO [2014-07-04 09:51:02:387] <1840> DeviId:9000400001 +INFO [2014-07-04 09:51:02:388] <1840> AuthYn:N +INFO [2014-07-04 09:51:02:388] <1840> Instmt:00 +INFO [2014-07-04 09:51:02:388] <1840> UserIp:125.131.234.203 +INFO [2014-07-04 09:51:02:388] <1840> partial_mm:00 +INFO [2014-07-04 09:51:02:388] <1840> noIntMonth: +INFO [2014-07-04 09:51:02:388] <1840> KVP_CURRENCY:WON +INFO [2014-07-04 09:51:02:388] <1840> KVP_CARDCODE:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 09:51:02:388] <1840> KVP_SESSIONKEY:BbLB1oTctNN98bR+iUSri5gsAy0sxvEjA6RoX2pMTBRwkOJu4E/6R2qdj0i1YP0acccAZZnoAK2h/DEIDZSN1liTMXZ7dPsrJJBRpJKuCsxoPidwjHhi3NxvqsdHbzd1S7XahTB3WLxFz0Js/nTgIFJVztAfmiys8kdw86wxm6U= +INFO [2014-07-04 09:51:02:388] <1840> KVP_ENCDATA:cdata=oUe7RyHlBDqdhfyubeX123UEJOe0s49tQkEZc9gzzJjjvgYacx2I4zzO8GWbPJYCtI52mvjsVUzFKX9yHtr1WjTwByoA15vlknKCi6IAyGnxasn4dZ4MJOBirBL6yekXHDtrv0XaOxa5GhygoibukjtBNAfZRBuunFU/jT/y5vcEDTDyO4SR9BL7D9wGXw6DCfxqP7tmoZ9FGpRjutJJQjXtfxFZaxosEFblevDxfOhmo05pWtkfQKZamJ+4n9WBRXQ5wMoDB9Eg5Psjpjelmy+kohi2+drRpimwjnZRo+pzlObO3ggw1bkvNqxCY4MrwAvY430hJkFGcRkpJeV916HxeUIHBt42QAGwtO7hAQGcijAWtKiK1A21gqsvETvgyRwZYqdCMsE13Bcr38QWYiyeughRM/Q46pzwitp/9p0Dv/Povbdvw0I+5R1mzdpP3szY4D4aMOT8S+MSKzF12J+Klh+egB5g80p/yddNibGIOPq0NwORcPohasCUdhWv9+mrEim8IgV7UWHdtN3sNLu8ERgimoeYflMxKOUPaxbYOSgD+N5OraL3plNOQ7w2 +INFO [2014-07-04 09:51:02:388] <1840> KVP_CONAME: +INFO [2014-07-04 09:51:02:388] <1840> KVP_NOINT:0 +INFO [2014-07-04 09:51:02:388] <1840> KVP_QUOTA:00 +INFO [2014-07-04 09:51:02:388] <1840> CardNo: +INFO [2014-07-04 09:51:02:388] <1840> MPI_CAVV: +INFO [2014-07-04 09:51:02:388] <1840> MPI_ECI: +INFO [2014-07-04 09:51:02:388] <1840> MPI_MD64: +INFO [2014-07-04 09:51:02:389] <1840> ExpMon: +INFO [2014-07-04 09:51:02:389] <1840> ExpYear: +INFO [2014-07-04 09:51:02:389] <1840> Passwd: +INFO [2014-07-04 09:51:02:389] <1840> SocId: +INFO [2014-07-04 09:51:02:389] <1840> HP_SERVERINFO: +INFO [2014-07-04 09:51:02:389] <1840> HP_HANDPHONE: +INFO [2014-07-04 09:51:02:389] <1840> HP_COMPANY: +INFO [2014-07-04 09:51:02:389] <1840> HP_ID: +INFO [2014-07-04 09:51:02:389] <1840> HP_SUBID: +INFO [2014-07-04 09:51:02:389] <1840> HP_UNITType: +INFO [2014-07-04 09:51:02:389] <1840> HP_IDEN: +INFO [2014-07-04 09:51:02:389] <1840> HP_IPADDR: +INFO [2014-07-04 09:51:02:389] <1840> VIRTUAL_CENTERCD: +INFO [2014-07-04 09:51:02:389] <1840> VIRTUAL_DEPODT: +INFO [2014-07-04 09:51:02:389] <1840> ZuminCode: +INFO [2014-07-04 09:51:02:390] <1840> MallPage: +INFO [2014-07-04 09:51:02:390] <1840> VIRTUAL_NO: +INFO [2014-07-04 09:51:02:390] <1840> ES_SENDNO: +INFO [2014-07-04 09:51:02:390] <1840> Column1:222-2222-2222 +INFO [2014-07-04 09:51:02:390] <1840> Column2:222-2222-2222 +INFO [2014-07-04 09:51:02:390] <1840> Column3:0---cardnormal +INFO [2014-07-04 09:51:02:390] <1840> Make NetCancel ID Start +INFO [2014-07-04 09:51:02:390] <1840> AEGIS_ISP_acetel_20140704095102390233 +INFO [2014-07-04 09:51:02:390] <1840> Make NetCancel ID End +INFO [2014-07-04 09:51:02:390] <1840> Make NetCancelID OK +INFO [2014-07-04 09:51:02:390] <1840> Make Msg Start +INFO [2014-07-04 09:51:02:390] <1840> card-isp Make MSG OK +INFO [2014-07-04 09:51:02:391] <1840> Make Msg End +INFO [2014-07-04 09:51:02:391] <1840> Make Pay Msg OK +INFO [2014-07-04 09:51:02:391] <1840> Send & Recv Msg Start +INFO [2014-07-04 09:51:02:391] <1840> Send Data To PG Start [ +INFO [2014-07-04 09:51:02:391] <1840> 0:0010562plug15 +INFO [2014-07-04 09:51:02:391] <1840> 1:acetel +INFO [2014-07-04 09:51:02:391] <1840> 2:test11 +INFO [2014-07-04 09:51:02:391] <1840> 3:27250 +INFO [2014-07-04 09:51:02:391] <1840> 4:20140704094935T17521 +INFO [2014-07-04 09:51:02:391] <1840> 5:9000400001 +INFO [2014-07-04 09:51:02:391] <1840> 6:̸ +INFO [2014-07-04 09:51:02:391] <1840> 7:111-1111-1111 +INFO [2014-07-04 09:51:02:391] <1840> 8:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:51:02:391] <1840> 9:̸ +INFO [2014-07-04 09:51:02:391] <1840> 10:111-1111-1111 +INFO [2014-07-04 09:51:02:391] <1840> 11:½Ʈ +INFO [2014-07-04 09:51:02:391] <1840> 12: 1ǽ +INFO [2014-07-04 09:51:02:391] <1840> 13:WON +INFO [2014-07-04 09:51:02:391] <1840> 14:00 +INFO [2014-07-04 09:51:02:391] <1840> 15: +INFO [2014-07-04 09:51:02:391] <1840> 16:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 09:51:02:391] <1840> 17:BbLB1oTctNN98bR+iUSri5gsAy0sxvEjA6RoX2pMTBRwkOJu4E/6R2qdj0i1YP0acccAZZnoAK2h/DEIDZSN1liTMXZ7dPsrJJBRpJKuCsxoPidwjHhi3NxvqsdHbzd1S7XahTB3WLxFz0Js/nTgIFJVztAfmiys8kdw86wxm6U= +INFO [2014-07-04 09:51:02:391] <1840> 18:cdata=oUe7RyHlBDqdhfyubeX123UEJOe0s49tQkEZc9gzzJjjvgYacx2I4zzO8GWbPJYCtI52mvjsVUzFKX9yHtr1WjTwByoA15vlknKCi6IAyGnxasn4dZ4MJOBirBL6yekXHDtrv0XaOxa5GhygoibukjtBNAfZRBuunFU/jT/y5vcEDTDyO4SR9BL7D9wGXw6DCfxqP7tmoZ9FGpRjutJJQjXtfxFZaxosEFblevDxfOhmo05pWtkfQKZamJ+4n9WBRXQ5wMoDB9Eg5Psjpjelmy+kohi2+drRpimwjnZRo+pzlObO3ggw1bkvNqxCY4MrwAvY430hJkFGcRkpJeV916HxeUIHBt42QAGwtO7hAQGcijAWtKiK1A21gqsvETvgyRwZYqdCMsE13Bcr38QWYiyeughRM/Q46pzwitp/9p0Dv/Povbdvw0I+5R1mzdpP3szY4D4aMOT8S+MSKzF12J+Klh+egB5g80p/yddNibGIOPq0NwORcPohasCUdhWv9+mrEim8IgV7UWHdtN3sNLu8ERgimoeYflMxKOUPaxbYOSgD+N5OraL3plNOQ7w2 +INFO [2014-07-04 09:51:02:391] <1840> 19: +INFO [2014-07-04 09:51:02:391] <1840> 20:125.131.234.203 +INFO [2014-07-04 09:51:02:391] <1840> 21:test@empal.com +INFO [2014-07-04 09:51:02:391] <1840> 22:AEGIS_ISP_acetel_20140704095102390233 +INFO [2014-07-04 09:51:02:391] <1840> 23: +INFO [2014-07-04 09:51:02:391] <1840> ] Send Data To PG End +INFO [2014-07-04 09:51:02:391] <1840> SendMsg : [0010562plug15|acetel|test11|27250|20140704094935T17521|9000400001|̸|111-1111-1111|135-722--- Ż絿 ---1234|̸|111-1111-1111|½Ʈ| 1ǽ|WON|00||000100202428681;125.131.234.203;N;;27250;;|BbLB1oTctNN98bR+iUSri5gsAy0sxvEjA6RoX2pMTBRwkOJu4E/6R2qdj0i1YP0acccAZZnoAK2h/DEIDZSN1liTMXZ7dPsrJJBRpJKuCsxoPidwjHhi3NxvqsdHbzd1S7XahTB3WLxFz0Js/nTgIFJVztAfmiys8kdw86wxm6U=|cdata=oUe7RyHlBDqdhfyubeX123UEJOe0s49tQkEZc9gzzJjjvgYacx2I4zzO8GWbPJYCtI52mvjsVUzFKX9yHtr1WjTwByoA15vlknKCi6IAyGnxasn4dZ4MJOBirBL6yekXHDtrv0XaOxa5GhygoibukjtBNAfZRBuunFU/jT/y5vcEDTDyO4SR9BL7D9wGXw6DCfxqP7tmoZ9FGpRjutJJQjXtfxFZaxosEFblevDxfOhmo05pWtkfQKZamJ+4n9WBRXQ5wMoDB9Eg5Psjpjelmy+kohi2+drRpimwjnZRo+pzlObO3ggw1bkvNqxCY4MrwAvY430hJkFGcRkpJeV916HxeUIHBt42QAGwtO7hAQGcijAWtKiK1A21gqsvETvgyRwZYqdCMsE13Bcr38QWYiyeughRM/Q46pzwitp/9p0Dv/Povbdvw0I+5R1mzdpP3szY4D4aMOT8S+MSKzF12J+Klh+egB5g80p/yddNibGIOPq0NwORcPohasCUdhWv9+mrEim8IgV7UWHdtN3sNLu8ERgimoeYflMxKOUPaxbYOSgD+N5OraL3plNOQ7w2||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704095102390233|] +INFO [2014-07-04 09:51:02:392] <1840> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 09:51:02:396] <1840> Socket Open OK +INFO [2014-07-04 09:51:04:899] <1840> RecvMsg Length : [000083] +INFO [2014-07-04 09:51:04:899] <1840> RecvMsg : [acetel|0610|101429|55263478|27250|y|:20140704094935T17521|20140704095014|0100| +] +INFO [2014-07-04 09:51:04:899] <1840> Socket Close OK +INFO [2014-07-04 09:51:04:899] <1840> RecvMsg Length Check OK +INFO [2014-07-04 09:51:04:899] <1840> Send & Recv Msg End +INFO [2014-07-04 09:51:04:899] <1840> Send & Recv Msg OK +INFO [2014-07-04 09:51:04:899] <1840> Parse Msg Start +INFO [2014-07-04 09:51:04:899] <1840> card-isp RECV MSG Parsing OK +INFO [2014-07-04 09:51:04:899] <1840> Parse Msg End +INFO [2014-07-04 09:51:04:899] <1840> Msg Parsing OK +INFO [2014-07-04 09:51:04:900] <1840> card Pay Result Value [ +INFO [2014-07-04 09:51:04:900] <1840> NetCancID:AEGIS_ISP_acetel_20140704095102390233 +INFO [2014-07-04 09:51:04:900] <1840> rStoreId:acetel +INFO [2014-07-04 09:51:04:900] <1840> rBusiCd:0610 +INFO [2014-07-04 09:51:04:900] <1840> rOrdNo:20140704094935T17521 +INFO [2014-07-04 09:51:04:900] <1840> rDealNo:101429 +INFO [2014-07-04 09:51:04:900] <1840> rApprNo:55263478 +INFO [2014-07-04 09:51:04:900] <1840> rProdNm: 1ǽ +INFO [2014-07-04 09:51:04:900] <1840> rAmt:27250 +INFO [2014-07-04 09:51:04:900] <1840> rInstmt:00 +INFO [2014-07-04 09:51:04:900] <1840> rSuccYn:y +INFO [2014-07-04 09:51:04:900] <1840> rResMsg::20140704094935T17521 +INFO [2014-07-04 09:51:04:900] <1840> rApprTm:20140704095014 +INFO [2014-07-04 09:51:04:900] <1840> rCardCd:0100 +INFO [2014-07-04 09:51:04:901] <1840> ] +INFO [2014-07-04 09:51:04:901] <1840> END :20140704094935T17521 Transaction time:[2.515sec] +INFO [2014-07-04 09:51:04:901] <1840> =============================================================== +INFO [2014-07-04 09:53:23:731] <2552> =============================================================== +INFO [2014-07-04 09:53:23:731] <2552> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 09:53:23:731] <2552> card Pay Start! +INFO [2014-07-04 09:53:23:731] <2552> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 09:53:23:731] <2552> StoreId:acetel +INFO [2014-07-04 09:53:23:731] <2552> log:true +INFO [2014-07-04 09:53:23:731] <2552> logLevel:INFO +INFO [2014-07-04 09:53:23:731] <2552> UseNetCancel:true +INFO [2014-07-04 09:53:23:731] <2552> Type:Pay +INFO [2014-07-04 09:53:23:731] <2552> RecvLen:7 +INFO [2014-07-04 09:53:23:731] <2552> AuthTy:card +INFO [2014-07-04 09:53:23:732] <2552> SubTy:isp +INFO [2014-07-04 09:53:23:732] <2552> OrdNo:20140704094935T17521 +INFO [2014-07-04 09:53:23:732] <2552> Amt:27250 +INFO [2014-07-04 09:53:23:732] <2552> UserEmail:test@empal.com +INFO [2014-07-04 09:53:23:732] <2552> ProdNm: 1ǽ +INFO [2014-07-04 09:53:23:732] <2552> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 09:53:23:732] <2552> UserId:test11 +INFO [2014-07-04 09:53:23:732] <2552> OrdNm:̸ +INFO [2014-07-04 09:53:23:732] <2552> OrdPhone:111-1111-1111 +INFO [2014-07-04 09:53:23:732] <2552> OrdAddr:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:53:23:732] <2552> RcpNm:̸ +INFO [2014-07-04 09:53:23:732] <2552> RcpPhone:111-1111-1111 +INFO [2014-07-04 09:53:23:732] <2552> DlvAddr:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:53:23:732] <2552> Remark:½Ʈ +INFO [2014-07-04 09:53:23:732] <2552> DeviId:9000400001 +INFO [2014-07-04 09:53:23:732] <2552> AuthYn:N +INFO [2014-07-04 09:53:23:732] <2552> Instmt:00 +INFO [2014-07-04 09:53:23:732] <2552> UserIp:125.131.234.203 +INFO [2014-07-04 09:53:23:732] <2552> partial_mm:00 +INFO [2014-07-04 09:53:23:733] <2552> noIntMonth: +INFO [2014-07-04 09:53:23:733] <2552> KVP_CURRENCY:WON +INFO [2014-07-04 09:53:23:733] <2552> KVP_CARDCODE:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 09:53:23:733] <2552> KVP_SESSIONKEY:BbLB1oTctNN98bR+iUSri5gsAy0sxvEjA6RoX2pMTBRwkOJu4E/6R2qdj0i1YP0acccAZZnoAK2h/DEIDZSN1liTMXZ7dPsrJJBRpJKuCsxoPidwjHhi3NxvqsdHbzd1S7XahTB3WLxFz0Js/nTgIFJVztAfmiys8kdw86wxm6U= +INFO [2014-07-04 09:53:23:733] <2552> KVP_ENCDATA:cdata=oUe7RyHlBDqdhfyubeX123UEJOe0s49tQkEZc9gzzJjjvgYacx2I4zzO8GWbPJYCtI52mvjsVUzFKX9yHtr1WjTwByoA15vlknKCi6IAyGnxasn4dZ4MJOBirBL6yekXHDtrv0XaOxa5GhygoibukjtBNAfZRBuunFU/jT/y5vcEDTDyO4SR9BL7D9wGXw6DCfxqP7tmoZ9FGpRjutJJQjXtfxFZaxosEFblevDxfOhmo05pWtkfQKZamJ+4n9WBRXQ5wMoDB9Eg5Psjpjelmy+kohi2+drRpimwjnZRo+pzlObO3ggw1bkvNqxCY4MrwAvY430hJkFGcRkpJeV916HxeUIHBt42QAGwtO7hAQGcijAWtKiK1A21gqsvETvgyRwZYqdCMsE13Bcr38QWYiyeughRM/Q46pzwitp/9p0Dv/Povbdvw0I+5R1mzdpP3szY4D4aMOT8S+MSKzF12J+Klh+egB5g80p/yddNibGIOPq0NwORcPohasCUdhWv9+mrEim8IgV7UWHdtN3sNLu8ERgimoeYflMxKOUPaxbYOSgD+N5OraL3plNOQ7w2 +INFO [2014-07-04 09:53:23:733] <2552> KVP_CONAME: +INFO [2014-07-04 09:53:23:733] <2552> KVP_NOINT:0 +INFO [2014-07-04 09:53:23:733] <2552> KVP_QUOTA:00 +INFO [2014-07-04 09:53:23:733] <2552> CardNo: +INFO [2014-07-04 09:53:23:733] <2552> MPI_CAVV: +INFO [2014-07-04 09:53:23:733] <2552> MPI_ECI: +INFO [2014-07-04 09:53:23:733] <2552> MPI_MD64: +INFO [2014-07-04 09:53:23:733] <2552> ExpMon: +INFO [2014-07-04 09:53:23:733] <2552> ExpYear: +INFO [2014-07-04 09:53:23:734] <2552> Passwd: +INFO [2014-07-04 09:53:23:734] <2552> SocId: +INFO [2014-07-04 09:53:23:734] <2552> HP_SERVERINFO: +INFO [2014-07-04 09:53:23:734] <2552> HP_HANDPHONE: +INFO [2014-07-04 09:53:23:734] <2552> HP_COMPANY: +INFO [2014-07-04 09:53:23:734] <2552> HP_ID: +INFO [2014-07-04 09:53:23:734] <2552> HP_SUBID: +INFO [2014-07-04 09:53:23:734] <2552> HP_UNITType: +INFO [2014-07-04 09:53:23:734] <2552> HP_IDEN: +INFO [2014-07-04 09:53:23:734] <2552> HP_IPADDR: +INFO [2014-07-04 09:53:23:734] <2552> VIRTUAL_CENTERCD: +INFO [2014-07-04 09:53:23:734] <2552> VIRTUAL_DEPODT: +INFO [2014-07-04 09:53:23:734] <2552> ZuminCode: +INFO [2014-07-04 09:53:23:734] <2552> MallPage: +INFO [2014-07-04 09:53:23:734] <2552> VIRTUAL_NO: +INFO [2014-07-04 09:53:23:734] <2552> ES_SENDNO: +INFO [2014-07-04 09:53:23:735] <2552> Column1:222-2222-2222 +INFO [2014-07-04 09:53:23:735] <2552> Column2:222-2222-2222 +INFO [2014-07-04 09:53:23:735] <2552> Column3:0---cardnormal +INFO [2014-07-04 09:53:23:735] <2552> Make NetCancel ID Start +INFO [2014-07-04 09:53:23:735] <2552> AEGIS_ISP_acetel_20140704095323735921 +INFO [2014-07-04 09:53:23:735] <2552> Make NetCancel ID End +INFO [2014-07-04 09:53:23:735] <2552> Make NetCancelID OK +INFO [2014-07-04 09:53:23:735] <2552> Make Msg Start +INFO [2014-07-04 09:53:23:735] <2552> card-isp Make MSG OK +INFO [2014-07-04 09:53:23:735] <2552> Make Msg End +INFO [2014-07-04 09:53:23:735] <2552> Make Pay Msg OK +INFO [2014-07-04 09:53:23:736] <2552> Send & Recv Msg Start +INFO [2014-07-04 09:53:23:736] <2552> Send Data To PG Start [ +INFO [2014-07-04 09:53:23:736] <2552> 0:0010562plug15 +INFO [2014-07-04 09:53:23:736] <2552> 1:acetel +INFO [2014-07-04 09:53:23:736] <2552> 2:test11 +INFO [2014-07-04 09:53:23:736] <2552> 3:27250 +INFO [2014-07-04 09:53:23:736] <2552> 4:20140704094935T17521 +INFO [2014-07-04 09:53:23:736] <2552> 5:9000400001 +INFO [2014-07-04 09:53:23:736] <2552> 6:̸ +INFO [2014-07-04 09:53:23:736] <2552> 7:111-1111-1111 +INFO [2014-07-04 09:53:23:736] <2552> 8:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:53:23:736] <2552> 9:̸ +INFO [2014-07-04 09:53:23:736] <2552> 10:111-1111-1111 +INFO [2014-07-04 09:53:23:736] <2552> 11:½Ʈ +INFO [2014-07-04 09:53:23:736] <2552> 12: 1ǽ +INFO [2014-07-04 09:53:23:736] <2552> 13:WON +INFO [2014-07-04 09:53:23:736] <2552> 14:00 +INFO [2014-07-04 09:53:23:736] <2552> 15: +INFO [2014-07-04 09:53:23:736] <2552> 16:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 09:53:23:736] <2552> 17:BbLB1oTctNN98bR+iUSri5gsAy0sxvEjA6RoX2pMTBRwkOJu4E/6R2qdj0i1YP0acccAZZnoAK2h/DEIDZSN1liTMXZ7dPsrJJBRpJKuCsxoPidwjHhi3NxvqsdHbzd1S7XahTB3WLxFz0Js/nTgIFJVztAfmiys8kdw86wxm6U= +INFO [2014-07-04 09:53:23:736] <2552> 18:cdata=oUe7RyHlBDqdhfyubeX123UEJOe0s49tQkEZc9gzzJjjvgYacx2I4zzO8GWbPJYCtI52mvjsVUzFKX9yHtr1WjTwByoA15vlknKCi6IAyGnxasn4dZ4MJOBirBL6yekXHDtrv0XaOxa5GhygoibukjtBNAfZRBuunFU/jT/y5vcEDTDyO4SR9BL7D9wGXw6DCfxqP7tmoZ9FGpRjutJJQjXtfxFZaxosEFblevDxfOhmo05pWtkfQKZamJ+4n9WBRXQ5wMoDB9Eg5Psjpjelmy+kohi2+drRpimwjnZRo+pzlObO3ggw1bkvNqxCY4MrwAvY430hJkFGcRkpJeV916HxeUIHBt42QAGwtO7hAQGcijAWtKiK1A21gqsvETvgyRwZYqdCMsE13Bcr38QWYiyeughRM/Q46pzwitp/9p0Dv/Povbdvw0I+5R1mzdpP3szY4D4aMOT8S+MSKzF12J+Klh+egB5g80p/yddNibGIOPq0NwORcPohasCUdhWv9+mrEim8IgV7UWHdtN3sNLu8ERgimoeYflMxKOUPaxbYOSgD+N5OraL3plNOQ7w2 +INFO [2014-07-04 09:53:23:736] <2552> 19: +INFO [2014-07-04 09:53:23:736] <2552> 20:125.131.234.203 +INFO [2014-07-04 09:53:23:736] <2552> 21:test@empal.com +INFO [2014-07-04 09:53:23:736] <2552> 22:AEGIS_ISP_acetel_20140704095323735921 +INFO [2014-07-04 09:53:23:736] <2552> 23: +INFO [2014-07-04 09:53:23:736] <2552> ] Send Data To PG End +INFO [2014-07-04 09:53:23:736] <2552> SendMsg : [0010562plug15|acetel|test11|27250|20140704094935T17521|9000400001|̸|111-1111-1111|135-722--- Ż絿 ---1234|̸|111-1111-1111|½Ʈ| 1ǽ|WON|00||000100202428681;125.131.234.203;N;;27250;;|BbLB1oTctNN98bR+iUSri5gsAy0sxvEjA6RoX2pMTBRwkOJu4E/6R2qdj0i1YP0acccAZZnoAK2h/DEIDZSN1liTMXZ7dPsrJJBRpJKuCsxoPidwjHhi3NxvqsdHbzd1S7XahTB3WLxFz0Js/nTgIFJVztAfmiys8kdw86wxm6U=|cdata=oUe7RyHlBDqdhfyubeX123UEJOe0s49tQkEZc9gzzJjjvgYacx2I4zzO8GWbPJYCtI52mvjsVUzFKX9yHtr1WjTwByoA15vlknKCi6IAyGnxasn4dZ4MJOBirBL6yekXHDtrv0XaOxa5GhygoibukjtBNAfZRBuunFU/jT/y5vcEDTDyO4SR9BL7D9wGXw6DCfxqP7tmoZ9FGpRjutJJQjXtfxFZaxosEFblevDxfOhmo05pWtkfQKZamJ+4n9WBRXQ5wMoDB9Eg5Psjpjelmy+kohi2+drRpimwjnZRo+pzlObO3ggw1bkvNqxCY4MrwAvY430hJkFGcRkpJeV916HxeUIHBt42QAGwtO7hAQGcijAWtKiK1A21gqsvETvgyRwZYqdCMsE13Bcr38QWYiyeughRM/Q46pzwitp/9p0Dv/Povbdvw0I+5R1mzdpP3szY4D4aMOT8S+MSKzF12J+Klh+egB5g80p/yddNibGIOPq0NwORcPohasCUdhWv9+mrEim8IgV7UWHdtN3sNLu8ERgimoeYflMxKOUPaxbYOSgD+N5OraL3plNOQ7w2||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704095323735921|] +INFO [2014-07-04 09:53:23:736] <2552> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 09:53:23:740] <2552> Socket Open OK +INFO [2014-07-04 09:53:24:834] <2552> RecvMsg Length : [000080] +INFO [2014-07-04 09:53:24:834] <2552> RecvMsg : [acetel|0610||||n|ߺ ǽɵ. (ִ 1) ٽ õϿ ֽʽÿ.||| +] +INFO [2014-07-04 09:53:24:834] <2552> Socket Close OK +INFO [2014-07-04 09:53:24:834] <2552> RecvMsg Length Check OK +INFO [2014-07-04 09:53:24:834] <2552> Send & Recv Msg End +INFO [2014-07-04 09:53:24:834] <2552> Send & Recv Msg OK +INFO [2014-07-04 09:53:24:834] <2552> Parse Msg Start +INFO [2014-07-04 09:53:24:834] <2552> card-isp RECV MSG Parsing OK +INFO [2014-07-04 09:53:24:834] <2552> Parse Msg End +INFO [2014-07-04 09:53:24:835] <2552> Msg Parsing OK +INFO [2014-07-04 09:53:24:835] <2552> card Pay Result Value [ +INFO [2014-07-04 09:53:24:835] <2552> NetCancID:AEGIS_ISP_acetel_20140704095323735921 +INFO [2014-07-04 09:53:24:835] <2552> rStoreId:acetel +INFO [2014-07-04 09:53:24:835] <2552> rBusiCd:0610 +INFO [2014-07-04 09:53:24:835] <2552> rOrdNo:20140704094935T17521 +INFO [2014-07-04 09:53:24:835] <2552> rDealNo: +INFO [2014-07-04 09:53:24:835] <2552> rApprNo: +INFO [2014-07-04 09:53:24:835] <2552> rProdNm: 1ǽ +INFO [2014-07-04 09:53:24:835] <2552> rAmt: +INFO [2014-07-04 09:53:24:835] <2552> rInstmt:00 +INFO [2014-07-04 09:53:24:835] <2552> rSuccYn:n +INFO [2014-07-04 09:53:24:835] <2552> rResMsg:ߺ ǽɵ. (ִ 1) ٽ õϿ ֽʽÿ. +INFO [2014-07-04 09:53:24:835] <2552> rApprTm: +INFO [2014-07-04 09:53:24:836] <2552> rCardCd: +INFO [2014-07-04 09:53:24:836] <2552> ] +INFO [2014-07-04 09:53:24:836] <2552> END ߺ ǽɵ. (ִ 1) ٽ õϿ ֽʽÿ. Transaction time:[1.105sec] +INFO [2014-07-04 09:53:24:836] <2552> =============================================================== +INFO [2014-07-04 10:00:24:160] <2845> =============================================================== +INFO [2014-07-04 10:00:24:160] <2845> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 10:00:24:160] <2845> card Pay Start! +INFO [2014-07-04 10:00:24:160] <2845> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 10:00:24:160] <2845> StoreId:acetel +INFO [2014-07-04 10:00:24:160] <2845> log:true +INFO [2014-07-04 10:00:24:160] <2845> logLevel:INFO +INFO [2014-07-04 10:00:24:160] <2845> UseNetCancel:true +INFO [2014-07-04 10:00:24:160] <2845> Type:Pay +INFO [2014-07-04 10:00:24:160] <2845> RecvLen:7 +INFO [2014-07-04 10:00:24:161] <2845> AuthTy:card +INFO [2014-07-04 10:00:24:161] <2845> SubTy:isp +INFO [2014-07-04 10:00:24:161] <2845> OrdNo:20140704095852T11702 +INFO [2014-07-04 10:00:24:161] <2845> Amt:27250 +INFO [2014-07-04 10:00:24:161] <2845> UserEmail:test@empal.com +INFO [2014-07-04 10:00:24:161] <2845> ProdNm: 1ǽ +INFO [2014-07-04 10:00:24:161] <2845> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 10:00:24:161] <2845> UserId:test11 +INFO [2014-07-04 10:00:24:161] <2845> OrdNm:̸ +INFO [2014-07-04 10:00:24:161] <2845> OrdPhone:111-1111-1111 +INFO [2014-07-04 10:00:24:161] <2845> OrdAddr:135-722--- +INFO [2014-07-04 10:00:24:161] <2845> RcpNm:̸ +INFO [2014-07-04 10:00:24:161] <2845> RcpPhone:111-1111-1111 +INFO [2014-07-04 10:00:24:162] <2845> DlvAddr:135-722--- Ż絿 ---1234 +INFO [2014-07-04 10:00:24:162] <2845> Remark:½Ʈ +INFO [2014-07-04 10:00:24:162] <2845> DeviId:9000400001 +INFO [2014-07-04 10:00:24:162] <2845> AuthYn:N +INFO [2014-07-04 10:00:24:162] <2845> Instmt:00 +INFO [2014-07-04 10:00:24:162] <2845> UserIp:125.131.234.203 +INFO [2014-07-04 10:00:24:162] <2845> partial_mm:00 +INFO [2014-07-04 10:00:24:162] <2845> noIntMonth: +INFO [2014-07-04 10:00:24:162] <2845> KVP_CURRENCY:WON +INFO [2014-07-04 10:00:24:162] <2845> KVP_CARDCODE:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 10:00:24:162] <2845> KVP_SESSIONKEY:G+1cszQhedJ6fLUXbhWaPX1EjsCdmdri5MaebaychUVcOBOAkN3yyDG3ilBjEKq+j/KmxMs4EUob1lrQbx6yAS4yPu4XDAVDt4v3vW+UkGY9gXtngSvureUyLruSuFrXRaU3fH40w+V0fyYm6MKAQ7oHHHYZV2QyQKWV9nKi46o= +INFO [2014-07-04 10:00:24:162] <2845> KVP_ENCDATA:cdata=2un03nQcQu8zATUaOSYb3geZo+q30iI9xsCD5DaVt44tg9K+YwevitPGDUnh18RlKwo2u+9WgqYn+ELM4D2LdsDcTVEpMJqEROImXqC3RVsFIms8bA4s32NWTH8oFDGPCVLVjHfmIY5HKZympGHARFWM0ruC2qXmutOL4UGW5PSaB0beMONTf4ikBeVhGz1Zly8xDLpzoPF/lDGl0Xt/nvdwtRzjbUZCDnxQVDpjjdxumgA4uAkHYbxQtAdy8oHkykP8HnyoEGEKw4/2DriVHiaBKMdg3ffFr5m+G9c8SpWHJ7FyvnE2PVlup5KMtlYc6ZJ7iBybFLF7OCJqEBIfbAT02jD7UOJtiLjGwVy55WFk+wE/BD07bIwfJljjBJB+P4AHngZv3g1Ziy6ttAkf0nUa3hJ9D4j1F5lXIfX5bFy/qJDMaYP7FXcWN6xgddeGL4SEUwxhD9z5fL2ajuhvQYYZQcQM6u/rbKDdUZzOO1r8SnYILIH9FJALfG2Yyg+msAvagv8pvi8TH+6HnBsQTump1WFaUoQ289Qb5KB9sE/5fpxb3IsMEMt4WSOKn0ee +INFO [2014-07-04 10:00:24:163] <2845> KVP_CONAME: +INFO [2014-07-04 10:00:24:163] <2845> KVP_NOINT:0 +INFO [2014-07-04 10:00:24:163] <2845> KVP_QUOTA:00 +INFO [2014-07-04 10:00:24:163] <2845> CardNo: +INFO [2014-07-04 10:00:24:163] <2845> MPI_CAVV: +INFO [2014-07-04 10:00:24:163] <2845> MPI_ECI: +INFO [2014-07-04 10:00:24:163] <2845> MPI_MD64: +INFO [2014-07-04 10:00:24:163] <2845> ExpMon: +INFO [2014-07-04 10:00:24:163] <2845> ExpYear: +INFO [2014-07-04 10:00:24:163] <2845> Passwd: +INFO [2014-07-04 10:00:24:163] <2845> SocId: +INFO [2014-07-04 10:00:24:164] <2845> HP_SERVERINFO: +INFO [2014-07-04 10:00:24:164] <2845> HP_HANDPHONE: +INFO [2014-07-04 10:00:24:164] <2845> HP_COMPANY: +INFO [2014-07-04 10:00:24:164] <2845> HP_ID: +INFO [2014-07-04 10:00:24:164] <2845> HP_SUBID: +INFO [2014-07-04 10:00:24:164] <2845> HP_UNITType: +INFO [2014-07-04 10:00:24:164] <2845> HP_IDEN: +INFO [2014-07-04 10:00:24:164] <2845> HP_IPADDR: +INFO [2014-07-04 10:00:24:164] <2845> VIRTUAL_CENTERCD: +INFO [2014-07-04 10:00:24:164] <2845> VIRTUAL_DEPODT: +INFO [2014-07-04 10:00:24:164] <2845> ZuminCode: +INFO [2014-07-04 10:00:24:164] <2845> MallPage: +INFO [2014-07-04 10:00:24:165] <2845> VIRTUAL_NO: +INFO [2014-07-04 10:00:24:165] <2845> ES_SENDNO: +INFO [2014-07-04 10:00:24:165] <2845> Column1:222-2222-2222 +INFO [2014-07-04 10:00:24:165] <2845> Column2:222-2222-2222 +INFO [2014-07-04 10:00:24:165] <2845> Column3:0---cardnormal +INFO [2014-07-04 10:00:24:165] <2845> Make NetCancel ID Start +INFO [2014-07-04 10:00:24:165] <2845> AEGIS_ISP_acetel_20140704100024165182 +INFO [2014-07-04 10:00:24:165] <2845> Make NetCancel ID End +INFO [2014-07-04 10:00:24:165] <2845> Make NetCancelID OK +INFO [2014-07-04 10:00:24:165] <2845> Make Msg Start +INFO [2014-07-04 10:00:24:165] <2845> card-isp Make MSG OK +INFO [2014-07-04 10:00:24:166] <2845> Make Msg End +INFO [2014-07-04 10:00:24:166] <2845> Make Pay Msg OK +INFO [2014-07-04 10:00:24:166] <2845> Send & Recv Msg Start +INFO [2014-07-04 10:00:24:166] <2845> Send Data To PG Start [ +INFO [2014-07-04 10:00:24:166] <2845> 0:0010562plug15 +INFO [2014-07-04 10:00:24:166] <2845> 1:acetel +INFO [2014-07-04 10:00:24:166] <2845> 2:test11 +INFO [2014-07-04 10:00:24:166] <2845> 3:27250 +INFO [2014-07-04 10:00:24:166] <2845> 4:20140704095852T11702 +INFO [2014-07-04 10:00:24:166] <2845> 5:9000400001 +INFO [2014-07-04 10:00:24:166] <2845> 6:̸ +INFO [2014-07-04 10:00:24:166] <2845> 7:111-1111-1111 +INFO [2014-07-04 10:00:24:166] <2845> 8:135-722--- Ż絿 ---1234 +INFO [2014-07-04 10:00:24:166] <2845> 9:̸ +INFO [2014-07-04 10:00:24:166] <2845> 10:111-1111-1111 +INFO [2014-07-04 10:00:24:166] <2845> 11:½Ʈ +INFO [2014-07-04 10:00:24:166] <2845> 12: 1ǽ +INFO [2014-07-04 10:00:24:166] <2845> 13:WON +INFO [2014-07-04 10:00:24:166] <2845> 14:00 +INFO [2014-07-04 10:00:24:166] <2845> 15: +INFO [2014-07-04 10:00:24:166] <2845> 16:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 10:00:24:166] <2845> 17:G+1cszQhedJ6fLUXbhWaPX1EjsCdmdri5MaebaychUVcOBOAkN3yyDG3ilBjEKq+j/KmxMs4EUob1lrQbx6yAS4yPu4XDAVDt4v3vW+UkGY9gXtngSvureUyLruSuFrXRaU3fH40w+V0fyYm6MKAQ7oHHHYZV2QyQKWV9nKi46o= +INFO [2014-07-04 10:00:24:166] <2845> 18:cdata=2un03nQcQu8zATUaOSYb3geZo+q30iI9xsCD5DaVt44tg9K+YwevitPGDUnh18RlKwo2u+9WgqYn+ELM4D2LdsDcTVEpMJqEROImXqC3RVsFIms8bA4s32NWTH8oFDGPCVLVjHfmIY5HKZympGHARFWM0ruC2qXmutOL4UGW5PSaB0beMONTf4ikBeVhGz1Zly8xDLpzoPF/lDGl0Xt/nvdwtRzjbUZCDnxQVDpjjdxumgA4uAkHYbxQtAdy8oHkykP8HnyoEGEKw4/2DriVHiaBKMdg3ffFr5m+G9c8SpWHJ7FyvnE2PVlup5KMtlYc6ZJ7iBybFLF7OCJqEBIfbAT02jD7UOJtiLjGwVy55WFk+wE/BD07bIwfJljjBJB+P4AHngZv3g1Ziy6ttAkf0nUa3hJ9D4j1F5lXIfX5bFy/qJDMaYP7FXcWN6xgddeGL4SEUwxhD9z5fL2ajuhvQYYZQcQM6u/rbKDdUZzOO1r8SnYILIH9FJALfG2Yyg+msAvagv8pvi8TH+6HnBsQTump1WFaUoQ289Qb5KB9sE/5fpxb3IsMEMt4WSOKn0ee +INFO [2014-07-04 10:00:24:166] <2845> 19: +INFO [2014-07-04 10:00:24:166] <2845> 20:125.131.234.203 +INFO [2014-07-04 10:00:24:166] <2845> 21:test@empal.com +INFO [2014-07-04 10:00:24:166] <2845> 22:AEGIS_ISP_acetel_20140704100024165182 +INFO [2014-07-04 10:00:24:166] <2845> 23: +INFO [2014-07-04 10:00:24:166] <2845> ] Send Data To PG End +INFO [2014-07-04 10:00:24:167] <2845> SendMsg : [0010562plug15|acetel|test11|27250|20140704095852T11702|9000400001|̸|111-1111-1111|135-722--- Ż絿 ---1234|̸|111-1111-1111|½Ʈ| 1ǽ|WON|00||000100202428681;125.131.234.203;N;;27250;;|G+1cszQhedJ6fLUXbhWaPX1EjsCdmdri5MaebaychUVcOBOAkN3yyDG3ilBjEKq+j/KmxMs4EUob1lrQbx6yAS4yPu4XDAVDt4v3vW+UkGY9gXtngSvureUyLruSuFrXRaU3fH40w+V0fyYm6MKAQ7oHHHYZV2QyQKWV9nKi46o=|cdata=2un03nQcQu8zATUaOSYb3geZo+q30iI9xsCD5DaVt44tg9K+YwevitPGDUnh18RlKwo2u+9WgqYn+ELM4D2LdsDcTVEpMJqEROImXqC3RVsFIms8bA4s32NWTH8oFDGPCVLVjHfmIY5HKZympGHARFWM0ruC2qXmutOL4UGW5PSaB0beMONTf4ikBeVhGz1Zly8xDLpzoPF/lDGl0Xt/nvdwtRzjbUZCDnxQVDpjjdxumgA4uAkHYbxQtAdy8oHkykP8HnyoEGEKw4/2DriVHiaBKMdg3ffFr5m+G9c8SpWHJ7FyvnE2PVlup5KMtlYc6ZJ7iBybFLF7OCJqEBIfbAT02jD7UOJtiLjGwVy55WFk+wE/BD07bIwfJljjBJB+P4AHngZv3g1Ziy6ttAkf0nUa3hJ9D4j1F5lXIfX5bFy/qJDMaYP7FXcWN6xgddeGL4SEUwxhD9z5fL2ajuhvQYYZQcQM6u/rbKDdUZzOO1r8SnYILIH9FJALfG2Yyg+msAvagv8pvi8TH+6HnBsQTump1WFaUoQ289Qb5KB9sE/5fpxb3IsMEMt4WSOKn0ee||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704100024165182|] +INFO [2014-07-04 10:00:24:167] <2845> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 10:00:24:170] <2845> Socket Open OK +INFO [2014-07-04 10:00:26:751] <2845> RecvMsg Length : [000083] +INFO [2014-07-04 10:00:26:751] <2845> RecvMsg : [acetel|0610|101487|55308031|27250|y|:20140704095852T11702|20140704095936|0100| +] +INFO [2014-07-04 10:00:26:751] <2845> Socket Close OK +INFO [2014-07-04 10:00:26:751] <2845> RecvMsg Length Check OK +INFO [2014-07-04 10:00:26:751] <2845> Send & Recv Msg End +INFO [2014-07-04 10:00:26:752] <2845> Send & Recv Msg OK +INFO [2014-07-04 10:00:26:752] <2845> Parse Msg Start +INFO [2014-07-04 10:00:26:752] <2845> card-isp RECV MSG Parsing OK +INFO [2014-07-04 10:00:26:752] <2845> Parse Msg End +INFO [2014-07-04 10:00:26:752] <2845> Msg Parsing OK +INFO [2014-07-04 10:00:26:752] <2845> card Pay Result Value [ +INFO [2014-07-04 10:00:26:752] <2845> NetCancID:AEGIS_ISP_acetel_20140704100024165182 +INFO [2014-07-04 10:00:26:752] <2845> rStoreId:acetel +INFO [2014-07-04 10:00:26:752] <2845> rBusiCd:0610 +INFO [2014-07-04 10:00:26:752] <2845> rOrdNo:20140704095852T11702 +INFO [2014-07-04 10:00:26:752] <2845> rDealNo:101487 +INFO [2014-07-04 10:00:26:752] <2845> rApprNo:55308031 +INFO [2014-07-04 10:00:26:752] <2845> rProdNm: 1ǽ +INFO [2014-07-04 10:00:26:752] <2845> rAmt:27250 +INFO [2014-07-04 10:00:26:752] <2845> rInstmt:00 +INFO [2014-07-04 10:00:26:752] <2845> rSuccYn:y +INFO [2014-07-04 10:00:26:752] <2845> rResMsg::20140704095852T11702 +INFO [2014-07-04 10:00:26:752] <2845> rApprTm:20140704095936 +INFO [2014-07-04 10:00:26:752] <2845> rCardCd:0100 +INFO [2014-07-04 10:00:26:752] <2845> ] +INFO [2014-07-04 10:00:26:753] <2845> END :20140704095852T11702 Transaction time:[2.593sec] +INFO [2014-07-04 10:00:26:753] <2845> =============================================================== +INFO [2014-07-04 10:19:58:44] <4097> =============================================================== +INFO [2014-07-04 10:19:58:44] <4097> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 10:19:58:44] <4097> card Pay Start! +INFO [2014-07-04 10:19:58:44] <4097> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 10:19:58:44] <4097> StoreId:acetel +INFO [2014-07-04 10:19:58:44] <4097> log:true +INFO [2014-07-04 10:19:58:44] <4097> logLevel:INFO +INFO [2014-07-04 10:19:58:44] <4097> UseNetCancel:true +INFO [2014-07-04 10:19:58:44] <4097> Type:Pay +INFO [2014-07-04 10:19:58:44] <4097> RecvLen:7 +INFO [2014-07-04 10:19:58:44] <4097> AuthTy:card +INFO [2014-07-04 10:19:58:44] <4097> SubTy:isp +INFO [2014-07-04 10:19:58:44] <4097> OrdNo:20140704100821T28749 +INFO [2014-07-04 10:19:58:45] <4097> Amt:17800 +INFO [2014-07-04 10:19:58:45] <4097> UserEmail:test@empal.com +INFO [2014-07-04 10:19:58:45] <4097> ProdNm:ũ 帲 +INFO [2014-07-04 10:19:58:45] <4097> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 10:19:58:45] <4097> UserId:test11 +INFO [2014-07-04 10:19:58:45] <4097> OrdNm:̸ +INFO [2014-07-04 10:19:58:45] <4097> OrdPhone:111-1111-1111 +INFO [2014-07-04 10:19:58:45] <4097> OrdAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:19:58:45] <4097> RcpNm:̸ +INFO [2014-07-04 10:19:58:45] <4097> RcpPhone:111-1111-1111 +INFO [2014-07-04 10:19:58:45] <4097> DlvAddr:135-722--- Ż絿 ---1234 +INFO [2014-07-04 10:19:58:45] <4097> Remark:½Ʈ +INFO [2014-07-04 10:19:58:45] <4097> DeviId:9000400001 +INFO [2014-07-04 10:19:58:45] <4097> AuthYn:N +INFO [2014-07-04 10:19:58:45] <4097> Instmt:00 +INFO [2014-07-04 10:19:58:45] <4097> UserIp:125.131.234.203 +INFO [2014-07-04 10:19:58:45] <4097> partial_mm:00 +INFO [2014-07-04 10:19:58:45] <4097> noIntMonth: +INFO [2014-07-04 10:19:58:45] <4097> KVP_CURRENCY:WON +INFO [2014-07-04 10:19:58:45] <4097> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 10:19:58:46] <4097> KVP_SESSIONKEY:DoBoULmqFTT7gyfc4vVaOF+Yc7f5y4EjYdsxpPgdAcKgtoCG7yLzSEI+Du0ZWUsomoclCAruZAAVDG7bY2PL2MWpbldb2M3gI4qQQBMAfdXdvFeqFhVN7bUvAQ7fCv3rNRA9Z1tQkPUXtSIEaxLxbN47gcoavf5K8uyttuTyNr8= +INFO [2014-07-04 10:19:58:46] <4097> KVP_ENCDATA:cdata=Ra9WoVcx0wIp6Y5+rG9nXXzNSSTgJ02i2w7OOMVhm1MLqjOAgt5HnSkjI6qZY1wZdCa6o9Br+dSuy+mXXuiGHWiAGHR2w+NhZFHeh/ysSQUg47UOGS80/rYpMYJBXIg9OpGjHwb6AjjwnI2S9ICl/2wJwAHkbx1+BVAfeqYlMIh7ndS72YdX30FWiUb9PG46ZMZiMOq9CCiaTIj8oEVwrzqCdScr+Wz1wF5hx7IVx4evCsJHKNqKBi2+1sYmtFEo1EJhW7FRGDOrKEFCtdGLfipEH/V/gkpBQ5EMGFoVxDB1kJ5oLzg+kGjrE+kggmxyyhRZtZguTfcu13S+zEnDMpT5dxblsInN3B6TY0C3cYVVx683AUBk8Iw9GfXdsjYbbZwR4B0MSris2n5wd+eo3dEOSmEB9l9qMPph765olyCX/AuuojuAJk81hwr08VfHXEzaB/bYn3D2JN+DPuJv0ql2Z3C877BX+OfkyP139zencWtS2d29V1sMBCHwJjhRsP7cAJJINEA87gvjt/vVKnl2yN0xopwur+zSzFqV1B0= +INFO [2014-07-04 10:19:58:46] <4097> KVP_CONAME: +INFO [2014-07-04 10:19:58:46] <4097> KVP_NOINT:0 +INFO [2014-07-04 10:19:58:46] <4097> KVP_QUOTA:00 +INFO [2014-07-04 10:19:58:46] <4097> CardNo: +INFO [2014-07-04 10:19:58:46] <4097> MPI_CAVV: +INFO [2014-07-04 10:19:58:46] <4097> MPI_ECI: +INFO [2014-07-04 10:19:58:46] <4097> MPI_MD64: +INFO [2014-07-04 10:19:58:46] <4097> ExpMon: +INFO [2014-07-04 10:19:58:46] <4097> ExpYear: +INFO [2014-07-04 10:19:58:46] <4097> Passwd: +INFO [2014-07-04 10:19:58:46] <4097> SocId: +INFO [2014-07-04 10:19:58:46] <4097> HP_SERVERINFO: +INFO [2014-07-04 10:19:58:46] <4097> HP_HANDPHONE: +INFO [2014-07-04 10:19:58:46] <4097> HP_COMPANY: +INFO [2014-07-04 10:19:58:46] <4097> HP_ID: +INFO [2014-07-04 10:19:58:46] <4097> HP_SUBID: +INFO [2014-07-04 10:19:58:46] <4097> HP_UNITType: +INFO [2014-07-04 10:19:58:46] <4097> HP_IDEN: +INFO [2014-07-04 10:19:58:46] <4097> HP_IPADDR: +INFO [2014-07-04 10:19:58:46] <4097> VIRTUAL_CENTERCD: +INFO [2014-07-04 10:19:58:47] <4097> VIRTUAL_DEPODT: +INFO [2014-07-04 10:19:58:47] <4097> ZuminCode: +INFO [2014-07-04 10:19:58:47] <4097> MallPage: +INFO [2014-07-04 10:19:58:47] <4097> VIRTUAL_NO: +INFO [2014-07-04 10:19:58:47] <4097> ES_SENDNO: +INFO [2014-07-04 10:19:58:47] <4097> Column1:222-2222-2222 +INFO [2014-07-04 10:19:58:47] <4097> Column2:222-2222-2222 +INFO [2014-07-04 10:19:58:47] <4097> Column3:0---cardnormal +INFO [2014-07-04 10:19:58:47] <4097> Make NetCancel ID Start +INFO [2014-07-04 10:19:58:47] <4097> AEGIS_ISP_acetel_20140704101958047102 +INFO [2014-07-04 10:19:58:47] <4097> Make NetCancel ID End +INFO [2014-07-04 10:19:58:47] <4097> Make NetCancelID OK +INFO [2014-07-04 10:19:58:47] <4097> Make Msg Start +INFO [2014-07-04 10:19:58:47] <4097> card-isp Make MSG OK +INFO [2014-07-04 10:19:58:47] <4097> Make Msg End +INFO [2014-07-04 10:19:58:47] <4097> Make Pay Msg OK +INFO [2014-07-04 10:19:58:47] <4097> Send & Recv Msg Start +INFO [2014-07-04 10:19:58:47] <4097> Send Data To PG Start [ +INFO [2014-07-04 10:19:58:48] <4097> 0:0010312plug15 +INFO [2014-07-04 10:19:58:48] <4097> 1:acetel +INFO [2014-07-04 10:19:58:48] <4097> 2:test11 +INFO [2014-07-04 10:19:58:48] <4097> 3:17800 +INFO [2014-07-04 10:19:58:48] <4097> 4:20140704100821T28749 +INFO [2014-07-04 10:19:58:48] <4097> 5:9000400001 +INFO [2014-07-04 10:19:58:48] <4097> 6:̸ +INFO [2014-07-04 10:19:58:48] <4097> 7:111-1111-1111 +INFO [2014-07-04 10:19:58:48] <4097> 8:135-722--- Ż絿 ---1234 +INFO [2014-07-04 10:19:58:48] <4097> 9:̸ +INFO [2014-07-04 10:19:58:48] <4097> 10:111-1111-1111 +INFO [2014-07-04 10:19:58:48] <4097> 11:½Ʈ +INFO [2014-07-04 10:19:58:48] <4097> 12:ũ 帲 +INFO [2014-07-04 10:19:58:48] <4097> 13:WON +INFO [2014-07-04 10:19:58:48] <4097> 14:00 +INFO [2014-07-04 10:19:58:48] <4097> 15: +INFO [2014-07-04 10:19:58:48] <4097> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 10:19:58:48] <4097> 17:DoBoULmqFTT7gyfc4vVaOF+Yc7f5y4EjYdsxpPgdAcKgtoCG7yLzSEI+Du0ZWUsomoclCAruZAAVDG7bY2PL2MWpbldb2M3gI4qQQBMAfdXdvFeqFhVN7bUvAQ7fCv3rNRA9Z1tQkPUXtSIEaxLxbN47gcoavf5K8uyttuTyNr8= +INFO [2014-07-04 10:19:58:48] <4097> 18:cdata=Ra9WoVcx0wIp6Y5+rG9nXXzNSSTgJ02i2w7OOMVhm1MLqjOAgt5HnSkjI6qZY1wZdCa6o9Br+dSuy+mXXuiGHWiAGHR2w+NhZFHeh/ysSQUg47UOGS80/rYpMYJBXIg9OpGjHwb6AjjwnI2S9ICl/2wJwAHkbx1+BVAfeqYlMIh7ndS72YdX30FWiUb9PG46ZMZiMOq9CCiaTIj8oEVwrzqCdScr+Wz1wF5hx7IVx4evCsJHKNqKBi2+1sYmtFEo1EJhW7FRGDOrKEFCtdGLfipEH/V/gkpBQ5EMGFoVxDB1kJ5oLzg+kGjrE+kggmxyyhRZtZguTfcu13S+zEnDMpT5dxblsInN3B6TY0C3cYVVx683AUBk8Iw9GfXdsjYbbZwR4B0MSris2n5wd+eo3dEOSmEB9l9qMPph765olyCX/AuuojuAJk81hwr08VfHXEzaB/bYn3D2JN+DPuJv0ql2Z3C877BX+OfkyP139zencWtS2d29V1sMBCHwJjhRsP7cAJJINEA87gvjt/vVKnl2yN0xopwur+zSzFqV1B0= +INFO [2014-07-04 10:19:58:48] <4097> 19: +INFO [2014-07-04 10:19:58:48] <4097> 20:125.131.234.203 +INFO [2014-07-04 10:19:58:48] <4097> 21:test@empal.com +INFO [2014-07-04 10:19:58:48] <4097> 22:AEGIS_ISP_acetel_20140704101958047102 +INFO [2014-07-04 10:19:58:48] <4097> 23: +INFO [2014-07-04 10:19:58:48] <4097> ] Send Data To PG End +INFO [2014-07-04 10:19:58:48] <4097> SendMsg : [0010312plug15|acetel|test11|17800|20140704100821T28749|9000400001|̸|111-1111-1111|135-722--- Ż絿 ---1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|DoBoULmqFTT7gyfc4vVaOF+Yc7f5y4EjYdsxpPgdAcKgtoCG7yLzSEI+Du0ZWUsomoclCAruZAAVDG7bY2PL2MWpbldb2M3gI4qQQBMAfdXdvFeqFhVN7bUvAQ7fCv3rNRA9Z1tQkPUXtSIEaxLxbN47gcoavf5K8uyttuTyNr8=|cdata=Ra9WoVcx0wIp6Y5+rG9nXXzNSSTgJ02i2w7OOMVhm1MLqjOAgt5HnSkjI6qZY1wZdCa6o9Br+dSuy+mXXuiGHWiAGHR2w+NhZFHeh/ysSQUg47UOGS80/rYpMYJBXIg9OpGjHwb6AjjwnI2S9ICl/2wJwAHkbx1+BVAfeqYlMIh7ndS72YdX30FWiUb9PG46ZMZiMOq9CCiaTIj8oEVwrzqCdScr+Wz1wF5hx7IVx4evCsJHKNqKBi2+1sYmtFEo1EJhW7FRGDOrKEFCtdGLfipEH/V/gkpBQ5EMGFoVxDB1kJ5oLzg+kGjrE+kggmxyyhRZtZguTfcu13S+zEnDMpT5dxblsInN3B6TY0C3cYVVx683AUBk8Iw9GfXdsjYbbZwR4B0MSris2n5wd+eo3dEOSmEB9l9qMPph765olyCX/AuuojuAJk81hwr08VfHXEzaB/bYn3D2JN+DPuJv0ql2Z3C877BX+OfkyP139zencWtS2d29V1sMBCHwJjhRsP7cAJJINEA87gvjt/vVKnl2yN0xopwur+zSzFqV1B0=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704101958047102|] +INFO [2014-07-04 10:19:58:48] <4097> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 10:19:58:55] <4097> Socket Open OK +INFO [2014-07-04 10:19:59:850] <4097> RecvMsg Length : [000083] +INFO [2014-07-04 10:19:59:851] <4097> RecvMsg : [acetel|0610|101643|55346792|17800|y|:20140704100821T28749|20140704102027|0100| +] +INFO [2014-07-04 10:19:59:851] <4097> Socket Close OK +INFO [2014-07-04 10:19:59:851] <4097> RecvMsg Length Check OK +INFO [2014-07-04 10:19:59:851] <4097> Send & Recv Msg End +INFO [2014-07-04 10:19:59:851] <4097> Send & Recv Msg OK +INFO [2014-07-04 10:19:59:851] <4097> Parse Msg Start +INFO [2014-07-04 10:19:59:851] <4097> card-isp RECV MSG Parsing OK +INFO [2014-07-04 10:19:59:851] <4097> Parse Msg End +INFO [2014-07-04 10:19:59:851] <4097> Msg Parsing OK +INFO [2014-07-04 10:19:59:851] <4097> card Pay Result Value [ +INFO [2014-07-04 10:19:59:851] <4097> NetCancID:AEGIS_ISP_acetel_20140704101958047102 +INFO [2014-07-04 10:19:59:851] <4097> rStoreId:acetel +INFO [2014-07-04 10:19:59:851] <4097> rBusiCd:0610 +INFO [2014-07-04 10:19:59:851] <4097> rOrdNo:20140704100821T28749 +INFO [2014-07-04 10:19:59:851] <4097> rDealNo:101643 +INFO [2014-07-04 10:19:59:851] <4097> rApprNo:55346792 +INFO [2014-07-04 10:19:59:851] <4097> rProdNm:ũ 帲 +INFO [2014-07-04 10:19:59:851] <4097> rAmt:17800 +INFO [2014-07-04 10:19:59:852] <4097> rInstmt:00 +INFO [2014-07-04 10:19:59:852] <4097> rSuccYn:y +INFO [2014-07-04 10:19:59:852] <4097> rResMsg::20140704100821T28749 +INFO [2014-07-04 10:19:59:852] <4097> rApprTm:20140704102027 +INFO [2014-07-04 10:19:59:852] <4097> rCardCd:0100 +INFO [2014-07-04 10:19:59:852] <4097> ] +INFO [2014-07-04 10:19:59:852] <4097> END :20140704100821T28749 Transaction time:[1.808sec] +INFO [2014-07-04 10:19:59:852] <4097> =============================================================== +INFO [2014-07-04 10:32:55:509] <5106> =============================================================== +INFO [2014-07-04 10:32:55:509] <5106> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 10:32:55:509] <5106> card Pay Start! +INFO [2014-07-04 10:32:55:509] <5106> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 10:32:55:509] <5106> StoreId:acetel +INFO [2014-07-04 10:32:55:509] <5106> log:true +INFO [2014-07-04 10:32:55:509] <5106> logLevel:INFO +INFO [2014-07-04 10:32:55:509] <5106> UseNetCancel:true +INFO [2014-07-04 10:32:55:509] <5106> Type:Pay +INFO [2014-07-04 10:32:55:509] <5106> RecvLen:7 +INFO [2014-07-04 10:32:55:509] <5106> AuthTy:card +INFO [2014-07-04 10:32:55:510] <5106> SubTy:isp +INFO [2014-07-04 10:32:55:510] <5106> OrdNo:20140704102520T60136 +INFO [2014-07-04 10:32:55:510] <5106> Amt:17800 +INFO [2014-07-04 10:32:55:510] <5106> UserEmail:test@empal.com +INFO [2014-07-04 10:32:55:510] <5106> ProdNm:핑크 드림 +INFO [2014-07-04 10:32:55:510] <5106> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 10:32:55:510] <5106> UserId:test11 +INFO [2014-07-04 10:32:55:510] <5106> OrdNm:이름 +INFO [2014-07-04 10:32:55:510] <5106> OrdPhone:111-1111-1111 +INFO [2014-07-04 10:32:55:510] <5106> OrdAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:32:55:510] <5106> RcpNm:이름 +INFO [2014-07-04 10:32:55:510] <5106> RcpPhone:111-1111-1111 +INFO [2014-07-04 10:32:55:510] <5106> DlvAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:32:55:510] <5106> Remark:태스트 +INFO [2014-07-04 10:32:55:510] <5106> DeviId:9000400001 +INFO [2014-07-04 10:32:55:510] <5106> AuthYn:N +INFO [2014-07-04 10:32:55:510] <5106> Instmt:00 +INFO [2014-07-04 10:32:55:510] <5106> UserIp:125.131.234.203 +INFO [2014-07-04 10:32:55:510] <5106> partial_mm:00 +INFO [2014-07-04 10:32:55:511] <5106> noIntMonth: +INFO [2014-07-04 10:32:55:511] <5106> KVP_CURRENCY:WON +INFO [2014-07-04 10:32:55:511] <5106> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 10:32:55:511] <5106> KVP_SESSIONKEY:DYrNi21bewnLGIFdgGerbnD4hf+mPY46EyMSYx3OS6OvgRsGiEcz+IPKYwIM0vjE66oJ8+E9hmoHH/O2IY4rTFizJRj6hfx8WzHZRS8gTlnEVyvZmsOaO5m40g9munpYesU5bZAGGnnduKoqxoLhX/eAee3T6ZW1rKn5iTGqXzU= +INFO [2014-07-04 10:32:55:511] <5106> KVP_ENCDATA:cdata=yUUE5pMVljPGT3tjs3QG0UUXR8qFK6yjvkFcRaPfb73B9l/dG1CKErcG8AYOEy91Nefmx8AOt8U3/YRZTZ1pviMdnZtI9YRxs91GtZsnQV2bN5nucExDOE6GZ2Zc+pGfCRa6Q23x6QHqRE0whFvng5/neSz/Epr4k/zwqP2LgBe/Ji/ukKn+4VrzjfstDgTT+R4oUGHYby9LZKX/PhmXnlRjGWhuobY4Wca6PF/HeQ2JpDMT6/am7l2CKmPQ8g+OYS6pyva/26sFBR9pCFwScHxsIHrRkpwVsW6U/zwgx7A+zkFT7Mu9wbRiThkebQ2Ltu0aS3PqmOn/zOWxvw5YSZeinwHtmSK6amllqxDEvdTas7kQ8EAtTTM3yuL87NUUNgg9WbwAiKU22VYN/zobPMA+venr4mDa+cg8hGfHs5fwrUJTua35+BbG2OMKTnnDXTTeGFds+OzYAy5meGqedn/LLTZSU0pDkOX2+ZANz8NsFDPufdj6ncthvGbMj9y25Yed/hM0f/tLJaWm4rMn5uA5tvF8U1vFHrSkrNE5b/4= +INFO [2014-07-04 10:32:55:511] <5106> KVP_CONAME:안전결제서비스 +INFO [2014-07-04 10:32:55:511] <5106> KVP_NOINT:0 +INFO [2014-07-04 10:32:55:511] <5106> KVP_QUOTA:00 +INFO [2014-07-04 10:32:55:511] <5106> CardNo: +INFO [2014-07-04 10:32:55:511] <5106> MPI_CAVV: +INFO [2014-07-04 10:32:55:511] <5106> MPI_ECI: +INFO [2014-07-04 10:32:55:511] <5106> MPI_MD64: +INFO [2014-07-04 10:32:55:511] <5106> ExpMon: +INFO [2014-07-04 10:32:55:512] <5106> ExpYear: +INFO [2014-07-04 10:32:55:512] <5106> Passwd: +INFO [2014-07-04 10:32:55:512] <5106> SocId: +INFO [2014-07-04 10:32:55:512] <5106> HP_SERVERINFO: +INFO [2014-07-04 10:32:55:512] <5106> HP_HANDPHONE: +INFO [2014-07-04 10:32:55:512] <5106> HP_COMPANY: +INFO [2014-07-04 10:32:55:512] <5106> HP_ID: +INFO [2014-07-04 10:32:55:512] <5106> HP_SUBID: +INFO [2014-07-04 10:32:55:512] <5106> HP_UNITType: +INFO [2014-07-04 10:32:55:512] <5106> HP_IDEN: +INFO [2014-07-04 10:32:55:512] <5106> HP_IPADDR: +INFO [2014-07-04 10:32:55:512] <5106> VIRTUAL_CENTERCD: +INFO [2014-07-04 10:32:55:512] <5106> VIRTUAL_DEPODT: +INFO [2014-07-04 10:32:55:513] <5106> ZuminCode: +INFO [2014-07-04 10:32:55:513] <5106> MallPage: +INFO [2014-07-04 10:32:55:513] <5106> VIRTUAL_NO: +INFO [2014-07-04 10:32:55:513] <5106> ES_SENDNO: +INFO [2014-07-04 10:32:55:513] <5106> Column1:222-2222-2222 +INFO [2014-07-04 10:32:55:513] <5106> Column2:222-2222-2222 +INFO [2014-07-04 10:32:55:513] <5106> Column3:0---cardnormal +INFO [2014-07-04 10:32:55:513] <5106> Make NetCancel ID Start +INFO [2014-07-04 10:32:55:513] <5106> AEGIS_ISP_acetel_20140704103255513468 +INFO [2014-07-04 10:32:55:513] <5106> Make NetCancel ID End +INFO [2014-07-04 10:32:55:513] <5106> Make NetCancelID OK +INFO [2014-07-04 10:32:55:513] <5106> Make Msg Start +INFO [2014-07-04 10:32:55:514] <5106> card-isp Make MSG OK +INFO [2014-07-04 10:32:55:514] <5106> Make Msg End +INFO [2014-07-04 10:32:55:514] <5106> Make Pay Msg OK +INFO [2014-07-04 10:32:55:514] <5106> Send & Recv Msg Start +INFO [2014-07-04 10:32:55:514] <5106> Send Data To PG Start [ +INFO [2014-07-04 10:32:55:514] <5106> 0:0010612plug15 +INFO [2014-07-04 10:32:55:514] <5106> 1:acetel +INFO [2014-07-04 10:32:55:514] <5106> 2:test11 +INFO [2014-07-04 10:32:55:514] <5106> 3:17800 +INFO [2014-07-04 10:32:55:514] <5106> 4:20140704102520T60136 +INFO [2014-07-04 10:32:55:514] <5106> 5:9000400001 +INFO [2014-07-04 10:32:55:514] <5106> 6:이름 +INFO [2014-07-04 10:32:55:514] <5106> 7:111-1111-1111 +INFO [2014-07-04 10:32:55:514] <5106> 8:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:32:55:514] <5106> 9:이름 +INFO [2014-07-04 10:32:55:514] <5106> 10:111-1111-1111 +INFO [2014-07-04 10:32:55:514] <5106> 11:태스트 +INFO [2014-07-04 10:32:55:514] <5106> 12:핑크 드림 +INFO [2014-07-04 10:32:55:514] <5106> 13:WON +INFO [2014-07-04 10:32:55:514] <5106> 14:00 +INFO [2014-07-04 10:32:55:514] <5106> 15: +INFO [2014-07-04 10:32:55:514] <5106> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 10:32:55:514] <5106> 17:DYrNi21bewnLGIFdgGerbnD4hf+mPY46EyMSYx3OS6OvgRsGiEcz+IPKYwIM0vjE66oJ8+E9hmoHH/O2IY4rTFizJRj6hfx8WzHZRS8gTlnEVyvZmsOaO5m40g9munpYesU5bZAGGnnduKoqxoLhX/eAee3T6ZW1rKn5iTGqXzU= +INFO [2014-07-04 10:32:55:514] <5106> 18:cdata=yUUE5pMVljPGT3tjs3QG0UUXR8qFK6yjvkFcRaPfb73B9l/dG1CKErcG8AYOEy91Nefmx8AOt8U3/YRZTZ1pviMdnZtI9YRxs91GtZsnQV2bN5nucExDOE6GZ2Zc+pGfCRa6Q23x6QHqRE0whFvng5/neSz/Epr4k/zwqP2LgBe/Ji/ukKn+4VrzjfstDgTT+R4oUGHYby9LZKX/PhmXnlRjGWhuobY4Wca6PF/HeQ2JpDMT6/am7l2CKmPQ8g+OYS6pyva/26sFBR9pCFwScHxsIHrRkpwVsW6U/zwgx7A+zkFT7Mu9wbRiThkebQ2Ltu0aS3PqmOn/zOWxvw5YSZeinwHtmSK6amllqxDEvdTas7kQ8EAtTTM3yuL87NUUNgg9WbwAiKU22VYN/zobPMA+venr4mDa+cg8hGfHs5fwrUJTua35+BbG2OMKTnnDXTTeGFds+OzYAy5meGqedn/LLTZSU0pDkOX2+ZANz8NsFDPufdj6ncthvGbMj9y25Yed/hM0f/tLJaWm4rMn5uA5tvF8U1vFHrSkrNE5b/4= +INFO [2014-07-04 10:32:55:514] <5106> 19:안전결제서비스 +INFO [2014-07-04 10:32:55:514] <5106> 20:125.131.234.203 +INFO [2014-07-04 10:32:55:514] <5106> 21:test@empal.com +INFO [2014-07-04 10:32:55:514] <5106> 22:AEGIS_ISP_acetel_20140704103255513468 +INFO [2014-07-04 10:32:55:514] <5106> 23: +INFO [2014-07-04 10:32:55:514] <5106> ] Send Data To PG End +INFO [2014-07-04 10:32:55:515] <5106> SendMsg : [0010612plug15|acetel|test11|17800|20140704102520T60136|9000400001|이름|111-1111-1111|135-722---서울 강남구 신사동 강남빌딩---1234|이름|111-1111-1111|태스트|핑크 드림|WON|00||000100202428681;125.131.234.203;N;;17800;;|DYrNi21bewnLGIFdgGerbnD4hf+mPY46EyMSYx3OS6OvgRsGiEcz+IPKYwIM0vjE66oJ8+E9hmoHH/O2IY4rTFizJRj6hfx8WzHZRS8gTlnEVyvZmsOaO5m40g9munpYesU5bZAGGnnduKoqxoLhX/eAee3T6ZW1rKn5iTGqXzU=|cdata=yUUE5pMVljPGT3tjs3QG0UUXR8qFK6yjvkFcRaPfb73B9l/dG1CKErcG8AYOEy91Nefmx8AOt8U3/YRZTZ1pviMdnZtI9YRxs91GtZsnQV2bN5nucExDOE6GZ2Zc+pGfCRa6Q23x6QHqRE0whFvng5/neSz/Epr4k/zwqP2LgBe/Ji/ukKn+4VrzjfstDgTT+R4oUGHYby9LZKX/PhmXnlRjGWhuobY4Wca6PF/HeQ2JpDMT6/am7l2CKmPQ8g+OYS6pyva/26sFBR9pCFwScHxsIHrRkpwVsW6U/zwgx7A+zkFT7Mu9wbRiThkebQ2Ltu0aS3PqmOn/zOWxvw5YSZeinwHtmSK6amllqxDEvdTas7kQ8EAtTTM3yuL87NUUNgg9WbwAiKU22VYN/zobPMA+venr4mDa+cg8hGfHs5fwrUJTua35+BbG2OMKTnnDXTTeGFds+OzYAy5meGqedn/LLTZSU0pDkOX2+ZANz8NsFDPufdj6ncthvGbMj9y25Yed/hM0f/tLJaWm4rMn5uA5tvF8U1vFHrSkrNE5b/4=|안전결제서비스|125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704103255513468|] +INFO [2014-07-04 10:32:55:515] <5106> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 10:32:55:519] <5106> Socket Open OK +INFO [2014-07-04 10:32:57:49] <5106> RecvMsg Length : [000083] +INFO [2014-07-04 10:32:57:49] <5106> RecvMsg : [acetel|0610|101738|55382553|17800|y|:20140704102520T60136|20140704103324|0100| +] +INFO [2014-07-04 10:32:57:49] <5106> Socket Close OK +INFO [2014-07-04 10:32:57:49] <5106> RecvMsg Length Check OK +INFO [2014-07-04 10:32:57:49] <5106> Send & Recv Msg End +INFO [2014-07-04 10:32:57:49] <5106> Send & Recv Msg OK +INFO [2014-07-04 10:32:57:49] <5106> Parse Msg Start +INFO [2014-07-04 10:32:57:49] <5106> card-isp RECV MSG Parsing OK +INFO [2014-07-04 10:32:57:49] <5106> Parse Msg End +INFO [2014-07-04 10:32:57:49] <5106> Msg Parsing OK +INFO [2014-07-04 10:32:57:50] <5106> card Pay Result Value [ +INFO [2014-07-04 10:32:57:50] <5106> NetCancID:AEGIS_ISP_acetel_20140704103255513468 +INFO [2014-07-04 10:32:57:50] <5106> rStoreId:acetel +INFO [2014-07-04 10:32:57:50] <5106> rBusiCd:0610 +INFO [2014-07-04 10:32:57:50] <5106> rOrdNo:20140704102520T60136 +INFO [2014-07-04 10:32:57:50] <5106> rDealNo:101738 +INFO [2014-07-04 10:32:57:50] <5106> rApprNo:55382553 +INFO [2014-07-04 10:32:57:50] <5106> rProdNm:핑크 드림 +INFO [2014-07-04 10:32:57:50] <5106> rAmt:17800 +INFO [2014-07-04 10:32:57:50] <5106> rInstmt:00 +INFO [2014-07-04 10:32:57:50] <5106> rSuccYn:y +INFO [2014-07-04 10:32:57:50] <5106> rResMsg::20140704102520T60136 +INFO [2014-07-04 10:32:57:50] <5106> rApprTm:20140704103324 +INFO [2014-07-04 10:32:57:50] <5106> rCardCd:0100 +INFO [2014-07-04 10:32:57:50] <5106> ] +INFO [2014-07-04 10:32:57:51] <5106> END :20140704102520T60136 Transaction time:[1.542sec] +INFO [2014-07-04 10:32:57:51] <5106> =============================================================== +INFO [2014-07-04 10:51:50:993] <7037> =============================================================== +INFO [2014-07-04 10:51:50:994] <7037> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 10:51:50:994] <7037> card Pay Start! +INFO [2014-07-04 10:51:50:994] <7037> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 10:51:50:994] <7037> StoreId:acetel +INFO [2014-07-04 10:51:50:994] <7037> log:true +INFO [2014-07-04 10:51:50:994] <7037> logLevel:INFO +INFO [2014-07-04 10:51:50:994] <7037> UseNetCancel:true +INFO [2014-07-04 10:51:50:994] <7037> Type:Pay +INFO [2014-07-04 10:51:50:994] <7037> RecvLen:7 +INFO [2014-07-04 10:51:50:994] <7037> AuthTy:card +INFO [2014-07-04 10:51:50:994] <7037> SubTy:isp +INFO [2014-07-04 10:51:50:994] <7037> OrdNo:20140704105058T75281 +INFO [2014-07-04 10:51:50:994] <7037> Amt:27250 +INFO [2014-07-04 10:51:50:994] <7037> UserEmail:test@empal.com +INFO [2014-07-04 10:51:50:994] <7037> ProdNm:로즈마리 1피스 +INFO [2014-07-04 10:51:50:995] <7037> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 10:51:50:995] <7037> UserId:test11 +INFO [2014-07-04 10:51:50:995] <7037> OrdNm:이름 +INFO [2014-07-04 10:51:50:995] <7037> OrdPhone:111-1111-1111 +INFO [2014-07-04 10:51:50:995] <7037> OrdAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:51:50:995] <7037> RcpNm:이름 +INFO [2014-07-04 10:51:50:995] <7037> RcpPhone:111-1111-1111 +INFO [2014-07-04 10:51:50:995] <7037> DlvAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:51:50:995] <7037> Remark:태스트 +INFO [2014-07-04 10:51:50:995] <7037> DeviId:9000400001 +INFO [2014-07-04 10:51:50:995] <7037> AuthYn:N +INFO [2014-07-04 10:51:50:995] <7037> Instmt:00 +INFO [2014-07-04 10:51:50:995] <7037> UserIp:125.131.234.203 +INFO [2014-07-04 10:51:50:996] <7037> partial_mm:00 +INFO [2014-07-04 10:51:50:996] <7037> noIntMonth: +INFO [2014-07-04 10:51:50:996] <7037> KVP_CURRENCY:WON +INFO [2014-07-04 10:51:50:996] <7037> KVP_CARDCODE:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 10:51:50:996] <7037> KVP_SESSIONKEY:EjCM1ayCRcvV5X0h4PfpFPatTXP9XwbaRWjGwl55oO8PRqRRzAEFmLpT79jXQsCVzg4DnWVD+yNSbVD+GpGs6cRPFmbA8gnfHkWCJqkSdhOzBdGDmYHlkqGjHQ3mzwa6y7sefhGu/gOiWoJy1VQJQcRLhGRaUYhwOGAkHW++AhM= +INFO [2014-07-04 10:51:50:996] <7037> KVP_ENCDATA:cdata=KCY7wbS/DaFmPhEPXJLXlCA8DFvfcZlARH6YIB0wZuhOm0nFi3kTiGeEug8pdsnwmvvx/gOzlb03Ex89qVwdRsjcujmiXYTNJWJtrHjJdE2iCrG3gjFVyvPSVdIFIHeQACEEEDKarapLrpE82Ktjir+saeZdu13ZbErJdZWi568fBp3zKdAl47l1oLkvkEdbyMYqEgpkCB4/TeVG6Ej9R6q8C0HbNNNHt7d5DL29OPTGcspMGb5Ako7qBF9vEyyCPZAAgIl64QSi4iSXucfMAkXjkA7TGDE00sR3fFwNBfLcfoc879JGH6CgPenew3Xk1CPaSy/19IQFhzLiZehfNkEuPLmuIzc6ZhPAr4ffLaoUKCpT28yM9YNZC/JIwB1ds/gOwMj5te+BLDLSnTmwqsqJ4RHZV2OAVfzXuLQT2KEvG+lbik45KV1FGWbyHX19Rgqzcfg5BErHmLKe5k7/0vL8Fn+Q3xRGD4JCRuTudG1bZfMuleZLUkbNQe6wNIGO0YWFUgzOqpnCUUWtZIPkzRlgy8d5JuBZkxOIP3ZCTywutTv6AFLx3Ds/CAbcj1T/ +INFO [2014-07-04 10:51:50:996] <7037> KVP_CONAME:안전결제서비스 +INFO [2014-07-04 10:51:50:996] <7037> KVP_NOINT:0 +INFO [2014-07-04 10:51:50:996] <7037> KVP_QUOTA:00 +INFO [2014-07-04 10:51:50:996] <7037> CardNo: +INFO [2014-07-04 10:51:50:996] <7037> MPI_CAVV: +INFO [2014-07-04 10:51:50:996] <7037> MPI_ECI: +INFO [2014-07-04 10:51:50:996] <7037> MPI_MD64: +INFO [2014-07-04 10:51:50:996] <7037> ExpMon: +INFO [2014-07-04 10:51:50:997] <7037> ExpYear: +INFO [2014-07-04 10:51:50:997] <7037> Passwd: +INFO [2014-07-04 10:51:50:997] <7037> SocId: +INFO [2014-07-04 10:51:50:997] <7037> HP_SERVERINFO: +INFO [2014-07-04 10:51:50:997] <7037> HP_HANDPHONE: +INFO [2014-07-04 10:51:50:997] <7037> HP_COMPANY: +INFO [2014-07-04 10:51:50:997] <7037> HP_ID: +INFO [2014-07-04 10:51:50:997] <7037> HP_SUBID: +INFO [2014-07-04 10:51:50:997] <7037> HP_UNITType: +INFO [2014-07-04 10:51:50:997] <7037> HP_IDEN: +INFO [2014-07-04 10:51:50:997] <7037> HP_IPADDR: +INFO [2014-07-04 10:51:50:997] <7037> VIRTUAL_CENTERCD: +INFO [2014-07-04 10:51:50:997] <7037> VIRTUAL_DEPODT: +INFO [2014-07-04 10:51:50:997] <7037> ZuminCode: +INFO [2014-07-04 10:51:50:997] <7037> MallPage: +INFO [2014-07-04 10:51:50:997] <7037> VIRTUAL_NO: +INFO [2014-07-04 10:51:50:997] <7037> ES_SENDNO: +INFO [2014-07-04 10:51:50:997] <7037> Column1:222-2222-2222 +INFO [2014-07-04 10:51:50:997] <7037> Column2:222-2222-2222 +INFO [2014-07-04 10:51:50:997] <7037> Column3:0---cardnormal +INFO [2014-07-04 10:51:50:998] <7037> Make NetCancel ID Start +INFO [2014-07-04 10:51:50:998] <7037> AEGIS_ISP_acetel_20140704105150998105 +INFO [2014-07-04 10:51:50:998] <7037> Make NetCancel ID End +INFO [2014-07-04 10:51:50:998] <7037> Make NetCancelID OK +INFO [2014-07-04 10:51:50:998] <7037> Make Msg Start +INFO [2014-07-04 10:51:50:998] <7037> card-isp Make MSG OK +INFO [2014-07-04 10:51:50:998] <7037> Make Msg End +INFO [2014-07-04 10:51:50:998] <7037> Make Pay Msg OK +INFO [2014-07-04 10:51:50:998] <7037> Send & Recv Msg Start +INFO [2014-07-04 10:51:50:998] <7037> Send Data To PG Start [ +INFO [2014-07-04 10:51:50:998] <7037> 0:0010882plug15 +INFO [2014-07-04 10:51:50:998] <7037> 1:acetel +INFO [2014-07-04 10:51:50:998] <7037> 2:test11 +INFO [2014-07-04 10:51:50:998] <7037> 3:27250 +INFO [2014-07-04 10:51:50:998] <7037> 4:20140704105058T75281 +INFO [2014-07-04 10:51:50:998] <7037> 5:9000400001 +INFO [2014-07-04 10:51:50:998] <7037> 6:이름 +INFO [2014-07-04 10:51:50:998] <7037> 7:111-1111-1111 +INFO [2014-07-04 10:51:50:998] <7037> 8:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:51:50:998] <7037> 9:이름 +INFO [2014-07-04 10:51:50:998] <7037> 10:111-1111-1111 +INFO [2014-07-04 10:51:50:998] <7037> 11:태스트 +INFO [2014-07-04 10:51:50:998] <7037> 12:로즈마리 1피스 +INFO [2014-07-04 10:51:50:998] <7037> 13:WON +INFO [2014-07-04 10:51:50:998] <7037> 14:00 +INFO [2014-07-04 10:51:50:998] <7037> 15: +INFO [2014-07-04 10:51:50:998] <7037> 16:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 10:51:50:998] <7037> 17:EjCM1ayCRcvV5X0h4PfpFPatTXP9XwbaRWjGwl55oO8PRqRRzAEFmLpT79jXQsCVzg4DnWVD+yNSbVD+GpGs6cRPFmbA8gnfHkWCJqkSdhOzBdGDmYHlkqGjHQ3mzwa6y7sefhGu/gOiWoJy1VQJQcRLhGRaUYhwOGAkHW++AhM= +INFO [2014-07-04 10:51:50:998] <7037> 18:cdata=KCY7wbS/DaFmPhEPXJLXlCA8DFvfcZlARH6YIB0wZuhOm0nFi3kTiGeEug8pdsnwmvvx/gOzlb03Ex89qVwdRsjcujmiXYTNJWJtrHjJdE2iCrG3gjFVyvPSVdIFIHeQACEEEDKarapLrpE82Ktjir+saeZdu13ZbErJdZWi568fBp3zKdAl47l1oLkvkEdbyMYqEgpkCB4/TeVG6Ej9R6q8C0HbNNNHt7d5DL29OPTGcspMGb5Ako7qBF9vEyyCPZAAgIl64QSi4iSXucfMAkXjkA7TGDE00sR3fFwNBfLcfoc879JGH6CgPenew3Xk1CPaSy/19IQFhzLiZehfNkEuPLmuIzc6ZhPAr4ffLaoUKCpT28yM9YNZC/JIwB1ds/gOwMj5te+BLDLSnTmwqsqJ4RHZV2OAVfzXuLQT2KEvG+lbik45KV1FGWbyHX19Rgqzcfg5BErHmLKe5k7/0vL8Fn+Q3xRGD4JCRuTudG1bZfMuleZLUkbNQe6wNIGO0YWFUgzOqpnCUUWtZIPkzRlgy8d5JuBZkxOIP3ZCTywutTv6AFLx3Ds/CAbcj1T/ +INFO [2014-07-04 10:51:50:998] <7037> 19:안전결제서비스 +INFO [2014-07-04 10:51:50:998] <7037> 20:125.131.234.203 +INFO [2014-07-04 10:51:50:998] <7037> 21:test@empal.com +INFO [2014-07-04 10:51:50:998] <7037> 22:AEGIS_ISP_acetel_20140704105150998105 +INFO [2014-07-04 10:51:50:998] <7037> 23: +INFO [2014-07-04 10:51:50:999] <7037> ] Send Data To PG End +INFO [2014-07-04 10:51:50:999] <7037> SendMsg : [0010882plug15|acetel|test11|27250|20140704105058T75281|9000400001|이름|111-1111-1111|135-722---서울 강남구 신사동 강남빌딩---1234|이름|111-1111-1111|태스트|로즈마리 1피스|WON|00||000100202428681;125.131.234.203;N;;27250;;|EjCM1ayCRcvV5X0h4PfpFPatTXP9XwbaRWjGwl55oO8PRqRRzAEFmLpT79jXQsCVzg4DnWVD+yNSbVD+GpGs6cRPFmbA8gnfHkWCJqkSdhOzBdGDmYHlkqGjHQ3mzwa6y7sefhGu/gOiWoJy1VQJQcRLhGRaUYhwOGAkHW++AhM=|cdata=KCY7wbS/DaFmPhEPXJLXlCA8DFvfcZlARH6YIB0wZuhOm0nFi3kTiGeEug8pdsnwmvvx/gOzlb03Ex89qVwdRsjcujmiXYTNJWJtrHjJdE2iCrG3gjFVyvPSVdIFIHeQACEEEDKarapLrpE82Ktjir+saeZdu13ZbErJdZWi568fBp3zKdAl47l1oLkvkEdbyMYqEgpkCB4/TeVG6Ej9R6q8C0HbNNNHt7d5DL29OPTGcspMGb5Ako7qBF9vEyyCPZAAgIl64QSi4iSXucfMAkXjkA7TGDE00sR3fFwNBfLcfoc879JGH6CgPenew3Xk1CPaSy/19IQFhzLiZehfNkEuPLmuIzc6ZhPAr4ffLaoUKCpT28yM9YNZC/JIwB1ds/gOwMj5te+BLDLSnTmwqsqJ4RHZV2OAVfzXuLQT2KEvG+lbik45KV1FGWbyHX19Rgqzcfg5BErHmLKe5k7/0vL8Fn+Q3xRGD4JCRuTudG1bZfMuleZLUkbNQe6wNIGO0YWFUgzOqpnCUUWtZIPkzRlgy8d5JuBZkxOIP3ZCTywutTv6AFLx3Ds/CAbcj1T/|안전결제서비스|125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704105150998105|] +INFO [2014-07-04 10:51:50:999] <7037> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 10:51:51:3] <7037> Socket Open OK +INFO [2014-07-04 10:51:53:861] <7037> RecvMsg Length : [000083] +INFO [2014-07-04 10:51:53:861] <7037> RecvMsg : [acetel|0610|101913|55426230|27250|y|:20140704105058T75281|20140704105157|0100| +] +INFO [2014-07-04 10:51:53:861] <7037> Socket Close OK +INFO [2014-07-04 10:51:53:861] <7037> RecvMsg Length Check OK +INFO [2014-07-04 10:51:53:861] <7037> Send & Recv Msg End +INFO [2014-07-04 10:51:53:861] <7037> Send & Recv Msg OK +INFO [2014-07-04 10:51:53:861] <7037> Parse Msg Start +INFO [2014-07-04 10:51:53:861] <7037> card-isp RECV MSG Parsing OK +INFO [2014-07-04 10:51:53:862] <7037> Parse Msg End +INFO [2014-07-04 10:51:53:862] <7037> Msg Parsing OK +INFO [2014-07-04 10:51:53:862] <7037> card Pay Result Value [ +INFO [2014-07-04 10:51:53:862] <7037> NetCancID:AEGIS_ISP_acetel_20140704105150998105 +INFO [2014-07-04 10:51:53:862] <7037> rStoreId:acetel +INFO [2014-07-04 10:51:53:862] <7037> rBusiCd:0610 +INFO [2014-07-04 10:51:53:862] <7037> rOrdNo:20140704105058T75281 +INFO [2014-07-04 10:51:53:862] <7037> rDealNo:101913 +INFO [2014-07-04 10:51:53:862] <7037> rApprNo:55426230 +INFO [2014-07-04 10:51:53:862] <7037> rProdNm:로즈마리 1피스 +INFO [2014-07-04 10:51:53:862] <7037> rAmt:27250 +INFO [2014-07-04 10:51:53:862] <7037> rInstmt:00 +INFO [2014-07-04 10:51:53:862] <7037> rSuccYn:y +INFO [2014-07-04 10:51:53:862] <7037> rResMsg::20140704105058T75281 +INFO [2014-07-04 10:51:53:863] <7037> rApprTm:20140704105157 +INFO [2014-07-04 10:51:53:863] <7037> rCardCd:0100 +INFO [2014-07-04 10:51:53:863] <7037> ] +INFO [2014-07-04 10:51:53:863] <7037> END :20140704105058T75281 Transaction time:[2.87sec] +INFO [2014-07-04 10:51:53:863] <7037> =============================================================== +INFO [2014-07-04 10:52:13:897] <7160> =============================================================== +INFO [2014-07-04 10:52:13:897] <7160> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 10:52:13:897] <7160> card Pay Start! +INFO [2014-07-04 10:52:13:897] <7160> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 10:52:13:897] <7160> StoreId:acetel +INFO [2014-07-04 10:52:13:897] <7160> log:true +INFO [2014-07-04 10:52:13:898] <7160> logLevel:INFO +INFO [2014-07-04 10:52:13:898] <7160> UseNetCancel:true +INFO [2014-07-04 10:52:13:898] <7160> Type:Pay +INFO [2014-07-04 10:52:13:898] <7160> RecvLen:7 +INFO [2014-07-04 10:52:13:898] <7160> AuthTy:card +INFO [2014-07-04 10:52:13:898] <7160> SubTy:isp +INFO [2014-07-04 10:52:13:898] <7160> OrdNo:20140704105058T75281 +INFO [2014-07-04 10:52:13:898] <7160> Amt:27250 +INFO [2014-07-04 10:52:13:898] <7160> UserEmail:test@empal.com +INFO [2014-07-04 10:52:13:898] <7160> ProdNm:로즈마리 1피스 +INFO [2014-07-04 10:52:13:898] <7160> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 10:52:13:898] <7160> UserId:test11 +INFO [2014-07-04 10:52:13:898] <7160> OrdNm:이름 +INFO [2014-07-04 10:52:13:898] <7160> OrdPhone:111-1111-1111 +INFO [2014-07-04 10:52:13:898] <7160> OrdAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:52:13:898] <7160> RcpNm:이름 +INFO [2014-07-04 10:52:13:898] <7160> RcpPhone:111-1111-1111 +INFO [2014-07-04 10:52:13:898] <7160> DlvAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:52:13:898] <7160> Remark:태스트 +INFO [2014-07-04 10:52:13:899] <7160> DeviId:9000400001 +INFO [2014-07-04 10:52:13:899] <7160> AuthYn:N +INFO [2014-07-04 10:52:13:899] <7160> Instmt:00 +INFO [2014-07-04 10:52:13:899] <7160> UserIp:125.131.234.203 +INFO [2014-07-04 10:52:13:899] <7160> partial_mm:00 +INFO [2014-07-04 10:52:13:899] <7160> noIntMonth: +INFO [2014-07-04 10:52:13:899] <7160> KVP_CURRENCY:WON +INFO [2014-07-04 10:52:13:899] <7160> KVP_CARDCODE:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 10:52:13:899] <7160> KVP_SESSIONKEY:EjCM1ayCRcvV5X0h4PfpFPatTXP9XwbaRWjGwl55oO8PRqRRzAEFmLpT79jXQsCVzg4DnWVD+yNSbVD+GpGs6cRPFmbA8gnfHkWCJqkSdhOzBdGDmYHlkqGjHQ3mzwa6y7sefhGu/gOiWoJy1VQJQcRLhGRaUYhwOGAkHW++AhM= +INFO [2014-07-04 10:52:13:899] <7160> KVP_ENCDATA:cdata=KCY7wbS/DaFmPhEPXJLXlCA8DFvfcZlARH6YIB0wZuhOm0nFi3kTiGeEug8pdsnwmvvx/gOzlb03Ex89qVwdRsjcujmiXYTNJWJtrHjJdE2iCrG3gjFVyvPSVdIFIHeQACEEEDKarapLrpE82Ktjir+saeZdu13ZbErJdZWi568fBp3zKdAl47l1oLkvkEdbyMYqEgpkCB4/TeVG6Ej9R6q8C0HbNNNHt7d5DL29OPTGcspMGb5Ako7qBF9vEyyCPZAAgIl64QSi4iSXucfMAkXjkA7TGDE00sR3fFwNBfLcfoc879JGH6CgPenew3Xk1CPaSy/19IQFhzLiZehfNkEuPLmuIzc6ZhPAr4ffLaoUKCpT28yM9YNZC/JIwB1ds/gOwMj5te+BLDLSnTmwqsqJ4RHZV2OAVfzXuLQT2KEvG+lbik45KV1FGWbyHX19Rgqzcfg5BErHmLKe5k7/0vL8Fn+Q3xRGD4JCRuTudG1bZfMuleZLUkbNQe6wNIGO0YWFUgzOqpnCUUWtZIPkzRlgy8d5JuBZkxOIP3ZCTywutTv6AFLx3Ds/CAbcj1T/ +INFO [2014-07-04 10:52:13:899] <7160> KVP_CONAME:안전결제서비스 +INFO [2014-07-04 10:52:13:899] <7160> KVP_NOINT:0 +INFO [2014-07-04 10:52:13:899] <7160> KVP_QUOTA:00 +INFO [2014-07-04 10:52:13:899] <7160> CardNo: +INFO [2014-07-04 10:52:13:899] <7160> MPI_CAVV: +INFO [2014-07-04 10:52:13:899] <7160> MPI_ECI: +INFO [2014-07-04 10:52:13:899] <7160> MPI_MD64: +INFO [2014-07-04 10:52:13:899] <7160> ExpMon: +INFO [2014-07-04 10:52:13:899] <7160> ExpYear: +INFO [2014-07-04 10:52:13:899] <7160> Passwd: +INFO [2014-07-04 10:52:13:900] <7160> SocId: +INFO [2014-07-04 10:52:13:900] <7160> HP_SERVERINFO: +INFO [2014-07-04 10:52:13:900] <7160> HP_HANDPHONE: +INFO [2014-07-04 10:52:13:900] <7160> HP_COMPANY: +INFO [2014-07-04 10:52:13:900] <7160> HP_ID: +INFO [2014-07-04 10:52:13:900] <7160> HP_SUBID: +INFO [2014-07-04 10:52:13:900] <7160> HP_UNITType: +INFO [2014-07-04 10:52:13:900] <7160> HP_IDEN: +INFO [2014-07-04 10:52:13:900] <7160> HP_IPADDR: +INFO [2014-07-04 10:52:13:900] <7160> VIRTUAL_CENTERCD: +INFO [2014-07-04 10:52:13:900] <7160> VIRTUAL_DEPODT: +INFO [2014-07-04 10:52:13:900] <7160> ZuminCode: +INFO [2014-07-04 10:52:13:900] <7160> MallPage: +INFO [2014-07-04 10:52:13:900] <7160> VIRTUAL_NO: +INFO [2014-07-04 10:52:13:900] <7160> ES_SENDNO: +INFO [2014-07-04 10:52:13:900] <7160> Column1:222-2222-2222 +INFO [2014-07-04 10:52:13:900] <7160> Column2:222-2222-2222 +INFO [2014-07-04 10:52:13:901] <7160> Column3:0---cardnormal +INFO [2014-07-04 10:52:13:901] <7160> Make NetCancel ID Start +INFO [2014-07-04 10:52:13:901] <7160> AEGIS_ISP_acetel_20140704105213901909 +INFO [2014-07-04 10:52:13:901] <7160> Make NetCancel ID End +INFO [2014-07-04 10:52:13:901] <7160> Make NetCancelID OK +INFO [2014-07-04 10:52:13:901] <7160> Make Msg Start +INFO [2014-07-04 10:52:13:901] <7160> card-isp Make MSG OK +INFO [2014-07-04 10:52:13:901] <7160> Make Msg End +INFO [2014-07-04 10:52:13:901] <7160> Make Pay Msg OK +INFO [2014-07-04 10:52:13:901] <7160> Send & Recv Msg Start +INFO [2014-07-04 10:52:13:901] <7160> Send Data To PG Start [ +INFO [2014-07-04 10:52:13:901] <7160> 0:0010882plug15 +INFO [2014-07-04 10:52:13:901] <7160> 1:acetel +INFO [2014-07-04 10:52:13:901] <7160> 2:test11 +INFO [2014-07-04 10:52:13:901] <7160> 3:27250 +INFO [2014-07-04 10:52:13:901] <7160> 4:20140704105058T75281 +INFO [2014-07-04 10:52:13:901] <7160> 5:9000400001 +INFO [2014-07-04 10:52:13:901] <7160> 6:이름 +INFO [2014-07-04 10:52:13:901] <7160> 7:111-1111-1111 +INFO [2014-07-04 10:52:13:901] <7160> 8:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:52:13:901] <7160> 9:이름 +INFO [2014-07-04 10:52:13:901] <7160> 10:111-1111-1111 +INFO [2014-07-04 10:52:13:901] <7160> 11:태스트 +INFO [2014-07-04 10:52:13:901] <7160> 12:로즈마리 1피스 +INFO [2014-07-04 10:52:13:901] <7160> 13:WON +INFO [2014-07-04 10:52:13:901] <7160> 14:00 +INFO [2014-07-04 10:52:13:901] <7160> 15: +INFO [2014-07-04 10:52:13:901] <7160> 16:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 10:52:13:901] <7160> 17:EjCM1ayCRcvV5X0h4PfpFPatTXP9XwbaRWjGwl55oO8PRqRRzAEFmLpT79jXQsCVzg4DnWVD+yNSbVD+GpGs6cRPFmbA8gnfHkWCJqkSdhOzBdGDmYHlkqGjHQ3mzwa6y7sefhGu/gOiWoJy1VQJQcRLhGRaUYhwOGAkHW++AhM= +INFO [2014-07-04 10:52:13:901] <7160> 18:cdata=KCY7wbS/DaFmPhEPXJLXlCA8DFvfcZlARH6YIB0wZuhOm0nFi3kTiGeEug8pdsnwmvvx/gOzlb03Ex89qVwdRsjcujmiXYTNJWJtrHjJdE2iCrG3gjFVyvPSVdIFIHeQACEEEDKarapLrpE82Ktjir+saeZdu13ZbErJdZWi568fBp3zKdAl47l1oLkvkEdbyMYqEgpkCB4/TeVG6Ej9R6q8C0HbNNNHt7d5DL29OPTGcspMGb5Ako7qBF9vEyyCPZAAgIl64QSi4iSXucfMAkXjkA7TGDE00sR3fFwNBfLcfoc879JGH6CgPenew3Xk1CPaSy/19IQFhzLiZehfNkEuPLmuIzc6ZhPAr4ffLaoUKCpT28yM9YNZC/JIwB1ds/gOwMj5te+BLDLSnTmwqsqJ4RHZV2OAVfzXuLQT2KEvG+lbik45KV1FGWbyHX19Rgqzcfg5BErHmLKe5k7/0vL8Fn+Q3xRGD4JCRuTudG1bZfMuleZLUkbNQe6wNIGO0YWFUgzOqpnCUUWtZIPkzRlgy8d5JuBZkxOIP3ZCTywutTv6AFLx3Ds/CAbcj1T/ +INFO [2014-07-04 10:52:13:901] <7160> 19:안전결제서비스 +INFO [2014-07-04 10:52:13:901] <7160> 20:125.131.234.203 +INFO [2014-07-04 10:52:13:901] <7160> 21:test@empal.com +INFO [2014-07-04 10:52:13:901] <7160> 22:AEGIS_ISP_acetel_20140704105213901909 +INFO [2014-07-04 10:52:13:901] <7160> 23: +INFO [2014-07-04 10:52:13:902] <7160> ] Send Data To PG End +INFO [2014-07-04 10:52:13:902] <7160> SendMsg : [0010882plug15|acetel|test11|27250|20140704105058T75281|9000400001|이름|111-1111-1111|135-722---서울 강남구 신사동 강남빌딩---1234|이름|111-1111-1111|태스트|로즈마리 1피스|WON|00||000100202428681;125.131.234.203;N;;27250;;|EjCM1ayCRcvV5X0h4PfpFPatTXP9XwbaRWjGwl55oO8PRqRRzAEFmLpT79jXQsCVzg4DnWVD+yNSbVD+GpGs6cRPFmbA8gnfHkWCJqkSdhOzBdGDmYHlkqGjHQ3mzwa6y7sefhGu/gOiWoJy1VQJQcRLhGRaUYhwOGAkHW++AhM=|cdata=KCY7wbS/DaFmPhEPXJLXlCA8DFvfcZlARH6YIB0wZuhOm0nFi3kTiGeEug8pdsnwmvvx/gOzlb03Ex89qVwdRsjcujmiXYTNJWJtrHjJdE2iCrG3gjFVyvPSVdIFIHeQACEEEDKarapLrpE82Ktjir+saeZdu13ZbErJdZWi568fBp3zKdAl47l1oLkvkEdbyMYqEgpkCB4/TeVG6Ej9R6q8C0HbNNNHt7d5DL29OPTGcspMGb5Ako7qBF9vEyyCPZAAgIl64QSi4iSXucfMAkXjkA7TGDE00sR3fFwNBfLcfoc879JGH6CgPenew3Xk1CPaSy/19IQFhzLiZehfNkEuPLmuIzc6ZhPAr4ffLaoUKCpT28yM9YNZC/JIwB1ds/gOwMj5te+BLDLSnTmwqsqJ4RHZV2OAVfzXuLQT2KEvG+lbik45KV1FGWbyHX19Rgqzcfg5BErHmLKe5k7/0vL8Fn+Q3xRGD4JCRuTudG1bZfMuleZLUkbNQe6wNIGO0YWFUgzOqpnCUUWtZIPkzRlgy8d5JuBZkxOIP3ZCTywutTv6AFLx3Ds/CAbcj1T/|안전결제서비스|125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704105213901909|] +INFO [2014-07-04 10:52:13:902] <7160> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 10:52:13:907] <7160> Socket Open OK +INFO [2014-07-04 10:52:15:176] <7160> RecvMsg Length : [000080] +INFO [2014-07-04 10:52:15:176] <7160> RecvMsg : [acetel|0610||||n|ߺ ǽɵ. (ִ 1) ٽ õϿ ֽʽÿ.||| +] +INFO [2014-07-04 10:52:15:176] <7160> Socket Close OK +INFO [2014-07-04 10:52:15:176] <7160> RecvMsg Length Check OK +INFO [2014-07-04 10:52:15:176] <7160> Send & Recv Msg End +INFO [2014-07-04 10:52:15:176] <7160> Send & Recv Msg OK +INFO [2014-07-04 10:52:15:177] <7160> Parse Msg Start +INFO [2014-07-04 10:52:15:177] <7160> card-isp RECV MSG Parsing OK +INFO [2014-07-04 10:52:15:177] <7160> Parse Msg End +INFO [2014-07-04 10:52:15:177] <7160> Msg Parsing OK +INFO [2014-07-04 10:52:15:177] <7160> card Pay Result Value [ +INFO [2014-07-04 10:52:15:177] <7160> NetCancID:AEGIS_ISP_acetel_20140704105213901909 +INFO [2014-07-04 10:52:15:177] <7160> rStoreId:acetel +INFO [2014-07-04 10:52:15:177] <7160> rBusiCd:0610 +INFO [2014-07-04 10:52:15:177] <7160> rOrdNo:20140704105058T75281 +INFO [2014-07-04 10:52:15:177] <7160> rDealNo: +INFO [2014-07-04 10:52:15:177] <7160> rApprNo: +INFO [2014-07-04 10:52:15:177] <7160> rProdNm:로즈마리 1피스 +INFO [2014-07-04 10:52:15:177] <7160> rAmt: +INFO [2014-07-04 10:52:15:178] <7160> rInstmt:00 +INFO [2014-07-04 10:52:15:178] <7160> rSuccYn:n +INFO [2014-07-04 10:52:15:178] <7160> rResMsg:ߺ ǽɵ. (ִ 1) ٽ õϿ ֽʽÿ. +INFO [2014-07-04 10:52:15:178] <7160> rApprTm: +INFO [2014-07-04 10:52:15:178] <7160> rCardCd: +INFO [2014-07-04 10:52:15:178] <7160> ] +INFO [2014-07-04 10:52:15:178] <7160> END ߺ ǽɵ. (ִ 1) ٽ õϿ ֽʽÿ. Transaction time:[1.281sec] +INFO [2014-07-04 10:52:15:178] <7160> =============================================================== +INFO [2014-07-04 10:53:26:72] <7159> =============================================================== +INFO [2014-07-04 10:53:26:72] <7159> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 10:53:26:72] <7159> card Pay Start! +INFO [2014-07-04 10:53:26:72] <7159> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 10:53:26:72] <7159> StoreId:acetel +INFO [2014-07-04 10:53:26:72] <7159> log:true +INFO [2014-07-04 10:53:26:72] <7159> logLevel:INFO +INFO [2014-07-04 10:53:26:72] <7159> UseNetCancel:true +INFO [2014-07-04 10:53:26:72] <7159> Type:Pay +INFO [2014-07-04 10:53:26:72] <7159> RecvLen:7 +INFO [2014-07-04 10:53:26:72] <7159> AuthTy:card +INFO [2014-07-04 10:53:26:72] <7159> SubTy:isp +INFO [2014-07-04 10:53:26:73] <7159> OrdNo:20140704105228T02271 +INFO [2014-07-04 10:53:26:73] <7159> Amt:17800 +INFO [2014-07-04 10:53:26:73] <7159> UserEmail:test@empal.com +INFO [2014-07-04 10:53:26:73] <7159> ProdNm:핑크 드림 +INFO [2014-07-04 10:53:26:73] <7159> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 10:53:26:73] <7159> UserId:test11 +INFO [2014-07-04 10:53:26:73] <7159> OrdNm:이름 +INFO [2014-07-04 10:53:26:73] <7159> OrdPhone:111-1111-1111 +INFO [2014-07-04 10:53:26:73] <7159> OrdAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:53:26:73] <7159> RcpNm:이름 +INFO [2014-07-04 10:53:26:73] <7159> RcpPhone:111-1111-1111 +INFO [2014-07-04 10:53:26:73] <7159> DlvAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:53:26:73] <7159> Remark:태스트 +INFO [2014-07-04 10:53:26:74] <7159> DeviId:9000400001 +INFO [2014-07-04 10:53:26:74] <7159> AuthYn:N +INFO [2014-07-04 10:53:26:74] <7159> Instmt:00 +INFO [2014-07-04 10:53:26:74] <7159> UserIp:125.131.234.203 +INFO [2014-07-04 10:53:26:74] <7159> partial_mm:00 +INFO [2014-07-04 10:53:26:74] <7159> noIntMonth: +INFO [2014-07-04 10:53:26:74] <7159> KVP_CURRENCY:WON +INFO [2014-07-04 10:53:26:74] <7159> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 10:53:26:74] <7159> KVP_SESSIONKEY:ENDvjeth+J5o0dOPNuXzXrN9SwGRm0DcOLBEHh2xjLIJ9I0TCxhlpNkktvfko9RSQvc0NqUd/vs4JOJltUxybl/vof6kXQ7AXOfl8G33QhkWDq6MOiBPZLOARK3cx9mBhfL8Y1EDq4yPAMJdSdS+KN6AiYGv7FBlL0f2GyG0Tvk= +INFO [2014-07-04 10:53:26:74] <7159> KVP_ENCDATA:cdata=oCahOHcutzpsfLHbUhSsQSoeljztE7VtkGtw27gOIC0Uj5g7MbMsSfXO2tx/o48x87tfHdxA4Vnl3CPDeZO3pJxqTPedgBTRYU8sxEH/PAV3ubVmobIZxFJN+xt7JC74rCNqoWtpO6HJa+dscG4N5fJsusqGIpnQYf1BiGjr2NhITqWip8rD8FoWRaVY6CD1OuFtRzHXl5DsREkkT62YuiJLemZ9ceR5sdm6r+8ZZkFgideXDgr4O9MElzAsDfn2EiDtRmKsJjgR9dzcUvlrEZCQurVOmvMPykGp2sNRiTNUUbwRBla3NYzyEoRb02r5MvPmE8y80Se2zkZrt/gkEu2j6xTDCaGU0q4CmWQ7wDxizqL6dj8WiWpj9qv9ENSb5X8Eh7Nyn0TT2XwnUds7G7IKBLzllne2ZR2gM1RnGlzt2gNuRGUt3jJKtYDxYsqnUVRsBqnnQeQvxB+osi8/EmEW6TU/mMqnmkyCGsGfgH8Bmn7m0lKsrmQoZuKgQBnZp/4K7MC5uCCnks+503cp3QE2j1IDFDV4a+abfXcVgfk= +INFO [2014-07-04 10:53:26:74] <7159> KVP_CONAME:안전결제서비스 +INFO [2014-07-04 10:53:26:74] <7159> KVP_NOINT:0 +INFO [2014-07-04 10:53:26:74] <7159> KVP_QUOTA:00 +INFO [2014-07-04 10:53:26:74] <7159> CardNo: +INFO [2014-07-04 10:53:26:74] <7159> MPI_CAVV: +INFO [2014-07-04 10:53:26:74] <7159> MPI_ECI: +INFO [2014-07-04 10:53:26:75] <7159> MPI_MD64: +INFO [2014-07-04 10:53:26:75] <7159> ExpMon: +INFO [2014-07-04 10:53:26:75] <7159> ExpYear: +INFO [2014-07-04 10:53:26:75] <7159> Passwd: +INFO [2014-07-04 10:53:26:75] <7159> SocId: +INFO [2014-07-04 10:53:26:75] <7159> HP_SERVERINFO: +INFO [2014-07-04 10:53:26:75] <7159> HP_HANDPHONE: +INFO [2014-07-04 10:53:26:75] <7159> HP_COMPANY: +INFO [2014-07-04 10:53:26:75] <7159> HP_ID: +INFO [2014-07-04 10:53:26:75] <7159> HP_SUBID: +INFO [2014-07-04 10:53:26:75] <7159> HP_UNITType: +INFO [2014-07-04 10:53:26:75] <7159> HP_IDEN: +INFO [2014-07-04 10:53:26:75] <7159> HP_IPADDR: +INFO [2014-07-04 10:53:26:75] <7159> VIRTUAL_CENTERCD: +INFO [2014-07-04 10:53:26:75] <7159> VIRTUAL_DEPODT: +INFO [2014-07-04 10:53:26:75] <7159> ZuminCode: +INFO [2014-07-04 10:53:26:75] <7159> MallPage: +INFO [2014-07-04 10:53:26:75] <7159> VIRTUAL_NO: +INFO [2014-07-04 10:53:26:75] <7159> ES_SENDNO: +INFO [2014-07-04 10:53:26:76] <7159> Column1:222-2222-2222 +INFO [2014-07-04 10:53:26:76] <7159> Column2:222-2222-2222 +INFO [2014-07-04 10:53:26:76] <7159> Column3:0---cardnormal +INFO [2014-07-04 10:53:26:76] <7159> Make NetCancel ID Start +INFO [2014-07-04 10:53:26:76] <7159> AEGIS_ISP_acetel_20140704105326076830 +INFO [2014-07-04 10:53:26:76] <7159> Make NetCancel ID End +INFO [2014-07-04 10:53:26:76] <7159> Make NetCancelID OK +INFO [2014-07-04 10:53:26:76] <7159> Make Msg Start +INFO [2014-07-04 10:53:26:76] <7159> card-isp Make MSG OK +INFO [2014-07-04 10:53:26:76] <7159> Make Msg End +INFO [2014-07-04 10:53:26:76] <7159> Make Pay Msg OK +INFO [2014-07-04 10:53:26:76] <7159> Send & Recv Msg Start +INFO [2014-07-04 10:53:26:76] <7159> Send Data To PG Start [ +INFO [2014-07-04 10:53:26:76] <7159> 0:0010612plug15 +INFO [2014-07-04 10:53:26:76] <7159> 1:acetel +INFO [2014-07-04 10:53:26:76] <7159> 2:test11 +INFO [2014-07-04 10:53:26:76] <7159> 3:17800 +INFO [2014-07-04 10:53:26:76] <7159> 4:20140704105228T02271 +INFO [2014-07-04 10:53:26:76] <7159> 5:9000400001 +INFO [2014-07-04 10:53:26:76] <7159> 6:이름 +INFO [2014-07-04 10:53:26:76] <7159> 7:111-1111-1111 +INFO [2014-07-04 10:53:26:76] <7159> 8:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:53:26:76] <7159> 9:이름 +INFO [2014-07-04 10:53:26:76] <7159> 10:111-1111-1111 +INFO [2014-07-04 10:53:26:76] <7159> 11:태스트 +INFO [2014-07-04 10:53:26:76] <7159> 12:핑크 드림 +INFO [2014-07-04 10:53:26:76] <7159> 13:WON +INFO [2014-07-04 10:53:26:76] <7159> 14:00 +INFO [2014-07-04 10:53:26:76] <7159> 15: +INFO [2014-07-04 10:53:26:76] <7159> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 10:53:26:76] <7159> 17:ENDvjeth+J5o0dOPNuXzXrN9SwGRm0DcOLBEHh2xjLIJ9I0TCxhlpNkktvfko9RSQvc0NqUd/vs4JOJltUxybl/vof6kXQ7AXOfl8G33QhkWDq6MOiBPZLOARK3cx9mBhfL8Y1EDq4yPAMJdSdS+KN6AiYGv7FBlL0f2GyG0Tvk= +INFO [2014-07-04 10:53:26:76] <7159> 18:cdata=oCahOHcutzpsfLHbUhSsQSoeljztE7VtkGtw27gOIC0Uj5g7MbMsSfXO2tx/o48x87tfHdxA4Vnl3CPDeZO3pJxqTPedgBTRYU8sxEH/PAV3ubVmobIZxFJN+xt7JC74rCNqoWtpO6HJa+dscG4N5fJsusqGIpnQYf1BiGjr2NhITqWip8rD8FoWRaVY6CD1OuFtRzHXl5DsREkkT62YuiJLemZ9ceR5sdm6r+8ZZkFgideXDgr4O9MElzAsDfn2EiDtRmKsJjgR9dzcUvlrEZCQurVOmvMPykGp2sNRiTNUUbwRBla3NYzyEoRb02r5MvPmE8y80Se2zkZrt/gkEu2j6xTDCaGU0q4CmWQ7wDxizqL6dj8WiWpj9qv9ENSb5X8Eh7Nyn0TT2XwnUds7G7IKBLzllne2ZR2gM1RnGlzt2gNuRGUt3jJKtYDxYsqnUVRsBqnnQeQvxB+osi8/EmEW6TU/mMqnmkyCGsGfgH8Bmn7m0lKsrmQoZuKgQBnZp/4K7MC5uCCnks+503cp3QE2j1IDFDV4a+abfXcVgfk= +INFO [2014-07-04 10:53:26:76] <7159> 19:안전결제서비스 +INFO [2014-07-04 10:53:26:76] <7159> 20:125.131.234.203 +INFO [2014-07-04 10:53:26:76] <7159> 21:test@empal.com +INFO [2014-07-04 10:53:26:76] <7159> 22:AEGIS_ISP_acetel_20140704105326076830 +INFO [2014-07-04 10:53:26:76] <7159> 23: +INFO [2014-07-04 10:53:26:77] <7159> ] Send Data To PG End +INFO [2014-07-04 10:53:26:77] <7159> SendMsg : [0010612plug15|acetel|test11|17800|20140704105228T02271|9000400001|이름|111-1111-1111|135-722---서울 강남구 신사동 강남빌딩---1234|이름|111-1111-1111|태스트|핑크 드림|WON|00||000100202428681;125.131.234.203;N;;17800;;|ENDvjeth+J5o0dOPNuXzXrN9SwGRm0DcOLBEHh2xjLIJ9I0TCxhlpNkktvfko9RSQvc0NqUd/vs4JOJltUxybl/vof6kXQ7AXOfl8G33QhkWDq6MOiBPZLOARK3cx9mBhfL8Y1EDq4yPAMJdSdS+KN6AiYGv7FBlL0f2GyG0Tvk=|cdata=oCahOHcutzpsfLHbUhSsQSoeljztE7VtkGtw27gOIC0Uj5g7MbMsSfXO2tx/o48x87tfHdxA4Vnl3CPDeZO3pJxqTPedgBTRYU8sxEH/PAV3ubVmobIZxFJN+xt7JC74rCNqoWtpO6HJa+dscG4N5fJsusqGIpnQYf1BiGjr2NhITqWip8rD8FoWRaVY6CD1OuFtRzHXl5DsREkkT62YuiJLemZ9ceR5sdm6r+8ZZkFgideXDgr4O9MElzAsDfn2EiDtRmKsJjgR9dzcUvlrEZCQurVOmvMPykGp2sNRiTNUUbwRBla3NYzyEoRb02r5MvPmE8y80Se2zkZrt/gkEu2j6xTDCaGU0q4CmWQ7wDxizqL6dj8WiWpj9qv9ENSb5X8Eh7Nyn0TT2XwnUds7G7IKBLzllne2ZR2gM1RnGlzt2gNuRGUt3jJKtYDxYsqnUVRsBqnnQeQvxB+osi8/EmEW6TU/mMqnmkyCGsGfgH8Bmn7m0lKsrmQoZuKgQBnZp/4K7MC5uCCnks+503cp3QE2j1IDFDV4a+abfXcVgfk=|안전결제서비스|125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704105326076830|] +INFO [2014-07-04 10:53:26:77] <7159> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 10:53:26:82] <7159> Socket Open OK +INFO [2014-07-04 10:53:28:576] <7159> RecvMsg Length : [000083] +INFO [2014-07-04 10:53:28:576] <7159> RecvMsg : [acetel|0610|101925|55428241|17800|y|:20140704105228T02271|20140704105332|0100| +] +INFO [2014-07-04 10:53:28:576] <7159> Socket Close OK +INFO [2014-07-04 10:53:28:576] <7159> RecvMsg Length Check OK +INFO [2014-07-04 10:53:28:576] <7159> Send & Recv Msg End +INFO [2014-07-04 10:53:28:576] <7159> Send & Recv Msg OK +INFO [2014-07-04 10:53:28:576] <7159> Parse Msg Start +INFO [2014-07-04 10:53:28:576] <7159> card-isp RECV MSG Parsing OK +INFO [2014-07-04 10:53:28:576] <7159> Parse Msg End +INFO [2014-07-04 10:53:28:577] <7159> Msg Parsing OK +INFO [2014-07-04 10:53:28:577] <7159> card Pay Result Value [ +INFO [2014-07-04 10:53:28:577] <7159> NetCancID:AEGIS_ISP_acetel_20140704105326076830 +INFO [2014-07-04 10:53:28:577] <7159> rStoreId:acetel +INFO [2014-07-04 10:53:28:577] <7159> rBusiCd:0610 +INFO [2014-07-04 10:53:28:577] <7159> rOrdNo:20140704105228T02271 +INFO [2014-07-04 10:53:28:577] <7159> rDealNo:101925 +INFO [2014-07-04 10:53:28:577] <7159> rApprNo:55428241 +INFO [2014-07-04 10:53:28:577] <7159> rProdNm:핑크 드림 +INFO [2014-07-04 10:53:28:577] <7159> rAmt:17800 +INFO [2014-07-04 10:53:28:577] <7159> rInstmt:00 +INFO [2014-07-04 10:53:28:577] <7159> rSuccYn:y +INFO [2014-07-04 10:53:28:577] <7159> rResMsg::20140704105228T02271 +INFO [2014-07-04 10:53:28:577] <7159> rApprTm:20140704105332 +INFO [2014-07-04 10:53:28:577] <7159> rCardCd:0100 +INFO [2014-07-04 10:53:28:577] <7159> ] +INFO [2014-07-04 10:53:28:577] <7159> END :20140704105228T02271 Transaction time:[2.506sec] +INFO [2014-07-04 10:53:28:577] <7159> =============================================================== +INFO [2014-07-04 10:56:57:134] <7370> =============================================================== +INFO [2014-07-04 10:56:57:134] <7370> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 10:56:57:134] <7370> card Pay Start! +INFO [2014-07-04 10:56:57:134] <7370> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 10:56:57:134] <7370> StoreId:acetel +INFO [2014-07-04 10:56:57:134] <7370> log:true +INFO [2014-07-04 10:56:57:134] <7370> logLevel:INFO +INFO [2014-07-04 10:56:57:134] <7370> UseNetCancel:true +INFO [2014-07-04 10:56:57:135] <7370> Type:Pay +INFO [2014-07-04 10:56:57:135] <7370> RecvLen:7 +INFO [2014-07-04 10:56:57:135] <7370> AuthTy:card +INFO [2014-07-04 10:56:57:135] <7370> SubTy:isp +INFO [2014-07-04 10:56:57:135] <7370> OrdNo:20140704105601T78711 +INFO [2014-07-04 10:56:57:135] <7370> Amt:27250 +INFO [2014-07-04 10:56:57:135] <7370> UserEmail:test@empal.com +INFO [2014-07-04 10:56:57:135] <7370> ProdNm:로즈마리 1피스 +INFO [2014-07-04 10:56:57:135] <7370> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 10:56:57:135] <7370> UserId:test11 +INFO [2014-07-04 10:56:57:135] <7370> OrdNm:이름 +INFO [2014-07-04 10:56:57:135] <7370> OrdPhone:111-1111-1111 +INFO [2014-07-04 10:56:57:135] <7370> OrdAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:56:57:135] <7370> RcpNm:이름 +INFO [2014-07-04 10:56:57:136] <7370> RcpPhone:111-1111-1111 +INFO [2014-07-04 10:56:57:136] <7370> DlvAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:56:57:136] <7370> Remark: +INFO [2014-07-04 10:56:57:136] <7370> DeviId:9000400001 +INFO [2014-07-04 10:56:57:136] <7370> AuthYn:N +INFO [2014-07-04 10:56:57:136] <7370> Instmt:00 +INFO [2014-07-04 10:56:57:136] <7370> UserIp:125.131.234.203 +INFO [2014-07-04 10:56:57:136] <7370> partial_mm:00 +INFO [2014-07-04 10:56:57:136] <7370> noIntMonth: +INFO [2014-07-04 10:56:57:136] <7370> KVP_CURRENCY:WON +INFO [2014-07-04 10:56:57:136] <7370> KVP_CARDCODE:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 10:56:57:136] <7370> KVP_SESSIONKEY:Fycbuw+cTRtwn13wOub1/K/rkeH2hA1zRA+7G+HV4A2/Y1RotT2ieSzqBwuQNYBLDxEPTyiE3P9844Xdab7+10kG1+vOrz6ltrJumY865+PkCTC+Y7+SDbFdZKbVcQV3RO0D65lk/5LZ1GFaQtsF1SXmaYYZ8Dxa6bCgdekxA2s= +INFO [2014-07-04 10:56:57:136] <7370> KVP_ENCDATA:cdata=hnTnHlWDniqb+6aW3PiHqB9mmAwXNWvr75rGH+9+TdVC+x3rS3hLMZzMEqhm0Ato3bI3/rq/zAVv0REZ2Td2lst6M+wZCpxeJ/T1FVFHO+I98aNEndBzmrb64Ob4LLW39Pah8ifbNKslaMvJ4NinUw8+QVoDf0PkrnrdSncTdTHS/R3Pi7ORNbLHUbsg1Ita9nEI0RVWjHp25bvXFsso1WrRwcXA+flF72Hb10T3DRbjRoEVl6HC+pJwVlYpg7kucR95vnpsP7rpdb9iiUCPpQ/C/XNK6UE3m4dv4+p/mpcDyXiyRzxRcIeG+T7mtJhOH+mafho0qlJzY39fFLbaQAjnnwOP2iMtZSmeMKs6lYto6XbkPPVyhAvMe5SsRrZQ2zUvHDwhZwXMSgBtD9SX9jjn2+DNm3LqcUJ3kUaXRwwfr1atPDFUhS2jcX9igBlWuGos92di0ROMvgvY1EWb9Ke97eYbMpU/7ktd9vuI271Ezeozp1op+BlFe7jNl+ETPdJyIAVUrBL3JpPCNMNelCX9uNDgjLf2xRgDIjFoYJXArAjMFpD3ec0ZVbX5vTG5 +INFO [2014-07-04 10:56:57:136] <7370> KVP_CONAME:안전결제서비스 +INFO [2014-07-04 10:56:57:137] <7370> KVP_NOINT:0 +INFO [2014-07-04 10:56:57:137] <7370> KVP_QUOTA:00 +INFO [2014-07-04 10:56:57:137] <7370> CardNo: +INFO [2014-07-04 10:56:57:137] <7370> MPI_CAVV: +INFO [2014-07-04 10:56:57:137] <7370> MPI_ECI: +INFO [2014-07-04 10:56:57:137] <7370> MPI_MD64: +INFO [2014-07-04 10:56:57:137] <7370> ExpMon: +INFO [2014-07-04 10:56:57:137] <7370> ExpYear: +INFO [2014-07-04 10:56:57:137] <7370> Passwd: +INFO [2014-07-04 10:56:57:137] <7370> SocId: +INFO [2014-07-04 10:56:57:137] <7370> HP_SERVERINFO: +INFO [2014-07-04 10:56:57:137] <7370> HP_HANDPHONE: +INFO [2014-07-04 10:56:57:137] <7370> HP_COMPANY: +INFO [2014-07-04 10:56:57:137] <7370> HP_ID: +INFO [2014-07-04 10:56:57:138] <7370> HP_SUBID: +INFO [2014-07-04 10:56:57:138] <7370> HP_UNITType: +INFO [2014-07-04 10:56:57:138] <7370> HP_IDEN: +INFO [2014-07-04 10:56:57:138] <7370> HP_IPADDR: +INFO [2014-07-04 10:56:57:138] <7370> VIRTUAL_CENTERCD: +INFO [2014-07-04 10:56:57:138] <7370> VIRTUAL_DEPODT: +INFO [2014-07-04 10:56:57:138] <7370> ZuminCode: +INFO [2014-07-04 10:56:57:138] <7370> MallPage: +INFO [2014-07-04 10:56:57:138] <7370> VIRTUAL_NO: +INFO [2014-07-04 10:56:57:138] <7370> ES_SENDNO: +INFO [2014-07-04 10:56:57:138] <7370> Column1:222-2222-2222 +INFO [2014-07-04 10:56:57:138] <7370> Column2:222-2222-2222 +INFO [2014-07-04 10:56:57:138] <7370> Column3:0---cardnormal +INFO [2014-07-04 10:56:57:138] <7370> Make NetCancel ID Start +INFO [2014-07-04 10:56:57:139] <7370> AEGIS_ISP_acetel_20140704105657139486 +INFO [2014-07-04 10:56:57:139] <7370> Make NetCancel ID End +INFO [2014-07-04 10:56:57:139] <7370> Make NetCancelID OK +INFO [2014-07-04 10:56:57:139] <7370> Make Msg Start +INFO [2014-07-04 10:56:57:139] <7370> card-isp Make MSG OK +INFO [2014-07-04 10:56:57:139] <7370> Make Msg End +INFO [2014-07-04 10:56:57:139] <7370> Make Pay Msg OK +INFO [2014-07-04 10:56:57:139] <7370> Send & Recv Msg Start +INFO [2014-07-04 10:56:57:139] <7370> Send Data To PG Start [ +INFO [2014-07-04 10:56:57:139] <7370> 0:0010792plug15 +INFO [2014-07-04 10:56:57:139] <7370> 1:acetel +INFO [2014-07-04 10:56:57:139] <7370> 2:test11 +INFO [2014-07-04 10:56:57:139] <7370> 3:27250 +INFO [2014-07-04 10:56:57:139] <7370> 4:20140704105601T78711 +INFO [2014-07-04 10:56:57:139] <7370> 5:9000400001 +INFO [2014-07-04 10:56:57:139] <7370> 6:이름 +INFO [2014-07-04 10:56:57:139] <7370> 7:111-1111-1111 +INFO [2014-07-04 10:56:57:139] <7370> 8:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:56:57:139] <7370> 9:이름 +INFO [2014-07-04 10:56:57:139] <7370> 10:111-1111-1111 +INFO [2014-07-04 10:56:57:139] <7370> 11: +INFO [2014-07-04 10:56:57:139] <7370> 12:로즈마리 1피스 +INFO [2014-07-04 10:56:57:139] <7370> 13:WON +INFO [2014-07-04 10:56:57:139] <7370> 14:00 +INFO [2014-07-04 10:56:57:139] <7370> 15: +INFO [2014-07-04 10:56:57:139] <7370> 16:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 10:56:57:139] <7370> 17:Fycbuw+cTRtwn13wOub1/K/rkeH2hA1zRA+7G+HV4A2/Y1RotT2ieSzqBwuQNYBLDxEPTyiE3P9844Xdab7+10kG1+vOrz6ltrJumY865+PkCTC+Y7+SDbFdZKbVcQV3RO0D65lk/5LZ1GFaQtsF1SXmaYYZ8Dxa6bCgdekxA2s= +INFO [2014-07-04 10:56:57:139] <7370> 18:cdata=hnTnHlWDniqb+6aW3PiHqB9mmAwXNWvr75rGH+9+TdVC+x3rS3hLMZzMEqhm0Ato3bI3/rq/zAVv0REZ2Td2lst6M+wZCpxeJ/T1FVFHO+I98aNEndBzmrb64Ob4LLW39Pah8ifbNKslaMvJ4NinUw8+QVoDf0PkrnrdSncTdTHS/R3Pi7ORNbLHUbsg1Ita9nEI0RVWjHp25bvXFsso1WrRwcXA+flF72Hb10T3DRbjRoEVl6HC+pJwVlYpg7kucR95vnpsP7rpdb9iiUCPpQ/C/XNK6UE3m4dv4+p/mpcDyXiyRzxRcIeG+T7mtJhOH+mafho0qlJzY39fFLbaQAjnnwOP2iMtZSmeMKs6lYto6XbkPPVyhAvMe5SsRrZQ2zUvHDwhZwXMSgBtD9SX9jjn2+DNm3LqcUJ3kUaXRwwfr1atPDFUhS2jcX9igBlWuGos92di0ROMvgvY1EWb9Ke97eYbMpU/7ktd9vuI271Ezeozp1op+BlFe7jNl+ETPdJyIAVUrBL3JpPCNMNelCX9uNDgjLf2xRgDIjFoYJXArAjMFpD3ec0ZVbX5vTG5 +INFO [2014-07-04 10:56:57:139] <7370> 19:안전결제서비스 +INFO [2014-07-04 10:56:57:139] <7370> 20:125.131.234.203 +INFO [2014-07-04 10:56:57:139] <7370> 21:test@empal.com +INFO [2014-07-04 10:56:57:139] <7370> 22:AEGIS_ISP_acetel_20140704105657139486 +INFO [2014-07-04 10:56:57:139] <7370> 23: +INFO [2014-07-04 10:56:57:140] <7370> ] Send Data To PG End +INFO [2014-07-04 10:56:57:140] <7370> SendMsg : [0010792plug15|acetel|test11|27250|20140704105601T78711|9000400001|이름|111-1111-1111|135-722---서울 강남구 신사동 강남빌딩---1234|이름|111-1111-1111||로즈마리 1피스|WON|00||000100202428681;125.131.234.203;N;;27250;;|Fycbuw+cTRtwn13wOub1/K/rkeH2hA1zRA+7G+HV4A2/Y1RotT2ieSzqBwuQNYBLDxEPTyiE3P9844Xdab7+10kG1+vOrz6ltrJumY865+PkCTC+Y7+SDbFdZKbVcQV3RO0D65lk/5LZ1GFaQtsF1SXmaYYZ8Dxa6bCgdekxA2s=|cdata=hnTnHlWDniqb+6aW3PiHqB9mmAwXNWvr75rGH+9+TdVC+x3rS3hLMZzMEqhm0Ato3bI3/rq/zAVv0REZ2Td2lst6M+wZCpxeJ/T1FVFHO+I98aNEndBzmrb64Ob4LLW39Pah8ifbNKslaMvJ4NinUw8+QVoDf0PkrnrdSncTdTHS/R3Pi7ORNbLHUbsg1Ita9nEI0RVWjHp25bvXFsso1WrRwcXA+flF72Hb10T3DRbjRoEVl6HC+pJwVlYpg7kucR95vnpsP7rpdb9iiUCPpQ/C/XNK6UE3m4dv4+p/mpcDyXiyRzxRcIeG+T7mtJhOH+mafho0qlJzY39fFLbaQAjnnwOP2iMtZSmeMKs6lYto6XbkPPVyhAvMe5SsRrZQ2zUvHDwhZwXMSgBtD9SX9jjn2+DNm3LqcUJ3kUaXRwwfr1atPDFUhS2jcX9igBlWuGos92di0ROMvgvY1EWb9Ke97eYbMpU/7ktd9vuI271Ezeozp1op+BlFe7jNl+ETPdJyIAVUrBL3JpPCNMNelCX9uNDgjLf2xRgDIjFoYJXArAjMFpD3ec0ZVbX5vTG5|안전결제서비스|125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704105657139486|] +INFO [2014-07-04 10:56:57:140] <7370> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 10:56:57:145] <7370> Socket Open OK +INFO [2014-07-04 10:56:58:779] <7370> RecvMsg Length : [000083] +INFO [2014-07-04 10:56:58:779] <7370> RecvMsg : [acetel|0610|101958|55450394|27250|y|:20140704105601T78711|20140704105726|0100| +] +INFO [2014-07-04 10:56:58:779] <7370> Socket Close OK +INFO [2014-07-04 10:56:58:779] <7370> RecvMsg Length Check OK +INFO [2014-07-04 10:56:58:780] <7370> Send & Recv Msg End +INFO [2014-07-04 10:56:58:780] <7370> Send & Recv Msg OK +INFO [2014-07-04 10:56:58:780] <7370> Parse Msg Start +INFO [2014-07-04 10:56:58:780] <7370> card-isp RECV MSG Parsing OK +INFO [2014-07-04 10:56:58:780] <7370> Parse Msg End +INFO [2014-07-04 10:56:58:780] <7370> Msg Parsing OK +INFO [2014-07-04 10:56:58:780] <7370> card Pay Result Value [ +INFO [2014-07-04 10:56:58:780] <7370> NetCancID:AEGIS_ISP_acetel_20140704105657139486 +INFO [2014-07-04 10:56:58:780] <7370> rStoreId:acetel +INFO [2014-07-04 10:56:58:780] <7370> rBusiCd:0610 +INFO [2014-07-04 10:56:58:780] <7370> rOrdNo:20140704105601T78711 +INFO [2014-07-04 10:56:58:780] <7370> rDealNo:101958 +INFO [2014-07-04 10:56:58:780] <7370> rApprNo:55450394 +INFO [2014-07-04 10:56:58:781] <7370> rProdNm:로즈마리 1피스 +INFO [2014-07-04 10:56:58:781] <7370> rAmt:27250 +INFO [2014-07-04 10:56:58:781] <7370> rInstmt:00 +INFO [2014-07-04 10:56:58:781] <7370> rSuccYn:y +INFO [2014-07-04 10:56:58:781] <7370> rResMsg::20140704105601T78711 +INFO [2014-07-04 10:56:58:781] <7370> rApprTm:20140704105726 +INFO [2014-07-04 10:56:58:781] <7370> rCardCd:0100 +INFO [2014-07-04 10:56:58:781] <7370> ] +INFO [2014-07-04 10:56:58:781] <7370> END :20140704105601T78711 Transaction time:[1.647sec] +INFO [2014-07-04 10:56:58:781] <7370> =============================================================== +INFO [2014-07-04 11:01:11:462] <7731> =============================================================== +INFO [2014-07-04 11:01:11:462] <7731> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 11:01:11:463] <7731> card Pay Start! +INFO [2014-07-04 11:01:11:463] <7731> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 11:01:11:463] <7731> StoreId:acetel +INFO [2014-07-04 11:01:11:463] <7731> log:true +INFO [2014-07-04 11:01:11:463] <7731> logLevel:INFO +INFO [2014-07-04 11:01:11:463] <7731> UseNetCancel:true +INFO [2014-07-04 11:01:11:463] <7731> Type:Pay +INFO [2014-07-04 11:01:11:463] <7731> RecvLen:7 +INFO [2014-07-04 11:01:11:463] <7731> AuthTy:card +INFO [2014-07-04 11:01:11:463] <7731> SubTy:isp +INFO [2014-07-04 11:01:11:463] <7731> OrdNo:20140704110023T83908 +INFO [2014-07-04 11:01:11:463] <7731> Amt:17800 +INFO [2014-07-04 11:01:11:463] <7731> UserEmail:test@empal.com +INFO [2014-07-04 11:01:11:464] <7731> ProdNm:핑크 드림 +INFO [2014-07-04 11:01:11:464] <7731> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 11:01:11:464] <7731> UserId:test11 +INFO [2014-07-04 11:01:11:464] <7731> OrdNm:이름 +INFO [2014-07-04 11:01:11:464] <7731> OrdPhone:111-1111-1111 +INFO [2014-07-04 11:01:11:464] <7731> OrdAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 11:01:11:464] <7731> RcpNm:이름 +INFO [2014-07-04 11:01:11:464] <7731> RcpPhone:111-1111-1111 +INFO [2014-07-04 11:01:11:464] <7731> DlvAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 11:01:11:464] <7731> Remark: +INFO [2014-07-04 11:01:11:464] <7731> DeviId:9000400001 +INFO [2014-07-04 11:01:11:464] <7731> AuthYn:N +INFO [2014-07-04 11:01:11:464] <7731> Instmt:00 +INFO [2014-07-04 11:01:11:464] <7731> UserIp:125.131.234.203 +INFO [2014-07-04 11:01:11:464] <7731> partial_mm:00 +INFO [2014-07-04 11:01:11:465] <7731> noIntMonth: +INFO [2014-07-04 11:01:11:465] <7731> KVP_CURRENCY:WON +INFO [2014-07-04 11:01:11:465] <7731> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 11:01:11:465] <7731> KVP_SESSIONKEY:AS3ud3YlCxZ7p5KOWPETtiewyuRMt6GFE1CySJJ5+WvggfnnvBDBA9mxGjGpci85z57K9d9Kg+o0DxL7qWhL5bfpawMa67LsHtkEZOAeodwvjTXj8sU0c904Xzf74sUB4x8Q4Byvmc971pmPDZ9MCUyc72OggUNjiCURMAPjxgw= +INFO [2014-07-04 11:01:11:465] <7731> KVP_ENCDATA:cdata=WL03ASudAM8xboYv9ZMTDHExOkDIZgK1RReEe1uz7TpQMcd+lNh0z3RQNs0tbq3o3iztgzfPwmYI9lXrM1eb3TdXz8d1GZre7S+jHISCd3rqrqnTBaDjx88zsR3QTIqxvYGka3PgM4iPqKTwSvjlVS9kBxVNQD7i4nfXW1174jPCp4FRg61qqYFD1Z1y+SXrVeJ6RLmEXp/B0YheNdatMSb/YObCTCYzmfkE16xg0RjvpL4HHqDU/4t9Z1uP4EDJPU4j9A4Ci2t6kJT2rakjz5GuNZ6gVNr+kiIIP6fcnokHNvuwFqXIcXfVzgdSjgQmvasGhbUdh3Sy2y+Spc8UAszD30mW/tJpbVNgJ0JbcfbqGvLJy9xvMy4rlyaPK6xGXV3LF3wO+2K4A9dnx5unV7pylX55JswKkRa/JshTPTWMPdfmiC+hkOr0qRTZVw/Se2LMLuOHLCIkQvuruFh4sMgOgnTcNJTL4hVvNGKUo01wh17ozfvBB9LfHmyim+K2GwxVG/rsBpxkgcrnLuc4Feo6LRBb8vPzsaB8VlLi6DA= +INFO [2014-07-04 11:01:11:465] <7731> KVP_CONAME:안전결제서비스 +INFO [2014-07-04 11:01:11:465] <7731> KVP_NOINT:0 +INFO [2014-07-04 11:01:11:465] <7731> KVP_QUOTA:00 +INFO [2014-07-04 11:01:11:465] <7731> CardNo: +INFO [2014-07-04 11:01:11:465] <7731> MPI_CAVV: +INFO [2014-07-04 11:01:11:465] <7731> MPI_ECI: +INFO [2014-07-04 11:01:11:465] <7731> MPI_MD64: +INFO [2014-07-04 11:01:11:465] <7731> ExpMon: +INFO [2014-07-04 11:01:11:465] <7731> ExpYear: +INFO [2014-07-04 11:01:11:465] <7731> Passwd: +INFO [2014-07-04 11:01:11:465] <7731> SocId: +INFO [2014-07-04 11:01:11:465] <7731> HP_SERVERINFO: +INFO [2014-07-04 11:01:11:465] <7731> HP_HANDPHONE: +INFO [2014-07-04 11:01:11:465] <7731> HP_COMPANY: +INFO [2014-07-04 11:01:11:465] <7731> HP_ID: +INFO [2014-07-04 11:01:11:466] <7731> HP_SUBID: +INFO [2014-07-04 11:01:11:466] <7731> HP_UNITType: +INFO [2014-07-04 11:01:11:466] <7731> HP_IDEN: +INFO [2014-07-04 11:01:11:466] <7731> HP_IPADDR: +INFO [2014-07-04 11:01:11:466] <7731> VIRTUAL_CENTERCD: +INFO [2014-07-04 11:01:11:466] <7731> VIRTUAL_DEPODT: +INFO [2014-07-04 11:01:11:466] <7731> ZuminCode: +INFO [2014-07-04 11:01:11:466] <7731> MallPage: +INFO [2014-07-04 11:01:11:466] <7731> VIRTUAL_NO: +INFO [2014-07-04 11:01:11:466] <7731> ES_SENDNO: +INFO [2014-07-04 11:01:11:466] <7731> Column1:222-2222-2222 +INFO [2014-07-04 11:01:11:466] <7731> Column2:222-2222-2222 +INFO [2014-07-04 11:01:11:466] <7731> Column3:0---cardnormal +INFO [2014-07-04 11:01:11:467] <7731> Make NetCancel ID Start +INFO [2014-07-04 11:01:11:467] <7731> AEGIS_ISP_acetel_20140704110111467808 +INFO [2014-07-04 11:01:11:467] <7731> Make NetCancel ID End +INFO [2014-07-04 11:01:11:467] <7731> Make NetCancelID OK +INFO [2014-07-04 11:01:11:467] <7731> Make Msg Start +INFO [2014-07-04 11:01:11:467] <7731> card-isp Make MSG OK +INFO [2014-07-04 11:01:11:467] <7731> Make Msg End +INFO [2014-07-04 11:01:11:467] <7731> Make Pay Msg OK +INFO [2014-07-04 11:01:11:467] <7731> Send & Recv Msg Start +INFO [2014-07-04 11:01:11:467] <7731> Send Data To PG Start [ +INFO [2014-07-04 11:01:11:467] <7731> 0:0010522plug15 +INFO [2014-07-04 11:01:11:467] <7731> 1:acetel +INFO [2014-07-04 11:01:11:467] <7731> 2:test11 +INFO [2014-07-04 11:01:11:467] <7731> 3:17800 +INFO [2014-07-04 11:01:11:467] <7731> 4:20140704110023T83908 +INFO [2014-07-04 11:01:11:467] <7731> 5:9000400001 +INFO [2014-07-04 11:01:11:467] <7731> 6:이름 +INFO [2014-07-04 11:01:11:467] <7731> 7:111-1111-1111 +INFO [2014-07-04 11:01:11:467] <7731> 8:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 11:01:11:467] <7731> 9:이름 +INFO [2014-07-04 11:01:11:467] <7731> 10:111-1111-1111 +INFO [2014-07-04 11:01:11:467] <7731> 11: +INFO [2014-07-04 11:01:11:467] <7731> 12:핑크 드림 +INFO [2014-07-04 11:01:11:467] <7731> 13:WON +INFO [2014-07-04 11:01:11:467] <7731> 14:00 +INFO [2014-07-04 11:01:11:467] <7731> 15: +INFO [2014-07-04 11:01:11:467] <7731> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 11:01:11:467] <7731> 17:AS3ud3YlCxZ7p5KOWPETtiewyuRMt6GFE1CySJJ5+WvggfnnvBDBA9mxGjGpci85z57K9d9Kg+o0DxL7qWhL5bfpawMa67LsHtkEZOAeodwvjTXj8sU0c904Xzf74sUB4x8Q4Byvmc971pmPDZ9MCUyc72OggUNjiCURMAPjxgw= +INFO [2014-07-04 11:01:11:467] <7731> 18:cdata=WL03ASudAM8xboYv9ZMTDHExOkDIZgK1RReEe1uz7TpQMcd+lNh0z3RQNs0tbq3o3iztgzfPwmYI9lXrM1eb3TdXz8d1GZre7S+jHISCd3rqrqnTBaDjx88zsR3QTIqxvYGka3PgM4iPqKTwSvjlVS9kBxVNQD7i4nfXW1174jPCp4FRg61qqYFD1Z1y+SXrVeJ6RLmEXp/B0YheNdatMSb/YObCTCYzmfkE16xg0RjvpL4HHqDU/4t9Z1uP4EDJPU4j9A4Ci2t6kJT2rakjz5GuNZ6gVNr+kiIIP6fcnokHNvuwFqXIcXfVzgdSjgQmvasGhbUdh3Sy2y+Spc8UAszD30mW/tJpbVNgJ0JbcfbqGvLJy9xvMy4rlyaPK6xGXV3LF3wO+2K4A9dnx5unV7pylX55JswKkRa/JshTPTWMPdfmiC+hkOr0qRTZVw/Se2LMLuOHLCIkQvuruFh4sMgOgnTcNJTL4hVvNGKUo01wh17ozfvBB9LfHmyim+K2GwxVG/rsBpxkgcrnLuc4Feo6LRBb8vPzsaB8VlLi6DA= +INFO [2014-07-04 11:01:11:467] <7731> 19:안전결제서비스 +INFO [2014-07-04 11:01:11:467] <7731> 20:125.131.234.203 +INFO [2014-07-04 11:01:11:467] <7731> 21:test@empal.com +INFO [2014-07-04 11:01:11:467] <7731> 22:AEGIS_ISP_acetel_20140704110111467808 +INFO [2014-07-04 11:01:11:467] <7731> 23: +INFO [2014-07-04 11:01:11:468] <7731> ] Send Data To PG End +INFO [2014-07-04 11:01:11:468] <7731> SendMsg : [0010522plug15|acetel|test11|17800|20140704110023T83908|9000400001|이름|111-1111-1111|135-722---서울 강남구 신사동 강남빌딩---1234|이름|111-1111-1111||핑크 드림|WON|00||000100202428681;125.131.234.203;N;;17800;;|AS3ud3YlCxZ7p5KOWPETtiewyuRMt6GFE1CySJJ5+WvggfnnvBDBA9mxGjGpci85z57K9d9Kg+o0DxL7qWhL5bfpawMa67LsHtkEZOAeodwvjTXj8sU0c904Xzf74sUB4x8Q4Byvmc971pmPDZ9MCUyc72OggUNjiCURMAPjxgw=|cdata=WL03ASudAM8xboYv9ZMTDHExOkDIZgK1RReEe1uz7TpQMcd+lNh0z3RQNs0tbq3o3iztgzfPwmYI9lXrM1eb3TdXz8d1GZre7S+jHISCd3rqrqnTBaDjx88zsR3QTIqxvYGka3PgM4iPqKTwSvjlVS9kBxVNQD7i4nfXW1174jPCp4FRg61qqYFD1Z1y+SXrVeJ6RLmEXp/B0YheNdatMSb/YObCTCYzmfkE16xg0RjvpL4HHqDU/4t9Z1uP4EDJPU4j9A4Ci2t6kJT2rakjz5GuNZ6gVNr+kiIIP6fcnokHNvuwFqXIcXfVzgdSjgQmvasGhbUdh3Sy2y+Spc8UAszD30mW/tJpbVNgJ0JbcfbqGvLJy9xvMy4rlyaPK6xGXV3LF3wO+2K4A9dnx5unV7pylX55JswKkRa/JshTPTWMPdfmiC+hkOr0qRTZVw/Se2LMLuOHLCIkQvuruFh4sMgOgnTcNJTL4hVvNGKUo01wh17ozfvBB9LfHmyim+K2GwxVG/rsBpxkgcrnLuc4Feo6LRBb8vPzsaB8VlLi6DA=|안전결제서비스|125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704110111467808|] +INFO [2014-07-04 11:01:11:468] <7731> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 11:01:11:474] <7731> Socket Open OK +INFO [2014-07-04 11:01:14:383] <7731> RecvMsg Length : [000083] +INFO [2014-07-04 11:01:14:383] <7731> RecvMsg : [acetel|0610|101996|55448058|17800|y|:20140704110023T83908|20140704110118|0100| +] +INFO [2014-07-04 11:01:14:383] <7731> Socket Close OK +INFO [2014-07-04 11:01:14:383] <7731> RecvMsg Length Check OK +INFO [2014-07-04 11:01:14:383] <7731> Send & Recv Msg End +INFO [2014-07-04 11:01:14:383] <7731> Send & Recv Msg OK +INFO [2014-07-04 11:01:14:384] <7731> Parse Msg Start +INFO [2014-07-04 11:01:14:384] <7731> card-isp RECV MSG Parsing OK +INFO [2014-07-04 11:01:14:384] <7731> Parse Msg End +INFO [2014-07-04 11:01:14:384] <7731> Msg Parsing OK +INFO [2014-07-04 11:01:14:384] <7731> card Pay Result Value [ +INFO [2014-07-04 11:01:14:384] <7731> NetCancID:AEGIS_ISP_acetel_20140704110111467808 +INFO [2014-07-04 11:01:14:384] <7731> rStoreId:acetel +INFO [2014-07-04 11:01:14:384] <7731> rBusiCd:0610 +INFO [2014-07-04 11:01:14:384] <7731> rOrdNo:20140704110023T83908 +INFO [2014-07-04 11:01:14:384] <7731> rDealNo:101996 +INFO [2014-07-04 11:01:14:384] <7731> rApprNo:55448058 +INFO [2014-07-04 11:01:14:384] <7731> rProdNm:핑크 드림 +INFO [2014-07-04 11:01:14:384] <7731> rAmt:17800 +INFO [2014-07-04 11:01:14:384] <7731> rInstmt:00 +INFO [2014-07-04 11:01:14:384] <7731> rSuccYn:y +INFO [2014-07-04 11:01:14:384] <7731> rResMsg::20140704110023T83908 +INFO [2014-07-04 11:01:14:384] <7731> rApprTm:20140704110118 +INFO [2014-07-04 11:01:14:384] <7731> rCardCd:0100 +INFO [2014-07-04 11:01:14:384] <7731> ] +INFO [2014-07-04 11:01:14:385] <7731> END :20140704110023T83908 Transaction time:[2.922sec] +INFO [2014-07-04 11:01:14:385] <7731> =============================================================== +INFO [2014-07-04 11:10:05:713] <8694> =============================================================== +INFO [2014-07-04 11:10:05:713] <8694> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 11:10:05:713] <8694> virtual Pay Start! +INFO [2014-07-04 11:10:05:713] <8694> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 11:10:05:713] <8694> StoreId:acetel +INFO [2014-07-04 11:10:05:713] <8694> log:true +INFO [2014-07-04 11:10:05:713] <8694> logLevel:INFO +INFO [2014-07-04 11:10:05:714] <8694> UseNetCancel:true +INFO [2014-07-04 11:10:05:714] <8694> Type:Pay +INFO [2014-07-04 11:10:05:714] <8694> RecvLen:7 +INFO [2014-07-04 11:10:05:714] <8694> AuthTy:virtual +INFO [2014-07-04 11:10:05:714] <8694> SubTy: +INFO [2014-07-04 11:10:05:714] <8694> OrdNo:20140704110942T55052 +INFO [2014-07-04 11:10:05:714] <8694> Amt:27250 +INFO [2014-07-04 11:10:05:714] <8694> UserEmail:test@empal.com +INFO [2014-07-04 11:10:05:714] <8694> ProdNm:로즈마리 1피스 +INFO [2014-07-04 11:10:05:714] <8694> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 11:10:05:714] <8694> UserId:test11 +INFO [2014-07-04 11:10:05:714] <8694> OrdNm:이름 +INFO [2014-07-04 11:10:05:714] <8694> OrdPhone:111-1111-1111 +INFO [2014-07-04 11:10:05:715] <8694> OrdAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 11:10:05:715] <8694> RcpNm:이름 +INFO [2014-07-04 11:10:05:715] <8694> RcpPhone:111-1111-1111 +INFO [2014-07-04 11:10:05:715] <8694> DlvAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 11:10:05:715] <8694> Remark: +INFO [2014-07-04 11:10:05:715] <8694> DeviId:9000400001 +INFO [2014-07-04 11:10:05:715] <8694> AuthYn:N +INFO [2014-07-04 11:10:05:715] <8694> Instmt: +INFO [2014-07-04 11:10:05:715] <8694> UserIp:125.131.234.203 +INFO [2014-07-04 11:10:05:715] <8694> partial_mm: +INFO [2014-07-04 11:10:05:715] <8694> noIntMonth: +INFO [2014-07-04 11:10:05:715] <8694> KVP_CURRENCY: +INFO [2014-07-04 11:10:05:715] <8694> KVP_CARDCODE: +INFO [2014-07-04 11:10:05:715] <8694> KVP_SESSIONKEY: +INFO [2014-07-04 11:10:05:716] <8694> KVP_ENCDATA: +INFO [2014-07-04 11:10:05:716] <8694> KVP_CONAME: +INFO [2014-07-04 11:10:05:716] <8694> KVP_NOINT: +INFO [2014-07-04 11:10:05:716] <8694> KVP_QUOTA: +INFO [2014-07-04 11:10:05:716] <8694> CardNo: +INFO [2014-07-04 11:10:05:716] <8694> MPI_CAVV: +INFO [2014-07-04 11:10:05:716] <8694> MPI_ECI: +INFO [2014-07-04 11:10:05:716] <8694> MPI_MD64: +INFO [2014-07-04 11:10:05:716] <8694> ExpMon: +INFO [2014-07-04 11:10:05:716] <8694> ExpYear: +INFO [2014-07-04 11:10:05:716] <8694> Passwd: +INFO [2014-07-04 11:10:05:716] <8694> SocId: +INFO [2014-07-04 11:10:05:716] <8694> HP_SERVERINFO: +INFO [2014-07-04 11:10:05:716] <8694> HP_HANDPHONE: +INFO [2014-07-04 11:10:05:716] <8694> HP_COMPANY: +INFO [2014-07-04 11:10:05:716] <8694> HP_ID: +INFO [2014-07-04 11:10:05:716] <8694> HP_SUBID: +INFO [2014-07-04 11:10:05:717] <8694> HP_UNITType: +INFO [2014-07-04 11:10:05:717] <8694> HP_IDEN: +INFO [2014-07-04 11:10:05:717] <8694> HP_IPADDR: +INFO [2014-07-04 11:10:05:717] <8694> VIRTUAL_CENTERCD:20 +INFO [2014-07-04 11:10:05:717] <8694> VIRTUAL_DEPODT:20140709 +INFO [2014-07-04 11:10:05:717] <8694> ZuminCode:1212121234567 +INFO [2014-07-04 11:10:05:717] <8694> MallPage:/shop.php?goPage=OrderMobile;N;;27250;; +INFO [2014-07-04 11:10:05:717] <8694> VIRTUAL_NO:26359816918523 +INFO [2014-07-04 11:10:05:717] <8694> ES_SENDNO: +INFO [2014-07-04 11:10:05:717] <8694> Column1:222-2222-2222 +INFO [2014-07-04 11:10:05:717] <8694> Column2:222-2222-2222 +INFO [2014-07-04 11:10:05:717] <8694> Column3:0---virtualnormal +INFO [2014-07-04 11:10:05:717] <8694> Make NetCancel ID Start +INFO [2014-07-04 11:10:05:717] <8694> AEGIS_VIR_acetel_20140704111005717285 +INFO [2014-07-04 11:10:05:717] <8694> Make NetCancel ID End +INFO [2014-07-04 11:10:05:717] <8694> Make NetCancelID OK +INFO [2014-07-04 11:10:05:718] <8694> Make Msg Start +INFO [2014-07-04 11:10:05:718] <8694> virtual Make MSG OK +INFO [2014-07-04 11:10:05:718] <8694> Make Msg End +INFO [2014-07-04 11:10:05:718] <8694> Make Pay Msg OK +INFO [2014-07-04 11:10:05:718] <8694> Send & Recv Msg Start +INFO [2014-07-04 11:10:05:718] <8694> Send Data To PG Start [ +INFO [2014-07-04 11:10:05:718] <8694> 0:000380Vvir_n +INFO [2014-07-04 11:10:05:718] <8694> 1:acetel +INFO [2014-07-04 11:10:05:718] <8694> 2:20140704110942T55052 +INFO [2014-07-04 11:10:05:718] <8694> 3:20 +INFO [2014-07-04 11:10:05:718] <8694> 4:26359816918523 +INFO [2014-07-04 11:10:05:718] <8694> 5:27250 +INFO [2014-07-04 11:10:05:718] <8694> 6:20140709 +INFO [2014-07-04 11:10:05:718] <8694> 7:이름 +INFO [2014-07-04 11:10:05:718] <8694> 8:1212121234567 +INFO [2014-07-04 11:10:05:718] <8694> 9:111-1111-1111 +INFO [2014-07-04 11:10:05:718] <8694> 10:test@empal.com +INFO [2014-07-04 11:10:05:718] <8694> 11:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 11:10:05:718] <8694> 12:이름 +INFO [2014-07-04 11:10:05:718] <8694> 13:111-1111-1111 +INFO [2014-07-04 11:10:05:718] <8694> 14:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 11:10:05:718] <8694> 15:로즈마리 1피스 +INFO [2014-07-04 11:10:05:718] <8694> 16: +INFO [2014-07-04 11:10:05:718] <8694> 17:http://sample.phpweb.co.kr +INFO [2014-07-04 11:10:05:718] <8694> 18:/shop.php?goPage=OrderMobile;N;;27250;; +INFO [2014-07-04 11:10:05:718] <8694> 19:AEGIS_VIR_acetel_20140704111005717285 +INFO [2014-07-04 11:10:05:718] <8694> 20: +INFO [2014-07-04 11:10:05:719] <8694> ] Send Data To PG End +INFO [2014-07-04 11:10:05:719] <8694> SendMsg : [000380Vvir_n|acetel|20140704110942T55052|20|26359816918523|27250|20140709|이름|1212121234567|111-1111-1111|test@empal.com|135-722---서울 강남구 신사동 강남빌딩---1234|이름|111-1111-1111|135-722---서울 강남구 신사동 강남빌딩---1234|로즈마리 1피스||http://sample.phpweb.co.kr|/shop.php?goPage=OrderMobile;N;;27250;;|AEGIS_VIR_acetel_20140704111005717285|] +INFO [2014-07-04 11:10:05:719] <8694> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 11:10:05:723] <8694> Socket Open OK +INFO [2014-07-04 11:10:05:926] <8694> RecvMsg Length : [000054] +INFO [2014-07-04 11:10:05:926] <8694> RecvMsg : [vir_n|acetel|20140704111009|26359816918523|y||] +INFO [2014-07-04 11:10:05:926] <8694> Socket Close OK +INFO [2014-07-04 11:10:05:926] <8694> RecvMsg Length Check OK +INFO [2014-07-04 11:10:05:926] <8694> Send & Recv Msg End +INFO [2014-07-04 11:10:05:926] <8694> Send & Recv Msg OK +INFO [2014-07-04 11:10:05:926] <8694> Parse Msg Start +INFO [2014-07-04 11:10:05:926] <8694> virtual RECV MSG Parsing OK +INFO [2014-07-04 11:10:05:926] <8694> Parse Msg End +INFO [2014-07-04 11:10:05:926] <8694> Msg Parsing OK +INFO [2014-07-04 11:10:05:926] <8694> virtual Pay Result Value [ +INFO [2014-07-04 11:10:05:926] <8694> NetCancID:AEGIS_VIR_acetel_20140704111005717285 +INFO [2014-07-04 11:10:05:926] <8694> rAuthTy:vir_n +INFO [2014-07-04 11:10:05:926] <8694> rStoreId:acetel +INFO [2014-07-04 11:10:05:926] <8694> rApprTm:20140704111009 +INFO [2014-07-04 11:10:05:927] <8694> rVirNo:26359816918523 +INFO [2014-07-04 11:10:05:927] <8694> rSuccYn:y +INFO [2014-07-04 11:10:05:927] <8694> rResMsg: +INFO [2014-07-04 11:10:05:927] <8694> rOrdNo:20140704110942T55052 +INFO [2014-07-04 11:10:05:927] <8694> rProdNm:로즈마리 1피스 +INFO [2014-07-04 11:10:05:927] <8694> rAmt:27250 +INFO [2014-07-04 11:10:05:927] <8694> ] +INFO [2014-07-04 11:10:05:927] <8694> END Transaction time:[0.214sec] +INFO [2014-07-04 11:10:05:927] <8694> =============================================================== diff --git a/module/shop/pg/agspay_bak/log/AgsPay40_php_aegis_160120.log b/module/shop/pg/agspay_bak/log/AgsPay40_php_aegis_160120.log new file mode 100644 index 0000000..598ddb7 --- /dev/null +++ b/module/shop/pg/agspay_bak/log/AgsPay40_php_aegis_160120.log @@ -0,0 +1,142 @@ +INFO [2016-01-20 13:00:24:650] <28525> =============================================================== +INFO [2016-01-20 13:00:24:650] <28525> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.17) +INFO [2016-01-20 13:00:24:650] <28525> card Pay Start! +INFO [2016-01-20 13:00:24:650] <28525> AgsPayHome:/home/c4trading/www/module/shop/pg/agspay +INFO [2016-01-20 13:00:24:650] <28525> StoreId:aegis +INFO [2016-01-20 13:00:24:650] <28525> log:true +INFO [2016-01-20 13:00:24:650] <28525> logLevel:INFO +INFO [2016-01-20 13:00:24:650] <28525> UseNetCancel:true +INFO [2016-01-20 13:00:24:650] <28525> Type:Pay +INFO [2016-01-20 13:00:24:650] <28525> RecvLen:7 +INFO [2016-01-20 13:00:24:650] <28525> AuthTy:card +INFO [2016-01-20 13:00:24:651] <28525> SubTy:visa3d +INFO [2016-01-20 13:00:24:651] <28525> OrdNo:20160120125726T83809 +INFO [2016-01-20 13:00:24:651] <28525> Amt:3005 +INFO [2016-01-20 13:00:24:651] <28525> UserEmail:test@test.com +INFO [2016-01-20 13:00:24:651] <28525> ProdNm:[TM-AK001]ٸ ƮϷ +INFO [2016-01-20 13:00:24:651] <28525> MallUrl:http://c4trading.phpweb.co.kr +INFO [2016-01-20 13:00:24:651] <28525> UserId:test +INFO [2016-01-20 13:00:24:651] <28525> OrdNm: +INFO [2016-01-20 13:00:24:651] <28525> OrdPhone:02-512-5555 +INFO [2016-01-20 13:00:24:651] <28525> OrdAddr: Ż絿512 +INFO [2016-01-20 13:00:24:651] <28525> RcpNm:test +INFO [2016-01-20 13:00:24:651] <28525> RcpPhone:02-512-5555 +INFO [2016-01-20 13:00:24:652] <28525> DlvAddr: Ż絿512 +INFO [2016-01-20 13:00:24:652] <28525> Remark: +INFO [2016-01-20 13:00:24:652] <28525> DeviId:9000400001 +INFO [2016-01-20 13:00:24:652] <28525> AuthYn:N;175.223.10.224;N;;3005;;null; +INFO [2016-01-20 13:00:24:652] <28525> Instmt:00 +INFO [2016-01-20 13:00:24:652] <28525> UserIp:175.223.10.224 +INFO [2016-01-20 13:00:24:652] <28525> partial_mm:00 +INFO [2016-01-20 13:00:24:652] <28525> noIntMonth: +INFO [2016-01-20 13:00:24:652] <28525> KVP_CURRENCY: +INFO [2016-01-20 13:00:24:652] <28525> KVP_CARDCODE: +INFO [2016-01-20 13:00:24:652] <28525> KVP_SESSIONKEY: +INFO [2016-01-20 13:00:24:652] <28525> KVP_ENCDATA: +INFO [2016-01-20 13:00:24:653] <28525> KVP_CONAME: +INFO [2016-01-20 13:00:24:653] <28525> KVP_NOINT: +INFO [2016-01-20 13:00:24:653] <28525> KVP_QUOTA: +INFO [2016-01-20 13:00:24:653] <28525> CardNo:5107375970411630 +INFO [2016-01-20 13:00:24:653] <28525> MPI_CAVV:AAABAZOIZyAWASASWIhnAAAAMSQ= +INFO [2016-01-20 13:00:24:653] <28525> MPI_ECI:05 +INFO [2016-01-20 13:00:24:653] <28525> MPI_MD64:MjAxNjAxMjAxMjU3NDY2NjAxMDY= +INFO [2016-01-20 13:00:24:653] <28525> ExpMon:2049 +INFO [2016-01-20 13:00:24:653] <28525> ExpYear:12 +INFO [2016-01-20 13:00:24:653] <28525> Passwd: +INFO [2016-01-20 13:00:24:653] <28525> SocId: +INFO [2016-01-20 13:00:24:653] <28525> HP_SERVERINFO: +INFO [2016-01-20 13:00:24:654] <28525> HP_HANDPHONE: +INFO [2016-01-20 13:00:24:654] <28525> HP_COMPANY: +INFO [2016-01-20 13:00:24:654] <28525> HP_ID: +INFO [2016-01-20 13:00:24:654] <28525> HP_SUBID: +INFO [2016-01-20 13:00:24:654] <28525> HP_UNITType: +INFO [2016-01-20 13:00:24:654] <28525> HP_IDEN: +INFO [2016-01-20 13:00:24:654] <28525> HP_IPADDR: +INFO [2016-01-20 13:00:24:654] <28525> VIRTUAL_CENTERCD: +INFO [2016-01-20 13:00:24:654] <28525> VIRTUAL_DEPODT: +INFO [2016-01-20 13:00:24:654] <28525> ZuminCode: +INFO [2016-01-20 13:00:24:654] <28525> MallPage: +INFO [2016-01-20 13:00:24:654] <28525> VIRTUAL_NO: +INFO [2016-01-20 13:00:24:655] <28525> ES_SENDNO: +INFO [2016-01-20 13:00:24:655] <28525> Column1: +INFO [2016-01-20 13:00:24:655] <28525> Column2: +INFO [2016-01-20 13:00:24:655] <28525> Column3: +INFO [2016-01-20 13:00:24:655] <28525> Make NetCancel ID Start +INFO [2016-01-20 13:00:24:655] <28525> AEGIS_VISAaegis_20160120130024655937 +INFO [2016-01-20 13:00:24:655] <28525> Make NetCancel ID End +INFO [2016-01-20 13:00:24:655] <28525> Make NetCancelID OK +INFO [2016-01-20 13:00:24:655] <28525> Make Msg Start +INFO [2016-01-20 13:00:24:655] <28525> Encrypt Start +INFO [2016-01-20 13:00:24:656] <28525> Encrypt End +INFO [2016-01-20 13:00:24:656] <28525> Encrypt Start +INFO [2016-01-20 13:00:24:656] <28525> Encrypt End +INFO [2016-01-20 13:00:24:656] <28525> Encrypt Start +INFO [2016-01-20 13:00:24:656] <28525> Encrypt End +INFO [2016-01-20 13:00:24:656] <28525> Encrypt Start +INFO [2016-01-20 13:00:24:656] <28525> Encrypt End +INFO [2016-01-20 13:00:24:656] <28525> card-visa3d Make MSG OK +INFO [2016-01-20 13:00:24:656] <28525> Make Msg End +INFO [2016-01-20 13:00:24:656] <28525> Make Pay Msg OK +INFO [2016-01-20 13:00:24:657] <28525> Send & Recv Msg Start +INFO [2016-01-20 13:00:24:657] <28525> Send Data To PG Start [ +INFO [2016-01-20 13:00:24:657] <28525> 0:0003410plug15 +INFO [2016-01-20 13:00:24:657] <28525> 1:aegis +INFO [2016-01-20 13:00:24:657] <28525> 2:test +INFO [2016-01-20 13:00:24:657] <28525> 3:3005 +INFO [2016-01-20 13:00:24:657] <28525> 4:20160120125726T83809 +INFO [2016-01-20 13:00:24:657] <28525> 5:9000400001 +INFO [2016-01-20 13:00:24:657] <28525> 6:0002992658701190 +INFO [2016-01-20 13:00:24:657] <28525> 7:914306 +INFO [2016-01-20 13:00:24:657] <28525> 8:00 +INFO [2016-01-20 13:00:24:657] <28525> 9:N;175.223.10.224;N;;3005;;null; +INFO [2016-01-20 13:00:24:657] <28525> 10: +INFO [2016-01-20 13:00:24:657] <28525> 11: +INFO [2016-01-20 13:00:24:657] <28525> 12:test +INFO [2016-01-20 13:00:24:657] <28525> 13:02-512-5555 +INFO [2016-01-20 13:00:24:657] <28525> 14: Ż絿512 +INFO [2016-01-20 13:00:24:657] <28525> 15: +INFO [2016-01-20 13:00:24:657] <28525> 16:175.223.10.224;02-512-5555 +INFO [2016-01-20 13:00:24:657] <28525> 17:test@test.com; +INFO [2016-01-20 13:00:24:657] <28525> 18:[TM-AK001]ٸ ƮϷ +INFO [2016-01-20 13:00:24:657] <28525> 19:AAABAZOIZyAWASASWIhnAAAAMSQ= +INFO [2016-01-20 13:00:24:657] <28525> 20:MjAxNjAxMjAxMjU3NDY2NjAxMDY= +INFO [2016-01-20 13:00:24:657] <28525> 21:05 +INFO [2016-01-20 13:00:24:657] <28525> 22:test@test.com +INFO [2016-01-20 13:00:24:657] <28525> 23:AEGIS_VISAaegis_20160120130024655937 +INFO [2016-01-20 13:00:24:657] <28525> 24: +INFO [2016-01-20 13:00:24:657] <28525> ] Send Data To PG End +INFO [2016-01-20 13:00:24:657] <28525> SendMsg : [0003410plug15|aegis|test|3005|20160120125726T83809|9000400001|0002992658701190|914306|00|N;175.223.10.224;N;;3005;;null;|||test|02-512-5555| Ż絿512||175.223.10.224;02-512-5555|test@test.com;|[TM-AK001]ٸ ƮϷ|AAABAZOIZyAWASASWIhnAAAAMSQ=|MjAxNjAxMjAxMjU3NDY2NjAxMDY=|05|test@test.com|AEGIS_VISAaegis_20160120130024655937|] +INFO [2016-01-20 13:00:24:657] <28525> Connect IP:[220.85.12.3] Port:[29760] +INFO [2016-01-20 13:00:24:683] <28525> Socket Open OK +INFO [2016-01-20 13:00:24:823] <28525> RecvMsg Length : [000117] +INFO [2016-01-20 13:00:24:823] <28525> RecvMsg : [aegis|0610|20160120125726T83809|10144608|000000003005|y|||20160120130028|0500|18570317|0500||558076| +] +INFO [2016-01-20 13:00:24:823] <28525> Socket Close OK +INFO [2016-01-20 13:00:24:823] <28525> RecvMsg Length Check OK +INFO [2016-01-20 13:00:24:823] <28525> Send & Recv Msg End +INFO [2016-01-20 13:00:24:823] <28525> Send & Recv Msg OK +INFO [2016-01-20 13:00:24:823] <28525> Parse Msg Start +INFO [2016-01-20 13:00:24:823] <28525> card-visa3d RECV MSG Parsing OK +INFO [2016-01-20 13:00:24:824] <28525> Parse Msg End +INFO [2016-01-20 13:00:24:824] <28525> Msg Parsing OK +INFO [2016-01-20 13:00:24:824] <28525> card Pay Result Value [ +INFO [2016-01-20 13:00:24:824] <28525> NetCancID:AEGIS_VISAaegis_20160120130024655937 +INFO [2016-01-20 13:00:24:824] <28525> rStoreId:aegis +INFO [2016-01-20 13:00:24:824] <28525> rBusiCd:0610 +INFO [2016-01-20 13:00:24:824] <28525> rOrdNo:20160120125726T83809 +INFO [2016-01-20 13:00:24:824] <28525> rApprNo:10144608 +INFO [2016-01-20 13:00:24:824] <28525> rInstmt:00 +INFO [2016-01-20 13:00:24:824] <28525> rAmt:000000003005 +INFO [2016-01-20 13:00:24:824] <28525> rSuccYn:y +INFO [2016-01-20 13:00:24:825] <28525> rResMsg: +INFO [2016-01-20 13:00:24:825] <28525> rCardNm: +INFO [2016-01-20 13:00:24:825] <28525> rApprTm:20160120130028 +INFO [2016-01-20 13:00:24:825] <28525> rCardCd:0500 +INFO [2016-01-20 13:00:24:825] <28525> rMembNo:18570317 +INFO [2016-01-20 13:00:24:825] <28525> rAquiCd:0500 +INFO [2016-01-20 13:00:24:825] <28525> rAquiNm: +INFO [2016-01-20 13:00:24:825] <28525> rDealNo:558076 +INFO [2016-01-20 13:00:24:825] <28525> rProdNm:[TM-AK001]ٸ ƮϷ +INFO [2016-01-20 13:00:24:825] <28525> ] +INFO [2016-01-20 13:00:24:825] <28525> END Transaction time:[0.18sec] +INFO [2016-01-20 13:00:24:825] <28525> =============================================================== diff --git a/module/shop/pg/agspay_bak/log/AgsPay40_php_aegis_160122.log b/module/shop/pg/agspay_bak/log/AgsPay40_php_aegis_160122.log new file mode 100644 index 0000000..03b4c23 --- /dev/null +++ b/module/shop/pg/agspay_bak/log/AgsPay40_php_aegis_160122.log @@ -0,0 +1,142 @@ +INFO [2016-01-22 10:06:16:5] <3239> =============================================================== +INFO [2016-01-22 10:06:16:5] <3239> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.17) +INFO [2016-01-22 10:06:16:5] <3239> card Pay Start! +INFO [2016-01-22 10:06:16:5] <3239> AgsPayHome:/home/igrowlaser/www/module/shop/pg/agspay +INFO [2016-01-22 10:06:16:5] <3239> StoreId:aegis +INFO [2016-01-22 10:06:16:5] <3239> log:true +INFO [2016-01-22 10:06:16:5] <3239> logLevel:INFO +INFO [2016-01-22 10:06:16:5] <3239> UseNetCancel:true +INFO [2016-01-22 10:06:16:5] <3239> Type:Pay +INFO [2016-01-22 10:06:16:5] <3239> RecvLen:7 +INFO [2016-01-22 10:06:16:6] <3239> AuthTy:card +INFO [2016-01-22 10:06:16:6] <3239> SubTy:visa3d +INFO [2016-01-22 10:06:16:6] <3239> OrdNo:20160122100538T33033 +INFO [2016-01-22 10:06:16:6] <3239> Amt:3001 +INFO [2016-01-22 10:06:16:6] <3239> UserEmail:test@test.com +INFO [2016-01-22 10:06:16:6] <3239> ProdNm:iGrow Hair Growth System +INFO [2016-01-22 10:06:16:6] <3239> MallUrl:http://igrowlaser.phpweb.co.kr +INFO [2016-01-22 10:06:16:6] <3239> UserId:test +INFO [2016-01-22 10:06:16:6] <3239> OrdNm: +INFO [2016-01-22 10:06:16:6] <3239> OrdPhone:02-512-5555 +INFO [2016-01-22 10:06:16:6] <3239> OrdAddr: Ż絿512 +INFO [2016-01-22 10:06:16:6] <3239> RcpNm:test +INFO [2016-01-22 10:06:16:7] <3239> RcpPhone:02-512-5555 +INFO [2016-01-22 10:06:16:7] <3239> DlvAddr: Ż絿512 +INFO [2016-01-22 10:06:16:7] <3239> Remark: +INFO [2016-01-22 10:06:16:7] <3239> DeviId:9000400001 +INFO [2016-01-22 10:06:16:7] <3239> AuthYn:N;175.223.21.117;N;;3001;;null; +INFO [2016-01-22 10:06:16:7] <3239> Instmt:00 +INFO [2016-01-22 10:06:16:7] <3239> UserIp:175.223.21.117 +INFO [2016-01-22 10:06:16:7] <3239> partial_mm:00 +INFO [2016-01-22 10:06:16:7] <3239> noIntMonth: +INFO [2016-01-22 10:06:16:7] <3239> KVP_CURRENCY: +INFO [2016-01-22 10:06:16:7] <3239> KVP_CARDCODE: +INFO [2016-01-22 10:06:16:7] <3239> KVP_SESSIONKEY: +INFO [2016-01-22 10:06:16:8] <3239> KVP_ENCDATA: +INFO [2016-01-22 10:06:16:8] <3239> KVP_CONAME: +INFO [2016-01-22 10:06:16:8] <3239> KVP_NOINT: +INFO [2016-01-22 10:06:16:8] <3239> KVP_QUOTA: +INFO [2016-01-22 10:06:16:8] <3239> CardNo:5107375970411630 +INFO [2016-01-22 10:06:16:8] <3239> MPI_CAVV:AAABAZdlQyAWASIQBmVDAAAAMSQ= +INFO [2016-01-22 10:06:16:8] <3239> MPI_ECI:05 +INFO [2016-01-22 10:06:16:8] <3239> MPI_MD64:MjAxNjAxMjIxMDA1NTU2NDgxMDY= +INFO [2016-01-22 10:06:16:8] <3239> ExpMon:2049 +INFO [2016-01-22 10:06:16:8] <3239> ExpYear:12 +INFO [2016-01-22 10:06:16:8] <3239> Passwd: +INFO [2016-01-22 10:06:16:9] <3239> SocId: +INFO [2016-01-22 10:06:16:9] <3239> HP_SERVERINFO: +INFO [2016-01-22 10:06:16:9] <3239> HP_HANDPHONE: +INFO [2016-01-22 10:06:16:9] <3239> HP_COMPANY: +INFO [2016-01-22 10:06:16:9] <3239> HP_ID: +INFO [2016-01-22 10:06:16:9] <3239> HP_SUBID: +INFO [2016-01-22 10:06:16:9] <3239> HP_UNITType: +INFO [2016-01-22 10:06:16:9] <3239> HP_IDEN: +INFO [2016-01-22 10:06:16:9] <3239> HP_IPADDR: +INFO [2016-01-22 10:06:16:9] <3239> VIRTUAL_CENTERCD: +INFO [2016-01-22 10:06:16:9] <3239> VIRTUAL_DEPODT: +INFO [2016-01-22 10:06:16:9] <3239> ZuminCode: +INFO [2016-01-22 10:06:16:10] <3239> MallPage: +INFO [2016-01-22 10:06:16:10] <3239> VIRTUAL_NO: +INFO [2016-01-22 10:06:16:10] <3239> ES_SENDNO: +INFO [2016-01-22 10:06:16:10] <3239> Column1: +INFO [2016-01-22 10:06:16:10] <3239> Column2: +INFO [2016-01-22 10:06:16:10] <3239> Column3: +INFO [2016-01-22 10:06:16:10] <3239> Make NetCancel ID Start +INFO [2016-01-22 10:06:16:10] <3239> AEGIS_VISAaegis_20160122100616010618 +INFO [2016-01-22 10:06:16:10] <3239> Make NetCancel ID End +INFO [2016-01-22 10:06:16:10] <3239> Make NetCancelID OK +INFO [2016-01-22 10:06:16:10] <3239> Make Msg Start +INFO [2016-01-22 10:06:16:11] <3239> Encrypt Start +INFO [2016-01-22 10:06:16:11] <3239> Encrypt End +INFO [2016-01-22 10:06:16:11] <3239> Encrypt Start +INFO [2016-01-22 10:06:16:11] <3239> Encrypt End +INFO [2016-01-22 10:06:16:11] <3239> Encrypt Start +INFO [2016-01-22 10:06:16:11] <3239> Encrypt End +INFO [2016-01-22 10:06:16:11] <3239> Encrypt Start +INFO [2016-01-22 10:06:16:11] <3239> Encrypt End +INFO [2016-01-22 10:06:16:11] <3239> card-visa3d Make MSG OK +INFO [2016-01-22 10:06:16:11] <3239> Make Msg End +INFO [2016-01-22 10:06:16:12] <3239> Make Pay Msg OK +INFO [2016-01-22 10:06:16:12] <3239> Send & Recv Msg Start +INFO [2016-01-22 10:06:16:12] <3239> Send Data To PG Start [ +INFO [2016-01-22 10:06:16:12] <3239> 0:0003400plug15 +INFO [2016-01-22 10:06:16:12] <3239> 1:aegis +INFO [2016-01-22 10:06:16:12] <3239> 2:test +INFO [2016-01-22 10:06:16:12] <3239> 3:3001 +INFO [2016-01-22 10:06:16:12] <3239> 4:20160122100538T33033 +INFO [2016-01-22 10:06:16:12] <3239> 5:9000400001 +INFO [2016-01-22 10:06:16:12] <3239> 6:0002992658701190 +INFO [2016-01-22 10:06:16:12] <3239> 7:914306 +INFO [2016-01-22 10:06:16:12] <3239> 8:00 +INFO [2016-01-22 10:06:16:12] <3239> 9:N;175.223.21.117;N;;3001;;null; +INFO [2016-01-22 10:06:16:12] <3239> 10: +INFO [2016-01-22 10:06:16:12] <3239> 11: +INFO [2016-01-22 10:06:16:12] <3239> 12:test +INFO [2016-01-22 10:06:16:12] <3239> 13:02-512-5555 +INFO [2016-01-22 10:06:16:12] <3239> 14: Ż絿512 +INFO [2016-01-22 10:06:16:12] <3239> 15: +INFO [2016-01-22 10:06:16:12] <3239> 16:175.223.21.117;02-512-5555 +INFO [2016-01-22 10:06:16:12] <3239> 17:test@test.com; +INFO [2016-01-22 10:06:16:12] <3239> 18:iGrow Hair Growth System +INFO [2016-01-22 10:06:16:12] <3239> 19:AAABAZdlQyAWASIQBmVDAAAAMSQ= +INFO [2016-01-22 10:06:16:12] <3239> 20:MjAxNjAxMjIxMDA1NTU2NDgxMDY= +INFO [2016-01-22 10:06:16:12] <3239> 21:05 +INFO [2016-01-22 10:06:16:12] <3239> 22:test@test.com +INFO [2016-01-22 10:06:16:12] <3239> 23:AEGIS_VISAaegis_20160122100616010618 +INFO [2016-01-22 10:06:16:12] <3239> 24: +INFO [2016-01-22 10:06:16:12] <3239> ] Send Data To PG End +INFO [2016-01-22 10:06:16:12] <3239> SendMsg : [0003400plug15|aegis|test|3001|20160122100538T33033|9000400001|0002992658701190|914306|00|N;175.223.21.117;N;;3001;;null;|||test|02-512-5555| Ż絿512||175.223.21.117;02-512-5555|test@test.com;|iGrow Hair Growth System|AAABAZdlQyAWASIQBmVDAAAAMSQ=|MjAxNjAxMjIxMDA1NTU2NDgxMDY=|05|test@test.com|AEGIS_VISAaegis_20160122100616010618|] +INFO [2016-01-22 10:06:16:12] <3239> Connect IP:[220.85.12.3] Port:[29760] +INFO [2016-01-22 10:06:16:37] <3239> Socket Open OK +INFO [2016-01-22 10:06:16:164] <3239> RecvMsg Length : [000117] +INFO [2016-01-22 10:06:16:164] <3239> RecvMsg : [aegis|0610|20160122100538T33033|10144668|000000003001|y|||20160122100618|0500|18570317|0500||504963| +] +INFO [2016-01-22 10:06:16:165] <3239> Socket Close OK +INFO [2016-01-22 10:06:16:165] <3239> RecvMsg Length Check OK +INFO [2016-01-22 10:06:16:165] <3239> Send & Recv Msg End +INFO [2016-01-22 10:06:16:165] <3239> Send & Recv Msg OK +INFO [2016-01-22 10:06:16:165] <3239> Parse Msg Start +INFO [2016-01-22 10:06:16:165] <3239> card-visa3d RECV MSG Parsing OK +INFO [2016-01-22 10:06:16:165] <3239> Parse Msg End +INFO [2016-01-22 10:06:16:165] <3239> Msg Parsing OK +INFO [2016-01-22 10:06:16:165] <3239> card Pay Result Value [ +INFO [2016-01-22 10:06:16:165] <3239> NetCancID:AEGIS_VISAaegis_20160122100616010618 +INFO [2016-01-22 10:06:16:165] <3239> rStoreId:aegis +INFO [2016-01-22 10:06:16:165] <3239> rBusiCd:0610 +INFO [2016-01-22 10:06:16:166] <3239> rOrdNo:20160122100538T33033 +INFO [2016-01-22 10:06:16:166] <3239> rApprNo:10144668 +INFO [2016-01-22 10:06:16:166] <3239> rInstmt:00 +INFO [2016-01-22 10:06:16:166] <3239> rAmt:000000003001 +INFO [2016-01-22 10:06:16:166] <3239> rSuccYn:y +INFO [2016-01-22 10:06:16:166] <3239> rResMsg: +INFO [2016-01-22 10:06:16:166] <3239> rCardNm: +INFO [2016-01-22 10:06:16:166] <3239> rApprTm:20160122100618 +INFO [2016-01-22 10:06:16:166] <3239> rCardCd:0500 +INFO [2016-01-22 10:06:16:166] <3239> rMembNo:18570317 +INFO [2016-01-22 10:06:16:166] <3239> rAquiCd:0500 +INFO [2016-01-22 10:06:16:167] <3239> rAquiNm: +INFO [2016-01-22 10:06:16:167] <3239> rDealNo:504963 +INFO [2016-01-22 10:06:16:167] <3239> rProdNm:iGrow Hair Growth System +INFO [2016-01-22 10:06:16:167] <3239> ] +INFO [2016-01-22 10:06:16:167] <3239> END Transaction time:[0.17sec] +INFO [2016-01-22 10:06:16:167] <3239> =============================================================== diff --git a/module/shop/pg/agspay_bak/log/AgsPay40_php_dosevent_160222.log b/module/shop/pg/agspay_bak/log/AgsPay40_php_dosevent_160222.log new file mode 100644 index 0000000..6f2af62 --- /dev/null +++ b/module/shop/pg/agspay_bak/log/AgsPay40_php_dosevent_160222.log @@ -0,0 +1,142 @@ +INFO [2016-02-22 16:54:12:387] <6089> =============================================================== +INFO [2016-02-22 16:54:12:396] <6089> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.14) +INFO [2016-02-22 16:54:12:396] <6089> card Pay Start! +INFO [2016-02-22 16:54:12:396] <6089> AgsPayHome:/home/igrowlaser/www/module/shop/pg/agspay +INFO [2016-02-22 16:54:12:396] <6089> StoreId:dosevent +INFO [2016-02-22 16:54:12:396] <6089> log:true +INFO [2016-02-22 16:54:12:396] <6089> logLevel:INFO +INFO [2016-02-22 16:54:12:396] <6089> UseNetCancel:true +INFO [2016-02-22 16:54:12:396] <6089> Type:Pay +INFO [2016-02-22 16:54:12:396] <6089> RecvLen:7 +INFO [2016-02-22 16:54:12:396] <6089> AuthTy:card +INFO [2016-02-22 16:54:12:396] <6089> SubTy:visa3d +INFO [2016-02-22 16:54:12:396] <6089> OrdNo:20160222165300T75209 +INFO [2016-02-22 16:54:12:397] <6089> Amt:4001 +INFO [2016-02-22 16:54:12:397] <6089> UserEmail:test@test.com +INFO [2016-02-22 16:54:12:397] <6089> ProdNm:׽Ʈ +INFO [2016-02-22 16:54:12:397] <6089> MallUrl:http://igrowlaser.kr +INFO [2016-02-22 16:54:12:397] <6089> UserId:test +INFO [2016-02-22 16:54:12:397] <6089> OrdNm: +INFO [2016-02-22 16:54:12:397] <6089> OrdPhone:02-512-5555 +INFO [2016-02-22 16:54:12:397] <6089> OrdAddr: Ż絿512 +INFO [2016-02-22 16:54:12:397] <6089> RcpNm:test +INFO [2016-02-22 16:54:12:397] <6089> RcpPhone:02-512-5555 +INFO [2016-02-22 16:54:12:397] <6089> DlvAddr: Ż絿512 +INFO [2016-02-22 16:54:12:397] <6089> Remark: +INFO [2016-02-22 16:54:12:397] <6089> DeviId:9000400001 +INFO [2016-02-22 16:54:12:397] <6089> AuthYn:N;39.7.56.60;N;;4001;;null; +INFO [2016-02-22 16:54:12:397] <6089> Instmt:00 +INFO [2016-02-22 16:54:12:397] <6089> UserIp:39.7.56.60 +INFO [2016-02-22 16:54:12:397] <6089> partial_mm:00 +INFO [2016-02-22 16:54:12:397] <6089> noIntMonth: +INFO [2016-02-22 16:54:12:397] <6089> KVP_CURRENCY: +INFO [2016-02-22 16:54:12:397] <6089> KVP_CARDCODE: +INFO [2016-02-22 16:54:12:397] <6089> KVP_SESSIONKEY: +INFO [2016-02-22 16:54:12:397] <6089> KVP_ENCDATA: +INFO [2016-02-22 16:54:12:398] <6089> KVP_CONAME: +INFO [2016-02-22 16:54:12:398] <6089> KVP_NOINT: +INFO [2016-02-22 16:54:12:398] <6089> KVP_QUOTA: +INFO [2016-02-22 16:54:12:398] <6089> CardNo:5107375970411630 +INFO [2016-02-22 16:54:12:398] <6089> MPI_CAVV:AAABAoQDFCAWAiIXIgMUAAAAMSQ= +INFO [2016-02-22 16:54:12:398] <6089> MPI_ECI:05 +INFO [2016-02-22 16:54:12:398] <6089> MPI_MD64:MjAxNjAyMjIxNzIyMTMzODcxMDY= +INFO [2016-02-22 16:54:12:398] <6089> ExpMon:2049 +INFO [2016-02-22 16:54:12:398] <6089> ExpYear:12 +INFO [2016-02-22 16:54:12:398] <6089> Passwd: +INFO [2016-02-22 16:54:12:398] <6089> SocId: +INFO [2016-02-22 16:54:12:398] <6089> HP_SERVERINFO: +INFO [2016-02-22 16:54:12:398] <6089> HP_HANDPHONE: +INFO [2016-02-22 16:54:12:398] <6089> HP_COMPANY: +INFO [2016-02-22 16:54:12:398] <6089> HP_ID: +INFO [2016-02-22 16:54:12:398] <6089> HP_SUBID: +INFO [2016-02-22 16:54:12:398] <6089> HP_UNITType: +INFO [2016-02-22 16:54:12:398] <6089> HP_IDEN: +INFO [2016-02-22 16:54:12:398] <6089> HP_IPADDR: +INFO [2016-02-22 16:54:12:398] <6089> VIRTUAL_CENTERCD: +INFO [2016-02-22 16:54:12:398] <6089> VIRTUAL_DEPODT: +INFO [2016-02-22 16:54:12:398] <6089> ZuminCode: +INFO [2016-02-22 16:54:12:399] <6089> MallPage: +INFO [2016-02-22 16:54:12:399] <6089> VIRTUAL_NO: +INFO [2016-02-22 16:54:12:399] <6089> ES_SENDNO: +INFO [2016-02-22 16:54:12:399] <6089> Column1: +INFO [2016-02-22 16:54:12:399] <6089> Column2: +INFO [2016-02-22 16:54:12:399] <6089> Column3: +INFO [2016-02-22 16:54:12:399] <6089> Make NetCancel ID Start +INFO [2016-02-22 16:54:12:399] <6089> AEGIS_VISAdosevent_20160222165412399676 +INFO [2016-02-22 16:54:12:399] <6089> Make NetCancel ID End +INFO [2016-02-22 16:54:12:399] <6089> Make NetCancelID OK +INFO [2016-02-22 16:54:12:399] <6089> Make Msg Start +INFO [2016-02-22 16:54:12:399] <6089> Encrypt Start +INFO [2016-02-22 16:54:12:399] <6089> Encrypt End +INFO [2016-02-22 16:54:12:399] <6089> Encrypt Start +INFO [2016-02-22 16:54:12:399] <6089> Encrypt End +INFO [2016-02-22 16:54:12:399] <6089> Encrypt Start +INFO [2016-02-22 16:54:12:399] <6089> Encrypt End +INFO [2016-02-22 16:54:12:399] <6089> Encrypt Start +INFO [2016-02-22 16:54:12:399] <6089> Encrypt End +INFO [2016-02-22 16:54:12:400] <6089> card-visa3d Make MSG OK +INFO [2016-02-22 16:54:12:400] <6089> Make Msg End +INFO [2016-02-22 16:54:12:400] <6089> Make Pay Msg OK +INFO [2016-02-22 16:54:12:400] <6089> Send & Recv Msg Start +INFO [2016-02-22 16:54:12:400] <6089> Send Data To PG Start [ +INFO [2016-02-22 16:54:12:400] <6089> 0:0003260plug15 +INFO [2016-02-22 16:54:12:400] <6089> 1:dosevent +INFO [2016-02-22 16:54:12:400] <6089> 2:test +INFO [2016-02-22 16:54:12:400] <6089> 3:4001 +INFO [2016-02-22 16:54:12:400] <6089> 4:20160222165300T75209 +INFO [2016-02-22 16:54:12:400] <6089> 5:9000400001 +INFO [2016-02-22 16:54:12:400] <6089> 6:0002992658701190 +INFO [2016-02-22 16:54:12:400] <6089> 7:914306 +INFO [2016-02-22 16:54:12:400] <6089> 8:00 +INFO [2016-02-22 16:54:12:400] <6089> 9:N;39.7.56.60;N;;4001;;null; +INFO [2016-02-22 16:54:12:400] <6089> 10: +INFO [2016-02-22 16:54:12:400] <6089> 11: +INFO [2016-02-22 16:54:12:400] <6089> 12:test +INFO [2016-02-22 16:54:12:400] <6089> 13:02-512-5555 +INFO [2016-02-22 16:54:12:400] <6089> 14: Ż絿512 +INFO [2016-02-22 16:54:12:400] <6089> 15: +INFO [2016-02-22 16:54:12:400] <6089> 16:39.7.56.60;02-512-5555 +INFO [2016-02-22 16:54:12:400] <6089> 17:test@test.com; +INFO [2016-02-22 16:54:12:400] <6089> 18:׽Ʈ +INFO [2016-02-22 16:54:12:400] <6089> 19:AAABAoQDFCAWAiIXIgMUAAAAMSQ= +INFO [2016-02-22 16:54:12:400] <6089> 20:MjAxNjAyMjIxNzIyMTMzODcxMDY= +INFO [2016-02-22 16:54:12:400] <6089> 21:05 +INFO [2016-02-22 16:54:12:400] <6089> 22:test@test.com +INFO [2016-02-22 16:54:12:400] <6089> 23:AEGIS_VISAdosevent_20160222165412399676 +INFO [2016-02-22 16:54:12:400] <6089> 24: +INFO [2016-02-22 16:54:12:400] <6089> ] Send Data To PG End +INFO [2016-02-22 16:54:12:400] <6089> SendMsg : [0003260plug15|dosevent|test|4001|20160222165300T75209|9000400001|0002992658701190|914306|00|N;39.7.56.60;N;;4001;;null;|||test|02-512-5555| Ż絿512||39.7.56.60;02-512-5555|test@test.com;|׽Ʈ|AAABAoQDFCAWAiIXIgMUAAAAMSQ=|MjAxNjAyMjIxNzIyMTMzODcxMDY=|05|test@test.com|AEGIS_VISAdosevent_20160222165412399676|] +INFO [2016-02-22 16:54:12:400] <6089> Connect IP:[220.85.12.3] Port:[29760] +INFO [2016-02-22 16:54:12:428] <6089> Socket Open OK +INFO [2016-02-22 16:54:13:343] <6089> RecvMsg Length : [000120] +INFO [2016-02-22 16:54:13:343] <6089> RecvMsg : [dosevent|0610|20160222165300T75209|44454069|000000004001|y|||20160222172253|0500|18570317|0500||564264| +] +INFO [2016-02-22 16:54:13:343] <6089> Socket Close OK +INFO [2016-02-22 16:54:13:343] <6089> RecvMsg Length Check OK +INFO [2016-02-22 16:54:13:343] <6089> Send & Recv Msg End +INFO [2016-02-22 16:54:13:343] <6089> Send & Recv Msg OK +INFO [2016-02-22 16:54:13:343] <6089> Parse Msg Start +INFO [2016-02-22 16:54:13:344] <6089> card-visa3d RECV MSG Parsing OK +INFO [2016-02-22 16:54:13:344] <6089> Parse Msg End +INFO [2016-02-22 16:54:13:344] <6089> Msg Parsing OK +INFO [2016-02-22 16:54:13:344] <6089> card Pay Result Value [ +INFO [2016-02-22 16:54:13:344] <6089> NetCancID:AEGIS_VISAdosevent_20160222165412399676 +INFO [2016-02-22 16:54:13:344] <6089> rStoreId:dosevent +INFO [2016-02-22 16:54:13:344] <6089> rBusiCd:0610 +INFO [2016-02-22 16:54:13:344] <6089> rOrdNo:20160222165300T75209 +INFO [2016-02-22 16:54:13:344] <6089> rApprNo:44454069 +INFO [2016-02-22 16:54:13:344] <6089> rInstmt:00 +INFO [2016-02-22 16:54:13:344] <6089> rAmt:000000004001 +INFO [2016-02-22 16:54:13:344] <6089> rSuccYn:y +INFO [2016-02-22 16:54:13:344] <6089> rResMsg: +INFO [2016-02-22 16:54:13:344] <6089> rCardNm: +INFO [2016-02-22 16:54:13:344] <6089> rApprTm:20160222172253 +INFO [2016-02-22 16:54:13:344] <6089> rCardCd:0500 +INFO [2016-02-22 16:54:13:344] <6089> rMembNo:18570317 +INFO [2016-02-22 16:54:13:344] <6089> rAquiCd:0500 +INFO [2016-02-22 16:54:13:344] <6089> rAquiNm: +INFO [2016-02-22 16:54:13:344] <6089> rDealNo:564264 +INFO [2016-02-22 16:54:13:344] <6089> rProdNm:׽Ʈ +INFO [2016-02-22 16:54:13:345] <6089> ] +INFO [2016-02-22 16:54:13:345] <6089> END Transaction time:[0.98sec] +INFO [2016-02-22 16:54:13:345] <6089> =============================================================== diff --git a/module/shop/pg/agspay_bak/log/AgsPay40_php_womenscare_170614.log b/module/shop/pg/agspay_bak/log/AgsPay40_php_womenscare_170614.log new file mode 100644 index 0000000..38f6e94 --- /dev/null +++ b/module/shop/pg/agspay_bak/log/AgsPay40_php_womenscare_170614.log @@ -0,0 +1,142 @@ +INFO [2017-06-14 18:29:50:686] <4200> =============================================================== +INFO [2017-06-14 18:29:50:686] <4200> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.14) +INFO [2017-06-14 18:29:50:686] <4200> card Pay Start! +INFO [2017-06-14 18:29:50:686] <4200> AgsPayHome:/home/igrowlaser/www/module/shop/pg/agspay +INFO [2017-06-14 18:29:50:686] <4200> StoreId:womenscare +INFO [2017-06-14 18:29:50:686] <4200> log:true +INFO [2017-06-14 18:29:50:686] <4200> logLevel:INFO +INFO [2017-06-14 18:29:50:686] <4200> UseNetCancel:true +INFO [2017-06-14 18:29:50:686] <4200> Type:Pay +INFO [2017-06-14 18:29:50:686] <4200> RecvLen:7 +INFO [2017-06-14 18:29:50:686] <4200> AuthTy:card +INFO [2017-06-14 18:29:50:686] <4200> SubTy:visa3d +INFO [2017-06-14 18:29:50:686] <4200> OrdNo:20170614182832T98020 +INFO [2017-06-14 18:29:50:686] <4200> Amt:4000 +INFO [2017-06-14 18:29:50:686] <4200> UserEmail:test@naver.com +INFO [2017-06-14 18:29:50:686] <4200> ProdNm:׽Ʈ +INFO [2017-06-14 18:29:50:687] <4200> MallUrl:http://igrowlaser.kr +INFO [2017-06-14 18:29:50:687] <4200> UserId:test +INFO [2017-06-14 18:29:50:687] <4200> OrdNm:׽Ʈ̵ +INFO [2017-06-14 18:29:50:687] <4200> OrdPhone:02-123-1234 +INFO [2017-06-14 18:29:50:687] <4200> OrdAddr: DZ 5 (Ÿ)123456 +INFO [2017-06-14 18:29:50:687] <4200> RcpNm:test +INFO [2017-06-14 18:29:50:687] <4200> RcpPhone:02-123-1234 +INFO [2017-06-14 18:29:50:687] <4200> DlvAddr: DZ 5 (Ÿ)123456 +INFO [2017-06-14 18:29:50:687] <4200> Remark: +INFO [2017-06-14 18:29:50:687] <4200> DeviId:9000400001 +INFO [2017-06-14 18:29:50:687] <4200> AuthYn:N;211.243.232.5;N;;4000;;null; +INFO [2017-06-14 18:29:50:687] <4200> Instmt:00 +INFO [2017-06-14 18:29:50:687] <4200> UserIp:211.243.232.5 +INFO [2017-06-14 18:29:50:687] <4200> partial_mm:00 +INFO [2017-06-14 18:29:50:687] <4200> noIntMonth: +INFO [2017-06-14 18:29:50:687] <4200> KVP_CURRENCY: +INFO [2017-06-14 18:29:50:687] <4200> KVP_CARDCODE: +INFO [2017-06-14 18:29:50:687] <4200> KVP_SESSIONKEY: +INFO [2017-06-14 18:29:50:687] <4200> KVP_ENCDATA: +INFO [2017-06-14 18:29:50:687] <4200> KVP_CONAME: +INFO [2017-06-14 18:29:50:687] <4200> KVP_NOINT: +INFO [2017-06-14 18:29:50:687] <4200> KVP_QUOTA: +INFO [2017-06-14 18:29:50:688] <4200> CardNo:5107373509616712 +INFO [2017-06-14 18:29:50:688] <4200> MPI_CAVV:AAABCSZZVSAXBhQYKVlVAAAAMSQ= +INFO [2017-06-14 18:29:50:688] <4200> MPI_ECI:05 +INFO [2017-06-14 18:29:50:688] <4200> MPI_MD64:MjAxNzA2MTQxODI5Mjk1MDkxMDY= +INFO [2017-06-14 18:29:50:688] <4200> ExpMon:2049 +INFO [2017-06-14 18:29:50:688] <4200> ExpYear:12 +INFO [2017-06-14 18:29:50:688] <4200> Passwd: +INFO [2017-06-14 18:29:50:688] <4200> SocId: +INFO [2017-06-14 18:29:50:688] <4200> HP_SERVERINFO: +INFO [2017-06-14 18:29:50:688] <4200> HP_HANDPHONE: +INFO [2017-06-14 18:29:50:688] <4200> HP_COMPANY: +INFO [2017-06-14 18:29:50:688] <4200> HP_ID: +INFO [2017-06-14 18:29:50:688] <4200> HP_SUBID: +INFO [2017-06-14 18:29:50:688] <4200> HP_UNITType: +INFO [2017-06-14 18:29:50:688] <4200> HP_IDEN: +INFO [2017-06-14 18:29:50:688] <4200> HP_IPADDR: +INFO [2017-06-14 18:29:50:688] <4200> VIRTUAL_CENTERCD: +INFO [2017-06-14 18:29:50:688] <4200> VIRTUAL_DEPODT: +INFO [2017-06-14 18:29:50:688] <4200> ZuminCode: +INFO [2017-06-14 18:29:50:688] <4200> MallPage: +INFO [2017-06-14 18:29:50:688] <4200> VIRTUAL_NO: +INFO [2017-06-14 18:29:50:688] <4200> ES_SENDNO: +INFO [2017-06-14 18:29:50:688] <4200> Column1: +INFO [2017-06-14 18:29:50:689] <4200> Column2: +INFO [2017-06-14 18:29:50:689] <4200> Column3: +INFO [2017-06-14 18:29:50:689] <4200> Make NetCancel ID Start +INFO [2017-06-14 18:29:50:689] <4200> AEGIS_VISAwomenscare_20170614182950689615 +INFO [2017-06-14 18:29:50:689] <4200> Make NetCancel ID End +INFO [2017-06-14 18:29:50:689] <4200> Make NetCancelID OK +INFO [2017-06-14 18:29:50:689] <4200> Make Msg Start +INFO [2017-06-14 18:29:50:689] <4200> Encrypt Start +INFO [2017-06-14 18:29:50:689] <4200> Encrypt End +INFO [2017-06-14 18:29:50:689] <4200> Encrypt Start +INFO [2017-06-14 18:29:50:689] <4200> Encrypt End +INFO [2017-06-14 18:29:50:689] <4200> Encrypt Start +INFO [2017-06-14 18:29:50:689] <4200> Encrypt End +INFO [2017-06-14 18:29:50:689] <4200> Encrypt Start +INFO [2017-06-14 18:29:50:689] <4200> Encrypt End +INFO [2017-06-14 18:29:50:689] <4200> card-visa3d Make MSG OK +INFO [2017-06-14 18:29:50:689] <4200> Make Msg End +INFO [2017-06-14 18:29:50:689] <4200> Make Pay Msg OK +INFO [2017-06-14 18:29:50:689] <4200> Send & Recv Msg Start +INFO [2017-06-14 18:29:50:690] <4200> Send Data To PG Start [ +INFO [2017-06-14 18:29:50:690] <4200> 0:0003540plug15 +INFO [2017-06-14 18:29:50:690] <4200> 1:womenscare +INFO [2017-06-14 18:29:50:690] <4200> 2:test +INFO [2017-06-14 18:29:50:690] <4200> 3:4000 +INFO [2017-06-14 18:29:50:690] <4200> 4:20170614182832T98020 +INFO [2017-06-14 18:29:50:690] <4200> 5:9000400001 +INFO [2017-06-14 18:29:50:690] <4200> 6:2817911916701190 +INFO [2017-06-14 18:29:50:690] <4200> 7:914306 +INFO [2017-06-14 18:29:50:690] <4200> 8:00 +INFO [2017-06-14 18:29:50:690] <4200> 9:N;211.243.232.5;N;;4000;;null; +INFO [2017-06-14 18:29:50:690] <4200> 10: +INFO [2017-06-14 18:29:50:690] <4200> 11: +INFO [2017-06-14 18:29:50:690] <4200> 12:test +INFO [2017-06-14 18:29:50:690] <4200> 13:02-123-1234 +INFO [2017-06-14 18:29:50:690] <4200> 14: DZ 5 (Ÿ)123456 +INFO [2017-06-14 18:29:50:690] <4200> 15:׽Ʈ̵ +INFO [2017-06-14 18:29:50:690] <4200> 16:211.243.232.5;02-123-1234 +INFO [2017-06-14 18:29:50:690] <4200> 17:test@naver.com; +INFO [2017-06-14 18:29:50:690] <4200> 18:׽Ʈ +INFO [2017-06-14 18:29:50:690] <4200> 19:AAABCSZZVSAXBhQYKVlVAAAAMSQ= +INFO [2017-06-14 18:29:50:690] <4200> 20:MjAxNzA2MTQxODI5Mjk1MDkxMDY= +INFO [2017-06-14 18:29:50:690] <4200> 21:05 +INFO [2017-06-14 18:29:50:690] <4200> 22:test@naver.com +INFO [2017-06-14 18:29:50:690] <4200> 23:AEGIS_VISAwomenscare_20170614182950689615 +INFO [2017-06-14 18:29:50:690] <4200> 24: +INFO [2017-06-14 18:29:50:690] <4200> ] Send Data To PG End +INFO [2017-06-14 18:29:50:690] <4200> SendMsg : [0003540plug15|womenscare|test|4000|20170614182832T98020|9000400001|2817911916701190|914306|00|N;211.243.232.5;N;;4000;;null;|||test|02-123-1234| DZ 5 (Ÿ)123456|׽Ʈ̵|211.243.232.5;02-123-1234|test@naver.com;|׽Ʈ|AAABCSZZVSAXBhQYKVlVAAAAMSQ=|MjAxNzA2MTQxODI5Mjk1MDkxMDY=|05|test@naver.com|AEGIS_VISAwomenscare_20170614182950689615|] +INFO [2017-06-14 18:29:50:690] <4200> Connect IP:[121.133.126.1] Port:[29760] +INFO [2017-06-14 18:29:50:693] <4200> Socket Open OK +INFO [2017-06-14 18:29:51:787] <4200> RecvMsg Length : [000122] +INFO [2017-06-14 18:29:51:787] <4200> RecvMsg : [womenscare|0610|20170614182832T98020|17653929|000000004000|y|||20170614182954|0500|18570317|0500||536007| +] +INFO [2017-06-14 18:29:51:787] <4200> Socket Close OK +INFO [2017-06-14 18:29:51:787] <4200> RecvMsg Length Check OK +INFO [2017-06-14 18:29:51:787] <4200> Send & Recv Msg End +INFO [2017-06-14 18:29:51:787] <4200> Send & Recv Msg OK +INFO [2017-06-14 18:29:51:787] <4200> Parse Msg Start +INFO [2017-06-14 18:29:51:787] <4200> card-visa3d RECV MSG Parsing OK +INFO [2017-06-14 18:29:51:788] <4200> Parse Msg End +INFO [2017-06-14 18:29:51:788] <4200> Msg Parsing OK +INFO [2017-06-14 18:29:51:788] <4200> card Pay Result Value [ +INFO [2017-06-14 18:29:51:788] <4200> NetCancID:AEGIS_VISAwomenscare_20170614182950689615 +INFO [2017-06-14 18:29:51:788] <4200> rStoreId:womenscare +INFO [2017-06-14 18:29:51:788] <4200> rBusiCd:0610 +INFO [2017-06-14 18:29:51:788] <4200> rOrdNo:20170614182832T98020 +INFO [2017-06-14 18:29:51:788] <4200> rApprNo:17653929 +INFO [2017-06-14 18:29:51:788] <4200> rInstmt:00 +INFO [2017-06-14 18:29:51:788] <4200> rAmt:000000004000 +INFO [2017-06-14 18:29:51:788] <4200> rSuccYn:y +INFO [2017-06-14 18:29:51:788] <4200> rResMsg: +INFO [2017-06-14 18:29:51:788] <4200> rCardNm: +INFO [2017-06-14 18:29:51:788] <4200> rApprTm:20170614182954 +INFO [2017-06-14 18:29:51:788] <4200> rCardCd:0500 +INFO [2017-06-14 18:29:51:788] <4200> rMembNo:18570317 +INFO [2017-06-14 18:29:51:788] <4200> rAquiCd:0500 +INFO [2017-06-14 18:29:51:788] <4200> rAquiNm: +INFO [2017-06-14 18:29:51:788] <4200> rDealNo:536007 +INFO [2017-06-14 18:29:51:788] <4200> rProdNm:׽Ʈ +INFO [2017-06-14 18:29:51:788] <4200> ] +INFO [2017-06-14 18:29:51:789] <4200> END Transaction time:[1.11sec] +INFO [2017-06-14 18:29:51:789] <4200> =============================================================== diff --git a/module/shop/pg/agspay_bak/progress.gif b/module/shop/pg/agspay_bak/progress.gif new file mode 100644 index 0000000..cec0ccb Binary files /dev/null and b/module/shop/pg/agspay_bak/progress.gif differ diff --git a/module/shop/pg/agspay_mobile.php b/module/shop/pg/agspay_mobile.php new file mode 100644 index 0000000..e0245c9 --- /dev/null +++ b/module/shop/pg/agspay_mobile.php @@ -0,0 +1,249 @@ + + + + + + +"> + +"> +"> +"> +"> +"> + +"> +"> +"> +"> +"> +"> +"> +"> +"> +"> +"> + + + + + + + + + +"> +"> +"> +"> +"> + + + + + + + diff --git a/module/shop/pg/agspay_mobile.php.bak b/module/shop/pg/agspay_mobile.php.bak new file mode 100644 index 0000000..f017f25 --- /dev/null +++ b/module/shop/pg/agspay_mobile.php.bak @@ -0,0 +1,264 @@ + + + + + + + +"> +"> +"> +"> +"> + +"> +"> +"> +"> +"> +"> +"> +"> +"> +"> +"> + + + + + + + + + +"> +"> +"> +"> +"> + + + + + + + diff --git a/module/shop/pg/agspay_mobile_result.php b/module/shop/pg/agspay_mobile_result.php new file mode 100644 index 0000000..041d3ed --- /dev/null +++ b/module/shop/pg/agspay_mobile_result.php @@ -0,0 +1,314 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    결제형태 : + +
    상점아이디 :
    주문번호 :
    주문자명 :
    상품명 :
    결제금액 :
    성공여부 :
    승인시각 :
    전문코드 :
    승인번호 :
    카드사코드 :
    거래번호 :
    카드사명 :
    매입사코드 :
    매입사명 :
    가맹점번호 :
    핸드폰결제TID :
    핸드폰결제날짜 :
    핸드폰결제핸드폰번호 :
    핸드폰결제통신사명 :
    입금계좌번호 :
    입금은행 :
    예금주명 : (주)이지스효성
    이지스에스크로(SEND_NO) :
     
    카드 이용명세서에 구입처가 이지스 엔터프라이즈(주)로 표기됩니다.
    + + diff --git a/module/shop/pg/agspay_result.php b/module/shop/pg/agspay_result.php new file mode 100644 index 0000000..0175cd0 --- /dev/null +++ b/module/shop/pg/agspay_result.php @@ -0,0 +1,376 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    결제형태 : + +
    상점아이디 :
    주문번호 :
    주문자명 :
    상품명 :
    결제금액 :
    성공여부 :
    처리메세지 :
    승인시각 :
    전문코드 :
    승인번호 :
    카드사코드 :
    카드사명 :
    매입사코드 :
    매입사명 :
    가맹점번호 :
    전표번호 :
    거래고유번호 :
    이체계좌은행명 :
    이체금액 :
    이체계좌소유주 :
    이지스에스크로(SEND_NO) :
    핸드폰결제TID :
    핸드폰결제날짜 :
    핸드폰결제핸드폰번호 :
    핸드폰결제통신사명 :
    ARS결제TID :
    ARS결제날짜 :
    ARS결제전화번호 :
    ARS결제통신사명 :
    입금계좌번호 :
    입금은행 :
    예금주명 : (주)이지스효성
    이지스에스크로(SEND_NO) :
    영수증 :
     
    카드 이용명세서에 구입처가 이지스효성(주)로 표기됩니다.
    원본 해쉬 :
    결과 해쉬 :
     
    + + diff --git a/module/shop/pg/daoupay/finish.php b/module/shop/pg/daoupay/finish.php new file mode 100644 index 0000000..346217e --- /dev/null +++ b/module/shop/pg/daoupay/finish.php @@ -0,0 +1,24 @@ + + + +SUCCESS + + diff --git a/module/shop/pg/daoupay/request.php b/module/shop/pg/daoupay/request.php new file mode 100644 index 0000000..7801e10 --- /dev/null +++ b/module/shop/pg/daoupay/request.php @@ -0,0 +1,127 @@ + + + + +ȭǰ + + + + +
    +"> + + + + + + + + + + + + + +"> + + + + + + + + + + + + + + +
    + + + + diff --git a/module/shop/pg/escrow/AGS_escrow.html b/module/shop/pg/escrow/AGS_escrow.html new file mode 100644 index 0000000..5145818 --- /dev/null +++ b/module/shop/pg/escrow/AGS_escrow.html @@ -0,0 +1,188 @@ + + +ôƮ + + + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     

    ôƮ ũ ŷ û ׽Ʈ
     
    + 1) ôƮ ũ û ü ° ϰ Ͽ Ͻʽÿ.
    + 2) ôƮ ũ ߼ û ʿ Է 'û'ư ŬϽʽÿ. +
     
    ǥô ʼ Է»Դϴ.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ŷڵ + +
    + +
    ID (20)
    (8)
    ŷȣ (6)
    ޴ȣ (13)Ȯ/û
    +

    + +
     
    +
    +
    + + diff --git a/module/shop/pg/escrow/AGS_escrow_ing.php b/module/shop/pg/escrow/AGS_escrow_ing.php new file mode 100644 index 0000000..e7b8299 --- /dev/null +++ b/module/shop/pg/escrow/AGS_escrow_ing.php @@ -0,0 +1,268 @@ +"; //ŷڵ +} + +if( empty( $PayKind ) || $PayKind == "" ) +{ + $ERRMSG .= " Է¿ Ȯο
    "; // +} + +if( empty( $RetailerId ) || $RetailerId == "" ) +{ + $ERRMSG .= "̵ Է¿ Ȯο
    "; //̵ +} + +if( empty( $DealTime ) || $DealTime == "" ) +{ + $ERRMSG .= " Է¿ Ȯο
    "; //ð +} + +if( empty( $SendNo ) || $SendNo == "" ) +{ + $ERRMSG .= "ŷȣ Է¿ Ȯο
    "; //ŷȣ +} + + +if( strlen($ERRMSG) == 0 ) +{ + /**************************************************************************** + * TrCode = "E100" ߼ۿϷ + * TrCode = "E200" Ȯ + * TrCode = "E300" Ű + * TrCode = "E400" + ****************************************************************************/ + + /**************************************************************************** + * + * [4] ߼ۿϷ/Ȯ/Ű/ҿû (E100/E101)/(E200/E201)/(E300/E301)/(E400/E401) + * + * -- ̴ Ŵ + * + * -- ߼ۿϷ û + * + ͱ(6) + ü ESCROW (1) + + * + ( "|" Ѵ.) + * ŷڵ(10) | (2) | üID(20) | ֹεϹȣ(13) | + * (8) | ŷȣ(6) | + * + * -- ߼ۿϷ + * + ͱ(6) + + * + ( "|" Ѵ. + * ŷڵ(10) |(2) | üID(20) | ڵ(2) | ޽(100) | + * + *****************************************************************************/ + + $ENCTYPE = "E"; + + /**************************************************************************** + * Make + ****************************************************************************/ + + $sDataMsg = $ENCTYPE. + $TrCode."|". + $PayKind."|". + $RetailerId."|". + $IdNo."|". + $DealTime."|". + $SendNo."|"; + + $sSendMsg = sprintf( "%06d%s", strlen( $sDataMsg ), $sDataMsg ); + + /**************************************************************************** + * + * ޼ Ʈ + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sSendMsg."
    "; + } + + /**************************************************************************** + * + * ȣȭProcess ϰ ۼ + * + ****************************************************************************/ + + $fp = fsockopen( $LOCALADDR, $LOCALPORT , &$errno, &$errstr, $CONN_TIMEOUT ); + + + if( !$fp ) + { + /** з ŷ ޼ **/ + + $rSuccYn = "n"; + $rResMsg = " з ŷ"; + } + else + { + /** ῡ ϿǷ ͸ ޴´. **/ + + $rResMsg = "ῡ ϿǷ ͸ ޴´."; + + + /** ȣȭProcess **/ + + fputs( $fp, $sSendMsg ); + + socket_set_timeout($fp, $READ_TIMEOUT); + + /** 6Ʈ ̸ üũ ͸ŭ ޴´. **/ + + $sRecvLen = fgets( $fp, 7 ); + $sRecvMsg = fgets( $fp, $sRecvLen + 1 ); + + /**************************************************************************** + * + * Ѿ ̺κ Ͽ ֽñ ٶϴ. + * PHP üũ ߻ ֽϴ + * ޼: () üũ ſ + * üũ Ʒ Ͽ Ͻʽÿ + * $sRecvLen = fgets( $fp, 6 ); + * $sRecvMsg = fgets( $fp, $sRecvLen ); + * + ****************************************************************************/ + + /** close **/ + + fclose( $fp ); + } + + /**************************************************************************** + * + * ޼ Ʈ + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sRecvMsg."
    "; + } + + if( strlen( $sRecvMsg ) == $sRecvLen ) + { + /** () üũ **/ + + $RecvValArray = array(); + $RecvValArray = explode( "|", $sRecvMsg ); + + $rTrCode = $RecvValArray[0]; + $rPayKind = $RecvValArray[1]; + $rRetailerId = $RecvValArray[2]; + $rSuccYn = $RecvValArray[3]; + $rResMsg = $RecvValArray[4]; + + /**************************************************************************** + * + * ũ ŵǾǷ DB ۾ + * ͸ ϱ ̺κп ϸȴ. + * + * TrCode = "E101" ߼ۿϷ + * TrCode = "E201" Ȯ + * TrCode = "E301" Ű + * TrCode = "E401" ҿû + * + * ⼭ DB ۾ ּ. + * ) $rSuccYn 'y' ϰ ũι۵ϹױȮμ + * ) $rSuccYn 'n' ϰ ũι۵ϹױȮν + * DB ۾ Ͻ $rSuccYn 'y' Ǵ 'n' ϰ쿡 ° ۾Ͻʽÿ. + * + ****************************************************************************/ + + + + + + + } + else + { + /** () üũ ſ з **/ + + $rSuccYn = "n"; + $rResMsg = " () üũ ſ "; + } +} +else +{ + $rSuccYn = "n"; + $rResMsg = $ERRMSG; +} +?> + + + + +
    + + + + + +
    + + diff --git a/module/shop/pg/escrow/AGS_escrow_result.php b/module/shop/pg/escrow/AGS_escrow_result.php new file mode 100644 index 0000000..50da770 --- /dev/null +++ b/module/shop/pg/escrow/AGS_escrow_result.php @@ -0,0 +1,124 @@ + + + +ôƮ + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +

    ŷ

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    ŷڵ : + +
    : + + +
    ̵ :
    :
    ó޼ :
     
    +

    Copyright AEGIS ENTERPRISE.Co.,Ltd. All rights reserved.
    +
    + + diff --git a/module/shop/pg/escrow/aegis_Func.php b/module/shop/pg/escrow/aegis_Func.php new file mode 100644 index 0000000..6bf63c4 --- /dev/null +++ b/module/shop/pg/escrow/aegis_Func.php @@ -0,0 +1,211 @@ + $Value ) + { + if( strcmp( $Value, $StoreId ) == 0 ) + { + $CurrTime = date( "H" ); + if( $CurrTime >= $Limit_StartTime[$Index] || $CurrTime < $Limit_EndTime[$Index] ) + { + print " + + "; + } + return; + } + } +} +*/ + +/* + Aegis ī嵥 Encrypt +*/ + +function encrypt_aegis( $OrgData ) +{ + if( empty( $OrgData ) || $OrgData == "" ) + { + return ""; + } + + $temp = ""; + for( $i = 0; $i < strlen( $OrgData ); $i++ ) + { + $temp .= substr( $OrgData, (strlen( $OrgData ) - 1) - $i, 1 ); + } + + //print "Reverse data : ".$temp."
    "; + + $one_char = ""; + $EncData = ""; + for( $i = 0; $i < strlen( $temp ); $i++ ) + { + $one_char = substr( $temp, $i, 1 ); + $EncData .= ($one_char + $i * 77) % 10 ; + } + + //print "Enc Data : ".$EncData."
    "; + + return $EncData; +} + +/* + ڿ +*/ +function format_string($TSTR,$TLEN,$TAG) +{ + if ( !isset($TSTR) ) + { + for ( $i=0 ; $i < $TLEN ; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + } + + $TSTR = trim($TSTR); + + $TSTR = stripslashes($TSTR); + + // Էڷᰡ ̺ ڸ ѱó + + if ( strlen($TSTR) > $TLEN ) + { + // $flag == 1 ̸ Ʈ ѱ Ʈ ̶ ű ڸ Ǹ + // ѱ Ǵ ߻մϴ. + + $flag = 0; + + for($i=0 ; $i< $TLEN ; $i++) + { + $j = ord($TSTR[$i]); // ASCII մϴ. + // ASCII 127 ũ Ʈ ѱ ۹Ʈ̰ų Ʈ(?) . + if($j > 127) + { + if( $flag ) $flag = 0; // $flag Ѵٴ ̹ ڴ ѱ Ʈ̱ + // $flag 0 ݴϴ. + else $flag = 1; // ѱ ۹Ʈ. ׷Ƿ $flag 1! + } + else $flag = 0; // ٸ ڳ ϶ ׳ Ѿ ǰ. + } + if( $flag ) + { + // ̷ ؼ ڱ $flag ؼ $flag ϸ + $TSTR = substr($TSTR, 0, $TLEN - 1); + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + else + { + // ѹƮ ؼ ڸ ڸ ؾ߰. + $TSTR = substr($TSTR, 0, $TLEN); // ƴ .... + } + + return $TSTR; // Ʈ ȯմϴ. + + // Էڷᰡ ̺ SPACE ä + } + else if ( strlen($TSTR) < $TLEN ) + { + $TLENGTH = strlen($TSTR); + for ( $i=0 ; $i < $TLEN - $TLENGTH; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + + return ($TSTR); + + // Էڷᰡ ̿ + } + else if ( strlen($TSTR) == $TLEN ) + { + return ($TSTR); + } +} + +/* + Է ڰ ھƽŰ شϴ Ǵ. +*/ +function IsNumber($word) +{ + + for($i = 0; $i < strlen($word); $i++) + { + $wordNum = ord( substr( $word, $i, 1 ) ); + + if( $wordNum < 48 || $wordNum > 57 ) + { + return false; + } + + } + + return true; +} +/* + ޼ +*/ +function AlertMsg( $msg , $go=0) +{ + + $msg = str_replace( "\"" ,"'" ,$msg ); + $msg = str_replace( "\n" ,"\\n" ,$msg ); + print ""; + +} +function HistoryGo( $go ) +{ + print ""; +} + +function AlertExit( $msg ) +{ + + AlertMsg( $msg ); + exit; + +} + +function AlertGoBack( $msg ) +{ + + AlertMsg( $msg, -1); + exit; +} + +?> \ No newline at end of file diff --git a/module/shop/pg/escrow/default.html b/module/shop/pg/escrow/default.html new file mode 100644 index 0000000..f18ad03 --- /dev/null +++ b/module/shop/pg/escrow/default.html @@ -0,0 +1,39 @@ + + +ôƮ + + + + + + + +
    + + + + + + + + + + + + + + + + + +
    ôƮ ũ ý

    ߼ۿϷ/Ȯ/Ű û߼ۿϷ/Ȯ/Ű óմϴ.

    Copyright AEGIS ENTERPRISE.Co.,Ltd. All rights reserved.
    +
    + + diff --git a/module/shop/pg/ksnet/KSPayWebHost.inc.php b/module/shop/pg/ksnet/KSPayWebHost.inc.php new file mode 100644 index 0000000..821e06b --- /dev/null +++ b/module/shop/pg/ksnet/KSPayWebHost.inc.php @@ -0,0 +1,138 @@ +payKey = $_payKey; + + if (empty($_rparams) || false === strpos($_rparams,$this->DEFAULT_DELIM)) + { + $this->rparams = $this->DEFAULT_RPARAMS; + }else + { + $this->rparams = $_rparams; + } + + $this->rnames = split($this->DEFAULT_DELIM, $this->rparams); + } + + public function kspay_get_value($pname) + { + if (empty($pname) || !is_array($this->rnames) || !is_array($this->rvalues) || count($this->rnames) != count($this->rvalues)) return null; + + return $this->rvalues[$pname]; + } + + public function kspay_send_msg($_mtype) + { + $this->mtype = $_mtype; + $rmsg = $this->send_url(); + + if (false === strpos($rmsg,$this->DEFAULT_DELIM)) return false; + + $tmpvals = split($this->DEFAULT_DELIM, $rmsg); + + if (count($this->rnames) < count($tmpvals)) + { + for($i=0; $irnames); $i++) + { + $this->rvalues[$this->rnames[$i]] = $tmpvals[$i+1]; + } + return true; + } + } + + var $KSPAY_WEBHOST_URI = "/store/KSPayFlashV1.3/web_host/recv_post.jsp"; + var $KSPAY_WEBHOST_HOST = "kspay.ksnet.to"; + var $KSPAY_WEBHOST_IP = "210.181.28.137"; + + //var $KSPAY_WEBHOST_HOST = "210.181.28.116"; + //var $KSPAY_WEBHOST_IP = "210.181.28.116"; + + function send_url() + { + $post_msg = "sndCommConId=" . $this->payKey . "&sndActionType=" . $this->mtype . "&sndRpyParams=" . urlencode($this->rparams); + + //$_my_url = "http://"; + //if (false === stripos($_SERVER['SERVER_PROTOCOL'], "HTTP/")) $_my_url = "https://"; + //$_my_url .= $_SERVER['SERVER_NAME']; + //if (!empty($_SERVER['SERVER_PORT']) && 80 != $_SERVER['SERVER_PORT'] && 443 != $_SERVER['SERVER_PORT']) $_my_url .= ":" . $_SERVER['SERVER_PORT']; + //$_my_url .= $_SERVER['PHP_SELF']; + + $req_msg = "POST " . $this->KSPAY_WEBHOST_URI . " HTTP/1.0\r\n"; + $req_msg .= "Host: " . $this->KSPAY_WEBHOST_HOST . "\r\n"; + //$req_msg .= "Referer: " . $_my_url . "\r\n"; + $req_msg .= "Accept-Language: ko\r\n"; + $req_msg .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\r\n"; + $req_msg .= "Content-type: application/x-www-form-urlencoded\r\n"; + $req_msg .= "Content-length: ".strlen($post_msg)."\r\n"; + $req_msg .= "Connection: close\r\n"; + $req_msg .= "\r\n"; + $req_msg .= $post_msg; + + $kspay_ipaddr = gethostbyname($this->KSPAY_WEBHOST_HOST); + $kspay_port = 80; +write_log("send_url:send(" . $this->payKey . ",".$kspay_ipaddr.",".$kspay_port.")=[".$post_msg."]"); + if ($kspay_ipaddr == $this->KSPAY_WEBHOST_HOST) + { + $kspay_ipaddr = $this->KSPAY_WEBHOST_IP; +write_log("CHECK: gethostbyname(" . $this->KSPAY_WEBHOST_HOST . "):X DEFALUT IP=[".$this->KSPAY_WEBHOST_IP."]"); + } + + $fp_socket = fsockopen($kspay_ipaddr, $kspay_port, $errno, $errstr, 60); + if($fp_socket) { + fwrite($fp_socket,$req_msg, strlen($req_msg)); + fflush($fp_socket); + while(!feof($fp_socket)) { + $rpy_msg .= fread($fp_socket, 8192); + } + } + fclose($fp_socket); + + $rtn_msg = ""; + $rpos = strpos($rpy_msg,"\r\n\r\n"); + + if ($rpos !== false) $rtn_msg = substr($rpy_msg, $rpos+4); + +write_log("send_url:recv(" . $this->payKey . ",".$kspay_ipaddr.",".$kspay_port.")=[".$rtn_msg."]"); + + return $rtn_msg; + } +} +?> \ No newline at end of file diff --git a/module/shop/pg/ksnet/kspay_wh_order.html b/module/shop/pg/ksnet/kspay_wh_order.html new file mode 100644 index 0000000..2eb7d06 --- /dev/null +++ b/module/shop/pg/ksnet/kspay_wh_order.html @@ -0,0 +1,245 @@ + + + + + +*** KSNET WebHost Sample [PHP] *** + + + + + + +
    + + + + + + + + + + +
    KSNET WebHost Sample [PHP]
    + + + + + + +
      + + + + + + + + + + + + + + + + + + + + +
    + 고객에게 보여지지 않아야 하는 설정값 항목
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    결제수단 + + +
    상점아이디
    주문번호
    + + 고객에게 보여주는 항목
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    상품명
    금액
    주문자명
    전자우편
    이동전화
    위의 파라미터는 기본파라미터만 정의되어있으며
    + 추가파라미터 기능추가는 소스상에 hidden으로 처리되어있으므로
    + 메뉴얼 참조후 세팅하여 사용하시면 됩니다.
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    +
     
    + + diff --git a/module/shop/pg/ksnet/kspay_wh_rcv.php b/module/shop/pg/ksnet/kspay_wh_rcv.php new file mode 100644 index 0000000..c43aa5d --- /dev/null +++ b/module/shop/pg/ksnet/kspay_wh_rcv.php @@ -0,0 +1,64 @@ + +4 && "https" == substr($_SERVER['SERVER_PROTOCOL'],0,5) ) + { + $p_protocol = "https"; + } +?> + + + + + +KSPay(<?echo($rcid)?>) + + + + + + + +
    + + + + + + +
    +
    + + \ No newline at end of file diff --git a/module/shop/pg/ksnet/kspay_wh_result.php b/module/shop/pg/ksnet/kspay_wh_result.php new file mode 100644 index 0000000..885d28a --- /dev/null +++ b/module/shop/pg/ksnet/kspay_wh_result.php @@ -0,0 +1,306 @@ + + +kspay_send_msg("1")) + { + $authyn = $ipg->kspay_get_value("authyn"); + $trno = $ipg->kspay_get_value("trno" ); + $trddt = $ipg->kspay_get_value("trddt" ); + $trdtm = $ipg->kspay_get_value("trdtm" ); + $amt = $ipg->kspay_get_value("amt" ); + $authno = $ipg->kspay_get_value("authno"); + $msg1 = $ipg->kspay_get_value("msg1" ); + $msg2 = $ipg->kspay_get_value("msg2" ); + $ordno = $ipg->kspay_get_value("ordno" ); + $isscd = $ipg->kspay_get_value("isscd" ); + $aqucd = $ipg->kspay_get_value("aqucd" ); + $temp_v = ""; + $result = $ipg->kspay_get_value("result"); + $halbu = $ipg->kspay_get_value("halbu"); + $cbtrno = $ipg->kspay_get_value("cbtrno"); + $cbauthno = $ipg->kspay_get_value("cbauthno"); + + if (!empty($msg1)) $msg1 = iconv("EUC-KR","UTF-8", $msg1); + if (!empty($msg2)) $msg2 = iconv("EUC-KR","UTF-8", $msg2); + + if (!empty($authyn) && 1 == strlen($authyn)) + { + if ($authyn == "O") + { + $resultcd = "0000"; + }else + { + $resultcd = trim($authno); + } + + //$ipg->kspay_send_msg("3"); // 정상처리가 완료되었을 경우 호출합니다.(이 과정이 없으면 일시적으로 kspay_send_msg("1")을 호출하여 거래내역 조회가 가능합니다.) + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + + //_POST 로 받는 주문번호가 기존에 주문된 주문번호인지 확인 + if(checkVaildOrderNo(mysql_escape_string($ordno))==true){ + jsMsg("이미 주문이 완료되었습니다."); + } + + //_POST 로 받은 주문번호가 구매직전 장바구니에 있는지 확인 + if($ordno != $arrList["list"][0]["order_no"]){ + jsMsg("잘못된 주문 정보 입니다. 주문 장바구니에 해당 주문건이 없습니다."); + } + + if(substr($result,0,1) == "6") { + $ordergb = "1"; + } else { + $ordergb = "6"; + + } + + //주문정보 입력 + $blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], $ordergb); + if($blnRS==true){ + //KCP 결제후 DB 입력처리 완료 변수 설정 + $bSucc = "true"; + + //주문자에게 메일발송 + $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_escape_string($_REQUEST["order_no"])); + $arrMailInfo = getMailConfig($ordergb); + //sendMailShopInfo($arrInfo, $arrMailInfo); + //주문자에게 메일발송 + } + + + //DB해제 + SetDisConn($dblink); + } + } +?> + + + + +
    + + + + +"> +"> +"> +"> +"> +"> +"> + +"> +"> +"> +"> +"> +"> +
    + + + diff --git a/module/shop/pg/kspay.php b/module/shop/pg/kspay.php new file mode 100644 index 0000000..46fec77 --- /dev/null +++ b/module/shop/pg/kspay.php @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/module/shop/pg/kspay_result.php b/module/shop/pg/kspay_result.php new file mode 100644 index 0000000..ea94f94 --- /dev/null +++ b/module/shop/pg/kspay_result.php @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    결제형태 : + +
    성공여부 : ()
    응답코드 :
    주문번호 :
    금액 :
    거래번호 : :KSNET에서 부여한 고유번호입니다.
    거래일자 :
    거래시간 :
    카드사 승인번호/은행 코드번호 : :카드사에서 부여한 번호로 고유한값은 아닙니다.
    발급사코드/가상계좌번호/계좌이체번호 :
    매입사코드 :
    영수증출력 :
    현금영수증출력 :
    + diff --git a/module/shop/pg_bak/agspay.php b/module/shop/pg_bak/agspay.php new file mode 100644 index 0000000..9d5ca60 --- /dev/null +++ b/module/shop/pg_bak/agspay.php @@ -0,0 +1,349 @@ + + + + +"> +"> +"> +"> +"> + + +"> +"> +"> +"> +"> +"> +"> +"> +"> +"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +"> +"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/module/shop/pg_bak/agspay/AGSLib.php b/module/shop/pg_bak/agspay/AGSLib.php new file mode 100644 index 0000000..f628f0d --- /dev/null +++ b/module/shop/pg_bak/agspay/AGSLib.php @@ -0,0 +1,1925 @@ +ERRMSG = ""; + + /* + Log ü + */ + $this->log = new PayLog( $this->REQUEST ); + if(!$this->log->InitLog()) + { + $this->ERRMSG .= "α ϴ.[".$this->REQUEST["AgsPayHome"]."]" ; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = $this->ERRMSG; + return false; + } + + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Start!" ); + + if($this->REQUEST["Type"] == "Cancel") + { + if($this->REQUEST["AuthTy"] == "virtual" ) + { + $this->log->WriteLog( WARN, "Cannot Cancel AuthTy[".$this->REQUEST["AuthTy"]."]" ); + $this->log->CloseLog( "AuthTy[".$this->REQUEST["AuthTy"]."] End"); + return false; + } + } + + /* + û αױ + */ + $this->writeLogArray($this->REQUEST); + + + //ҿû + if($this->REQUEST["Type"] == "Cancel") + { + if( $this->NetCancel() == false ) + { + /* + αױ + */ + $this->log->WriteLog( ERROR,$this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Result Value [" ); + $this->writeLogArray($this->RESULT); + $this->log->WriteLog( ERROR, "]" ); + + $this->log->WriteLog( ERROR, $this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Fail End" ); + $this->payQuit(); + return false; + } + + /* + αױ + */ + $this->log->WriteLog( WARN,$this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Result Value [" ); + $this->writeLogArray($this->RESULT); + $this->log->WriteLog( WARN, "]" ); + + $this->log->WriteLog( WARN, $this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Success End" ); + //log ü ݱ + $this->log->CloseLog( $this->GetResult("rCancelResMsg") ); + return true; + } + + if( empty( $this->REQUEST["StoreId"] ) || $this->REQUEST["StoreId"] == "" ) + { + $this->ERRMSG .= "̵ Է¿ Ȯο
    "; //̵ + } + + if( empty( $this->REQUEST["OrdNo"] ) || $this->REQUEST["OrdNo"] == "" ) + { + $this->ERRMSG .= "ֹȣ Է¿ Ȯο
    "; //ֹȣ + } + + if( empty( $this->REQUEST["ProdNm"] ) || $this->REQUEST["ProdNm"] == "" ) + { + $this->ERRMSG .= "ǰ Է¿ Ȯο
    "; //ǰ + } + + if( empty( $this->REQUEST["Amt"] ) || $this->REQUEST["Amt"] == "" ) + { + $this->ERRMSG .= "ݾ Է¿ Ȯο
    "; //ݾ + } + + if( empty( $this->REQUEST["DeviId"] ) || $this->REQUEST["DeviId"] == "" ) + { + $this->ERRMSG .= "̵ܸ Է¿ Ȯο
    "; //̵ܸ + } + + if( empty( $this->REQUEST["AuthYn"] ) || $this->REQUEST["AuthYn"] == "" ) + { + $this->ERRMSG .= " Է¿ Ȯο
    "; // + } + + if( strlen($this->ERRMSG) == 0 ){ + + /* Make Tid */ + if( ($MakeTIDResult = $this->MakeNetCancID()) != true){ + $this->log->WriteLog( FATAL, "Make NetCancelID Fail" ); + $this->payQuit(); + return false; + }else{ + $this->log->WriteLog( INFO, "Make NetCancelID OK" ); + } + + /* Make Pay Msg */ + if( ($MakeMsgResult = $this->MakeMsg()) != true){ + $this->log->WriteLog( FATAL, "Make Pay Msg Fail" ); + $this->ERRMSG = "û ."; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->payQuit(); + return false; + }else{ + $this->log->WriteLog( INFO, "Make Pay Msg OK" ); + } + + + + /* Send & Recv Msg */ + if( ($ParseResult = $this->SendRecvMsg()) != true){ + $this->log->WriteLog( FATAL, "Send & Recv Msg Fail" ); + $this->ERRMSG = "û ۼ .( Ȯּ)"; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->REQUEST["CancelMsg"] = "Send & Recv Msg Fail"; + $this->log->WriteLog( WARN, "NetCancel Call" ); + if( $this->NetCancel() == false ) // + { + $this->log->WriteLog( FATAL, "NetCancel Fail End" ); + $this->payQuit(); + return false; + } + $this->log->WriteLog( INFO, "NetCancel Success End" ); + $this->payQuit(); + return false; + }else{ + $this->log->WriteLog( INFO, "Send & Recv Msg OK" ); + } + + /* RecvMsg Parsing */ + if( ($ParseResult = $this->ParseMsg()) != true){ + $this->log->WriteLog( FATAL, "Msg Parsing Fail" ); + $this->ERRMSG = " ó .( Ȯּ)"; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->REQUEST["CancelMsg"] = "Msg Parsing Fail"; + $this->log->WriteLog( WARN, "NetCancel Call" ); + if( $this->NetCancel() == false ) // + { + $this->log->WriteLog( FATAL, "NetCancel Fail End" ); + $this->payQuit(); + return false; + } + $this->log->WriteLog( INFO, "NetCancel Success End" ); + $this->payQuit(); + return false; + }else{ + $this->log->WriteLog( INFO, "Msg Parsing OK" ); + } + + } + else + { + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + } + + /* + αױ + */ + + $this->log->WriteLog( INFO,$this->REQUEST["AuthTy"]." ".$this->REQUEST["Type"]." Result Value [" ); + $this->writeLogArray($this->RESULT); + $this->log->WriteLog( INFO, "]" ); + + //log ü ݱ + $this->log->CloseLog( $this->GetResult("rResMsg") ); + + return true; + + } //startPay() End + + + /* + μ + */ + function payQuit() + { + //log ü ݱ + $this->log->CloseLog( $this->GetResult("rResMsg") ); + + /** close **/ + if($this->fp != false ){ + fclose( $this->fp ); + } + + } + + /* + μ + */ + function writeLogArray($array) + { + foreach ($array as $key => $value) + { + $this->log->WriteLog( INFO, $key.":".$value ); + } + } + + /* + û Msg ۽ Msg + */ + function SendRecvMsg() + { + $this->log->WriteLog( INFO, "Send & Recv Msg Start" ); + + /**************************************************************************** + * + * ȣȭProcess ϰ ۼ + * + ****************************************************************************/ + + /** ȣȭProcess **/ + $this->log->WriteLog( INFO, "Send Data To PG Start [ " ); + $this->SendValArray = array(); + $this->SendValArray = explode( "|", $this->sSendMsg ); + $this->log->WriteLog( INFO, $this->SendValArray); + $this->log->WriteLog( INFO, "] Send Data To PG End " ); + $this->log->WriteLog( INFO, "SendMsg : [".$this->sSendMsg."]" ); + + /** open **/ + $this->log->WriteLog( INFO, "Connect IP:[".$this->LOCALADDR."] Port:[".$this->LOCALPORT."]" ); + $this->fp = fsockopen( $this->LOCALADDR, $this->LOCALPORT , &$errno, &$errstr, $this->CONN_TIMEOUT ); + + if( !$this->fp ) + { + $this->log->WriteLog( ERROR, "Socket Connect Error: [".$errno."-".$errstr."]" ); + + /** з ޼ **/ + if($this->REQUEST["Type"] == "Cancel") + { + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = "Socket Connect Fail"; + $this->log->WriteLog( ERROR, $this->RESULT["rCancelResMsg"] ); + } + else + { + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = "Socket Connect Fail"; + $this->log->WriteLog( ERROR, $this->RESULT["rResMsg"] ); + } + if($this->fp) fclose( $this->fp ); + return false; + } + /** ῡ ϿǷ ͸ ޴´. **/ + $this->log->WriteLog( INFO, "Socket Open OK" ); + + fputs( $this->fp, $this->sSendMsg ); + + socket_set_timeout($this->fp, $this->READ_TIMEOUT); + + /** 6Ʈ ̸ üũ ͸ŭ ޴´. **/ + /**************************************************************************** + * + * PHP üũ ߻ ֽϴ + * ޼: () üũ ſ + * üũ Ʒ Ͽ Ͻʽÿ + * $this->sRecvLen = fgets( $this->fp, 6 ); + * $this->sRecvMsg = fgets( $this->fp, $this->sRecvLen ); + * + ****************************************************************************/ + + if($this->REQUEST["RecvLen"] == 7) + { + $this->sRecvLen = fgets( $this->fp, $this->REQUEST["RecvLen"] ); + $this->sRecvMsg = fgets( $this->fp, $this->sRecvLen + 1 ); + } + else if($this->REQUEST["RecvLen"] == 6) + { + $this->sRecvLen = fgets( $this->fp, $this->REQUEST["RecvLen"] ); + $this->sRecvMsg = fgets( $this->fp, $this->sRecvLen); + } + else + { + $this->REQUEST["RecvLen"] = 7; + $this->sRecvLen = fgets( $this->fp, $this->REQUEST["RecvLen"] ); + $this->sRecvMsg = fgets( $this->fp, $this->sRecvLen + 1 ); + } + + $this->log->WriteLog( INFO, "RecvMsg Length : [".$this->sRecvLen."]" ); + $this->log->WriteLog( INFO, "RecvMsg : [".$this->sRecvMsg."]" ); + + /** close **/ + fclose( $this->fp ); + $this->log->WriteLog( INFO, "Socket Close OK"); + + if( strlen( $this->sRecvMsg ) > 0 && strlen( $this->sRecvMsg ) == $this->sRecvLen ) + { + /** () üũ **/ + $this->log->WriteLog( INFO, "RecvMsg Length Check OK"); + + $this->RecvValArray = array(); + $this->RecvValArray = explode( "|", $this->sRecvMsg ); + + /** null Ǵ NULL , 0 ȯ + for( $i = 0; $i < sizeof( $this->RecvValArray); $i++ ) + { + $this->RecvValArray[$i] = trim( $this->RecvValArray[$i] ); + + if( !strcmp( $this->RecvValArray[$i], "null" ) || !strcmp( $this->RecvValArray[$i], "NULL" ) ) + { + $this->RecvValArray[$i] = ""; + } + + if( IsNumber( $this->RecvValArray[$i] ) ) + { + if( $this->RecvValArray[$i] == 0 ) $this->RecvValArray[$i] = ""; + } + } + **/ + $this->log->WriteLog( INFO, "Send & Recv Msg End" ); + return true; + } + else + { + /** () üũ ſ з **/ + if($this->REQUEST["Type"] == "Cancel") + { + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = "Recv Msg Length Check Errror"; + $this->log->WriteLog( ERROR, $this->RESULT["rCancelResMsg"]." : sRecvLen[".$this->sRecvLen."]"."sRecvMsg Length[".strlen( $this->sRecvMsg )."]"); + } + else + { + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = "Recv Msg Length Check Errror"; + $this->log->WriteLog( ERROR, $this->RESULT["rResMsg"]." : sRecvLen[".$this->sRecvLen."]"."sRecvMsg Length[".strlen( $this->sRecvMsg )."]"); + } + + return false; + + } + + } //SendMsg() End + + /* + Msg ۽ Msg + */ + function SendRecvMsgWeb() + { + // ۾ + return false; + } + + /* + Make Pay Msg + */ + function MakeMsg() + { + $this->log->WriteLog( INFO, "Make Msg Start" ); + /**************************************************************************** + * + * + * AuthTy = "card" ſī + * - SubTy = "isp" ISP + * - SubTy = "visa3d" ȽŬ + * - SubTy = "normal" Ϲݰ + * + * AuthTy = "iche" Ϲ-ü + * + * AuthTy = "virtual" Ϲ-(Ա) + * + * AuthTy = "hp" ڵ + * + * AuthTy = "ars" ARS + * + ****************************************************************************/ + + if( strcmp( $this->REQUEST["AuthTy"], "card" ) == 0 ) + { + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) + { + /**************************************************************************** + * + * [1-1] ſī - ISP + * + * -- ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- û + * + ͱ(6) + ISPڵ(1) + + * + ( "|" Ѵ.) + * (6) | üID(20) | ȸID(20) | ݾ(12) | + * ֹȣ(40) | ܸȣ(10) | (40) | ȭ(21) | + * (100) | ֹڸ(40) | ֹڿó(100) | Ÿ䱸(350) | + * ǰ(300) | ȭڵ(3) | ϹҺαⰣ(2) | ҺαⰣ(2) | + * KVPīڵ(22) | Ű(256) | ȣȭ(2048) | ī(50) | + * ȸ IP(20) | ȸ Email(50) | ID (50) | + * + ****************************************************************************/ + + $this->ENCTYPE = 2; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "plug15"."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["DeviId"]."|". + $this->REQUEST["RcpNm"]."|". + $this->REQUEST["RcpPhone"]."|". + $this->REQUEST["DlvAddr"]."|". + $this->REQUEST["OrdNm"]."|". + $this->REQUEST["OrdPhone"]."|". + $this->REQUEST["Remark"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["KVP_CURRENCY"]."|". + $this->REQUEST["partial_mm"]."|". + $this->REQUEST["noIntMonth"]."|". + $this->REQUEST["KVP_CARDCODE"]."|". + $this->REQUEST["KVP_SESSIONKEY"]."|". + $this->REQUEST["KVP_ENCDATA"]."|". + $this->REQUEST["KVP_CONAME"]."|". + $this->REQUEST["UserIp"]."|". + $this->REQUEST["UserEmail"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."Make MSG OK " ); + } + else if( ( strcmp( $this->REQUEST["SubTy"], "visa3d" ) == 0 ) || ( strcmp( $this->REQUEST["SubTy"], "normal" ) == 0 ) ) + { + /**************************************************************************** + * + * [1-2] ſī - VISA3D, Ϲ + * + * -- ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" ϸ īȣ,ȿⰣ,йȣ,ֹιȣ ȣȭȴ.) + * (6) | üID(20) | ȸID(20) | ݾ(12) | ֹȣ(40) | + * ܸȣ(10) | īȣ(16) | ȿⰣ(6) | ҺαⰣ(4) | (1) | + * īйȣ(2) | ֹεϹȣ/ڹȣ(10) | (40) | ȭ(21) | (100) | + * ֹڸ(40) | ֹڿó(100) | Ÿ䱸(350) | ǰ(300) | MPI_CAVV | MPI_MD64 | MPI_ECI | ID (50) | + * + ****************************************************************************/ + + $this->ENCTYPE = 0; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "plug15"."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["DeviId"]."|". + $this->encrypt_aegis($this->REQUEST["CardNo"])."|". + $this->encrypt_aegis($this->REQUEST["ExpYear"].$this->REQUEST["ExpMon"])."|". + $this->REQUEST["Instmt"]."|". + $this->REQUEST["AuthYn"]."|". + $this->encrypt_aegis($this->REQUEST["Passwd"])."|". + $this->encrypt_aegis($this->REQUEST["SocId"])."|". + $this->REQUEST["RcpNm"]."|". + $this->REQUEST["RcpPhone"]."|". + $this->REQUEST["DlvAddr"]."|". + $this->REQUEST["OrdNm"]."|". + $this->REQUEST["UserIp"].";".$this->REQUEST["OrdPhone"]."|". + $this->REQUEST["UserEmail"].";".$this->REQUEST["Remark"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["MPI_CAVV"]."|". + $this->REQUEST["MPI_MD64"]."|". + $this->REQUEST["MPI_ECI"]."|". + $this->REQUEST["UserEmail"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."Make MSG OK " ); + } + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0) + { + /**************************************************************************** + * + * [2-1] ͳݹŷ ü() ó + * + * -- ̺κ ͳݹŷ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ͳݹŷ û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | ֹȣ(40) | ָ(20) | ŷݾ(8) | + * ڵ(2) | ֹιȣ(13) | ֹڿó(16) | ̸ּ(50) | ǰ(100) | + * ֹ̿ȣ(50) | FNBC ŷȣ(20) | üð(14) | ݿ࿩(1) | ȸ̵(20) | + * ŷڱ(2) | źȮιȣ(13) | ũλ뿩(1) | ũȸȣ(17) | ũΰݾ(8)| + * ũμݾ(8) | + * + ****************************************************************************/ + + $this->ENCTYPE = R; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "RB-PayReq"."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["ICHE_OUTBANKMASTER"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["ICHE_OUTBANKNAME"]."|". + $this->REQUEST["ICHE_OUTACCTNO"]."|". + $this->REQUEST["OrdPhone"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["ICHE_POSMTID"]."|". + $this->REQUEST["ICHE_FNBCMTID"]."|". + $this->REQUEST["ICHE_APTRTS"]."|". + $this->REQUEST["ICHE_CASHYN"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["ICHE_CASHGUBUN_CD"]."|". + $this->REQUEST["ICHE_CASHID_NO"]."|". + $this->REQUEST["ICHE_ECWYN"]."|". + $this->REQUEST["ICHE_ECWID"]."|". + $this->REQUEST["ICHE_ECWAMT1"]."|". + $this->REQUEST["ICHE_ECWAMT2"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHEARS_SOCKETYN"], "Y" ) == 0) + { + /**************************************************************************** + * + * [2-2] ڷŷ ü() ó + * + * -- ̺κ ڷŷ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ڷŷ û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | ֹȣ(40) | ָ(20) | + * ŷݾ(8) | ڵ(2) | ֹιȣ(13) | ֹڿó(16) | + * ̸ּ(50) | ǰ(100) | ֹ̿ȣ(50) | FNBC ŷȣ(20) | + * üð(14) | ݿ࿩(1) | ȸ̵(20) | ŷڱ(2) | + * źȮιȣ(13) | ũλ뿩(1) | ũȸȣ(17) | ũΰݾ(8) | + * ũμݾ(8) | + * + ****************************************************************************/ + + $this->ENCTYPE = B; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "TB-PayReq"."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["ICHEARS_POSMTID"]."|". + $this->REQUEST["ICHEARS_ADMNO"]."|". + $this->REQUEST["ICHEARS_CENTERCD"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["ICHE_OUTACCTNO"]."|". + $this->REQUEST["ICHE_OUTBANKMASTER"]."|". + $this->REQUEST["ICHEARS_HPNO"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["ICHE_ECWYN"]."|". + $this->REQUEST["ICHE_ECWID"]."|". + $this->REQUEST["ICHE_ECWAMT1"]."|". + $this->REQUEST["ICHE_ECWAMT2"]."|". + $this->REQUEST["ICHE_CASHYN"]."|". + $this->REQUEST["ICHE_CASHGUBUN_CD"]."|". + $this->REQUEST["ICHE_CASHID_NO"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + + } + else if( strcmp( $this->REQUEST["AuthTy"], "virtual" ) == 0 ) //߰ + { + /**************************************************************************** + * + * [3] + * + * -- ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- û + * + ͱ(6) + ȣȭ (1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | ֹȣ(40) | ڵ(4) | ¹ȣ(20) | + * ŷݾ(13) | Աݿ(8) | ڸ(20) | ֹιȣ(13) | + * ̵ȭ(21) | ̸(50) | ּ(100) | ڸ(20) | + * ڿó(21) | ּ(100) | ǰ(100) | Ÿ䱸(300) | (50) | (100)| + * + ****************************************************************************/ + + $this->ENCTYPE = "V"; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + /* $this->REQUEST["AuthTy"]."|". */ + "vir_n|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["VIRTUAL_CENTERCD"]."|". + $this->REQUEST["VIRTUAL_NO"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["VIRTUAL_DEPODT"]."|". + $this->REQUEST["OrdNm"]."|". + $this->REQUEST["ZuminCode"]."|". + $this->REQUEST["OrdPhone"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["OrdAddr"]."|". + $this->REQUEST["RcpNm"]."|". + $this->REQUEST["RcpPhone"]."|". + $this->REQUEST["DlvAddr"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["Remark"]."|". + $this->REQUEST["MallUrl"]."|". + $this->REQUEST["MallPage"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + } + else if( strcmp( $this->REQUEST["AuthTy"], "hp" ) == 0 ) + { + /**************************************************************************** + * + * [4] ڵ + * + * ڵ ʴ AGS_pay.html ҹ ſī() ñ ٶϴ. + * + * ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- û + * + ͱ(6) + ڵڵ(1) + + * + ( "|" Ѵ.) + * + ****************************************************************************/ + + $this->ENCTYPE = "h"; + $this->REQUEST["StrSubTy"] = "Bill"; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + $this->REQUEST["StrSubTy"]."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["HP_SERVERINFO"]."|". + $this->REQUEST["HP_ID"]."|". + $this->REQUEST["HP_SUBID"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["HP_UNITType"]."|". + $this->REQUEST["HP_HANDPHONE"]."|". + $this->REQUEST["HP_COMPANY"]."|". + $this->REQUEST["HP_IDEN"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["HP_IPADDR"]."|". + $this->REQUEST["ProdNm"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + + } + else if( strcmp( $this->REQUEST["AuthTy"], "ars" ) == 0 ) + { + /**************************************************************************** + * + * [5] ARS + * + * ARS ʴ AGS_pay.html ҹ ſī() ñ ٶϴ. + * + * ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- û + * + ͱ(6) + ARSڵ(1) + + * + ( "|" Ѵ.) + * + ****************************************************************************/ + + $this->ENCTYPE = "A"; + $this->REQUEST["StrSubTy"] = "ABill"; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + $this->REQUEST["StrSubTy"]."|". + $this->REQUEST["StoreId"]."|". + $this->REQUEST["HP_SERVERINFO"]."|". + $this->REQUEST["HP_ID"]."|". + $this->REQUEST["HP_UNITType"]."|". + $this->REQUEST["Amt"]."|". + $this->REQUEST["ProdNm"]."|". + $this->REQUEST["UserEmail"]."|". + $this->REQUEST["HP_SUBID"]."|". + $this->REQUEST["OrdNo"]."|". + $this->REQUEST["UserId"]."|". + $this->REQUEST["ARS_PHONE"]."|". + $this->REQUEST["HP_IDEN"]."|". + $this->REQUEST["ARS_NAME"]."|". + $this->REQUEST["HP_COMPANY"]."|". + $this->REQUEST["HP_IPADDR"]."|". + $this->RESULT["NetCancID"]."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make MSG OK " ); + }else{ + $this->ERRMSG .= " . AuthTy:[".$this->REQUEST["AuthTy"]."],SubTy:[".$this->REQUEST["SubTy"]."]"; + $this->log->WriteLog( ERROR, $this->ERRMSG ); + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + + return false; + } + $this->log->WriteLog( INFO, "Make Msg End" ); + return true; + } // MakeMsg() End + + + /* + Make Cancel Msg + */ + function MakeCancelMsg() + { + $this->log->WriteLog( INFO, "Make Cancel Msg Start" ); + if( strcmp( $this->REQUEST["AuthTy"], "card" ) == 0 ) + { + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) + { + + /**************************************************************************** + * + * [1-1] ſī - ISP + * + * -- ̺κ ó PGProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ. + * (6) | ü̵(20) | ιȣ(20) | νð(8) | ŷȣ(6) | + * + * -- + * + ͱ(6) + + * + ( "|" Ѵ. + * üID(20) | ιȣ(20) | νð(8) | ڵ(4) | ŷȣ(6) | (1) | + * + ****************************************************************************/ + + $this->ENCTYPE = 2; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "cancel"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("rApprNo")."|". + substr($this->GetResult("rApprTm"),0,8)."|". + $this->GetResult("rDealNo")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."Make Cancel MSG OK " ); + } + else if( ( strcmp( $this->REQUEST["SubTy"], "visa3d" ) == 0 ) || ( strcmp( $this->REQUEST["SubTy"], "normal" ) == 0 ) ) + { + /**************************************************************************** + * + * [1-2] ſī - VISA3D, Ϲ + * + * -- ̺κ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * + * -- û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" ϸ īȣ,ȿⰣ,йȣ,ֹιȣ ȣȭȴ.) + * (6) | ü̵(20) | ιȣ(8) | νð(14) | īȣ(16) | + * + * -- + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * üID(20) | ιȣ(8) | νð(14) | ڵ(4) | (1) | + * ֹȣ(20) | Һΰ(2) | ݾ(20) | ī(20) | īڵ(4) | + * ȣ(15) | Իڵ(4) | Ի(20) | ǥȣ(6) + * + ****************************************************************************/ + + $this->ENCTYPE = 0; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "cancel"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("rApprNo")."|". + substr($this->GetResult("rApprTm"),0,8)."|". + $this->GetResult("rDealNo")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."Make Cancel MSG OK " ); + } + }else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0){ + + /**************************************************************************** + * + * [2-1] ͳݹŷ ü() ó + * + * -- ̺κ ͳݹŷ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ͳݹŷ û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | MTID(ü ) | ݾ(8) | ڵ(2) + * + ****************************************************************************/ + + $this->ENCTYPE = R; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "RB-CanReq"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("ICHE_POSMTID")."|". + $this->GetResult("Amt")."|". + $this->GetResult("ICHE_OUTBANKNAME")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make Cancel MSG OK " ); + + }else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHEARS_SOCKETYN"], "Y" ) == 0){ + + /**************************************************************************** + * + * [2-1] ڷŷ ü() ó + * + * -- ̺κ ڷŷ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ڷŷ û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | MTID(ü ) | ݾ(8) | ڵ(2) + * + ****************************************************************************/ + + $this->ENCTYPE = B; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + + $this->sDataMsg = $this->ENCTYPE. + "TB-CanReq"."|". + $this->GetResult("StoreId")."|". + ""."|". + ""."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make Cancel MSG OK " ); + + }else if( strcmp( $this->REQUEST["AuthTy"], "hp" ) == 0 ){ + + /**************************************************************************** + * + * [3] ڵ ó + * + * -- ̺κ ڵ ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ڵ û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | NetCancID | + * + ****************************************************************************/ + + $this->ENCTYPE = H; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + $this->sDataMsg = $this->ENCTYPE. + "MobileCanReq"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make Cancel MSG OK " ); + + }else if( strcmp( $this->REQUEST["AuthTy"], "ars" ) == 0 ){ + + /**************************************************************************** + * + * [4] ARS ó + * + * -- ̺κ ARS ó ȣȭProcess Socketϴ κ̴. + * ٽ Ǵ κ̹Ƿ Ŀ ׽Ʈ Ͽ Ѵ. + * -- ̴ Ŵ + * + * -- ARS û + * + ͱ(6) + ȣȭ(1) + + * + ( "|" Ѵ.) + * (10) | üID(20) | NetCancID | + * + ****************************************************************************/ + + $this->ENCTYPE = A; + + /**************************************************************************** + * + * Make + * + ****************************************************************************/ + $this->sDataMsg = $this->ENCTYPE. + "ARSCanReq"."|". + $this->GetResult("StoreId")."|". + $this->GetResult("NetCancID")."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Make Cancel MSG OK " ); + + }else{ + //ſī,ü ̿ ұ . + $this->log->WriteLog( WARN, "Cancel Passed. AuthTy : [".$this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]."] " ); + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = "Cannot Cancel AuthTy[".$this->REQUEST["AuthTy"]."]"; + return false; + } + $this->log->WriteLog( INFO, "Make Cancel Msg End" ); + return true; + } //MakeCancelMsg End + + + /* + RecvMsg Parsing + */ + function ParseMsg() + { + $this->log->WriteLog( INFO, "Parse Msg Start" ); + /**************************************************************************** + * + * + * AuthTy = "card" ſī + * - SubTy = "isp" ISP + * - SubTy = "visa3d" ȽŬ + * - SubTy = "normal" Ϲݰ + * + * AuthTy = "iche" Ϲ-ü + * + * AuthTy = "virtual" Ϲ-(Ա) + * + * AuthTy = "hp" ڵ + * + * AuthTy = "ars" ARS + * + ****************************************************************************/ + + if( strcmp( $this->REQUEST["AuthTy"], "card" ) == 0 ) + { + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) + { + /**************************************************************************** + * + * [1-1] ſī ISP ó + * + * + * -- + * + ͱ(6) + + * + ( "|" Ѵ. + * üID(20) | ڵ(4) | ŷȣ(6) | ιȣ(8) | + * ŷݾ(12) | (1) | л(20) | νð(14) | + * īڵ(4) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rBusiCd"] = $this->RecvValArray[1]; + $this->RESULT["rOrdNo"] = $this->REQUEST["OrdNo"]; + $this->RESULT["rDealNo"] = $this->RecvValArray[2]; + $this->RESULT["rApprNo"] = $this->RecvValArray[3]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->RESULT["rAmt"] = $this->RecvValArray[4]; + $this->RESULT["rInstmt"] = $this->REQUEST["KVP_QUOTA"]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[5]; + $this->RESULT["rResMsg"] = $this->RecvValArray[6]; + $this->RESULT["rApprTm"] = $this->RecvValArray[7]; + $this->RESULT["rCardCd"] = $this->RecvValArray[8]; + + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."RECV MSG Parsing OK " ); + } + else if( ( strcmp( $this->REQUEST["SubTy"], "visa3d" ) == 0 ) || ( strcmp( $this->REQUEST["SubTy"], "normal" ) == 0 ) ) + { + /**************************************************************************** + * + * [1-2] ȽŬ or Ϲݰ ó + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * üID(20) | ڵ(4) | ֹȣ(40) | ιȣ(8) | ŷݾ(12) | + * (1) | л(20) | ī(20) | νð(14) | īڵ(4) | + * ȣ(15) | Իڵ(4) | Ի(20) | ǥȣ(6) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rBusiCd"] = $this->RecvValArray[1]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[2]; + $this->RESULT["rApprNo"] = $this->RecvValArray[3]; + $this->RESULT["rInstmt"] = $this->REQUEST["Instmt"]; + $this->RESULT["rAmt"] = $this->RecvValArray[4]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[5]; + $this->RESULT["rResMsg"] = $this->RecvValArray[6]; + $this->RESULT["rCardNm"] = $this->RecvValArray[7]; + $this->RESULT["rApprTm"] = $this->RecvValArray[8]; + $this->RESULT["rCardCd"] = $this->RecvValArray[9]; + $this->RESULT["rMembNo"] = $this->RecvValArray[10]; + $this->RESULT["rAquiCd"] = $this->RecvValArray[11]; + $this->RESULT["rAquiNm"] = $this->RecvValArray[12]; + $this->RESULT["rDealNo"] = $this->RecvValArray[13]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."RECV MSG Parsing OK " ); + } + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0) + { + /**************************************************************************** + * + * [2-1] ü Ϲ(ͳݹŷ) û + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * (10) | ̵(20) | ֹȣ(40) | ֹ̿ȣ(50) | ڵ(4) | ޽(300) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[2]; + $this->RESULT["rMTid"] = $this->RecvValArray[3]; + $this->RESULT["ES_SENDNO"] = $this->RecvValArray[4]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[5]; + $this->RESULT["rResMsg"] = $this->RecvValArray[6]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."RECV MSG Parsing OK " ); + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHEARS_SOCKETYN"], "Y" ) == 0) + { + /**************************************************************************** + * + * [2-2] ü ڷŷ ó + * + * -- ڷŷ û + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * (10) | ̵(20) | ֹȣ(40) | ֹ̿ȣ(50) | ڵ(4) | ޽(300) |* + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[2]; + $this->RESULT["rMTid"] = $this->RecvValArray[3]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[4]; + $this->RESULT["rResMsg"] = $this->RecvValArray[5]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Parse MSG Passed " ); + + $pos = strpos($this->RESULT["rResMsg"],':'); + if( $pos !== false ) + { + $this->RESULT["ES_SENDNO"] = substr($this->RESULT["rResMsg"],$pos+1,6) ; + $this->log->WriteLog( INFO, "ES_SENDNO : [".$this->RESULT["ES_SENDNO"]."] "); + } + + } + else if( strcmp( $this->REQUEST["AuthTy"], "virtual" ) == 0 ) + { + /**************************************************************************** + * + * [3] (Ա) ó + * + * -- + * + ͱ(6) + ȣȭ (1) + + * + ( "|" Ѵ. + * (10) | üID(20) | (14) | ¹ȣ(20) | ڵ(1) | ޽(100) | + * + ****************************************************************************/ + + $this->RESULT["rAuthTy"] = $this->RecvValArray[0]; + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rApprTm"] = $this->RecvValArray[2]; + $this->RESULT["rVirNo"] = $this->RecvValArray[3]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[4]; + $this->RESULT["rResMsg"] = $this->RecvValArray[5]; + + $this->RESULT["rOrdNo"] = $this->REQUEST["OrdNo"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + + $pos = strpos($this->RESULT["rResMsg"],':'); + if( $pos !== false ) + { + $this->RESULT["ES_SENDNO"] = substr($this->RESULT["rResMsg"],$pos+1,6) ; + $this->log->WriteLog( INFO, "ES_SENDNO : [".$this->RESULT["ES_SENDNO"]."] "); + } + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."RECV MSG Parsing OK " ); + + } + else if( strcmp( $this->REQUEST["AuthTy"], "hp" ) == 0 ) + { + /**************************************************************************** + * + * [4] ڵ + * + * -- + * + ͱ(6) + + * + ( "|" Ѵ.) + * üID(20) | ڵ(1) | ޽(100) | ڵ(8) | ڵ TID(12) | ŷݾ(12) | ֹȣ(40) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[1]; + $this->RESULT["rResMsg"] = $this->RecvValArray[2]; + $this->RESULT["rHP_DATE"] = $this->RecvValArray[3]; + $this->RESULT["rHP_TID"] = $this->RecvValArray[4]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + $this->RESULT["rOrdNo"] = $this->REQUEST["OrdNo"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."RECV MSG Parsing OK " ); + + } + else if( strcmp( $this->REQUEST["AuthTy"], "ars" ) == 0 ) + { + /**************************************************************************** + * + * [5] ARS + * + * -- + * + ͱ(6) + + * + ( "|" Ѵ.) + * üID(20) | ڵ(1) | ޽(100) | ARS(8) | ARS TID(12) | ŷݾ(12) | ֹȣ(40) | + * + ****************************************************************************/ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rSuccYn"] = $this->RecvValArray[1]; + $this->RESULT["rResMsg"] = $this->RecvValArray[2]; + $this->RESULT["rHP_DATE"] = $this->RecvValArray[3]; + $this->RESULT["rHP_TID"] = $this->RecvValArray[4]; + $this->RESULT["rAmt"] = $this->REQUEST["Amt"]; + $this->RESULT["rOrdNo"] = $this->REQUEST["OrdNo"]; + $this->RESULT["rProdNm"] = $this->REQUEST["ProdNm"]; + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."RECV MSG Parsing OK " ); + }else{ + $this->log->WriteLog( FATAL, "Unknown AuthTy. AuthTy:[".$this->REQUEST["AuthTy"]."],SubTy:[".$this->REQUEST["SubTy"]."]"); + return false; + } + $this->log->WriteLog( INFO, "Parse Msg End" ); + return true; + + } //ParseMsg() End + + + /* + RecvCancelMsg Parsing + */ + function ParseCancelMsg() + { + $this->log->WriteLog( INFO, "Parse Cancel Msg Start" ); + if( strcmp( $this->REQUEST["AuthTy"], "card" ) == 0 ) + { + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) + { + /* [1-1] ISP ó */ + + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rApprNo"] = $this->RecvValArray[1]; + $this->RESULT["rApprTm"] = $this->RecvValArray[2]; + $this->RESULT["rBusiCd"] = $this->RecvValArray[3]; + $this->RESULT["rDealNo"] = $this->RecvValArray[4]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[5]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[6]; + + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."RECV MSG Parsing OK " ); + } + else if( ( strcmp( $this->REQUEST["SubTy"], "visa3d" ) == 0 ) || ( strcmp( $this->REQUEST["SubTy"], "normal" ) == 0 ) ) + { + /* [1-2] ȽŬ or Ϲݰ ó */ + $this->RESULT["rStoreId"] = $this->RecvValArray[0]; + $this->RESULT["rApprNo"] = $this->RecvValArray[1]; + $this->RESULT["rApprTm"] = $this->RecvValArray[2]; + $this->RESULT["rBusiCd"] = $this->RecvValArray[3]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[4]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[5]; + $this->RESULT["rInstmt"] = $this->RecvValArray[6]; + $this->RESULT["rAmt"] = $this->RecvValArray[7]; + $this->RESULT["rCardNm"] = $this->RecvValArray[8]; + $this->RESULT["rCardCd"] = $this->RecvValArray[9]; + $this->RESULT["rMembNo"] = $this->RecvValArray[10]; + $this->RESULT["rAquiCd"] = $this->RecvValArray[11]; + $this->RESULT["rAquiNm"] = $this->RecvValArray[12]; + $this->RESULT["rDealNo"] = $this->RecvValArray[13]; + + if($this->RESULT["rCancelSuccYn"] == "y") + { + $this->RESULT["rCancelResMsg"] = ""; + } + else + { + $this->RESULT["rCancelResMsg"] = "ҽ"; + } + + + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." "."RECV MSG Parsing OK " ); + } + + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0) + { + /* [2-1] ü ͳݹŷ */ + /* [RB-CanRes|ID|posmTid|ֹȣ|y|Ҽ|] */ + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["ICHE_POSMTID"] = $this->RecvValArray[2]; + $this->RESULT["rOrdNo"] = $this->RecvValArray[3]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[4]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[5]; + + } + else if( strcmp( $this->REQUEST["AuthTy"], "iche" ) == 0 && strcmp( $this->REQUEST["ICHEARS_SOCKETYN"], "Y" ) == 0) + { + /* [2-2] ü ڷŷ */ + /* [TB-CanRes|ID|posmTid|ֹȣ|y|Ҽ|] */ + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rMTid"] = $this->RecvValArray[2]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[3]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[4]; + + } + else if( strcmp( $this->REQUEST["AuthTy"], "hp" ) == 0 ) + { + /**************************************************************************** + * + * [4] ڵ + * + * -- + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * | MobileCanRes | üID(20) | (1) | ޼ | óϽ | ֹ̿ȣ | + * + ****************************************************************************/ + + /* [MobileCanRes|ID|(y/n)|޼|Ͻ|ֹ̿ȣ|] */ + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[2]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[3]; + $this->RESULT["rCancelDate"] = $this->RecvValArray[4]; + $this->RESULT["rTid"] = $this->RecvValArray[5]; + + } + else if( strcmp( $this->REQUEST["AuthTy"], "ars" ) == 0 ) + { + /**************************************************************************** + * + * [5] ARS + * + * -- + * + ͱ(6) + + * + ( "|" ϸ ȣȭProcess ص ǵ͸ ϰ ȴ. + * | ArsCanRes | üID(20) | (1) | ޼ | óϽ | ֹ̿ȣ | + * + ****************************************************************************/ + + /* [ArsCanRes|ID|(y/n)|޼|Ͻ|ֹ̿ȣ|] */ + $this->RESULT["rStoreId"] = $this->RecvValArray[1]; + $this->RESULT["rCancelSuccYn"] = $this->RecvValArray[2]; + $this->RESULT["rCancelResMsg"] = $this->RecvValArray[3]; + $this->RESULT["rCancelDate"] = $this->RecvValArray[4]; + $this->RESULT["rTid"] = $this->RecvValArray[5]; + + } + else + { + $this->log->WriteLog( INFO, $this->REQUEST["AuthTy"]." "."Parse CancelMSG Passed " ); + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = "Cannot Cancel AuthTy[".$this->REQUEST["AuthTy"]."]"; + return false; + } + $this->log->WriteLog( INFO, "Parse Cancel Msg End" ); + return true; + } + + + /* + û + */ + function NetCancel() + { + $this->log->WriteLog( WARN, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." Cancel Start"); + + if( $this->REQUEST["UseNetCancel"] == "true" || $this->REQUEST["Type"] == "Cancel" ) + { + $this->log->WriteLog( WARN, "Cancel Reason : ".$this->REQUEST["CancelMsg"]); + + if( !($this->MakeCancelMsg()) ) + { + $this->log->WriteLog( ERROR, "Make CancelMsg Error"); + return false; + } + if( !($this->SendRecvMsg()) ) + { + $this->log->WriteLog( ERROR, "Send & Recv Msg Error"); + return false; + } + if( !($this->ParseCancelMsg()) ) + { + $this->log->WriteLog( ERROR, "ParseCancelMsg Error"); + return false; + } + if( $this->RESULT["rCancelSuccYn"] == "y") + { + $this->log->WriteLog( WARN, "Cancel Success"); + } + else + { + $this->log->WriteLog( FATAL, "Cancel FAIL"); + } + } + else + { + $this->log->WriteLog( WARN, "Cancel Passed (UseNetCancel value Is false)"); + } + + $this->log->WriteLog( WARN, $this->REQUEST["AuthTy"]."-".$this->REQUEST["SubTy"]." Cancel End"); + + if($this->RESULT["rCancelSuccYn"] == "y"){ + // з + $this->SetPayResult( "rSuccYn", "n" ); + $this->SetPayResult( "rResMsg", $this->REQUEST["CancelMsg"] ); + return true; + }else{ + return false; + } + + } + + /* + Ȯοû + */ + function checkPayResult( $TID ) + { + /* + Log ü + */ + $this->log = new PayLog( $this->REQUEST ); + if(!$this->log->InitLog()) + { + $this->ERRMSG .= "α ϴ.[".$this->REQUEST["AgsPayHome"]."]" ; + $this->RESULT["rSuccYn"] = "n"; + $this->RESULT["rResMsg"] = $this->ERRMSG; + $this->RESULT["rCancelSuccYn"] = "n"; + $this->RESULT["rCancelResMsg"] = $this->ERRMSG; + return false; + } + + $this->log->WriteLog( INFO, "[".$TID."] Check PayResult Start"); + + + //"AEGIS_".$TidTp . $this->REQUEST["StoreId"] . $datestr . rand(100,999); + + switch(substr($TID,6,4)){ + case("ISP_"): // ſī ISP + $this->REQUEST["AuthTy"] = "card" ; + $this->REQUEST["SubTy"] = "isp" ; + break; + case("VISA"): // ſī ȽŬ/Ϲ + $this->REQUEST["AuthTy"] = "card" ; + $this->REQUEST["SubTy"] = "visa3d" ; + break; + case("IBK_"): // ͳݹŷ + $this->REQUEST["AuthTy"] = "iche" ; + break; + case("TBK_"): // ڷŷ + $this->REQUEST["AuthTy"] = "iche" ; + break; + case("VIR_"): // + $this->REQUEST["AuthTy"] = "virtual" ; + break; + case("HPP_"): // ޴ + $this->REQUEST["AuthTy"] = "hp" ; + break; + case("ARS_"): // ARS ȭ + $this->REQUEST["AuthTy"] = "ars" ; + break; + default: // Ȯ + $this->REQUEST["AuthTy"] = "unknown" ; + break; + } + + /**************************************************************************** + * Make + ****************************************************************************/ + $this->ENCTYPE = "I"; + + $this->sDataMsg = $this->ENCTYPE. + "PayInfo"."|". + $this->REQUEST["StoreId"]."|". + $TID."|"; + + $this->sSendMsg = sprintf( "%06d%s", strlen( $this->sDataMsg ), $this->sDataMsg ); + + if( !($this->SendRecvMsg()) ) // ŷ Ȯ + { + if( !($this->SendRecvMsgWeb()) ) // ŷ Ȯ + { + + } + } + + if( !($this->ParseMsg()) ) + { + $this->log->WriteLog( ERROR, "Parse Check PayResult Error"); + return false; + } + + $this->log->WriteLog( INFO, "[".$TID."] Check PayResult End"); + + $this->writeLogArray($this->RESULT); + + //log ü ݱ + $this->log->CloseLog( $this->GetResult("rResMsg") ); + + return true; + } + + + /* + Set + */ + function SetValue( $key, $val ) + { + $this->REQUEST[$key] = $val; + } + + /* + Get + */ + function GetResult( $name ) + { + $result = $this->RESULT[$name]; + if( strlen($result) == 0 || $result == "") $result = $this->REQUEST[$name]; + return $result; + } + + /* + rSuccYn Set + */ + function SetPayResult( $key, $val ) + { + $this->RESULT[$key] = $val; + } + + /* + Make NetCancel ID(); + */ + + function MakeNetCancID() + { + $this->log->WriteLog( INFO, "Make NetCancel ID Start" ); + switch($this->REQUEST["AuthTy"]){ + case("card"): // ſī + if( strcmp( $this->REQUEST["SubTy"], "isp" ) == 0 ) $TidTp = "ISP_"; else $TidTp = "VISA"; + break; + case("iche"): // ü (IBK:ͳݹŷ, TBK:ڷŷ) + if( strcmp( $this->REQUEST["ICHE_SOCKETYN"], "Y" ) == 0 ) $TidTp = "IBK_"; else $TidTp = "TBK_"; + break; + case("virtual"): // + $TidTp = "VIR_"; break; + case("hp"): // ޴ + $TidTp = "HPP_"; break; + case("ars"): // ARS ȭ + $TidTp = "ARS_"; break; + default: + $TidTp = "UNKW"; //Ȯ + } + + list($usec, $sec) = explode(" ", microtime()); + $datestr = date("YmdHis", $sec).substr($usec,2,3); //YYYYMMDDHHMMSSSSS + + //TID ּ 31ڸ ,ִ 51ڸ ʴ´. + $this->RESULT["NetCancID"] = "AEGIS_".$TidTp . $this->REQUEST["StoreId"] . "_" . $datestr . rand(100,999); + if( (!strlen( $this->RESULT["NetCancID"] ) >= 31 && strlen( $this->RESULT["NetCancID"] ) <= 51) ) + { + $this->log->WriteLog( ERROR, $this->RESULT["NetCancID"]); + return false; + } + $this->log->WriteLog( INFO, $this->RESULT["NetCancID"]); + $this->log->WriteLog( INFO, "Make NetCancel ID End" ); + return true; + } + + /* + Set Error Msg ; + */ + function SetErrorMsg($rSuccYn,$rResMsg) + { + $this->log->WriteLog( INFO, "Set Result Msg Start"); + $this->RESULT["rSuccYn"] = $rSuccYn; + $this->RESULT["rResMsg"] = $rResMsg; + $this->log->WriteLog( INFO, "Set Result Msg End"); + } + + /* + Aegis ī嵥 Encrypt + */ + function encrypt_aegis( $OrgData ) + { + $this->log->WriteLog( INFO, "Encrypt Start"); + if( empty( $OrgData ) || $OrgData == "" ) + { + $this->log->WriteLog( INFO, "Encrypt End"); + return ""; + } + + $temp = ""; + for( $i = 0; $i < strlen( $OrgData ); $i++ ) + { + $temp .= substr( $OrgData, (strlen( $OrgData ) - 1) - $i, 1 ); + } + + //print "Reverse data : ".$temp."
    "; + + $one_char = ""; + $EncData = ""; + for( $i = 0; $i < strlen( $temp ); $i++ ) + { + $one_char = substr( $temp, $i, 1 ); + $EncData .= ($one_char + $i * 77) % 10 ; + } + + //print "Enc Data : ".$EncData."
    "; + + $this->log->WriteLog( INFO, "Encrypt End"); + + return $EncData; + } + + /* + ڿ + */ + function format_string($TSTR,$TLEN,$TAG) + { + if ( !isset($TSTR) ) + { + for ( $i=0 ; $i < $TLEN ; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + } + + $TSTR = trim($TSTR); + + $TSTR = stripslashes($TSTR); + + // Էڷᰡ ̺ ڸ ѱó + + if ( strlen($TSTR) > $TLEN ) + { + // $flag == 1 ̸ Ʈ ѱ Ʈ ̶ ű ڸ Ǹ + // ѱ Ǵ ߻մϴ. + + $flag = 0; + + for($i=0 ; $i< $TLEN ; $i++) + { + $j = ord($TSTR[$i]); // ASCII մϴ. + // ASCII 127 ũ Ʈ ѱ ۹Ʈ̰ų Ʈ(?) . + if($j > 127) + { + if( $flag ) $flag = 0; // $flag Ѵٴ ̹ ڴ ѱ Ʈ̱ + // $flag 0 ݴϴ. + else $flag = 1; // ѱ ۹Ʈ. ׷Ƿ $flag 1! + } + else $flag = 0; // ٸ ڳ ϶ ׳ Ѿ ǰ. + } + if( $flag ) + { + // ̷ ؼ ڱ $flag ؼ $flag ϸ + $TSTR = substr($TSTR, 0, $TLEN - 1); + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + else + { + // ѹƮ ؼ ڸ ڸ ؾ߰. + $TSTR = substr($TSTR, 0, $TLEN); // ƴ .... + } + + return $TSTR; // Ʈ ȯմϴ. + + // Էڷᰡ ̺ SPACE ä + } + else if ( strlen($TSTR) < $TLEN ) + { + $TLENGTH = strlen($TSTR); + for ( $i=0 ; $i < $TLEN - $TLENGTH; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + + return ($TSTR); + + // Էڷᰡ ̿ + } + else if ( strlen($TSTR) == $TLEN ) + { + return ($TSTR); + } + } + + /* + Է ڰ ھƽŰ شϴ Ǵ. + */ + function IsNumber($word) + { + + for($i = 0; $i < strlen($word); $i++) + { + $wordNum = ord( substr( $word, $i, 1 ) ); + + if( $wordNum < 48 || $wordNum > 57 ) + { + return false; + } + + } + + return true; + } + /* + ޼ + */ + function AlertMsg( $msg , $go=0) + { + + $msg = str_replace( "\"" ,"'" ,$msg ); + $msg = str_replace( "\n" ,"\\n" ,$msg ); + print ""; + + } + function HistoryGo( $go ) + { + print ""; + } + + function AlertExit( $msg ) + { + + AlertMsg( $msg ); + exit; + + } + + function AlertGoBack( $msg ) + { + + AlertMsg( $msg, -1); + exit; + } + +} + +/************************************************************************************** +* +* ôƮ α Ŭ +* +***************************************************************************************/ +class PayLog +{ + var $log_fd; + var $log; + var $logLevel; + var $array_key; + var $debug_msg; + var $starttime; + var $homedir; + var $StoreId; + + function PayLog( $request ) + { + $this->debug_msg = array( "", "FATAL", "ERROR", "WARN", "INFO", "DEBUG" ); + $this->log = $request["log"]; + $this->logLevel = $request["logLevel"]; + $this->homedir = $request["AgsPayHome"]; + $this->StoreId = $request["StoreId"]; + $this->starttime=GetTime(); + } + function InitLog() + { + if( $this->log == "false" ) return true; + + $logfile = $this->homedir. "/log/".PROGRAM."_".TYPE."_".$this->StoreId."_".date("ymd").".log"; + + $this->log_fd = fopen( $logfile, "a+" ); + if( !$this->log_fd ) return false; + $this->WriteLog( INFO, "===============================================================" ); + $this->WriteLog( INFO, "START ".PROGRAM." ".TYPE." (OS:".php_uname('s').php_uname('r').",PHP:".phpversion().")" ); + return true; + } + function WriteLog($debug, $data) + { + if( $this->log == "false" || !$this->log_fd ) return; + + if(strtoupper($this->logLevel) == "FATAL") $logLevel_int = 1; + if(strtoupper($this->logLevel) == "ERROR") $logLevel_int = 2; + if(strtoupper($this->logLevel) == "WARN") $logLevel_int = 3; + if(strtoupper($this->logLevel) == "INFO") $logLevel_int = 4; + if(strtoupper($this->logLevel) == "DEBUG") $logLevel_int = 5; + + if( $debug > $logLevel_int ){ return; } + + $prefix = $this->debug_msg[$debug]."\t[" . SetTimeStamp() . "] <" . getmypid() . "> "; + if( is_array( $data ) ) + { + foreach ($data as $key => $val) + { + fwrite( $this->log_fd, $prefix . $key . ":" . $val . "\r\n"); + } + } + else + { + fwrite( $this->log_fd, $prefix . $data . "\r\n" ); + } + fflush( $this->log_fd ); + } + function CloseLog($msg) + { + if( $this->log == "false" ) return; + + $Transaction_time=GetTime()-$this->starttime; + $this->WriteLog( INFO, "END ".$this->REQUEST["Type"]." ".$msg." Transaction time:[".round($Transaction_time,3)."sec]" ); + $this->WriteLog( INFO, "===============================================================" ); + fclose( $this->log_fd ); + } +} + +function GetTime() +{ + list($sec1, $sec2) = explode(" ", microtime(true)); + return (float)$sec1 + (float)$sec2; +} + +function SetTimeStamp() +{ + $microtm = explode(' ',microtime()); + list($t_Seconds, $Milliseconds) = array($microtm[1], (int)round($microtm[0]*1000,3)); + return date("Y-m-d H:i:s", $t_Seconds) . ":$Milliseconds"; +} + +?> \ No newline at end of file diff --git a/module/shop/pg_bak/agspay/AGS_VirAcctResult.php b/module/shop/pg_bak/agspay/AGS_VirAcctResult.php new file mode 100644 index 0000000..80a9e5e --- /dev/null +++ b/module/shop/pg_bak/agspay/AGS_VirAcctResult.php @@ -0,0 +1,42 @@ + \ No newline at end of file diff --git a/module/shop/pg_bak/agspay/AGS_pay.html b/module/shop/pg_bak/agspay/AGS_pay.html new file mode 100644 index 0000000..fa0e812 --- /dev/null +++ b/module/shop/pg_bak/agspay/AGS_pay.html @@ -0,0 +1,526 @@ + + +ôƮ + + + + + + + + + + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + +
     

    ҿû ׽Ʈ
     
    + 1) ҿû ° ϰ Ͽ Ͻʽÿ.
    + 2) ôƮ ÷ ٿεϿ ġϵ Ǿ ֽϴ. ٿεĿ Ȱâ ߸ Ȯ ư("") Ͽ ÷ ġ ֽʽÿ. ġ Ͽ ٿεϿ ġ ֽʽÿ.
    + 3) ҿû ʿ Է 'ҿû'ư ŬϽø ôƮ ÷ մϴ.
    + 4) ſī常 ҹ ſī() ֽʽÿ.
    + 5) DB ۾ Ͻ (rSuccYn) ȮĿ ۾Ͽ ֽʽÿ.
    + 6) ڵ ôƮ ߱޹[ڵ̵,йȣ,ǰڵ,ǰŸ] ԷϿ ֽʽÿ.
    + 7) Է½ "|" ôƮ ڷ ϴ ̹Ƿ Է ֽʽÿ. +
     
    ǥô ʼ Է»Դϴ.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    ҹ + + + + + +
    ҹ Է ) card:iche
    ̵ (20)
    ֹȣ (40)
    ݾ (12)) ݾ ޸(,)ԷºҰ
    (50)
    ǰ (300)
    URL (50)) http://www.abc.com
    ̸ֹ (50)
    +
    + + + + + + +
    ȸ̵ (20)
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    + ī &
    ֹڸ (40)
    ֹڿó (21)
    ֹּ (100)
    ڸ (40)
    ڿó (21)
    ּ (100)
    Ÿ䱸 (350)
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    + ڵ
    CP̵ (10)
    CPйȣ (10)
    SUB-CP̵ (10)
    ǰڵ (10)
    ǰ + + + +
    +
    +
    + + + + + + + + + + + + +
     
    +
    뺸 (100)) /ab/AGS_VirAcctResult.php
    +
    +

    + + + + +
     
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + \ No newline at end of file diff --git a/module/shop/pg_bak/agspay/AGS_pay_ing.php b/module/shop/pg_bak/agspay/AGS_pay_ing.php new file mode 100644 index 0000000..5c82b58 --- /dev/null +++ b/module/shop/pg_bak/agspay/AGS_pay_ing.php @@ -0,0 +1,1624 @@ +"; //상점아이디 +} + +if( empty( $OrdNo ) || $OrdNo == "" ) +{ + $ERRMSG .= "주문번호 입력여부 확인요망
    "; //주문번호 +} + +if( empty( $ProdNm ) || $ProdNm == "" ) +{ + $ERRMSG .= "상품명 입력여부 확인요망
    "; //상품명 +} + +if( empty( $Amt ) || $Amt == "" ) +{ + $ERRMSG .= "금액 입력여부 확인요망
    "; //금액 +} + +if( empty( $DeviId ) || $DeviId == "" ) +{ + $ERRMSG .= "단말기아이디 입력여부 확인요망
    "; //단말기아이디 +} + +if( empty( $AuthYn ) || $AuthYn == "" ) +{ + $ERRMSG .= "인증여부 입력여부 확인요망
    "; //인증여부 +} + +if( strlen($ERRMSG) == 0 ) +{ + /**************************************************************************** + * ※ 결제 형태 변수의 값에 따른 결제 구분 + * + * * AuthTy = "card" 신용카드결제 + * - SubTy = "isp" 안전결제ISP + * - SubTy = "visa3d" 안심클릭 + * - SubTy = "normal" 일반결제 + * + * * AuthTy = "iche" 계좌이체 + * + * + * + * * AuthTy = "virtual" 가상계좌(무통장입금) + * + * + * + * * AuthTy = "hp" 핸드폰결제 + * + * * AuthTy = "ars" ARS결제 + * + ****************************************************************************/ + + if( strcmp( $AuthTy, "card" ) == 0 ) + { + if( strcmp( $SubTy, "isp" ) == 0 ) + { + /**************************************************************************** + * + * [4] 신용카드결제 - ISP + * + * -- 이부분은 승인 처리를 위해 암호화Process와 Socket통신하는 부분이다. + * 가장 핵심이 되는 부분이므로 수정후에는 테스트를 하여야 한다. + * -- 데이터 길이는 매뉴얼 참고 + * + * -- 승인 요청 전문 포멧 + * + 데이터길이(6) + ISP구분코드(1) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다.) + * 결제종류(6) | 업체ID(20) | 회원ID(20) | 결제금액(12) | + * 주문번호(40) | 단말기번호(10) | 수신인(40) | 수신인전화(21) | + * 배송지(100) | 주문자명(40) | 주문자연락처(21) | 기타요구사항(350) | + * 상품명(300) | 통화코드(3) | 일반할부기간(2) | 무이자할부기간(2) | + * KVP카드코드(22) | 세션키(256) | 암호화데이터(2048) | 카드명(50) | + * 회원 IP(20) | 회원 Email(50) | + * + * -- 승인 응답 전문 포멧 + * + 데이터길이(6) + 데이터 + * + 데이터 포멧(데이터 구분은 "|"로 한다. + * 업체ID(20) | 전문코드(4) | 거래고유번호(6) | 승인번호(8) | + * 거래금액(12) | 성공여부(1) | 실패사유(20) | 승인시각(14) | + * 카드사코드(4) | + * + * ※ "|" 값은 저희쪽에서 구분자로 사용하는 문자이므로 결제 데이터에 "|"이 있을경우 + * 결제가 정상적으로 처리되지 않습니다.(수신 데이터 길이 에러 등의 사유) + ****************************************************************************/ + + $ENCTYPE = 2; + + /**************************************************************************** + * + * 전송 전문 Make + * + ****************************************************************************/ + + $sDataMsg = $ENCTYPE. + "plug15"."|". + $StoreId."|". + $UserId."|". + $Amt."|". + $OrdNo."|". + $DeviId."|". + $RcpNm."|". + $RcpPhone."|". + $DlvAddr."|". + $OrdNm."|". + $OrdPhone."|". + $Remark."|". + $ProdNm."|". + $KVP_CURRENCY."|". + $partial_mm."|". + $noIntMonth."|". + $KVP_CARDCODE."|". + $KVP_SESSIONKEY."|". + $KVP_ENCDATA."|". + $KVP_CONAME."|". + $UserIp."|". + $UserEmail."|"; + + $sSendMsg = sprintf( "%06d%s", strlen( $sDataMsg ), $sDataMsg ); + + /**************************************************************************** + * + * 전송 메세지 프린트 + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sSendMsg."
    "; + } + + /**************************************************************************** + * + * 암호화Process와 연결을 하고 승인 데이터 송수신 + * + ****************************************************************************/ + + $fp = fsockopen( $LOCALADDR, $LOCALPORT , &$errno, &$errstr, $CONN_TIMEOUT ); + + if( !$fp ) + { + /** 연결 실패로 인한 승인실패 메세지 전송 **/ + + $rSuccYn = "n"; + $rResMsg = "연결 실패로 인한 승인실패"; + } + else + { + /** 연결에 성공하였으므로 데이터를 받는다. **/ + + $rResMsg = "연결에 성공하였으므로 데이터를 받는다."; + + + /** 승인 전문을 암호화Process로 전송 **/ + + fputs( $fp, $sSendMsg ); + + socket_set_timeout($fp, $READ_TIMEOUT); + + /** 최초 6바이트를 수신해 데이터 길이를 체크한 후 데이터만큼만 받는다. **/ + + $sRecvLen = fgets( $fp, 7 ); + $sRecvMsg = fgets( $fp, $sRecvLen + 1 ); + + /**************************************************************************** + * + * 데이터 값이 정상적으로 넘어가지 않을 경우 이부분을 수정하여 주시기 바랍니다. + * PHP 버전에 따라 수신 데이터 길이 체크시 페이지오류가 발생할 수 있습니다 + * 에러메세지:수신 데이터(길이) 체크 에러 통신오류에 의한 승인 실패 + * 데이터 길이 체크 오류시 아래와 같이 변경하여 사용하십시오 + * $sRecvLen = fgets( $fp, 6 ); + * $sRecvMsg = fgets( $fp, $sRecvLen ); + * + ****************************************************************************/ + + /** 소켓 close **/ + + fclose( $fp ); + } + + /**************************************************************************** + * + * 수신 메세지 프린트 + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sRecvMsg."
    "; + } + + if( strlen( $sRecvMsg ) == $sRecvLen ) + { + /** 수신 데이터(길이) 체크 정상 **/ + + $RecvValArray = array(); + $RecvValArray = explode( "|", $sRecvMsg ); + + /** null 또는 NULL 문자, 0 을 공백으로 변환 + for( $i = 0; $i < sizeof( $RecvValArray); $i++ ) + { + $RecvValArray[$i] = trim( $RecvValArray[$i] ); + + if( !strcmp( $RecvValArray[$i], "null" ) || !strcmp( $RecvValArray[$i], "NULL" ) ) + { + $RecvValArray[$i] = ""; + } + + if( IsNumber( $RecvValArray[$i] ) ) + { + if( $RecvValArray[$i] == 0 ) $RecvValArray[$i] = ""; + } + } **/ + + $rStoreId = $RecvValArray[0]; + $rBusiCd = $RecvValArray[1]; + $rOrdNo = $OrdNo; + $rDealNo = $RecvValArray[2]; + $rApprNo = $RecvValArray[3]; + $rProdNm = $ProdNm; + $rAmt = $RecvValArray[4]; + $rInstmt = $KVP_QUOTA; + $rSuccYn = $RecvValArray[5]; + $rResMsg = $RecvValArray[6]; + $rApprTm = $RecvValArray[7]; + $rCardCd = $RecvValArray[8]; + + /**************************************************************************** + * + * 신용카드결제(ISP) 결과가 정상적으로 수신되었으므로 DB 작업을 할 경우 + * 결과페이지로 데이터를 전송하기 전 이부분에서 하면된다. + * + * 여기서 DB 작업을 해 주세요. + * 주의) $rSuccYn 값이 'y' 일경우 신용카드승인성공 + * 주의) $rSuccYn 값이 'n' 일경우 신용카드승인실패 + * DB 작업을 하실 경우 $rSuccYn 값이 'y' 또는 'n' 일경우에 맞게 작업하십시오. + * + ****************************************************************************/ + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //주문정보 입력 + if($rSuccYn=="y"){ + //$blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 6); + $blnRS = updatePayState("card",$OrdNo,"W"); + }else{ + jsMsg("신용카드 승인실패"); + } + if($blnRS==true){ + //KCP 결제후 DB 입력처리 완료 변수 설정 + $bSucc = "true"; + //결제금액 $Amt, 상품명 $ProdNm , 결제형태$AuthTy + + //주문자정보 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){//회원로그인을 한 상태라면 + $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_escape_string($arrList["list"][0]["order_no"])); + }else{ + $arrInfo = getOrderInfoGuest($_SESSION[$_SITE["DOMAIN"]]["GUEST"]["NAME"], $_SESSION[$_SITE["DOMAIN"]]["GUEST"]["EMAIL"], mysql_escape_string($arrList["list"][0]["order_no"])); + } + ?> + "; + } + + /**************************************************************************** + * + * 암호화Process와 연결을 하고 승인 데이터 송수신 + * + ****************************************************************************/ + + $fp = fsockopen( $LOCALADDR, $LOCALPORT , &$errno, &$errstr, $CONN_TIMEOUT ); + + + if( !$fp ) + { + /** 연결 실패로 인한 승인실패 메세지 전송 **/ + + $rSuccYn = "n"; + $rResMsg = "연결 실패로 인한 승인실패"; + } + else + { + /** 승인 전문을 암호화Process로 전송 **/ + + fputs( $fp, $sSendMsg ); + + socket_set_timeout($fp, $READ_TIMEOUT); + + /** 최초 6바이트를 수신해 데이터 길이를 체크한 후 데이터만큼만 받는다. **/ + + $sRecvLen = fgets( $fp, 7 ); + $sRecvMsg = fgets( $fp, $sRecvLen + 1 ); + + /**************************************************************************** + * + * 데이터 값이 정상적으로 넘어가지 않을 경우 이부분을 수정하여 주시기 바랍니다. + * PHP 버전에 따라 수신 데이터 길이 체크시 페이지오류가 발생할 수 있습니다 + * 에러메세지:수신 데이터(길이) 체크 에러 통신오류에 의한 승인 실패 + * 데이터 길이 체크 오류시 아래와 같이 변경하여 사용하십시오 + * $sRecvLen = fgets( $fp, 6 ); + * $sRecvMsg = fgets( $fp, $sRecvLen ); + * + ****************************************************************************/ + + /** 소켓 close **/ + + fclose( $fp ); + } + + /**************************************************************************** + * + * 수신 메세지 프린트 + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sRecvMsg."
    "; + } + + if( strlen( $sRecvMsg ) == $sRecvLen ) + { + /** 수신 데이터(길이) 체크 정상 **/ + + $RecvValArray = array(); + $RecvValArray = explode( "|", $sRecvMsg ); + + /** null 또는 NULL 문자, 0 을 공백으로 변환 + for( $i = 0; $i < sizeof( $RecvValArray); $i++ ) + { + $RecvValArray[$i] = trim( $RecvValArray[$i] ); + + if( !strcmp( $RecvValArray[$i], "null" ) || !strcmp( $RecvValArray[$i], "NULL" ) ) + { + $RecvValArray[$i] = ""; + } + + if( IsNumber( $RecvValArray[$i] ) ) + { + if( $RecvValArray[$i] == 0 ) $RecvValArray[$i] = ""; + } + } **/ + + $rStoreId = $RecvValArray[0]; + $rBusiCd = $RecvValArray[1]; + $rOrdNo = $RecvValArray[2]; + $rApprNo = $RecvValArray[3]; + $rInstmt = $Instmt; + $rAmt = $RecvValArray[4]; + $rSuccYn = $RecvValArray[5]; + $rResMsg = $RecvValArray[6]; + $rCardNm = $RecvValArray[7]; + $rApprTm = $RecvValArray[8]; + $rCardCd = $RecvValArray[9]; + $rMembNo = $RecvValArray[10]; + $rAquiCd = $RecvValArray[11]; + $rAquiNm = $RecvValArray[12]; + $rBillNo = $RecvValArray[13]; + + /**************************************************************************** + * + * 신용카드결제(안심클릭, 일반결제) 결과가 정상적으로 수신되었으므로 DB 작업을 할 경우 + * 결과페이지로 데이터를 전송하기 전 이부분에서 하면된다. + * + * 여기서 DB 작업을 해 주세요. + * 주의) $rSuccYn 값이 'y' 일경우 신용카드승인성공 + * 주의) $rSuccYn 값이 'n' 일경우 신용카드승인실패 + * DB 작업을 하실 경우 $rSuccYn 값이 'y' 또는 'n' 일경우에 맞게 작업하십시오. + * + ****************************************************************************/ + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //주문정보 입력 + if($rSuccYn=="y"){ + //$blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 6); + $blnRS = updatePayState("card",$OrdNo,"W"); + }else{ + jsMsg("신용카드 승인실패"); + } + if($blnRS==true){ + //KCP 결제후 DB 입력처리 완료 변수 설정 + $bSucc = "true"; + //결제금액 $Amt, 상품명 $ProdNm , 결제형태$AuthTy + + //주문자정보 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){//회원로그인을 한 상태라면 + $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_escape_string($arrList["list"][0]["order_no"])); + }else{ + $arrInfo = getOrderInfoGuest($_SESSION[$_SITE["DOMAIN"]]["GUEST"]["NAME"], $_SESSION[$_SITE["DOMAIN"]]["GUEST"]["EMAIL"], mysql_escape_string($arrList["list"][0]["order_no"])); + } + ?> + "; + } + + /**************************************************************************** + * + * 암호화Process와 연결을 하고 승인 데이터 송수신 + * + ****************************************************************************/ + + $fp = fsockopen( $LOCALADDR, $LOCALPORT , &$errno, &$errstr, $CONN_TIMEOUT ); + + + if( !$fp ) + { + /** 연결 실패로 인한 승인실패 메세지 전송 **/ + + $rSuccYn = "n"; + $rResMsg = "연결 실패로 인한 승인실패"; + } + else + { + /** 승인 전문을 암호화Process로 전송 **/ + + fputs( $fp, $sSendMsg ); + + socket_set_timeout($fp, $READ_TIMEOUT); + + /** 최초 6바이트를 수신해 데이터 길이를 체크한 후 데이터만큼만 받는다. **/ + + $sRecvLen = fgets( $fp, 7 ); + $sRecvMsg = fgets( $fp, $sRecvLen + 1 ); + + /**************************************************************************** + * + * 데이터 값이 정상적으로 넘어가지 않을 경우 이부분을 수정하여 주시기 바랍니다. + * PHP 버전에 따라 수신 데이터 길이 체크시 페이지오류가 발생할 수 있습니다 + * 에러메세지:수신 데이터(길이) 체크 에러 통신오류에 의한 승인 실패 + * 데이터 길이 체크 오류시 아래와 같이 변경하여 사용하십시오 + * $sRecvLen = fgets( $fp, 6 ); + * $sRecvMsg = fgets( $fp, $sRecvLen ); + * + ****************************************************************************/ + + /** 소켓 close **/ + + fclose( $fp ); + } + + /**************************************************************************** + * + * 수신 메세지 프린트 + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sRecvMsg."
    "; + } + + if( strlen( $sRecvMsg ) == $sRecvLen ) + { + /** 수신 데이터(길이) 체크 정상 **/ + + $RecvValArray = array(); + $RecvValArray = explode( "|", $sRecvMsg ); + + /** null 또는 NULL 문자, 0 을 공백으로 변환 + for( $i = 0; $i < sizeof( $RecvValArray); $i++ ) + { + $RecvValArray[$i] = trim( $RecvValArray[$i] ); + + if( !strcmp( $RecvValArray[$i], "null" ) || !strcmp( $RecvValArray[$i], "NULL" ) ) + { + $RecvValArray[$i] = ""; + } + + if( IsNumber( $RecvValArray[$i] ) ) + { + if( $RecvValArray[$i] == 0 ) $RecvValArray[$i] = ""; + } + } **/ + + $rStoreId = $RecvValArray[1]; + $rOrdNo = $RecvValArray[2]; + $ES_SENDNO = $RecvValArray[4]; + $rSuccYn = $RecvValArray[5]; + $rResMsg = $RecvValArray[6]; + + /**************************************************************************** + * + * 계좌이체(소켓)결제 결과가 정상적으로 수신되었으므로 DB 작업을 할 경우 + * 결과페이지로 데이터를 전송하기 전 이부분에서 하면된다. + * + * 여기서 DB 작업을 해 주세요. + * 주의) $rSuccYn 값이 'y' 일경우 계좌이체결제성공 + * 주의) $rSuccYn 값이 'n' 일경우 계좌이체결제실패 + * DB 작업을 하실 경우 $rSuccYn 값이 'y' 또는 'n' 일경우에 맞게 작업하십시오. + * + ****************************************************************************/ + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //주문정보 입력 + if($rSuccYn=="y"){ + //$blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 6); + $blnRS = updatePayState("escrow",$OrdNo);//입금대기 + }else{ + jsMsg("계좌이체 결제실패"); + } + if($blnRS==true){ + //KCP 결제후 DB 입력처리 완료 변수 설정 + $bSucc = "true"; + //결제금액 $Amt, 상품명 $ProdNm , 결제형태$AuthTy + + //주문자정보 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){//회원로그인을 한 상태라면 + $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_escape_string($arrList["list"][0]["order_no"])); + }else{ + $arrInfo = getOrderInfoGuest($_SESSION[$_SITE["DOMAIN"]]["GUEST"]["NAME"], $_SESSION[$_SITE["DOMAIN"]]["GUEST"]["EMAIL"], mysql_escape_string($arrList["list"][0]["order_no"])); + } + ?> + "; + } + + /**************************************************************************** + * + * 암호화Process와 연결을 하고 승인 데이터 송수신 + * + ****************************************************************************/ + + $fp = fsockopen( $LOCALADDR, $LOCALPORT , &$errno, &$errstr, $CONN_TIMEOUT ); + + if( !$fp ) + { + /** 연결 실패로 인한 승인실패 메세지 전송 **/ + + $rSuccYn = "n"; + $rResMsg = "연결 실패로 인한 승인실패"; + } + else + { + /** 연결에 성공하였으므로 데이터를 받는다. **/ + + $rResMsg = "연결에 성공하였으므로 데이터를 받는다."; + + /** 승인 전문을 암호화Process로 전송 **/ + + fputs( $fp, $sSendMsg ); + + socket_set_timeout($fp, $READ_TIMEOUT); + + /** 최초 6바이트를 수신해 데이터 길이를 체크한 후 데이터만큼만 받는다. **/ + + $sRecvLen = fgets( $fp, 7 ); //수신데이터(길이) 체크에러시 6 또는 7 설정 + $sRecvMsg = fgets( $fp, $sRecvLen + 1 ); + + /**************************************************************************** + * + * 데이터 값이 정상적으로 넘어가지 않을 경우 이부분을 수정하여 주시기 바랍니다. + * PHP 버전에 따라 수신 데이터 길이 체크시 페이지오류가 발생할 수 있습니다 + * 에러메세지:수신 데이터(길이) 체크 에러 통신오류에 의한 승인 실패 + * 데이터 길이 체크 오류시 아래와 같이 변경하여 사용하십시오 + * $sRecvLen = fgets( $fp, 6 ); + * $sRecvMsg = fgets( $fp, $sRecvLen ); + * + ****************************************************************************/ + + /** 소켓 close **/ + + fclose( $fp ); + } + + /**************************************************************************** + * + * 수신 메세지 프린트 + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sRecvMsg."
    "; + } + + if( strlen( $sRecvMsg ) == $sRecvLen ) + { + /** 수신 데이터(길이) 체크 정상 **/ + + $RecvValArray = array(); + $RecvValArray = explode( "|", $sRecvMsg ); + + /** null 또는 NULL 문자, 0 을 공백으로 변환 + for( $i = 0; $i < sizeof( $RecvValArray); $i++ ) + { + $RecvValArray[$i] = trim( $RecvValArray[$i] ); + + if( !strcmp( $RecvValArray[$i], "null" ) || !strcmp( $RecvValArray[$i], "NULL" ) ) + { + $RecvValArray[$i] = ""; + } + + if( IsNumber( $RecvValArray[$i] ) ) + { + if( $RecvValArray[$i] == 0 ) $RecvValArray[$i] = ""; + } + } **/ + + $rAuthTy = $RecvValArray[0]; + $rStoreId = $RecvValArray[1]; + $rApprTm = $RecvValArray[2]; + $rVirNo = $RecvValArray[3]; + $rSuccYn = $RecvValArray[4]; + $rResMsg = $RecvValArray[5]; + + $rOrdNo = $OrdNo; + $rProdNm = $ProdNm; + $rAmt = $Amt; + + /**************************************************************************** + * + * 가상계좌배포 결과가 정상적으로 수신되었으므로 DB 작업을 할 경우 + * 결과페이지로 데이터를 전송하기 전 이부분에서 하면된다. + * + * 여기서 DB 작업을 해 주세요. + * 주의) $rSuccYn 값이 'y' 일경우 일반가상계좌결제승인성공 + * 주의) $rSuccYn 값이 'n' 일경우 일반가상계좌결제승인실패 + * DB 작업을 하실 경우 $rSuccYn 값이 'y' 또는 'n' 일경우에 맞게 작업하십시오. + * + * 에스크로 가상계좌의 경우 rResMsg 필드 값 뒤에서 6자리가 숫자로 들어오며, + * 이 부분을 잘라서 ES_SENDNO(에스크로 전문번호)로 저장하시기 바랍니다. + * + ****************************************************************************/ + + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //주문정보 입력 + if($rSuccYn=="y"){ + //$blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 1); + $blnRS = updatePayState("online",$OrdNo);//입금대기 처리 + }else{ + jsMsg("일반 가상계좌결제 승인실패"); + } + if($blnRS==true){ + //KCP 결제후 DB 입력처리 완료 변수 설정 + $bSucc = "true"; + //결제금액 $Amt, 상품명 $ProdNm , 결제형태$AuthTy + + //주문자정보 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){//회원로그인을 한 상태라면 + $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_escape_string($arrList["list"][0]["order_no"])); + }else{ + $arrInfo = getOrderInfoGuest($_SESSION[$_SITE["DOMAIN"]]["GUEST"]["NAME"], $_SESSION[$_SITE["DOMAIN"]]["GUEST"]["EMAIL"], mysql_escape_string($arrList["list"][0]["order_no"])); + } + ?> + "; + } + + /**************************************************************************** + * + * 암호화Process와 연결을 하고 승인 데이터 송수신 + * + ****************************************************************************/ + + $fp = fsockopen( $LOCALADDR, $LOCALPORT , &$errno, &$errstr, $CONN_TIMEOUT ); + + + if( !$fp ) + { + /** 연결 실패로 인한 승인실패 메세지 전송 **/ + + $rSuccYn = "n"; + $rResMsg = "연결 실패로 인한 승인실패"; + } + else + { + /** 승인 전문을 암호화Process로 전송 **/ + + fputs( $fp, $sSendMsg ); + + socket_set_timeout($fp, $READ_TIMEOUT); + + /** 최초 6바이트를 수신해 데이터 길이를 체크한 후 데이터만큼만 받는다. **/ + + $sRecvLen = fgets( $fp, 7 ); + $sRecvMsg = fgets( $fp, $sRecvLen + 1 ); + + /**************************************************************************** + * + * 데이터 값이 정상적으로 넘어가지 않을 경우 이부분을 수정하여 주시기 바랍니다. + * PHP 버전에 따라 수신 데이터 길이 체크시 페이지오류가 발생할 수 있습니다 + * 에러메세지:수신 데이터(길이) 체크 에러 통신오류에 의한 승인 실패 + * 데이터 길이 체크 오류시 아래와 같이 변경하여 사용하십시오 + * $sRecvLen = fgets( $fp, 6 ); + * $sRecvMsg = fgets( $fp, $sRecvLen ); + * + ****************************************************************************/ + + /** 소켓 close **/ + + fclose( $fp ); + } + + /**************************************************************************** + * + * 수신 메세지 프린트 + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sRecvMsg."
    "; + } + + if( strlen( $sRecvMsg ) == $sRecvLen ) + { + /** 수신 데이터(길이) 체크 정상 **/ + + $RecvValArray = array(); + $RecvValArray = explode( "|", $sRecvMsg ); + + /** null 또는 NULL 문자, 0 을 공백으로 변환 + for( $i = 0; $i < sizeof( $RecvValArray); $i++ ) + { + $RecvValArray[$i] = trim( $RecvValArray[$i] ); + + if( !strcmp( $RecvValArray[$i], "null" ) || !strcmp( $RecvValArray[$i], "NULL" ) ) + { + $RecvValArray[$i] = ""; + } + + if( IsNumber( $RecvValArray[$i] ) ) + { + if( $RecvValArray[$i] == 0 ) $RecvValArray[$i] = ""; + } + } **/ + + $rStoreId = $RecvValArray[0]; + $rSuccYn = $RecvValArray[1]; + $rResMsg = $RecvValArray[2]; + $rHP_DATE = $RecvValArray[3]; + $rHP_TID = $RecvValArray[4]; + $rAmt = $Amt; + $rOrdNo = $OrdNo; + + /**************************************************************************** + * + * 핸드폰결제 결과가 정상적으로 수신되었으므로 DB 작업을 할 경우 + * 결과페이지로 데이터를 전송하기 전 이부분에서 하면된다. + * + * 여기서 DB 작업을 해 주세요. + * 주의) $rSuccYn 값이 'y' 일경우 핸드폰결제승인성공 + * 주의) $rSuccYn 값이 'n' 일경우 핸드폰결제승인실패 + * DB 작업을 하실 경우 $rSuccYn 값이 'y' 또는 'n' 일경우에 맞게 작업하십시오. + * + ****************************************************************************/ + + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + + //주문정보 입력 + if($rSuccYn=="y"){ + //$blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 6); + $blnRS = updatePayState("hp",$OrdNo);//입금확인 + }else{ + jsMsg("핸드폰결제 승인실패"); + } + if($blnRS==true){ + //KCP 결제후 DB 입력처리 완료 변수 설정 + $bSucc = "true"; + //결제금액 $Amt, 상품명 $ProdNm , 결제형태$AuthTy + + //주문자정보 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){//회원로그인을 한 상태라면 + $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_escape_string($arrList["list"][0]["order_no"])); + }else{ + $arrInfo = getOrderInfoGuest($_SESSION[$_SITE["DOMAIN"]]["GUEST"]["NAME"], $_SESSION[$_SITE["DOMAIN"]]["GUEST"]["EMAIL"], mysql_escape_string($arrList["list"][0]["order_no"])); + } + ?> + "; + } + + /**************************************************************************** + * + * 암호화Process와 연결을 하고 승인 데이터 송수신 + * + ****************************************************************************/ + + $fp = fsockopen( $LOCALADDR, $LOCALPORT , &$errno, &$errstr, $CONN_TIMEOUT ); + + + if( !$fp ) + { + /** 연결 실패로 인한 승인실패 메세지 전송 **/ + + $rSuccYn = "n"; + $rResMsg = "연결 실패로 인한 승인실패"; + } + else + { + /** 승인 전문을 암호화Process로 전송 **/ + + fputs( $fp, $sSendMsg ); + + socket_set_timeout($fp, $READ_TIMEOUT); + + /** 최초 6바이트를 수신해 데이터 길이를 체크한 후 데이터만큼만 받는다. **/ + + $sRecvLen = fgets( $fp, 7 ); + $sRecvMsg = fgets( $fp, $sRecvLen + 1 ); + + /**************************************************************************** + * + * 데이터 값이 정상적으로 넘어가지 않을 경우 이부분을 수정하여 주시기 바랍니다. + * PHP 버전에 따라 수신 데이터 길이 체크시 페이지오류가 발생할 수 있습니다 + * 에러메세지:수신 데이터(길이) 체크 에러 통신오류에 의한 승인 실패 + * 데이터 길이 체크 오류시 아래와 같이 변경하여 사용하십시오 + * $sRecvLen = fgets( $fp, 6 ); + * $sRecvMsg = fgets( $fp, $sRecvLen ); + * + ****************************************************************************/ + + /** 소켓 close **/ + + fclose( $fp ); + } + + /**************************************************************************** + * + * 수신 메세지 프린트 + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sRecvMsg."
    "; + } + + if( strlen( $sRecvMsg ) == $sRecvLen ) + { + /** 수신 데이터(길이) 체크 정상 **/ + + $RecvValArray = array(); + $RecvValArray = explode( "|", $sRecvMsg ); + + /** null 또는 NULL 문자, 0 을 공백으로 변환 + for( $i = 0; $i < sizeof( $RecvValArray); $i++ ) + { + $RecvValArray[$i] = trim( $RecvValArray[$i] ); + + if( !strcmp( $RecvValArray[$i], "null" ) || !strcmp( $RecvValArray[$i], "NULL" ) ) + { + $RecvValArray[$i] = ""; + } + + if( IsNumber( $RecvValArray[$i] ) ) + { + if( $RecvValArray[$i] == 0 ) $RecvValArray[$i] = ""; + } + } **/ + + $rStoreId = $RecvValArray[0]; + $rSuccYn = $RecvValArray[1]; + $rResMsg = $RecvValArray[2]; + $rHP_DATE = $RecvValArray[3]; + $rHP_TID = $RecvValArray[4]; + $rAmt = $Amt; + $rOrdNo = $OrdNo; + + /**************************************************************************** + * + * 핸드폰결제 결과가 정상적으로 수신되었으므로 DB 작업을 할 경우 + * 결과페이지로 데이터를 전송하기 전 이부분에서 하면된다. + * + * 여기서 DB 작업을 해 주세요. + * 주의) $rSuccYn 값이 'y' 일경우 핸드폰결제승인성공 + * 주의) $rSuccYn 값이 'n' 일경우 핸드폰결제승인실패 + * DB 작업을 하실 경우 $rSuccYn 값이 'y' 또는 'n' 일경우에 맞게 작업하십시오. + * + ****************************************************************************/ + + + + + + + + } + else + { + /** 수신 데이터(길이) 체크 에러시 통신오류에 의한 승인 실패로 간주 **/ + + $rSuccYn = "n"; + $rResMsg = "수신 데이터(길이) 체크 에러 통신오류에 의한 승인 실패"; + } + } +} +else +{ + $rSuccYn = "n"; + $rResMsg = $ERRMSG; +} +?> + + + + +
    + + + + +"> +"> +"> +"> +"> +"> +"> + +"> +"> +"> + + +"> +"> +"> + +"> +"> +"> +"> +"> + +"> + + +"> +"> +"> + + + + + + + + + + + +"> +"> + +"> + + +"> + +
    + + diff --git a/module/shop/pg_bak/agspay/AGS_pay_ing_mobile.php b/module/shop/pg_bak/agspay/AGS_pay_ing_mobile.php new file mode 100644 index 0000000..748d06f --- /dev/null +++ b/module/shop/pg_bak/agspay/AGS_pay_ing_mobile.php @@ -0,0 +1,409 @@ +SetValue("AgsPayHome",$_SERVER[DOCUMENT_ROOT]."/module/shop/pg/agspay"); //올더게이트 결제설치 디렉토리 (상점에 맞게 수정) +$agspay->SetValue("StoreId",trim($_POST["StoreId"])); //상점아이디 +$agspay->SetValue("log","true"); //true : 로그기록, false : 로그기록안함. +$agspay->SetValue("logLevel","INFO"); //로그레벨 : DEBUG, INFO, WARN, ERROR, FATAL (해당 레벨이상의 로그만 기록됨) +$agspay->SetValue("UseNetCancel","true"); //true : 망취소 사용. false: 망취소 미사용 +$agspay->SetValue("Type", "Pay"); //고정값(수정불가) +$agspay->SetValue("RecvLen", 7); //수신 데이터(길이) 체크 에러시 6 또는 7 설정. + +$agspay->SetValue("AuthTy",trim($_POST["AuthTy"])); //결제형태 +$agspay->SetValue("SubTy", trim($_POST["SubTy"])); //서브결제형태 +$agspay->SetValue("OrdNo", trim($_POST["OrdNo"])); //주문번호 +$agspay->SetValue("Amt", trim($_POST["Amt"])); //금액 +$agspay->SetValue("UserEmail", trim($_POST["UserEmail"])); //주문자이메일 +$agspay->SetValue("ProdNm", trim($_POST["ProdNm"])); //상품명 +// $AGS_HASHDATA = trim($_POST["AGS_HASHDATA"])); //암호화 HASHDATA + +/*신용카드&가상계좌사용*/ +$agspay->SetValue("MallUrl", trim($_POST["MallUrl"])); //MallUrl(무통장입금) - 상점 도메인 가상계좌추가 +$agspay->SetValue("UserId", trim($_POST["UserId"])); //회원아이디 + +/*신용카드사용*/ +$agspay->SetValue("OrdNm", trim($_POST["OrdNm"])); //주문자명 +$agspay->SetValue("OrdPhone", trim($_POST["OrdPhone"])); //주문자연락처 +$agspay->SetValue("OrdAddr",trim($_POST["OrdAddr"])); //주문자주소 가상계좌추가 +$agspay->SetValue("RcpNm", trim($_POST["RcpNm"])); //수신자명 +$agspay->SetValue("RcpPhone", trim($_POST["RcpPhone"])); //수신자연락처 +$agspay->SetValue("DlvAddr", trim($_POST["DlvAddr"])); //배송지주소 +$agspay->SetValue("Remark", trim($_POST["Remark"])); //비고 +$agspay->SetValue("DeviId", trim($_POST["DeviId"])); //단말기아이디 +$agspay->SetValue("AuthYn", trim($_POST["AuthYn"])); //인증여부 +$agspay->SetValue("Instmt", trim($_POST["Instmt"])); //할부개월수 +//$agspay->SetValue("rCardCd", trim($_POST["rCardCd"])); //카드사코드 +$agspay->SetValue("UserIp",$_SERVER["REMOTE_ADDR"]); //회원 IP + +/*신용카드(ISP)*/ +$agspay->SetValue("partial_mm", trim($_POST["partial_mm"])); //일반할부기간 +$agspay->SetValue("noIntMonth", trim($_POST["noIntMonth"])); //무이자할부기간 +$agspay->SetValue("KVP_CURRENCY", trim($_POST["KVP_CURRENCY"])); //KVP_통화코드 +$agspay->SetValue("KVP_CARDCODE", trim($_POST["KVP_CARDCODE"])); //KVP_카드사코드 +$agspay->SetValue("KVP_SESSIONKEY", $_POST["KVP_SESSIONKEY"]); //KVP_SESSIONKEY +$agspay->SetValue("KVP_ENCDATA", $_POST["KVP_ENCDATA"]); //KVP_ENCDATA +$agspay->SetValue("KVP_CONAME", trim($_POST["KVP_CONAME"])); //KVP_카드명 +$agspay->SetValue("KVP_NOINT", trim($_POST["KVP_NOINT"])); //KVP_무이자=1 일반=0 +$agspay->SetValue("KVP_QUOTA", trim($_POST["KVP_QUOTA"])); //KVP_할부개월 + +/*신용카드(안심)*/ +$agspay->SetValue("CardNo", trim($_POST["CardNo"])); //카드번호 +$agspay->SetValue("MPI_CAVV", $_POST["MPI_CAVV"]); //MPI_CAVV +$agspay->SetValue("MPI_ECI", $_POST["MPI_ECI"]); //MPI_ECI +$agspay->SetValue("MPI_MD64", $_POST["MPI_MD64"]); //MPI_MD64 + +/*신용카드(일반)*/ +$agspay->SetValue("ExpMon", trim($_POST["ExpMon"])); //유효기간(월) +$agspay->SetValue("ExpYear", trim($_POST["ExpYear"])); //유효기간(년) +$agspay->SetValue("Passwd", trim($_POST["Passwd"])); //비밀번호 +$agspay->SetValue("SocId", trim($_POST["SocId"])); //주민등록번호/사업자등록번호 + +/*핸드폰사용*/ +$agspay->SetValue("HP_SERVERINFO", trim($_POST["HP_SERVERINFO"])); //SERVER_INFO(핸드폰결제) +$agspay->SetValue("HP_HANDPHONE", trim($_POST["HP_HANDPHONE"])); //HANDPHONE(핸드폰결제) +$agspay->SetValue("HP_COMPANY", trim($_POST["HP_COMPANY"])); //COMPANY(핸드폰결제) +$agspay->SetValue("HP_ID", trim($_POST["HP_ID"])); //HP_ID(핸드폰결제) +$agspay->SetValue("HP_SUBID", trim($_POST["HP_SUBID"])); //HP_SUBID(핸드폰결제) +$agspay->SetValue("HP_UNITType", trim($_POST["HP_UNITType"])); //HP_UNITType(핸드폰결제) +$agspay->SetValue("HP_IDEN", trim($_POST["HP_IDEN"])); //HP_IDEN(핸드폰결제) +$agspay->SetValue("HP_IPADDR", trim($_POST["HP_IPADDR"])); //HP_IPADDR(핸드폰결제) + +/*가상계좌사용*/ +$agspay->SetValue("VIRTUAL_CENTERCD", trim($_POST["VIRTUAL_CENTERCD"])); //은행코드(가상계좌) +$agspay->SetValue("VIRTUAL_DEPODT", trim($_POST["VIRTUAL_DEPODT"])); //입금예정일(가상계좌) +$agspay->SetValue("ZuminCode", trim($_POST["ZuminCode"])); //주민번호(가상계좌) +$agspay->SetValue("MallPage", trim($_POST["MallPage"])); //상점 입/출금 통보 페이지(가상계좌) +$agspay->SetValue("VIRTUAL_NO", trim($_POST["VIRTUAL_NO"])); //가상계좌번호(가상계좌) + +/*에스크로사용*/ +$agspay->SetValue("ES_SENDNO", trim($_POST["ES_SENDNO"])); //에스크로전문번호 + + +/*추가사용필드*/ +$agspay->SetValue("Column1", trim($_POST["Column1"])); //추가사용필드1 +$agspay->SetValue("Column2", trim($_POST["Column2"])); //추가사용필드2 +$agspay->SetValue("Column3", trim($_POST["Column3"])); //추가사용필드3 + +/**************************************************************************** +* +* [4] 올더게이트 결제서버로 결제를 요청합니다. +* +****************************************************************************/ +$agspay->startPay(); + + +/**************************************************************************** +* +* [5] 결제결과에 따른 상점DB 저장 및 기타 필요한 처리작업을 수행하는 부분입니다. +* +* 아래의 결과값들을 통하여 각 결제수단별 결제결과값을 사용하실 수 있습니다. +* +* -- 공통사용 -- +* 업체ID : $agspay->GetResult("rStoreId") +* 주문번호 : $agspay->GetResult("rOrdNo") +* 상품명 : $agspay->GetResult("rProdNm") +* 거래금액 : $agspay->GetResult("rAmt") +* 성공여부 : $agspay->GetResult("rSuccYn") (성공:y 실패:n) +* 결과메시지 : $agspay->GetResult("rResMsg") +* +* 1. 신용카드 +* +* 전문코드 : $agspay->GetResult("rBusiCd") +* 거래번호 : $agspay->GetResult("rDealNo") +* 승인번호 : $agspay->GetResult("rApprNo") +* 할부개월 : $agspay->GetResult("rInstmt") +* 승인시각 : $agspay->GetResult("rApprTm") +* 카드사코드 : $agspay->GetResult("rCardCd") +* +* +* 2.가상계좌 +* 가상계좌의 결제성공은 가상계좌발급의 성공만을 의미하며 입금대기상태로 실제 고객이 입금을 완료한 것은 아닙니다. +* 따라서 가상계좌 결제완료시 결제완료로 처리하여 상품을 배송하시면 안됩니다. +* 결제후 고객이 발급받은 계좌로 입금이 완료되면 MallPage(상점 입금통보 페이지(가상계좌))로 입금결과가 전송되며 +* 이때 비로소 결제가 완료되게 되므로 결제완료에 대한 처리(배송요청 등)은 MallPage에 작업해주셔야 합니다. +* 결제종류 : $agspay->GetResult("rAuthTy") (가상계좌 일반 : vir_n 유클릭 : vir_u 에스크로 : vir_s) +* 승인일자 : $agspay->GetResult("rApprTm") +* 가상계좌번호 : $agspay->GetResult("rVirNo") +* +* 3.핸드폰결제 +* 핸드폰결제일 : $agspay->GetResult("rHP_DATE") +* 핸드폰결제 TID : $agspay->GetResult("rHP_TID") +* +****************************************************************************/ + +if($agspay->GetResult("rSuccYn") == "y") +{ + $resultArray = array( + "OrdNm" => $agspay->GetResult("OrdNm"), + "OrdPhone" => $agspay->GetResult("OrdPhone"), + "Column1" => $agspay->GetResult("Column1"), + "OrdAddr" => $agspay->GetResult("OrdAddr"), + "UserEmail" => $agspay->GetResult("UserEmail"), + "RcpNm" => $agspay->GetResult("RcpNm"), + "RcpPhone" => $agspay->GetResult("RcpPhone"), + "Column2" => $agspay->GetResult("Column2"), + "DlvAddr" => $agspay->GetResult("DlvAddr"), + "Remark" => $agspay->GetResult("Remark"), + "Column3" => $agspay->GetResult("Column3") + ); + + if($agspay->GetResult("AuthTy") == "virtual"){ + //가상계좌결제의 경우 입금이 완료되지 않은 입금대기상태(가상계좌 발급성공)이므로 상품을 배송하시면 안됩니다. + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //_POST 로 받는 주문번호가 기존에 주문된 주문번호인지 확인 +// if(checkVaildOrderNo(mysql_escape_string($_POST["order_no"]))==true){ + if(checkVaildOrderNo(mysql_escape_string($agspay->GetResult("rOrdNo")))==true){ + jsMsg("이미 주문이 완료되었습니다."); + } + + //_POST 로 받은 주문번호가 구매직전 장바구니에 있는지 확인 +// if($_POST["order_no"] != $arrList["list"][0]["order_no"]){ + if($agspay->GetResult("rOrdNo") != $arrList["list"][0]["order_no"]){ + jsMsg("잘못된 주문 정보 입니다. 주문 장바구니에 해당 주문건이 없습니다."); + } + + //주문정보 입력 +// if($rSuccYn=="y"){ + $blnRS = setOrderInfoMobile($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 1, $resultArray); +// }else{ +// jsMsg("일반 가상계좌결제 승인실패"); +// } + if($blnRS==true){ + + //주문자에게 메일발송 + // $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_escape_string($_REQUEST["order_no"])); + // $arrMailInfo = getMailConfig(1); + // sendMailShopInfo($arrInfo, $arrMailInfo); + //주문자에게 메일발송 + } + //DB해제 + SetDisConn($dblink); + + }else if($agspay->GetResult("AuthTy") == "card"){ + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //_POST 로 받는 주문번호가 기존에 주문된 주문번호인지 확인 +// if(checkVaildOrderNo(mysql_escape_string($_POST["order_no"]))==true){ + $blnRS = updatePayState("card",$_POST["OrdNo"],"M"); + if(checkVaildOrderNo(mysql_escape_string($agspay->GetResult("rOrdNo")))==true){ + //jsMsg("이미 주문이 완료되었습니다.card"); + } + + //_POST 로 받은 주문번호가 구매직전 장바구니에 있는지 확인 +// if($_POST["order_no"] != $arrList["list"][0]["order_no"]){ + if($agspay->GetResult("rOrdNo") != $arrList["list"][0]["order_no"]){ + //jsMsg("잘못된 주문 정보 입니다. 주문 장바구니에 해당 주문건이 없습니다.card"); + } + + //주문정보 입력 +// if($rSuccYn=="y"){ + $blnRS = setOrderInfoMobile($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 6, $resultArray); +// $blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 2, $agspay->GetResult("rApprNo"), $agspay->GetResult("rApprTm"), $agspay->GetResult("rDealNo"), $agspay->GetResult("AuthTy"), $agspay->GetResult("SubTy")); +// }else{ +// jsMsg("신용카드 승인실패"); +// } + if($blnRS==true){ + //주문자에게 메일발송 + } + //DB해제 + SetDisConn($dblink); + + }else if($agspay->GetResult("AuthTy") == "hp"){ + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + //_POST 로 받는 주문번호가 기존에 주문된 주문번호인지 확인 +// if(checkVaildOrderNo(mysql_escape_string($_POST["order_no"]))==true){ + if(checkVaildOrderNo(mysql_escape_string($agspay->GetResult("rOrdNo")))==true){ + jsMsg("이미 주문이 완료되었습니다."); + } + + //_POST 로 받은 주문번호가 구매직전 장바구니에 있는지 확인 +// if($_POST["order_no"] != $arrList["list"][0]["order_no"]){ + if($agspay->GetResult("rOrdNo") != $arrList["list"][0]["order_no"]){ + jsMsg("잘못된 주문 정보 입니다. 주문 장바구니에 해당 주문건이 없습니다."); + } + + //주문정보 입력 +// if($rSuccYn=="y"){ + $blnRS = setOrderInfoMobile($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 6, $resultArray); +// $blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], 2); +// }else{ +// jsMsg("신용카드 승인실패"); +// } + if($blnRS==true){ + //주문자에게 메일발송 +// $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_escape_string($_REQUEST["order_no"])); +// $arrMailInfo = getMailConfig(6); +// sendMailShopInfo($arrInfo, $arrMailInfo); + //주문자에게 메일발송 + } + //DB해제 + SetDisConn($dblink); + } +} +else +{ + // 결제실패에 따른 상점처리부분 + echo ("결제가 실패처리되었습니다. [" . $agspay->GetResult("rSuccYn")."]". $agspay->GetResult("rResMsg").". " ); +} + +/******************************************************************* +* [6] 결제가 정상처리되지 못했을 경우 $agspay->GetResult("NetCancID") 값을 이용하여 +* 결제결과에 대한 재확인요청을 할 수 있습니다. +* +* 추가 데이터송수신이 발생하므로 결제가 정상처리되지 않았을 경우에만 사용하시기 바랍니다. +* +* 사용방법 : +* $agspay->checkPayResult($agspay->GetResult("NetCancID")); +* +*******************************************************************/ + +/* +$agspay->SetValue("Type", "Pay"); // 고정 +$agspay->checkPayResult($agspay->GetResult("NetCancID")); +*/ + +/******************************************************************* +* [7] 상점DB 저장 및 기타 처리작업 수행실패시 강제취소 +* +* $cancelReq : "true" 강제취소실행, "false" 강제취소실행안함. +* +* 결제결과에 따른 상점처리부분 수행 중 실패하는 경우 +* 아래의 코드를 참조하여 거래를 취소할 수 있습니다. +* 취소성공여부 : $agspay->GetResult("rCancelSuccYn") (성공:y 실패:n) +* 취소결과메시지 : $agspay->GetResult("rCancelResMsg") +* +* 유의사항 : +* 가상계좌(virtual)는 강제취소 기능이 지원되지 않습니다. +*******************************************************************/ + +// 상점처리부분 수행실패시 $cancelReq를 "true"로 변경하여 +// 결제취소를 수행되도록 할 수 있습니다. +// $cancelReq의 "true"값으로 변경조건은 상점에서 판단하셔야 합니다. + +/* +$cancelReq = "false"; + +if($cancelReq == "true") +{ + $agspay->SetValue("Type", "Cancel"); // 고정 + $agspay->SetValue("CancelMsg", "DB FAIL"); // 취소사유 + $agspay->startPay(); +} +*/ +?> + + + + + +
    + +"> + + + +"> +"> +"> +"> +"> +"> +"> + + +"> +"> +"> + + +"> +"> +"> +"> + +"> +"> +"> +"> + + +"> +"> +"> +"> + + +"> +"> + + +"> + +
    + + diff --git a/module/shop/pg_bak/agspay/AGS_pay_result.php b/module/shop/pg_bak/agspay/AGS_pay_result.php new file mode 100644 index 0000000..6cb37aa --- /dev/null +++ b/module/shop/pg_bak/agspay/AGS_pay_result.php @@ -0,0 +1,403 @@ + + + +ôƮ + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +


    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    : + +
    ̵ :
    ֹȣ :
    ֹڸ :
    ǰ :
    ݾ :
    :
    ó޼ :
    νð :
    ڵ :
    ιȣ :
    īڵ :
    ī :
    Իڵ :
    Ի :
    ȣ :
    ǥȣ :
    ŷȣ :
    ü :
    üݾ :
    ü¼ :
    ũ(SEND_NO) :
    ڵTID :
    ڵ¥ :
    ڵڵȣ :
    ڵŻ :
    ARSTID :
    ARS¥ :
    ARSȭȣ :
    ARSŻ :
    Աݰ¹ȣ :
    Ա :
    ָ : ()ȿ
    ũ(SEND_NO) :
    :
     
    ī ̿ ó ȿ() ǥ˴ϴ.
    +

    Copyright 2007-2009 AEGISHYOSUNG.Co.,Ltd. All rights reserved.
    +
    + + + diff --git a/module/shop/pg_bak/agspay/AGS_progress.html b/module/shop/pg_bak/agspay/AGS_progress.html new file mode 100644 index 0000000..3b74a34 --- /dev/null +++ b/module/shop/pg_bak/agspay/AGS_progress.html @@ -0,0 +1,27 @@ + + + +ó... + + + + + + + + +
    + óԴϴ. ø ٷ ֽʽÿ. +
    +
    + +
    + + \ No newline at end of file diff --git a/module/shop/pg_bak/agspay/_mobile.php b/module/shop/pg_bak/agspay/_mobile.php new file mode 100644 index 0000000..fd07c69 --- /dev/null +++ b/module/shop/pg_bak/agspay/_mobile.php @@ -0,0 +1,246 @@ + + + + +/module/shop/pg/agspay/AGS_pay_ing_mobile.php"> +/module/shop/shop.php?goPage=OrderMobile"> + +"> + + +"> + +"> + +"> + + + + + + + + + + + + + + + + + + +"> +"> +"> +"> +"> + + + + + + + diff --git a/module/shop/pg_bak/agspay/aegis_Func.php b/module/shop/pg_bak/agspay/aegis_Func.php new file mode 100644 index 0000000..9fb972c --- /dev/null +++ b/module/shop/pg_bak/agspay/aegis_Func.php @@ -0,0 +1,211 @@ + $Value ) + { + if( strcmp( $Value, $StoreId ) == 0 ) + { + $CurrTime = date( "H" ); + if( $CurrTime >= $Limit_StartTime[$Index] || $CurrTime < $Limit_EndTime[$Index] ) + { + print " + + "; + } + return; + } + } +} +*/ + +/* + Aegis ī嵥 Encrypt +*/ + +function encrypt_aegis( $OrgData ) +{ + if( empty( $OrgData ) || $OrgData == "" ) + { + return ""; + } + + $temp = ""; + for( $i = 0; $i < strlen( $OrgData ); $i++ ) + { + $temp .= substr( $OrgData, (strlen( $OrgData ) - 1) - $i, 1 ); + } + + //print "Reverse data : ".$temp."
    "; + + $one_char = ""; + $EncData = ""; + for( $i = 0; $i < strlen( $temp ); $i++ ) + { + $one_char = substr( $temp, $i, 1 ); + $EncData .= ($one_char + $i * 77) % 10 ; + } + + //print "Enc Data : ".$EncData."
    "; + + return $EncData; +} + +/* + ڿ +*/ +function format_string($TSTR,$TLEN,$TAG) +{ + if ( !isset($TSTR) ) + { + for ( $i=0 ; $i < $TLEN ; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + } + + $TSTR = trim($TSTR); + + $TSTR = stripslashes($TSTR); + + // Էڷᰡ ̺ ڸ ѱó + + if ( strlen($TSTR) > $TLEN ) + { + // $flag == 1 ̸ Ʈ ѱ Ʈ ̶ ű ڸ Ǹ + // ѱ Ǵ ߻մϴ. + + $flag = 0; + + for($i=0 ; $i< $TLEN ; $i++) + { + $j = ord($TSTR[$i]); // ASCII մϴ. + // ASCII 127 ũ Ʈ ѱ ۹Ʈ̰ų Ʈ(?) . + if($j > 127) + { + if( $flag ) $flag = 0; // $flag Ѵٴ ̹ ڴ ѱ Ʈ̱ + // $flag 0 ݴϴ. + else $flag = 1; // ѱ ۹Ʈ. ׷Ƿ $flag 1! + } + else $flag = 0; // ٸ ڳ ϶ ׳ Ѿ ǰ. + } + if( $flag ) + { + // ̷ ؼ ڱ $flag ؼ $flag ϸ + $TSTR = substr($TSTR, 0, $TLEN - 1); + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + else + { + // ѹƮ ؼ ڸ ڸ ؾ߰. + $TSTR = substr($TSTR, 0, $TLEN); // ƴ .... + } + + return $TSTR; // Ʈ ȯմϴ. + + // Էڷᰡ ̺ SPACE ä + } + else if ( strlen($TSTR) < $TLEN ) + { + $TLENGTH = strlen($TSTR); + for ( $i=0 ; $i < $TLEN - $TLENGTH; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + + return ($TSTR); + + // Էڷᰡ ̿ + } + else if ( strlen($TSTR) == $TLEN ) + { + return ($TSTR); + } +} + +/* + Է ڰ ھƽŰ شϴ Ǵ. +*/ +function IsNumber($word) +{ + + for($i = 0; $i < strlen($word); $i++) + { + $wordNum = ord( substr( $word, $i, 1 ) ); + + if( $wordNum < 48 || $wordNum > 57 ) + { + return false; + } + + } + + return true; +} +/* + ޼ +*/ +function AlertMsg( $msg , $go=0) +{ + + $msg = str_replace( "\"" ,"'" ,$msg ); + $msg = str_replace( "\n" ,"\\n" ,$msg ); + print ""; + +} +function HistoryGo( $go ) +{ + print ""; +} + +function AlertExit( $msg ) +{ + + AlertMsg( $msg ); + exit; + +} + +function AlertGoBack( $msg ) +{ + + AlertMsg( $msg, -1); + exit; +} + +?> \ No newline at end of file diff --git a/module/shop/pg_bak/agspay/default.html b/module/shop/pg_bak/agspay/default.html new file mode 100644 index 0000000..1f99068 --- /dev/null +++ b/module/shop/pg_bak/agspay/default.html @@ -0,0 +1,43 @@ + + +ôƮ + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    ôƮ ý

    ҿûôƮ ÷ Ͽ óմϴ.
    ҿûŷȣ(TID) ԷϿ մϴ.

    Copyright 2006-2007 AEGISHYOSUNG.Co.,Ltd. All rights reserved.
    +
    + + diff --git a/module/shop/pg_bak/agspay/log/AgsPay40_php_acetel_140702.log b/module/shop/pg_bak/agspay/log/AgsPay40_php_acetel_140702.log new file mode 100644 index 0000000..1f900cf --- /dev/null +++ b/module/shop/pg_bak/agspay/log/AgsPay40_php_acetel_140702.log @@ -0,0 +1,387 @@ +INFO [2014-07-02 18:29:22:541] <25061> =============================================================== +INFO [2014-07-02 18:29:22:541] <25061> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-02 18:29:22:541] <25061> card Pay Start! +INFO [2014-07-02 18:29:22:541] <25061> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-02 18:29:22:542] <25061> StoreId:acetel +INFO [2014-07-02 18:29:22:542] <25061> log:true +INFO [2014-07-02 18:29:22:542] <25061> logLevel:INFO +INFO [2014-07-02 18:29:22:542] <25061> UseNetCancel:true +INFO [2014-07-02 18:29:22:542] <25061> Type:Pay +INFO [2014-07-02 18:29:22:542] <25061> RecvLen:7 +INFO [2014-07-02 18:29:22:542] <25061> AuthTy:card +INFO [2014-07-02 18:29:22:542] <25061> SubTy:isp +INFO [2014-07-02 18:29:22:542] <25061> OrdNo:20140702182732T74084 +INFO [2014-07-02 18:29:22:542] <25061> Amt:17800 +INFO [2014-07-02 18:29:22:542] <25061> UserEmail:test@empal.com +INFO [2014-07-02 18:29:22:543] <25061> ProdNm:ũ 帲 +INFO [2014-07-02 18:29:22:543] <25061> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-02 18:29:22:543] <25061> UserId:test11 +INFO [2014-07-02 18:29:22:543] <25061> OrdNm:̸ +INFO [2014-07-02 18:29:22:543] <25061> OrdPhone:111-1111-1111 +INFO [2014-07-02 18:29:22:543] <25061> OrdAddr: Ż絿 1234 +INFO [2014-07-02 18:29:22:543] <25061> RcpNm:̸ +INFO [2014-07-02 18:29:22:543] <25061> RcpPhone:111-1111-1111 +INFO [2014-07-02 18:29:22:543] <25061> DlvAddr: Ż絿 ο 1234 +INFO [2014-07-02 18:29:22:543] <25061> Remark:½Ʈ +INFO [2014-07-02 18:29:22:543] <25061> DeviId:9000400001 +INFO [2014-07-02 18:29:22:543] <25061> AuthYn:N +INFO [2014-07-02 18:29:22:543] <25061> Instmt:00 +INFO [2014-07-02 18:29:22:544] <25061> UserIp:125.131.234.203 +INFO [2014-07-02 18:29:22:544] <25061> partial_mm:00 +INFO [2014-07-02 18:29:22:544] <25061> noIntMonth: +INFO [2014-07-02 18:29:22:544] <25061> KVP_CURRENCY:WON +INFO [2014-07-02 18:29:22:544] <25061> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-02 18:29:22:544] <25061> KVP_SESSIONKEY:GjyMqvog78nrNoRamfvld7GPP62GPiPru/dIykVscNysmtt0A1fhw4dbIKknQqsRadgsW0PSXCxW9hxQMWY4MTdEURQzSMCoSuDRgMlyPnJQ6ltzFUSNoJLUGXj4o2Si0EjrkwidgxZfPaZyk09p972ESaq8Adx6CtvziPwCLK4= +INFO [2014-07-02 18:29:22:544] <25061> KVP_ENCDATA:cdata=myYT6zwXX9iaMDW8UNLtk5q1SlgKanMXNOyPcVdGFjndcw0SsDhDBv22mQvZ9eUG0yT6M03/eqs0ojYVKB3o0GPYapfw1qn5HklJluvbbetMi9xp0i1G86eOge0p+7FYtNSBkWyfMtXdGTgcCSY6e5K76D/aEwMjF99E2964MTuMblD1NVOqL97uAUb0SoR4FfyAoLXdYzzAlvtJfmd8BKxJEXnSSMUSgQ/p5bt6FIPTcdPKi+ZgbjWlYicPg80KHIlJL/Zi8ELgc3ZrCsB8Q4XBXWnDw16rg/pkyZBNUdyEHLZpXq+z59z18uWxMwDR4LPRonSD9kTVB91TJO2yM8+p4/budXi61/6hM47pcdmVleDC/HvtD/ld2ERNluwZ5P2fMf1H0E4nlGqNgTUrIML33aZJv3DfzVevGgJwCdv38NLWCLTRLEx5Uc2sZMXv8vlgY8pV3VQ6lPlgknZ1pgJLnjDQ7pK86TrxBRK1TBgnOa53Wpq6zLLPGdb/HKGSKRHty69wWCIrZcbhNcRiQuATzlfJRAprlwzJAVeyd6I= +INFO [2014-07-02 18:29:22:544] <25061> KVP_CONAME: +INFO [2014-07-02 18:29:22:544] <25061> KVP_NOINT:0 +INFO [2014-07-02 18:29:22:544] <25061> KVP_QUOTA:00 +INFO [2014-07-02 18:29:22:544] <25061> CardNo: +INFO [2014-07-02 18:29:22:544] <25061> MPI_CAVV: +INFO [2014-07-02 18:29:22:544] <25061> MPI_ECI: +INFO [2014-07-02 18:29:22:545] <25061> MPI_MD64: +INFO [2014-07-02 18:29:22:545] <25061> ExpMon: +INFO [2014-07-02 18:29:22:545] <25061> ExpYear: +INFO [2014-07-02 18:29:22:545] <25061> Passwd: +INFO [2014-07-02 18:29:22:545] <25061> SocId: +INFO [2014-07-02 18:29:22:545] <25061> HP_SERVERINFO: +INFO [2014-07-02 18:29:22:545] <25061> HP_HANDPHONE: +INFO [2014-07-02 18:29:22:545] <25061> HP_COMPANY: +INFO [2014-07-02 18:29:22:545] <25061> HP_ID: +INFO [2014-07-02 18:29:22:545] <25061> HP_SUBID: +INFO [2014-07-02 18:29:22:545] <25061> HP_UNITType: +INFO [2014-07-02 18:29:22:545] <25061> HP_IDEN: +INFO [2014-07-02 18:29:22:545] <25061> HP_IPADDR: +INFO [2014-07-02 18:29:22:546] <25061> VIRTUAL_CENTERCD: +INFO [2014-07-02 18:29:22:546] <25061> VIRTUAL_DEPODT: +INFO [2014-07-02 18:29:22:546] <25061> ZuminCode: +INFO [2014-07-02 18:29:22:546] <25061> MallPage: +INFO [2014-07-02 18:29:22:546] <25061> VIRTUAL_NO: +INFO [2014-07-02 18:29:22:546] <25061> ES_SENDNO: +INFO [2014-07-02 18:29:22:546] <25061> Column1: +INFO [2014-07-02 18:29:22:546] <25061> Column2: +INFO [2014-07-02 18:29:22:546] <25061> Column3: +INFO [2014-07-02 18:29:22:546] <25061> Make NetCancel ID Start +INFO [2014-07-02 18:29:22:546] <25061> AEGIS_ISP_acetel_20140702182922546582 +INFO [2014-07-02 18:29:22:547] <25061> Make NetCancel ID End +INFO [2014-07-02 18:29:22:547] <25061> Make NetCancelID OK +INFO [2014-07-02 18:29:22:547] <25061> Make Msg Start +INFO [2014-07-02 18:29:22:547] <25061> card-isp Make MSG OK +INFO [2014-07-02 18:29:22:547] <25061> Make Msg End +INFO [2014-07-02 18:29:22:547] <25061> Make Pay Msg OK +INFO [2014-07-02 18:29:22:547] <25061> Send & Recv Msg Start +INFO [2014-07-02 18:29:22:547] <25061> Send Data To PG Start [ +INFO [2014-07-02 18:29:22:547] <25061> 0:0010192plug15 +INFO [2014-07-02 18:29:22:547] <25061> 1:acetel +INFO [2014-07-02 18:29:22:547] <25061> 2:test11 +INFO [2014-07-02 18:29:22:547] <25061> 3:17800 +INFO [2014-07-02 18:29:22:547] <25061> 4:20140702182732T74084 +INFO [2014-07-02 18:29:22:547] <25061> 5:9000400001 +INFO [2014-07-02 18:29:22:547] <25061> 6:̸ +INFO [2014-07-02 18:29:22:547] <25061> 7:111-1111-1111 +INFO [2014-07-02 18:29:22:547] <25061> 8: Ż絿 ο 1234 +INFO [2014-07-02 18:29:22:547] <25061> 9:̸ +INFO [2014-07-02 18:29:22:547] <25061> 10:111-1111-1111 +INFO [2014-07-02 18:29:22:547] <25061> 11:½Ʈ +INFO [2014-07-02 18:29:22:547] <25061> 12:ũ 帲 +INFO [2014-07-02 18:29:22:547] <25061> 13:WON +INFO [2014-07-02 18:29:22:547] <25061> 14:00 +INFO [2014-07-02 18:29:22:547] <25061> 15: +INFO [2014-07-02 18:29:22:547] <25061> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-02 18:29:22:547] <25061> 17:GjyMqvog78nrNoRamfvld7GPP62GPiPru/dIykVscNysmtt0A1fhw4dbIKknQqsRadgsW0PSXCxW9hxQMWY4MTdEURQzSMCoSuDRgMlyPnJQ6ltzFUSNoJLUGXj4o2Si0EjrkwidgxZfPaZyk09p972ESaq8Adx6CtvziPwCLK4= +INFO [2014-07-02 18:29:22:547] <25061> 18:cdata=myYT6zwXX9iaMDW8UNLtk5q1SlgKanMXNOyPcVdGFjndcw0SsDhDBv22mQvZ9eUG0yT6M03/eqs0ojYVKB3o0GPYapfw1qn5HklJluvbbetMi9xp0i1G86eOge0p+7FYtNSBkWyfMtXdGTgcCSY6e5K76D/aEwMjF99E2964MTuMblD1NVOqL97uAUb0SoR4FfyAoLXdYzzAlvtJfmd8BKxJEXnSSMUSgQ/p5bt6FIPTcdPKi+ZgbjWlYicPg80KHIlJL/Zi8ELgc3ZrCsB8Q4XBXWnDw16rg/pkyZBNUdyEHLZpXq+z59z18uWxMwDR4LPRonSD9kTVB91TJO2yM8+p4/budXi61/6hM47pcdmVleDC/HvtD/ld2ERNluwZ5P2fMf1H0E4nlGqNgTUrIML33aZJv3DfzVevGgJwCdv38NLWCLTRLEx5Uc2sZMXv8vlgY8pV3VQ6lPlgknZ1pgJLnjDQ7pK86TrxBRK1TBgnOa53Wpq6zLLPGdb/HKGSKRHty69wWCIrZcbhNcRiQuATzlfJRAprlwzJAVeyd6I= +INFO [2014-07-02 18:29:22:547] <25061> 19: +INFO [2014-07-02 18:29:22:547] <25061> 20:125.131.234.203 +INFO [2014-07-02 18:29:22:547] <25061> 21:test@empal.com +INFO [2014-07-02 18:29:22:547] <25061> 22:AEGIS_ISP_acetel_20140702182922546582 +INFO [2014-07-02 18:29:22:547] <25061> 23: +INFO [2014-07-02 18:29:22:548] <25061> ] Send Data To PG End +INFO [2014-07-02 18:29:22:548] <25061> SendMsg : [0010192plug15|acetel|test11|17800|20140702182732T74084|9000400001|̸|111-1111-1111| Ż絿 ο 1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|GjyMqvog78nrNoRamfvld7GPP62GPiPru/dIykVscNysmtt0A1fhw4dbIKknQqsRadgsW0PSXCxW9hxQMWY4MTdEURQzSMCoSuDRgMlyPnJQ6ltzFUSNoJLUGXj4o2Si0EjrkwidgxZfPaZyk09p972ESaq8Adx6CtvziPwCLK4=|cdata=myYT6zwXX9iaMDW8UNLtk5q1SlgKanMXNOyPcVdGFjndcw0SsDhDBv22mQvZ9eUG0yT6M03/eqs0ojYVKB3o0GPYapfw1qn5HklJluvbbetMi9xp0i1G86eOge0p+7FYtNSBkWyfMtXdGTgcCSY6e5K76D/aEwMjF99E2964MTuMblD1NVOqL97uAUb0SoR4FfyAoLXdYzzAlvtJfmd8BKxJEXnSSMUSgQ/p5bt6FIPTcdPKi+ZgbjWlYicPg80KHIlJL/Zi8ELgc3ZrCsB8Q4XBXWnDw16rg/pkyZBNUdyEHLZpXq+z59z18uWxMwDR4LPRonSD9kTVB91TJO2yM8+p4/budXi61/6hM47pcdmVleDC/HvtD/ld2ERNluwZ5P2fMf1H0E4nlGqNgTUrIML33aZJv3DfzVevGgJwCdv38NLWCLTRLEx5Uc2sZMXv8vlgY8pV3VQ6lPlgknZ1pgJLnjDQ7pK86TrxBRK1TBgnOa53Wpq6zLLPGdb/HKGSKRHty69wWCIrZcbhNcRiQuATzlfJRAprlwzJAVeyd6I=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140702182922546582|] +INFO [2014-07-02 18:29:22:548] <25061> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-02 18:29:22:552] <25061> Socket Open OK +INFO [2014-07-02 18:29:25:687] <25061> RecvMsg Length : [000083] +INFO [2014-07-02 18:29:25:687] <25061> RecvMsg : [acetel|0610|106875|50730140|17800|y|:20140702182732T74084|20140702182932|0100| +] +INFO [2014-07-02 18:29:25:687] <25061> Socket Close OK +INFO [2014-07-02 18:29:25:687] <25061> RecvMsg Length Check OK +INFO [2014-07-02 18:29:25:687] <25061> Send & Recv Msg End +INFO [2014-07-02 18:29:25:687] <25061> Send & Recv Msg OK +INFO [2014-07-02 18:29:25:687] <25061> Parse Msg Start +INFO [2014-07-02 18:29:25:687] <25061> card-isp RECV MSG Parsing OK +INFO [2014-07-02 18:29:25:687] <25061> Parse Msg End +INFO [2014-07-02 18:29:25:687] <25061> Msg Parsing OK +INFO [2014-07-02 18:29:25:687] <25061> card Pay Result Value [ +INFO [2014-07-02 18:29:25:687] <25061> NetCancID:AEGIS_ISP_acetel_20140702182922546582 +INFO [2014-07-02 18:29:25:687] <25061> rStoreId:acetel +INFO [2014-07-02 18:29:25:687] <25061> rBusiCd:0610 +INFO [2014-07-02 18:29:25:687] <25061> rOrdNo:20140702182732T74084 +INFO [2014-07-02 18:29:25:688] <25061> rDealNo:106875 +INFO [2014-07-02 18:29:25:688] <25061> rApprNo:50730140 +INFO [2014-07-02 18:29:25:688] <25061> rProdNm:ũ 帲 +INFO [2014-07-02 18:29:25:688] <25061> rAmt:17800 +INFO [2014-07-02 18:29:25:688] <25061> rInstmt:00 +INFO [2014-07-02 18:29:25:688] <25061> rSuccYn:y +INFO [2014-07-02 18:29:25:688] <25061> rResMsg::20140702182732T74084 +INFO [2014-07-02 18:29:25:688] <25061> rApprTm:20140702182932 +INFO [2014-07-02 18:29:25:688] <25061> rCardCd:0100 +INFO [2014-07-02 18:29:25:688] <25061> ] +INFO [2014-07-02 18:29:25:688] <25061> END :20140702182732T74084 Transaction time:[3.164sec] +INFO [2014-07-02 18:29:25:688] <25061> =============================================================== +INFO [2014-07-02 18:34:00:271] <24844> =============================================================== +INFO [2014-07-02 18:34:00:271] <24844> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-02 18:34:00:271] <24844> card Pay Start! +INFO [2014-07-02 18:34:00:271] <24844> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-02 18:34:00:271] <24844> StoreId:acetel +INFO [2014-07-02 18:34:00:271] <24844> log:true +INFO [2014-07-02 18:34:00:271] <24844> logLevel:INFO +INFO [2014-07-02 18:34:00:271] <24844> UseNetCancel:true +INFO [2014-07-02 18:34:00:271] <24844> Type:Pay +INFO [2014-07-02 18:34:00:272] <24844> RecvLen:7 +INFO [2014-07-02 18:34:00:272] <24844> AuthTy:card +INFO [2014-07-02 18:34:00:272] <24844> SubTy:isp +INFO [2014-07-02 18:34:00:272] <24844> OrdNo:20140702182732T74084 +INFO [2014-07-02 18:34:00:272] <24844> Amt:17800 +INFO [2014-07-02 18:34:00:272] <24844> UserEmail:test@empal.com +INFO [2014-07-02 18:34:00:272] <24844> ProdNm:ũ 帲 +INFO [2014-07-02 18:34:00:272] <24844> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-02 18:34:00:272] <24844> UserId:test11 +INFO [2014-07-02 18:34:00:272] <24844> OrdNm:̸ +INFO [2014-07-02 18:34:00:272] <24844> OrdPhone:111-1111-1111 +INFO [2014-07-02 18:34:00:272] <24844> OrdAddr: Ż絿 1234 +INFO [2014-07-02 18:34:00:272] <24844> RcpNm:̸ +INFO [2014-07-02 18:34:00:273] <24844> RcpPhone:111-1111-1111 +INFO [2014-07-02 18:34:00:273] <24844> DlvAddr: Ż絿 ο 1234 +INFO [2014-07-02 18:34:00:273] <24844> Remark:½Ʈ +INFO [2014-07-02 18:34:00:273] <24844> DeviId:9000400001 +INFO [2014-07-02 18:34:00:273] <24844> AuthYn:N +INFO [2014-07-02 18:34:00:273] <24844> Instmt:00 +INFO [2014-07-02 18:34:00:273] <24844> UserIp:125.131.234.203 +INFO [2014-07-02 18:34:00:273] <24844> partial_mm:00 +INFO [2014-07-02 18:34:00:273] <24844> noIntMonth: +INFO [2014-07-02 18:34:00:273] <24844> KVP_CURRENCY:WON +INFO [2014-07-02 18:34:00:273] <24844> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-02 18:34:00:273] <24844> KVP_SESSIONKEY:GjyMqvog78nrNoRamfvld7GPP62GPiPru/dIykVscNysmtt0A1fhw4dbIKknQqsRadgsW0PSXCxW9hxQMWY4MTdEURQzSMCoSuDRgMlyPnJQ6ltzFUSNoJLUGXj4o2Si0EjrkwidgxZfPaZyk09p972ESaq8Adx6CtvziPwCLK4= +INFO [2014-07-02 18:34:00:273] <24844> KVP_ENCDATA:cdata=myYT6zwXX9iaMDW8UNLtk5q1SlgKanMXNOyPcVdGFjndcw0SsDhDBv22mQvZ9eUG0yT6M03/eqs0ojYVKB3o0GPYapfw1qn5HklJluvbbetMi9xp0i1G86eOge0p+7FYtNSBkWyfMtXdGTgcCSY6e5K76D/aEwMjF99E2964MTuMblD1NVOqL97uAUb0SoR4FfyAoLXdYzzAlvtJfmd8BKxJEXnSSMUSgQ/p5bt6FIPTcdPKi+ZgbjWlYicPg80KHIlJL/Zi8ELgc3ZrCsB8Q4XBXWnDw16rg/pkyZBNUdyEHLZpXq+z59z18uWxMwDR4LPRonSD9kTVB91TJO2yM8+p4/budXi61/6hM47pcdmVleDC/HvtD/ld2ERNluwZ5P2fMf1H0E4nlGqNgTUrIML33aZJv3DfzVevGgJwCdv38NLWCLTRLEx5Uc2sZMXv8vlgY8pV3VQ6lPlgknZ1pgJLnjDQ7pK86TrxBRK1TBgnOa53Wpq6zLLPGdb/HKGSKRHty69wWCIrZcbhNcRiQuATzlfJRAprlwzJAVeyd6I= +INFO [2014-07-02 18:34:00:274] <24844> KVP_CONAME: +INFO [2014-07-02 18:34:00:274] <24844> KVP_NOINT:0 +INFO [2014-07-02 18:34:00:274] <24844> KVP_QUOTA:00 +INFO [2014-07-02 18:34:00:274] <24844> CardNo: +INFO [2014-07-02 18:34:00:274] <24844> MPI_CAVV: +INFO [2014-07-02 18:34:00:274] <24844> MPI_ECI: +INFO [2014-07-02 18:34:00:274] <24844> MPI_MD64: +INFO [2014-07-02 18:34:00:274] <24844> ExpMon: +INFO [2014-07-02 18:34:00:274] <24844> ExpYear: +INFO [2014-07-02 18:34:00:274] <24844> Passwd: +INFO [2014-07-02 18:34:00:274] <24844> SocId: +INFO [2014-07-02 18:34:00:274] <24844> HP_SERVERINFO: +INFO [2014-07-02 18:34:00:274] <24844> HP_HANDPHONE: +INFO [2014-07-02 18:34:00:274] <24844> HP_COMPANY: +INFO [2014-07-02 18:34:00:274] <24844> HP_ID: +INFO [2014-07-02 18:34:00:275] <24844> HP_SUBID: +INFO [2014-07-02 18:34:00:275] <24844> HP_UNITType: +INFO [2014-07-02 18:34:00:275] <24844> HP_IDEN: +INFO [2014-07-02 18:34:00:275] <24844> HP_IPADDR: +INFO [2014-07-02 18:34:00:275] <24844> VIRTUAL_CENTERCD: +INFO [2014-07-02 18:34:00:275] <24844> VIRTUAL_DEPODT: +INFO [2014-07-02 18:34:00:275] <24844> ZuminCode: +INFO [2014-07-02 18:34:00:275] <24844> MallPage: +INFO [2014-07-02 18:34:00:275] <24844> VIRTUAL_NO: +INFO [2014-07-02 18:34:00:275] <24844> ES_SENDNO: +INFO [2014-07-02 18:34:00:275] <24844> Column1: +INFO [2014-07-02 18:34:00:275] <24844> Column2: +INFO [2014-07-02 18:34:00:275] <24844> Column3: +INFO [2014-07-02 18:34:00:275] <24844> Make NetCancel ID Start +INFO [2014-07-02 18:34:00:276] <24844> AEGIS_ISP_acetel_20140702183400275312 +INFO [2014-07-02 18:34:00:276] <24844> Make NetCancel ID End +INFO [2014-07-02 18:34:00:276] <24844> Make NetCancelID OK +INFO [2014-07-02 18:34:00:276] <24844> Make Msg Start +INFO [2014-07-02 18:34:00:276] <24844> card-isp Make MSG OK +INFO [2014-07-02 18:34:00:276] <24844> Make Msg End +INFO [2014-07-02 18:34:00:276] <24844> Make Pay Msg OK +INFO [2014-07-02 18:34:00:276] <24844> Send & Recv Msg Start +INFO [2014-07-02 18:34:00:276] <24844> Send Data To PG Start [ +INFO [2014-07-02 18:34:00:276] <24844> 0:0010192plug15 +INFO [2014-07-02 18:34:00:276] <24844> 1:acetel +INFO [2014-07-02 18:34:00:276] <24844> 2:test11 +INFO [2014-07-02 18:34:00:276] <24844> 3:17800 +INFO [2014-07-02 18:34:00:276] <24844> 4:20140702182732T74084 +INFO [2014-07-02 18:34:00:276] <24844> 5:9000400001 +INFO [2014-07-02 18:34:00:276] <24844> 6:̸ +INFO [2014-07-02 18:34:00:276] <24844> 7:111-1111-1111 +INFO [2014-07-02 18:34:00:276] <24844> 8: Ż絿 ο 1234 +INFO [2014-07-02 18:34:00:276] <24844> 9:̸ +INFO [2014-07-02 18:34:00:276] <24844> 10:111-1111-1111 +INFO [2014-07-02 18:34:00:276] <24844> 11:½Ʈ +INFO [2014-07-02 18:34:00:276] <24844> 12:ũ 帲 +INFO [2014-07-02 18:34:00:276] <24844> 13:WON +INFO [2014-07-02 18:34:00:276] <24844> 14:00 +INFO [2014-07-02 18:34:00:276] <24844> 15: +INFO [2014-07-02 18:34:00:276] <24844> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-02 18:34:00:276] <24844> 17:GjyMqvog78nrNoRamfvld7GPP62GPiPru/dIykVscNysmtt0A1fhw4dbIKknQqsRadgsW0PSXCxW9hxQMWY4MTdEURQzSMCoSuDRgMlyPnJQ6ltzFUSNoJLUGXj4o2Si0EjrkwidgxZfPaZyk09p972ESaq8Adx6CtvziPwCLK4= +INFO [2014-07-02 18:34:00:276] <24844> 18:cdata=myYT6zwXX9iaMDW8UNLtk5q1SlgKanMXNOyPcVdGFjndcw0SsDhDBv22mQvZ9eUG0yT6M03/eqs0ojYVKB3o0GPYapfw1qn5HklJluvbbetMi9xp0i1G86eOge0p+7FYtNSBkWyfMtXdGTgcCSY6e5K76D/aEwMjF99E2964MTuMblD1NVOqL97uAUb0SoR4FfyAoLXdYzzAlvtJfmd8BKxJEXnSSMUSgQ/p5bt6FIPTcdPKi+ZgbjWlYicPg80KHIlJL/Zi8ELgc3ZrCsB8Q4XBXWnDw16rg/pkyZBNUdyEHLZpXq+z59z18uWxMwDR4LPRonSD9kTVB91TJO2yM8+p4/budXi61/6hM47pcdmVleDC/HvtD/ld2ERNluwZ5P2fMf1H0E4nlGqNgTUrIML33aZJv3DfzVevGgJwCdv38NLWCLTRLEx5Uc2sZMXv8vlgY8pV3VQ6lPlgknZ1pgJLnjDQ7pK86TrxBRK1TBgnOa53Wpq6zLLPGdb/HKGSKRHty69wWCIrZcbhNcRiQuATzlfJRAprlwzJAVeyd6I= +INFO [2014-07-02 18:34:00:276] <24844> 19: +INFO [2014-07-02 18:34:00:276] <24844> 20:125.131.234.203 +INFO [2014-07-02 18:34:00:276] <24844> 21:test@empal.com +INFO [2014-07-02 18:34:00:276] <24844> 22:AEGIS_ISP_acetel_20140702183400275312 +INFO [2014-07-02 18:34:00:276] <24844> 23: +INFO [2014-07-02 18:34:00:277] <24844> ] Send Data To PG End +INFO [2014-07-02 18:34:00:277] <24844> SendMsg : [0010192plug15|acetel|test11|17800|20140702182732T74084|9000400001|̸|111-1111-1111| Ż絿 ο 1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|GjyMqvog78nrNoRamfvld7GPP62GPiPru/dIykVscNysmtt0A1fhw4dbIKknQqsRadgsW0PSXCxW9hxQMWY4MTdEURQzSMCoSuDRgMlyPnJQ6ltzFUSNoJLUGXj4o2Si0EjrkwidgxZfPaZyk09p972ESaq8Adx6CtvziPwCLK4=|cdata=myYT6zwXX9iaMDW8UNLtk5q1SlgKanMXNOyPcVdGFjndcw0SsDhDBv22mQvZ9eUG0yT6M03/eqs0ojYVKB3o0GPYapfw1qn5HklJluvbbetMi9xp0i1G86eOge0p+7FYtNSBkWyfMtXdGTgcCSY6e5K76D/aEwMjF99E2964MTuMblD1NVOqL97uAUb0SoR4FfyAoLXdYzzAlvtJfmd8BKxJEXnSSMUSgQ/p5bt6FIPTcdPKi+ZgbjWlYicPg80KHIlJL/Zi8ELgc3ZrCsB8Q4XBXWnDw16rg/pkyZBNUdyEHLZpXq+z59z18uWxMwDR4LPRonSD9kTVB91TJO2yM8+p4/budXi61/6hM47pcdmVleDC/HvtD/ld2ERNluwZ5P2fMf1H0E4nlGqNgTUrIML33aZJv3DfzVevGgJwCdv38NLWCLTRLEx5Uc2sZMXv8vlgY8pV3VQ6lPlgknZ1pgJLnjDQ7pK86TrxBRK1TBgnOa53Wpq6zLLPGdb/HKGSKRHty69wWCIrZcbhNcRiQuATzlfJRAprlwzJAVeyd6I=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140702183400275312|] +INFO [2014-07-02 18:34:00:277] <24844> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-02 18:34:00:282] <24844> Socket Open OK +INFO [2014-07-02 18:34:02:11] <24844> RecvMsg Length : [000063] +INFO [2014-07-02 18:34:02:11] <24844> RecvMsg : [acetel|0610|20140702182732T74084||17800|n|ߺŷ(TID)||0100| +] +INFO [2014-07-02 18:34:02:11] <24844> Socket Close OK +INFO [2014-07-02 18:34:02:11] <24844> RecvMsg Length Check OK +INFO [2014-07-02 18:34:02:11] <24844> Send & Recv Msg End +INFO [2014-07-02 18:34:02:11] <24844> Send & Recv Msg OK +INFO [2014-07-02 18:34:02:11] <24844> Parse Msg Start +INFO [2014-07-02 18:34:02:11] <24844> card-isp RECV MSG Parsing OK +INFO [2014-07-02 18:34:02:11] <24844> Parse Msg End +INFO [2014-07-02 18:34:02:12] <24844> Msg Parsing OK +INFO [2014-07-02 18:34:02:12] <24844> card Pay Result Value [ +INFO [2014-07-02 18:34:02:12] <24844> NetCancID:AEGIS_ISP_acetel_20140702183400275312 +INFO [2014-07-02 18:34:02:12] <24844> rStoreId:acetel +INFO [2014-07-02 18:34:02:12] <24844> rBusiCd:0610 +INFO [2014-07-02 18:34:02:12] <24844> rOrdNo:20140702182732T74084 +INFO [2014-07-02 18:34:02:12] <24844> rDealNo:20140702182732T74084 +INFO [2014-07-02 18:34:02:12] <24844> rApprNo: +INFO [2014-07-02 18:34:02:12] <24844> rProdNm:ũ 帲 +INFO [2014-07-02 18:34:02:12] <24844> rAmt:17800 +INFO [2014-07-02 18:34:02:12] <24844> rInstmt:00 +INFO [2014-07-02 18:34:02:12] <24844> rSuccYn:n +INFO [2014-07-02 18:34:02:12] <24844> rResMsg:ߺŷ(TID) +INFO [2014-07-02 18:34:02:12] <24844> rApprTm: +INFO [2014-07-02 18:34:02:12] <24844> rCardCd:0100 +INFO [2014-07-02 18:34:02:12] <24844> ] +INFO [2014-07-02 18:34:02:12] <24844> END ߺŷ(TID) Transaction time:[1.742sec] +INFO [2014-07-02 18:34:02:12] <24844> =============================================================== +INFO [2014-07-02 18:35:56:758] <25524> =============================================================== +INFO [2014-07-02 18:35:56:758] <25524> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-02 18:35:56:758] <25524> card Pay Start! +INFO [2014-07-02 18:35:56:759] <25524> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-02 18:35:56:759] <25524> StoreId:acetel +INFO [2014-07-02 18:35:56:759] <25524> log:true +INFO [2014-07-02 18:35:56:759] <25524> logLevel:INFO +INFO [2014-07-02 18:35:56:759] <25524> UseNetCancel:true +INFO [2014-07-02 18:35:56:759] <25524> Type:Pay +INFO [2014-07-02 18:35:56:759] <25524> RecvLen:7 +INFO [2014-07-02 18:35:56:759] <25524> AuthTy:card +INFO [2014-07-02 18:35:56:759] <25524> SubTy:isp +INFO [2014-07-02 18:35:56:759] <25524> OrdNo:20140702183431T41266 +INFO [2014-07-02 18:35:56:759] <25524> Amt:17800 +INFO [2014-07-02 18:35:56:759] <25524> UserEmail:test@empal.com +INFO [2014-07-02 18:35:56:760] <25524> ProdNm:ũ 帲 +INFO [2014-07-02 18:35:56:760] <25524> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-02 18:35:56:760] <25524> UserId:test11 +INFO [2014-07-02 18:35:56:760] <25524> OrdNm:̸ +INFO [2014-07-02 18:35:56:760] <25524> OrdPhone:111-1111-1111 +INFO [2014-07-02 18:35:56:760] <25524> OrdAddr: Ż絿 1234 +INFO [2014-07-02 18:35:56:760] <25524> RcpNm:̸ +INFO [2014-07-02 18:35:56:760] <25524> RcpPhone:111-1111-1111 +INFO [2014-07-02 18:35:56:760] <25524> DlvAddr: Ż絿 1234 +INFO [2014-07-02 18:35:56:760] <25524> Remark:½Ʈ +INFO [2014-07-02 18:35:56:760] <25524> DeviId:9000400001 +INFO [2014-07-02 18:35:56:760] <25524> AuthYn:N +INFO [2014-07-02 18:35:56:760] <25524> Instmt:00 +INFO [2014-07-02 18:35:56:761] <25524> UserIp:125.131.234.203 +INFO [2014-07-02 18:35:56:761] <25524> partial_mm:00 +INFO [2014-07-02 18:35:56:761] <25524> noIntMonth: +INFO [2014-07-02 18:35:56:761] <25524> KVP_CURRENCY:WON +INFO [2014-07-02 18:35:56:761] <25524> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-02 18:35:56:761] <25524> KVP_SESSIONKEY:CVCEbjnTTKbaUXq9t8hdtBd0Bcuy8g6CMADHkoadWGfNrgM20rq0c6wjL6q/0dD02NmIcU3nUX5B7vv4A2U7RXMXeWhgKrCFF2sZNOwBU6Q/NtyaD0GIPaLpHtPCTnfXweEKNW9/EWHib8shzCDCK7OS9/tRqbI2Y7XIyFwBiMc= +INFO [2014-07-02 18:35:56:761] <25524> KVP_ENCDATA:cdata=CJ4RaZUZPdVFdugCDfk5R+H/VPZdkGZ4iwx/R3GQ2WCgPMNrsqsNXQlkPafJvAF2abUS+SglPQEUBU0YBEymrrMgaGXCCUQBvBFOaG1QklLMNQ2Oi1QMzi6Ko6+LRfw3Kd2sFA1hCOI+AXoqcF19ZFW/P2HMVadiD27kzzFvBN2xCPdSaHXGX54HVOWS+uvoBynKML+MIgsivGxXsJCT3l0lJSRCou/MWAo0WHH0fiLALf3hY1/qA6UMm+/y9KClFm4HcpHF37Y2geufFnGmKzUzy9m8NtmJfmzmuiDH84+GS+tIyep73EkKIOrqpwdohyvl5dFk0FXJqEU6bb5iNBLcFYJ5hD91q4k0z1OV0H703yRljb+NUlbX2AO9yarx7K/56t/feKIqNV+vbNTODZnY//67kACq9yFEg8us4V5djrhfDPVzlC+CYy0AIMgyH5giuS7lTSOHTMMA8SqSyRcoEDEs2AOMEhyHUUMMjqHRSUb63rsIWaxC7tYbI6HGNSSkB50OVkbQM6TAQwejtGZzC2xZ9r2fq3/zqZHniFY= +INFO [2014-07-02 18:35:56:761] <25524> KVP_CONAME: +INFO [2014-07-02 18:35:56:761] <25524> KVP_NOINT:0 +INFO [2014-07-02 18:35:56:761] <25524> KVP_QUOTA:00 +INFO [2014-07-02 18:35:56:761] <25524> CardNo: +INFO [2014-07-02 18:35:56:762] <25524> MPI_CAVV: +INFO [2014-07-02 18:35:56:762] <25524> MPI_ECI: +INFO [2014-07-02 18:35:56:762] <25524> MPI_MD64: +INFO [2014-07-02 18:35:56:762] <25524> ExpMon: +INFO [2014-07-02 18:35:56:762] <25524> ExpYear: +INFO [2014-07-02 18:35:56:762] <25524> Passwd: +INFO [2014-07-02 18:35:56:762] <25524> SocId: +INFO [2014-07-02 18:35:56:762] <25524> HP_SERVERINFO: +INFO [2014-07-02 18:35:56:762] <25524> HP_HANDPHONE: +INFO [2014-07-02 18:35:56:762] <25524> HP_COMPANY: +INFO [2014-07-02 18:35:56:762] <25524> HP_ID: +INFO [2014-07-02 18:35:56:762] <25524> HP_SUBID: +INFO [2014-07-02 18:35:56:762] <25524> HP_UNITType: +INFO [2014-07-02 18:35:56:763] <25524> HP_IDEN: +INFO [2014-07-02 18:35:56:763] <25524> HP_IPADDR: +INFO [2014-07-02 18:35:56:763] <25524> VIRTUAL_CENTERCD: +INFO [2014-07-02 18:35:56:763] <25524> VIRTUAL_DEPODT: +INFO [2014-07-02 18:35:56:763] <25524> ZuminCode: +INFO [2014-07-02 18:35:56:763] <25524> MallPage: +INFO [2014-07-02 18:35:56:763] <25524> VIRTUAL_NO: +INFO [2014-07-02 18:35:56:763] <25524> ES_SENDNO: +INFO [2014-07-02 18:35:56:763] <25524> Column1: +INFO [2014-07-02 18:35:56:763] <25524> Column2: +INFO [2014-07-02 18:35:56:763] <25524> Column3: +INFO [2014-07-02 18:35:56:763] <25524> Make NetCancel ID Start +INFO [2014-07-02 18:35:56:763] <25524> AEGIS_ISP_acetel_20140702183556763828 +INFO [2014-07-02 18:35:56:764] <25524> Make NetCancel ID End +INFO [2014-07-02 18:35:56:764] <25524> Make NetCancelID OK +INFO [2014-07-02 18:35:56:764] <25524> Make Msg Start +INFO [2014-07-02 18:35:56:764] <25524> card-isp Make MSG OK +INFO [2014-07-02 18:35:56:764] <25524> Make Msg End +INFO [2014-07-02 18:35:56:764] <25524> Make Pay Msg OK +INFO [2014-07-02 18:35:56:764] <25524> Send & Recv Msg Start +INFO [2014-07-02 18:35:56:764] <25524> Send Data To PG Start [ +INFO [2014-07-02 18:35:56:764] <25524> 0:0010192plug15 +INFO [2014-07-02 18:35:56:764] <25524> 1:acetel +INFO [2014-07-02 18:35:56:764] <25524> 2:test11 +INFO [2014-07-02 18:35:56:764] <25524> 3:17800 +INFO [2014-07-02 18:35:56:764] <25524> 4:20140702183431T41266 +INFO [2014-07-02 18:35:56:764] <25524> 5:9000400001 +INFO [2014-07-02 18:35:56:764] <25524> 6:̸ +INFO [2014-07-02 18:35:56:764] <25524> 7:111-1111-1111 +INFO [2014-07-02 18:35:56:764] <25524> 8: Ż絿 1234 +INFO [2014-07-02 18:35:56:764] <25524> 9:̸ +INFO [2014-07-02 18:35:56:764] <25524> 10:111-1111-1111 +INFO [2014-07-02 18:35:56:764] <25524> 11:½Ʈ +INFO [2014-07-02 18:35:56:764] <25524> 12:ũ 帲 +INFO [2014-07-02 18:35:56:764] <25524> 13:WON +INFO [2014-07-02 18:35:56:764] <25524> 14:00 +INFO [2014-07-02 18:35:56:764] <25524> 15: +INFO [2014-07-02 18:35:56:764] <25524> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-02 18:35:56:764] <25524> 17:CVCEbjnTTKbaUXq9t8hdtBd0Bcuy8g6CMADHkoadWGfNrgM20rq0c6wjL6q/0dD02NmIcU3nUX5B7vv4A2U7RXMXeWhgKrCFF2sZNOwBU6Q/NtyaD0GIPaLpHtPCTnfXweEKNW9/EWHib8shzCDCK7OS9/tRqbI2Y7XIyFwBiMc= +INFO [2014-07-02 18:35:56:764] <25524> 18:cdata=CJ4RaZUZPdVFdugCDfk5R+H/VPZdkGZ4iwx/R3GQ2WCgPMNrsqsNXQlkPafJvAF2abUS+SglPQEUBU0YBEymrrMgaGXCCUQBvBFOaG1QklLMNQ2Oi1QMzi6Ko6+LRfw3Kd2sFA1hCOI+AXoqcF19ZFW/P2HMVadiD27kzzFvBN2xCPdSaHXGX54HVOWS+uvoBynKML+MIgsivGxXsJCT3l0lJSRCou/MWAo0WHH0fiLALf3hY1/qA6UMm+/y9KClFm4HcpHF37Y2geufFnGmKzUzy9m8NtmJfmzmuiDH84+GS+tIyep73EkKIOrqpwdohyvl5dFk0FXJqEU6bb5iNBLcFYJ5hD91q4k0z1OV0H703yRljb+NUlbX2AO9yarx7K/56t/feKIqNV+vbNTODZnY//67kACq9yFEg8us4V5djrhfDPVzlC+CYy0AIMgyH5giuS7lTSOHTMMA8SqSyRcoEDEs2AOMEhyHUUMMjqHRSUb63rsIWaxC7tYbI6HGNSSkB50OVkbQM6TAQwejtGZzC2xZ9r2fq3/zqZHniFY= +INFO [2014-07-02 18:35:56:764] <25524> 19: +INFO [2014-07-02 18:35:56:764] <25524> 20:125.131.234.203 +INFO [2014-07-02 18:35:56:764] <25524> 21:test@empal.com +INFO [2014-07-02 18:35:56:764] <25524> 22:AEGIS_ISP_acetel_20140702183556763828 +INFO [2014-07-02 18:35:56:764] <25524> 23: +INFO [2014-07-02 18:35:56:765] <25524> ] Send Data To PG End +INFO [2014-07-02 18:35:56:765] <25524> SendMsg : [0010192plug15|acetel|test11|17800|20140702183431T41266|9000400001|̸|111-1111-1111| Ż絿 1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|CVCEbjnTTKbaUXq9t8hdtBd0Bcuy8g6CMADHkoadWGfNrgM20rq0c6wjL6q/0dD02NmIcU3nUX5B7vv4A2U7RXMXeWhgKrCFF2sZNOwBU6Q/NtyaD0GIPaLpHtPCTnfXweEKNW9/EWHib8shzCDCK7OS9/tRqbI2Y7XIyFwBiMc=|cdata=CJ4RaZUZPdVFdugCDfk5R+H/VPZdkGZ4iwx/R3GQ2WCgPMNrsqsNXQlkPafJvAF2abUS+SglPQEUBU0YBEymrrMgaGXCCUQBvBFOaG1QklLMNQ2Oi1QMzi6Ko6+LRfw3Kd2sFA1hCOI+AXoqcF19ZFW/P2HMVadiD27kzzFvBN2xCPdSaHXGX54HVOWS+uvoBynKML+MIgsivGxXsJCT3l0lJSRCou/MWAo0WHH0fiLALf3hY1/qA6UMm+/y9KClFm4HcpHF37Y2geufFnGmKzUzy9m8NtmJfmzmuiDH84+GS+tIyep73EkKIOrqpwdohyvl5dFk0FXJqEU6bb5iNBLcFYJ5hD91q4k0z1OV0H703yRljb+NUlbX2AO9yarx7K/56t/feKIqNV+vbNTODZnY//67kACq9yFEg8us4V5djrhfDPVzlC+CYy0AIMgyH5giuS7lTSOHTMMA8SqSyRcoEDEs2AOMEhyHUUMMjqHRSUb63rsIWaxC7tYbI6HGNSSkB50OVkbQM6TAQwejtGZzC2xZ9r2fq3/zqZHniFY=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140702183556763828|] +INFO [2014-07-02 18:35:56:765] <25524> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-02 18:35:56:769] <25524> Socket Open OK +INFO [2014-07-02 18:35:59:923] <25524> RecvMsg Length : [000083] +INFO [2014-07-02 18:35:59:923] <25524> RecvMsg : [acetel|0610|106916|50750956|17800|y|:20140702183431T41266|20140702183606|0100| +] +INFO [2014-07-02 18:35:59:923] <25524> Socket Close OK +INFO [2014-07-02 18:35:59:923] <25524> RecvMsg Length Check OK +INFO [2014-07-02 18:35:59:923] <25524> Send & Recv Msg End +INFO [2014-07-02 18:35:59:924] <25524> Send & Recv Msg OK +INFO [2014-07-02 18:35:59:924] <25524> Parse Msg Start +INFO [2014-07-02 18:35:59:924] <25524> card-isp RECV MSG Parsing OK +INFO [2014-07-02 18:35:59:924] <25524> Parse Msg End +INFO [2014-07-02 18:35:59:924] <25524> Msg Parsing OK +INFO [2014-07-02 18:35:59:924] <25524> card Pay Result Value [ +INFO [2014-07-02 18:35:59:924] <25524> NetCancID:AEGIS_ISP_acetel_20140702183556763828 +INFO [2014-07-02 18:35:59:924] <25524> rStoreId:acetel +INFO [2014-07-02 18:35:59:924] <25524> rBusiCd:0610 +INFO [2014-07-02 18:35:59:924] <25524> rOrdNo:20140702183431T41266 +INFO [2014-07-02 18:35:59:924] <25524> rDealNo:106916 +INFO [2014-07-02 18:35:59:924] <25524> rApprNo:50750956 +INFO [2014-07-02 18:35:59:924] <25524> rProdNm:ũ 帲 +INFO [2014-07-02 18:35:59:924] <25524> rAmt:17800 +INFO [2014-07-02 18:35:59:924] <25524> rInstmt:00 +INFO [2014-07-02 18:35:59:924] <25524> rSuccYn:y +INFO [2014-07-02 18:35:59:924] <25524> rResMsg::20140702183431T41266 +INFO [2014-07-02 18:35:59:924] <25524> rApprTm:20140702183606 +INFO [2014-07-02 18:35:59:924] <25524> rCardCd:0100 +INFO [2014-07-02 18:35:59:924] <25524> ] +INFO [2014-07-02 18:35:59:925] <25524> END :20140702183431T41266 Transaction time:[3.167sec] +INFO [2014-07-02 18:35:59:925] <25524> =============================================================== diff --git a/module/shop/pg_bak/agspay/log/AgsPay40_php_acetel_140703.log b/module/shop/pg_bak/agspay/log/AgsPay40_php_acetel_140703.log new file mode 100644 index 0000000..8a3ecbb --- /dev/null +++ b/module/shop/pg_bak/agspay/log/AgsPay40_php_acetel_140703.log @@ -0,0 +1,528 @@ +INFO [2014-07-03 09:40:13:3] <29783> =============================================================== +INFO [2014-07-03 09:40:13:3] <29783> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-03 09:40:13:3] <29783> card Pay Start! +INFO [2014-07-03 09:40:13:3] <29783> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-03 09:40:13:3] <29783> StoreId:acetel +INFO [2014-07-03 09:40:13:3] <29783> log:true +INFO [2014-07-03 09:40:13:3] <29783> logLevel:INFO +INFO [2014-07-03 09:40:13:3] <29783> UseNetCancel:true +INFO [2014-07-03 09:40:13:3] <29783> Type:Pay +INFO [2014-07-03 09:40:13:3] <29783> RecvLen:7 +INFO [2014-07-03 09:40:13:4] <29783> AuthTy:card +INFO [2014-07-03 09:40:13:4] <29783> SubTy:isp +INFO [2014-07-03 09:40:13:4] <29783> OrdNo:20140703093740T00562 +INFO [2014-07-03 09:40:13:4] <29783> Amt:17800 +INFO [2014-07-03 09:40:13:4] <29783> UserEmail:test@empal.com +INFO [2014-07-03 09:40:13:4] <29783> ProdNm:ũ 帲 +INFO [2014-07-03 09:40:13:4] <29783> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-03 09:40:13:4] <29783> UserId:test11 +INFO [2014-07-03 09:40:13:4] <29783> OrdNm:̸ +INFO [2014-07-03 09:40:13:4] <29783> OrdPhone:111-1111-1111 +INFO [2014-07-03 09:40:13:4] <29783> OrdAddr: Ż絿 1234 +INFO [2014-07-03 09:40:13:4] <29783> RcpNm:̸ +INFO [2014-07-03 09:40:13:4] <29783> RcpPhone:111-1111-1111 +INFO [2014-07-03 09:40:13:4] <29783> DlvAddr: Ż絿 1234 +INFO [2014-07-03 09:40:13:4] <29783> Remark:½Ʈ +INFO [2014-07-03 09:40:13:5] <29783> DeviId:9000400001 +INFO [2014-07-03 09:40:13:5] <29783> AuthYn:N +INFO [2014-07-03 09:40:13:5] <29783> Instmt:00 +INFO [2014-07-03 09:40:13:5] <29783> UserIp:125.131.234.203 +INFO [2014-07-03 09:40:13:5] <29783> partial_mm:00 +INFO [2014-07-03 09:40:13:5] <29783> noIntMonth: +INFO [2014-07-03 09:40:13:5] <29783> KVP_CURRENCY:WON +INFO [2014-07-03 09:40:13:5] <29783> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-03 09:40:13:5] <29783> KVP_SESSIONKEY:AdEPKHTWHxOQMfjJ8pwtiirVtArXKl/05I8lBWdksWTqrGzX0iRqRe288xrFO3loYjjrmVCdV64KKeSzBQwTbwXtyPEbRlTZGeGweZUKs2IyIPSlZVifp22w/uSCzUqOS32yqflUNfJs0BA8O9nRW2MeqIjHajfIy4ksgiZD/OI= +INFO [2014-07-03 09:40:13:5] <29783> KVP_ENCDATA:cdata=2/Eaac5M5cZv5gvUutVB6wsIAY4Cb0vbpt9CKkQIIT9gUoeq5GvBoj7bNgTaKh0Rq+GYZuEjb+iKZV7eCbSdDLO6UOVDUYBRQXpNSnDfBeOE1KAgWKKufgWd+j2ziaU8kO0lXsu11zcPE2yKQml/tlVZVGfgEyq53NGJYQT5/Va468M4gu9Rw7CspFFL7k68gH70Zomt8I8qYwJBq1S7GPAXyml/iEm8rv4mrFMxucbZpi7cwC8dWjokK9jelZQ4SYzrtSSSAO+39/UZ2tvYl4+4K+3nXHEttCaX5dfDwDLLFYRmKx7Sdn3rbIlub4fMGhsURzEkKgYKFa383dfXw+Hre+wYhSFsTM1r56T4rEGv0+S03bgojCH4Q0SVTtSdsLyvjIKYzbNipt7OzVxn96NaitK7WHJlW+9r8FbYQRyQSRoPoEuS9H18Dn2Mv9XSvuWi+6tdyWcJfuxqNTyoiZ/NeeXmK97mwUxUDc8906vxEGDewLoqtbCTI88e/5fc9yYZEu9IeTI0NB/hm4suHvNUvLIYq+Tt+ddHxvcZzHE= +INFO [2014-07-03 09:40:13:5] <29783> KVP_CONAME: +INFO [2014-07-03 09:40:13:5] <29783> KVP_NOINT:0 +INFO [2014-07-03 09:40:13:5] <29783> KVP_QUOTA:00 +INFO [2014-07-03 09:40:13:5] <29783> CardNo: +INFO [2014-07-03 09:40:13:6] <29783> MPI_CAVV: +INFO [2014-07-03 09:40:13:6] <29783> MPI_ECI: +INFO [2014-07-03 09:40:13:6] <29783> MPI_MD64: +INFO [2014-07-03 09:40:13:6] <29783> ExpMon: +INFO [2014-07-03 09:40:13:6] <29783> ExpYear: +INFO [2014-07-03 09:40:13:6] <29783> Passwd: +INFO [2014-07-03 09:40:13:6] <29783> SocId: +INFO [2014-07-03 09:40:13:6] <29783> HP_SERVERINFO: +INFO [2014-07-03 09:40:13:6] <29783> HP_HANDPHONE: +INFO [2014-07-03 09:40:13:6] <29783> HP_COMPANY: +INFO [2014-07-03 09:40:13:6] <29783> HP_ID: +INFO [2014-07-03 09:40:13:6] <29783> HP_SUBID: +INFO [2014-07-03 09:40:13:6] <29783> HP_UNITType: +INFO [2014-07-03 09:40:13:6] <29783> HP_IDEN: +INFO [2014-07-03 09:40:13:7] <29783> HP_IPADDR: +INFO [2014-07-03 09:40:13:7] <29783> VIRTUAL_CENTERCD: +INFO [2014-07-03 09:40:13:7] <29783> VIRTUAL_DEPODT: +INFO [2014-07-03 09:40:13:7] <29783> ZuminCode: +INFO [2014-07-03 09:40:13:7] <29783> MallPage: +INFO [2014-07-03 09:40:13:7] <29783> VIRTUAL_NO: +INFO [2014-07-03 09:40:13:7] <29783> ES_SENDNO: +INFO [2014-07-03 09:40:13:7] <29783> Column1:20140703093740T00562 +INFO [2014-07-03 09:40:13:7] <29783> Column2: +INFO [2014-07-03 09:40:13:7] <29783> Column3: +INFO [2014-07-03 09:40:13:7] <29783> Make NetCancel ID Start +INFO [2014-07-03 09:40:13:7] <29783> AEGIS_ISP_acetel_20140703094013007448 +INFO [2014-07-03 09:40:13:7] <29783> Make NetCancel ID End +INFO [2014-07-03 09:40:13:8] <29783> Make NetCancelID OK +INFO [2014-07-03 09:40:13:8] <29783> Make Msg Start +INFO [2014-07-03 09:40:13:8] <29783> card-isp Make MSG OK +INFO [2014-07-03 09:40:13:8] <29783> Make Msg End +INFO [2014-07-03 09:40:13:8] <29783> Make Pay Msg OK +INFO [2014-07-03 09:40:13:8] <29783> Send & Recv Msg Start +INFO [2014-07-03 09:40:13:8] <29783> Send Data To PG Start [ +INFO [2014-07-03 09:40:13:8] <29783> 0:0010192plug15 +INFO [2014-07-03 09:40:13:8] <29783> 1:acetel +INFO [2014-07-03 09:40:13:8] <29783> 2:test11 +INFO [2014-07-03 09:40:13:8] <29783> 3:17800 +INFO [2014-07-03 09:40:13:8] <29783> 4:20140703093740T00562 +INFO [2014-07-03 09:40:13:8] <29783> 5:9000400001 +INFO [2014-07-03 09:40:13:8] <29783> 6:̸ +INFO [2014-07-03 09:40:13:8] <29783> 7:111-1111-1111 +INFO [2014-07-03 09:40:13:8] <29783> 8: Ż絿 1234 +INFO [2014-07-03 09:40:13:8] <29783> 9:̸ +INFO [2014-07-03 09:40:13:8] <29783> 10:111-1111-1111 +INFO [2014-07-03 09:40:13:8] <29783> 11:½Ʈ +INFO [2014-07-03 09:40:13:8] <29783> 12:ũ 帲 +INFO [2014-07-03 09:40:13:8] <29783> 13:WON +INFO [2014-07-03 09:40:13:8] <29783> 14:00 +INFO [2014-07-03 09:40:13:8] <29783> 15: +INFO [2014-07-03 09:40:13:8] <29783> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-03 09:40:13:8] <29783> 17:AdEPKHTWHxOQMfjJ8pwtiirVtArXKl/05I8lBWdksWTqrGzX0iRqRe288xrFO3loYjjrmVCdV64KKeSzBQwTbwXtyPEbRlTZGeGweZUKs2IyIPSlZVifp22w/uSCzUqOS32yqflUNfJs0BA8O9nRW2MeqIjHajfIy4ksgiZD/OI= +INFO [2014-07-03 09:40:13:8] <29783> 18:cdata=2/Eaac5M5cZv5gvUutVB6wsIAY4Cb0vbpt9CKkQIIT9gUoeq5GvBoj7bNgTaKh0Rq+GYZuEjb+iKZV7eCbSdDLO6UOVDUYBRQXpNSnDfBeOE1KAgWKKufgWd+j2ziaU8kO0lXsu11zcPE2yKQml/tlVZVGfgEyq53NGJYQT5/Va468M4gu9Rw7CspFFL7k68gH70Zomt8I8qYwJBq1S7GPAXyml/iEm8rv4mrFMxucbZpi7cwC8dWjokK9jelZQ4SYzrtSSSAO+39/UZ2tvYl4+4K+3nXHEttCaX5dfDwDLLFYRmKx7Sdn3rbIlub4fMGhsURzEkKgYKFa383dfXw+Hre+wYhSFsTM1r56T4rEGv0+S03bgojCH4Q0SVTtSdsLyvjIKYzbNipt7OzVxn96NaitK7WHJlW+9r8FbYQRyQSRoPoEuS9H18Dn2Mv9XSvuWi+6tdyWcJfuxqNTyoiZ/NeeXmK97mwUxUDc8906vxEGDewLoqtbCTI88e/5fc9yYZEu9IeTI0NB/hm4suHvNUvLIYq+Tt+ddHxvcZzHE= +INFO [2014-07-03 09:40:13:8] <29783> 19: +INFO [2014-07-03 09:40:13:8] <29783> 20:125.131.234.203 +INFO [2014-07-03 09:40:13:8] <29783> 21:test@empal.com +INFO [2014-07-03 09:40:13:8] <29783> 22:AEGIS_ISP_acetel_20140703094013007448 +INFO [2014-07-03 09:40:13:8] <29783> 23: +INFO [2014-07-03 09:40:13:9] <29783> ] Send Data To PG End +INFO [2014-07-03 09:40:13:9] <29783> SendMsg : [0010192plug15|acetel|test11|17800|20140703093740T00562|9000400001|̸|111-1111-1111| Ż絿 1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|AdEPKHTWHxOQMfjJ8pwtiirVtArXKl/05I8lBWdksWTqrGzX0iRqRe288xrFO3loYjjrmVCdV64KKeSzBQwTbwXtyPEbRlTZGeGweZUKs2IyIPSlZVifp22w/uSCzUqOS32yqflUNfJs0BA8O9nRW2MeqIjHajfIy4ksgiZD/OI=|cdata=2/Eaac5M5cZv5gvUutVB6wsIAY4Cb0vbpt9CKkQIIT9gUoeq5GvBoj7bNgTaKh0Rq+GYZuEjb+iKZV7eCbSdDLO6UOVDUYBRQXpNSnDfBeOE1KAgWKKufgWd+j2ziaU8kO0lXsu11zcPE2yKQml/tlVZVGfgEyq53NGJYQT5/Va468M4gu9Rw7CspFFL7k68gH70Zomt8I8qYwJBq1S7GPAXyml/iEm8rv4mrFMxucbZpi7cwC8dWjokK9jelZQ4SYzrtSSSAO+39/UZ2tvYl4+4K+3nXHEttCaX5dfDwDLLFYRmKx7Sdn3rbIlub4fMGhsURzEkKgYKFa383dfXw+Hre+wYhSFsTM1r56T4rEGv0+S03bgojCH4Q0SVTtSdsLyvjIKYzbNipt7OzVxn96NaitK7WHJlW+9r8FbYQRyQSRoPoEuS9H18Dn2Mv9XSvuWi+6tdyWcJfuxqNTyoiZ/NeeXmK97mwUxUDc8906vxEGDewLoqtbCTI88e/5fc9yYZEu9IeTI0NB/hm4suHvNUvLIYq+Tt+ddHxvcZzHE=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140703094013007448|] +INFO [2014-07-03 09:40:13:9] <29783> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-03 09:40:13:13] <29783> Socket Open OK +INFO [2014-07-03 09:40:15:612] <29783> RecvMsg Length : [000083] +INFO [2014-07-03 09:40:15:613] <29783> RecvMsg : [acetel|0610|101565|52142551|17800|y|:20140703093740T00562|20140703093925|0100| +] +INFO [2014-07-03 09:40:15:613] <29783> Socket Close OK +INFO [2014-07-03 09:40:15:613] <29783> RecvMsg Length Check OK +INFO [2014-07-03 09:40:15:613] <29783> Send & Recv Msg End +INFO [2014-07-03 09:40:15:613] <29783> Send & Recv Msg OK +INFO [2014-07-03 09:40:15:613] <29783> Parse Msg Start +INFO [2014-07-03 09:40:15:613] <29783> card-isp RECV MSG Parsing OK +INFO [2014-07-03 09:40:15:613] <29783> Parse Msg End +INFO [2014-07-03 09:40:15:613] <29783> Msg Parsing OK +INFO [2014-07-03 09:40:15:613] <29783> card Pay Result Value [ +INFO [2014-07-03 09:40:15:613] <29783> NetCancID:AEGIS_ISP_acetel_20140703094013007448 +INFO [2014-07-03 09:40:15:613] <29783> rStoreId:acetel +INFO [2014-07-03 09:40:15:613] <29783> rBusiCd:0610 +INFO [2014-07-03 09:40:15:613] <29783> rOrdNo:20140703093740T00562 +INFO [2014-07-03 09:40:15:613] <29783> rDealNo:101565 +INFO [2014-07-03 09:40:15:614] <29783> rApprNo:52142551 +INFO [2014-07-03 09:40:15:614] <29783> rProdNm:ũ 帲 +INFO [2014-07-03 09:40:15:614] <29783> rAmt:17800 +INFO [2014-07-03 09:40:15:614] <29783> rInstmt:00 +INFO [2014-07-03 09:40:15:614] <29783> rSuccYn:y +INFO [2014-07-03 09:40:15:614] <29783> rResMsg::20140703093740T00562 +INFO [2014-07-03 09:40:15:614] <29783> rApprTm:20140703093925 +INFO [2014-07-03 09:40:15:614] <29783> rCardCd:0100 +INFO [2014-07-03 09:40:15:614] <29783> ] +INFO [2014-07-03 09:40:15:614] <29783> END :20140703093740T00562 Transaction time:[2.625sec] +INFO [2014-07-03 09:40:15:614] <29783> =============================================================== +INFO [2014-07-03 16:47:21:654] <28698> =============================================================== +INFO [2014-07-03 16:47:21:654] <28698> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-03 16:47:21:655] <28698> card Pay Start! +INFO [2014-07-03 16:47:21:655] <28698> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-03 16:47:21:655] <28698> StoreId:acetel +INFO [2014-07-03 16:47:21:655] <28698> log:true +INFO [2014-07-03 16:47:21:655] <28698> logLevel:INFO +INFO [2014-07-03 16:47:21:655] <28698> UseNetCancel:true +INFO [2014-07-03 16:47:21:655] <28698> Type:Pay +INFO [2014-07-03 16:47:21:655] <28698> RecvLen:7 +INFO [2014-07-03 16:47:21:655] <28698> AuthTy:card +INFO [2014-07-03 16:47:21:655] <28698> SubTy:isp +INFO [2014-07-03 16:47:21:655] <28698> OrdNo:20140703164440T16557 +INFO [2014-07-03 16:47:21:655] <28698> Amt:17800 +INFO [2014-07-03 16:47:21:656] <28698> UserEmail:test@empal.com +INFO [2014-07-03 16:47:21:656] <28698> ProdNm:ũ 帲 +INFO [2014-07-03 16:47:21:656] <28698> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-03 16:47:21:656] <28698> UserId:test11 +INFO [2014-07-03 16:47:21:656] <28698> OrdNm:̸ +INFO [2014-07-03 16:47:21:656] <28698> OrdPhone:111-1111-1111 +INFO [2014-07-03 16:47:21:656] <28698> OrdAddr:135-722@|@| Ż絿 @|@|1234 +INFO [2014-07-03 16:47:21:656] <28698> RcpNm:̸ +INFO [2014-07-03 16:47:21:656] <28698> RcpPhone:111-1111-1111 +INFO [2014-07-03 16:47:21:656] <28698> DlvAddr:135-722@|@| Ż絿 @|@|1234 +INFO [2014-07-03 16:47:21:656] <28698> Remark:½Ʈ +INFO [2014-07-03 16:47:21:656] <28698> DeviId:9000400001 +INFO [2014-07-03 16:47:21:656] <28698> AuthYn:N +INFO [2014-07-03 16:47:21:656] <28698> Instmt:00 +INFO [2014-07-03 16:47:21:657] <28698> UserIp:125.131.234.203 +INFO [2014-07-03 16:47:21:657] <28698> partial_mm:00 +INFO [2014-07-03 16:47:21:657] <28698> noIntMonth: +INFO [2014-07-03 16:47:21:657] <28698> KVP_CURRENCY:WON +INFO [2014-07-03 16:47:21:657] <28698> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-03 16:47:21:657] <28698> KVP_SESSIONKEY:CGvVbFwIVloLyddhmYh9N3v0FYHm4xYRo5P1DfT2TBjGxsycx9mXBbWXNc6/fhlcQq+LRep/oXDj5YkI780njgJWbrbqMTuMOmL7xeWw3HwbQLdyGxXV0uwowcp1hjJoY2f1tI5pZWsLg+wJid8oUBoJRZMlFLet1tA7TpB6Qew= +INFO [2014-07-03 16:47:21:657] <28698> KVP_ENCDATA:cdata=Km8qjak7QQlm4+pcRT3+RQK3ELGXp46nc1RzVfQ1kN2Pp+zKipJkTg3WJCcjh5dguYEhypQK11iUynbm5N750haC4WQY0PeqfKSy6aRU52TQZcyVmkg87E31/o4pq4eNZskXDU306OBFreCyVcNzNyTUvv0m2ZzX1U41To7mpcxJDdPbmLXYfkcc8Yg6bgpL1lPtydvLDoum0MtQdD3LGNKe7AmtlLGfXVaszc5jkM42CeJAPX7SKXDLyBR1kuEzE+RQWjQkNImfmo9wFAD8PJEWlf9nc9Nfzw2J55VaBSOk2tQkMsRX1CSo2GzYf0+RU4TRE95OUJaBi6D5n2IHE9cYnXhJxtZpLFGNNktwV+02OS6iFT0J9kVIP4eE3GPdssF9q3eOv/FYNbeZH4ZeAgJsJ034pp2sBi/FkuVJ7Hzg1SON6qJX2tOd3BeoIlO0v6o3tzwf5r5t1aKoRpCMPF8DWJBdRY/td6j3gsRaW7v/NtvW69WMVQdMVFVUHmbmM6FemQCtangwFTBDbXsgcT/deOzuoSFUjLxbB9APDjU= +INFO [2014-07-03 16:47:21:657] <28698> KVP_CONAME: +INFO [2014-07-03 16:47:21:657] <28698> KVP_NOINT:0 +INFO [2014-07-03 16:47:21:657] <28698> KVP_QUOTA:00 +INFO [2014-07-03 16:47:21:657] <28698> CardNo: +INFO [2014-07-03 16:47:21:657] <28698> MPI_CAVV: +INFO [2014-07-03 16:47:21:657] <28698> MPI_ECI: +INFO [2014-07-03 16:47:21:657] <28698> MPI_MD64: +INFO [2014-07-03 16:47:21:658] <28698> ExpMon: +INFO [2014-07-03 16:47:21:658] <28698> ExpYear: +INFO [2014-07-03 16:47:21:658] <28698> Passwd: +INFO [2014-07-03 16:47:21:658] <28698> SocId: +INFO [2014-07-03 16:47:21:658] <28698> HP_SERVERINFO: +INFO [2014-07-03 16:47:21:658] <28698> HP_HANDPHONE: +INFO [2014-07-03 16:47:21:658] <28698> HP_COMPANY: +INFO [2014-07-03 16:47:21:658] <28698> HP_ID: +INFO [2014-07-03 16:47:21:658] <28698> HP_SUBID: +INFO [2014-07-03 16:47:21:658] <28698> HP_UNITType: +INFO [2014-07-03 16:47:21:658] <28698> HP_IDEN: +INFO [2014-07-03 16:47:21:658] <28698> HP_IPADDR: +INFO [2014-07-03 16:47:21:658] <28698> VIRTUAL_CENTERCD: +INFO [2014-07-03 16:47:21:659] <28698> VIRTUAL_DEPODT: +INFO [2014-07-03 16:47:21:659] <28698> ZuminCode: +INFO [2014-07-03 16:47:21:659] <28698> MallPage: +INFO [2014-07-03 16:47:21:659] <28698> VIRTUAL_NO: +INFO [2014-07-03 16:47:21:659] <28698> ES_SENDNO: +INFO [2014-07-03 16:47:21:659] <28698> Column1:222-2222-2222 +INFO [2014-07-03 16:47:21:659] <28698> Column2:222-2222-2222 +INFO [2014-07-03 16:47:21:659] <28698> Column3:0@|@|cardnormal +INFO [2014-07-03 16:47:21:659] <28698> Make NetCancel ID Start +INFO [2014-07-03 16:47:21:659] <28698> AEGIS_ISP_acetel_20140703164721659196 +INFO [2014-07-03 16:47:21:659] <28698> Make NetCancel ID End +INFO [2014-07-03 16:47:21:659] <28698> Make NetCancelID OK +INFO [2014-07-03 16:47:21:659] <28698> Make Msg Start +INFO [2014-07-03 16:47:21:660] <28698> card-isp Make MSG OK +INFO [2014-07-03 16:47:21:660] <28698> Make Msg End +INFO [2014-07-03 16:47:21:660] <28698> Make Pay Msg OK +INFO [2014-07-03 16:47:21:660] <28698> Send & Recv Msg Start +INFO [2014-07-03 16:47:21:660] <28698> Send Data To PG Start [ +INFO [2014-07-03 16:47:21:660] <28698> 0:0010332plug15 +INFO [2014-07-03 16:47:21:660] <28698> 1:acetel +INFO [2014-07-03 16:47:21:660] <28698> 2:test11 +INFO [2014-07-03 16:47:21:660] <28698> 3:17800 +INFO [2014-07-03 16:47:21:660] <28698> 4:20140703164440T16557 +INFO [2014-07-03 16:47:21:660] <28698> 5:9000400001 +INFO [2014-07-03 16:47:21:660] <28698> 6:̸ +INFO [2014-07-03 16:47:21:660] <28698> 7:111-1111-1111 +INFO [2014-07-03 16:47:21:660] <28698> 8:135-722@ +INFO [2014-07-03 16:47:21:660] <28698> 9:@ +INFO [2014-07-03 16:47:21:660] <28698> 10: Ż絿 @ +INFO [2014-07-03 16:47:21:660] <28698> 11:@ +INFO [2014-07-03 16:47:21:660] <28698> 12:1234 +INFO [2014-07-03 16:47:21:660] <28698> 13:̸ +INFO [2014-07-03 16:47:21:660] <28698> 14:111-1111-1111 +INFO [2014-07-03 16:47:21:660] <28698> 15:½Ʈ +INFO [2014-07-03 16:47:21:660] <28698> 16:ũ 帲 +INFO [2014-07-03 16:47:21:660] <28698> 17:WON +INFO [2014-07-03 16:47:21:660] <28698> 18:00 +INFO [2014-07-03 16:47:21:660] <28698> 19: +INFO [2014-07-03 16:47:21:660] <28698> 20:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-03 16:47:21:660] <28698> 21:CGvVbFwIVloLyddhmYh9N3v0FYHm4xYRo5P1DfT2TBjGxsycx9mXBbWXNc6/fhlcQq+LRep/oXDj5YkI780njgJWbrbqMTuMOmL7xeWw3HwbQLdyGxXV0uwowcp1hjJoY2f1tI5pZWsLg+wJid8oUBoJRZMlFLet1tA7TpB6Qew= +INFO [2014-07-03 16:47:21:660] <28698> 22:cdata=Km8qjak7QQlm4+pcRT3+RQK3ELGXp46nc1RzVfQ1kN2Pp+zKipJkTg3WJCcjh5dguYEhypQK11iUynbm5N750haC4WQY0PeqfKSy6aRU52TQZcyVmkg87E31/o4pq4eNZskXDU306OBFreCyVcNzNyTUvv0m2ZzX1U41To7mpcxJDdPbmLXYfkcc8Yg6bgpL1lPtydvLDoum0MtQdD3LGNKe7AmtlLGfXVaszc5jkM42CeJAPX7SKXDLyBR1kuEzE+RQWjQkNImfmo9wFAD8PJEWlf9nc9Nfzw2J55VaBSOk2tQkMsRX1CSo2GzYf0+RU4TRE95OUJaBi6D5n2IHE9cYnXhJxtZpLFGNNktwV+02OS6iFT0J9kVIP4eE3GPdssF9q3eOv/FYNbeZH4ZeAgJsJ034pp2sBi/FkuVJ7Hzg1SON6qJX2tOd3BeoIlO0v6o3tzwf5r5t1aKoRpCMPF8DWJBdRY/td6j3gsRaW7v/NtvW69WMVQdMVFVUHmbmM6FemQCtangwFTBDbXsgcT/deOzuoSFUjLxbB9APDjU= +INFO [2014-07-03 16:47:21:660] <28698> 23: +INFO [2014-07-03 16:47:21:660] <28698> 24:125.131.234.203 +INFO [2014-07-03 16:47:21:660] <28698> 25:test@empal.com +INFO [2014-07-03 16:47:21:660] <28698> 26:AEGIS_ISP_acetel_20140703164721659196 +INFO [2014-07-03 16:47:21:660] <28698> 27: +INFO [2014-07-03 16:47:21:661] <28698> ] Send Data To PG End +INFO [2014-07-03 16:47:21:661] <28698> SendMsg : [0010332plug15|acetel|test11|17800|20140703164440T16557|9000400001|̸|111-1111-1111|135-722@|@| Ż絿 @|@|1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|CGvVbFwIVloLyddhmYh9N3v0FYHm4xYRo5P1DfT2TBjGxsycx9mXBbWXNc6/fhlcQq+LRep/oXDj5YkI780njgJWbrbqMTuMOmL7xeWw3HwbQLdyGxXV0uwowcp1hjJoY2f1tI5pZWsLg+wJid8oUBoJRZMlFLet1tA7TpB6Qew=|cdata=Km8qjak7QQlm4+pcRT3+RQK3ELGXp46nc1RzVfQ1kN2Pp+zKipJkTg3WJCcjh5dguYEhypQK11iUynbm5N750haC4WQY0PeqfKSy6aRU52TQZcyVmkg87E31/o4pq4eNZskXDU306OBFreCyVcNzNyTUvv0m2ZzX1U41To7mpcxJDdPbmLXYfkcc8Yg6bgpL1lPtydvLDoum0MtQdD3LGNKe7AmtlLGfXVaszc5jkM42CeJAPX7SKXDLyBR1kuEzE+RQWjQkNImfmo9wFAD8PJEWlf9nc9Nfzw2J55VaBSOk2tQkMsRX1CSo2GzYf0+RU4TRE95OUJaBi6D5n2IHE9cYnXhJxtZpLFGNNktwV+02OS6iFT0J9kVIP4eE3GPdssF9q3eOv/FYNbeZH4ZeAgJsJ034pp2sBi/FkuVJ7Hzg1SON6qJX2tOd3BeoIlO0v6o3tzwf5r5t1aKoRpCMPF8DWJBdRY/td6j3gsRaW7v/NtvW69WMVQdMVFVUHmbmM6FemQCtangwFTBDbXsgcT/deOzuoSFUjLxbB9APDjU=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140703164721659196|] +INFO [2014-07-03 16:47:21:661] <28698> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-03 16:47:21:666] <28698> Socket Open OK +INFO [2014-07-03 16:47:22:511] <28698> RecvMsg Length : [000092] +INFO [2014-07-03 16:47:22:511] <28698> RecvMsg : [acetel|0610|20140703164440T16557||17800|n|Ÿ(ȣ ̻)||0100| +] +INFO [2014-07-03 16:47:22:511] <28698> Socket Close OK +INFO [2014-07-03 16:47:22:511] <28698> RecvMsg Length Check OK +INFO [2014-07-03 16:47:22:511] <28698> Send & Recv Msg End +INFO [2014-07-03 16:47:22:511] <28698> Send & Recv Msg OK +INFO [2014-07-03 16:47:22:511] <28698> Parse Msg Start +INFO [2014-07-03 16:47:22:511] <28698> card-isp RECV MSG Parsing OK +INFO [2014-07-03 16:47:22:511] <28698> Parse Msg End +INFO [2014-07-03 16:47:22:512] <28698> Msg Parsing OK +INFO [2014-07-03 16:47:22:512] <28698> card Pay Result Value [ +INFO [2014-07-03 16:47:22:512] <28698> NetCancID:AEGIS_ISP_acetel_20140703164721659196 +INFO [2014-07-03 16:47:22:512] <28698> rStoreId:acetel +INFO [2014-07-03 16:47:22:512] <28698> rBusiCd:0610 +INFO [2014-07-03 16:47:22:512] <28698> rOrdNo:20140703164440T16557 +INFO [2014-07-03 16:47:22:512] <28698> rDealNo:20140703164440T16557 +INFO [2014-07-03 16:47:22:512] <28698> rApprNo: +INFO [2014-07-03 16:47:22:512] <28698> rProdNm:ũ 帲 +INFO [2014-07-03 16:47:22:512] <28698> rAmt:17800 +INFO [2014-07-03 16:47:22:512] <28698> rInstmt:00 +INFO [2014-07-03 16:47:22:512] <28698> rSuccYn:n +INFO [2014-07-03 16:47:22:512] <28698> rResMsg:Ÿ(ȣ ̻) +INFO [2014-07-03 16:47:22:512] <28698> rApprTm: +INFO [2014-07-03 16:47:22:512] <28698> rCardCd:0100 +INFO [2014-07-03 16:47:22:512] <28698> ] +INFO [2014-07-03 16:47:22:513] <28698> END Ÿ(ȣ ̻) Transaction time:[0.868sec] +INFO [2014-07-03 16:47:22:513] <28698> =============================================================== +INFO [2014-07-03 16:50:10:333] <28757> =============================================================== +INFO [2014-07-03 16:50:10:333] <28757> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-03 16:50:10:333] <28757> card Pay Start! +INFO [2014-07-03 16:50:10:333] <28757> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-03 16:50:10:334] <28757> StoreId:acetel +INFO [2014-07-03 16:50:10:334] <28757> log:true +INFO [2014-07-03 16:50:10:334] <28757> logLevel:INFO +INFO [2014-07-03 16:50:10:334] <28757> UseNetCancel:true +INFO [2014-07-03 16:50:10:334] <28757> Type:Pay +INFO [2014-07-03 16:50:10:334] <28757> RecvLen:7 +INFO [2014-07-03 16:50:10:334] <28757> AuthTy:card +INFO [2014-07-03 16:50:10:334] <28757> SubTy:isp +INFO [2014-07-03 16:50:10:334] <28757> OrdNo:20140703164838T44408 +INFO [2014-07-03 16:50:10:334] <28757> Amt:17800 +INFO [2014-07-03 16:50:10:334] <28757> UserEmail:test@empal.com +INFO [2014-07-03 16:50:10:334] <28757> ProdNm:ũ 帲 +INFO [2014-07-03 16:50:10:334] <28757> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-03 16:50:10:334] <28757> UserId:test11 +INFO [2014-07-03 16:50:10:334] <28757> OrdNm:̸ +INFO [2014-07-03 16:50:10:334] <28757> OrdPhone:111-1111-1111 +INFO [2014-07-03 16:50:10:334] <28757> OrdAddr:135-722@|@| Ż絿 @|@|1234 +INFO [2014-07-03 16:50:10:334] <28757> RcpNm:̸ +INFO [2014-07-03 16:50:10:334] <28757> RcpPhone:111-1111-1111 +INFO [2014-07-03 16:50:10:334] <28757> DlvAddr:135-722@|@| Ż絿 @|@|1234 +INFO [2014-07-03 16:50:10:335] <28757> Remark:½Ʈ +INFO [2014-07-03 16:50:10:335] <28757> DeviId:9000400001 +INFO [2014-07-03 16:50:10:335] <28757> AuthYn:N +INFO [2014-07-03 16:50:10:335] <28757> Instmt:00 +INFO [2014-07-03 16:50:10:335] <28757> UserIp:125.131.234.203 +INFO [2014-07-03 16:50:10:335] <28757> partial_mm:00 +INFO [2014-07-03 16:50:10:335] <28757> noIntMonth: +INFO [2014-07-03 16:50:10:335] <28757> KVP_CURRENCY:WON +INFO [2014-07-03 16:50:10:335] <28757> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-03 16:50:10:335] <28757> KVP_SESSIONKEY:EUQwV3C//lD815L+FoCIO34Llp7zZoo0MI8Ft9riChrpZymIPR57FEM3aHmKGqUbNhMQ2dIOgmWtXSsevXMH7YPbCotyS1LRPKylwjaGOM+gCmJpYNozOO4aHEXTpj5N07gfetd7yGFdf6wYn4I8HetHRYucB9PBim2yDRbSEIM= +INFO [2014-07-03 16:50:10:335] <28757> KVP_ENCDATA:cdata=lMDBCwT2LWUcm3aIA6r8h7Oi77WJ8O18gmhrRUyonul6uiW+M/8fh0OnoXpw/wPWKwS9hrZp6ecOeBmNRVC/3M8Fw/SSOQYMAYchLaz5i/4YfI+OLVh4ofT/nnJ4tyWMo1pdMJ0zWLQSGMMDVGhtA4GVlyhciob0G4MMgA2MMap//e8UGzE039PnDGGbZGSUz13ubKC5IHhkPfmOFLh4hz/yKYkEs01nZb6yEHn5PFHQE3IlOPvmpuPaDoXEJc8TSHQcNC2j8ux3QgXYKPL/NbcOXIIrjdD6ltg3ZFFqRi9gWoRWgWtwM2qr9jw/xAgVQ+3Kx2QX6WIcCVC3b9SbmdOpV8IfXa266s+lRF4tz1hR+IYo4WZE6721aMhpydy35V2iKjlxtd5OTTYfjpA9GXiAn9JLeDoFU6Zjjt4j/V8CLeeLKy9FdfVmAQOvQaMXpNaC0L1f3bZD3y9Gx2u+QqF9xy8tV/Y4jZwZHR1I1xoO+hyUqXr0MQULfvUksAQzP1VLnrj+K7Qe/SoYpOQUbKKnH3TL6bWlTx4aZq13qF8= +INFO [2014-07-03 16:50:10:335] <28757> KVP_CONAME: +INFO [2014-07-03 16:50:10:335] <28757> KVP_NOINT:0 +INFO [2014-07-03 16:50:10:335] <28757> KVP_QUOTA:00 +INFO [2014-07-03 16:50:10:335] <28757> CardNo: +INFO [2014-07-03 16:50:10:335] <28757> MPI_CAVV: +INFO [2014-07-03 16:50:10:335] <28757> MPI_ECI: +INFO [2014-07-03 16:50:10:335] <28757> MPI_MD64: +INFO [2014-07-03 16:50:10:335] <28757> ExpMon: +INFO [2014-07-03 16:50:10:335] <28757> ExpYear: +INFO [2014-07-03 16:50:10:335] <28757> Passwd: +INFO [2014-07-03 16:50:10:336] <28757> SocId: +INFO [2014-07-03 16:50:10:336] <28757> HP_SERVERINFO: +INFO [2014-07-03 16:50:10:336] <28757> HP_HANDPHONE: +INFO [2014-07-03 16:50:10:336] <28757> HP_COMPANY: +INFO [2014-07-03 16:50:10:336] <28757> HP_ID: +INFO [2014-07-03 16:50:10:336] <28757> HP_SUBID: +INFO [2014-07-03 16:50:10:336] <28757> HP_UNITType: +INFO [2014-07-03 16:50:10:336] <28757> HP_IDEN: +INFO [2014-07-03 16:50:10:336] <28757> HP_IPADDR: +INFO [2014-07-03 16:50:10:336] <28757> VIRTUAL_CENTERCD: +INFO [2014-07-03 16:50:10:336] <28757> VIRTUAL_DEPODT: +INFO [2014-07-03 16:50:10:336] <28757> ZuminCode: +INFO [2014-07-03 16:50:10:336] <28757> MallPage: +INFO [2014-07-03 16:50:10:336] <28757> VIRTUAL_NO: +INFO [2014-07-03 16:50:10:336] <28757> ES_SENDNO: +INFO [2014-07-03 16:50:10:336] <28757> Column1:222-2222-2222 +INFO [2014-07-03 16:50:10:336] <28757> Column2:222-2222-2222 +INFO [2014-07-03 16:50:10:336] <28757> Column3:0@|@|cardnormal +INFO [2014-07-03 16:50:10:336] <28757> Make NetCancel ID Start +INFO [2014-07-03 16:50:10:336] <28757> AEGIS_ISP_acetel_20140703165010336921 +INFO [2014-07-03 16:50:10:337] <28757> Make NetCancel ID End +INFO [2014-07-03 16:50:10:337] <28757> Make NetCancelID OK +INFO [2014-07-03 16:50:10:337] <28757> Make Msg Start +INFO [2014-07-03 16:50:10:337] <28757> card-isp Make MSG OK +INFO [2014-07-03 16:50:10:337] <28757> Make Msg End +INFO [2014-07-03 16:50:10:337] <28757> Make Pay Msg OK +INFO [2014-07-03 16:50:10:337] <28757> Send & Recv Msg Start +INFO [2014-07-03 16:50:10:337] <28757> Send Data To PG Start [ +INFO [2014-07-03 16:50:10:337] <28757> 0:0010332plug15 +INFO [2014-07-03 16:50:10:337] <28757> 1:acetel +INFO [2014-07-03 16:50:10:337] <28757> 2:test11 +INFO [2014-07-03 16:50:10:337] <28757> 3:17800 +INFO [2014-07-03 16:50:10:337] <28757> 4:20140703164838T44408 +INFO [2014-07-03 16:50:10:337] <28757> 5:9000400001 +INFO [2014-07-03 16:50:10:337] <28757> 6:̸ +INFO [2014-07-03 16:50:10:337] <28757> 7:111-1111-1111 +INFO [2014-07-03 16:50:10:337] <28757> 8:135-722@ +INFO [2014-07-03 16:50:10:337] <28757> 9:@ +INFO [2014-07-03 16:50:10:337] <28757> 10: Ż絿 @ +INFO [2014-07-03 16:50:10:337] <28757> 11:@ +INFO [2014-07-03 16:50:10:337] <28757> 12:1234 +INFO [2014-07-03 16:50:10:337] <28757> 13:̸ +INFO [2014-07-03 16:50:10:337] <28757> 14:111-1111-1111 +INFO [2014-07-03 16:50:10:337] <28757> 15:½Ʈ +INFO [2014-07-03 16:50:10:337] <28757> 16:ũ 帲 +INFO [2014-07-03 16:50:10:337] <28757> 17:WON +INFO [2014-07-03 16:50:10:337] <28757> 18:00 +INFO [2014-07-03 16:50:10:337] <28757> 19: +INFO [2014-07-03 16:50:10:337] <28757> 20:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-03 16:50:10:337] <28757> 21:EUQwV3C//lD815L+FoCIO34Llp7zZoo0MI8Ft9riChrpZymIPR57FEM3aHmKGqUbNhMQ2dIOgmWtXSsevXMH7YPbCotyS1LRPKylwjaGOM+gCmJpYNozOO4aHEXTpj5N07gfetd7yGFdf6wYn4I8HetHRYucB9PBim2yDRbSEIM= +INFO [2014-07-03 16:50:10:337] <28757> 22:cdata=lMDBCwT2LWUcm3aIA6r8h7Oi77WJ8O18gmhrRUyonul6uiW+M/8fh0OnoXpw/wPWKwS9hrZp6ecOeBmNRVC/3M8Fw/SSOQYMAYchLaz5i/4YfI+OLVh4ofT/nnJ4tyWMo1pdMJ0zWLQSGMMDVGhtA4GVlyhciob0G4MMgA2MMap//e8UGzE039PnDGGbZGSUz13ubKC5IHhkPfmOFLh4hz/yKYkEs01nZb6yEHn5PFHQE3IlOPvmpuPaDoXEJc8TSHQcNC2j8ux3QgXYKPL/NbcOXIIrjdD6ltg3ZFFqRi9gWoRWgWtwM2qr9jw/xAgVQ+3Kx2QX6WIcCVC3b9SbmdOpV8IfXa266s+lRF4tz1hR+IYo4WZE6721aMhpydy35V2iKjlxtd5OTTYfjpA9GXiAn9JLeDoFU6Zjjt4j/V8CLeeLKy9FdfVmAQOvQaMXpNaC0L1f3bZD3y9Gx2u+QqF9xy8tV/Y4jZwZHR1I1xoO+hyUqXr0MQULfvUksAQzP1VLnrj+K7Qe/SoYpOQUbKKnH3TL6bWlTx4aZq13qF8= +INFO [2014-07-03 16:50:10:337] <28757> 23: +INFO [2014-07-03 16:50:10:337] <28757> 24:125.131.234.203 +INFO [2014-07-03 16:50:10:337] <28757> 25:test@empal.com +INFO [2014-07-03 16:50:10:337] <28757> 26:AEGIS_ISP_acetel_20140703165010336921 +INFO [2014-07-03 16:50:10:337] <28757> 27: +INFO [2014-07-03 16:50:10:337] <28757> ] Send Data To PG End +INFO [2014-07-03 16:50:10:337] <28757> SendMsg : [0010332plug15|acetel|test11|17800|20140703164838T44408|9000400001|̸|111-1111-1111|135-722@|@| Ż絿 @|@|1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|EUQwV3C//lD815L+FoCIO34Llp7zZoo0MI8Ft9riChrpZymIPR57FEM3aHmKGqUbNhMQ2dIOgmWtXSsevXMH7YPbCotyS1LRPKylwjaGOM+gCmJpYNozOO4aHEXTpj5N07gfetd7yGFdf6wYn4I8HetHRYucB9PBim2yDRbSEIM=|cdata=lMDBCwT2LWUcm3aIA6r8h7Oi77WJ8O18gmhrRUyonul6uiW+M/8fh0OnoXpw/wPWKwS9hrZp6ecOeBmNRVC/3M8Fw/SSOQYMAYchLaz5i/4YfI+OLVh4ofT/nnJ4tyWMo1pdMJ0zWLQSGMMDVGhtA4GVlyhciob0G4MMgA2MMap//e8UGzE039PnDGGbZGSUz13ubKC5IHhkPfmOFLh4hz/yKYkEs01nZb6yEHn5PFHQE3IlOPvmpuPaDoXEJc8TSHQcNC2j8ux3QgXYKPL/NbcOXIIrjdD6ltg3ZFFqRi9gWoRWgWtwM2qr9jw/xAgVQ+3Kx2QX6WIcCVC3b9SbmdOpV8IfXa266s+lRF4tz1hR+IYo4WZE6721aMhpydy35V2iKjlxtd5OTTYfjpA9GXiAn9JLeDoFU6Zjjt4j/V8CLeeLKy9FdfVmAQOvQaMXpNaC0L1f3bZD3y9Gx2u+QqF9xy8tV/Y4jZwZHR1I1xoO+hyUqXr0MQULfvUksAQzP1VLnrj+K7Qe/SoYpOQUbKKnH3TL6bWlTx4aZq13qF8=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140703165010336921|] +INFO [2014-07-03 16:50:10:338] <28757> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-03 16:50:10:342] <28757> Socket Open OK +INFO [2014-07-03 16:50:12:51] <28757> RecvMsg Length : [000092] +INFO [2014-07-03 16:50:12:51] <28757> RecvMsg : [acetel|0610|20140703164838T44408||17800|n|Ÿ(ȣ ̻)||0100| +] +INFO [2014-07-03 16:50:12:51] <28757> Socket Close OK +INFO [2014-07-03 16:50:12:51] <28757> RecvMsg Length Check OK +INFO [2014-07-03 16:50:12:51] <28757> Send & Recv Msg End +INFO [2014-07-03 16:50:12:51] <28757> Send & Recv Msg OK +INFO [2014-07-03 16:50:12:51] <28757> Parse Msg Start +INFO [2014-07-03 16:50:12:52] <28757> card-isp RECV MSG Parsing OK +INFO [2014-07-03 16:50:12:52] <28757> Parse Msg End +INFO [2014-07-03 16:50:12:52] <28757> Msg Parsing OK +INFO [2014-07-03 16:50:12:52] <28757> card Pay Result Value [ +INFO [2014-07-03 16:50:12:52] <28757> NetCancID:AEGIS_ISP_acetel_20140703165010336921 +INFO [2014-07-03 16:50:12:52] <28757> rStoreId:acetel +INFO [2014-07-03 16:50:12:52] <28757> rBusiCd:0610 +INFO [2014-07-03 16:50:12:52] <28757> rOrdNo:20140703164838T44408 +INFO [2014-07-03 16:50:12:52] <28757> rDealNo:20140703164838T44408 +INFO [2014-07-03 16:50:12:52] <28757> rApprNo: +INFO [2014-07-03 16:50:12:52] <28757> rProdNm:ũ 帲 +INFO [2014-07-03 16:50:12:52] <28757> rAmt:17800 +INFO [2014-07-03 16:50:12:52] <28757> rInstmt:00 +INFO [2014-07-03 16:50:12:52] <28757> rSuccYn:n +INFO [2014-07-03 16:50:12:52] <28757> rResMsg:Ÿ(ȣ ̻) +INFO [2014-07-03 16:50:12:52] <28757> rApprTm: +INFO [2014-07-03 16:50:12:52] <28757> rCardCd:0100 +INFO [2014-07-03 16:50:12:52] <28757> ] +INFO [2014-07-03 16:50:12:52] <28757> END Ÿ(ȣ ̻) Transaction time:[1.719sec] +INFO [2014-07-03 16:50:12:52] <28757> =============================================================== +INFO [2014-07-03 16:57:52:301] <29457> =============================================================== +INFO [2014-07-03 16:57:52:301] <29457> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-03 16:57:52:301] <29457> card Pay Start! +INFO [2014-07-03 16:57:52:301] <29457> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-03 16:57:52:301] <29457> StoreId:acetel +INFO [2014-07-03 16:57:52:301] <29457> log:true +INFO [2014-07-03 16:57:52:301] <29457> logLevel:INFO +INFO [2014-07-03 16:57:52:301] <29457> UseNetCancel:true +INFO [2014-07-03 16:57:52:301] <29457> Type:Pay +INFO [2014-07-03 16:57:52:301] <29457> RecvLen:7 +INFO [2014-07-03 16:57:52:301] <29457> AuthTy:card +INFO [2014-07-03 16:57:52:301] <29457> SubTy:isp +INFO [2014-07-03 16:57:52:302] <29457> OrdNo:20140703165309T25500 +INFO [2014-07-03 16:57:52:302] <29457> Amt:17800 +INFO [2014-07-03 16:57:52:302] <29457> UserEmail:test@empal.com +INFO [2014-07-03 16:57:52:302] <29457> ProdNm:ũ 帲 +INFO [2014-07-03 16:57:52:302] <29457> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-03 16:57:52:302] <29457> UserId:test11 +INFO [2014-07-03 16:57:52:302] <29457> OrdNm:̸ +INFO [2014-07-03 16:57:52:302] <29457> OrdPhone:111-1111-1111 +INFO [2014-07-03 16:57:52:302] <29457> OrdAddr:135-722@|@| Ż絿 @|@|1234 +INFO [2014-07-03 16:57:52:302] <29457> RcpNm:̸ +INFO [2014-07-03 16:57:52:302] <29457> RcpPhone:111-1111-1111 +INFO [2014-07-03 16:57:52:302] <29457> DlvAddr:135-722@|@| Ż絿 @|@|1234 +INFO [2014-07-03 16:57:52:302] <29457> Remark:½Ʈ +INFO [2014-07-03 16:57:52:302] <29457> DeviId:9000400001 +INFO [2014-07-03 16:57:52:302] <29457> AuthYn:N +INFO [2014-07-03 16:57:52:302] <29457> Instmt:00 +INFO [2014-07-03 16:57:52:302] <29457> UserIp:125.131.234.203 +INFO [2014-07-03 16:57:52:302] <29457> partial_mm:00 +INFO [2014-07-03 16:57:52:302] <29457> noIntMonth: +INFO [2014-07-03 16:57:52:302] <29457> KVP_CURRENCY:WON +INFO [2014-07-03 16:57:52:302] <29457> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-03 16:57:52:303] <29457> KVP_SESSIONKEY:Bf3Jk2JYw0kJtDCpRv21OyAD2TEH8GVsQgOCWKkRSUVCcV4Mn4psZP4CkbttQZ5OJSdS0hg7GYn2zAaAKYpvL0Jua8IK6D8MBGcuura7Q0rDe5wdtBbWapDtmR2zoQEwUipRACiS+F+/5SWHJ61oMFoqRs1fhrmr7JCReDNEqE0= +INFO [2014-07-03 16:57:52:303] <29457> KVP_ENCDATA:cdata=S8zOclyxfB+iuDLuUdMzgmPIspN4QD4WMzpU1AcpHuEMiIT66HoaJhA5J4ZhmafWz4a1rXFVx6lY55ZGvdEa0u3FhoZVU1Tzx2B8I16ywOw3FHS7nuFILCDnMDZGHvro1zqTcB2jJ4PSWNctBOxzDKm5GVYaE4acFkDrV2f1zHsuaEsOfywPQd0s36123aIPdGR7vpf79L0qV7KOhXiLEUh2tCsKXo954im9i83WgpxBH0prY7RCfjxllPZf4tce4cdnhaeKWowxIyAHlII5zZH4CAMdroU4TRv6nySX+OSe6T7qdHKxQqJHLwMT2g8RWHmfmyi4cMjBnGab4/LPY7yb3bHDlUv7EZvrFVcfEhjm+5p+jo6KGrQTyKG//aQnroPDHatJV36oxM6ML0rdn1l49EsnAtKmBCLbDsR1ZRy8qdfsT1hSu4MGvueE43SKNrj+CeiuruGvgHohTK5p4/EoAsYRzLtm5Gkrk+WyZ2P9PAmrks2NflSfNzOWMb7KDsS6oyAw5kCl8yVfEDmj443smfEBsUYyiuP1k4tRMY4= +INFO [2014-07-03 16:57:52:303] <29457> KVP_CONAME: +INFO [2014-07-03 16:57:52:303] <29457> KVP_NOINT:0 +INFO [2014-07-03 16:57:52:303] <29457> KVP_QUOTA:00 +INFO [2014-07-03 16:57:52:303] <29457> CardNo: +INFO [2014-07-03 16:57:52:303] <29457> MPI_CAVV: +INFO [2014-07-03 16:57:52:303] <29457> MPI_ECI: +INFO [2014-07-03 16:57:52:303] <29457> MPI_MD64: +INFO [2014-07-03 16:57:52:303] <29457> ExpMon: +INFO [2014-07-03 16:57:52:303] <29457> ExpYear: +INFO [2014-07-03 16:57:52:303] <29457> Passwd: +INFO [2014-07-03 16:57:52:303] <29457> SocId: +INFO [2014-07-03 16:57:52:303] <29457> HP_SERVERINFO: +INFO [2014-07-03 16:57:52:303] <29457> HP_HANDPHONE: +INFO [2014-07-03 16:57:52:303] <29457> HP_COMPANY: +INFO [2014-07-03 16:57:52:303] <29457> HP_ID: +INFO [2014-07-03 16:57:52:303] <29457> HP_SUBID: +INFO [2014-07-03 16:57:52:303] <29457> HP_UNITType: +INFO [2014-07-03 16:57:52:304] <29457> HP_IDEN: +INFO [2014-07-03 16:57:52:304] <29457> HP_IPADDR: +INFO [2014-07-03 16:57:52:304] <29457> VIRTUAL_CENTERCD: +INFO [2014-07-03 16:57:52:304] <29457> VIRTUAL_DEPODT: +INFO [2014-07-03 16:57:52:304] <29457> ZuminCode: +INFO [2014-07-03 16:57:52:304] <29457> MallPage: +INFO [2014-07-03 16:57:52:304] <29457> VIRTUAL_NO: +INFO [2014-07-03 16:57:52:304] <29457> ES_SENDNO: +INFO [2014-07-03 16:57:52:304] <29457> Column1:222-2222-2222 +INFO [2014-07-03 16:57:52:304] <29457> Column2:222-2222-2222 +INFO [2014-07-03 16:57:52:304] <29457> Column3:0@|@|cardnormal +INFO [2014-07-03 16:57:52:304] <29457> Make NetCancel ID Start +INFO [2014-07-03 16:57:52:304] <29457> AEGIS_ISP_acetel_20140703165752304455 +INFO [2014-07-03 16:57:52:304] <29457> Make NetCancel ID End +INFO [2014-07-03 16:57:52:304] <29457> Make NetCancelID OK +INFO [2014-07-03 16:57:52:304] <29457> Make Msg Start +INFO [2014-07-03 16:57:52:304] <29457> card-isp Make MSG OK +INFO [2014-07-03 16:57:52:304] <29457> Make Msg End +INFO [2014-07-03 16:57:52:305] <29457> Make Pay Msg OK +INFO [2014-07-03 16:57:52:305] <29457> Send & Recv Msg Start +INFO [2014-07-03 16:57:52:305] <29457> Send Data To PG Start [ +INFO [2014-07-03 16:57:52:305] <29457> 0:0010332plug15 +INFO [2014-07-03 16:57:52:305] <29457> 1:acetel +INFO [2014-07-03 16:57:52:305] <29457> 2:test11 +INFO [2014-07-03 16:57:52:305] <29457> 3:17800 +INFO [2014-07-03 16:57:52:305] <29457> 4:20140703165309T25500 +INFO [2014-07-03 16:57:52:305] <29457> 5:9000400001 +INFO [2014-07-03 16:57:52:305] <29457> 6:̸ +INFO [2014-07-03 16:57:52:305] <29457> 7:111-1111-1111 +INFO [2014-07-03 16:57:52:305] <29457> 8:135-722@ +INFO [2014-07-03 16:57:52:305] <29457> 9:@ +INFO [2014-07-03 16:57:52:305] <29457> 10: Ż絿 @ +INFO [2014-07-03 16:57:52:305] <29457> 11:@ +INFO [2014-07-03 16:57:52:305] <29457> 12:1234 +INFO [2014-07-03 16:57:52:305] <29457> 13:̸ +INFO [2014-07-03 16:57:52:305] <29457> 14:111-1111-1111 +INFO [2014-07-03 16:57:52:305] <29457> 15:½Ʈ +INFO [2014-07-03 16:57:52:305] <29457> 16:ũ 帲 +INFO [2014-07-03 16:57:52:305] <29457> 17:WON +INFO [2014-07-03 16:57:52:305] <29457> 18:00 +INFO [2014-07-03 16:57:52:305] <29457> 19: +INFO [2014-07-03 16:57:52:305] <29457> 20:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-03 16:57:52:305] <29457> 21:Bf3Jk2JYw0kJtDCpRv21OyAD2TEH8GVsQgOCWKkRSUVCcV4Mn4psZP4CkbttQZ5OJSdS0hg7GYn2zAaAKYpvL0Jua8IK6D8MBGcuura7Q0rDe5wdtBbWapDtmR2zoQEwUipRACiS+F+/5SWHJ61oMFoqRs1fhrmr7JCReDNEqE0= +INFO [2014-07-03 16:57:52:305] <29457> 22:cdata=S8zOclyxfB+iuDLuUdMzgmPIspN4QD4WMzpU1AcpHuEMiIT66HoaJhA5J4ZhmafWz4a1rXFVx6lY55ZGvdEa0u3FhoZVU1Tzx2B8I16ywOw3FHS7nuFILCDnMDZGHvro1zqTcB2jJ4PSWNctBOxzDKm5GVYaE4acFkDrV2f1zHsuaEsOfywPQd0s36123aIPdGR7vpf79L0qV7KOhXiLEUh2tCsKXo954im9i83WgpxBH0prY7RCfjxllPZf4tce4cdnhaeKWowxIyAHlII5zZH4CAMdroU4TRv6nySX+OSe6T7qdHKxQqJHLwMT2g8RWHmfmyi4cMjBnGab4/LPY7yb3bHDlUv7EZvrFVcfEhjm+5p+jo6KGrQTyKG//aQnroPDHatJV36oxM6ML0rdn1l49EsnAtKmBCLbDsR1ZRy8qdfsT1hSu4MGvueE43SKNrj+CeiuruGvgHohTK5p4/EoAsYRzLtm5Gkrk+WyZ2P9PAmrks2NflSfNzOWMb7KDsS6oyAw5kCl8yVfEDmj443smfEBsUYyiuP1k4tRMY4= +INFO [2014-07-03 16:57:52:305] <29457> 23: +INFO [2014-07-03 16:57:52:305] <29457> 24:125.131.234.203 +INFO [2014-07-03 16:57:52:305] <29457> 25:test@empal.com +INFO [2014-07-03 16:57:52:305] <29457> 26:AEGIS_ISP_acetel_20140703165752304455 +INFO [2014-07-03 16:57:52:305] <29457> 27: +INFO [2014-07-03 16:57:52:305] <29457> ] Send Data To PG End +INFO [2014-07-03 16:57:52:305] <29457> SendMsg : [0010332plug15|acetel|test11|17800|20140703165309T25500|9000400001|̸|111-1111-1111|135-722@|@| Ż絿 @|@|1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|Bf3Jk2JYw0kJtDCpRv21OyAD2TEH8GVsQgOCWKkRSUVCcV4Mn4psZP4CkbttQZ5OJSdS0hg7GYn2zAaAKYpvL0Jua8IK6D8MBGcuura7Q0rDe5wdtBbWapDtmR2zoQEwUipRACiS+F+/5SWHJ61oMFoqRs1fhrmr7JCReDNEqE0=|cdata=S8zOclyxfB+iuDLuUdMzgmPIspN4QD4WMzpU1AcpHuEMiIT66HoaJhA5J4ZhmafWz4a1rXFVx6lY55ZGvdEa0u3FhoZVU1Tzx2B8I16ywOw3FHS7nuFILCDnMDZGHvro1zqTcB2jJ4PSWNctBOxzDKm5GVYaE4acFkDrV2f1zHsuaEsOfywPQd0s36123aIPdGR7vpf79L0qV7KOhXiLEUh2tCsKXo954im9i83WgpxBH0prY7RCfjxllPZf4tce4cdnhaeKWowxIyAHlII5zZH4CAMdroU4TRv6nySX+OSe6T7qdHKxQqJHLwMT2g8RWHmfmyi4cMjBnGab4/LPY7yb3bHDlUv7EZvrFVcfEhjm+5p+jo6KGrQTyKG//aQnroPDHatJV36oxM6ML0rdn1l49EsnAtKmBCLbDsR1ZRy8qdfsT1hSu4MGvueE43SKNrj+CeiuruGvgHohTK5p4/EoAsYRzLtm5Gkrk+WyZ2P9PAmrks2NflSfNzOWMb7KDsS6oyAw5kCl8yVfEDmj443smfEBsUYyiuP1k4tRMY4=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140703165752304455|] +INFO [2014-07-03 16:57:52:305] <29457> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-03 16:57:52:309] <29457> Socket Open OK +INFO [2014-07-03 16:57:53:836] <29457> RecvMsg Length : [000092] +INFO [2014-07-03 16:57:53:836] <29457> RecvMsg : [acetel|0610|20140703165309T25500||17800|n|Ÿ(ȣ ̻)||0100| +] +INFO [2014-07-03 16:57:53:836] <29457> Socket Close OK +INFO [2014-07-03 16:57:53:837] <29457> RecvMsg Length Check OK +INFO [2014-07-03 16:57:53:837] <29457> Send & Recv Msg End +INFO [2014-07-03 16:57:53:837] <29457> Send & Recv Msg OK +INFO [2014-07-03 16:57:53:837] <29457> Parse Msg Start +INFO [2014-07-03 16:57:53:837] <29457> card-isp RECV MSG Parsing OK +INFO [2014-07-03 16:57:53:837] <29457> Parse Msg End +INFO [2014-07-03 16:57:53:837] <29457> Msg Parsing OK +INFO [2014-07-03 16:57:53:837] <29457> card Pay Result Value [ +INFO [2014-07-03 16:57:53:837] <29457> NetCancID:AEGIS_ISP_acetel_20140703165752304455 +INFO [2014-07-03 16:57:53:837] <29457> rStoreId:acetel +INFO [2014-07-03 16:57:53:837] <29457> rBusiCd:0610 +INFO [2014-07-03 16:57:53:837] <29457> rOrdNo:20140703165309T25500 +INFO [2014-07-03 16:57:53:837] <29457> rDealNo:20140703165309T25500 +INFO [2014-07-03 16:57:53:837] <29457> rApprNo: +INFO [2014-07-03 16:57:53:837] <29457> rProdNm:ũ 帲 +INFO [2014-07-03 16:57:53:837] <29457> rAmt:17800 +INFO [2014-07-03 16:57:53:837] <29457> rInstmt:00 +INFO [2014-07-03 16:57:53:837] <29457> rSuccYn:n +INFO [2014-07-03 16:57:53:837] <29457> rResMsg:Ÿ(ȣ ̻) +INFO [2014-07-03 16:57:53:838] <29457> rApprTm: +INFO [2014-07-03 16:57:53:838] <29457> rCardCd:0100 +INFO [2014-07-03 16:57:53:838] <29457> ] +INFO [2014-07-03 16:57:53:838] <29457> END Ÿ(ȣ ̻) Transaction time:[1.537sec] +INFO [2014-07-03 16:57:53:838] <29457> =============================================================== diff --git a/module/shop/pg_bak/agspay/log/AgsPay40_php_acetel_140704.log b/module/shop/pg_bak/agspay/log/AgsPay40_php_acetel_140704.log new file mode 100644 index 0000000..5c8647f --- /dev/null +++ b/module/shop/pg_bak/agspay/log/AgsPay40_php_acetel_140704.log @@ -0,0 +1,1541 @@ +INFO [2014-07-04 09:38:45:498] <1140> =============================================================== +INFO [2014-07-04 09:38:45:498] <1140> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 09:38:45:498] <1140> card Pay Start! +INFO [2014-07-04 09:38:45:498] <1140> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 09:38:45:498] <1140> StoreId:acetel +INFO [2014-07-04 09:38:45:498] <1140> log:true +INFO [2014-07-04 09:38:45:498] <1140> logLevel:INFO +INFO [2014-07-04 09:38:45:498] <1140> UseNetCancel:true +INFO [2014-07-04 09:38:45:498] <1140> Type:Pay +INFO [2014-07-04 09:38:45:498] <1140> RecvLen:7 +INFO [2014-07-04 09:38:45:499] <1140> AuthTy:card +INFO [2014-07-04 09:38:45:499] <1140> SubTy:isp +INFO [2014-07-04 09:38:45:499] <1140> OrdNo:20140704093707T56544 +INFO [2014-07-04 09:38:45:499] <1140> Amt:17800 +INFO [2014-07-04 09:38:45:499] <1140> UserEmail:test@empal.com +INFO [2014-07-04 09:38:45:499] <1140> ProdNm:ũ 帲 +INFO [2014-07-04 09:38:45:499] <1140> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 09:38:45:499] <1140> UserId:test11 +INFO [2014-07-04 09:38:45:499] <1140> OrdNm:̸ +INFO [2014-07-04 09:38:45:499] <1140> OrdPhone:111-1111-1111 +INFO [2014-07-04 09:38:45:499] <1140> OrdAddr:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:38:45:499] <1140> RcpNm:̸ +INFO [2014-07-04 09:38:45:499] <1140> RcpPhone:111-1111-1111 +INFO [2014-07-04 09:38:45:499] <1140> DlvAddr:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:38:45:500] <1140> Remark:½Ʈ +INFO [2014-07-04 09:38:45:500] <1140> DeviId:9000400001 +INFO [2014-07-04 09:38:45:500] <1140> AuthYn:N +INFO [2014-07-04 09:38:45:500] <1140> Instmt:00 +INFO [2014-07-04 09:38:45:500] <1140> UserIp:125.131.234.203 +INFO [2014-07-04 09:38:45:500] <1140> partial_mm:00 +INFO [2014-07-04 09:38:45:500] <1140> noIntMonth: +INFO [2014-07-04 09:38:45:500] <1140> KVP_CURRENCY:WON +INFO [2014-07-04 09:38:45:500] <1140> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 09:38:45:500] <1140> KVP_SESSIONKEY:F2Gl/9Mrj/7cwW6bgccIIVv0XaD4tTFj0qlxIjL1U4EhkoAkvkxNaz2JtJ6ilH7jxjr1W14oe3il3pUPDuv59UnjWQN4aj0hAcM9YQt9IEaeI3MGtzdrQyhQY5+gWnYVj9sE1QqWs0tnit+ONN9lIYuQXLPi0HNlECcGRJ4jMFs= +INFO [2014-07-04 09:38:45:500] <1140> KVP_ENCDATA:cdata=+oqm8iZ98FNFbTN1Q8INRO/CAOE7ZRvzT+hmh9xefp6Z0vJcONbpUaa8X22VmT1u4l9vYcfJ55MD1oumXcV61wloBl6XgyLAzIc660EGc1PmslWbt2FLks7hlnV0F4x9kyK7LUNLj6Zp1yQM+4yssI50LXlxWvbamtnPpwocLnwli8S9t6ab5fKhwa26rJlhEyuwRwAIArSII0ZJVZdcWWMl87tbLFl92tvU5jfxWUJlKRvi7OGxh4QjqdhikF8jpCavvVAZGbmmxeRkTSGvy6nhnv1wtla3f1XnzK+7DD49hiZUlOohG32WyGHD2mPGtyrMxZLBGj4usYP9xZx/kxp+uotW/8A7p51/gcReGl06rFruEoplem7t8BuaQcjAfitP7rCk/ocUWXlJ8aSx0VJ6lmqZistuP7RQ7DK7lSGZngXAPYIh9NdpqzTWOjMCoJjkGBXxEkrNyFPA1bGjKaDYBB690f01D93jIe5/dU6vNP+WvYlBbWbkoUb9MtWxeFOd14XG3a8wA8V2HUBLvaWYzHSMiBt80AsAtTlsKYw= +INFO [2014-07-04 09:38:45:500] <1140> KVP_CONAME: +INFO [2014-07-04 09:38:45:500] <1140> KVP_NOINT:0 +INFO [2014-07-04 09:38:45:500] <1140> KVP_QUOTA:00 +INFO [2014-07-04 09:38:45:501] <1140> CardNo: +INFO [2014-07-04 09:38:45:501] <1140> MPI_CAVV: +INFO [2014-07-04 09:38:45:501] <1140> MPI_ECI: +INFO [2014-07-04 09:38:45:501] <1140> MPI_MD64: +INFO [2014-07-04 09:38:45:501] <1140> ExpMon: +INFO [2014-07-04 09:38:45:501] <1140> ExpYear: +INFO [2014-07-04 09:38:45:501] <1140> Passwd: +INFO [2014-07-04 09:38:45:501] <1140> SocId: +INFO [2014-07-04 09:38:45:501] <1140> HP_SERVERINFO: +INFO [2014-07-04 09:38:45:501] <1140> HP_HANDPHONE: +INFO [2014-07-04 09:38:45:501] <1140> HP_COMPANY: +INFO [2014-07-04 09:38:45:501] <1140> HP_ID: +INFO [2014-07-04 09:38:45:501] <1140> HP_SUBID: +INFO [2014-07-04 09:38:45:501] <1140> HP_UNITType: +INFO [2014-07-04 09:38:45:502] <1140> HP_IDEN: +INFO [2014-07-04 09:38:45:502] <1140> HP_IPADDR: +INFO [2014-07-04 09:38:45:502] <1140> VIRTUAL_CENTERCD: +INFO [2014-07-04 09:38:45:502] <1140> VIRTUAL_DEPODT: +INFO [2014-07-04 09:38:45:502] <1140> ZuminCode: +INFO [2014-07-04 09:38:45:502] <1140> MallPage: +INFO [2014-07-04 09:38:45:502] <1140> VIRTUAL_NO: +INFO [2014-07-04 09:38:45:502] <1140> ES_SENDNO: +INFO [2014-07-04 09:38:45:502] <1140> Column1:222-2222-2222 +INFO [2014-07-04 09:38:45:502] <1140> Column2:222-2222-2222 +INFO [2014-07-04 09:38:45:502] <1140> Column3:0---cardnormal +INFO [2014-07-04 09:38:45:502] <1140> Make NetCancel ID Start +INFO [2014-07-04 09:38:45:503] <1140> AEGIS_ISP_acetel_20140704093845502664 +INFO [2014-07-04 09:38:45:503] <1140> Make NetCancel ID End +INFO [2014-07-04 09:38:45:503] <1140> Make NetCancelID OK +INFO [2014-07-04 09:38:45:503] <1140> Make Msg Start +INFO [2014-07-04 09:38:45:503] <1140> card-isp Make MSG OK +INFO [2014-07-04 09:38:45:503] <1140> Make Msg End +INFO [2014-07-04 09:38:45:503] <1140> Make Pay Msg OK +INFO [2014-07-04 09:38:45:503] <1140> Send & Recv Msg Start +INFO [2014-07-04 09:38:45:503] <1140> Send Data To PG Start [ +INFO [2014-07-04 09:38:45:503] <1140> 0:0010312plug15 +INFO [2014-07-04 09:38:45:503] <1140> 1:acetel +INFO [2014-07-04 09:38:45:503] <1140> 2:test11 +INFO [2014-07-04 09:38:45:503] <1140> 3:17800 +INFO [2014-07-04 09:38:45:503] <1140> 4:20140704093707T56544 +INFO [2014-07-04 09:38:45:503] <1140> 5:9000400001 +INFO [2014-07-04 09:38:45:503] <1140> 6:̸ +INFO [2014-07-04 09:38:45:503] <1140> 7:111-1111-1111 +INFO [2014-07-04 09:38:45:503] <1140> 8:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:38:45:503] <1140> 9:̸ +INFO [2014-07-04 09:38:45:503] <1140> 10:111-1111-1111 +INFO [2014-07-04 09:38:45:503] <1140> 11:½Ʈ +INFO [2014-07-04 09:38:45:503] <1140> 12:ũ 帲 +INFO [2014-07-04 09:38:45:503] <1140> 13:WON +INFO [2014-07-04 09:38:45:503] <1140> 14:00 +INFO [2014-07-04 09:38:45:503] <1140> 15: +INFO [2014-07-04 09:38:45:503] <1140> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 09:38:45:503] <1140> 17:F2Gl/9Mrj/7cwW6bgccIIVv0XaD4tTFj0qlxIjL1U4EhkoAkvkxNaz2JtJ6ilH7jxjr1W14oe3il3pUPDuv59UnjWQN4aj0hAcM9YQt9IEaeI3MGtzdrQyhQY5+gWnYVj9sE1QqWs0tnit+ONN9lIYuQXLPi0HNlECcGRJ4jMFs= +INFO [2014-07-04 09:38:45:503] <1140> 18:cdata=+oqm8iZ98FNFbTN1Q8INRO/CAOE7ZRvzT+hmh9xefp6Z0vJcONbpUaa8X22VmT1u4l9vYcfJ55MD1oumXcV61wloBl6XgyLAzIc660EGc1PmslWbt2FLks7hlnV0F4x9kyK7LUNLj6Zp1yQM+4yssI50LXlxWvbamtnPpwocLnwli8S9t6ab5fKhwa26rJlhEyuwRwAIArSII0ZJVZdcWWMl87tbLFl92tvU5jfxWUJlKRvi7OGxh4QjqdhikF8jpCavvVAZGbmmxeRkTSGvy6nhnv1wtla3f1XnzK+7DD49hiZUlOohG32WyGHD2mPGtyrMxZLBGj4usYP9xZx/kxp+uotW/8A7p51/gcReGl06rFruEoplem7t8BuaQcjAfitP7rCk/ocUWXlJ8aSx0VJ6lmqZistuP7RQ7DK7lSGZngXAPYIh9NdpqzTWOjMCoJjkGBXxEkrNyFPA1bGjKaDYBB690f01D93jIe5/dU6vNP+WvYlBbWbkoUb9MtWxeFOd14XG3a8wA8V2HUBLvaWYzHSMiBt80AsAtTlsKYw= +INFO [2014-07-04 09:38:45:503] <1140> 19: +INFO [2014-07-04 09:38:45:503] <1140> 20:125.131.234.203 +INFO [2014-07-04 09:38:45:503] <1140> 21:test@empal.com +INFO [2014-07-04 09:38:45:503] <1140> 22:AEGIS_ISP_acetel_20140704093845502664 +INFO [2014-07-04 09:38:45:503] <1140> 23: +INFO [2014-07-04 09:38:45:504] <1140> ] Send Data To PG End +INFO [2014-07-04 09:38:45:504] <1140> SendMsg : [0010312plug15|acetel|test11|17800|20140704093707T56544|9000400001|̸|111-1111-1111|135-722--- Ż絿 ---1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|F2Gl/9Mrj/7cwW6bgccIIVv0XaD4tTFj0qlxIjL1U4EhkoAkvkxNaz2JtJ6ilH7jxjr1W14oe3il3pUPDuv59UnjWQN4aj0hAcM9YQt9IEaeI3MGtzdrQyhQY5+gWnYVj9sE1QqWs0tnit+ONN9lIYuQXLPi0HNlECcGRJ4jMFs=|cdata=+oqm8iZ98FNFbTN1Q8INRO/CAOE7ZRvzT+hmh9xefp6Z0vJcONbpUaa8X22VmT1u4l9vYcfJ55MD1oumXcV61wloBl6XgyLAzIc660EGc1PmslWbt2FLks7hlnV0F4x9kyK7LUNLj6Zp1yQM+4yssI50LXlxWvbamtnPpwocLnwli8S9t6ab5fKhwa26rJlhEyuwRwAIArSII0ZJVZdcWWMl87tbLFl92tvU5jfxWUJlKRvi7OGxh4QjqdhikF8jpCavvVAZGbmmxeRkTSGvy6nhnv1wtla3f1XnzK+7DD49hiZUlOohG32WyGHD2mPGtyrMxZLBGj4usYP9xZx/kxp+uotW/8A7p51/gcReGl06rFruEoplem7t8BuaQcjAfitP7rCk/ocUWXlJ8aSx0VJ6lmqZistuP7RQ7DK7lSGZngXAPYIh9NdpqzTWOjMCoJjkGBXxEkrNyFPA1bGjKaDYBB690f01D93jIe5/dU6vNP+WvYlBbWbkoUb9MtWxeFOd14XG3a8wA8V2HUBLvaWYzHSMiBt80AsAtTlsKYw=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704093845502664|] +INFO [2014-07-04 09:38:45:504] <1140> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 09:38:45:509] <1140> Socket Open OK +INFO [2014-07-04 09:38:48:76] <1140> RecvMsg Length : [000083] +INFO [2014-07-04 09:38:48:76] <1140> RecvMsg : [acetel|0610|101342|55235249|17800|y|:20140704093707T56544|20140704093851|0100| +] +INFO [2014-07-04 09:38:48:76] <1140> Socket Close OK +INFO [2014-07-04 09:38:48:76] <1140> RecvMsg Length Check OK +INFO [2014-07-04 09:38:48:76] <1140> Send & Recv Msg End +INFO [2014-07-04 09:38:48:76] <1140> Send & Recv Msg OK +INFO [2014-07-04 09:38:48:76] <1140> Parse Msg Start +INFO [2014-07-04 09:38:48:77] <1140> card-isp RECV MSG Parsing OK +INFO [2014-07-04 09:38:48:77] <1140> Parse Msg End +INFO [2014-07-04 09:38:48:77] <1140> Msg Parsing OK +INFO [2014-07-04 09:38:48:77] <1140> card Pay Result Value [ +INFO [2014-07-04 09:38:48:77] <1140> NetCancID:AEGIS_ISP_acetel_20140704093845502664 +INFO [2014-07-04 09:38:48:77] <1140> rStoreId:acetel +INFO [2014-07-04 09:38:48:77] <1140> rBusiCd:0610 +INFO [2014-07-04 09:38:48:77] <1140> rOrdNo:20140704093707T56544 +INFO [2014-07-04 09:38:48:77] <1140> rDealNo:101342 +INFO [2014-07-04 09:38:48:77] <1140> rApprNo:55235249 +INFO [2014-07-04 09:38:48:77] <1140> rProdNm:ũ 帲 +INFO [2014-07-04 09:38:48:77] <1140> rAmt:17800 +INFO [2014-07-04 09:38:48:77] <1140> rInstmt:00 +INFO [2014-07-04 09:38:48:77] <1140> rSuccYn:y +INFO [2014-07-04 09:38:48:77] <1140> rResMsg::20140704093707T56544 +INFO [2014-07-04 09:38:48:77] <1140> rApprTm:20140704093851 +INFO [2014-07-04 09:38:48:77] <1140> rCardCd:0100 +INFO [2014-07-04 09:38:48:77] <1140> ] +INFO [2014-07-04 09:38:48:77] <1140> END :20140704093707T56544 Transaction time:[2.592sec] +INFO [2014-07-04 09:38:48:77] <1140> =============================================================== +INFO [2014-07-04 09:51:02:386] <1840> =============================================================== +INFO [2014-07-04 09:51:02:386] <1840> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 09:51:02:386] <1840> card Pay Start! +INFO [2014-07-04 09:51:02:386] <1840> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 09:51:02:386] <1840> StoreId:acetel +INFO [2014-07-04 09:51:02:386] <1840> log:true +INFO [2014-07-04 09:51:02:386] <1840> logLevel:INFO +INFO [2014-07-04 09:51:02:386] <1840> UseNetCancel:true +INFO [2014-07-04 09:51:02:386] <1840> Type:Pay +INFO [2014-07-04 09:51:02:386] <1840> RecvLen:7 +INFO [2014-07-04 09:51:02:387] <1840> AuthTy:card +INFO [2014-07-04 09:51:02:387] <1840> SubTy:isp +INFO [2014-07-04 09:51:02:387] <1840> OrdNo:20140704094935T17521 +INFO [2014-07-04 09:51:02:387] <1840> Amt:27250 +INFO [2014-07-04 09:51:02:387] <1840> UserEmail:test@empal.com +INFO [2014-07-04 09:51:02:387] <1840> ProdNm: 1ǽ +INFO [2014-07-04 09:51:02:387] <1840> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 09:51:02:387] <1840> UserId:test11 +INFO [2014-07-04 09:51:02:387] <1840> OrdNm:̸ +INFO [2014-07-04 09:51:02:387] <1840> OrdPhone:111-1111-1111 +INFO [2014-07-04 09:51:02:387] <1840> OrdAddr:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:51:02:387] <1840> RcpNm:̸ +INFO [2014-07-04 09:51:02:387] <1840> RcpPhone:111-1111-1111 +INFO [2014-07-04 09:51:02:387] <1840> DlvAddr:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:51:02:387] <1840> Remark:½Ʈ +INFO [2014-07-04 09:51:02:387] <1840> DeviId:9000400001 +INFO [2014-07-04 09:51:02:388] <1840> AuthYn:N +INFO [2014-07-04 09:51:02:388] <1840> Instmt:00 +INFO [2014-07-04 09:51:02:388] <1840> UserIp:125.131.234.203 +INFO [2014-07-04 09:51:02:388] <1840> partial_mm:00 +INFO [2014-07-04 09:51:02:388] <1840> noIntMonth: +INFO [2014-07-04 09:51:02:388] <1840> KVP_CURRENCY:WON +INFO [2014-07-04 09:51:02:388] <1840> KVP_CARDCODE:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 09:51:02:388] <1840> KVP_SESSIONKEY:BbLB1oTctNN98bR+iUSri5gsAy0sxvEjA6RoX2pMTBRwkOJu4E/6R2qdj0i1YP0acccAZZnoAK2h/DEIDZSN1liTMXZ7dPsrJJBRpJKuCsxoPidwjHhi3NxvqsdHbzd1S7XahTB3WLxFz0Js/nTgIFJVztAfmiys8kdw86wxm6U= +INFO [2014-07-04 09:51:02:388] <1840> KVP_ENCDATA:cdata=oUe7RyHlBDqdhfyubeX123UEJOe0s49tQkEZc9gzzJjjvgYacx2I4zzO8GWbPJYCtI52mvjsVUzFKX9yHtr1WjTwByoA15vlknKCi6IAyGnxasn4dZ4MJOBirBL6yekXHDtrv0XaOxa5GhygoibukjtBNAfZRBuunFU/jT/y5vcEDTDyO4SR9BL7D9wGXw6DCfxqP7tmoZ9FGpRjutJJQjXtfxFZaxosEFblevDxfOhmo05pWtkfQKZamJ+4n9WBRXQ5wMoDB9Eg5Psjpjelmy+kohi2+drRpimwjnZRo+pzlObO3ggw1bkvNqxCY4MrwAvY430hJkFGcRkpJeV916HxeUIHBt42QAGwtO7hAQGcijAWtKiK1A21gqsvETvgyRwZYqdCMsE13Bcr38QWYiyeughRM/Q46pzwitp/9p0Dv/Povbdvw0I+5R1mzdpP3szY4D4aMOT8S+MSKzF12J+Klh+egB5g80p/yddNibGIOPq0NwORcPohasCUdhWv9+mrEim8IgV7UWHdtN3sNLu8ERgimoeYflMxKOUPaxbYOSgD+N5OraL3plNOQ7w2 +INFO [2014-07-04 09:51:02:388] <1840> KVP_CONAME: +INFO [2014-07-04 09:51:02:388] <1840> KVP_NOINT:0 +INFO [2014-07-04 09:51:02:388] <1840> KVP_QUOTA:00 +INFO [2014-07-04 09:51:02:388] <1840> CardNo: +INFO [2014-07-04 09:51:02:388] <1840> MPI_CAVV: +INFO [2014-07-04 09:51:02:388] <1840> MPI_ECI: +INFO [2014-07-04 09:51:02:388] <1840> MPI_MD64: +INFO [2014-07-04 09:51:02:389] <1840> ExpMon: +INFO [2014-07-04 09:51:02:389] <1840> ExpYear: +INFO [2014-07-04 09:51:02:389] <1840> Passwd: +INFO [2014-07-04 09:51:02:389] <1840> SocId: +INFO [2014-07-04 09:51:02:389] <1840> HP_SERVERINFO: +INFO [2014-07-04 09:51:02:389] <1840> HP_HANDPHONE: +INFO [2014-07-04 09:51:02:389] <1840> HP_COMPANY: +INFO [2014-07-04 09:51:02:389] <1840> HP_ID: +INFO [2014-07-04 09:51:02:389] <1840> HP_SUBID: +INFO [2014-07-04 09:51:02:389] <1840> HP_UNITType: +INFO [2014-07-04 09:51:02:389] <1840> HP_IDEN: +INFO [2014-07-04 09:51:02:389] <1840> HP_IPADDR: +INFO [2014-07-04 09:51:02:389] <1840> VIRTUAL_CENTERCD: +INFO [2014-07-04 09:51:02:389] <1840> VIRTUAL_DEPODT: +INFO [2014-07-04 09:51:02:389] <1840> ZuminCode: +INFO [2014-07-04 09:51:02:390] <1840> MallPage: +INFO [2014-07-04 09:51:02:390] <1840> VIRTUAL_NO: +INFO [2014-07-04 09:51:02:390] <1840> ES_SENDNO: +INFO [2014-07-04 09:51:02:390] <1840> Column1:222-2222-2222 +INFO [2014-07-04 09:51:02:390] <1840> Column2:222-2222-2222 +INFO [2014-07-04 09:51:02:390] <1840> Column3:0---cardnormal +INFO [2014-07-04 09:51:02:390] <1840> Make NetCancel ID Start +INFO [2014-07-04 09:51:02:390] <1840> AEGIS_ISP_acetel_20140704095102390233 +INFO [2014-07-04 09:51:02:390] <1840> Make NetCancel ID End +INFO [2014-07-04 09:51:02:390] <1840> Make NetCancelID OK +INFO [2014-07-04 09:51:02:390] <1840> Make Msg Start +INFO [2014-07-04 09:51:02:390] <1840> card-isp Make MSG OK +INFO [2014-07-04 09:51:02:391] <1840> Make Msg End +INFO [2014-07-04 09:51:02:391] <1840> Make Pay Msg OK +INFO [2014-07-04 09:51:02:391] <1840> Send & Recv Msg Start +INFO [2014-07-04 09:51:02:391] <1840> Send Data To PG Start [ +INFO [2014-07-04 09:51:02:391] <1840> 0:0010562plug15 +INFO [2014-07-04 09:51:02:391] <1840> 1:acetel +INFO [2014-07-04 09:51:02:391] <1840> 2:test11 +INFO [2014-07-04 09:51:02:391] <1840> 3:27250 +INFO [2014-07-04 09:51:02:391] <1840> 4:20140704094935T17521 +INFO [2014-07-04 09:51:02:391] <1840> 5:9000400001 +INFO [2014-07-04 09:51:02:391] <1840> 6:̸ +INFO [2014-07-04 09:51:02:391] <1840> 7:111-1111-1111 +INFO [2014-07-04 09:51:02:391] <1840> 8:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:51:02:391] <1840> 9:̸ +INFO [2014-07-04 09:51:02:391] <1840> 10:111-1111-1111 +INFO [2014-07-04 09:51:02:391] <1840> 11:½Ʈ +INFO [2014-07-04 09:51:02:391] <1840> 12: 1ǽ +INFO [2014-07-04 09:51:02:391] <1840> 13:WON +INFO [2014-07-04 09:51:02:391] <1840> 14:00 +INFO [2014-07-04 09:51:02:391] <1840> 15: +INFO [2014-07-04 09:51:02:391] <1840> 16:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 09:51:02:391] <1840> 17:BbLB1oTctNN98bR+iUSri5gsAy0sxvEjA6RoX2pMTBRwkOJu4E/6R2qdj0i1YP0acccAZZnoAK2h/DEIDZSN1liTMXZ7dPsrJJBRpJKuCsxoPidwjHhi3NxvqsdHbzd1S7XahTB3WLxFz0Js/nTgIFJVztAfmiys8kdw86wxm6U= +INFO [2014-07-04 09:51:02:391] <1840> 18:cdata=oUe7RyHlBDqdhfyubeX123UEJOe0s49tQkEZc9gzzJjjvgYacx2I4zzO8GWbPJYCtI52mvjsVUzFKX9yHtr1WjTwByoA15vlknKCi6IAyGnxasn4dZ4MJOBirBL6yekXHDtrv0XaOxa5GhygoibukjtBNAfZRBuunFU/jT/y5vcEDTDyO4SR9BL7D9wGXw6DCfxqP7tmoZ9FGpRjutJJQjXtfxFZaxosEFblevDxfOhmo05pWtkfQKZamJ+4n9WBRXQ5wMoDB9Eg5Psjpjelmy+kohi2+drRpimwjnZRo+pzlObO3ggw1bkvNqxCY4MrwAvY430hJkFGcRkpJeV916HxeUIHBt42QAGwtO7hAQGcijAWtKiK1A21gqsvETvgyRwZYqdCMsE13Bcr38QWYiyeughRM/Q46pzwitp/9p0Dv/Povbdvw0I+5R1mzdpP3szY4D4aMOT8S+MSKzF12J+Klh+egB5g80p/yddNibGIOPq0NwORcPohasCUdhWv9+mrEim8IgV7UWHdtN3sNLu8ERgimoeYflMxKOUPaxbYOSgD+N5OraL3plNOQ7w2 +INFO [2014-07-04 09:51:02:391] <1840> 19: +INFO [2014-07-04 09:51:02:391] <1840> 20:125.131.234.203 +INFO [2014-07-04 09:51:02:391] <1840> 21:test@empal.com +INFO [2014-07-04 09:51:02:391] <1840> 22:AEGIS_ISP_acetel_20140704095102390233 +INFO [2014-07-04 09:51:02:391] <1840> 23: +INFO [2014-07-04 09:51:02:391] <1840> ] Send Data To PG End +INFO [2014-07-04 09:51:02:391] <1840> SendMsg : [0010562plug15|acetel|test11|27250|20140704094935T17521|9000400001|̸|111-1111-1111|135-722--- Ż絿 ---1234|̸|111-1111-1111|½Ʈ| 1ǽ|WON|00||000100202428681;125.131.234.203;N;;27250;;|BbLB1oTctNN98bR+iUSri5gsAy0sxvEjA6RoX2pMTBRwkOJu4E/6R2qdj0i1YP0acccAZZnoAK2h/DEIDZSN1liTMXZ7dPsrJJBRpJKuCsxoPidwjHhi3NxvqsdHbzd1S7XahTB3WLxFz0Js/nTgIFJVztAfmiys8kdw86wxm6U=|cdata=oUe7RyHlBDqdhfyubeX123UEJOe0s49tQkEZc9gzzJjjvgYacx2I4zzO8GWbPJYCtI52mvjsVUzFKX9yHtr1WjTwByoA15vlknKCi6IAyGnxasn4dZ4MJOBirBL6yekXHDtrv0XaOxa5GhygoibukjtBNAfZRBuunFU/jT/y5vcEDTDyO4SR9BL7D9wGXw6DCfxqP7tmoZ9FGpRjutJJQjXtfxFZaxosEFblevDxfOhmo05pWtkfQKZamJ+4n9WBRXQ5wMoDB9Eg5Psjpjelmy+kohi2+drRpimwjnZRo+pzlObO3ggw1bkvNqxCY4MrwAvY430hJkFGcRkpJeV916HxeUIHBt42QAGwtO7hAQGcijAWtKiK1A21gqsvETvgyRwZYqdCMsE13Bcr38QWYiyeughRM/Q46pzwitp/9p0Dv/Povbdvw0I+5R1mzdpP3szY4D4aMOT8S+MSKzF12J+Klh+egB5g80p/yddNibGIOPq0NwORcPohasCUdhWv9+mrEim8IgV7UWHdtN3sNLu8ERgimoeYflMxKOUPaxbYOSgD+N5OraL3plNOQ7w2||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704095102390233|] +INFO [2014-07-04 09:51:02:392] <1840> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 09:51:02:396] <1840> Socket Open OK +INFO [2014-07-04 09:51:04:899] <1840> RecvMsg Length : [000083] +INFO [2014-07-04 09:51:04:899] <1840> RecvMsg : [acetel|0610|101429|55263478|27250|y|:20140704094935T17521|20140704095014|0100| +] +INFO [2014-07-04 09:51:04:899] <1840> Socket Close OK +INFO [2014-07-04 09:51:04:899] <1840> RecvMsg Length Check OK +INFO [2014-07-04 09:51:04:899] <1840> Send & Recv Msg End +INFO [2014-07-04 09:51:04:899] <1840> Send & Recv Msg OK +INFO [2014-07-04 09:51:04:899] <1840> Parse Msg Start +INFO [2014-07-04 09:51:04:899] <1840> card-isp RECV MSG Parsing OK +INFO [2014-07-04 09:51:04:899] <1840> Parse Msg End +INFO [2014-07-04 09:51:04:899] <1840> Msg Parsing OK +INFO [2014-07-04 09:51:04:900] <1840> card Pay Result Value [ +INFO [2014-07-04 09:51:04:900] <1840> NetCancID:AEGIS_ISP_acetel_20140704095102390233 +INFO [2014-07-04 09:51:04:900] <1840> rStoreId:acetel +INFO [2014-07-04 09:51:04:900] <1840> rBusiCd:0610 +INFO [2014-07-04 09:51:04:900] <1840> rOrdNo:20140704094935T17521 +INFO [2014-07-04 09:51:04:900] <1840> rDealNo:101429 +INFO [2014-07-04 09:51:04:900] <1840> rApprNo:55263478 +INFO [2014-07-04 09:51:04:900] <1840> rProdNm: 1ǽ +INFO [2014-07-04 09:51:04:900] <1840> rAmt:27250 +INFO [2014-07-04 09:51:04:900] <1840> rInstmt:00 +INFO [2014-07-04 09:51:04:900] <1840> rSuccYn:y +INFO [2014-07-04 09:51:04:900] <1840> rResMsg::20140704094935T17521 +INFO [2014-07-04 09:51:04:900] <1840> rApprTm:20140704095014 +INFO [2014-07-04 09:51:04:900] <1840> rCardCd:0100 +INFO [2014-07-04 09:51:04:901] <1840> ] +INFO [2014-07-04 09:51:04:901] <1840> END :20140704094935T17521 Transaction time:[2.515sec] +INFO [2014-07-04 09:51:04:901] <1840> =============================================================== +INFO [2014-07-04 09:53:23:731] <2552> =============================================================== +INFO [2014-07-04 09:53:23:731] <2552> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 09:53:23:731] <2552> card Pay Start! +INFO [2014-07-04 09:53:23:731] <2552> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 09:53:23:731] <2552> StoreId:acetel +INFO [2014-07-04 09:53:23:731] <2552> log:true +INFO [2014-07-04 09:53:23:731] <2552> logLevel:INFO +INFO [2014-07-04 09:53:23:731] <2552> UseNetCancel:true +INFO [2014-07-04 09:53:23:731] <2552> Type:Pay +INFO [2014-07-04 09:53:23:731] <2552> RecvLen:7 +INFO [2014-07-04 09:53:23:731] <2552> AuthTy:card +INFO [2014-07-04 09:53:23:732] <2552> SubTy:isp +INFO [2014-07-04 09:53:23:732] <2552> OrdNo:20140704094935T17521 +INFO [2014-07-04 09:53:23:732] <2552> Amt:27250 +INFO [2014-07-04 09:53:23:732] <2552> UserEmail:test@empal.com +INFO [2014-07-04 09:53:23:732] <2552> ProdNm: 1ǽ +INFO [2014-07-04 09:53:23:732] <2552> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 09:53:23:732] <2552> UserId:test11 +INFO [2014-07-04 09:53:23:732] <2552> OrdNm:̸ +INFO [2014-07-04 09:53:23:732] <2552> OrdPhone:111-1111-1111 +INFO [2014-07-04 09:53:23:732] <2552> OrdAddr:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:53:23:732] <2552> RcpNm:̸ +INFO [2014-07-04 09:53:23:732] <2552> RcpPhone:111-1111-1111 +INFO [2014-07-04 09:53:23:732] <2552> DlvAddr:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:53:23:732] <2552> Remark:½Ʈ +INFO [2014-07-04 09:53:23:732] <2552> DeviId:9000400001 +INFO [2014-07-04 09:53:23:732] <2552> AuthYn:N +INFO [2014-07-04 09:53:23:732] <2552> Instmt:00 +INFO [2014-07-04 09:53:23:732] <2552> UserIp:125.131.234.203 +INFO [2014-07-04 09:53:23:732] <2552> partial_mm:00 +INFO [2014-07-04 09:53:23:733] <2552> noIntMonth: +INFO [2014-07-04 09:53:23:733] <2552> KVP_CURRENCY:WON +INFO [2014-07-04 09:53:23:733] <2552> KVP_CARDCODE:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 09:53:23:733] <2552> KVP_SESSIONKEY:BbLB1oTctNN98bR+iUSri5gsAy0sxvEjA6RoX2pMTBRwkOJu4E/6R2qdj0i1YP0acccAZZnoAK2h/DEIDZSN1liTMXZ7dPsrJJBRpJKuCsxoPidwjHhi3NxvqsdHbzd1S7XahTB3WLxFz0Js/nTgIFJVztAfmiys8kdw86wxm6U= +INFO [2014-07-04 09:53:23:733] <2552> KVP_ENCDATA:cdata=oUe7RyHlBDqdhfyubeX123UEJOe0s49tQkEZc9gzzJjjvgYacx2I4zzO8GWbPJYCtI52mvjsVUzFKX9yHtr1WjTwByoA15vlknKCi6IAyGnxasn4dZ4MJOBirBL6yekXHDtrv0XaOxa5GhygoibukjtBNAfZRBuunFU/jT/y5vcEDTDyO4SR9BL7D9wGXw6DCfxqP7tmoZ9FGpRjutJJQjXtfxFZaxosEFblevDxfOhmo05pWtkfQKZamJ+4n9WBRXQ5wMoDB9Eg5Psjpjelmy+kohi2+drRpimwjnZRo+pzlObO3ggw1bkvNqxCY4MrwAvY430hJkFGcRkpJeV916HxeUIHBt42QAGwtO7hAQGcijAWtKiK1A21gqsvETvgyRwZYqdCMsE13Bcr38QWYiyeughRM/Q46pzwitp/9p0Dv/Povbdvw0I+5R1mzdpP3szY4D4aMOT8S+MSKzF12J+Klh+egB5g80p/yddNibGIOPq0NwORcPohasCUdhWv9+mrEim8IgV7UWHdtN3sNLu8ERgimoeYflMxKOUPaxbYOSgD+N5OraL3plNOQ7w2 +INFO [2014-07-04 09:53:23:733] <2552> KVP_CONAME: +INFO [2014-07-04 09:53:23:733] <2552> KVP_NOINT:0 +INFO [2014-07-04 09:53:23:733] <2552> KVP_QUOTA:00 +INFO [2014-07-04 09:53:23:733] <2552> CardNo: +INFO [2014-07-04 09:53:23:733] <2552> MPI_CAVV: +INFO [2014-07-04 09:53:23:733] <2552> MPI_ECI: +INFO [2014-07-04 09:53:23:733] <2552> MPI_MD64: +INFO [2014-07-04 09:53:23:733] <2552> ExpMon: +INFO [2014-07-04 09:53:23:733] <2552> ExpYear: +INFO [2014-07-04 09:53:23:734] <2552> Passwd: +INFO [2014-07-04 09:53:23:734] <2552> SocId: +INFO [2014-07-04 09:53:23:734] <2552> HP_SERVERINFO: +INFO [2014-07-04 09:53:23:734] <2552> HP_HANDPHONE: +INFO [2014-07-04 09:53:23:734] <2552> HP_COMPANY: +INFO [2014-07-04 09:53:23:734] <2552> HP_ID: +INFO [2014-07-04 09:53:23:734] <2552> HP_SUBID: +INFO [2014-07-04 09:53:23:734] <2552> HP_UNITType: +INFO [2014-07-04 09:53:23:734] <2552> HP_IDEN: +INFO [2014-07-04 09:53:23:734] <2552> HP_IPADDR: +INFO [2014-07-04 09:53:23:734] <2552> VIRTUAL_CENTERCD: +INFO [2014-07-04 09:53:23:734] <2552> VIRTUAL_DEPODT: +INFO [2014-07-04 09:53:23:734] <2552> ZuminCode: +INFO [2014-07-04 09:53:23:734] <2552> MallPage: +INFO [2014-07-04 09:53:23:734] <2552> VIRTUAL_NO: +INFO [2014-07-04 09:53:23:734] <2552> ES_SENDNO: +INFO [2014-07-04 09:53:23:735] <2552> Column1:222-2222-2222 +INFO [2014-07-04 09:53:23:735] <2552> Column2:222-2222-2222 +INFO [2014-07-04 09:53:23:735] <2552> Column3:0---cardnormal +INFO [2014-07-04 09:53:23:735] <2552> Make NetCancel ID Start +INFO [2014-07-04 09:53:23:735] <2552> AEGIS_ISP_acetel_20140704095323735921 +INFO [2014-07-04 09:53:23:735] <2552> Make NetCancel ID End +INFO [2014-07-04 09:53:23:735] <2552> Make NetCancelID OK +INFO [2014-07-04 09:53:23:735] <2552> Make Msg Start +INFO [2014-07-04 09:53:23:735] <2552> card-isp Make MSG OK +INFO [2014-07-04 09:53:23:735] <2552> Make Msg End +INFO [2014-07-04 09:53:23:735] <2552> Make Pay Msg OK +INFO [2014-07-04 09:53:23:736] <2552> Send & Recv Msg Start +INFO [2014-07-04 09:53:23:736] <2552> Send Data To PG Start [ +INFO [2014-07-04 09:53:23:736] <2552> 0:0010562plug15 +INFO [2014-07-04 09:53:23:736] <2552> 1:acetel +INFO [2014-07-04 09:53:23:736] <2552> 2:test11 +INFO [2014-07-04 09:53:23:736] <2552> 3:27250 +INFO [2014-07-04 09:53:23:736] <2552> 4:20140704094935T17521 +INFO [2014-07-04 09:53:23:736] <2552> 5:9000400001 +INFO [2014-07-04 09:53:23:736] <2552> 6:̸ +INFO [2014-07-04 09:53:23:736] <2552> 7:111-1111-1111 +INFO [2014-07-04 09:53:23:736] <2552> 8:135-722--- Ż絿 ---1234 +INFO [2014-07-04 09:53:23:736] <2552> 9:̸ +INFO [2014-07-04 09:53:23:736] <2552> 10:111-1111-1111 +INFO [2014-07-04 09:53:23:736] <2552> 11:½Ʈ +INFO [2014-07-04 09:53:23:736] <2552> 12: 1ǽ +INFO [2014-07-04 09:53:23:736] <2552> 13:WON +INFO [2014-07-04 09:53:23:736] <2552> 14:00 +INFO [2014-07-04 09:53:23:736] <2552> 15: +INFO [2014-07-04 09:53:23:736] <2552> 16:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 09:53:23:736] <2552> 17:BbLB1oTctNN98bR+iUSri5gsAy0sxvEjA6RoX2pMTBRwkOJu4E/6R2qdj0i1YP0acccAZZnoAK2h/DEIDZSN1liTMXZ7dPsrJJBRpJKuCsxoPidwjHhi3NxvqsdHbzd1S7XahTB3WLxFz0Js/nTgIFJVztAfmiys8kdw86wxm6U= +INFO [2014-07-04 09:53:23:736] <2552> 18:cdata=oUe7RyHlBDqdhfyubeX123UEJOe0s49tQkEZc9gzzJjjvgYacx2I4zzO8GWbPJYCtI52mvjsVUzFKX9yHtr1WjTwByoA15vlknKCi6IAyGnxasn4dZ4MJOBirBL6yekXHDtrv0XaOxa5GhygoibukjtBNAfZRBuunFU/jT/y5vcEDTDyO4SR9BL7D9wGXw6DCfxqP7tmoZ9FGpRjutJJQjXtfxFZaxosEFblevDxfOhmo05pWtkfQKZamJ+4n9WBRXQ5wMoDB9Eg5Psjpjelmy+kohi2+drRpimwjnZRo+pzlObO3ggw1bkvNqxCY4MrwAvY430hJkFGcRkpJeV916HxeUIHBt42QAGwtO7hAQGcijAWtKiK1A21gqsvETvgyRwZYqdCMsE13Bcr38QWYiyeughRM/Q46pzwitp/9p0Dv/Povbdvw0I+5R1mzdpP3szY4D4aMOT8S+MSKzF12J+Klh+egB5g80p/yddNibGIOPq0NwORcPohasCUdhWv9+mrEim8IgV7UWHdtN3sNLu8ERgimoeYflMxKOUPaxbYOSgD+N5OraL3plNOQ7w2 +INFO [2014-07-04 09:53:23:736] <2552> 19: +INFO [2014-07-04 09:53:23:736] <2552> 20:125.131.234.203 +INFO [2014-07-04 09:53:23:736] <2552> 21:test@empal.com +INFO [2014-07-04 09:53:23:736] <2552> 22:AEGIS_ISP_acetel_20140704095323735921 +INFO [2014-07-04 09:53:23:736] <2552> 23: +INFO [2014-07-04 09:53:23:736] <2552> ] Send Data To PG End +INFO [2014-07-04 09:53:23:736] <2552> SendMsg : [0010562plug15|acetel|test11|27250|20140704094935T17521|9000400001|̸|111-1111-1111|135-722--- Ż絿 ---1234|̸|111-1111-1111|½Ʈ| 1ǽ|WON|00||000100202428681;125.131.234.203;N;;27250;;|BbLB1oTctNN98bR+iUSri5gsAy0sxvEjA6RoX2pMTBRwkOJu4E/6R2qdj0i1YP0acccAZZnoAK2h/DEIDZSN1liTMXZ7dPsrJJBRpJKuCsxoPidwjHhi3NxvqsdHbzd1S7XahTB3WLxFz0Js/nTgIFJVztAfmiys8kdw86wxm6U=|cdata=oUe7RyHlBDqdhfyubeX123UEJOe0s49tQkEZc9gzzJjjvgYacx2I4zzO8GWbPJYCtI52mvjsVUzFKX9yHtr1WjTwByoA15vlknKCi6IAyGnxasn4dZ4MJOBirBL6yekXHDtrv0XaOxa5GhygoibukjtBNAfZRBuunFU/jT/y5vcEDTDyO4SR9BL7D9wGXw6DCfxqP7tmoZ9FGpRjutJJQjXtfxFZaxosEFblevDxfOhmo05pWtkfQKZamJ+4n9WBRXQ5wMoDB9Eg5Psjpjelmy+kohi2+drRpimwjnZRo+pzlObO3ggw1bkvNqxCY4MrwAvY430hJkFGcRkpJeV916HxeUIHBt42QAGwtO7hAQGcijAWtKiK1A21gqsvETvgyRwZYqdCMsE13Bcr38QWYiyeughRM/Q46pzwitp/9p0Dv/Povbdvw0I+5R1mzdpP3szY4D4aMOT8S+MSKzF12J+Klh+egB5g80p/yddNibGIOPq0NwORcPohasCUdhWv9+mrEim8IgV7UWHdtN3sNLu8ERgimoeYflMxKOUPaxbYOSgD+N5OraL3plNOQ7w2||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704095323735921|] +INFO [2014-07-04 09:53:23:736] <2552> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 09:53:23:740] <2552> Socket Open OK +INFO [2014-07-04 09:53:24:834] <2552> RecvMsg Length : [000080] +INFO [2014-07-04 09:53:24:834] <2552> RecvMsg : [acetel|0610||||n|ߺ ǽɵ. (ִ 1) ٽ õϿ ֽʽÿ.||| +] +INFO [2014-07-04 09:53:24:834] <2552> Socket Close OK +INFO [2014-07-04 09:53:24:834] <2552> RecvMsg Length Check OK +INFO [2014-07-04 09:53:24:834] <2552> Send & Recv Msg End +INFO [2014-07-04 09:53:24:834] <2552> Send & Recv Msg OK +INFO [2014-07-04 09:53:24:834] <2552> Parse Msg Start +INFO [2014-07-04 09:53:24:834] <2552> card-isp RECV MSG Parsing OK +INFO [2014-07-04 09:53:24:834] <2552> Parse Msg End +INFO [2014-07-04 09:53:24:835] <2552> Msg Parsing OK +INFO [2014-07-04 09:53:24:835] <2552> card Pay Result Value [ +INFO [2014-07-04 09:53:24:835] <2552> NetCancID:AEGIS_ISP_acetel_20140704095323735921 +INFO [2014-07-04 09:53:24:835] <2552> rStoreId:acetel +INFO [2014-07-04 09:53:24:835] <2552> rBusiCd:0610 +INFO [2014-07-04 09:53:24:835] <2552> rOrdNo:20140704094935T17521 +INFO [2014-07-04 09:53:24:835] <2552> rDealNo: +INFO [2014-07-04 09:53:24:835] <2552> rApprNo: +INFO [2014-07-04 09:53:24:835] <2552> rProdNm: 1ǽ +INFO [2014-07-04 09:53:24:835] <2552> rAmt: +INFO [2014-07-04 09:53:24:835] <2552> rInstmt:00 +INFO [2014-07-04 09:53:24:835] <2552> rSuccYn:n +INFO [2014-07-04 09:53:24:835] <2552> rResMsg:ߺ ǽɵ. (ִ 1) ٽ õϿ ֽʽÿ. +INFO [2014-07-04 09:53:24:835] <2552> rApprTm: +INFO [2014-07-04 09:53:24:836] <2552> rCardCd: +INFO [2014-07-04 09:53:24:836] <2552> ] +INFO [2014-07-04 09:53:24:836] <2552> END ߺ ǽɵ. (ִ 1) ٽ õϿ ֽʽÿ. Transaction time:[1.105sec] +INFO [2014-07-04 09:53:24:836] <2552> =============================================================== +INFO [2014-07-04 10:00:24:160] <2845> =============================================================== +INFO [2014-07-04 10:00:24:160] <2845> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 10:00:24:160] <2845> card Pay Start! +INFO [2014-07-04 10:00:24:160] <2845> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 10:00:24:160] <2845> StoreId:acetel +INFO [2014-07-04 10:00:24:160] <2845> log:true +INFO [2014-07-04 10:00:24:160] <2845> logLevel:INFO +INFO [2014-07-04 10:00:24:160] <2845> UseNetCancel:true +INFO [2014-07-04 10:00:24:160] <2845> Type:Pay +INFO [2014-07-04 10:00:24:160] <2845> RecvLen:7 +INFO [2014-07-04 10:00:24:161] <2845> AuthTy:card +INFO [2014-07-04 10:00:24:161] <2845> SubTy:isp +INFO [2014-07-04 10:00:24:161] <2845> OrdNo:20140704095852T11702 +INFO [2014-07-04 10:00:24:161] <2845> Amt:27250 +INFO [2014-07-04 10:00:24:161] <2845> UserEmail:test@empal.com +INFO [2014-07-04 10:00:24:161] <2845> ProdNm: 1ǽ +INFO [2014-07-04 10:00:24:161] <2845> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 10:00:24:161] <2845> UserId:test11 +INFO [2014-07-04 10:00:24:161] <2845> OrdNm:̸ +INFO [2014-07-04 10:00:24:161] <2845> OrdPhone:111-1111-1111 +INFO [2014-07-04 10:00:24:161] <2845> OrdAddr:135-722--- +INFO [2014-07-04 10:00:24:161] <2845> RcpNm:̸ +INFO [2014-07-04 10:00:24:161] <2845> RcpPhone:111-1111-1111 +INFO [2014-07-04 10:00:24:162] <2845> DlvAddr:135-722--- Ż絿 ---1234 +INFO [2014-07-04 10:00:24:162] <2845> Remark:½Ʈ +INFO [2014-07-04 10:00:24:162] <2845> DeviId:9000400001 +INFO [2014-07-04 10:00:24:162] <2845> AuthYn:N +INFO [2014-07-04 10:00:24:162] <2845> Instmt:00 +INFO [2014-07-04 10:00:24:162] <2845> UserIp:125.131.234.203 +INFO [2014-07-04 10:00:24:162] <2845> partial_mm:00 +INFO [2014-07-04 10:00:24:162] <2845> noIntMonth: +INFO [2014-07-04 10:00:24:162] <2845> KVP_CURRENCY:WON +INFO [2014-07-04 10:00:24:162] <2845> KVP_CARDCODE:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 10:00:24:162] <2845> KVP_SESSIONKEY:G+1cszQhedJ6fLUXbhWaPX1EjsCdmdri5MaebaychUVcOBOAkN3yyDG3ilBjEKq+j/KmxMs4EUob1lrQbx6yAS4yPu4XDAVDt4v3vW+UkGY9gXtngSvureUyLruSuFrXRaU3fH40w+V0fyYm6MKAQ7oHHHYZV2QyQKWV9nKi46o= +INFO [2014-07-04 10:00:24:162] <2845> KVP_ENCDATA:cdata=2un03nQcQu8zATUaOSYb3geZo+q30iI9xsCD5DaVt44tg9K+YwevitPGDUnh18RlKwo2u+9WgqYn+ELM4D2LdsDcTVEpMJqEROImXqC3RVsFIms8bA4s32NWTH8oFDGPCVLVjHfmIY5HKZympGHARFWM0ruC2qXmutOL4UGW5PSaB0beMONTf4ikBeVhGz1Zly8xDLpzoPF/lDGl0Xt/nvdwtRzjbUZCDnxQVDpjjdxumgA4uAkHYbxQtAdy8oHkykP8HnyoEGEKw4/2DriVHiaBKMdg3ffFr5m+G9c8SpWHJ7FyvnE2PVlup5KMtlYc6ZJ7iBybFLF7OCJqEBIfbAT02jD7UOJtiLjGwVy55WFk+wE/BD07bIwfJljjBJB+P4AHngZv3g1Ziy6ttAkf0nUa3hJ9D4j1F5lXIfX5bFy/qJDMaYP7FXcWN6xgddeGL4SEUwxhD9z5fL2ajuhvQYYZQcQM6u/rbKDdUZzOO1r8SnYILIH9FJALfG2Yyg+msAvagv8pvi8TH+6HnBsQTump1WFaUoQ289Qb5KB9sE/5fpxb3IsMEMt4WSOKn0ee +INFO [2014-07-04 10:00:24:163] <2845> KVP_CONAME: +INFO [2014-07-04 10:00:24:163] <2845> KVP_NOINT:0 +INFO [2014-07-04 10:00:24:163] <2845> KVP_QUOTA:00 +INFO [2014-07-04 10:00:24:163] <2845> CardNo: +INFO [2014-07-04 10:00:24:163] <2845> MPI_CAVV: +INFO [2014-07-04 10:00:24:163] <2845> MPI_ECI: +INFO [2014-07-04 10:00:24:163] <2845> MPI_MD64: +INFO [2014-07-04 10:00:24:163] <2845> ExpMon: +INFO [2014-07-04 10:00:24:163] <2845> ExpYear: +INFO [2014-07-04 10:00:24:163] <2845> Passwd: +INFO [2014-07-04 10:00:24:163] <2845> SocId: +INFO [2014-07-04 10:00:24:164] <2845> HP_SERVERINFO: +INFO [2014-07-04 10:00:24:164] <2845> HP_HANDPHONE: +INFO [2014-07-04 10:00:24:164] <2845> HP_COMPANY: +INFO [2014-07-04 10:00:24:164] <2845> HP_ID: +INFO [2014-07-04 10:00:24:164] <2845> HP_SUBID: +INFO [2014-07-04 10:00:24:164] <2845> HP_UNITType: +INFO [2014-07-04 10:00:24:164] <2845> HP_IDEN: +INFO [2014-07-04 10:00:24:164] <2845> HP_IPADDR: +INFO [2014-07-04 10:00:24:164] <2845> VIRTUAL_CENTERCD: +INFO [2014-07-04 10:00:24:164] <2845> VIRTUAL_DEPODT: +INFO [2014-07-04 10:00:24:164] <2845> ZuminCode: +INFO [2014-07-04 10:00:24:164] <2845> MallPage: +INFO [2014-07-04 10:00:24:165] <2845> VIRTUAL_NO: +INFO [2014-07-04 10:00:24:165] <2845> ES_SENDNO: +INFO [2014-07-04 10:00:24:165] <2845> Column1:222-2222-2222 +INFO [2014-07-04 10:00:24:165] <2845> Column2:222-2222-2222 +INFO [2014-07-04 10:00:24:165] <2845> Column3:0---cardnormal +INFO [2014-07-04 10:00:24:165] <2845> Make NetCancel ID Start +INFO [2014-07-04 10:00:24:165] <2845> AEGIS_ISP_acetel_20140704100024165182 +INFO [2014-07-04 10:00:24:165] <2845> Make NetCancel ID End +INFO [2014-07-04 10:00:24:165] <2845> Make NetCancelID OK +INFO [2014-07-04 10:00:24:165] <2845> Make Msg Start +INFO [2014-07-04 10:00:24:165] <2845> card-isp Make MSG OK +INFO [2014-07-04 10:00:24:166] <2845> Make Msg End +INFO [2014-07-04 10:00:24:166] <2845> Make Pay Msg OK +INFO [2014-07-04 10:00:24:166] <2845> Send & Recv Msg Start +INFO [2014-07-04 10:00:24:166] <2845> Send Data To PG Start [ +INFO [2014-07-04 10:00:24:166] <2845> 0:0010562plug15 +INFO [2014-07-04 10:00:24:166] <2845> 1:acetel +INFO [2014-07-04 10:00:24:166] <2845> 2:test11 +INFO [2014-07-04 10:00:24:166] <2845> 3:27250 +INFO [2014-07-04 10:00:24:166] <2845> 4:20140704095852T11702 +INFO [2014-07-04 10:00:24:166] <2845> 5:9000400001 +INFO [2014-07-04 10:00:24:166] <2845> 6:̸ +INFO [2014-07-04 10:00:24:166] <2845> 7:111-1111-1111 +INFO [2014-07-04 10:00:24:166] <2845> 8:135-722--- Ż絿 ---1234 +INFO [2014-07-04 10:00:24:166] <2845> 9:̸ +INFO [2014-07-04 10:00:24:166] <2845> 10:111-1111-1111 +INFO [2014-07-04 10:00:24:166] <2845> 11:½Ʈ +INFO [2014-07-04 10:00:24:166] <2845> 12: 1ǽ +INFO [2014-07-04 10:00:24:166] <2845> 13:WON +INFO [2014-07-04 10:00:24:166] <2845> 14:00 +INFO [2014-07-04 10:00:24:166] <2845> 15: +INFO [2014-07-04 10:00:24:166] <2845> 16:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 10:00:24:166] <2845> 17:G+1cszQhedJ6fLUXbhWaPX1EjsCdmdri5MaebaychUVcOBOAkN3yyDG3ilBjEKq+j/KmxMs4EUob1lrQbx6yAS4yPu4XDAVDt4v3vW+UkGY9gXtngSvureUyLruSuFrXRaU3fH40w+V0fyYm6MKAQ7oHHHYZV2QyQKWV9nKi46o= +INFO [2014-07-04 10:00:24:166] <2845> 18:cdata=2un03nQcQu8zATUaOSYb3geZo+q30iI9xsCD5DaVt44tg9K+YwevitPGDUnh18RlKwo2u+9WgqYn+ELM4D2LdsDcTVEpMJqEROImXqC3RVsFIms8bA4s32NWTH8oFDGPCVLVjHfmIY5HKZympGHARFWM0ruC2qXmutOL4UGW5PSaB0beMONTf4ikBeVhGz1Zly8xDLpzoPF/lDGl0Xt/nvdwtRzjbUZCDnxQVDpjjdxumgA4uAkHYbxQtAdy8oHkykP8HnyoEGEKw4/2DriVHiaBKMdg3ffFr5m+G9c8SpWHJ7FyvnE2PVlup5KMtlYc6ZJ7iBybFLF7OCJqEBIfbAT02jD7UOJtiLjGwVy55WFk+wE/BD07bIwfJljjBJB+P4AHngZv3g1Ziy6ttAkf0nUa3hJ9D4j1F5lXIfX5bFy/qJDMaYP7FXcWN6xgddeGL4SEUwxhD9z5fL2ajuhvQYYZQcQM6u/rbKDdUZzOO1r8SnYILIH9FJALfG2Yyg+msAvagv8pvi8TH+6HnBsQTump1WFaUoQ289Qb5KB9sE/5fpxb3IsMEMt4WSOKn0ee +INFO [2014-07-04 10:00:24:166] <2845> 19: +INFO [2014-07-04 10:00:24:166] <2845> 20:125.131.234.203 +INFO [2014-07-04 10:00:24:166] <2845> 21:test@empal.com +INFO [2014-07-04 10:00:24:166] <2845> 22:AEGIS_ISP_acetel_20140704100024165182 +INFO [2014-07-04 10:00:24:166] <2845> 23: +INFO [2014-07-04 10:00:24:166] <2845> ] Send Data To PG End +INFO [2014-07-04 10:00:24:167] <2845> SendMsg : [0010562plug15|acetel|test11|27250|20140704095852T11702|9000400001|̸|111-1111-1111|135-722--- Ż絿 ---1234|̸|111-1111-1111|½Ʈ| 1ǽ|WON|00||000100202428681;125.131.234.203;N;;27250;;|G+1cszQhedJ6fLUXbhWaPX1EjsCdmdri5MaebaychUVcOBOAkN3yyDG3ilBjEKq+j/KmxMs4EUob1lrQbx6yAS4yPu4XDAVDt4v3vW+UkGY9gXtngSvureUyLruSuFrXRaU3fH40w+V0fyYm6MKAQ7oHHHYZV2QyQKWV9nKi46o=|cdata=2un03nQcQu8zATUaOSYb3geZo+q30iI9xsCD5DaVt44tg9K+YwevitPGDUnh18RlKwo2u+9WgqYn+ELM4D2LdsDcTVEpMJqEROImXqC3RVsFIms8bA4s32NWTH8oFDGPCVLVjHfmIY5HKZympGHARFWM0ruC2qXmutOL4UGW5PSaB0beMONTf4ikBeVhGz1Zly8xDLpzoPF/lDGl0Xt/nvdwtRzjbUZCDnxQVDpjjdxumgA4uAkHYbxQtAdy8oHkykP8HnyoEGEKw4/2DriVHiaBKMdg3ffFr5m+G9c8SpWHJ7FyvnE2PVlup5KMtlYc6ZJ7iBybFLF7OCJqEBIfbAT02jD7UOJtiLjGwVy55WFk+wE/BD07bIwfJljjBJB+P4AHngZv3g1Ziy6ttAkf0nUa3hJ9D4j1F5lXIfX5bFy/qJDMaYP7FXcWN6xgddeGL4SEUwxhD9z5fL2ajuhvQYYZQcQM6u/rbKDdUZzOO1r8SnYILIH9FJALfG2Yyg+msAvagv8pvi8TH+6HnBsQTump1WFaUoQ289Qb5KB9sE/5fpxb3IsMEMt4WSOKn0ee||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704100024165182|] +INFO [2014-07-04 10:00:24:167] <2845> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 10:00:24:170] <2845> Socket Open OK +INFO [2014-07-04 10:00:26:751] <2845> RecvMsg Length : [000083] +INFO [2014-07-04 10:00:26:751] <2845> RecvMsg : [acetel|0610|101487|55308031|27250|y|:20140704095852T11702|20140704095936|0100| +] +INFO [2014-07-04 10:00:26:751] <2845> Socket Close OK +INFO [2014-07-04 10:00:26:751] <2845> RecvMsg Length Check OK +INFO [2014-07-04 10:00:26:751] <2845> Send & Recv Msg End +INFO [2014-07-04 10:00:26:752] <2845> Send & Recv Msg OK +INFO [2014-07-04 10:00:26:752] <2845> Parse Msg Start +INFO [2014-07-04 10:00:26:752] <2845> card-isp RECV MSG Parsing OK +INFO [2014-07-04 10:00:26:752] <2845> Parse Msg End +INFO [2014-07-04 10:00:26:752] <2845> Msg Parsing OK +INFO [2014-07-04 10:00:26:752] <2845> card Pay Result Value [ +INFO [2014-07-04 10:00:26:752] <2845> NetCancID:AEGIS_ISP_acetel_20140704100024165182 +INFO [2014-07-04 10:00:26:752] <2845> rStoreId:acetel +INFO [2014-07-04 10:00:26:752] <2845> rBusiCd:0610 +INFO [2014-07-04 10:00:26:752] <2845> rOrdNo:20140704095852T11702 +INFO [2014-07-04 10:00:26:752] <2845> rDealNo:101487 +INFO [2014-07-04 10:00:26:752] <2845> rApprNo:55308031 +INFO [2014-07-04 10:00:26:752] <2845> rProdNm: 1ǽ +INFO [2014-07-04 10:00:26:752] <2845> rAmt:27250 +INFO [2014-07-04 10:00:26:752] <2845> rInstmt:00 +INFO [2014-07-04 10:00:26:752] <2845> rSuccYn:y +INFO [2014-07-04 10:00:26:752] <2845> rResMsg::20140704095852T11702 +INFO [2014-07-04 10:00:26:752] <2845> rApprTm:20140704095936 +INFO [2014-07-04 10:00:26:752] <2845> rCardCd:0100 +INFO [2014-07-04 10:00:26:752] <2845> ] +INFO [2014-07-04 10:00:26:753] <2845> END :20140704095852T11702 Transaction time:[2.593sec] +INFO [2014-07-04 10:00:26:753] <2845> =============================================================== +INFO [2014-07-04 10:19:58:44] <4097> =============================================================== +INFO [2014-07-04 10:19:58:44] <4097> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 10:19:58:44] <4097> card Pay Start! +INFO [2014-07-04 10:19:58:44] <4097> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 10:19:58:44] <4097> StoreId:acetel +INFO [2014-07-04 10:19:58:44] <4097> log:true +INFO [2014-07-04 10:19:58:44] <4097> logLevel:INFO +INFO [2014-07-04 10:19:58:44] <4097> UseNetCancel:true +INFO [2014-07-04 10:19:58:44] <4097> Type:Pay +INFO [2014-07-04 10:19:58:44] <4097> RecvLen:7 +INFO [2014-07-04 10:19:58:44] <4097> AuthTy:card +INFO [2014-07-04 10:19:58:44] <4097> SubTy:isp +INFO [2014-07-04 10:19:58:44] <4097> OrdNo:20140704100821T28749 +INFO [2014-07-04 10:19:58:45] <4097> Amt:17800 +INFO [2014-07-04 10:19:58:45] <4097> UserEmail:test@empal.com +INFO [2014-07-04 10:19:58:45] <4097> ProdNm:ũ 帲 +INFO [2014-07-04 10:19:58:45] <4097> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 10:19:58:45] <4097> UserId:test11 +INFO [2014-07-04 10:19:58:45] <4097> OrdNm:̸ +INFO [2014-07-04 10:19:58:45] <4097> OrdPhone:111-1111-1111 +INFO [2014-07-04 10:19:58:45] <4097> OrdAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:19:58:45] <4097> RcpNm:̸ +INFO [2014-07-04 10:19:58:45] <4097> RcpPhone:111-1111-1111 +INFO [2014-07-04 10:19:58:45] <4097> DlvAddr:135-722--- Ż絿 ---1234 +INFO [2014-07-04 10:19:58:45] <4097> Remark:½Ʈ +INFO [2014-07-04 10:19:58:45] <4097> DeviId:9000400001 +INFO [2014-07-04 10:19:58:45] <4097> AuthYn:N +INFO [2014-07-04 10:19:58:45] <4097> Instmt:00 +INFO [2014-07-04 10:19:58:45] <4097> UserIp:125.131.234.203 +INFO [2014-07-04 10:19:58:45] <4097> partial_mm:00 +INFO [2014-07-04 10:19:58:45] <4097> noIntMonth: +INFO [2014-07-04 10:19:58:45] <4097> KVP_CURRENCY:WON +INFO [2014-07-04 10:19:58:45] <4097> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 10:19:58:46] <4097> KVP_SESSIONKEY:DoBoULmqFTT7gyfc4vVaOF+Yc7f5y4EjYdsxpPgdAcKgtoCG7yLzSEI+Du0ZWUsomoclCAruZAAVDG7bY2PL2MWpbldb2M3gI4qQQBMAfdXdvFeqFhVN7bUvAQ7fCv3rNRA9Z1tQkPUXtSIEaxLxbN47gcoavf5K8uyttuTyNr8= +INFO [2014-07-04 10:19:58:46] <4097> KVP_ENCDATA:cdata=Ra9WoVcx0wIp6Y5+rG9nXXzNSSTgJ02i2w7OOMVhm1MLqjOAgt5HnSkjI6qZY1wZdCa6o9Br+dSuy+mXXuiGHWiAGHR2w+NhZFHeh/ysSQUg47UOGS80/rYpMYJBXIg9OpGjHwb6AjjwnI2S9ICl/2wJwAHkbx1+BVAfeqYlMIh7ndS72YdX30FWiUb9PG46ZMZiMOq9CCiaTIj8oEVwrzqCdScr+Wz1wF5hx7IVx4evCsJHKNqKBi2+1sYmtFEo1EJhW7FRGDOrKEFCtdGLfipEH/V/gkpBQ5EMGFoVxDB1kJ5oLzg+kGjrE+kggmxyyhRZtZguTfcu13S+zEnDMpT5dxblsInN3B6TY0C3cYVVx683AUBk8Iw9GfXdsjYbbZwR4B0MSris2n5wd+eo3dEOSmEB9l9qMPph765olyCX/AuuojuAJk81hwr08VfHXEzaB/bYn3D2JN+DPuJv0ql2Z3C877BX+OfkyP139zencWtS2d29V1sMBCHwJjhRsP7cAJJINEA87gvjt/vVKnl2yN0xopwur+zSzFqV1B0= +INFO [2014-07-04 10:19:58:46] <4097> KVP_CONAME: +INFO [2014-07-04 10:19:58:46] <4097> KVP_NOINT:0 +INFO [2014-07-04 10:19:58:46] <4097> KVP_QUOTA:00 +INFO [2014-07-04 10:19:58:46] <4097> CardNo: +INFO [2014-07-04 10:19:58:46] <4097> MPI_CAVV: +INFO [2014-07-04 10:19:58:46] <4097> MPI_ECI: +INFO [2014-07-04 10:19:58:46] <4097> MPI_MD64: +INFO [2014-07-04 10:19:58:46] <4097> ExpMon: +INFO [2014-07-04 10:19:58:46] <4097> ExpYear: +INFO [2014-07-04 10:19:58:46] <4097> Passwd: +INFO [2014-07-04 10:19:58:46] <4097> SocId: +INFO [2014-07-04 10:19:58:46] <4097> HP_SERVERINFO: +INFO [2014-07-04 10:19:58:46] <4097> HP_HANDPHONE: +INFO [2014-07-04 10:19:58:46] <4097> HP_COMPANY: +INFO [2014-07-04 10:19:58:46] <4097> HP_ID: +INFO [2014-07-04 10:19:58:46] <4097> HP_SUBID: +INFO [2014-07-04 10:19:58:46] <4097> HP_UNITType: +INFO [2014-07-04 10:19:58:46] <4097> HP_IDEN: +INFO [2014-07-04 10:19:58:46] <4097> HP_IPADDR: +INFO [2014-07-04 10:19:58:46] <4097> VIRTUAL_CENTERCD: +INFO [2014-07-04 10:19:58:47] <4097> VIRTUAL_DEPODT: +INFO [2014-07-04 10:19:58:47] <4097> ZuminCode: +INFO [2014-07-04 10:19:58:47] <4097> MallPage: +INFO [2014-07-04 10:19:58:47] <4097> VIRTUAL_NO: +INFO [2014-07-04 10:19:58:47] <4097> ES_SENDNO: +INFO [2014-07-04 10:19:58:47] <4097> Column1:222-2222-2222 +INFO [2014-07-04 10:19:58:47] <4097> Column2:222-2222-2222 +INFO [2014-07-04 10:19:58:47] <4097> Column3:0---cardnormal +INFO [2014-07-04 10:19:58:47] <4097> Make NetCancel ID Start +INFO [2014-07-04 10:19:58:47] <4097> AEGIS_ISP_acetel_20140704101958047102 +INFO [2014-07-04 10:19:58:47] <4097> Make NetCancel ID End +INFO [2014-07-04 10:19:58:47] <4097> Make NetCancelID OK +INFO [2014-07-04 10:19:58:47] <4097> Make Msg Start +INFO [2014-07-04 10:19:58:47] <4097> card-isp Make MSG OK +INFO [2014-07-04 10:19:58:47] <4097> Make Msg End +INFO [2014-07-04 10:19:58:47] <4097> Make Pay Msg OK +INFO [2014-07-04 10:19:58:47] <4097> Send & Recv Msg Start +INFO [2014-07-04 10:19:58:47] <4097> Send Data To PG Start [ +INFO [2014-07-04 10:19:58:48] <4097> 0:0010312plug15 +INFO [2014-07-04 10:19:58:48] <4097> 1:acetel +INFO [2014-07-04 10:19:58:48] <4097> 2:test11 +INFO [2014-07-04 10:19:58:48] <4097> 3:17800 +INFO [2014-07-04 10:19:58:48] <4097> 4:20140704100821T28749 +INFO [2014-07-04 10:19:58:48] <4097> 5:9000400001 +INFO [2014-07-04 10:19:58:48] <4097> 6:̸ +INFO [2014-07-04 10:19:58:48] <4097> 7:111-1111-1111 +INFO [2014-07-04 10:19:58:48] <4097> 8:135-722--- Ż絿 ---1234 +INFO [2014-07-04 10:19:58:48] <4097> 9:̸ +INFO [2014-07-04 10:19:58:48] <4097> 10:111-1111-1111 +INFO [2014-07-04 10:19:58:48] <4097> 11:½Ʈ +INFO [2014-07-04 10:19:58:48] <4097> 12:ũ 帲 +INFO [2014-07-04 10:19:58:48] <4097> 13:WON +INFO [2014-07-04 10:19:58:48] <4097> 14:00 +INFO [2014-07-04 10:19:58:48] <4097> 15: +INFO [2014-07-04 10:19:58:48] <4097> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 10:19:58:48] <4097> 17:DoBoULmqFTT7gyfc4vVaOF+Yc7f5y4EjYdsxpPgdAcKgtoCG7yLzSEI+Du0ZWUsomoclCAruZAAVDG7bY2PL2MWpbldb2M3gI4qQQBMAfdXdvFeqFhVN7bUvAQ7fCv3rNRA9Z1tQkPUXtSIEaxLxbN47gcoavf5K8uyttuTyNr8= +INFO [2014-07-04 10:19:58:48] <4097> 18:cdata=Ra9WoVcx0wIp6Y5+rG9nXXzNSSTgJ02i2w7OOMVhm1MLqjOAgt5HnSkjI6qZY1wZdCa6o9Br+dSuy+mXXuiGHWiAGHR2w+NhZFHeh/ysSQUg47UOGS80/rYpMYJBXIg9OpGjHwb6AjjwnI2S9ICl/2wJwAHkbx1+BVAfeqYlMIh7ndS72YdX30FWiUb9PG46ZMZiMOq9CCiaTIj8oEVwrzqCdScr+Wz1wF5hx7IVx4evCsJHKNqKBi2+1sYmtFEo1EJhW7FRGDOrKEFCtdGLfipEH/V/gkpBQ5EMGFoVxDB1kJ5oLzg+kGjrE+kggmxyyhRZtZguTfcu13S+zEnDMpT5dxblsInN3B6TY0C3cYVVx683AUBk8Iw9GfXdsjYbbZwR4B0MSris2n5wd+eo3dEOSmEB9l9qMPph765olyCX/AuuojuAJk81hwr08VfHXEzaB/bYn3D2JN+DPuJv0ql2Z3C877BX+OfkyP139zencWtS2d29V1sMBCHwJjhRsP7cAJJINEA87gvjt/vVKnl2yN0xopwur+zSzFqV1B0= +INFO [2014-07-04 10:19:58:48] <4097> 19: +INFO [2014-07-04 10:19:58:48] <4097> 20:125.131.234.203 +INFO [2014-07-04 10:19:58:48] <4097> 21:test@empal.com +INFO [2014-07-04 10:19:58:48] <4097> 22:AEGIS_ISP_acetel_20140704101958047102 +INFO [2014-07-04 10:19:58:48] <4097> 23: +INFO [2014-07-04 10:19:58:48] <4097> ] Send Data To PG End +INFO [2014-07-04 10:19:58:48] <4097> SendMsg : [0010312plug15|acetel|test11|17800|20140704100821T28749|9000400001|̸|111-1111-1111|135-722--- Ż絿 ---1234|̸|111-1111-1111|½Ʈ|ũ 帲|WON|00||000100202428681;125.131.234.203;N;;17800;;|DoBoULmqFTT7gyfc4vVaOF+Yc7f5y4EjYdsxpPgdAcKgtoCG7yLzSEI+Du0ZWUsomoclCAruZAAVDG7bY2PL2MWpbldb2M3gI4qQQBMAfdXdvFeqFhVN7bUvAQ7fCv3rNRA9Z1tQkPUXtSIEaxLxbN47gcoavf5K8uyttuTyNr8=|cdata=Ra9WoVcx0wIp6Y5+rG9nXXzNSSTgJ02i2w7OOMVhm1MLqjOAgt5HnSkjI6qZY1wZdCa6o9Br+dSuy+mXXuiGHWiAGHR2w+NhZFHeh/ysSQUg47UOGS80/rYpMYJBXIg9OpGjHwb6AjjwnI2S9ICl/2wJwAHkbx1+BVAfeqYlMIh7ndS72YdX30FWiUb9PG46ZMZiMOq9CCiaTIj8oEVwrzqCdScr+Wz1wF5hx7IVx4evCsJHKNqKBi2+1sYmtFEo1EJhW7FRGDOrKEFCtdGLfipEH/V/gkpBQ5EMGFoVxDB1kJ5oLzg+kGjrE+kggmxyyhRZtZguTfcu13S+zEnDMpT5dxblsInN3B6TY0C3cYVVx683AUBk8Iw9GfXdsjYbbZwR4B0MSris2n5wd+eo3dEOSmEB9l9qMPph765olyCX/AuuojuAJk81hwr08VfHXEzaB/bYn3D2JN+DPuJv0ql2Z3C877BX+OfkyP139zencWtS2d29V1sMBCHwJjhRsP7cAJJINEA87gvjt/vVKnl2yN0xopwur+zSzFqV1B0=||125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704101958047102|] +INFO [2014-07-04 10:19:58:48] <4097> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 10:19:58:55] <4097> Socket Open OK +INFO [2014-07-04 10:19:59:850] <4097> RecvMsg Length : [000083] +INFO [2014-07-04 10:19:59:851] <4097> RecvMsg : [acetel|0610|101643|55346792|17800|y|:20140704100821T28749|20140704102027|0100| +] +INFO [2014-07-04 10:19:59:851] <4097> Socket Close OK +INFO [2014-07-04 10:19:59:851] <4097> RecvMsg Length Check OK +INFO [2014-07-04 10:19:59:851] <4097> Send & Recv Msg End +INFO [2014-07-04 10:19:59:851] <4097> Send & Recv Msg OK +INFO [2014-07-04 10:19:59:851] <4097> Parse Msg Start +INFO [2014-07-04 10:19:59:851] <4097> card-isp RECV MSG Parsing OK +INFO [2014-07-04 10:19:59:851] <4097> Parse Msg End +INFO [2014-07-04 10:19:59:851] <4097> Msg Parsing OK +INFO [2014-07-04 10:19:59:851] <4097> card Pay Result Value [ +INFO [2014-07-04 10:19:59:851] <4097> NetCancID:AEGIS_ISP_acetel_20140704101958047102 +INFO [2014-07-04 10:19:59:851] <4097> rStoreId:acetel +INFO [2014-07-04 10:19:59:851] <4097> rBusiCd:0610 +INFO [2014-07-04 10:19:59:851] <4097> rOrdNo:20140704100821T28749 +INFO [2014-07-04 10:19:59:851] <4097> rDealNo:101643 +INFO [2014-07-04 10:19:59:851] <4097> rApprNo:55346792 +INFO [2014-07-04 10:19:59:851] <4097> rProdNm:ũ 帲 +INFO [2014-07-04 10:19:59:851] <4097> rAmt:17800 +INFO [2014-07-04 10:19:59:852] <4097> rInstmt:00 +INFO [2014-07-04 10:19:59:852] <4097> rSuccYn:y +INFO [2014-07-04 10:19:59:852] <4097> rResMsg::20140704100821T28749 +INFO [2014-07-04 10:19:59:852] <4097> rApprTm:20140704102027 +INFO [2014-07-04 10:19:59:852] <4097> rCardCd:0100 +INFO [2014-07-04 10:19:59:852] <4097> ] +INFO [2014-07-04 10:19:59:852] <4097> END :20140704100821T28749 Transaction time:[1.808sec] +INFO [2014-07-04 10:19:59:852] <4097> =============================================================== +INFO [2014-07-04 10:32:55:509] <5106> =============================================================== +INFO [2014-07-04 10:32:55:509] <5106> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 10:32:55:509] <5106> card Pay Start! +INFO [2014-07-04 10:32:55:509] <5106> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 10:32:55:509] <5106> StoreId:acetel +INFO [2014-07-04 10:32:55:509] <5106> log:true +INFO [2014-07-04 10:32:55:509] <5106> logLevel:INFO +INFO [2014-07-04 10:32:55:509] <5106> UseNetCancel:true +INFO [2014-07-04 10:32:55:509] <5106> Type:Pay +INFO [2014-07-04 10:32:55:509] <5106> RecvLen:7 +INFO [2014-07-04 10:32:55:509] <5106> AuthTy:card +INFO [2014-07-04 10:32:55:510] <5106> SubTy:isp +INFO [2014-07-04 10:32:55:510] <5106> OrdNo:20140704102520T60136 +INFO [2014-07-04 10:32:55:510] <5106> Amt:17800 +INFO [2014-07-04 10:32:55:510] <5106> UserEmail:test@empal.com +INFO [2014-07-04 10:32:55:510] <5106> ProdNm:핑크 드림 +INFO [2014-07-04 10:32:55:510] <5106> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 10:32:55:510] <5106> UserId:test11 +INFO [2014-07-04 10:32:55:510] <5106> OrdNm:이름 +INFO [2014-07-04 10:32:55:510] <5106> OrdPhone:111-1111-1111 +INFO [2014-07-04 10:32:55:510] <5106> OrdAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:32:55:510] <5106> RcpNm:이름 +INFO [2014-07-04 10:32:55:510] <5106> RcpPhone:111-1111-1111 +INFO [2014-07-04 10:32:55:510] <5106> DlvAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:32:55:510] <5106> Remark:태스트 +INFO [2014-07-04 10:32:55:510] <5106> DeviId:9000400001 +INFO [2014-07-04 10:32:55:510] <5106> AuthYn:N +INFO [2014-07-04 10:32:55:510] <5106> Instmt:00 +INFO [2014-07-04 10:32:55:510] <5106> UserIp:125.131.234.203 +INFO [2014-07-04 10:32:55:510] <5106> partial_mm:00 +INFO [2014-07-04 10:32:55:511] <5106> noIntMonth: +INFO [2014-07-04 10:32:55:511] <5106> KVP_CURRENCY:WON +INFO [2014-07-04 10:32:55:511] <5106> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 10:32:55:511] <5106> KVP_SESSIONKEY:DYrNi21bewnLGIFdgGerbnD4hf+mPY46EyMSYx3OS6OvgRsGiEcz+IPKYwIM0vjE66oJ8+E9hmoHH/O2IY4rTFizJRj6hfx8WzHZRS8gTlnEVyvZmsOaO5m40g9munpYesU5bZAGGnnduKoqxoLhX/eAee3T6ZW1rKn5iTGqXzU= +INFO [2014-07-04 10:32:55:511] <5106> KVP_ENCDATA:cdata=yUUE5pMVljPGT3tjs3QG0UUXR8qFK6yjvkFcRaPfb73B9l/dG1CKErcG8AYOEy91Nefmx8AOt8U3/YRZTZ1pviMdnZtI9YRxs91GtZsnQV2bN5nucExDOE6GZ2Zc+pGfCRa6Q23x6QHqRE0whFvng5/neSz/Epr4k/zwqP2LgBe/Ji/ukKn+4VrzjfstDgTT+R4oUGHYby9LZKX/PhmXnlRjGWhuobY4Wca6PF/HeQ2JpDMT6/am7l2CKmPQ8g+OYS6pyva/26sFBR9pCFwScHxsIHrRkpwVsW6U/zwgx7A+zkFT7Mu9wbRiThkebQ2Ltu0aS3PqmOn/zOWxvw5YSZeinwHtmSK6amllqxDEvdTas7kQ8EAtTTM3yuL87NUUNgg9WbwAiKU22VYN/zobPMA+venr4mDa+cg8hGfHs5fwrUJTua35+BbG2OMKTnnDXTTeGFds+OzYAy5meGqedn/LLTZSU0pDkOX2+ZANz8NsFDPufdj6ncthvGbMj9y25Yed/hM0f/tLJaWm4rMn5uA5tvF8U1vFHrSkrNE5b/4= +INFO [2014-07-04 10:32:55:511] <5106> KVP_CONAME:안전결제서비스 +INFO [2014-07-04 10:32:55:511] <5106> KVP_NOINT:0 +INFO [2014-07-04 10:32:55:511] <5106> KVP_QUOTA:00 +INFO [2014-07-04 10:32:55:511] <5106> CardNo: +INFO [2014-07-04 10:32:55:511] <5106> MPI_CAVV: +INFO [2014-07-04 10:32:55:511] <5106> MPI_ECI: +INFO [2014-07-04 10:32:55:511] <5106> MPI_MD64: +INFO [2014-07-04 10:32:55:511] <5106> ExpMon: +INFO [2014-07-04 10:32:55:512] <5106> ExpYear: +INFO [2014-07-04 10:32:55:512] <5106> Passwd: +INFO [2014-07-04 10:32:55:512] <5106> SocId: +INFO [2014-07-04 10:32:55:512] <5106> HP_SERVERINFO: +INFO [2014-07-04 10:32:55:512] <5106> HP_HANDPHONE: +INFO [2014-07-04 10:32:55:512] <5106> HP_COMPANY: +INFO [2014-07-04 10:32:55:512] <5106> HP_ID: +INFO [2014-07-04 10:32:55:512] <5106> HP_SUBID: +INFO [2014-07-04 10:32:55:512] <5106> HP_UNITType: +INFO [2014-07-04 10:32:55:512] <5106> HP_IDEN: +INFO [2014-07-04 10:32:55:512] <5106> HP_IPADDR: +INFO [2014-07-04 10:32:55:512] <5106> VIRTUAL_CENTERCD: +INFO [2014-07-04 10:32:55:512] <5106> VIRTUAL_DEPODT: +INFO [2014-07-04 10:32:55:513] <5106> ZuminCode: +INFO [2014-07-04 10:32:55:513] <5106> MallPage: +INFO [2014-07-04 10:32:55:513] <5106> VIRTUAL_NO: +INFO [2014-07-04 10:32:55:513] <5106> ES_SENDNO: +INFO [2014-07-04 10:32:55:513] <5106> Column1:222-2222-2222 +INFO [2014-07-04 10:32:55:513] <5106> Column2:222-2222-2222 +INFO [2014-07-04 10:32:55:513] <5106> Column3:0---cardnormal +INFO [2014-07-04 10:32:55:513] <5106> Make NetCancel ID Start +INFO [2014-07-04 10:32:55:513] <5106> AEGIS_ISP_acetel_20140704103255513468 +INFO [2014-07-04 10:32:55:513] <5106> Make NetCancel ID End +INFO [2014-07-04 10:32:55:513] <5106> Make NetCancelID OK +INFO [2014-07-04 10:32:55:513] <5106> Make Msg Start +INFO [2014-07-04 10:32:55:514] <5106> card-isp Make MSG OK +INFO [2014-07-04 10:32:55:514] <5106> Make Msg End +INFO [2014-07-04 10:32:55:514] <5106> Make Pay Msg OK +INFO [2014-07-04 10:32:55:514] <5106> Send & Recv Msg Start +INFO [2014-07-04 10:32:55:514] <5106> Send Data To PG Start [ +INFO [2014-07-04 10:32:55:514] <5106> 0:0010612plug15 +INFO [2014-07-04 10:32:55:514] <5106> 1:acetel +INFO [2014-07-04 10:32:55:514] <5106> 2:test11 +INFO [2014-07-04 10:32:55:514] <5106> 3:17800 +INFO [2014-07-04 10:32:55:514] <5106> 4:20140704102520T60136 +INFO [2014-07-04 10:32:55:514] <5106> 5:9000400001 +INFO [2014-07-04 10:32:55:514] <5106> 6:이름 +INFO [2014-07-04 10:32:55:514] <5106> 7:111-1111-1111 +INFO [2014-07-04 10:32:55:514] <5106> 8:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:32:55:514] <5106> 9:이름 +INFO [2014-07-04 10:32:55:514] <5106> 10:111-1111-1111 +INFO [2014-07-04 10:32:55:514] <5106> 11:태스트 +INFO [2014-07-04 10:32:55:514] <5106> 12:핑크 드림 +INFO [2014-07-04 10:32:55:514] <5106> 13:WON +INFO [2014-07-04 10:32:55:514] <5106> 14:00 +INFO [2014-07-04 10:32:55:514] <5106> 15: +INFO [2014-07-04 10:32:55:514] <5106> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 10:32:55:514] <5106> 17:DYrNi21bewnLGIFdgGerbnD4hf+mPY46EyMSYx3OS6OvgRsGiEcz+IPKYwIM0vjE66oJ8+E9hmoHH/O2IY4rTFizJRj6hfx8WzHZRS8gTlnEVyvZmsOaO5m40g9munpYesU5bZAGGnnduKoqxoLhX/eAee3T6ZW1rKn5iTGqXzU= +INFO [2014-07-04 10:32:55:514] <5106> 18:cdata=yUUE5pMVljPGT3tjs3QG0UUXR8qFK6yjvkFcRaPfb73B9l/dG1CKErcG8AYOEy91Nefmx8AOt8U3/YRZTZ1pviMdnZtI9YRxs91GtZsnQV2bN5nucExDOE6GZ2Zc+pGfCRa6Q23x6QHqRE0whFvng5/neSz/Epr4k/zwqP2LgBe/Ji/ukKn+4VrzjfstDgTT+R4oUGHYby9LZKX/PhmXnlRjGWhuobY4Wca6PF/HeQ2JpDMT6/am7l2CKmPQ8g+OYS6pyva/26sFBR9pCFwScHxsIHrRkpwVsW6U/zwgx7A+zkFT7Mu9wbRiThkebQ2Ltu0aS3PqmOn/zOWxvw5YSZeinwHtmSK6amllqxDEvdTas7kQ8EAtTTM3yuL87NUUNgg9WbwAiKU22VYN/zobPMA+venr4mDa+cg8hGfHs5fwrUJTua35+BbG2OMKTnnDXTTeGFds+OzYAy5meGqedn/LLTZSU0pDkOX2+ZANz8NsFDPufdj6ncthvGbMj9y25Yed/hM0f/tLJaWm4rMn5uA5tvF8U1vFHrSkrNE5b/4= +INFO [2014-07-04 10:32:55:514] <5106> 19:안전결제서비스 +INFO [2014-07-04 10:32:55:514] <5106> 20:125.131.234.203 +INFO [2014-07-04 10:32:55:514] <5106> 21:test@empal.com +INFO [2014-07-04 10:32:55:514] <5106> 22:AEGIS_ISP_acetel_20140704103255513468 +INFO [2014-07-04 10:32:55:514] <5106> 23: +INFO [2014-07-04 10:32:55:514] <5106> ] Send Data To PG End +INFO [2014-07-04 10:32:55:515] <5106> SendMsg : [0010612plug15|acetel|test11|17800|20140704102520T60136|9000400001|이름|111-1111-1111|135-722---서울 강남구 신사동 강남빌딩---1234|이름|111-1111-1111|태스트|핑크 드림|WON|00||000100202428681;125.131.234.203;N;;17800;;|DYrNi21bewnLGIFdgGerbnD4hf+mPY46EyMSYx3OS6OvgRsGiEcz+IPKYwIM0vjE66oJ8+E9hmoHH/O2IY4rTFizJRj6hfx8WzHZRS8gTlnEVyvZmsOaO5m40g9munpYesU5bZAGGnnduKoqxoLhX/eAee3T6ZW1rKn5iTGqXzU=|cdata=yUUE5pMVljPGT3tjs3QG0UUXR8qFK6yjvkFcRaPfb73B9l/dG1CKErcG8AYOEy91Nefmx8AOt8U3/YRZTZ1pviMdnZtI9YRxs91GtZsnQV2bN5nucExDOE6GZ2Zc+pGfCRa6Q23x6QHqRE0whFvng5/neSz/Epr4k/zwqP2LgBe/Ji/ukKn+4VrzjfstDgTT+R4oUGHYby9LZKX/PhmXnlRjGWhuobY4Wca6PF/HeQ2JpDMT6/am7l2CKmPQ8g+OYS6pyva/26sFBR9pCFwScHxsIHrRkpwVsW6U/zwgx7A+zkFT7Mu9wbRiThkebQ2Ltu0aS3PqmOn/zOWxvw5YSZeinwHtmSK6amllqxDEvdTas7kQ8EAtTTM3yuL87NUUNgg9WbwAiKU22VYN/zobPMA+venr4mDa+cg8hGfHs5fwrUJTua35+BbG2OMKTnnDXTTeGFds+OzYAy5meGqedn/LLTZSU0pDkOX2+ZANz8NsFDPufdj6ncthvGbMj9y25Yed/hM0f/tLJaWm4rMn5uA5tvF8U1vFHrSkrNE5b/4=|안전결제서비스|125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704103255513468|] +INFO [2014-07-04 10:32:55:515] <5106> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 10:32:55:519] <5106> Socket Open OK +INFO [2014-07-04 10:32:57:49] <5106> RecvMsg Length : [000083] +INFO [2014-07-04 10:32:57:49] <5106> RecvMsg : [acetel|0610|101738|55382553|17800|y|:20140704102520T60136|20140704103324|0100| +] +INFO [2014-07-04 10:32:57:49] <5106> Socket Close OK +INFO [2014-07-04 10:32:57:49] <5106> RecvMsg Length Check OK +INFO [2014-07-04 10:32:57:49] <5106> Send & Recv Msg End +INFO [2014-07-04 10:32:57:49] <5106> Send & Recv Msg OK +INFO [2014-07-04 10:32:57:49] <5106> Parse Msg Start +INFO [2014-07-04 10:32:57:49] <5106> card-isp RECV MSG Parsing OK +INFO [2014-07-04 10:32:57:49] <5106> Parse Msg End +INFO [2014-07-04 10:32:57:49] <5106> Msg Parsing OK +INFO [2014-07-04 10:32:57:50] <5106> card Pay Result Value [ +INFO [2014-07-04 10:32:57:50] <5106> NetCancID:AEGIS_ISP_acetel_20140704103255513468 +INFO [2014-07-04 10:32:57:50] <5106> rStoreId:acetel +INFO [2014-07-04 10:32:57:50] <5106> rBusiCd:0610 +INFO [2014-07-04 10:32:57:50] <5106> rOrdNo:20140704102520T60136 +INFO [2014-07-04 10:32:57:50] <5106> rDealNo:101738 +INFO [2014-07-04 10:32:57:50] <5106> rApprNo:55382553 +INFO [2014-07-04 10:32:57:50] <5106> rProdNm:핑크 드림 +INFO [2014-07-04 10:32:57:50] <5106> rAmt:17800 +INFO [2014-07-04 10:32:57:50] <5106> rInstmt:00 +INFO [2014-07-04 10:32:57:50] <5106> rSuccYn:y +INFO [2014-07-04 10:32:57:50] <5106> rResMsg::20140704102520T60136 +INFO [2014-07-04 10:32:57:50] <5106> rApprTm:20140704103324 +INFO [2014-07-04 10:32:57:50] <5106> rCardCd:0100 +INFO [2014-07-04 10:32:57:50] <5106> ] +INFO [2014-07-04 10:32:57:51] <5106> END :20140704102520T60136 Transaction time:[1.542sec] +INFO [2014-07-04 10:32:57:51] <5106> =============================================================== +INFO [2014-07-04 10:51:50:993] <7037> =============================================================== +INFO [2014-07-04 10:51:50:994] <7037> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 10:51:50:994] <7037> card Pay Start! +INFO [2014-07-04 10:51:50:994] <7037> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 10:51:50:994] <7037> StoreId:acetel +INFO [2014-07-04 10:51:50:994] <7037> log:true +INFO [2014-07-04 10:51:50:994] <7037> logLevel:INFO +INFO [2014-07-04 10:51:50:994] <7037> UseNetCancel:true +INFO [2014-07-04 10:51:50:994] <7037> Type:Pay +INFO [2014-07-04 10:51:50:994] <7037> RecvLen:7 +INFO [2014-07-04 10:51:50:994] <7037> AuthTy:card +INFO [2014-07-04 10:51:50:994] <7037> SubTy:isp +INFO [2014-07-04 10:51:50:994] <7037> OrdNo:20140704105058T75281 +INFO [2014-07-04 10:51:50:994] <7037> Amt:27250 +INFO [2014-07-04 10:51:50:994] <7037> UserEmail:test@empal.com +INFO [2014-07-04 10:51:50:994] <7037> ProdNm:로즈마리 1피스 +INFO [2014-07-04 10:51:50:995] <7037> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 10:51:50:995] <7037> UserId:test11 +INFO [2014-07-04 10:51:50:995] <7037> OrdNm:이름 +INFO [2014-07-04 10:51:50:995] <7037> OrdPhone:111-1111-1111 +INFO [2014-07-04 10:51:50:995] <7037> OrdAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:51:50:995] <7037> RcpNm:이름 +INFO [2014-07-04 10:51:50:995] <7037> RcpPhone:111-1111-1111 +INFO [2014-07-04 10:51:50:995] <7037> DlvAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:51:50:995] <7037> Remark:태스트 +INFO [2014-07-04 10:51:50:995] <7037> DeviId:9000400001 +INFO [2014-07-04 10:51:50:995] <7037> AuthYn:N +INFO [2014-07-04 10:51:50:995] <7037> Instmt:00 +INFO [2014-07-04 10:51:50:995] <7037> UserIp:125.131.234.203 +INFO [2014-07-04 10:51:50:996] <7037> partial_mm:00 +INFO [2014-07-04 10:51:50:996] <7037> noIntMonth: +INFO [2014-07-04 10:51:50:996] <7037> KVP_CURRENCY:WON +INFO [2014-07-04 10:51:50:996] <7037> KVP_CARDCODE:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 10:51:50:996] <7037> KVP_SESSIONKEY:EjCM1ayCRcvV5X0h4PfpFPatTXP9XwbaRWjGwl55oO8PRqRRzAEFmLpT79jXQsCVzg4DnWVD+yNSbVD+GpGs6cRPFmbA8gnfHkWCJqkSdhOzBdGDmYHlkqGjHQ3mzwa6y7sefhGu/gOiWoJy1VQJQcRLhGRaUYhwOGAkHW++AhM= +INFO [2014-07-04 10:51:50:996] <7037> KVP_ENCDATA:cdata=KCY7wbS/DaFmPhEPXJLXlCA8DFvfcZlARH6YIB0wZuhOm0nFi3kTiGeEug8pdsnwmvvx/gOzlb03Ex89qVwdRsjcujmiXYTNJWJtrHjJdE2iCrG3gjFVyvPSVdIFIHeQACEEEDKarapLrpE82Ktjir+saeZdu13ZbErJdZWi568fBp3zKdAl47l1oLkvkEdbyMYqEgpkCB4/TeVG6Ej9R6q8C0HbNNNHt7d5DL29OPTGcspMGb5Ako7qBF9vEyyCPZAAgIl64QSi4iSXucfMAkXjkA7TGDE00sR3fFwNBfLcfoc879JGH6CgPenew3Xk1CPaSy/19IQFhzLiZehfNkEuPLmuIzc6ZhPAr4ffLaoUKCpT28yM9YNZC/JIwB1ds/gOwMj5te+BLDLSnTmwqsqJ4RHZV2OAVfzXuLQT2KEvG+lbik45KV1FGWbyHX19Rgqzcfg5BErHmLKe5k7/0vL8Fn+Q3xRGD4JCRuTudG1bZfMuleZLUkbNQe6wNIGO0YWFUgzOqpnCUUWtZIPkzRlgy8d5JuBZkxOIP3ZCTywutTv6AFLx3Ds/CAbcj1T/ +INFO [2014-07-04 10:51:50:996] <7037> KVP_CONAME:안전결제서비스 +INFO [2014-07-04 10:51:50:996] <7037> KVP_NOINT:0 +INFO [2014-07-04 10:51:50:996] <7037> KVP_QUOTA:00 +INFO [2014-07-04 10:51:50:996] <7037> CardNo: +INFO [2014-07-04 10:51:50:996] <7037> MPI_CAVV: +INFO [2014-07-04 10:51:50:996] <7037> MPI_ECI: +INFO [2014-07-04 10:51:50:996] <7037> MPI_MD64: +INFO [2014-07-04 10:51:50:996] <7037> ExpMon: +INFO [2014-07-04 10:51:50:997] <7037> ExpYear: +INFO [2014-07-04 10:51:50:997] <7037> Passwd: +INFO [2014-07-04 10:51:50:997] <7037> SocId: +INFO [2014-07-04 10:51:50:997] <7037> HP_SERVERINFO: +INFO [2014-07-04 10:51:50:997] <7037> HP_HANDPHONE: +INFO [2014-07-04 10:51:50:997] <7037> HP_COMPANY: +INFO [2014-07-04 10:51:50:997] <7037> HP_ID: +INFO [2014-07-04 10:51:50:997] <7037> HP_SUBID: +INFO [2014-07-04 10:51:50:997] <7037> HP_UNITType: +INFO [2014-07-04 10:51:50:997] <7037> HP_IDEN: +INFO [2014-07-04 10:51:50:997] <7037> HP_IPADDR: +INFO [2014-07-04 10:51:50:997] <7037> VIRTUAL_CENTERCD: +INFO [2014-07-04 10:51:50:997] <7037> VIRTUAL_DEPODT: +INFO [2014-07-04 10:51:50:997] <7037> ZuminCode: +INFO [2014-07-04 10:51:50:997] <7037> MallPage: +INFO [2014-07-04 10:51:50:997] <7037> VIRTUAL_NO: +INFO [2014-07-04 10:51:50:997] <7037> ES_SENDNO: +INFO [2014-07-04 10:51:50:997] <7037> Column1:222-2222-2222 +INFO [2014-07-04 10:51:50:997] <7037> Column2:222-2222-2222 +INFO [2014-07-04 10:51:50:997] <7037> Column3:0---cardnormal +INFO [2014-07-04 10:51:50:998] <7037> Make NetCancel ID Start +INFO [2014-07-04 10:51:50:998] <7037> AEGIS_ISP_acetel_20140704105150998105 +INFO [2014-07-04 10:51:50:998] <7037> Make NetCancel ID End +INFO [2014-07-04 10:51:50:998] <7037> Make NetCancelID OK +INFO [2014-07-04 10:51:50:998] <7037> Make Msg Start +INFO [2014-07-04 10:51:50:998] <7037> card-isp Make MSG OK +INFO [2014-07-04 10:51:50:998] <7037> Make Msg End +INFO [2014-07-04 10:51:50:998] <7037> Make Pay Msg OK +INFO [2014-07-04 10:51:50:998] <7037> Send & Recv Msg Start +INFO [2014-07-04 10:51:50:998] <7037> Send Data To PG Start [ +INFO [2014-07-04 10:51:50:998] <7037> 0:0010882plug15 +INFO [2014-07-04 10:51:50:998] <7037> 1:acetel +INFO [2014-07-04 10:51:50:998] <7037> 2:test11 +INFO [2014-07-04 10:51:50:998] <7037> 3:27250 +INFO [2014-07-04 10:51:50:998] <7037> 4:20140704105058T75281 +INFO [2014-07-04 10:51:50:998] <7037> 5:9000400001 +INFO [2014-07-04 10:51:50:998] <7037> 6:이름 +INFO [2014-07-04 10:51:50:998] <7037> 7:111-1111-1111 +INFO [2014-07-04 10:51:50:998] <7037> 8:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:51:50:998] <7037> 9:이름 +INFO [2014-07-04 10:51:50:998] <7037> 10:111-1111-1111 +INFO [2014-07-04 10:51:50:998] <7037> 11:태스트 +INFO [2014-07-04 10:51:50:998] <7037> 12:로즈마리 1피스 +INFO [2014-07-04 10:51:50:998] <7037> 13:WON +INFO [2014-07-04 10:51:50:998] <7037> 14:00 +INFO [2014-07-04 10:51:50:998] <7037> 15: +INFO [2014-07-04 10:51:50:998] <7037> 16:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 10:51:50:998] <7037> 17:EjCM1ayCRcvV5X0h4PfpFPatTXP9XwbaRWjGwl55oO8PRqRRzAEFmLpT79jXQsCVzg4DnWVD+yNSbVD+GpGs6cRPFmbA8gnfHkWCJqkSdhOzBdGDmYHlkqGjHQ3mzwa6y7sefhGu/gOiWoJy1VQJQcRLhGRaUYhwOGAkHW++AhM= +INFO [2014-07-04 10:51:50:998] <7037> 18:cdata=KCY7wbS/DaFmPhEPXJLXlCA8DFvfcZlARH6YIB0wZuhOm0nFi3kTiGeEug8pdsnwmvvx/gOzlb03Ex89qVwdRsjcujmiXYTNJWJtrHjJdE2iCrG3gjFVyvPSVdIFIHeQACEEEDKarapLrpE82Ktjir+saeZdu13ZbErJdZWi568fBp3zKdAl47l1oLkvkEdbyMYqEgpkCB4/TeVG6Ej9R6q8C0HbNNNHt7d5DL29OPTGcspMGb5Ako7qBF9vEyyCPZAAgIl64QSi4iSXucfMAkXjkA7TGDE00sR3fFwNBfLcfoc879JGH6CgPenew3Xk1CPaSy/19IQFhzLiZehfNkEuPLmuIzc6ZhPAr4ffLaoUKCpT28yM9YNZC/JIwB1ds/gOwMj5te+BLDLSnTmwqsqJ4RHZV2OAVfzXuLQT2KEvG+lbik45KV1FGWbyHX19Rgqzcfg5BErHmLKe5k7/0vL8Fn+Q3xRGD4JCRuTudG1bZfMuleZLUkbNQe6wNIGO0YWFUgzOqpnCUUWtZIPkzRlgy8d5JuBZkxOIP3ZCTywutTv6AFLx3Ds/CAbcj1T/ +INFO [2014-07-04 10:51:50:998] <7037> 19:안전결제서비스 +INFO [2014-07-04 10:51:50:998] <7037> 20:125.131.234.203 +INFO [2014-07-04 10:51:50:998] <7037> 21:test@empal.com +INFO [2014-07-04 10:51:50:998] <7037> 22:AEGIS_ISP_acetel_20140704105150998105 +INFO [2014-07-04 10:51:50:998] <7037> 23: +INFO [2014-07-04 10:51:50:999] <7037> ] Send Data To PG End +INFO [2014-07-04 10:51:50:999] <7037> SendMsg : [0010882plug15|acetel|test11|27250|20140704105058T75281|9000400001|이름|111-1111-1111|135-722---서울 강남구 신사동 강남빌딩---1234|이름|111-1111-1111|태스트|로즈마리 1피스|WON|00||000100202428681;125.131.234.203;N;;27250;;|EjCM1ayCRcvV5X0h4PfpFPatTXP9XwbaRWjGwl55oO8PRqRRzAEFmLpT79jXQsCVzg4DnWVD+yNSbVD+GpGs6cRPFmbA8gnfHkWCJqkSdhOzBdGDmYHlkqGjHQ3mzwa6y7sefhGu/gOiWoJy1VQJQcRLhGRaUYhwOGAkHW++AhM=|cdata=KCY7wbS/DaFmPhEPXJLXlCA8DFvfcZlARH6YIB0wZuhOm0nFi3kTiGeEug8pdsnwmvvx/gOzlb03Ex89qVwdRsjcujmiXYTNJWJtrHjJdE2iCrG3gjFVyvPSVdIFIHeQACEEEDKarapLrpE82Ktjir+saeZdu13ZbErJdZWi568fBp3zKdAl47l1oLkvkEdbyMYqEgpkCB4/TeVG6Ej9R6q8C0HbNNNHt7d5DL29OPTGcspMGb5Ako7qBF9vEyyCPZAAgIl64QSi4iSXucfMAkXjkA7TGDE00sR3fFwNBfLcfoc879JGH6CgPenew3Xk1CPaSy/19IQFhzLiZehfNkEuPLmuIzc6ZhPAr4ffLaoUKCpT28yM9YNZC/JIwB1ds/gOwMj5te+BLDLSnTmwqsqJ4RHZV2OAVfzXuLQT2KEvG+lbik45KV1FGWbyHX19Rgqzcfg5BErHmLKe5k7/0vL8Fn+Q3xRGD4JCRuTudG1bZfMuleZLUkbNQe6wNIGO0YWFUgzOqpnCUUWtZIPkzRlgy8d5JuBZkxOIP3ZCTywutTv6AFLx3Ds/CAbcj1T/|안전결제서비스|125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704105150998105|] +INFO [2014-07-04 10:51:50:999] <7037> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 10:51:51:3] <7037> Socket Open OK +INFO [2014-07-04 10:51:53:861] <7037> RecvMsg Length : [000083] +INFO [2014-07-04 10:51:53:861] <7037> RecvMsg : [acetel|0610|101913|55426230|27250|y|:20140704105058T75281|20140704105157|0100| +] +INFO [2014-07-04 10:51:53:861] <7037> Socket Close OK +INFO [2014-07-04 10:51:53:861] <7037> RecvMsg Length Check OK +INFO [2014-07-04 10:51:53:861] <7037> Send & Recv Msg End +INFO [2014-07-04 10:51:53:861] <7037> Send & Recv Msg OK +INFO [2014-07-04 10:51:53:861] <7037> Parse Msg Start +INFO [2014-07-04 10:51:53:861] <7037> card-isp RECV MSG Parsing OK +INFO [2014-07-04 10:51:53:862] <7037> Parse Msg End +INFO [2014-07-04 10:51:53:862] <7037> Msg Parsing OK +INFO [2014-07-04 10:51:53:862] <7037> card Pay Result Value [ +INFO [2014-07-04 10:51:53:862] <7037> NetCancID:AEGIS_ISP_acetel_20140704105150998105 +INFO [2014-07-04 10:51:53:862] <7037> rStoreId:acetel +INFO [2014-07-04 10:51:53:862] <7037> rBusiCd:0610 +INFO [2014-07-04 10:51:53:862] <7037> rOrdNo:20140704105058T75281 +INFO [2014-07-04 10:51:53:862] <7037> rDealNo:101913 +INFO [2014-07-04 10:51:53:862] <7037> rApprNo:55426230 +INFO [2014-07-04 10:51:53:862] <7037> rProdNm:로즈마리 1피스 +INFO [2014-07-04 10:51:53:862] <7037> rAmt:27250 +INFO [2014-07-04 10:51:53:862] <7037> rInstmt:00 +INFO [2014-07-04 10:51:53:862] <7037> rSuccYn:y +INFO [2014-07-04 10:51:53:862] <7037> rResMsg::20140704105058T75281 +INFO [2014-07-04 10:51:53:863] <7037> rApprTm:20140704105157 +INFO [2014-07-04 10:51:53:863] <7037> rCardCd:0100 +INFO [2014-07-04 10:51:53:863] <7037> ] +INFO [2014-07-04 10:51:53:863] <7037> END :20140704105058T75281 Transaction time:[2.87sec] +INFO [2014-07-04 10:51:53:863] <7037> =============================================================== +INFO [2014-07-04 10:52:13:897] <7160> =============================================================== +INFO [2014-07-04 10:52:13:897] <7160> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 10:52:13:897] <7160> card Pay Start! +INFO [2014-07-04 10:52:13:897] <7160> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 10:52:13:897] <7160> StoreId:acetel +INFO [2014-07-04 10:52:13:897] <7160> log:true +INFO [2014-07-04 10:52:13:898] <7160> logLevel:INFO +INFO [2014-07-04 10:52:13:898] <7160> UseNetCancel:true +INFO [2014-07-04 10:52:13:898] <7160> Type:Pay +INFO [2014-07-04 10:52:13:898] <7160> RecvLen:7 +INFO [2014-07-04 10:52:13:898] <7160> AuthTy:card +INFO [2014-07-04 10:52:13:898] <7160> SubTy:isp +INFO [2014-07-04 10:52:13:898] <7160> OrdNo:20140704105058T75281 +INFO [2014-07-04 10:52:13:898] <7160> Amt:27250 +INFO [2014-07-04 10:52:13:898] <7160> UserEmail:test@empal.com +INFO [2014-07-04 10:52:13:898] <7160> ProdNm:로즈마리 1피스 +INFO [2014-07-04 10:52:13:898] <7160> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 10:52:13:898] <7160> UserId:test11 +INFO [2014-07-04 10:52:13:898] <7160> OrdNm:이름 +INFO [2014-07-04 10:52:13:898] <7160> OrdPhone:111-1111-1111 +INFO [2014-07-04 10:52:13:898] <7160> OrdAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:52:13:898] <7160> RcpNm:이름 +INFO [2014-07-04 10:52:13:898] <7160> RcpPhone:111-1111-1111 +INFO [2014-07-04 10:52:13:898] <7160> DlvAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:52:13:898] <7160> Remark:태스트 +INFO [2014-07-04 10:52:13:899] <7160> DeviId:9000400001 +INFO [2014-07-04 10:52:13:899] <7160> AuthYn:N +INFO [2014-07-04 10:52:13:899] <7160> Instmt:00 +INFO [2014-07-04 10:52:13:899] <7160> UserIp:125.131.234.203 +INFO [2014-07-04 10:52:13:899] <7160> partial_mm:00 +INFO [2014-07-04 10:52:13:899] <7160> noIntMonth: +INFO [2014-07-04 10:52:13:899] <7160> KVP_CURRENCY:WON +INFO [2014-07-04 10:52:13:899] <7160> KVP_CARDCODE:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 10:52:13:899] <7160> KVP_SESSIONKEY:EjCM1ayCRcvV5X0h4PfpFPatTXP9XwbaRWjGwl55oO8PRqRRzAEFmLpT79jXQsCVzg4DnWVD+yNSbVD+GpGs6cRPFmbA8gnfHkWCJqkSdhOzBdGDmYHlkqGjHQ3mzwa6y7sefhGu/gOiWoJy1VQJQcRLhGRaUYhwOGAkHW++AhM= +INFO [2014-07-04 10:52:13:899] <7160> KVP_ENCDATA:cdata=KCY7wbS/DaFmPhEPXJLXlCA8DFvfcZlARH6YIB0wZuhOm0nFi3kTiGeEug8pdsnwmvvx/gOzlb03Ex89qVwdRsjcujmiXYTNJWJtrHjJdE2iCrG3gjFVyvPSVdIFIHeQACEEEDKarapLrpE82Ktjir+saeZdu13ZbErJdZWi568fBp3zKdAl47l1oLkvkEdbyMYqEgpkCB4/TeVG6Ej9R6q8C0HbNNNHt7d5DL29OPTGcspMGb5Ako7qBF9vEyyCPZAAgIl64QSi4iSXucfMAkXjkA7TGDE00sR3fFwNBfLcfoc879JGH6CgPenew3Xk1CPaSy/19IQFhzLiZehfNkEuPLmuIzc6ZhPAr4ffLaoUKCpT28yM9YNZC/JIwB1ds/gOwMj5te+BLDLSnTmwqsqJ4RHZV2OAVfzXuLQT2KEvG+lbik45KV1FGWbyHX19Rgqzcfg5BErHmLKe5k7/0vL8Fn+Q3xRGD4JCRuTudG1bZfMuleZLUkbNQe6wNIGO0YWFUgzOqpnCUUWtZIPkzRlgy8d5JuBZkxOIP3ZCTywutTv6AFLx3Ds/CAbcj1T/ +INFO [2014-07-04 10:52:13:899] <7160> KVP_CONAME:안전결제서비스 +INFO [2014-07-04 10:52:13:899] <7160> KVP_NOINT:0 +INFO [2014-07-04 10:52:13:899] <7160> KVP_QUOTA:00 +INFO [2014-07-04 10:52:13:899] <7160> CardNo: +INFO [2014-07-04 10:52:13:899] <7160> MPI_CAVV: +INFO [2014-07-04 10:52:13:899] <7160> MPI_ECI: +INFO [2014-07-04 10:52:13:899] <7160> MPI_MD64: +INFO [2014-07-04 10:52:13:899] <7160> ExpMon: +INFO [2014-07-04 10:52:13:899] <7160> ExpYear: +INFO [2014-07-04 10:52:13:899] <7160> Passwd: +INFO [2014-07-04 10:52:13:900] <7160> SocId: +INFO [2014-07-04 10:52:13:900] <7160> HP_SERVERINFO: +INFO [2014-07-04 10:52:13:900] <7160> HP_HANDPHONE: +INFO [2014-07-04 10:52:13:900] <7160> HP_COMPANY: +INFO [2014-07-04 10:52:13:900] <7160> HP_ID: +INFO [2014-07-04 10:52:13:900] <7160> HP_SUBID: +INFO [2014-07-04 10:52:13:900] <7160> HP_UNITType: +INFO [2014-07-04 10:52:13:900] <7160> HP_IDEN: +INFO [2014-07-04 10:52:13:900] <7160> HP_IPADDR: +INFO [2014-07-04 10:52:13:900] <7160> VIRTUAL_CENTERCD: +INFO [2014-07-04 10:52:13:900] <7160> VIRTUAL_DEPODT: +INFO [2014-07-04 10:52:13:900] <7160> ZuminCode: +INFO [2014-07-04 10:52:13:900] <7160> MallPage: +INFO [2014-07-04 10:52:13:900] <7160> VIRTUAL_NO: +INFO [2014-07-04 10:52:13:900] <7160> ES_SENDNO: +INFO [2014-07-04 10:52:13:900] <7160> Column1:222-2222-2222 +INFO [2014-07-04 10:52:13:900] <7160> Column2:222-2222-2222 +INFO [2014-07-04 10:52:13:901] <7160> Column3:0---cardnormal +INFO [2014-07-04 10:52:13:901] <7160> Make NetCancel ID Start +INFO [2014-07-04 10:52:13:901] <7160> AEGIS_ISP_acetel_20140704105213901909 +INFO [2014-07-04 10:52:13:901] <7160> Make NetCancel ID End +INFO [2014-07-04 10:52:13:901] <7160> Make NetCancelID OK +INFO [2014-07-04 10:52:13:901] <7160> Make Msg Start +INFO [2014-07-04 10:52:13:901] <7160> card-isp Make MSG OK +INFO [2014-07-04 10:52:13:901] <7160> Make Msg End +INFO [2014-07-04 10:52:13:901] <7160> Make Pay Msg OK +INFO [2014-07-04 10:52:13:901] <7160> Send & Recv Msg Start +INFO [2014-07-04 10:52:13:901] <7160> Send Data To PG Start [ +INFO [2014-07-04 10:52:13:901] <7160> 0:0010882plug15 +INFO [2014-07-04 10:52:13:901] <7160> 1:acetel +INFO [2014-07-04 10:52:13:901] <7160> 2:test11 +INFO [2014-07-04 10:52:13:901] <7160> 3:27250 +INFO [2014-07-04 10:52:13:901] <7160> 4:20140704105058T75281 +INFO [2014-07-04 10:52:13:901] <7160> 5:9000400001 +INFO [2014-07-04 10:52:13:901] <7160> 6:이름 +INFO [2014-07-04 10:52:13:901] <7160> 7:111-1111-1111 +INFO [2014-07-04 10:52:13:901] <7160> 8:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:52:13:901] <7160> 9:이름 +INFO [2014-07-04 10:52:13:901] <7160> 10:111-1111-1111 +INFO [2014-07-04 10:52:13:901] <7160> 11:태스트 +INFO [2014-07-04 10:52:13:901] <7160> 12:로즈마리 1피스 +INFO [2014-07-04 10:52:13:901] <7160> 13:WON +INFO [2014-07-04 10:52:13:901] <7160> 14:00 +INFO [2014-07-04 10:52:13:901] <7160> 15: +INFO [2014-07-04 10:52:13:901] <7160> 16:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 10:52:13:901] <7160> 17:EjCM1ayCRcvV5X0h4PfpFPatTXP9XwbaRWjGwl55oO8PRqRRzAEFmLpT79jXQsCVzg4DnWVD+yNSbVD+GpGs6cRPFmbA8gnfHkWCJqkSdhOzBdGDmYHlkqGjHQ3mzwa6y7sefhGu/gOiWoJy1VQJQcRLhGRaUYhwOGAkHW++AhM= +INFO [2014-07-04 10:52:13:901] <7160> 18:cdata=KCY7wbS/DaFmPhEPXJLXlCA8DFvfcZlARH6YIB0wZuhOm0nFi3kTiGeEug8pdsnwmvvx/gOzlb03Ex89qVwdRsjcujmiXYTNJWJtrHjJdE2iCrG3gjFVyvPSVdIFIHeQACEEEDKarapLrpE82Ktjir+saeZdu13ZbErJdZWi568fBp3zKdAl47l1oLkvkEdbyMYqEgpkCB4/TeVG6Ej9R6q8C0HbNNNHt7d5DL29OPTGcspMGb5Ako7qBF9vEyyCPZAAgIl64QSi4iSXucfMAkXjkA7TGDE00sR3fFwNBfLcfoc879JGH6CgPenew3Xk1CPaSy/19IQFhzLiZehfNkEuPLmuIzc6ZhPAr4ffLaoUKCpT28yM9YNZC/JIwB1ds/gOwMj5te+BLDLSnTmwqsqJ4RHZV2OAVfzXuLQT2KEvG+lbik45KV1FGWbyHX19Rgqzcfg5BErHmLKe5k7/0vL8Fn+Q3xRGD4JCRuTudG1bZfMuleZLUkbNQe6wNIGO0YWFUgzOqpnCUUWtZIPkzRlgy8d5JuBZkxOIP3ZCTywutTv6AFLx3Ds/CAbcj1T/ +INFO [2014-07-04 10:52:13:901] <7160> 19:안전결제서비스 +INFO [2014-07-04 10:52:13:901] <7160> 20:125.131.234.203 +INFO [2014-07-04 10:52:13:901] <7160> 21:test@empal.com +INFO [2014-07-04 10:52:13:901] <7160> 22:AEGIS_ISP_acetel_20140704105213901909 +INFO [2014-07-04 10:52:13:901] <7160> 23: +INFO [2014-07-04 10:52:13:902] <7160> ] Send Data To PG End +INFO [2014-07-04 10:52:13:902] <7160> SendMsg : [0010882plug15|acetel|test11|27250|20140704105058T75281|9000400001|이름|111-1111-1111|135-722---서울 강남구 신사동 강남빌딩---1234|이름|111-1111-1111|태스트|로즈마리 1피스|WON|00||000100202428681;125.131.234.203;N;;27250;;|EjCM1ayCRcvV5X0h4PfpFPatTXP9XwbaRWjGwl55oO8PRqRRzAEFmLpT79jXQsCVzg4DnWVD+yNSbVD+GpGs6cRPFmbA8gnfHkWCJqkSdhOzBdGDmYHlkqGjHQ3mzwa6y7sefhGu/gOiWoJy1VQJQcRLhGRaUYhwOGAkHW++AhM=|cdata=KCY7wbS/DaFmPhEPXJLXlCA8DFvfcZlARH6YIB0wZuhOm0nFi3kTiGeEug8pdsnwmvvx/gOzlb03Ex89qVwdRsjcujmiXYTNJWJtrHjJdE2iCrG3gjFVyvPSVdIFIHeQACEEEDKarapLrpE82Ktjir+saeZdu13ZbErJdZWi568fBp3zKdAl47l1oLkvkEdbyMYqEgpkCB4/TeVG6Ej9R6q8C0HbNNNHt7d5DL29OPTGcspMGb5Ako7qBF9vEyyCPZAAgIl64QSi4iSXucfMAkXjkA7TGDE00sR3fFwNBfLcfoc879JGH6CgPenew3Xk1CPaSy/19IQFhzLiZehfNkEuPLmuIzc6ZhPAr4ffLaoUKCpT28yM9YNZC/JIwB1ds/gOwMj5te+BLDLSnTmwqsqJ4RHZV2OAVfzXuLQT2KEvG+lbik45KV1FGWbyHX19Rgqzcfg5BErHmLKe5k7/0vL8Fn+Q3xRGD4JCRuTudG1bZfMuleZLUkbNQe6wNIGO0YWFUgzOqpnCUUWtZIPkzRlgy8d5JuBZkxOIP3ZCTywutTv6AFLx3Ds/CAbcj1T/|안전결제서비스|125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704105213901909|] +INFO [2014-07-04 10:52:13:902] <7160> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 10:52:13:907] <7160> Socket Open OK +INFO [2014-07-04 10:52:15:176] <7160> RecvMsg Length : [000080] +INFO [2014-07-04 10:52:15:176] <7160> RecvMsg : [acetel|0610||||n|ߺ ǽɵ. (ִ 1) ٽ õϿ ֽʽÿ.||| +] +INFO [2014-07-04 10:52:15:176] <7160> Socket Close OK +INFO [2014-07-04 10:52:15:176] <7160> RecvMsg Length Check OK +INFO [2014-07-04 10:52:15:176] <7160> Send & Recv Msg End +INFO [2014-07-04 10:52:15:176] <7160> Send & Recv Msg OK +INFO [2014-07-04 10:52:15:177] <7160> Parse Msg Start +INFO [2014-07-04 10:52:15:177] <7160> card-isp RECV MSG Parsing OK +INFO [2014-07-04 10:52:15:177] <7160> Parse Msg End +INFO [2014-07-04 10:52:15:177] <7160> Msg Parsing OK +INFO [2014-07-04 10:52:15:177] <7160> card Pay Result Value [ +INFO [2014-07-04 10:52:15:177] <7160> NetCancID:AEGIS_ISP_acetel_20140704105213901909 +INFO [2014-07-04 10:52:15:177] <7160> rStoreId:acetel +INFO [2014-07-04 10:52:15:177] <7160> rBusiCd:0610 +INFO [2014-07-04 10:52:15:177] <7160> rOrdNo:20140704105058T75281 +INFO [2014-07-04 10:52:15:177] <7160> rDealNo: +INFO [2014-07-04 10:52:15:177] <7160> rApprNo: +INFO [2014-07-04 10:52:15:177] <7160> rProdNm:로즈마리 1피스 +INFO [2014-07-04 10:52:15:177] <7160> rAmt: +INFO [2014-07-04 10:52:15:178] <7160> rInstmt:00 +INFO [2014-07-04 10:52:15:178] <7160> rSuccYn:n +INFO [2014-07-04 10:52:15:178] <7160> rResMsg:ߺ ǽɵ. (ִ 1) ٽ õϿ ֽʽÿ. +INFO [2014-07-04 10:52:15:178] <7160> rApprTm: +INFO [2014-07-04 10:52:15:178] <7160> rCardCd: +INFO [2014-07-04 10:52:15:178] <7160> ] +INFO [2014-07-04 10:52:15:178] <7160> END ߺ ǽɵ. (ִ 1) ٽ õϿ ֽʽÿ. Transaction time:[1.281sec] +INFO [2014-07-04 10:52:15:178] <7160> =============================================================== +INFO [2014-07-04 10:53:26:72] <7159> =============================================================== +INFO [2014-07-04 10:53:26:72] <7159> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 10:53:26:72] <7159> card Pay Start! +INFO [2014-07-04 10:53:26:72] <7159> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 10:53:26:72] <7159> StoreId:acetel +INFO [2014-07-04 10:53:26:72] <7159> log:true +INFO [2014-07-04 10:53:26:72] <7159> logLevel:INFO +INFO [2014-07-04 10:53:26:72] <7159> UseNetCancel:true +INFO [2014-07-04 10:53:26:72] <7159> Type:Pay +INFO [2014-07-04 10:53:26:72] <7159> RecvLen:7 +INFO [2014-07-04 10:53:26:72] <7159> AuthTy:card +INFO [2014-07-04 10:53:26:72] <7159> SubTy:isp +INFO [2014-07-04 10:53:26:73] <7159> OrdNo:20140704105228T02271 +INFO [2014-07-04 10:53:26:73] <7159> Amt:17800 +INFO [2014-07-04 10:53:26:73] <7159> UserEmail:test@empal.com +INFO [2014-07-04 10:53:26:73] <7159> ProdNm:핑크 드림 +INFO [2014-07-04 10:53:26:73] <7159> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 10:53:26:73] <7159> UserId:test11 +INFO [2014-07-04 10:53:26:73] <7159> OrdNm:이름 +INFO [2014-07-04 10:53:26:73] <7159> OrdPhone:111-1111-1111 +INFO [2014-07-04 10:53:26:73] <7159> OrdAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:53:26:73] <7159> RcpNm:이름 +INFO [2014-07-04 10:53:26:73] <7159> RcpPhone:111-1111-1111 +INFO [2014-07-04 10:53:26:73] <7159> DlvAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:53:26:73] <7159> Remark:태스트 +INFO [2014-07-04 10:53:26:74] <7159> DeviId:9000400001 +INFO [2014-07-04 10:53:26:74] <7159> AuthYn:N +INFO [2014-07-04 10:53:26:74] <7159> Instmt:00 +INFO [2014-07-04 10:53:26:74] <7159> UserIp:125.131.234.203 +INFO [2014-07-04 10:53:26:74] <7159> partial_mm:00 +INFO [2014-07-04 10:53:26:74] <7159> noIntMonth: +INFO [2014-07-04 10:53:26:74] <7159> KVP_CURRENCY:WON +INFO [2014-07-04 10:53:26:74] <7159> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 10:53:26:74] <7159> KVP_SESSIONKEY:ENDvjeth+J5o0dOPNuXzXrN9SwGRm0DcOLBEHh2xjLIJ9I0TCxhlpNkktvfko9RSQvc0NqUd/vs4JOJltUxybl/vof6kXQ7AXOfl8G33QhkWDq6MOiBPZLOARK3cx9mBhfL8Y1EDq4yPAMJdSdS+KN6AiYGv7FBlL0f2GyG0Tvk= +INFO [2014-07-04 10:53:26:74] <7159> KVP_ENCDATA:cdata=oCahOHcutzpsfLHbUhSsQSoeljztE7VtkGtw27gOIC0Uj5g7MbMsSfXO2tx/o48x87tfHdxA4Vnl3CPDeZO3pJxqTPedgBTRYU8sxEH/PAV3ubVmobIZxFJN+xt7JC74rCNqoWtpO6HJa+dscG4N5fJsusqGIpnQYf1BiGjr2NhITqWip8rD8FoWRaVY6CD1OuFtRzHXl5DsREkkT62YuiJLemZ9ceR5sdm6r+8ZZkFgideXDgr4O9MElzAsDfn2EiDtRmKsJjgR9dzcUvlrEZCQurVOmvMPykGp2sNRiTNUUbwRBla3NYzyEoRb02r5MvPmE8y80Se2zkZrt/gkEu2j6xTDCaGU0q4CmWQ7wDxizqL6dj8WiWpj9qv9ENSb5X8Eh7Nyn0TT2XwnUds7G7IKBLzllne2ZR2gM1RnGlzt2gNuRGUt3jJKtYDxYsqnUVRsBqnnQeQvxB+osi8/EmEW6TU/mMqnmkyCGsGfgH8Bmn7m0lKsrmQoZuKgQBnZp/4K7MC5uCCnks+503cp3QE2j1IDFDV4a+abfXcVgfk= +INFO [2014-07-04 10:53:26:74] <7159> KVP_CONAME:안전결제서비스 +INFO [2014-07-04 10:53:26:74] <7159> KVP_NOINT:0 +INFO [2014-07-04 10:53:26:74] <7159> KVP_QUOTA:00 +INFO [2014-07-04 10:53:26:74] <7159> CardNo: +INFO [2014-07-04 10:53:26:74] <7159> MPI_CAVV: +INFO [2014-07-04 10:53:26:74] <7159> MPI_ECI: +INFO [2014-07-04 10:53:26:75] <7159> MPI_MD64: +INFO [2014-07-04 10:53:26:75] <7159> ExpMon: +INFO [2014-07-04 10:53:26:75] <7159> ExpYear: +INFO [2014-07-04 10:53:26:75] <7159> Passwd: +INFO [2014-07-04 10:53:26:75] <7159> SocId: +INFO [2014-07-04 10:53:26:75] <7159> HP_SERVERINFO: +INFO [2014-07-04 10:53:26:75] <7159> HP_HANDPHONE: +INFO [2014-07-04 10:53:26:75] <7159> HP_COMPANY: +INFO [2014-07-04 10:53:26:75] <7159> HP_ID: +INFO [2014-07-04 10:53:26:75] <7159> HP_SUBID: +INFO [2014-07-04 10:53:26:75] <7159> HP_UNITType: +INFO [2014-07-04 10:53:26:75] <7159> HP_IDEN: +INFO [2014-07-04 10:53:26:75] <7159> HP_IPADDR: +INFO [2014-07-04 10:53:26:75] <7159> VIRTUAL_CENTERCD: +INFO [2014-07-04 10:53:26:75] <7159> VIRTUAL_DEPODT: +INFO [2014-07-04 10:53:26:75] <7159> ZuminCode: +INFO [2014-07-04 10:53:26:75] <7159> MallPage: +INFO [2014-07-04 10:53:26:75] <7159> VIRTUAL_NO: +INFO [2014-07-04 10:53:26:75] <7159> ES_SENDNO: +INFO [2014-07-04 10:53:26:76] <7159> Column1:222-2222-2222 +INFO [2014-07-04 10:53:26:76] <7159> Column2:222-2222-2222 +INFO [2014-07-04 10:53:26:76] <7159> Column3:0---cardnormal +INFO [2014-07-04 10:53:26:76] <7159> Make NetCancel ID Start +INFO [2014-07-04 10:53:26:76] <7159> AEGIS_ISP_acetel_20140704105326076830 +INFO [2014-07-04 10:53:26:76] <7159> Make NetCancel ID End +INFO [2014-07-04 10:53:26:76] <7159> Make NetCancelID OK +INFO [2014-07-04 10:53:26:76] <7159> Make Msg Start +INFO [2014-07-04 10:53:26:76] <7159> card-isp Make MSG OK +INFO [2014-07-04 10:53:26:76] <7159> Make Msg End +INFO [2014-07-04 10:53:26:76] <7159> Make Pay Msg OK +INFO [2014-07-04 10:53:26:76] <7159> Send & Recv Msg Start +INFO [2014-07-04 10:53:26:76] <7159> Send Data To PG Start [ +INFO [2014-07-04 10:53:26:76] <7159> 0:0010612plug15 +INFO [2014-07-04 10:53:26:76] <7159> 1:acetel +INFO [2014-07-04 10:53:26:76] <7159> 2:test11 +INFO [2014-07-04 10:53:26:76] <7159> 3:17800 +INFO [2014-07-04 10:53:26:76] <7159> 4:20140704105228T02271 +INFO [2014-07-04 10:53:26:76] <7159> 5:9000400001 +INFO [2014-07-04 10:53:26:76] <7159> 6:이름 +INFO [2014-07-04 10:53:26:76] <7159> 7:111-1111-1111 +INFO [2014-07-04 10:53:26:76] <7159> 8:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:53:26:76] <7159> 9:이름 +INFO [2014-07-04 10:53:26:76] <7159> 10:111-1111-1111 +INFO [2014-07-04 10:53:26:76] <7159> 11:태스트 +INFO [2014-07-04 10:53:26:76] <7159> 12:핑크 드림 +INFO [2014-07-04 10:53:26:76] <7159> 13:WON +INFO [2014-07-04 10:53:26:76] <7159> 14:00 +INFO [2014-07-04 10:53:26:76] <7159> 15: +INFO [2014-07-04 10:53:26:76] <7159> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 10:53:26:76] <7159> 17:ENDvjeth+J5o0dOPNuXzXrN9SwGRm0DcOLBEHh2xjLIJ9I0TCxhlpNkktvfko9RSQvc0NqUd/vs4JOJltUxybl/vof6kXQ7AXOfl8G33QhkWDq6MOiBPZLOARK3cx9mBhfL8Y1EDq4yPAMJdSdS+KN6AiYGv7FBlL0f2GyG0Tvk= +INFO [2014-07-04 10:53:26:76] <7159> 18:cdata=oCahOHcutzpsfLHbUhSsQSoeljztE7VtkGtw27gOIC0Uj5g7MbMsSfXO2tx/o48x87tfHdxA4Vnl3CPDeZO3pJxqTPedgBTRYU8sxEH/PAV3ubVmobIZxFJN+xt7JC74rCNqoWtpO6HJa+dscG4N5fJsusqGIpnQYf1BiGjr2NhITqWip8rD8FoWRaVY6CD1OuFtRzHXl5DsREkkT62YuiJLemZ9ceR5sdm6r+8ZZkFgideXDgr4O9MElzAsDfn2EiDtRmKsJjgR9dzcUvlrEZCQurVOmvMPykGp2sNRiTNUUbwRBla3NYzyEoRb02r5MvPmE8y80Se2zkZrt/gkEu2j6xTDCaGU0q4CmWQ7wDxizqL6dj8WiWpj9qv9ENSb5X8Eh7Nyn0TT2XwnUds7G7IKBLzllne2ZR2gM1RnGlzt2gNuRGUt3jJKtYDxYsqnUVRsBqnnQeQvxB+osi8/EmEW6TU/mMqnmkyCGsGfgH8Bmn7m0lKsrmQoZuKgQBnZp/4K7MC5uCCnks+503cp3QE2j1IDFDV4a+abfXcVgfk= +INFO [2014-07-04 10:53:26:76] <7159> 19:안전결제서비스 +INFO [2014-07-04 10:53:26:76] <7159> 20:125.131.234.203 +INFO [2014-07-04 10:53:26:76] <7159> 21:test@empal.com +INFO [2014-07-04 10:53:26:76] <7159> 22:AEGIS_ISP_acetel_20140704105326076830 +INFO [2014-07-04 10:53:26:76] <7159> 23: +INFO [2014-07-04 10:53:26:77] <7159> ] Send Data To PG End +INFO [2014-07-04 10:53:26:77] <7159> SendMsg : [0010612plug15|acetel|test11|17800|20140704105228T02271|9000400001|이름|111-1111-1111|135-722---서울 강남구 신사동 강남빌딩---1234|이름|111-1111-1111|태스트|핑크 드림|WON|00||000100202428681;125.131.234.203;N;;17800;;|ENDvjeth+J5o0dOPNuXzXrN9SwGRm0DcOLBEHh2xjLIJ9I0TCxhlpNkktvfko9RSQvc0NqUd/vs4JOJltUxybl/vof6kXQ7AXOfl8G33QhkWDq6MOiBPZLOARK3cx9mBhfL8Y1EDq4yPAMJdSdS+KN6AiYGv7FBlL0f2GyG0Tvk=|cdata=oCahOHcutzpsfLHbUhSsQSoeljztE7VtkGtw27gOIC0Uj5g7MbMsSfXO2tx/o48x87tfHdxA4Vnl3CPDeZO3pJxqTPedgBTRYU8sxEH/PAV3ubVmobIZxFJN+xt7JC74rCNqoWtpO6HJa+dscG4N5fJsusqGIpnQYf1BiGjr2NhITqWip8rD8FoWRaVY6CD1OuFtRzHXl5DsREkkT62YuiJLemZ9ceR5sdm6r+8ZZkFgideXDgr4O9MElzAsDfn2EiDtRmKsJjgR9dzcUvlrEZCQurVOmvMPykGp2sNRiTNUUbwRBla3NYzyEoRb02r5MvPmE8y80Se2zkZrt/gkEu2j6xTDCaGU0q4CmWQ7wDxizqL6dj8WiWpj9qv9ENSb5X8Eh7Nyn0TT2XwnUds7G7IKBLzllne2ZR2gM1RnGlzt2gNuRGUt3jJKtYDxYsqnUVRsBqnnQeQvxB+osi8/EmEW6TU/mMqnmkyCGsGfgH8Bmn7m0lKsrmQoZuKgQBnZp/4K7MC5uCCnks+503cp3QE2j1IDFDV4a+abfXcVgfk=|안전결제서비스|125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704105326076830|] +INFO [2014-07-04 10:53:26:77] <7159> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 10:53:26:82] <7159> Socket Open OK +INFO [2014-07-04 10:53:28:576] <7159> RecvMsg Length : [000083] +INFO [2014-07-04 10:53:28:576] <7159> RecvMsg : [acetel|0610|101925|55428241|17800|y|:20140704105228T02271|20140704105332|0100| +] +INFO [2014-07-04 10:53:28:576] <7159> Socket Close OK +INFO [2014-07-04 10:53:28:576] <7159> RecvMsg Length Check OK +INFO [2014-07-04 10:53:28:576] <7159> Send & Recv Msg End +INFO [2014-07-04 10:53:28:576] <7159> Send & Recv Msg OK +INFO [2014-07-04 10:53:28:576] <7159> Parse Msg Start +INFO [2014-07-04 10:53:28:576] <7159> card-isp RECV MSG Parsing OK +INFO [2014-07-04 10:53:28:576] <7159> Parse Msg End +INFO [2014-07-04 10:53:28:577] <7159> Msg Parsing OK +INFO [2014-07-04 10:53:28:577] <7159> card Pay Result Value [ +INFO [2014-07-04 10:53:28:577] <7159> NetCancID:AEGIS_ISP_acetel_20140704105326076830 +INFO [2014-07-04 10:53:28:577] <7159> rStoreId:acetel +INFO [2014-07-04 10:53:28:577] <7159> rBusiCd:0610 +INFO [2014-07-04 10:53:28:577] <7159> rOrdNo:20140704105228T02271 +INFO [2014-07-04 10:53:28:577] <7159> rDealNo:101925 +INFO [2014-07-04 10:53:28:577] <7159> rApprNo:55428241 +INFO [2014-07-04 10:53:28:577] <7159> rProdNm:핑크 드림 +INFO [2014-07-04 10:53:28:577] <7159> rAmt:17800 +INFO [2014-07-04 10:53:28:577] <7159> rInstmt:00 +INFO [2014-07-04 10:53:28:577] <7159> rSuccYn:y +INFO [2014-07-04 10:53:28:577] <7159> rResMsg::20140704105228T02271 +INFO [2014-07-04 10:53:28:577] <7159> rApprTm:20140704105332 +INFO [2014-07-04 10:53:28:577] <7159> rCardCd:0100 +INFO [2014-07-04 10:53:28:577] <7159> ] +INFO [2014-07-04 10:53:28:577] <7159> END :20140704105228T02271 Transaction time:[2.506sec] +INFO [2014-07-04 10:53:28:577] <7159> =============================================================== +INFO [2014-07-04 10:56:57:134] <7370> =============================================================== +INFO [2014-07-04 10:56:57:134] <7370> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 10:56:57:134] <7370> card Pay Start! +INFO [2014-07-04 10:56:57:134] <7370> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 10:56:57:134] <7370> StoreId:acetel +INFO [2014-07-04 10:56:57:134] <7370> log:true +INFO [2014-07-04 10:56:57:134] <7370> logLevel:INFO +INFO [2014-07-04 10:56:57:134] <7370> UseNetCancel:true +INFO [2014-07-04 10:56:57:135] <7370> Type:Pay +INFO [2014-07-04 10:56:57:135] <7370> RecvLen:7 +INFO [2014-07-04 10:56:57:135] <7370> AuthTy:card +INFO [2014-07-04 10:56:57:135] <7370> SubTy:isp +INFO [2014-07-04 10:56:57:135] <7370> OrdNo:20140704105601T78711 +INFO [2014-07-04 10:56:57:135] <7370> Amt:27250 +INFO [2014-07-04 10:56:57:135] <7370> UserEmail:test@empal.com +INFO [2014-07-04 10:56:57:135] <7370> ProdNm:로즈마리 1피스 +INFO [2014-07-04 10:56:57:135] <7370> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 10:56:57:135] <7370> UserId:test11 +INFO [2014-07-04 10:56:57:135] <7370> OrdNm:이름 +INFO [2014-07-04 10:56:57:135] <7370> OrdPhone:111-1111-1111 +INFO [2014-07-04 10:56:57:135] <7370> OrdAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:56:57:135] <7370> RcpNm:이름 +INFO [2014-07-04 10:56:57:136] <7370> RcpPhone:111-1111-1111 +INFO [2014-07-04 10:56:57:136] <7370> DlvAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:56:57:136] <7370> Remark: +INFO [2014-07-04 10:56:57:136] <7370> DeviId:9000400001 +INFO [2014-07-04 10:56:57:136] <7370> AuthYn:N +INFO [2014-07-04 10:56:57:136] <7370> Instmt:00 +INFO [2014-07-04 10:56:57:136] <7370> UserIp:125.131.234.203 +INFO [2014-07-04 10:56:57:136] <7370> partial_mm:00 +INFO [2014-07-04 10:56:57:136] <7370> noIntMonth: +INFO [2014-07-04 10:56:57:136] <7370> KVP_CURRENCY:WON +INFO [2014-07-04 10:56:57:136] <7370> KVP_CARDCODE:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 10:56:57:136] <7370> KVP_SESSIONKEY:Fycbuw+cTRtwn13wOub1/K/rkeH2hA1zRA+7G+HV4A2/Y1RotT2ieSzqBwuQNYBLDxEPTyiE3P9844Xdab7+10kG1+vOrz6ltrJumY865+PkCTC+Y7+SDbFdZKbVcQV3RO0D65lk/5LZ1GFaQtsF1SXmaYYZ8Dxa6bCgdekxA2s= +INFO [2014-07-04 10:56:57:136] <7370> KVP_ENCDATA:cdata=hnTnHlWDniqb+6aW3PiHqB9mmAwXNWvr75rGH+9+TdVC+x3rS3hLMZzMEqhm0Ato3bI3/rq/zAVv0REZ2Td2lst6M+wZCpxeJ/T1FVFHO+I98aNEndBzmrb64Ob4LLW39Pah8ifbNKslaMvJ4NinUw8+QVoDf0PkrnrdSncTdTHS/R3Pi7ORNbLHUbsg1Ita9nEI0RVWjHp25bvXFsso1WrRwcXA+flF72Hb10T3DRbjRoEVl6HC+pJwVlYpg7kucR95vnpsP7rpdb9iiUCPpQ/C/XNK6UE3m4dv4+p/mpcDyXiyRzxRcIeG+T7mtJhOH+mafho0qlJzY39fFLbaQAjnnwOP2iMtZSmeMKs6lYto6XbkPPVyhAvMe5SsRrZQ2zUvHDwhZwXMSgBtD9SX9jjn2+DNm3LqcUJ3kUaXRwwfr1atPDFUhS2jcX9igBlWuGos92di0ROMvgvY1EWb9Ke97eYbMpU/7ktd9vuI271Ezeozp1op+BlFe7jNl+ETPdJyIAVUrBL3JpPCNMNelCX9uNDgjLf2xRgDIjFoYJXArAjMFpD3ec0ZVbX5vTG5 +INFO [2014-07-04 10:56:57:136] <7370> KVP_CONAME:안전결제서비스 +INFO [2014-07-04 10:56:57:137] <7370> KVP_NOINT:0 +INFO [2014-07-04 10:56:57:137] <7370> KVP_QUOTA:00 +INFO [2014-07-04 10:56:57:137] <7370> CardNo: +INFO [2014-07-04 10:56:57:137] <7370> MPI_CAVV: +INFO [2014-07-04 10:56:57:137] <7370> MPI_ECI: +INFO [2014-07-04 10:56:57:137] <7370> MPI_MD64: +INFO [2014-07-04 10:56:57:137] <7370> ExpMon: +INFO [2014-07-04 10:56:57:137] <7370> ExpYear: +INFO [2014-07-04 10:56:57:137] <7370> Passwd: +INFO [2014-07-04 10:56:57:137] <7370> SocId: +INFO [2014-07-04 10:56:57:137] <7370> HP_SERVERINFO: +INFO [2014-07-04 10:56:57:137] <7370> HP_HANDPHONE: +INFO [2014-07-04 10:56:57:137] <7370> HP_COMPANY: +INFO [2014-07-04 10:56:57:137] <7370> HP_ID: +INFO [2014-07-04 10:56:57:138] <7370> HP_SUBID: +INFO [2014-07-04 10:56:57:138] <7370> HP_UNITType: +INFO [2014-07-04 10:56:57:138] <7370> HP_IDEN: +INFO [2014-07-04 10:56:57:138] <7370> HP_IPADDR: +INFO [2014-07-04 10:56:57:138] <7370> VIRTUAL_CENTERCD: +INFO [2014-07-04 10:56:57:138] <7370> VIRTUAL_DEPODT: +INFO [2014-07-04 10:56:57:138] <7370> ZuminCode: +INFO [2014-07-04 10:56:57:138] <7370> MallPage: +INFO [2014-07-04 10:56:57:138] <7370> VIRTUAL_NO: +INFO [2014-07-04 10:56:57:138] <7370> ES_SENDNO: +INFO [2014-07-04 10:56:57:138] <7370> Column1:222-2222-2222 +INFO [2014-07-04 10:56:57:138] <7370> Column2:222-2222-2222 +INFO [2014-07-04 10:56:57:138] <7370> Column3:0---cardnormal +INFO [2014-07-04 10:56:57:138] <7370> Make NetCancel ID Start +INFO [2014-07-04 10:56:57:139] <7370> AEGIS_ISP_acetel_20140704105657139486 +INFO [2014-07-04 10:56:57:139] <7370> Make NetCancel ID End +INFO [2014-07-04 10:56:57:139] <7370> Make NetCancelID OK +INFO [2014-07-04 10:56:57:139] <7370> Make Msg Start +INFO [2014-07-04 10:56:57:139] <7370> card-isp Make MSG OK +INFO [2014-07-04 10:56:57:139] <7370> Make Msg End +INFO [2014-07-04 10:56:57:139] <7370> Make Pay Msg OK +INFO [2014-07-04 10:56:57:139] <7370> Send & Recv Msg Start +INFO [2014-07-04 10:56:57:139] <7370> Send Data To PG Start [ +INFO [2014-07-04 10:56:57:139] <7370> 0:0010792plug15 +INFO [2014-07-04 10:56:57:139] <7370> 1:acetel +INFO [2014-07-04 10:56:57:139] <7370> 2:test11 +INFO [2014-07-04 10:56:57:139] <7370> 3:27250 +INFO [2014-07-04 10:56:57:139] <7370> 4:20140704105601T78711 +INFO [2014-07-04 10:56:57:139] <7370> 5:9000400001 +INFO [2014-07-04 10:56:57:139] <7370> 6:이름 +INFO [2014-07-04 10:56:57:139] <7370> 7:111-1111-1111 +INFO [2014-07-04 10:56:57:139] <7370> 8:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 10:56:57:139] <7370> 9:이름 +INFO [2014-07-04 10:56:57:139] <7370> 10:111-1111-1111 +INFO [2014-07-04 10:56:57:139] <7370> 11: +INFO [2014-07-04 10:56:57:139] <7370> 12:로즈마리 1피스 +INFO [2014-07-04 10:56:57:139] <7370> 13:WON +INFO [2014-07-04 10:56:57:139] <7370> 14:00 +INFO [2014-07-04 10:56:57:139] <7370> 15: +INFO [2014-07-04 10:56:57:139] <7370> 16:000100202428681;125.131.234.203;N;;27250;; +INFO [2014-07-04 10:56:57:139] <7370> 17:Fycbuw+cTRtwn13wOub1/K/rkeH2hA1zRA+7G+HV4A2/Y1RotT2ieSzqBwuQNYBLDxEPTyiE3P9844Xdab7+10kG1+vOrz6ltrJumY865+PkCTC+Y7+SDbFdZKbVcQV3RO0D65lk/5LZ1GFaQtsF1SXmaYYZ8Dxa6bCgdekxA2s= +INFO [2014-07-04 10:56:57:139] <7370> 18:cdata=hnTnHlWDniqb+6aW3PiHqB9mmAwXNWvr75rGH+9+TdVC+x3rS3hLMZzMEqhm0Ato3bI3/rq/zAVv0REZ2Td2lst6M+wZCpxeJ/T1FVFHO+I98aNEndBzmrb64Ob4LLW39Pah8ifbNKslaMvJ4NinUw8+QVoDf0PkrnrdSncTdTHS/R3Pi7ORNbLHUbsg1Ita9nEI0RVWjHp25bvXFsso1WrRwcXA+flF72Hb10T3DRbjRoEVl6HC+pJwVlYpg7kucR95vnpsP7rpdb9iiUCPpQ/C/XNK6UE3m4dv4+p/mpcDyXiyRzxRcIeG+T7mtJhOH+mafho0qlJzY39fFLbaQAjnnwOP2iMtZSmeMKs6lYto6XbkPPVyhAvMe5SsRrZQ2zUvHDwhZwXMSgBtD9SX9jjn2+DNm3LqcUJ3kUaXRwwfr1atPDFUhS2jcX9igBlWuGos92di0ROMvgvY1EWb9Ke97eYbMpU/7ktd9vuI271Ezeozp1op+BlFe7jNl+ETPdJyIAVUrBL3JpPCNMNelCX9uNDgjLf2xRgDIjFoYJXArAjMFpD3ec0ZVbX5vTG5 +INFO [2014-07-04 10:56:57:139] <7370> 19:안전결제서비스 +INFO [2014-07-04 10:56:57:139] <7370> 20:125.131.234.203 +INFO [2014-07-04 10:56:57:139] <7370> 21:test@empal.com +INFO [2014-07-04 10:56:57:139] <7370> 22:AEGIS_ISP_acetel_20140704105657139486 +INFO [2014-07-04 10:56:57:139] <7370> 23: +INFO [2014-07-04 10:56:57:140] <7370> ] Send Data To PG End +INFO [2014-07-04 10:56:57:140] <7370> SendMsg : [0010792plug15|acetel|test11|27250|20140704105601T78711|9000400001|이름|111-1111-1111|135-722---서울 강남구 신사동 강남빌딩---1234|이름|111-1111-1111||로즈마리 1피스|WON|00||000100202428681;125.131.234.203;N;;27250;;|Fycbuw+cTRtwn13wOub1/K/rkeH2hA1zRA+7G+HV4A2/Y1RotT2ieSzqBwuQNYBLDxEPTyiE3P9844Xdab7+10kG1+vOrz6ltrJumY865+PkCTC+Y7+SDbFdZKbVcQV3RO0D65lk/5LZ1GFaQtsF1SXmaYYZ8Dxa6bCgdekxA2s=|cdata=hnTnHlWDniqb+6aW3PiHqB9mmAwXNWvr75rGH+9+TdVC+x3rS3hLMZzMEqhm0Ato3bI3/rq/zAVv0REZ2Td2lst6M+wZCpxeJ/T1FVFHO+I98aNEndBzmrb64Ob4LLW39Pah8ifbNKslaMvJ4NinUw8+QVoDf0PkrnrdSncTdTHS/R3Pi7ORNbLHUbsg1Ita9nEI0RVWjHp25bvXFsso1WrRwcXA+flF72Hb10T3DRbjRoEVl6HC+pJwVlYpg7kucR95vnpsP7rpdb9iiUCPpQ/C/XNK6UE3m4dv4+p/mpcDyXiyRzxRcIeG+T7mtJhOH+mafho0qlJzY39fFLbaQAjnnwOP2iMtZSmeMKs6lYto6XbkPPVyhAvMe5SsRrZQ2zUvHDwhZwXMSgBtD9SX9jjn2+DNm3LqcUJ3kUaXRwwfr1atPDFUhS2jcX9igBlWuGos92di0ROMvgvY1EWb9Ke97eYbMpU/7ktd9vuI271Ezeozp1op+BlFe7jNl+ETPdJyIAVUrBL3JpPCNMNelCX9uNDgjLf2xRgDIjFoYJXArAjMFpD3ec0ZVbX5vTG5|안전결제서비스|125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704105657139486|] +INFO [2014-07-04 10:56:57:140] <7370> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 10:56:57:145] <7370> Socket Open OK +INFO [2014-07-04 10:56:58:779] <7370> RecvMsg Length : [000083] +INFO [2014-07-04 10:56:58:779] <7370> RecvMsg : [acetel|0610|101958|55450394|27250|y|:20140704105601T78711|20140704105726|0100| +] +INFO [2014-07-04 10:56:58:779] <7370> Socket Close OK +INFO [2014-07-04 10:56:58:779] <7370> RecvMsg Length Check OK +INFO [2014-07-04 10:56:58:780] <7370> Send & Recv Msg End +INFO [2014-07-04 10:56:58:780] <7370> Send & Recv Msg OK +INFO [2014-07-04 10:56:58:780] <7370> Parse Msg Start +INFO [2014-07-04 10:56:58:780] <7370> card-isp RECV MSG Parsing OK +INFO [2014-07-04 10:56:58:780] <7370> Parse Msg End +INFO [2014-07-04 10:56:58:780] <7370> Msg Parsing OK +INFO [2014-07-04 10:56:58:780] <7370> card Pay Result Value [ +INFO [2014-07-04 10:56:58:780] <7370> NetCancID:AEGIS_ISP_acetel_20140704105657139486 +INFO [2014-07-04 10:56:58:780] <7370> rStoreId:acetel +INFO [2014-07-04 10:56:58:780] <7370> rBusiCd:0610 +INFO [2014-07-04 10:56:58:780] <7370> rOrdNo:20140704105601T78711 +INFO [2014-07-04 10:56:58:780] <7370> rDealNo:101958 +INFO [2014-07-04 10:56:58:780] <7370> rApprNo:55450394 +INFO [2014-07-04 10:56:58:781] <7370> rProdNm:로즈마리 1피스 +INFO [2014-07-04 10:56:58:781] <7370> rAmt:27250 +INFO [2014-07-04 10:56:58:781] <7370> rInstmt:00 +INFO [2014-07-04 10:56:58:781] <7370> rSuccYn:y +INFO [2014-07-04 10:56:58:781] <7370> rResMsg::20140704105601T78711 +INFO [2014-07-04 10:56:58:781] <7370> rApprTm:20140704105726 +INFO [2014-07-04 10:56:58:781] <7370> rCardCd:0100 +INFO [2014-07-04 10:56:58:781] <7370> ] +INFO [2014-07-04 10:56:58:781] <7370> END :20140704105601T78711 Transaction time:[1.647sec] +INFO [2014-07-04 10:56:58:781] <7370> =============================================================== +INFO [2014-07-04 11:01:11:462] <7731> =============================================================== +INFO [2014-07-04 11:01:11:462] <7731> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 11:01:11:463] <7731> card Pay Start! +INFO [2014-07-04 11:01:11:463] <7731> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 11:01:11:463] <7731> StoreId:acetel +INFO [2014-07-04 11:01:11:463] <7731> log:true +INFO [2014-07-04 11:01:11:463] <7731> logLevel:INFO +INFO [2014-07-04 11:01:11:463] <7731> UseNetCancel:true +INFO [2014-07-04 11:01:11:463] <7731> Type:Pay +INFO [2014-07-04 11:01:11:463] <7731> RecvLen:7 +INFO [2014-07-04 11:01:11:463] <7731> AuthTy:card +INFO [2014-07-04 11:01:11:463] <7731> SubTy:isp +INFO [2014-07-04 11:01:11:463] <7731> OrdNo:20140704110023T83908 +INFO [2014-07-04 11:01:11:463] <7731> Amt:17800 +INFO [2014-07-04 11:01:11:463] <7731> UserEmail:test@empal.com +INFO [2014-07-04 11:01:11:464] <7731> ProdNm:핑크 드림 +INFO [2014-07-04 11:01:11:464] <7731> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 11:01:11:464] <7731> UserId:test11 +INFO [2014-07-04 11:01:11:464] <7731> OrdNm:이름 +INFO [2014-07-04 11:01:11:464] <7731> OrdPhone:111-1111-1111 +INFO [2014-07-04 11:01:11:464] <7731> OrdAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 11:01:11:464] <7731> RcpNm:이름 +INFO [2014-07-04 11:01:11:464] <7731> RcpPhone:111-1111-1111 +INFO [2014-07-04 11:01:11:464] <7731> DlvAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 11:01:11:464] <7731> Remark: +INFO [2014-07-04 11:01:11:464] <7731> DeviId:9000400001 +INFO [2014-07-04 11:01:11:464] <7731> AuthYn:N +INFO [2014-07-04 11:01:11:464] <7731> Instmt:00 +INFO [2014-07-04 11:01:11:464] <7731> UserIp:125.131.234.203 +INFO [2014-07-04 11:01:11:464] <7731> partial_mm:00 +INFO [2014-07-04 11:01:11:465] <7731> noIntMonth: +INFO [2014-07-04 11:01:11:465] <7731> KVP_CURRENCY:WON +INFO [2014-07-04 11:01:11:465] <7731> KVP_CARDCODE:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 11:01:11:465] <7731> KVP_SESSIONKEY:AS3ud3YlCxZ7p5KOWPETtiewyuRMt6GFE1CySJJ5+WvggfnnvBDBA9mxGjGpci85z57K9d9Kg+o0DxL7qWhL5bfpawMa67LsHtkEZOAeodwvjTXj8sU0c904Xzf74sUB4x8Q4Byvmc971pmPDZ9MCUyc72OggUNjiCURMAPjxgw= +INFO [2014-07-04 11:01:11:465] <7731> KVP_ENCDATA:cdata=WL03ASudAM8xboYv9ZMTDHExOkDIZgK1RReEe1uz7TpQMcd+lNh0z3RQNs0tbq3o3iztgzfPwmYI9lXrM1eb3TdXz8d1GZre7S+jHISCd3rqrqnTBaDjx88zsR3QTIqxvYGka3PgM4iPqKTwSvjlVS9kBxVNQD7i4nfXW1174jPCp4FRg61qqYFD1Z1y+SXrVeJ6RLmEXp/B0YheNdatMSb/YObCTCYzmfkE16xg0RjvpL4HHqDU/4t9Z1uP4EDJPU4j9A4Ci2t6kJT2rakjz5GuNZ6gVNr+kiIIP6fcnokHNvuwFqXIcXfVzgdSjgQmvasGhbUdh3Sy2y+Spc8UAszD30mW/tJpbVNgJ0JbcfbqGvLJy9xvMy4rlyaPK6xGXV3LF3wO+2K4A9dnx5unV7pylX55JswKkRa/JshTPTWMPdfmiC+hkOr0qRTZVw/Se2LMLuOHLCIkQvuruFh4sMgOgnTcNJTL4hVvNGKUo01wh17ozfvBB9LfHmyim+K2GwxVG/rsBpxkgcrnLuc4Feo6LRBb8vPzsaB8VlLi6DA= +INFO [2014-07-04 11:01:11:465] <7731> KVP_CONAME:안전결제서비스 +INFO [2014-07-04 11:01:11:465] <7731> KVP_NOINT:0 +INFO [2014-07-04 11:01:11:465] <7731> KVP_QUOTA:00 +INFO [2014-07-04 11:01:11:465] <7731> CardNo: +INFO [2014-07-04 11:01:11:465] <7731> MPI_CAVV: +INFO [2014-07-04 11:01:11:465] <7731> MPI_ECI: +INFO [2014-07-04 11:01:11:465] <7731> MPI_MD64: +INFO [2014-07-04 11:01:11:465] <7731> ExpMon: +INFO [2014-07-04 11:01:11:465] <7731> ExpYear: +INFO [2014-07-04 11:01:11:465] <7731> Passwd: +INFO [2014-07-04 11:01:11:465] <7731> SocId: +INFO [2014-07-04 11:01:11:465] <7731> HP_SERVERINFO: +INFO [2014-07-04 11:01:11:465] <7731> HP_HANDPHONE: +INFO [2014-07-04 11:01:11:465] <7731> HP_COMPANY: +INFO [2014-07-04 11:01:11:465] <7731> HP_ID: +INFO [2014-07-04 11:01:11:466] <7731> HP_SUBID: +INFO [2014-07-04 11:01:11:466] <7731> HP_UNITType: +INFO [2014-07-04 11:01:11:466] <7731> HP_IDEN: +INFO [2014-07-04 11:01:11:466] <7731> HP_IPADDR: +INFO [2014-07-04 11:01:11:466] <7731> VIRTUAL_CENTERCD: +INFO [2014-07-04 11:01:11:466] <7731> VIRTUAL_DEPODT: +INFO [2014-07-04 11:01:11:466] <7731> ZuminCode: +INFO [2014-07-04 11:01:11:466] <7731> MallPage: +INFO [2014-07-04 11:01:11:466] <7731> VIRTUAL_NO: +INFO [2014-07-04 11:01:11:466] <7731> ES_SENDNO: +INFO [2014-07-04 11:01:11:466] <7731> Column1:222-2222-2222 +INFO [2014-07-04 11:01:11:466] <7731> Column2:222-2222-2222 +INFO [2014-07-04 11:01:11:466] <7731> Column3:0---cardnormal +INFO [2014-07-04 11:01:11:467] <7731> Make NetCancel ID Start +INFO [2014-07-04 11:01:11:467] <7731> AEGIS_ISP_acetel_20140704110111467808 +INFO [2014-07-04 11:01:11:467] <7731> Make NetCancel ID End +INFO [2014-07-04 11:01:11:467] <7731> Make NetCancelID OK +INFO [2014-07-04 11:01:11:467] <7731> Make Msg Start +INFO [2014-07-04 11:01:11:467] <7731> card-isp Make MSG OK +INFO [2014-07-04 11:01:11:467] <7731> Make Msg End +INFO [2014-07-04 11:01:11:467] <7731> Make Pay Msg OK +INFO [2014-07-04 11:01:11:467] <7731> Send & Recv Msg Start +INFO [2014-07-04 11:01:11:467] <7731> Send Data To PG Start [ +INFO [2014-07-04 11:01:11:467] <7731> 0:0010522plug15 +INFO [2014-07-04 11:01:11:467] <7731> 1:acetel +INFO [2014-07-04 11:01:11:467] <7731> 2:test11 +INFO [2014-07-04 11:01:11:467] <7731> 3:17800 +INFO [2014-07-04 11:01:11:467] <7731> 4:20140704110023T83908 +INFO [2014-07-04 11:01:11:467] <7731> 5:9000400001 +INFO [2014-07-04 11:01:11:467] <7731> 6:이름 +INFO [2014-07-04 11:01:11:467] <7731> 7:111-1111-1111 +INFO [2014-07-04 11:01:11:467] <7731> 8:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 11:01:11:467] <7731> 9:이름 +INFO [2014-07-04 11:01:11:467] <7731> 10:111-1111-1111 +INFO [2014-07-04 11:01:11:467] <7731> 11: +INFO [2014-07-04 11:01:11:467] <7731> 12:핑크 드림 +INFO [2014-07-04 11:01:11:467] <7731> 13:WON +INFO [2014-07-04 11:01:11:467] <7731> 14:00 +INFO [2014-07-04 11:01:11:467] <7731> 15: +INFO [2014-07-04 11:01:11:467] <7731> 16:000100202428681;125.131.234.203;N;;17800;; +INFO [2014-07-04 11:01:11:467] <7731> 17:AS3ud3YlCxZ7p5KOWPETtiewyuRMt6GFE1CySJJ5+WvggfnnvBDBA9mxGjGpci85z57K9d9Kg+o0DxL7qWhL5bfpawMa67LsHtkEZOAeodwvjTXj8sU0c904Xzf74sUB4x8Q4Byvmc971pmPDZ9MCUyc72OggUNjiCURMAPjxgw= +INFO [2014-07-04 11:01:11:467] <7731> 18:cdata=WL03ASudAM8xboYv9ZMTDHExOkDIZgK1RReEe1uz7TpQMcd+lNh0z3RQNs0tbq3o3iztgzfPwmYI9lXrM1eb3TdXz8d1GZre7S+jHISCd3rqrqnTBaDjx88zsR3QTIqxvYGka3PgM4iPqKTwSvjlVS9kBxVNQD7i4nfXW1174jPCp4FRg61qqYFD1Z1y+SXrVeJ6RLmEXp/B0YheNdatMSb/YObCTCYzmfkE16xg0RjvpL4HHqDU/4t9Z1uP4EDJPU4j9A4Ci2t6kJT2rakjz5GuNZ6gVNr+kiIIP6fcnokHNvuwFqXIcXfVzgdSjgQmvasGhbUdh3Sy2y+Spc8UAszD30mW/tJpbVNgJ0JbcfbqGvLJy9xvMy4rlyaPK6xGXV3LF3wO+2K4A9dnx5unV7pylX55JswKkRa/JshTPTWMPdfmiC+hkOr0qRTZVw/Se2LMLuOHLCIkQvuruFh4sMgOgnTcNJTL4hVvNGKUo01wh17ozfvBB9LfHmyim+K2GwxVG/rsBpxkgcrnLuc4Feo6LRBb8vPzsaB8VlLi6DA= +INFO [2014-07-04 11:01:11:467] <7731> 19:안전결제서비스 +INFO [2014-07-04 11:01:11:467] <7731> 20:125.131.234.203 +INFO [2014-07-04 11:01:11:467] <7731> 21:test@empal.com +INFO [2014-07-04 11:01:11:467] <7731> 22:AEGIS_ISP_acetel_20140704110111467808 +INFO [2014-07-04 11:01:11:467] <7731> 23: +INFO [2014-07-04 11:01:11:468] <7731> ] Send Data To PG End +INFO [2014-07-04 11:01:11:468] <7731> SendMsg : [0010522plug15|acetel|test11|17800|20140704110023T83908|9000400001|이름|111-1111-1111|135-722---서울 강남구 신사동 강남빌딩---1234|이름|111-1111-1111||핑크 드림|WON|00||000100202428681;125.131.234.203;N;;17800;;|AS3ud3YlCxZ7p5KOWPETtiewyuRMt6GFE1CySJJ5+WvggfnnvBDBA9mxGjGpci85z57K9d9Kg+o0DxL7qWhL5bfpawMa67LsHtkEZOAeodwvjTXj8sU0c904Xzf74sUB4x8Q4Byvmc971pmPDZ9MCUyc72OggUNjiCURMAPjxgw=|cdata=WL03ASudAM8xboYv9ZMTDHExOkDIZgK1RReEe1uz7TpQMcd+lNh0z3RQNs0tbq3o3iztgzfPwmYI9lXrM1eb3TdXz8d1GZre7S+jHISCd3rqrqnTBaDjx88zsR3QTIqxvYGka3PgM4iPqKTwSvjlVS9kBxVNQD7i4nfXW1174jPCp4FRg61qqYFD1Z1y+SXrVeJ6RLmEXp/B0YheNdatMSb/YObCTCYzmfkE16xg0RjvpL4HHqDU/4t9Z1uP4EDJPU4j9A4Ci2t6kJT2rakjz5GuNZ6gVNr+kiIIP6fcnokHNvuwFqXIcXfVzgdSjgQmvasGhbUdh3Sy2y+Spc8UAszD30mW/tJpbVNgJ0JbcfbqGvLJy9xvMy4rlyaPK6xGXV3LF3wO+2K4A9dnx5unV7pylX55JswKkRa/JshTPTWMPdfmiC+hkOr0qRTZVw/Se2LMLuOHLCIkQvuruFh4sMgOgnTcNJTL4hVvNGKUo01wh17ozfvBB9LfHmyim+K2GwxVG/rsBpxkgcrnLuc4Feo6LRBb8vPzsaB8VlLi6DA=|안전결제서비스|125.131.234.203|test@empal.com|AEGIS_ISP_acetel_20140704110111467808|] +INFO [2014-07-04 11:01:11:468] <7731> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 11:01:11:474] <7731> Socket Open OK +INFO [2014-07-04 11:01:14:383] <7731> RecvMsg Length : [000083] +INFO [2014-07-04 11:01:14:383] <7731> RecvMsg : [acetel|0610|101996|55448058|17800|y|:20140704110023T83908|20140704110118|0100| +] +INFO [2014-07-04 11:01:14:383] <7731> Socket Close OK +INFO [2014-07-04 11:01:14:383] <7731> RecvMsg Length Check OK +INFO [2014-07-04 11:01:14:383] <7731> Send & Recv Msg End +INFO [2014-07-04 11:01:14:383] <7731> Send & Recv Msg OK +INFO [2014-07-04 11:01:14:384] <7731> Parse Msg Start +INFO [2014-07-04 11:01:14:384] <7731> card-isp RECV MSG Parsing OK +INFO [2014-07-04 11:01:14:384] <7731> Parse Msg End +INFO [2014-07-04 11:01:14:384] <7731> Msg Parsing OK +INFO [2014-07-04 11:01:14:384] <7731> card Pay Result Value [ +INFO [2014-07-04 11:01:14:384] <7731> NetCancID:AEGIS_ISP_acetel_20140704110111467808 +INFO [2014-07-04 11:01:14:384] <7731> rStoreId:acetel +INFO [2014-07-04 11:01:14:384] <7731> rBusiCd:0610 +INFO [2014-07-04 11:01:14:384] <7731> rOrdNo:20140704110023T83908 +INFO [2014-07-04 11:01:14:384] <7731> rDealNo:101996 +INFO [2014-07-04 11:01:14:384] <7731> rApprNo:55448058 +INFO [2014-07-04 11:01:14:384] <7731> rProdNm:핑크 드림 +INFO [2014-07-04 11:01:14:384] <7731> rAmt:17800 +INFO [2014-07-04 11:01:14:384] <7731> rInstmt:00 +INFO [2014-07-04 11:01:14:384] <7731> rSuccYn:y +INFO [2014-07-04 11:01:14:384] <7731> rResMsg::20140704110023T83908 +INFO [2014-07-04 11:01:14:384] <7731> rApprTm:20140704110118 +INFO [2014-07-04 11:01:14:384] <7731> rCardCd:0100 +INFO [2014-07-04 11:01:14:384] <7731> ] +INFO [2014-07-04 11:01:14:385] <7731> END :20140704110023T83908 Transaction time:[2.922sec] +INFO [2014-07-04 11:01:14:385] <7731> =============================================================== +INFO [2014-07-04 11:10:05:713] <8694> =============================================================== +INFO [2014-07-04 11:10:05:713] <8694> START AgsPay40 php (OS:Linux2.6.18-308.16.1.el5PAE,PHP:4.4.9) +INFO [2014-07-04 11:10:05:713] <8694> virtual Pay Start! +INFO [2014-07-04 11:10:05:713] <8694> AgsPayHome:/home/sample/www/module/shop/pg/agspay +INFO [2014-07-04 11:10:05:713] <8694> StoreId:acetel +INFO [2014-07-04 11:10:05:713] <8694> log:true +INFO [2014-07-04 11:10:05:713] <8694> logLevel:INFO +INFO [2014-07-04 11:10:05:714] <8694> UseNetCancel:true +INFO [2014-07-04 11:10:05:714] <8694> Type:Pay +INFO [2014-07-04 11:10:05:714] <8694> RecvLen:7 +INFO [2014-07-04 11:10:05:714] <8694> AuthTy:virtual +INFO [2014-07-04 11:10:05:714] <8694> SubTy: +INFO [2014-07-04 11:10:05:714] <8694> OrdNo:20140704110942T55052 +INFO [2014-07-04 11:10:05:714] <8694> Amt:27250 +INFO [2014-07-04 11:10:05:714] <8694> UserEmail:test@empal.com +INFO [2014-07-04 11:10:05:714] <8694> ProdNm:로즈마리 1피스 +INFO [2014-07-04 11:10:05:714] <8694> MallUrl:http://sample.phpweb.co.kr +INFO [2014-07-04 11:10:05:714] <8694> UserId:test11 +INFO [2014-07-04 11:10:05:714] <8694> OrdNm:이름 +INFO [2014-07-04 11:10:05:714] <8694> OrdPhone:111-1111-1111 +INFO [2014-07-04 11:10:05:715] <8694> OrdAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 11:10:05:715] <8694> RcpNm:이름 +INFO [2014-07-04 11:10:05:715] <8694> RcpPhone:111-1111-1111 +INFO [2014-07-04 11:10:05:715] <8694> DlvAddr:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 11:10:05:715] <8694> Remark: +INFO [2014-07-04 11:10:05:715] <8694> DeviId:9000400001 +INFO [2014-07-04 11:10:05:715] <8694> AuthYn:N +INFO [2014-07-04 11:10:05:715] <8694> Instmt: +INFO [2014-07-04 11:10:05:715] <8694> UserIp:125.131.234.203 +INFO [2014-07-04 11:10:05:715] <8694> partial_mm: +INFO [2014-07-04 11:10:05:715] <8694> noIntMonth: +INFO [2014-07-04 11:10:05:715] <8694> KVP_CURRENCY: +INFO [2014-07-04 11:10:05:715] <8694> KVP_CARDCODE: +INFO [2014-07-04 11:10:05:715] <8694> KVP_SESSIONKEY: +INFO [2014-07-04 11:10:05:716] <8694> KVP_ENCDATA: +INFO [2014-07-04 11:10:05:716] <8694> KVP_CONAME: +INFO [2014-07-04 11:10:05:716] <8694> KVP_NOINT: +INFO [2014-07-04 11:10:05:716] <8694> KVP_QUOTA: +INFO [2014-07-04 11:10:05:716] <8694> CardNo: +INFO [2014-07-04 11:10:05:716] <8694> MPI_CAVV: +INFO [2014-07-04 11:10:05:716] <8694> MPI_ECI: +INFO [2014-07-04 11:10:05:716] <8694> MPI_MD64: +INFO [2014-07-04 11:10:05:716] <8694> ExpMon: +INFO [2014-07-04 11:10:05:716] <8694> ExpYear: +INFO [2014-07-04 11:10:05:716] <8694> Passwd: +INFO [2014-07-04 11:10:05:716] <8694> SocId: +INFO [2014-07-04 11:10:05:716] <8694> HP_SERVERINFO: +INFO [2014-07-04 11:10:05:716] <8694> HP_HANDPHONE: +INFO [2014-07-04 11:10:05:716] <8694> HP_COMPANY: +INFO [2014-07-04 11:10:05:716] <8694> HP_ID: +INFO [2014-07-04 11:10:05:716] <8694> HP_SUBID: +INFO [2014-07-04 11:10:05:717] <8694> HP_UNITType: +INFO [2014-07-04 11:10:05:717] <8694> HP_IDEN: +INFO [2014-07-04 11:10:05:717] <8694> HP_IPADDR: +INFO [2014-07-04 11:10:05:717] <8694> VIRTUAL_CENTERCD:20 +INFO [2014-07-04 11:10:05:717] <8694> VIRTUAL_DEPODT:20140709 +INFO [2014-07-04 11:10:05:717] <8694> ZuminCode:1212121234567 +INFO [2014-07-04 11:10:05:717] <8694> MallPage:/shop.php?goPage=OrderMobile;N;;27250;; +INFO [2014-07-04 11:10:05:717] <8694> VIRTUAL_NO:26359816918523 +INFO [2014-07-04 11:10:05:717] <8694> ES_SENDNO: +INFO [2014-07-04 11:10:05:717] <8694> Column1:222-2222-2222 +INFO [2014-07-04 11:10:05:717] <8694> Column2:222-2222-2222 +INFO [2014-07-04 11:10:05:717] <8694> Column3:0---virtualnormal +INFO [2014-07-04 11:10:05:717] <8694> Make NetCancel ID Start +INFO [2014-07-04 11:10:05:717] <8694> AEGIS_VIR_acetel_20140704111005717285 +INFO [2014-07-04 11:10:05:717] <8694> Make NetCancel ID End +INFO [2014-07-04 11:10:05:717] <8694> Make NetCancelID OK +INFO [2014-07-04 11:10:05:718] <8694> Make Msg Start +INFO [2014-07-04 11:10:05:718] <8694> virtual Make MSG OK +INFO [2014-07-04 11:10:05:718] <8694> Make Msg End +INFO [2014-07-04 11:10:05:718] <8694> Make Pay Msg OK +INFO [2014-07-04 11:10:05:718] <8694> Send & Recv Msg Start +INFO [2014-07-04 11:10:05:718] <8694> Send Data To PG Start [ +INFO [2014-07-04 11:10:05:718] <8694> 0:000380Vvir_n +INFO [2014-07-04 11:10:05:718] <8694> 1:acetel +INFO [2014-07-04 11:10:05:718] <8694> 2:20140704110942T55052 +INFO [2014-07-04 11:10:05:718] <8694> 3:20 +INFO [2014-07-04 11:10:05:718] <8694> 4:26359816918523 +INFO [2014-07-04 11:10:05:718] <8694> 5:27250 +INFO [2014-07-04 11:10:05:718] <8694> 6:20140709 +INFO [2014-07-04 11:10:05:718] <8694> 7:이름 +INFO [2014-07-04 11:10:05:718] <8694> 8:1212121234567 +INFO [2014-07-04 11:10:05:718] <8694> 9:111-1111-1111 +INFO [2014-07-04 11:10:05:718] <8694> 10:test@empal.com +INFO [2014-07-04 11:10:05:718] <8694> 11:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 11:10:05:718] <8694> 12:이름 +INFO [2014-07-04 11:10:05:718] <8694> 13:111-1111-1111 +INFO [2014-07-04 11:10:05:718] <8694> 14:135-722---서울 강남구 신사동 강남빌딩---1234 +INFO [2014-07-04 11:10:05:718] <8694> 15:로즈마리 1피스 +INFO [2014-07-04 11:10:05:718] <8694> 16: +INFO [2014-07-04 11:10:05:718] <8694> 17:http://sample.phpweb.co.kr +INFO [2014-07-04 11:10:05:718] <8694> 18:/shop.php?goPage=OrderMobile;N;;27250;; +INFO [2014-07-04 11:10:05:718] <8694> 19:AEGIS_VIR_acetel_20140704111005717285 +INFO [2014-07-04 11:10:05:718] <8694> 20: +INFO [2014-07-04 11:10:05:719] <8694> ] Send Data To PG End +INFO [2014-07-04 11:10:05:719] <8694> SendMsg : [000380Vvir_n|acetel|20140704110942T55052|20|26359816918523|27250|20140709|이름|1212121234567|111-1111-1111|test@empal.com|135-722---서울 강남구 신사동 강남빌딩---1234|이름|111-1111-1111|135-722---서울 강남구 신사동 강남빌딩---1234|로즈마리 1피스||http://sample.phpweb.co.kr|/shop.php?goPage=OrderMobile;N;;27250;;|AEGIS_VIR_acetel_20140704111005717285|] +INFO [2014-07-04 11:10:05:719] <8694> Connect IP:[220.85.12.3] Port:[29760] +INFO [2014-07-04 11:10:05:723] <8694> Socket Open OK +INFO [2014-07-04 11:10:05:926] <8694> RecvMsg Length : [000054] +INFO [2014-07-04 11:10:05:926] <8694> RecvMsg : [vir_n|acetel|20140704111009|26359816918523|y||] +INFO [2014-07-04 11:10:05:926] <8694> Socket Close OK +INFO [2014-07-04 11:10:05:926] <8694> RecvMsg Length Check OK +INFO [2014-07-04 11:10:05:926] <8694> Send & Recv Msg End +INFO [2014-07-04 11:10:05:926] <8694> Send & Recv Msg OK +INFO [2014-07-04 11:10:05:926] <8694> Parse Msg Start +INFO [2014-07-04 11:10:05:926] <8694> virtual RECV MSG Parsing OK +INFO [2014-07-04 11:10:05:926] <8694> Parse Msg End +INFO [2014-07-04 11:10:05:926] <8694> Msg Parsing OK +INFO [2014-07-04 11:10:05:926] <8694> virtual Pay Result Value [ +INFO [2014-07-04 11:10:05:926] <8694> NetCancID:AEGIS_VIR_acetel_20140704111005717285 +INFO [2014-07-04 11:10:05:926] <8694> rAuthTy:vir_n +INFO [2014-07-04 11:10:05:926] <8694> rStoreId:acetel +INFO [2014-07-04 11:10:05:926] <8694> rApprTm:20140704111009 +INFO [2014-07-04 11:10:05:927] <8694> rVirNo:26359816918523 +INFO [2014-07-04 11:10:05:927] <8694> rSuccYn:y +INFO [2014-07-04 11:10:05:927] <8694> rResMsg: +INFO [2014-07-04 11:10:05:927] <8694> rOrdNo:20140704110942T55052 +INFO [2014-07-04 11:10:05:927] <8694> rProdNm:로즈마리 1피스 +INFO [2014-07-04 11:10:05:927] <8694> rAmt:27250 +INFO [2014-07-04 11:10:05:927] <8694> ] +INFO [2014-07-04 11:10:05:927] <8694> END Transaction time:[0.214sec] +INFO [2014-07-04 11:10:05:927] <8694> =============================================================== diff --git a/module/shop/pg_bak/agspay/log/AgsPay40_php_aegis_160120.log b/module/shop/pg_bak/agspay/log/AgsPay40_php_aegis_160120.log new file mode 100644 index 0000000..598ddb7 --- /dev/null +++ b/module/shop/pg_bak/agspay/log/AgsPay40_php_aegis_160120.log @@ -0,0 +1,142 @@ +INFO [2016-01-20 13:00:24:650] <28525> =============================================================== +INFO [2016-01-20 13:00:24:650] <28525> START AgsPay40 php (OS:Linux2.6.18-371.12.1.el5PAE,PHP:5.2.17) +INFO [2016-01-20 13:00:24:650] <28525> card Pay Start! +INFO [2016-01-20 13:00:24:650] <28525> AgsPayHome:/home/c4trading/www/module/shop/pg/agspay +INFO [2016-01-20 13:00:24:650] <28525> StoreId:aegis +INFO [2016-01-20 13:00:24:650] <28525> log:true +INFO [2016-01-20 13:00:24:650] <28525> logLevel:INFO +INFO [2016-01-20 13:00:24:650] <28525> UseNetCancel:true +INFO [2016-01-20 13:00:24:650] <28525> Type:Pay +INFO [2016-01-20 13:00:24:650] <28525> RecvLen:7 +INFO [2016-01-20 13:00:24:650] <28525> AuthTy:card +INFO [2016-01-20 13:00:24:651] <28525> SubTy:visa3d +INFO [2016-01-20 13:00:24:651] <28525> OrdNo:20160120125726T83809 +INFO [2016-01-20 13:00:24:651] <28525> Amt:3005 +INFO [2016-01-20 13:00:24:651] <28525> UserEmail:test@test.com +INFO [2016-01-20 13:00:24:651] <28525> ProdNm:[TM-AK001]ٸ ƮϷ +INFO [2016-01-20 13:00:24:651] <28525> MallUrl:http://c4trading.phpweb.co.kr +INFO [2016-01-20 13:00:24:651] <28525> UserId:test +INFO [2016-01-20 13:00:24:651] <28525> OrdNm: +INFO [2016-01-20 13:00:24:651] <28525> OrdPhone:02-512-5555 +INFO [2016-01-20 13:00:24:651] <28525> OrdAddr: Ż絿512 +INFO [2016-01-20 13:00:24:651] <28525> RcpNm:test +INFO [2016-01-20 13:00:24:651] <28525> RcpPhone:02-512-5555 +INFO [2016-01-20 13:00:24:652] <28525> DlvAddr: Ż絿512 +INFO [2016-01-20 13:00:24:652] <28525> Remark: +INFO [2016-01-20 13:00:24:652] <28525> DeviId:9000400001 +INFO [2016-01-20 13:00:24:652] <28525> AuthYn:N;175.223.10.224;N;;3005;;null; +INFO [2016-01-20 13:00:24:652] <28525> Instmt:00 +INFO [2016-01-20 13:00:24:652] <28525> UserIp:175.223.10.224 +INFO [2016-01-20 13:00:24:652] <28525> partial_mm:00 +INFO [2016-01-20 13:00:24:652] <28525> noIntMonth: +INFO [2016-01-20 13:00:24:652] <28525> KVP_CURRENCY: +INFO [2016-01-20 13:00:24:652] <28525> KVP_CARDCODE: +INFO [2016-01-20 13:00:24:652] <28525> KVP_SESSIONKEY: +INFO [2016-01-20 13:00:24:652] <28525> KVP_ENCDATA: +INFO [2016-01-20 13:00:24:653] <28525> KVP_CONAME: +INFO [2016-01-20 13:00:24:653] <28525> KVP_NOINT: +INFO [2016-01-20 13:00:24:653] <28525> KVP_QUOTA: +INFO [2016-01-20 13:00:24:653] <28525> CardNo:5107375970411630 +INFO [2016-01-20 13:00:24:653] <28525> MPI_CAVV:AAABAZOIZyAWASASWIhnAAAAMSQ= +INFO [2016-01-20 13:00:24:653] <28525> MPI_ECI:05 +INFO [2016-01-20 13:00:24:653] <28525> MPI_MD64:MjAxNjAxMjAxMjU3NDY2NjAxMDY= +INFO [2016-01-20 13:00:24:653] <28525> ExpMon:2049 +INFO [2016-01-20 13:00:24:653] <28525> ExpYear:12 +INFO [2016-01-20 13:00:24:653] <28525> Passwd: +INFO [2016-01-20 13:00:24:653] <28525> SocId: +INFO [2016-01-20 13:00:24:653] <28525> HP_SERVERINFO: +INFO [2016-01-20 13:00:24:654] <28525> HP_HANDPHONE: +INFO [2016-01-20 13:00:24:654] <28525> HP_COMPANY: +INFO [2016-01-20 13:00:24:654] <28525> HP_ID: +INFO [2016-01-20 13:00:24:654] <28525> HP_SUBID: +INFO [2016-01-20 13:00:24:654] <28525> HP_UNITType: +INFO [2016-01-20 13:00:24:654] <28525> HP_IDEN: +INFO [2016-01-20 13:00:24:654] <28525> HP_IPADDR: +INFO [2016-01-20 13:00:24:654] <28525> VIRTUAL_CENTERCD: +INFO [2016-01-20 13:00:24:654] <28525> VIRTUAL_DEPODT: +INFO [2016-01-20 13:00:24:654] <28525> ZuminCode: +INFO [2016-01-20 13:00:24:654] <28525> MallPage: +INFO [2016-01-20 13:00:24:654] <28525> VIRTUAL_NO: +INFO [2016-01-20 13:00:24:655] <28525> ES_SENDNO: +INFO [2016-01-20 13:00:24:655] <28525> Column1: +INFO [2016-01-20 13:00:24:655] <28525> Column2: +INFO [2016-01-20 13:00:24:655] <28525> Column3: +INFO [2016-01-20 13:00:24:655] <28525> Make NetCancel ID Start +INFO [2016-01-20 13:00:24:655] <28525> AEGIS_VISAaegis_20160120130024655937 +INFO [2016-01-20 13:00:24:655] <28525> Make NetCancel ID End +INFO [2016-01-20 13:00:24:655] <28525> Make NetCancelID OK +INFO [2016-01-20 13:00:24:655] <28525> Make Msg Start +INFO [2016-01-20 13:00:24:655] <28525> Encrypt Start +INFO [2016-01-20 13:00:24:656] <28525> Encrypt End +INFO [2016-01-20 13:00:24:656] <28525> Encrypt Start +INFO [2016-01-20 13:00:24:656] <28525> Encrypt End +INFO [2016-01-20 13:00:24:656] <28525> Encrypt Start +INFO [2016-01-20 13:00:24:656] <28525> Encrypt End +INFO [2016-01-20 13:00:24:656] <28525> Encrypt Start +INFO [2016-01-20 13:00:24:656] <28525> Encrypt End +INFO [2016-01-20 13:00:24:656] <28525> card-visa3d Make MSG OK +INFO [2016-01-20 13:00:24:656] <28525> Make Msg End +INFO [2016-01-20 13:00:24:656] <28525> Make Pay Msg OK +INFO [2016-01-20 13:00:24:657] <28525> Send & Recv Msg Start +INFO [2016-01-20 13:00:24:657] <28525> Send Data To PG Start [ +INFO [2016-01-20 13:00:24:657] <28525> 0:0003410plug15 +INFO [2016-01-20 13:00:24:657] <28525> 1:aegis +INFO [2016-01-20 13:00:24:657] <28525> 2:test +INFO [2016-01-20 13:00:24:657] <28525> 3:3005 +INFO [2016-01-20 13:00:24:657] <28525> 4:20160120125726T83809 +INFO [2016-01-20 13:00:24:657] <28525> 5:9000400001 +INFO [2016-01-20 13:00:24:657] <28525> 6:0002992658701190 +INFO [2016-01-20 13:00:24:657] <28525> 7:914306 +INFO [2016-01-20 13:00:24:657] <28525> 8:00 +INFO [2016-01-20 13:00:24:657] <28525> 9:N;175.223.10.224;N;;3005;;null; +INFO [2016-01-20 13:00:24:657] <28525> 10: +INFO [2016-01-20 13:00:24:657] <28525> 11: +INFO [2016-01-20 13:00:24:657] <28525> 12:test +INFO [2016-01-20 13:00:24:657] <28525> 13:02-512-5555 +INFO [2016-01-20 13:00:24:657] <28525> 14: Ż絿512 +INFO [2016-01-20 13:00:24:657] <28525> 15: +INFO [2016-01-20 13:00:24:657] <28525> 16:175.223.10.224;02-512-5555 +INFO [2016-01-20 13:00:24:657] <28525> 17:test@test.com; +INFO [2016-01-20 13:00:24:657] <28525> 18:[TM-AK001]ٸ ƮϷ +INFO [2016-01-20 13:00:24:657] <28525> 19:AAABAZOIZyAWASASWIhnAAAAMSQ= +INFO [2016-01-20 13:00:24:657] <28525> 20:MjAxNjAxMjAxMjU3NDY2NjAxMDY= +INFO [2016-01-20 13:00:24:657] <28525> 21:05 +INFO [2016-01-20 13:00:24:657] <28525> 22:test@test.com +INFO [2016-01-20 13:00:24:657] <28525> 23:AEGIS_VISAaegis_20160120130024655937 +INFO [2016-01-20 13:00:24:657] <28525> 24: +INFO [2016-01-20 13:00:24:657] <28525> ] Send Data To PG End +INFO [2016-01-20 13:00:24:657] <28525> SendMsg : [0003410plug15|aegis|test|3005|20160120125726T83809|9000400001|0002992658701190|914306|00|N;175.223.10.224;N;;3005;;null;|||test|02-512-5555| Ż絿512||175.223.10.224;02-512-5555|test@test.com;|[TM-AK001]ٸ ƮϷ|AAABAZOIZyAWASASWIhnAAAAMSQ=|MjAxNjAxMjAxMjU3NDY2NjAxMDY=|05|test@test.com|AEGIS_VISAaegis_20160120130024655937|] +INFO [2016-01-20 13:00:24:657] <28525> Connect IP:[220.85.12.3] Port:[29760] +INFO [2016-01-20 13:00:24:683] <28525> Socket Open OK +INFO [2016-01-20 13:00:24:823] <28525> RecvMsg Length : [000117] +INFO [2016-01-20 13:00:24:823] <28525> RecvMsg : [aegis|0610|20160120125726T83809|10144608|000000003005|y|||20160120130028|0500|18570317|0500||558076| +] +INFO [2016-01-20 13:00:24:823] <28525> Socket Close OK +INFO [2016-01-20 13:00:24:823] <28525> RecvMsg Length Check OK +INFO [2016-01-20 13:00:24:823] <28525> Send & Recv Msg End +INFO [2016-01-20 13:00:24:823] <28525> Send & Recv Msg OK +INFO [2016-01-20 13:00:24:823] <28525> Parse Msg Start +INFO [2016-01-20 13:00:24:823] <28525> card-visa3d RECV MSG Parsing OK +INFO [2016-01-20 13:00:24:824] <28525> Parse Msg End +INFO [2016-01-20 13:00:24:824] <28525> Msg Parsing OK +INFO [2016-01-20 13:00:24:824] <28525> card Pay Result Value [ +INFO [2016-01-20 13:00:24:824] <28525> NetCancID:AEGIS_VISAaegis_20160120130024655937 +INFO [2016-01-20 13:00:24:824] <28525> rStoreId:aegis +INFO [2016-01-20 13:00:24:824] <28525> rBusiCd:0610 +INFO [2016-01-20 13:00:24:824] <28525> rOrdNo:20160120125726T83809 +INFO [2016-01-20 13:00:24:824] <28525> rApprNo:10144608 +INFO [2016-01-20 13:00:24:824] <28525> rInstmt:00 +INFO [2016-01-20 13:00:24:824] <28525> rAmt:000000003005 +INFO [2016-01-20 13:00:24:824] <28525> rSuccYn:y +INFO [2016-01-20 13:00:24:825] <28525> rResMsg: +INFO [2016-01-20 13:00:24:825] <28525> rCardNm: +INFO [2016-01-20 13:00:24:825] <28525> rApprTm:20160120130028 +INFO [2016-01-20 13:00:24:825] <28525> rCardCd:0500 +INFO [2016-01-20 13:00:24:825] <28525> rMembNo:18570317 +INFO [2016-01-20 13:00:24:825] <28525> rAquiCd:0500 +INFO [2016-01-20 13:00:24:825] <28525> rAquiNm: +INFO [2016-01-20 13:00:24:825] <28525> rDealNo:558076 +INFO [2016-01-20 13:00:24:825] <28525> rProdNm:[TM-AK001]ٸ ƮϷ +INFO [2016-01-20 13:00:24:825] <28525> ] +INFO [2016-01-20 13:00:24:825] <28525> END Transaction time:[0.18sec] +INFO [2016-01-20 13:00:24:825] <28525> =============================================================== diff --git a/module/shop/pg_bak/agspay/progress.gif b/module/shop/pg_bak/agspay/progress.gif new file mode 100644 index 0000000..cec0ccb Binary files /dev/null and b/module/shop/pg_bak/agspay/progress.gif differ diff --git a/module/shop/pg_bak/agspay_mobile.php b/module/shop/pg_bak/agspay_mobile.php new file mode 100644 index 0000000..0acb036 --- /dev/null +++ b/module/shop/pg_bak/agspay_mobile.php @@ -0,0 +1,264 @@ + + + + + + + +"> +"> +"> +"> +"> + +"> +"> +"> +"> +"> +"> +"> +"> +"> +"> +"> + + + + + + + + + +"> +"> +"> +"> +"> + + + + + + + diff --git a/module/shop/pg_bak/agspay_mobile_result.php b/module/shop/pg_bak/agspay_mobile_result.php new file mode 100644 index 0000000..041d3ed --- /dev/null +++ b/module/shop/pg_bak/agspay_mobile_result.php @@ -0,0 +1,314 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    결제형태 : + +
    상점아이디 :
    주문번호 :
    주문자명 :
    상품명 :
    결제금액 :
    성공여부 :
    승인시각 :
    전문코드 :
    승인번호 :
    카드사코드 :
    거래번호 :
    카드사명 :
    매입사코드 :
    매입사명 :
    가맹점번호 :
    핸드폰결제TID :
    핸드폰결제날짜 :
    핸드폰결제핸드폰번호 :
    핸드폰결제통신사명 :
    입금계좌번호 :
    입금은행 :
    예금주명 : (주)이지스효성
    이지스에스크로(SEND_NO) :
     
    카드 이용명세서에 구입처가 이지스 엔터프라이즈(주)로 표기됩니다.
    + + diff --git a/module/shop/pg_bak/agspay_result.php b/module/shop/pg_bak/agspay_result.php new file mode 100644 index 0000000..23dd28b --- /dev/null +++ b/module/shop/pg_bak/agspay_result.php @@ -0,0 +1,363 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    결제형태 : + +
    상점아이디 :
    주문번호 :
    주문자명 :
    상품명 :
    결제금액 :
    성공여부 :
    처리메세지 :
    승인시각 :
    전문코드 :
    승인번호 :
    카드사코드 :
    카드사명 :
    매입사코드 :
    매입사명 :
    가맹점번호 :
    전표번호 :
    거래고유번호 :
    이체계좌은행명 :
    이체금액 :
    이체계좌소유주 :
    이지스에스크로(SEND_NO) :
    핸드폰결제TID :
    핸드폰결제날짜 :
    핸드폰결제핸드폰번호 :
    핸드폰결제통신사명 :
    ARS결제TID :
    ARS결제날짜 :
    ARS결제전화번호 :
    ARS결제통신사명 :
    입금계좌번호 :
    입금은행 :
    예금주명 : (주)이지스효성
    이지스에스크로(SEND_NO) :
    영수증 :
     
    카드 이용명세서에 구입처가 이지스효성(주)로 표기됩니다.
    + + diff --git a/module/shop/pg_bak/daoupay/finish.php b/module/shop/pg_bak/daoupay/finish.php new file mode 100644 index 0000000..346217e --- /dev/null +++ b/module/shop/pg_bak/daoupay/finish.php @@ -0,0 +1,24 @@ + + + +SUCCESS + + diff --git a/module/shop/pg_bak/daoupay/request.php b/module/shop/pg_bak/daoupay/request.php new file mode 100644 index 0000000..7801e10 --- /dev/null +++ b/module/shop/pg_bak/daoupay/request.php @@ -0,0 +1,127 @@ + + + + +ȭǰ + + + + +
    +"> + + + + + + + + + + + + + +"> + + + + + + + + + + + + + + +
    + + + + diff --git a/module/shop/pg_bak/escrow/AGS_escrow.html b/module/shop/pg_bak/escrow/AGS_escrow.html new file mode 100644 index 0000000..5145818 --- /dev/null +++ b/module/shop/pg_bak/escrow/AGS_escrow.html @@ -0,0 +1,188 @@ + + +ôƮ + + + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     

    ôƮ ũ ŷ û ׽Ʈ
     
    + 1) ôƮ ũ û ü ° ϰ Ͽ Ͻʽÿ.
    + 2) ôƮ ũ ߼ û ʿ Է 'û'ư ŬϽʽÿ. +
     
    ǥô ʼ Է»Դϴ.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ŷڵ + +
    + +
    ID (20)
    (8)
    ŷȣ (6)
    ޴ȣ (13)Ȯ/û
    +

    + +
     
    +
    +
    + + diff --git a/module/shop/pg_bak/escrow/AGS_escrow_ing.php b/module/shop/pg_bak/escrow/AGS_escrow_ing.php new file mode 100644 index 0000000..ba7d907 --- /dev/null +++ b/module/shop/pg_bak/escrow/AGS_escrow_ing.php @@ -0,0 +1,268 @@ +"; //ŷڵ +} + +if( empty( $PayKind ) || $PayKind == "" ) +{ + $ERRMSG .= " Է¿ Ȯο
    "; // +} + +if( empty( $RetailerId ) || $RetailerId == "" ) +{ + $ERRMSG .= "̵ Է¿ Ȯο
    "; //̵ +} + +if( empty( $DealTime ) || $DealTime == "" ) +{ + $ERRMSG .= " Է¿ Ȯο
    "; //ð +} + +if( empty( $SendNo ) || $SendNo == "" ) +{ + $ERRMSG .= "ŷȣ Է¿ Ȯο
    "; //ŷȣ +} + + +if( strlen($ERRMSG) == 0 ) +{ + /**************************************************************************** + * TrCode = "E100" ߼ۿϷ + * TrCode = "E200" Ȯ + * TrCode = "E300" Ű + * TrCode = "E400" + ****************************************************************************/ + + /**************************************************************************** + * + * [4] ߼ۿϷ/Ȯ/Ű/ҿû (E100/E101)/(E200/E201)/(E300/E301)/(E400/E401) + * + * -- ̴ Ŵ + * + * -- ߼ۿϷ û + * + ͱ(6) + ü ESCROW (1) + + * + ( "|" Ѵ.) + * ŷڵ(10) | (2) | üID(20) | ֹεϹȣ(13) | + * (8) | ŷȣ(6) | + * + * -- ߼ۿϷ + * + ͱ(6) + + * + ( "|" Ѵ. + * ŷڵ(10) |(2) | üID(20) | ڵ(2) | ޽(100) | + * + *****************************************************************************/ + + $ENCTYPE = "E"; + + /**************************************************************************** + * Make + ****************************************************************************/ + + $sDataMsg = $ENCTYPE. + $TrCode."|". + $PayKind."|". + $RetailerId."|". + $IdNo."|". + $DealTime."|". + $SendNo."|"; + + $sSendMsg = sprintf( "%06d%s", strlen( $sDataMsg ), $sDataMsg ); + + /**************************************************************************** + * + * ޼ Ʈ + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sSendMsg."
    "; + } + + /**************************************************************************** + * + * ȣȭProcess ϰ ۼ + * + ****************************************************************************/ + + $fp = fsockopen( $LOCALADDR, $LOCALPORT , &$errno, &$errstr, $CONN_TIMEOUT ); + + + if( !$fp ) + { + /** з ŷ ޼ **/ + + $rSuccYn = "n"; + $rResMsg = " з ŷ"; + } + else + { + /** ῡ ϿǷ ͸ ޴´. **/ + + $rResMsg = "ῡ ϿǷ ͸ ޴´."; + + + /** ȣȭProcess **/ + + fputs( $fp, $sSendMsg ); + + socket_set_timeout($fp, $READ_TIMEOUT); + + /** 6Ʈ ̸ üũ ͸ŭ ޴´. **/ + + $sRecvLen = fgets( $fp, 7 ); + $sRecvMsg = fgets( $fp, $sRecvLen + 1 ); + + /**************************************************************************** + * + * Ѿ ̺κ Ͽ ֽñ ٶϴ. + * PHP üũ ߻ ֽϴ + * ޼: () üũ ſ + * üũ Ʒ Ͽ Ͻʽÿ + * $sRecvLen = fgets( $fp, 6 ); + * $sRecvMsg = fgets( $fp, $sRecvLen ); + * + ****************************************************************************/ + + /** close **/ + + fclose( $fp ); + } + + /**************************************************************************** + * + * ޼ Ʈ + * + ****************************************************************************/ + + if( $IsDebug == 1 ) + { + print $sRecvMsg."
    "; + } + + if( strlen( $sRecvMsg ) == $sRecvLen ) + { + /** () üũ **/ + + $RecvValArray = array(); + $RecvValArray = explode( "|", $sRecvMsg ); + + $rTrCode = $RecvValArray[0]; + $rPayKind = $RecvValArray[1]; + $rRetailerId = $RecvValArray[2]; + $rSuccYn = $RecvValArray[3]; + $rResMsg = $RecvValArray[4]; + + /**************************************************************************** + * + * ũ ŵǾǷ DB ۾ + * ͸ ϱ ̺κп ϸȴ. + * + * TrCode = "E101" ߼ۿϷ + * TrCode = "E201" Ȯ + * TrCode = "E301" Ű + * TrCode = "E401" ҿû + * + * ⼭ DB ۾ ּ. + * ) $rSuccYn 'y' ϰ ũι۵ϹױȮμ + * ) $rSuccYn 'n' ϰ ũι۵ϹױȮν + * DB ۾ Ͻ $rSuccYn 'y' Ǵ 'n' ϰ쿡 ° ۾Ͻʽÿ. + * + ****************************************************************************/ + + + + + + + } + else + { + /** () üũ ſ з **/ + + $rSuccYn = "n"; + $rResMsg = " () üũ ſ "; + } +} +else +{ + $rSuccYn = "n"; + $rResMsg = $ERRMSG; +} +?> + + + + +
    + + + + + +
    + + diff --git a/module/shop/pg_bak/escrow/AGS_escrow_result.php b/module/shop/pg_bak/escrow/AGS_escrow_result.php new file mode 100644 index 0000000..50da770 --- /dev/null +++ b/module/shop/pg_bak/escrow/AGS_escrow_result.php @@ -0,0 +1,124 @@ + + + +ôƮ + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +

    ŷ

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    ŷڵ : + +
    : + + +
    ̵ :
    :
    ó޼ :
     
    +

    Copyright AEGIS ENTERPRISE.Co.,Ltd. All rights reserved.
    +
    + + diff --git a/module/shop/pg_bak/escrow/aegis_Func.php b/module/shop/pg_bak/escrow/aegis_Func.php new file mode 100644 index 0000000..6bf63c4 --- /dev/null +++ b/module/shop/pg_bak/escrow/aegis_Func.php @@ -0,0 +1,211 @@ + $Value ) + { + if( strcmp( $Value, $StoreId ) == 0 ) + { + $CurrTime = date( "H" ); + if( $CurrTime >= $Limit_StartTime[$Index] || $CurrTime < $Limit_EndTime[$Index] ) + { + print " + + "; + } + return; + } + } +} +*/ + +/* + Aegis ī嵥 Encrypt +*/ + +function encrypt_aegis( $OrgData ) +{ + if( empty( $OrgData ) || $OrgData == "" ) + { + return ""; + } + + $temp = ""; + for( $i = 0; $i < strlen( $OrgData ); $i++ ) + { + $temp .= substr( $OrgData, (strlen( $OrgData ) - 1) - $i, 1 ); + } + + //print "Reverse data : ".$temp."
    "; + + $one_char = ""; + $EncData = ""; + for( $i = 0; $i < strlen( $temp ); $i++ ) + { + $one_char = substr( $temp, $i, 1 ); + $EncData .= ($one_char + $i * 77) % 10 ; + } + + //print "Enc Data : ".$EncData."
    "; + + return $EncData; +} + +/* + ڿ +*/ +function format_string($TSTR,$TLEN,$TAG) +{ + if ( !isset($TSTR) ) + { + for ( $i=0 ; $i < $TLEN ; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + } + + $TSTR = trim($TSTR); + + $TSTR = stripslashes($TSTR); + + // Էڷᰡ ̺ ڸ ѱó + + if ( strlen($TSTR) > $TLEN ) + { + // $flag == 1 ̸ Ʈ ѱ Ʈ ̶ ű ڸ Ǹ + // ѱ Ǵ ߻մϴ. + + $flag = 0; + + for($i=0 ; $i< $TLEN ; $i++) + { + $j = ord($TSTR[$i]); // ASCII մϴ. + // ASCII 127 ũ Ʈ ѱ ۹Ʈ̰ų Ʈ(?) . + if($j > 127) + { + if( $flag ) $flag = 0; // $flag Ѵٴ ̹ ڴ ѱ Ʈ̱ + // $flag 0 ݴϴ. + else $flag = 1; // ѱ ۹Ʈ. ׷Ƿ $flag 1! + } + else $flag = 0; // ٸ ڳ ϶ ׳ Ѿ ǰ. + } + if( $flag ) + { + // ̷ ؼ ڱ $flag ؼ $flag ϸ + $TSTR = substr($TSTR, 0, $TLEN - 1); + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + else + { + // ѹƮ ؼ ڸ ڸ ؾ߰. + $TSTR = substr($TSTR, 0, $TLEN); // ƴ .... + } + + return $TSTR; // Ʈ ȯմϴ. + + // Էڷᰡ ̺ SPACE ä + } + else if ( strlen($TSTR) < $TLEN ) + { + $TLENGTH = strlen($TSTR); + for ( $i=0 ; $i < $TLEN - $TLENGTH; $i++ ) + { + if( $TAG == 'Y' ) + { + $TSTR = $TSTR.chr(32); + } + else + { + $TSTR = $TSTR.'+'; + } + } + + return ($TSTR); + + // Էڷᰡ ̿ + } + else if ( strlen($TSTR) == $TLEN ) + { + return ($TSTR); + } +} + +/* + Է ڰ ھƽŰ شϴ Ǵ. +*/ +function IsNumber($word) +{ + + for($i = 0; $i < strlen($word); $i++) + { + $wordNum = ord( substr( $word, $i, 1 ) ); + + if( $wordNum < 48 || $wordNum > 57 ) + { + return false; + } + + } + + return true; +} +/* + ޼ +*/ +function AlertMsg( $msg , $go=0) +{ + + $msg = str_replace( "\"" ,"'" ,$msg ); + $msg = str_replace( "\n" ,"\\n" ,$msg ); + print ""; + +} +function HistoryGo( $go ) +{ + print ""; +} + +function AlertExit( $msg ) +{ + + AlertMsg( $msg ); + exit; + +} + +function AlertGoBack( $msg ) +{ + + AlertMsg( $msg, -1); + exit; +} + +?> \ No newline at end of file diff --git a/module/shop/pg_bak/escrow/default.html b/module/shop/pg_bak/escrow/default.html new file mode 100644 index 0000000..f18ad03 --- /dev/null +++ b/module/shop/pg_bak/escrow/default.html @@ -0,0 +1,39 @@ + + +ôƮ + + + + + + + +
    + + + + + + + + + + + + + + + + + +
    ôƮ ũ ý

    ߼ۿϷ/Ȯ/Ű û߼ۿϷ/Ȯ/Ű óմϴ.

    Copyright AEGIS ENTERPRISE.Co.,Ltd. All rights reserved.
    +
    + + diff --git a/module/shop/pg_bak/ksnet/KSPayWebHost.inc.php b/module/shop/pg_bak/ksnet/KSPayWebHost.inc.php new file mode 100644 index 0000000..821e06b --- /dev/null +++ b/module/shop/pg_bak/ksnet/KSPayWebHost.inc.php @@ -0,0 +1,138 @@ +payKey = $_payKey; + + if (empty($_rparams) || false === strpos($_rparams,$this->DEFAULT_DELIM)) + { + $this->rparams = $this->DEFAULT_RPARAMS; + }else + { + $this->rparams = $_rparams; + } + + $this->rnames = split($this->DEFAULT_DELIM, $this->rparams); + } + + public function kspay_get_value($pname) + { + if (empty($pname) || !is_array($this->rnames) || !is_array($this->rvalues) || count($this->rnames) != count($this->rvalues)) return null; + + return $this->rvalues[$pname]; + } + + public function kspay_send_msg($_mtype) + { + $this->mtype = $_mtype; + $rmsg = $this->send_url(); + + if (false === strpos($rmsg,$this->DEFAULT_DELIM)) return false; + + $tmpvals = split($this->DEFAULT_DELIM, $rmsg); + + if (count($this->rnames) < count($tmpvals)) + { + for($i=0; $irnames); $i++) + { + $this->rvalues[$this->rnames[$i]] = $tmpvals[$i+1]; + } + return true; + } + } + + var $KSPAY_WEBHOST_URI = "/store/KSPayFlashV1.3/web_host/recv_post.jsp"; + var $KSPAY_WEBHOST_HOST = "kspay.ksnet.to"; + var $KSPAY_WEBHOST_IP = "210.181.28.137"; + + //var $KSPAY_WEBHOST_HOST = "210.181.28.116"; + //var $KSPAY_WEBHOST_IP = "210.181.28.116"; + + function send_url() + { + $post_msg = "sndCommConId=" . $this->payKey . "&sndActionType=" . $this->mtype . "&sndRpyParams=" . urlencode($this->rparams); + + //$_my_url = "http://"; + //if (false === stripos($_SERVER['SERVER_PROTOCOL'], "HTTP/")) $_my_url = "https://"; + //$_my_url .= $_SERVER['SERVER_NAME']; + //if (!empty($_SERVER['SERVER_PORT']) && 80 != $_SERVER['SERVER_PORT'] && 443 != $_SERVER['SERVER_PORT']) $_my_url .= ":" . $_SERVER['SERVER_PORT']; + //$_my_url .= $_SERVER['PHP_SELF']; + + $req_msg = "POST " . $this->KSPAY_WEBHOST_URI . " HTTP/1.0\r\n"; + $req_msg .= "Host: " . $this->KSPAY_WEBHOST_HOST . "\r\n"; + //$req_msg .= "Referer: " . $_my_url . "\r\n"; + $req_msg .= "Accept-Language: ko\r\n"; + $req_msg .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\r\n"; + $req_msg .= "Content-type: application/x-www-form-urlencoded\r\n"; + $req_msg .= "Content-length: ".strlen($post_msg)."\r\n"; + $req_msg .= "Connection: close\r\n"; + $req_msg .= "\r\n"; + $req_msg .= $post_msg; + + $kspay_ipaddr = gethostbyname($this->KSPAY_WEBHOST_HOST); + $kspay_port = 80; +write_log("send_url:send(" . $this->payKey . ",".$kspay_ipaddr.",".$kspay_port.")=[".$post_msg."]"); + if ($kspay_ipaddr == $this->KSPAY_WEBHOST_HOST) + { + $kspay_ipaddr = $this->KSPAY_WEBHOST_IP; +write_log("CHECK: gethostbyname(" . $this->KSPAY_WEBHOST_HOST . "):X DEFALUT IP=[".$this->KSPAY_WEBHOST_IP."]"); + } + + $fp_socket = fsockopen($kspay_ipaddr, $kspay_port, $errno, $errstr, 60); + if($fp_socket) { + fwrite($fp_socket,$req_msg, strlen($req_msg)); + fflush($fp_socket); + while(!feof($fp_socket)) { + $rpy_msg .= fread($fp_socket, 8192); + } + } + fclose($fp_socket); + + $rtn_msg = ""; + $rpos = strpos($rpy_msg,"\r\n\r\n"); + + if ($rpos !== false) $rtn_msg = substr($rpy_msg, $rpos+4); + +write_log("send_url:recv(" . $this->payKey . ",".$kspay_ipaddr.",".$kspay_port.")=[".$rtn_msg."]"); + + return $rtn_msg; + } +} +?> \ No newline at end of file diff --git a/module/shop/pg_bak/ksnet/kspay_wh_order.html b/module/shop/pg_bak/ksnet/kspay_wh_order.html new file mode 100644 index 0000000..2eb7d06 --- /dev/null +++ b/module/shop/pg_bak/ksnet/kspay_wh_order.html @@ -0,0 +1,245 @@ + + + + + +*** KSNET WebHost Sample [PHP] *** + + + + + + +
    + + + + + + + + + + +
    KSNET WebHost Sample [PHP]
    + + + + + + +
      + + + + + + + + + + + + + + + + + + + + +
    + 고객에게 보여지지 않아야 하는 설정값 항목
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    결제수단 + + +
    상점아이디
    주문번호
    + + 고객에게 보여주는 항목
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    상품명
    금액
    주문자명
    전자우편
    이동전화
    위의 파라미터는 기본파라미터만 정의되어있으며
    + 추가파라미터 기능추가는 소스상에 hidden으로 처리되어있으므로
    + 메뉴얼 참조후 세팅하여 사용하시면 됩니다.
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    +
     
    + + diff --git a/module/shop/pg_bak/ksnet/kspay_wh_rcv.php b/module/shop/pg_bak/ksnet/kspay_wh_rcv.php new file mode 100644 index 0000000..c43aa5d --- /dev/null +++ b/module/shop/pg_bak/ksnet/kspay_wh_rcv.php @@ -0,0 +1,64 @@ + +4 && "https" == substr($_SERVER['SERVER_PROTOCOL'],0,5) ) + { + $p_protocol = "https"; + } +?> + + + + + +KSPay(<?echo($rcid)?>) + + + + + + + +
    + + + + + + +
    +
    + + \ No newline at end of file diff --git a/module/shop/pg_bak/ksnet/kspay_wh_result.php b/module/shop/pg_bak/ksnet/kspay_wh_result.php new file mode 100644 index 0000000..885d28a --- /dev/null +++ b/module/shop/pg_bak/ksnet/kspay_wh_result.php @@ -0,0 +1,306 @@ + + +kspay_send_msg("1")) + { + $authyn = $ipg->kspay_get_value("authyn"); + $trno = $ipg->kspay_get_value("trno" ); + $trddt = $ipg->kspay_get_value("trddt" ); + $trdtm = $ipg->kspay_get_value("trdtm" ); + $amt = $ipg->kspay_get_value("amt" ); + $authno = $ipg->kspay_get_value("authno"); + $msg1 = $ipg->kspay_get_value("msg1" ); + $msg2 = $ipg->kspay_get_value("msg2" ); + $ordno = $ipg->kspay_get_value("ordno" ); + $isscd = $ipg->kspay_get_value("isscd" ); + $aqucd = $ipg->kspay_get_value("aqucd" ); + $temp_v = ""; + $result = $ipg->kspay_get_value("result"); + $halbu = $ipg->kspay_get_value("halbu"); + $cbtrno = $ipg->kspay_get_value("cbtrno"); + $cbauthno = $ipg->kspay_get_value("cbauthno"); + + if (!empty($msg1)) $msg1 = iconv("EUC-KR","UTF-8", $msg1); + if (!empty($msg2)) $msg2 = iconv("EUC-KR","UTF-8", $msg2); + + if (!empty($authyn) && 1 == strlen($authyn)) + { + if ($authyn == "O") + { + $resultcd = "0000"; + }else + { + $resultcd = trim($authno); + } + + //$ipg->kspay_send_msg("3"); // 정상처리가 완료되었을 경우 호출합니다.(이 과정이 없으면 일시적으로 kspay_send_msg("1")을 호출하여 거래내역 조회가 가능합니다.) + + //DB연결 + $dblink = SetConn($_conf_db["main_db"]); + + //회원의 경우 회원아이디로 로그인 전이라면 세션 아이디로 + if($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"]){ + $tp = "1"; + }else{ + $tp = "2"; + } + $arrList = getPreOrderList($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"],$tp); + + + //_POST 로 받는 주문번호가 기존에 주문된 주문번호인지 확인 + if(checkVaildOrderNo(mysql_escape_string($ordno))==true){ + jsMsg("이미 주문이 완료되었습니다."); + } + + //_POST 로 받은 주문번호가 구매직전 장바구니에 있는지 확인 + if($ordno != $arrList["list"][0]["order_no"]){ + jsMsg("잘못된 주문 정보 입니다. 주문 장바구니에 해당 주문건이 없습니다."); + } + + if(substr($result,0,1) == "6") { + $ordergb = "1"; + } else { + $ordergb = "6"; + + } + + //주문정보 입력 + $blnRS = setOrderInfo($_SESSION[$_SITE["DOMAIN"]]["SESSIONID"], $_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, $arrList["list"][0]["order_no"], $ordergb); + if($blnRS==true){ + //KCP 결제후 DB 입력처리 완료 변수 설정 + $bSucc = "true"; + + //주문자에게 메일발송 + $arrInfo = getOrderInfo($_SESSION[$_SITE["DOMAIN"]]["MEMBER"]["ID"], $tp, mysql_escape_string($_REQUEST["order_no"])); + $arrMailInfo = getMailConfig($ordergb); + //sendMailShopInfo($arrInfo, $arrMailInfo); + //주문자에게 메일발송 + } + + + //DB해제 + SetDisConn($dblink); + } + } +?> + + + + +
    + + + + +"> +"> +"> +"> +"> +"> +"> + +"> +"> +"> +"> +"> +"> +
    + + + diff --git a/module/shop/pg_bak/kspay.php b/module/shop/pg_bak/kspay.php new file mode 100644 index 0000000..46fec77 --- /dev/null +++ b/module/shop/pg_bak/kspay.php @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/module/shop/pg_bak/kspay_result.php b/module/shop/pg_bak/kspay_result.php new file mode 100644 index 0000000..ea94f94 --- /dev/null +++ b/module/shop/pg_bak/kspay_result.php @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    결제형태 : + +
    성공여부 : ()
    응답코드 :
    주문번호 :
    금액 :
    거래번호 : :KSNET에서 부여한 고유번호입니다.
    거래일자 :
    거래시간 :
    카드사 승인번호/은행 코드번호 : :카드사에서 부여한 번호로 고유한값은 아닙니다.
    발급사코드/가상계좌번호/계좌이체번호 :
    매입사코드 :
    영수증출력 :
    현금영수증출력 :
    + diff --git a/module/shop/point_list.php b/module/shop/point_list.php new file mode 100644 index 0000000..f98906d --- /dev/null +++ b/module/shop/point_list.php @@ -0,0 +1,198 @@ + +
    +

    HOME > 포인트몰

    +
    + + + +
    + +
    + + + + + + + +
    +
    +

    POINT

    +
    +
    + + + + + +
    +
    +

    BEST 포인트몰 상품

    +
    +
    +
      + 0):?> + +
    • +

      +

      +

      +

      + + + 신청 +

      +
    • + +
    +
    +
    + + + + + + + + + + + + +
    +
      + 0):?> + +
    • +

      +

      +

      +

      + + + 신청 +

      +
    • + + + +
    • 등록된 상품이 없습니다.
    • + +
    +
    + +
    + +

    + +
    + + \ No newline at end of file diff --git a/module/shop/qna_iframe.php b/module/shop/qna_iframe.php new file mode 100644 index 0000000..36c6cc3 --- /dev/null +++ b/module/shop/qna_iframe.php @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/module/shop/review/form.php b/module/shop/review/form.php new file mode 100644 index 0000000..2880545 --- /dev/null +++ b/module/shop/review/form.php @@ -0,0 +1,88 @@ + + +̿ı ۼ + + + + +
    + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +
    ǰ
    ̸()
    + +
    + + + + + + +
      
    + + +
    + +
    \ No newline at end of file diff --git a/module/shop/review/my_review.php b/module/shop/review/my_review.php new file mode 100644 index 0000000..f97cf60 --- /dev/null +++ b/module/shop/review/my_review.php @@ -0,0 +1,106 @@ + + +
    +

    마이페이지

    +
    +
    + + + +
    +
    + + \ No newline at end of file diff --git a/module/shop/review/my_review_view.php b/module/shop/review/my_review_view.php new file mode 100644 index 0000000..f9b2c97 --- /dev/null +++ b/module/shop/review/my_review_view.php @@ -0,0 +1,101 @@ + + + +
    +

    마이페이지

    +
    +
    +
    + +
    +
    +
    제목
    +
    +
    +
    +
    작성자
    +
    +
    +
    +
    작성일자
    +
    +
    +
    + +
    + +
    + + +
    + +
    + +
    + 등록된 답변이 없습니다. +
    + + +
    + +
    + +
    +
    \ No newline at end of file diff --git a/module/shop/review/review.lib.php b/module/shop/review/review.lib.php new file mode 100644 index 0000000..6767ec0 --- /dev/null +++ b/module/shop/review/review.lib.php @@ -0,0 +1,286 @@ + 0){ + $list['total'] = $total_rs; + // ׺̼ . + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset ü Խù offset üԽù - offset + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + //scale 0 ÿ ü + if($scale > 0){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset ̿ limit + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // ׺̼ . + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + return $list; +} + +// +function getReviewList($g_idx, $scale, $offset=0){ + // ̺ + $tbl = $GLOBALS["_conf_tbl"]["shop_review"]; + + $sql = "SELECT * FROM $tbl WHERE 1=1 AND g_idx='$g_idx' "; + $sql .= " order by idx desc "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + //echo $sql; + + if($total_rs > 0){ + $list['total'] = $total_rs; + // ׺̼ . + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset ü Խù offset üԽù - offset + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + //scale 0 ÿ ü + if($scale > 0){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset ̿ limit + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // ׺̼ . + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + return $list; +} + +// +function getMyReviewList($user_id, $scale, $offset=0){ + // ̺ + //$tbl = $GLOBALS["_conf_tbl"]["shop_review"]; + $tbl = "tbl_board_after"; + $sql = "SELECT * FROM $tbl WHERE 1=1 AND w_user='$user_id' "; + $sql .= " order by idx desc "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + //echo $sql; + + if($total_rs > 0){ + $list['total'] = $total_rs; + // ׺̼ . + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset ü Խù offset üԽù - offset + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + //scale 0 ÿ ü + if($scale > 0){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset ̿ limit + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // ׺̼ . + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + return $list; +} + +// ϱ +function insertReview($g_idx, $user_id, $user_name){ + // ̺ + $tbl = $GLOBALS["_conf_tbl"]["shop_review"]; + + + // ̺ Է + $sql = "INSERT INTO ".$tbl." set + g_idx='$g_idx', + user_id='".$user_id."', + user_name='".$user_name."', + review_point='".mysql_escape_string($_POST[review_point])."', + subject='".mysql_escape_string($_POST[subject])."', + contents='".mysql_escape_string($_POST[contents])."', + ip='".$_SERVER[REMOTE_ADDR]."', + wdate=now() + "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($total > 0){ + return true; + }else{ + return false; + } +} + + +// ϱ +function updateReview($user_id, $idx){ + // ̺ + $tbl = $GLOBALS["_conf_tbl"]["shop_review"]; + + // + $updatePerm = false; + + //ڴ ׳ + if($_SESSION[$GLOBALS["_SITE"]["DOMAIN"]]["ADMIN"]["ID"]){ + $updatePerm = true; + } + + // + $arrArticleInfo = getReviewInfo($idx); + + if($arrArticleInfo["list"][0]["user_id"]==$user_id){ + $updatePerm = true; + } + + if($updatePerm==true){ + // ̺ Ʈ + $sql = "UPDATE ".$tbl." set + review_point='".mysql_escape_string($_POST[review_point])."', + subject='".mysql_escape_string($_POST[subject])."', + contents='".mysql_escape_string($_POST[contents])."', + ip='".$_SERVER[REMOTE_ADDR]."' + WHERE idx = '$idx' + "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($total > 0){ + return true; + }else{ + return false; + } + }else{ + jsMsg(" ϴ."); + return false; + } +} + + +// - id +function getReviewInfo($idx){ + // ̺ + //$tbl = $GLOBALS["_conf_tbl"]["shop_review"]; + $tbl = "tbl_board_after"; + + $sql = "SELECT * "; + $sql .= "FROM $tbl "; + $sql .= "WHERE idx = '$idx' "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + //echo $sql; + + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +// ϱ +function deleteReview($user_id, $idx){ + // ̺ + //$tbl = $GLOBALS["_conf_tbl"]["shop_review"]; + $tbl = "tbl_board_after"; + + // + $deletePerm = false; + + //ڴ ׳ + if($_SESSION[$GLOBALS["_SITE"]["DOMAIN"]]["ADMIN"]["ID"]){ + $deletePerm = true; + } + + // + $arrArticleInfo = getReviewInfo($idx); + + if($arrArticleInfo["list"][0]["w_user"]==$user_id){ + $deletePerm = true; + } + + + if($deletePerm==true){ + // ̺ + $sql = "DELETE FROM ".$tbl." + WHERE idx='$idx' + "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($total > 0){ + return true; + }else{ + return false; + } + }else{ + jsMsg(" ϴ."); + return false; + } +} +?> \ No newline at end of file diff --git a/module/shop/review/review_evn.php b/module/shop/review/review_evn.php new file mode 100644 index 0000000..0b6588a --- /dev/null +++ b/module/shop/review/review_evn.php @@ -0,0 +1,50 @@ + \ No newline at end of file diff --git a/module/shop/sale_list.php b/module/shop/sale_list.php new file mode 100644 index 0000000..310e635 --- /dev/null +++ b/module/shop/sale_list.php @@ -0,0 +1,35 @@ + + + +
    +
    +

    SALE 상품

    + HOME > SALE 상품 +
    + +
    +
      + 0):?> + + >


      + +
    • 등록된 제품이 없습니다.
    • + +
    +
    + +
    + +
    +
    \ No newline at end of file diff --git a/module/shop/shop.lib.php b/module/shop/shop.lib.php new file mode 100644 index 0000000..d5ab4c0 --- /dev/null +++ b/module/shop/shop.lib.php @@ -0,0 +1,3483 @@ + 0){ + $sql = "INSERT INTO ".$tbl_good_cat." set + g_idx='".$insert_idx."', + cat_no='".$arrCatInfo["list"][0][cat_no]."', + cat_code='".$arrCatInfo["list"][0][cat_code]."' + "; + mysql_query($sql, $GLOBALS[dblink]); + } + } + + //선택한 카테고리 정보 입력 + $sql = "INSERT INTO ".$tbl_good_cat." set + g_idx='".$insert_idx."', + cat_no='".$arrInfo["list"][0][cat_no]."', + cat_code='".$arrInfo["list"][0][cat_code]."' + "; + mysql_query($sql, $GLOBALS[dblink]); + + //옵션입력 + if($_POST[stock_type]=="3"){ + for($j=0;$j= 5){ + break; + } + } + } + + + //연계 재고관리 + if($_POST[stock_type]=="3"){ + for($i=0; $i<9; $i++){ + if($_POST["relOpt1_".$i] != ""){ + for($j=0; $j<9; $j++){ + if($_POST["relOpt2_".$j] != ""){ + $sql = "INSERT INTO ".$tbl_opt_rel." set + g_idx='".$insert_idx."', + opt_1='".mysql_real_escape_string($_POST[relOptName1])."', + opt_1_value='".mysql_real_escape_string($_POST["relOpt1_".$i])."', + opt_2='".mysql_real_escape_string($_POST[relOptName2])."', + opt_2_value='".mysql_real_escape_string($_POST["relOpt2_".$j])."', + price='".mysql_real_escape_string($_POST["rel_price_".$j."_".$i])."', + stock='".mysql_real_escape_string($_POST["rel_stock_".$j."_".$i])."' + "; + mysql_query($sql); + } + } + } + } + } + + //파일 저장 디렉토리 생성 + rmkdir($GLOBALS["_SITE"]["UPLOADED_DATA"]."/shop_good/".$insert_idx, 0777); + + //이미지 파일처리 + inputGoodFiles($insert_idx, $_FILES, mysql_real_escape_string($_POST[image_type])); + + //카탈로그 파일처리 + inputCatalogFilesShop($insert_idx, $_FILES); + + if($total > 0){ + return true; + }else{ + return false; + } + +} + +//상품 수정하기 +function editGood($idx){ + //상품정보 테이블 + $tbl = $GLOBALS["_conf_tbl"]["shop_good"]; + $tbl_opt = $GLOBALS["_conf_tbl"]["shop_good_opt"]; + $tbl_opt_rel = $GLOBALS["_conf_tbl"]["shop_good_opt_rel"]; + $tbl_good_cat = $GLOBALS["_conf_tbl"]["shop_good_cat"]; + + $arrInfo = getCategoryInfo(mysql_real_escape_string($_POST[cat_no])); + + //아이콘등록 + for($i=0; $i < count($_POST[shop_icon]); $i++){ + $str_icons .= $_POST[shop_icon][$i]; + if($i != count($_POST[shop_icon])-1){ + $str_icons .= "|"; + } + } + + if(mysql_real_escape_string($_POST[cdrom])=="Y"){ + $cdrom = "Y"; + }else{ + $cdrom = "N"; + } + + if(mysql_real_escape_string($_POST[movie])=="Y"){ + $movie = "Y"; + }else{ + $movie = "N"; + } + + //관련상품 데이터 조합 + for($j=0;$j 0){ + $sql = "INSERT INTO ".$tbl_good_cat." set + g_idx='".$idx."', + cat_no='".$arrCatInfo["list"][0][cat_no]."', + cat_code='".$arrCatInfo["list"][0][cat_code]."' + "; + mysql_query($sql, $GLOBALS[dblink]); + } + } + + //선택한 카테고리 정보 입력 + $sql = "INSERT INTO ".$tbl_good_cat." set + g_idx='".$idx."', + cat_no='".$arrInfo["list"][0][cat_no]."', + cat_code='".$arrInfo["list"][0][cat_code]."' + "; + mysql_query($sql, $GLOBALS[dblink]); + + + //기존 옵션 삭제 + $sql = "DELETE FROM ".$tbl_opt." + WHERE g_idx='".$idx."' + "; + mysql_query($sql, $GLOBALS[dblink]); + + //옵션입력 + if($_POST[stock_type]=="3"){ + for($j=0;$j= 5){ + break; + } + } + } + + //연계 재고관리 + if($_POST[stock_type]=="3"){ + //기존 옵션 삭제 + $sql = "DELETE FROM ".$tbl_opt_rel." + WHERE g_idx='".$idx."' + "; + mysql_query($sql, $GLOBALS[dblink]); + + for($i=0; $i<9; $i++){ + if($_POST["relOpt1_".$i] != ""){ + for($j=0; $j<9; $j++){ + if($_POST["relOpt2_".$j] != ""){ + $sql = "INSERT INTO ".$tbl_opt_rel." set + g_idx='".$idx."', + opt_1='".mysql_real_escape_string($_POST[relOptName1])."', + opt_1_value='".mysql_real_escape_string($_POST["relOpt1_".$i])."', + opt_2='".mysql_real_escape_string($_POST[relOptName2])."', + opt_2_value='".mysql_real_escape_string($_POST["relOpt2_".$j])."', + price='".mysql_real_escape_string($_POST["rel_price_".$j."_".$i])."', + stock='".mysql_real_escape_string($_POST["rel_stock_".$j."_".$i])."' + "; + mysql_query($sql); + } + } + } + } + } + + //이미지 파일처리 + delGoodFiles($idx, $_FILES); + //이미지 파일처리 + inputGoodFiles($idx, $_FILES, mysql_real_escape_string($_POST[image_type])); + + //카탈로그 파일처리 + delCatalogFilesShop($idx, $_FILES); + inputCatalogFilesShop($idx, $_FILES); + + if($rs > 0){ + return true; + }else{ + return false; + } + + +} + +//상품 파일처리 +function inputGoodFiles($idx, $HTTP_POST_FILES, $image_type){ + //상품정보 테이블 + $tbl = $GLOBALS["_conf_tbl"]["shop_good"]; + + //이미지파일 처리 + + //현재 정보 가져오기 + $arrCurInfo = getArticleInfo($tbl, $idx); + + //대표이미지로 썸네일 만드는 방식 일경우 + if($image_type=="1"){ + for($i=0;$i 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//상품 파일 삭제 처리 +function delGoodFiles($idx, $HTTP_POST_FILES){ + //상품정보 테이블 + $tbl = $GLOBALS["_conf_tbl"]["shop_good"]; + $tbl_files = $GLOBALS["_conf_tbl"]["shop_good_files"]; + + //현재 정보 가져오기 + $arrCurInfo = getArticleInfo($tbl, $idx); + + //이미지 파일삭제 코딩 시작 - 삭제체크 한것만 처리 + for($i=0;$i0){ + $fileinfo = getGoodFileInfo($arrCurInfo["list"][0][idx], $_POST[delPhoto][$i]); + //디비에서 파일정보 삭제 + mysql_query("DELETE FROM ".$tbl_files." WHERE idx='".$fileinfo["list"][0][idx]."' ", $GLOBALS[dblink]); + //디스크에서 파일 삭제 + @unlink($GLOBALS["_SITE"]["UPLOADED_DATA"]."/shop_good/" . $arrCurInfo["list"][0][idx]."/".$fileinfo["list"][0][re_name]); + @unlink($GLOBALS["_SITE"]["UPLOADED_DATA"]."/shop_good/" . $arrCurInfo["list"][0][idx]."/s_".$fileinfo["list"][0][re_name]); + @unlink($GLOBALS["_SITE"]["UPLOADED_DATA"]."/shop_good/" . $arrCurInfo["list"][0][idx]."/m_".$fileinfo["list"][0][re_name]); + @unlink($GLOBALS["_SITE"]["UPLOADED_DATA"]."/shop_good/" . $arrCurInfo["list"][0][idx]."/l_".$fileinfo["list"][0][re_name]); + } + } + //이미지 파일삭제 코딩 종료 +} + + + +//상품 가져오기 - 파일 포함 +function getGoodListBaseNFile($cat_no, $orderby, $sw="", $sk="", $scale, $offset=0, $is_show=""){ + //테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["shop_good"];//상품정보 + $tbl_files = $GLOBALS["_conf_tbl"]["shop_good_files"];//상품파일 + $tbl_category = $GLOBALS["_conf_tbl"]["category"];//카테고리 + $tbl_opt = $GLOBALS["_conf_tbl"]["shop_good_opt"];//상품 옵션 정보 + $tbl_opt_rel = $GLOBALS["_conf_tbl"]["shop_good_opt_rel"];//연계재고옵션 정보 + + //카테고리가 있을경우 + if($cat_no !=""){ + $arrCategoryInfo = getCategoryInfo(mysql_real_escape_string($cat_no)); + $que_where .= " and A.cat_code like '" . $arrCategoryInfo["list"][0][cat_code] . "%' "; + } + + //진열하는 상품만 가져올 경우 + if($is_show !=""){ + $que_where .= " and A.is_show ='Y' "; + } + + //검색키워드가 있을경우 + if($sk !=""){ + switch($sw){ + case("name") : + $que_where .= " and (A.g_name like '%$sk%') "; + break; + case("category") : + $que_where .= " and (C.cat_name like '%$sk%') "; + break; + case("author") : + $que_where .= " and (A.author_name like '%$sk%') "; + break; + case("isbn") : + $que_where .= " and (A.isbn like '%$sk%') "; + break; + case("contents") : + $que_where .= " and (A.contents like '%$sk%') "; + break; + default : + $que_where .= " and (A.g_name like '%$sk%' or C.cat_name like '%$sk%' or A.contents like '%$sk%' or A.author_name like '%$sk%' or A.isbn like '%$sk%' or A.g_code like '%$sk%') "; + } + } + + + //order by 가 있을경우 + if($orderby !=""){ + $orderby = $orderby; + }else{ + $orderby = "A.idx DESC"; + } + + //카운트 + $sql = "select count(A.idx) from $tbl A LEFT JOIN ".$tbl_category." C ON A.cat_no=C.cat_no WHERE 1=1 $que_where "; + //echo $sql; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $row = mysql_fetch_row($rs); + $total_rs = $row[0]; + + + //목록 + $sql = "SELECT A.*, B.idx AS f_idx, B.ori_name, B.re_name, B.type, B.size, C.cat_name "; + $sql .= "FROM ".$tbl." A "; + $sql .= "LEFT JOIN ".$tbl_files." B ON A.idx=B.b_idx "; + $sql .= "LEFT JOIN ".$tbl_category." C ON A.cat_no=C.cat_no "; + $sql .= "WHERE 1=1 $que_where group by A.idx order by $orderby "; + + + if($total_rs > 0){ + $list['total'] = $total_rs; + // 페이지 네비게이션 오프셋 지정. + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset 이 전체 게시물수보다 작을때 offset 을 전체게시물 - 페이지당 보여줄 글 수로 offset 설정 + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + if($scale != "0"){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset 을 이용한 limit 가 적용된 갯수 + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // 페이지 네비게이션 오프셋 지정. + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + $sql = "SELECT MIN(stock) as min_stock FROM $tbl_opt_rel WHERE g_idx='".$list['list'][$i][idx]."' group by g_idx "; + $rs_stock = mysql_fetch_assoc(mysql_query($sql,$GLOBALS[dblink])); + $list['list'][$i][min_stock] = $rs_stock[min_stock]; + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//상품 가져오기 - 파일 포함 +function getGoodListBaseNFileFromCat($cat_no, $orderby, $sw="", $sk="", $scale, $offset=0, $is_show=""){ + //테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["shop_good"];//상품정보 + $tbl_files = $GLOBALS["_conf_tbl"]["shop_good_files"];//상품파일 + $tbl_category = $GLOBALS["_conf_tbl"]["category"];//카테고리 + $tbl_opt = $GLOBALS["_conf_tbl"]["shop_good_opt"];//상품 옵션 정보 + $tbl_good_cat = $GLOBALS["_conf_tbl"]["shop_good_cat"];//상품 추가 카테고리 + + //카테고리가 있을경우 + if($cat_no !=""){ + $arrCategoryInfo = getCategoryInfo(mysql_real_escape_string($cat_no)); + $que_where .= " and D.cat_code like '" . $arrCategoryInfo["list"][0][cat_code] . "%' "; + } + + //진열하는 상품만 가져올 경우 + if($is_show !=""){ + $que_where .= " and A.is_show ='Y' "; + } + + //검색키워드가 있을경우 + if($sk !=""){ + switch($sw){ + case("name") : + $que_where .= " and (A.g_name like '%$sk%') "; + break; + case("category") : + $que_where .= " and (C.cat_name like '%$sk%') "; + break; + case("author") : + $que_where .= " and (A.author_name like '%$sk%') "; + break; + case("main") : + $que_where .= " and A.main_show = '$sk' "; + break; + case("new") : + $que_where .= " and A.movie = '$sk' "; + break; + case("event") : + $que_where .= " and A.cdrom = '$sk' "; + break; + case("isbn") : + $que_where .= " and A.isbn = '$sk' "; + break; + case("top5") : + $que_where .= " and A.published_text = '$sk' "; + break; + case("best") : + $que_where .= " and A.best_show = '$sk' "; + break; + case("contents") : + $que_where .= " and (A.contents like '%$sk%') "; + break; + default : + $que_where .= " and (A.g_name like '%$sk%' or C.cat_name like '%$sk%' or A.contents like '%$sk%' or A.author_name like '%$sk%' or A.isbn like '%$sk%') "; + } + } + + + //order by 가 있을경우 + if($orderby !=""){ + $orderby = $orderby; + }else{ + $orderby = "A.idx DESC"; + } + + //카운트 + $sql = "select count(D.g_idx) from $tbl_good_cat D LEFT JOIN $tbl A ON D.g_idx=A.idx LEFT JOIN $tbl_category C ON A.cat_no=C.cat_no WHERE 1=1 $que_where group by D.g_idx "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + /* + $row = mysql_fetch_row($rs); + $total_rs = $row[0]; + */ + + //목록 + $sql = "SELECT A.*, B.idx AS f_idx, B.ori_name, B.re_name, B.type, B.size, C.cat_name, D.cat_no AS ext_cat_no, D.cat_code AS ext_cat_code "; + $sql .= "FROM ".$tbl_good_cat." D "; + $sql .= "LEFT JOIN ".$tbl." A ON D.g_idx=A.idx "; + $sql .= "LEFT JOIN ".$tbl_files." B ON A.idx=B.b_idx "; + $sql .= "LEFT JOIN ".$tbl_category." C ON A.cat_no=C.cat_no "; + $sql .= "WHERE 1=1 $que_where group by A.idx order by $orderby "; + + if($total_rs > 0){ + $list['total'] = $total_rs; + // 페이지 네비게이션 오프셋 지정. + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset 이 전체 게시물수보다 작을때 offset 을 전체게시물 - 페이지당 보여줄 글 수로 offset 설정 + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + if($scale != "0"){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset 을 이용한 limit 가 적용된 갯수 + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // 페이지 네비게이션 오프셋 지정. + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + + +//메인노출 상품 가져오기 +function getGoodListMain($cat_no="", $scale, $offset=0, $gb){ + //테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["shop_good"];//상품정보 + $tbl_good_cat = $GLOBALS["_conf_tbl"]["shop_good_cat"];//상품 추가 카테고리 + + //목록 + $sql = "SELECT A.*, D.cat_no AS ext_cat_no, D.cat_code AS ext_cat_code "; + $sql .= "FROM ".$tbl_good_cat." D "; + $sql .= "LEFT JOIN ".$tbl." A ON D.g_idx=A.idx "; + $sql .= "WHERE 1=1 AND A.is_show='Y' AND A.".$gb."='Y' "; + if($cat_no) { + $catno = explode(",",$cat_no); + + if(count($catno) > 1) { + + $sql .= " and ("; + for($k=0; $k < count($catno); $k++){ + $arrCategoryInfo[$k] = getCategoryInfo(mysql_real_escape_string($catno[$k])); + + $sql .= " D.cat_code like '".$arrCategoryInfo[$k]["list"][0][cat_code]."%'"; + if($k != count($catno)-1) { + $sql .= " or "; + } + } + $sql .= ")"; + } else { + $arrCategoryInfo = getCategoryInfo(mysql_real_escape_string($cat_no)); + $sql .= " AND D.cat_code like '" . $arrCategoryInfo["list"][0][cat_code] . "%' "; + } + } + $sql .= " group by A.idx order by A.sort_num desc, A.idx DESC "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + // 페이지 네비게이션 오프셋 지정. + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset 이 전체 게시물수보다 작을때 offset 을 전체게시물 - 페이지당 보여줄 글 수로 offset 설정 + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + if($scale != "0"){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset 을 이용한 limit 가 적용된 갯수 + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + + +//상품 가져오기 - 동일저자 +function getGoodListAuthor($g_code, $author, $scale, $offset=0){ + //테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["shop_good"];//상품정보 + + $que_where .= " and (A.author_name = '$author') "; + $que_where .= " and (A.g_code <> '$g_code') "; + $que_where .= " and A.is_show='Y' "; + + $orderby = "A.idx DESC"; + + //카운트 + $sql = "select count(A.idx) from $tbl A WHERE 1=1 $que_where "; +// echo $sql; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $row = mysql_fetch_row($rs); + $total_rs = $row[0]; + + //목록 + $sql = "SELECT A.* "; + $sql .= "FROM ".$tbl." A "; + $sql .= "WHERE 1=1 $que_where order by $orderby "; + + + if($total_rs > 0){ + $list['total'] = $total_rs; + // 페이지 네비게이션 오프셋 지정. + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset 이 전체 게시물수보다 작을때 offset 을 전체게시물 - 페이지당 보여줄 글 수로 offset 설정 + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + if($scale != "0"){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset 을 이용한 limit 가 적용된 갯수 + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // 페이지 네비게이션 오프셋 지정. + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//상품정보 가져오기 - g_code +function getGoodInfoGcode($g_code){ + //테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["shop_good"];//상품정보 + + //기본정보 가져오기 + $sql = "SELECT idx "; + $sql .= "FROM ".$tbl." A "; + $sql .= " WHERE A.g_code = '$g_code' "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $row = mysql_fetch_assoc($rs); + + return getGoodInfo($row[idx]); +} + +//상품 조회수 업데이트 +function setGoodHitsUpdate($idx){ + //테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["shop_good"];//상품정보 + + //기본정보 가져오기 + $sql .= "UPDATE ".$tbl." SET "; + $sql .= "hit = hit + 1 "; + $sql .= " WHERE idx = '$idx' "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + if($rs){ + return true; + }else{ + return false; + } +} + + +//카탈로그 파일처리 +function inputCatalogFilesShop($idx, $HTTP_POST_FILES){ + $tbl_files = $GLOBALS["_conf_tbl"]["shop_catalog_files"]; + + for($i=0;$i 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//카탈로그 파일 삭제 처리 +function delCatalogFilesShop($idx, $HTTP_POST_FILES){ + //상품정보 테이블 + $tbl = $GLOBALS["_conf_tbl"]["shop_good"]; + $tbl_files = $GLOBALS["_conf_tbl"]["shop_catalog_files"]; + + //현재 정보 가져오기 + $arrCurInfo = getArticleInfo($tbl, $idx); + + //파일삭제 코딩 시작 - 삭제체크 한것만 처리 + for($i=0;$i0){ + $fileinfo = getCatalogFileInfoShop($arrCurInfo["list"][0][idx], $_POST[delCatalog][$i]); + //디비에서 파일정보 삭제 + mysql_query("DELETE FROM ".$tbl_files." WHERE idx='".$fileinfo["list"][0][idx]."' ", $GLOBALS[dblink]); + //디스크에서 파일 삭제 + unlink($GLOBALS["_SITE"]["UPLOADED_DATA"]."/shop_good/" . $arrCurInfo["list"][0][idx]."/".$fileinfo["list"][0][re_name]); + } + } + //파일삭제 코딩 종료 +} + + +//상품정보 가져오기 - id +function getGoodInfo($idx){ + //테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["shop_good"];//상품정보 + $tbl_files = $GLOBALS["_conf_tbl"]["shop_good_files"];//상품파일 + $tbl_catalog_files = $GLOBALS["_conf_tbl"]["shop_catalog_files"];//카탈로그 파일 + $tbl_opt = $GLOBALS["_conf_tbl"]["shop_good_opt"];//옵션정보 + $tbl_opt_rel = $GLOBALS["_conf_tbl"]["shop_good_opt_rel"];//연계재고 + $tbl_category = $GLOBALS["_conf_tbl"]["category"];//상품분류 + + //기본정보 가져오기 + $sql = "SELECT A.* "; + $sql .= "FROM ".$tbl." A "; + $sql .= " WHERE A.idx = '$idx' "; + $rs = mysql_query($sql, $GLOBALS[dblink]); +// echo $sql; + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + //옵션갯수 정보 가져오기(상품) + $sql = "SELECT opt_1 "; + $sql .= "FROM ".$tbl_opt." "; + $sql .= "WHERE g_idx = '$idx' group by opt_1 order by idx"; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total_opt'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['opt'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total_opt'] = 0; + } + + //옵션정보 가져오기(상품) + $sql = "SELECT * "; + $sql .= "FROM ".$tbl_opt." "; + $sql .= "WHERE g_idx = '$idx' order by idx"; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total_opt_info'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['opt_info'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total_opt_info'] = 0; + } + + + //연계재고관리 + if($list["list"][0]["stock_type"]=="3"){ + //연계옵션 타이틀 정보 가져오기 + $sql = "SELECT opt_1, opt_2 "; + $sql .= "FROM ".$tbl_opt_rel." "; + $sql .= "WHERE g_idx = '$idx' group by opt_1, opt_2 order by idx"; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total_opt_rel'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['opt_rel'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total_opt_rel'] = 0; + } + + //연계옵션 가로값 정보 가져오기 + $sql = "SELECT opt_1_value "; + $sql .= "FROM ".$tbl_opt_rel." "; + $sql .= "WHERE g_idx = '$idx' group by opt_1_value order by idx"; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total_opt_rel_1'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['opt_rel_1'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total_opt_rel_1'] = 0; + } + + //연계옵션 세로값 정보 가져오기 + $sql = "SELECT opt_2_value "; + $sql .= "FROM ".$tbl_opt_rel." "; + $sql .= "WHERE g_idx = '$idx' group by opt_2_value order by idx"; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total_opt_rel_2'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['opt_rel_2'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total_opt_rel_2'] = 0; + } + + //연계옵션 및 재고정보 가져오기 + $sql = "SELECT * "; + $sql .= "FROM ".$tbl_opt_rel." "; + $sql .= "WHERE g_idx = '$idx' order by idx"; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total_opt_rel_info'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $row = mysql_fetch_assoc($rs); + $list['opt_rel_info'][$row['opt_1_value']][$row['opt_2_value']]['price'] = $row['price']; + $list['opt_rel_info'][$row['opt_1_value']][$row['opt_2_value']]['stock'] = $row['stock']; + } + }else{ + $list['total_opt_rel_info'] = 0; + } + } + + + //파일정보 가져오기(상품) + $sql = "SELECT * "; + $sql .= "FROM ".$tbl_files." "; + $sql .= "WHERE b_idx = '$idx' order by idx "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total_files'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['files'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total_files'] = 0; + } + + + //파일정보 가져오기(카탈로그) + $sql = "SELECT * "; + $sql .= "FROM ".$tbl_catalog_files." "; + $sql .= "WHERE b_idx = '$idx' order by idx "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total_catalog_files'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['catalog_files'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['catalog_total_files'] = 0; + } + + //관련상품 가져오기 + if($list['list'][0][rel_g_idx]){ + $sql = "SELECT A.idx, A.g_code, A.g_name, A.price, A.image_m "; + $sql .= "FROM ".$tbl." A "; + $sql .= " WHERE A.idx in (".$list['list'][0][rel_g_idx].") ORDER BY A.idx desc "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + //echo $sql; + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['list_rel_good_total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list_rel_good'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['list_rel_good_total'] = 0; + } + } + + + return $list; +} + +//연계옵션 정보 가져오기 +function getOptRelInfo($g_idx, $opt_1_value){ + $tbl_opt_rel = $GLOBALS["_conf_tbl"]["shop_good_opt_rel"];//연계옵션 + + $sql = "SELECT * "; + $sql .= "FROM $tbl_opt_rel "; + $sql .= "WHERE g_idx = '$g_idx' AND opt_1_value='$opt_1_value' order by idx"; + $rs = mysql_query($sql); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + return $list; +} + + +//연계옵션 재고수량 가져오기 +function checkStockRel($g_idx, $opt_1_value, $opt_2_value){ + $tbl_opt_rel = $GLOBALS["_conf_tbl"]["shop_good_opt_rel"];//연계옵션 + + $opt_1 = explode("|",$opt_1_value); + $opt_2 = explode("|",$opt_2_value); + + $sql = "SELECT * "; + $sql .= "FROM $tbl_opt_rel "; + $sql .= "WHERE g_idx = '$g_idx' AND opt_1_value='".$opt_1[0]."' AND opt_2_value='".$opt_2[0]."' "; + $rs = mysql_query($sql); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $row = mysql_fetch_assoc($rs); + $list['opt_1_name'] = stripslashes($row[opt_1]); + $list['opt_1_value'] = stripslashes($row[opt_1_value]); + $list['opt_2_name'] = stripslashes($row[opt_2]); + $list['opt_2_value'] = stripslashes($row[opt_2_value]); + $list['opt_stock'] = stripslashes($row[stock]); + }else{ + $list['opt_stock'] = 0; + } + + return $list; +} + +//재고체크 +function checkPreOderStock($arrList){ + if($arrList["total"]>0){ + for($i=0;$i<$arrList["total"];$i++){ + //재고관리를 안할경우에는 패스 + if($arrList["list"][$i][stock_type]=="1"){continue;} + //일반재고관리를 할 경우에는 상품의 재고갯수 확인 + else if($arrList["list"][$i][stock_type]=="2"){ + if($arrList["list"][$i][stock] < $arrList["list"][$i][qty]){ + jsGo("/shop.php?goPage=Cart","",$arrList["list"][$i][g_name] . "\\n\\n의 재고가 현재 " . number_format($arrList["list"][$i][stock]) . "개 있습니다.\\n\\n주문수량을 낮춰 주시기 바랍니다."); + } + } + //연계재고관리를 할 경우에는 옵션의 재고갯수 확인 + else if($arrList["list"][$i][stock_type]=="3"){ + $arrChkRS = checkStockRel($arrList["list"][$i][g_idx], $arrList["list"][$i]["opt_rel_1"], $arrList["list"][$i]["opt_rel_2"]); + if($arrChkRS["opt_stock"] < $arrList["list"][$i][qty]){ + jsGo("/shop.php?goPage=Cart","",$arrList["list"][$i][g_name] . "\\n\\n[".$arrChkRS["opt_1_name"] . "] => [". $arrChkRS["opt_1_value"] . "] , [" . $arrChkRS["opt_2_name"] . "] => [". $arrChkRS["opt_2_value"] ."] 재고가 현재 " . number_format($arrChkRS["opt_stock"]) . "개 있습니다.\\n\\n주문수량을 낮춰 주시기 바랍니다."); + } + } + } + } +} + + +//추가 카테고리 가져오기 +function getGoodExtCat($g_idx){ + $tbl = $GLOBALS["_conf_tbl"]["shop_good_cat"]; + + $sql = "SELECT * "; + $sql .= "FROM " .$tbl." "; + $sql .= "WHERE g_idx = '$g_idx' "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + + +function deleteGood($idx){ + //상품정보 테이블 + $tbl = $GLOBALS["_conf_tbl"]["shop_good"];//상품정보 + $tbl_files = $GLOBALS["_conf_tbl"]["shop_good_files"];//상품파일 + $tbl_opt = $GLOBALS["_conf_tbl"]["shop_good_opt"];//상품옵션 + $tbl_opt_rel = $GLOBALS["_conf_tbl"]["shop_good_opt_rel"];//연계옵션 + $tbl_catalog_files = $GLOBALS["_conf_tbl"]["shop_catalog_files"];//카탈로그 파일 + $tbl_good_cat = $GLOBALS["_conf_tbl"]["shop_good_cat"]; + + $arrInfo = getArticleInfo($tbl, $idx); + + if($arrInfo["total"] > 0){ + //상품 정보 삭제 + $sql = "DELETE FROM ".$tbl." WHERE idx='".$arrInfo["list"][0][idx]."' "; + //echo $sql . "
    "; + $rs1 = mysql_query($sql, $GLOBALS[dblink]); + + //상품 파일정보 삭제 + $sql = "DELETE FROM ".$tbl_files." WHERE b_idx='".$arrInfo["list"][0][idx]."' "; + //echo $sql . "
    "; + $rs2 = mysql_query($sql, $GLOBALS[dblink]); + + //상품 옵션정보 삭제 + $sql = "DELETE FROM ".$tbl_opt." WHERE g_idx='".$arrInfo["list"][0][idx]."' "; + //echo $sql . "
    "; + $rs3 = mysql_query($sql, $GLOBALS[dblink]); + + //상품 옵션정보 삭제 + $sql = "DELETE FROM ".$tbl_opt_rel." WHERE g_idx='".$arrInfo["list"][0][idx]."' "; + //echo $sql . "
    "; + $rs4 = mysql_query($sql, $GLOBALS[dblink]); + + //상품 카탈로그 파일 삭제 + $sql = "DELETE FROM ".$tbl_catalog_files." WHERE b_idx='".$arrInfo["list"][0][idx]."' "; + //echo $sql . "
    "; + $rs5 = mysql_query($sql, $GLOBALS[dblink]); + + //추가 카테고리에서 삭제 + $sql = "DELETE FROM ".$tbl_good_cat." WHERE g_idx='".$arrInfo["list"][0][idx]."' "; + //echo $sql . "
    "; + $rs6 = mysql_query($sql, $GLOBALS[dblink]); + + if($rs1 && $rs2 && $arrInfo["list"][0][idx]){ + //상품관련 파일삭제 + rrmdir ($GLOBALS["_SITE"]["UPLOADED_DATA"]."/shop_good/" . $arrInfo["list"][0][idx]); + //위 함수가 하위에 파일이 없으면 디렉토리를 삭제하지 못하는 버그로 아래줄 추가함 + @rmdir ($GLOBALS["_SITE"]["UPLOADED_DATA"]."/shop_good/" . $arrInfo["list"][0][idx]); + return true; + }else{ + return false; + } + }else{ + return false; + } +} + + +//장바구니에 담기 +function addCart($session_id, $user_id, $tp, $g_idx, $qty){ + //상품정보 테이블 + $tbl = $GLOBALS["_conf_tbl"]["shop_cart"]; + + //있는 상품인지 체크 + $exists_chk = getGoodInfo($g_idx); + + if($exists_chk["total"] > 0){ + $sql = "SELECT * "; + $sql .= "FROM $tbl "; + $sql .= "WHERE "; + + //세션아이디, 유저아이디중 선택 + if($tp =="1"){ + $sql .= "user_id='".$user_id."' "; + }else{ + $sql .= "session_id='".$session_id."' "; + } + $sql .= "AND g_idx='".$g_idx."' "; + $sql .= "AND opt_1='".mysql_real_escape_string($_REQUEST[opt_1])."' "; + $sql .= "AND opt_2='".mysql_real_escape_string($_REQUEST[opt_2])."' "; + $sql .= "AND opt_3='".mysql_real_escape_string($_REQUEST[opt_3])."' "; + $sql .= "AND opt_4='".mysql_real_escape_string($_REQUEST[opt_4])."' "; + $sql .= "AND opt_5='".mysql_real_escape_string($_REQUEST[opt_5])."' "; + $sql .= "AND opt_rel_1='".mysql_real_escape_string($_REQUEST[opt_rel_1])."' "; + $sql .= "AND opt_rel_2='".mysql_real_escape_string($_REQUEST[opt_rel_2])."' "; + + $rs = mysql_query($sql); + $total_rs = mysql_num_rows($rs); + + //있다면 수량 업데이트 + if($total_rs > 0){ + $sql = "UPDATE ".$tbl." set + qty=qty+'".$qty."' + WHERE "; + + if($tp=="1"){ + $sql .="user_id='".$user_id."' "; + }else{ + $sql .="session_id='".$session_id."' "; + } + $sql .= "AND g_idx='".$g_idx."' "; + + //없다면 인서트 + }else{ + $sql = "INSERT INTO ".$tbl." set + session_id='".$session_id."', + user_id='".$user_id."', + g_idx='".$g_idx."', + qty='".$qty."', + opt_1='".mysql_real_escape_string($_REQUEST[opt_1])."', + opt_2='".mysql_real_escape_string($_REQUEST[opt_2])."', + opt_3='".mysql_real_escape_string($_REQUEST[opt_3])."', + opt_4='".mysql_real_escape_string($_REQUEST[opt_4])."', + opt_5='".mysql_real_escape_string($_REQUEST[opt_5])."', + opt_rel_1='".mysql_real_escape_string($_REQUEST[opt_rel_1])."', + opt_rel_2='".mysql_real_escape_string($_REQUEST[opt_rel_2])."', + wdate=now() + "; + } + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($total > 0){ + return true; + }else{ + return false; + } + }else{ + return false; + } +} + + +//장바구니 아이템 수량 업데이트 +function updateCart($session_id, $user_id, $tp){ + //상품정보 테이블 + $tbl = $GLOBALS["_conf_tbl"]["shop_cart"]; + + $sql = "UPDATE ".$tbl." set + qty='".mysql_real_escape_string($_REQUEST[qty])."' + WHERE "; + + if($tp=="1"){ + $sql .="user_id='".$user_id."' "; + }else{ + $sql .="session_id='".$session_id."' "; + } + + $sql .=" AND c_idx='".mysql_real_escape_string($_REQUEST[c_idx])."' "; + + + $rs = mysql_query($sql, $GLOBALS[dblink]); + + if($rs){ + return true; + }else{ + return false; + } + +} + + +//장바구니에서 아이템 삭제 +function deleteCart($session_id, $user_id, $tp){ + //상품정보 테이블 + $tbl = $GLOBALS["_conf_tbl"]["shop_cart"]; + + $sql = "DELETE FROM ".$tbl." + WHERE "; + + if($tp=="1"){ + $sql .="user_id='".$user_id."' "; + }else{ + $sql .="session_id='".$session_id."' "; + } + + $sql .=" AND c_idx='".mysql_real_escape_string($_REQUEST[c_idx])."' "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($total > 0){ + return true; + }else{ + return false; + } +} + +//장바구니에서 체크한 아이템 삭제 +function deleteCartChecked($session_id, $user_id, $tp){ + //상품정보 테이블 + $tbl = $GLOBALS["_conf_tbl"]["shop_cart"]; + + if(count($_REQUEST[items]) > 0){ + foreach($_REQUEST[items] AS $key => $val){ + $sql = "DELETE FROM ".$tbl." + WHERE "; + + if($tp=="1"){ + $sql .="user_id='".$user_id."' "; + }else{ + $sql .="session_id='".$session_id."' "; + } + + $sql .= " AND c_idx='".mysql_real_escape_string($val)."' "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + } + + if($total > 0){ + return true; + }else{ + return false; + } + }else{ + return false; + } +} + + +//장바구니에 담겨진 상품 회원 아이디와 연결 - 로그인시 세션 업데이트 +function updateCartSession($session_id, $user_id){ + //테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["shop_cart"]; + $tbl_order_cart = $GLOBALS["_conf_tbl"]["shop_order_cart"];//주문직전 장바구니 + + //장바구니에 담겨진것 회원아이디에 연결 + $sql = "UPDATE ".$tbl_order_cart." set + user_id='".$user_id."' + WHERE + session_id='".$session_id."' + "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); +/* + //주문직전 장바구니 비우기 (이미 주문신청한것 삭제) + $sql = "DELETE FROM ".$tbl_order_cart." + WHERE + user_id='".$user_id."' + "; + $rs = mysql_query($sql, $GLOBALS[dblink]); +*/ + + //================================================ + // 이전 카트에 아이디로 등록된 값 + // 세션으로 현재적용되어 있는 아이디로변경 + // 카트에서 구매가능케 함 + // 20100629 + // 테스트후 적용할것 + //================================================ + $sql2 = "UPDATE ".$tbl." set + session_id='".$session_id."' + WHERE + user_id='".$user_id."' + "; + $rs = mysql_query($sql2, $GLOBALS[dblink]); + //================================================ + + //주문직전 장바구니에 담겨진것 회원아이디에 연결 + $sql = "UPDATE ".$tbl_order_cart." set + user_id='".$user_id."' + WHERE + session_id='".$session_id."' + "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + + if($rs){ + return true; + }else{ + return false; + } + +} + +//장바구니 가져오기 +function getCartList($session_id, $user_id, $tp){ + //테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["shop_cart"];//장바구니 + $tbl_good = $GLOBALS["_conf_tbl"]["shop_good"]; + + //세션아이디, 유저아이디중 선택 + if($tp =="1"){ + $que_where .= " AND A.user_id='$user_id' ORDER BY A.wdate desc"; + }else{ + $que_where .= " AND A.session_id='$session_id' ORDER BY A.wdate desc"; + } + + + //목록 + $sql = "SELECT A.*, B.* "; + $sql .= "FROM ".$tbl." A "; + $sql .= "LEFT JOIN ".$tbl_good." B ON A.g_idx=B.idx "; + $sql .= "WHERE 1=1 $que_where "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_affected_rows($GLOBALS[dblink]); + + if($total_rs > 0){ + $list['total'] = $total_rs; + + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +//주문직전 장바구니 가져오기 +function getPreOrderList($session_id, $user_id, $tp){ + //테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["shop_order_cart"];//주문직전 장바구니 + $tbl_good = $GLOBALS["_conf_tbl"]["shop_good"]; + + //세션아이디, 유저아이디중 선택 + if($tp =="1"){ + // 수정 20100309 + // 아래로 수정 결제까지는 정확히 되나 다른상품으로 주문한 결과페이지로 됨 + //$que_where .= " AND A.user_id='$user_id' ORDER BY A.wdate desc"; + $que_where .= " AND A.user_id='$user_id' AND A.session_id='$session_id' ORDER BY A.wdate desc"; + + }else{ + $que_where .= " AND A.session_id='$session_id' ORDER BY A.wdate desc"; + } + + + //목록 + $sql = "SELECT A.*, B.* "; + $sql .= "FROM ".$tbl." A "; + $sql .= "LEFT JOIN ".$tbl_good." B ON A.g_idx=B.idx "; + $sql .= "WHERE 1=1 $que_where "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_affected_rows($GLOBALS[dblink]); + + if($total_rs > 0){ + $list['total'] = $total_rs; + + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + + +//장바구니에서 체크한 아이템 구매 +function preOrder($session_id, $user_id, $tp){ + //테이블 + $tbl_cart = $GLOBALS["_conf_tbl"]["shop_cart"]; + $tbl_order_cart = $GLOBALS["_conf_tbl"]["shop_order_cart"]; + + //주문번호 생성 + $new_order_no = makeOrderNo(); + + //테이블 비움 + $sql = "DELETE FROM ".$tbl_order_cart." + WHERE "; + + if($tp=="1"){ + $sql .="user_id='".$user_id."' "; + }else{ + $sql .="session_id='".$session_id."' "; + } + + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if(count($_REQUEST[items]) > 0){ + foreach($_REQUEST[items] AS $key => $val){ + $sql = "INSERT INTO ".$tbl_order_cart." ( + c_idx, + order_no, + session_id, + user_id, + g_idx, + qty, + opt_1, + opt_2, + opt_3, + opt_4, + opt_5, + opt_rel_1, + opt_rel_2, + wdate + ) + SELECT + c_idx, + '".$new_order_no."', + session_id, + user_id, + g_idx, + qty, + opt_1, + opt_2, + opt_3, + opt_4, + opt_5, + opt_rel_1, + opt_rel_2, + now() + FROM ".$tbl_cart." + WHERE "; + + if($tp=="1"){ + $sql .="user_id='".$user_id."' "; + }else{ + $sql .="session_id='".$session_id."' "; + } + + $sql .= " AND c_idx='".mysql_real_escape_string($val)."' "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + } + + if($total > 0){ + return true; + }else{ + return false; + } + }else{ + return false; + } +} + +//장바구니에서 해당아이템 한개 구매 +function preOrderOne($session_id, $user_id, $idx, $tp){ + //테이블 + $tbl_cart = $GLOBALS["_conf_tbl"]["shop_cart"]; + $tbl_order_cart = $GLOBALS["_conf_tbl"]["shop_order_cart"]; + + //주문번호 생성 + $new_order_no = makeOrderNo(); + + //테이블 비움 + $sql = "DELETE FROM ".$tbl_order_cart." + WHERE "; + + if($tp=="1"){ + $sql .="user_id='".$user_id."' "; + }else{ + $sql .="session_id='".$session_id."' "; + } + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + $sql = "INSERT INTO ".$tbl_order_cart." ( + c_idx, + order_no, + session_id, + user_id, + g_idx, + qty, + opt_1, + opt_2, + opt_3, + opt_4, + opt_5, + opt_rel_1, + opt_rel_2, + wdate + ) + SELECT + c_idx, + '".$new_order_no."', + session_id, + user_id, + g_idx, + qty, + opt_1, + opt_2, + opt_3, + opt_4, + opt_5, + opt_rel_1, + opt_rel_2, + now() + FROM ".$tbl_cart." + WHERE + "; + + if($tp=="1"){ + $sql .="user_id='".$user_id."' "; + }else{ + $sql .="session_id='".$session_id."' "; + } + + $sql .= " + AND c_idx='".mysql_real_escape_string($idx)."' + "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($total > 0){ + return true; + }else{ + return false; + } +} + +//바로구매 +function directOrder($session_id, $user_id, $tp){ + //테이블 + $tbl_order_cart = $GLOBALS["_conf_tbl"]["shop_order_cart"]; + + //주문번호 생성 + $new_order_no = makeOrderNo(); + + //테이블 비움 + $sql = "DELETE FROM ".$tbl_order_cart." + WHERE + "; + if($tp=="1"){ + $sql .="user_id='".$user_id."' "; + }else{ + $sql .="session_id='".$session_id."' "; + } + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + $sql = "INSERT INTO ".$tbl_order_cart." set + order_no='".$new_order_no."', + session_id='".$session_id."', + user_id='".$user_id."', + g_idx='".mysql_real_escape_string($_REQUEST[g_idx])."', + qty='".mysql_real_escape_string($_REQUEST[qty])."', + opt_1='".mysql_real_escape_string($_REQUEST[opt_1])."', + opt_2='".mysql_real_escape_string($_REQUEST[opt_2])."', + opt_3='".mysql_real_escape_string($_REQUEST[opt_3])."', + opt_4='".mysql_real_escape_string($_REQUEST[opt_4])."', + opt_5='".mysql_real_escape_string($_REQUEST[opt_5])."', + opt_rel_1='".mysql_real_escape_string($_REQUEST[opt_rel_1])."', + opt_rel_2='".mysql_real_escape_string($_REQUEST[opt_rel_2])."', + wdate=now() + "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + + if($total > 0){ + return true; + }else{ + return false; + } +} + + +//위시리스트에 담기 +function addWish($user_id, $g_idx){ + //위시리스트 테이블 + $tbl = $GLOBALS["_conf_tbl"]["shop_wish"]; + + //있는 상품인지 체크 + $exists_chk = getGoodInfo($g_idx); + + if($exists_chk["total"] > 0){ + $sql = "SELECT * "; + $sql .= "FROM $tbl "; + $sql .= "WHERE "; + + //세션아이디, 유저아이디중 선택 + $sql .= "user_id='".$user_id."' "; + $sql .= "AND g_idx='".mysql_real_escape_string($_REQUEST[g_idx])."' "; + + $rs = mysql_query($sql); + $total_rs = mysql_num_rows($rs); + + //있다면 그냥 리턴 + if($total_rs > 0){ + return true; + //없다면 인서트 + }else{ + $sql = "INSERT INTO ".$tbl." set + user_id='".$user_id."', + g_idx='".mysql_real_escape_string($_REQUEST[g_idx])."', + wdate=now() + "; + } + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($total > 0){ + return true; + }else{ + return false; + } + }else{ + return false; + } +} + + + +//위시리스트에서 아이템 삭제 +function deleteWish($user_id, $c_idx){ + //상품정보 테이블 + $tbl = $GLOBALS["_conf_tbl"]["shop_wish"]; + + $sql = "DELETE FROM ".$tbl." + WHERE "; + + $sql .="user_id='".$user_id."' "; + + $sql .=" AND c_idx='".$c_idx."' "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($total > 0){ + return true; + }else{ + return false; + } +} + +//위시리스트에서 체크한 아이템 삭제 +function deleteWishChecked($user_id){ + //상품정보 테이블 + $tbl = $GLOBALS["_conf_tbl"]["shop_wish"]; + + if(count($_REQUEST[items]) > 0){ + foreach($_REQUEST[items] AS $key => $val){ + $sql = "DELETE FROM ".$tbl." + WHERE "; + + $sql .="user_id='".$user_id."' "; + + $sql .= " AND c_idx='".mysql_real_escape_string($val)."' "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total = mysql_affected_rows($GLOBALS[dblink]); + } + + if($total > 0){ + return true; + }else{ + return false; + } + }else{ + return false; + } +} + +//위시리스트 가져오기 +function getWishList($user_id, $scale, $offset=0){ + //테이블 지정 + $tbl = $GLOBALS["_conf_tbl"]["shop_wish"];//위시리스트 + $tbl_good = $GLOBALS["_conf_tbl"]["shop_good"]; + + $que_where .= " AND A.user_id='$user_id' ORDER BY A.wdate desc"; + + + //목록 + $sql = "SELECT A.*, B.* "; + $sql .= "FROM ".$tbl." A "; + $sql .= "LEFT JOIN ".$tbl_good." B ON A.g_idx=B.idx "; + $sql .= "WHERE 1=1 $que_where "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_affected_rows($GLOBALS[dblink]); + + if($total_rs > 0){ + $list['total'] = $total_rs; + // 페이지 네비게이션 오프셋 지정. + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset 이 전체 게시물수보다 작을때 offset 을 전체게시물 - 페이지당 보여줄 글 수로 offset 설정 + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + if($scale != "0"){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset 을 이용한 limit 가 적용된 갯수 + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // 페이지 네비게이션 오프셋 지정. + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + + + +//주문번호 생성 +function makeOrderNo(){ + return date("YmdHis"). "T" . substr(microtime(),2,5); +} + +//해당 주문번호로 주문건이 있는지 체크 +function checkVaildOrderNo($order_no){ + $tbl = $GLOBALS["_conf_tbl"]["shop_order_info"];//상품 주문정보 테이블 + + $sql = "SELECT order_no "; + $sql .= "FROM $tbl "; + $sql .= "WHERE order_no = '$order_no' "; + $rs = mysql_query($sql); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + return true; + }else{ + return false; + } + + return $list; +} + +//주문서 입력 +function setOrderInfo($session_id, $user_id, $tp, $order_no, $order_state){ + $tbl_cart = $GLOBALS["_conf_tbl"]["shop_cart"];//장바구니 + $tbl_order_cart = $GLOBALS["_conf_tbl"]["shop_order_cart"];//주문직전 장바구니 + $tbl_order_info = $GLOBALS["_conf_tbl"]["shop_order_info"];//상품 주문정보 테이블 + $tbl_order_good = $GLOBALS["_conf_tbl"]["shop_order_good"];//상품 주문정보 테이블 + + //주문직전 장바구니에서 해당 주문내역 가져옴 + $arrList = getPreOrderList($session_id, $user_id, $tp); + + //변수 설정 + if($tp=="1"){ + $order_id = $user_id; + }else{ + $order_id = "guest"; + } + $order_phone = mysql_real_escape_string($_POST[order_phone1]) . "-" . mysql_real_escape_string($_POST[order_phone2]) . "-" . mysql_real_escape_string($_POST[order_phone3]); + $order_mobile = mysql_real_escape_string($_POST[order_mobile1]) . "-" . mysql_real_escape_string($_POST[order_mobile2]) . "-" . mysql_real_escape_string($_POST[order_mobile3]); + $order_zip = mysql_real_escape_string($_POST[order_zip]); + $ship_phone = mysql_real_escape_string($_POST[ship_phone1]) . "-" . mysql_real_escape_string($_POST[ship_phone2]) . "-" . mysql_real_escape_string($_POST[ship_phone3]); + $ship_mobile = mysql_real_escape_string($_POST[ship_mobile1]) . "-" . mysql_real_escape_string($_POST[ship_mobile2]) . "-" . mysql_real_escape_string($_POST[ship_mobile3]); + $ship_zip = mysql_real_escape_string($_POST[ship_zip]); + //변수 설정 + + $coupon_idx = mysql_real_escape_string(substr($_POST[coupon_idx],0,-1)); + + //입금확인의 경우 + if($order_state=="6"){ + $order_state = "6"; + $ipkum_date = date("Y-m-d H:i:s"); + //입금대기로 + }else{ + $order_state = "1"; + $ipkum_date = ""; + } + + $arrCoupon = explode("|", $coupon_idx); + for($i=0; $i intval($nowPoint[nowpoint])){ + jsMsg("사용하려는 적립금이 보유액보다 많습니다."); + exit; + } + + if($arrList["total"]>0){ + for($i=0;$i<$arrList["total"];$i++){ + $arrOpt1[$i] = explode("|",$arrList["list"][$i][opt_1]); + $arrOpt2[$i] = explode("|",$arrList["list"][$i][opt_2]); + $arrOpt3[$i] = explode("|",$arrList["list"][$i][opt_3]); + $arrOpt4[$i] = explode("|",$arrList["list"][$i][opt_4]); + $arrOpt5[$i] = explode("|",$arrList["list"][$i][opt_5]); + $arrOptRel1[$i] = explode("|",$arrList["list"][$i][opt_rel_1]); + $arrOptRel2[$i] = explode("|",$arrList["list"][$i][opt_rel_2]); + + //추가금액 계산 + $optionPrice = $arrOpt1[$i][1] + $arrOpt2[$i][1] + $arrOpt3[$i][1] + $arrOpt4[$i][1] + $arrOpt5[$i][1] + $arrOptRel1[$i][1] + $arrOptRel2[$i][1]; + + //적립금계산 + if($arrList["list"][$i][point_unit]=="P"){ + $thisPoint = (($arrList["list"][$i][point]*($arrList["list"][$i][price]+$optionPrice))/100) * $arrList["list"][$i][qty]; + }else{ + $thisPoint = $arrList["list"][$i][point] * $arrList["list"][$i][qty]; + } + + //합계금액 계산 (적립금사용, 배송비를 포함하지 않은 순수 금액+옵션가격) + $TotalAmount += ($arrList["list"][$i][price]*$arrList["list"][$i][qty])+($optionPrice * $arrList["list"][$i][qty]); + + //주문상품 정보 테이블에 입력 + $sql = "INSERT INTO ".$tbl_order_good." SET + order_no='$order_no', + order_id='$order_id', + g_idx='".$arrList["list"][$i]["g_idx"]."', + g_cat_no='".$arrList["list"][$i]["cat_no"]."', + g_code='".$arrList["list"][$i]["g_code"]."', + g_name='".$arrList["list"][$i]["g_name"]."', + g_vendor='".$arrList["list"][$i]["vendor"]."', + g_brand='".$arrList["list"][$i]["brand"]."', + g_model='".$arrList["list"][$i]["model"]."', + g_price='".$arrList["list"][$i]["price"]."', + g_qty='".$arrList["list"][$i]["qty"]."', + g_point='".$thisPoint."', + g_opt_1='".$arrOpt1[$i][0]."', + g_opt_1_price='".$arrOpt1[$i][1]."', + g_opt_2='".$arrOpt2[$i][0]."', + g_opt_2_price='".$arrOpt2[$i][1]."', + g_opt_3='".$arrOpt3[$i][0]."', + g_opt_3_price='".$arrOpt3[$i][1]."', + g_opt_4='".$arrOpt4[$i][0]."', + g_opt_4_price='".$arrOpt4[$i][1]."', + g_opt_5='".$arrOpt5[$i][0]."', + g_opt_5_price='".$arrOpt5[$i][1]."', + g_opt_rel_1='".$arrOptRel1[$i][0]."', + g_opt_rel_1_price='".$arrOptRel1[$i][1]."', + g_opt_rel_2='".$arrOptRel2[$i][0]."', + g_opt_rel_2_price='".$arrOptRel2[$i][1]."', + order_status ='X' + "; + $rs = mysql_query($sql); + } + + //for loop 뒤의 변수 설정 + //주문요약 정보 + if($arrList["total"]==1){ + $order_summary = $arrList["list"][0]["g_name"]; + }else{ + $order_summary = $arrList["list"][0]["g_name"] . " 외 " . ($arrList["total"]-1). "건"; + } + + //배송비 -> 합계금액 (적립금사용, 배송비를 포함하지 않은 순수 금액+옵션가격)이 무료배송금액보다 작을 때 배송비 포함시킴 + if($GLOBALS["_SITE"]["SHOP"]["SHIP"]["DELIVERY_GB"]=="1"){ + $ship_price = 0 ; + }else if($GLOBALS["_SITE"]["SHOP"]["SHIP"]["DELIVERY_GB"]=="2"){ + $ship_price = 0 ; + }else if($GLOBALS["_SITE"]["SHOP"]["SHIP"]["DELIVERY_GB"]=="3"){ + $ship_price = $GLOBALS["_SITE"]["SHOP"]["SHIP"]["DEFAULT_PRICE"]; + }else if($GLOBALS["_SITE"]["SHOP"]["SHIP"]["DELIVERY_GB"]=="4"){ + if($TotalAmount < $GLOBALS["_SITE"]["SHOP"]["SHIP"]["FREE_PRICE"]){ + $ship_price = $GLOBALS["_SITE"]["SHOP"]["SHIP"]["LOW_PRICE"]; + }else{ + $ship_price = 0 ; + } + } + + + + //실 결제금액 + $PayAmount = $TotalAmount + $ship_price - $_POST[using_point]; + + //for loop 뒤의 변수 설정 + + + //사용한 적립금 차감 + if($order_id != "guest" && $_POST[using_point] > 0){ + $RS = setMinusPoint($order_id, $_POST[using_point], mysql_real_escape_string($order_summary)." 구매"); + } + + //주문정보 테이블에 입력 + $sql = "INSERT INTO ".$tbl_order_info." SET + order_no='$order_no', + order_summary='$order_summary', + order_name='".mysql_real_escape_string($_POST[order_name])."', + order_id='$order_id', + order_regnum1='".mysql_real_escape_string($_POST[order_regnum1])."', + order_regnum2='".md5(mysql_real_escape_string($_POST[order_regnum2]))."', + order_phone='$order_phone', + order_mobile='$order_mobile', + order_zip='$order_zip', + order_address='".mysql_real_escape_string($_POST[order_address])."', + order_address_ext='".mysql_real_escape_string($_POST[order_address_ext])."', + order_email='".mysql_real_escape_string($_POST[order_email])."', + ship_name='".mysql_real_escape_string($_POST[ship_name])."', + ship_phone='$ship_phone', + ship_mobile='$ship_mobile', + ship_zip='$ship_zip', + ship_address='".mysql_real_escape_string($_POST[ship_address])."', + ship_address_ext='".mysql_real_escape_string($_POST[ship_address_ext])."', + pay_type='".mysql_real_escape_string($_POST[pay_type])."', + bank_type='".mysql_real_escape_string($_POST[bank_type])."', + bank_name='".mysql_real_escape_string($_POST[bank_name])."', + bank_date='".mysql_real_escape_string($_POST[bank_date])."', + using_point='".mysql_real_escape_string($_POST[using_point])."', + using_point_idx='".$RS."', + coupon_amount='".mysql_real_escape_string($_POST[coupon_price])."', + coupon_idx='".$coupon_idx."', + ship_amount='$ship_price', + login_amount='".$_POST[loginsale]."', + birth_amount='".$_POST[birthsale]."', + total_amount='$TotalAmount', + pay_amount='$PayAmount', + order_date=now(), + order_state='$order_state', + ipkum_date='$ipkum_date', + order_comment='".mysql_real_escape_string($_POST[order_comment])."', + ip='".$_SERVER[REMOTE_ADDR]."' + "; + $rs = mysql_query($sql); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($total > 0){ + //주문직전 장바구니에서 장바구니 번호 선택 + $sql = "SELECT c_idx FROM ".$tbl_order_cart." + WHERE order_no='$order_no' + "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $oc_total = mysql_num_rows($rs); + + if($oc_total > 0){ + for($i=0;$i<$oc_total; $i++){ + $row = mysql_fetch_assoc($rs); + //장바구니에서 주문한 상품 삭제 + $sql = "DELETE FROM ".$tbl_cart." + WHERE c_idx = '".$row[c_idx]."' + "; + mysql_query($sql, $GLOBALS[dblink]); + } + } + + //주문직전 장바구니에서 삭제 + $sql = "DELETE FROM ".$tbl_order_cart." + WHERE order_no='$order_no' + "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + + + + + return true; + }else{ + return false; + } + }else{ + return false; + } +} + + +function updatePayState($pay_type, $order_no, $use_type){ + + if($pay_type=="card"){ + $order_state = "6"; + }else if($pay_type=="escrow"){ + $order_state = "6"; + }else if($pay_type=="online"){ + $order_state = "1"; + }else if($pay_type=="hp"){ + $order_state = "6"; + } + + if($use_type=="M"){ + $use_type = "M"; + $charge_type = ""; + }else{ + $use_type = "W"; + $charge_type = "1"; + } + + $sql = "UPDATE tbl_shop_order_info set order_state='".$order_state."',use_type='".$use_type."',charge_type='".$charge_type."' where order_no='".$order_no."' "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + + if($rs > 0){ + return true; + }else{ + return false; + } +} + +//주문서 입력 (모바일용) +function setOrderInfoMobile($session_id, $user_id, $tp, $order_no, $order_state, $result){ + $tbl_cart = $GLOBALS["_conf_tbl"]["shop_cart"];//장바구니 + $tbl_order_cart = $GLOBALS["_conf_tbl"]["shop_order_cart"];//주문직전 장바구니 + $tbl_order_info = $GLOBALS["_conf_tbl"]["shop_order_info"];//상품 주문정보 테이블 + $tbl_order_good = $GLOBALS["_conf_tbl"]["shop_order_good"];//상품 주문정보 테이블 + + //주문직전 장바구니에서 해당 주문내역 가져옴 + $arrList = getPreOrderList($session_id, $user_id, $tp); + + //변수 설정 + if($tp=="1"){ + $order_id = $user_id; + }else{ + $order_id = "guest"; + } + + $order_address = explode("---", $result["OrdAddr"]); + $ship_address = explode("---", $result["DlvAddr"]); + $order_etc = explode("---", $result["Column3"]); + + $order_phone = mysql_real_escape_string($result["OrdPhone"]); + $order_mobile = mysql_real_escape_string($result["Column1"]); + $order_zip = mysql_real_escape_string($order_address[0]); + $ship_phone = mysql_real_escape_string($result["RcpPhone"]); + $ship_mobile = mysql_real_escape_string($result["Column2"]); + $ship_zip = mysql_real_escape_string($ship_address[0]); + //변수 설정 + + //입금확인의 경우 + if($order_state=="6"){ + $order_state = "6"; + $ipkum_date = date("Y-m-d H:i:s"); + //입금대기로 + }else{ + $order_state = "1"; + $ipkum_date = ""; + } + + //적립금 사용체크 + $nowPoint = getNowPoint($user_id); + if($order_etc[0] > intval($nowPoint[nowpoint])){ + jsMsg("사용하려는 적립금이 보유액보다 많습니다."); + exit; + } + + if($arrList["total"]>0){ + for($i=0;$i<$arrList["total"];$i++){ + $arrOpt1[$i] = explode("|",$arrList["list"][$i][opt_1]); + $arrOpt2[$i] = explode("|",$arrList["list"][$i][opt_2]); + $arrOpt3[$i] = explode("|",$arrList["list"][$i][opt_3]); + $arrOpt4[$i] = explode("|",$arrList["list"][$i][opt_4]); + $arrOpt5[$i] = explode("|",$arrList["list"][$i][opt_5]); + $arrOptRel1[$i] = explode("|",$arrList["list"][$i][opt_rel_1]); + $arrOptRel2[$i] = explode("|",$arrList["list"][$i][opt_rel_2]); + + //추가금액 계산 + $optionPrice = $arrOpt1[$i][1] + $arrOpt2[$i][1] + $arrOpt3[$i][1] + $arrOpt4[$i][1] + $arrOpt5[$i][1] + $arrOptRel1[$i][1] + $arrOptRel2[$i][1]; + + //적립금계산 + if($arrList["list"][$i][point_unit]=="P"){ + $thisPoint = (($arrList["list"][$i][point]*($arrList["list"][$i][price]+$optionPrice))/100) * $arrList["list"][$i][qty]; + }else{ + $thisPoint = $arrList["list"][$i][point] * $arrList["list"][$i][qty]; + } + + //합계금액 계산 (적립금사용, 배송비를 포함하지 않은 순수 금액+옵션가격) + $TotalAmount += ($arrList["list"][$i][price]*$arrList["list"][$i][qty])+($optionPrice * $arrList["list"][$i][qty]); + + //주문상품 정보 테이블에 입력 + $sql = "INSERT INTO ".$tbl_order_good." SET + order_no='$order_no', + order_id='$order_id', + g_idx='".$arrList["list"][$i]["g_idx"]."', + g_cat_no='".$arrList["list"][$i]["cat_no"]."', + g_code='".$arrList["list"][$i]["g_code"]."', + g_name='".$arrList["list"][$i]["g_name"]."', + g_vendor='".$arrList["list"][$i]["vendor"]."', + g_brand='".$arrList["list"][$i]["brand"]."', + g_model='".$arrList["list"][$i]["model"]."', + g_price='".$arrList["list"][$i]["price"]."', + g_qty='".$arrList["list"][$i]["qty"]."', + g_point='".$thisPoint."', + g_opt_1='".$arrOpt1[$i][0]."', + g_opt_1_price='".$arrOpt1[$i][1]."', + g_opt_2='".$arrOpt2[$i][0]."', + g_opt_2_price='".$arrOpt2[$i][1]."', + g_opt_3='".$arrOpt3[$i][0]."', + g_opt_3_price='".$arrOpt3[$i][1]."', + g_opt_4='".$arrOpt4[$i][0]."', + g_opt_4_price='".$arrOpt4[$i][1]."', + g_opt_5='".$arrOpt5[$i][0]."', + g_opt_5_price='".$arrOpt5[$i][1]."', + g_opt_rel_1='".$arrOptRel1[$i][0]."', + g_opt_rel_1_price='".$arrOptRel1[$i][1]."', + g_opt_rel_2='".$arrOptRel2[$i][0]."', + g_opt_rel_2_price='".$arrOptRel2[$i][1]."', + order_status ='X' + "; + $rs = mysql_query($sql); + } + + //for loop 뒤의 변수 설정 + //주문요약 정보 + if($arrList["total"]==1){ + $order_summary = $arrList["list"][0]["g_name"]; + }else{ + $order_summary = $arrList["list"][0]["g_name"] . " 외 " . ($arrList["total"]-1). "건"; + } + + //배송비 -> 합계금액 (적립금사용, 배송비를 포함하지 않은 순수 금액+옵션가격)이 무료배송금액보다 작을 때 배송비 포함시킴 + if($TotalAmount < $GLOBALS["_SITE"]["SHOP"]["SHIP"]["FREE_PRICE"]){ + $ship_price = $GLOBALS["_SITE"]["SHOP"]["SHIP"]["SHIP_PRICE"]; + }else{ + $ship_price = 0 ; + } + + //실 결제금액 + $PayAmount = $TotalAmount + $ship_price - $order_etc[0] - $_POST[loginsale] - $_POST[birthsale]; + + //for loop 뒤의 변수 설정 + + //사용한 적립금 차감 + if($order_id != "guest" && $order_etc[0] > 0){ + $RS = setMinusPoint($order_id, $order_etc[0], mysql_real_escape_string($order_summary)." 구매"); + } + + //주문정보 테이블에 입력 + $sql = "INSERT INTO ".$tbl_order_info." SET + order_no='$order_no', + order_summary='$order_summary', + order_name='".mysql_real_escape_string($result["OrdNm"])."', + order_id='$order_id', + order_regnum1='".mysql_real_escape_string($_POST[order_regnum1])."', + order_regnum2='".md5(mysql_real_escape_string($_POST[order_regnum2]))."', + order_phone='$order_phone', + order_mobile='$order_mobile', + order_zip='$order_zip', + order_address='".mysql_real_escape_string($order_address[1])."', + order_address_ext='".mysql_real_escape_string($order_address[2])."', + order_email='".mysql_real_escape_string($result["UserEmail"])."', + ship_name='".mysql_real_escape_string($result["RcpNm"])."', + ship_phone='$ship_phone', + ship_mobile='$ship_mobile', + ship_zip='$ship_zip', + ship_address='".mysql_real_escape_string($ship_address[1])."', + ship_address_ext='".mysql_real_escape_string($ship_address[0])."', + charge_type='1', + pay_type='".mysql_real_escape_string($order_etc[1])."', + using_point='".mysql_real_escape_string($order_etc[0])."', + using_point_idx='".$RS."', + ship_amount='$ship_price', + total_amount='$TotalAmount', + pay_amount='$PayAmount', + order_date=now(), + order_state='$order_state', + ipkum_date='$ipkum_date', + order_comment='".mysql_real_escape_string($result["Remark"])."', + ip='".$_SERVER[REMOTE_ADDR]."' + "; + + $rs = mysql_query($sql); + $total = mysql_affected_rows($GLOBALS[dblink]); + + if($total > 0){ + //주문직전 장바구니에서 장바구니 번호 선택 + $sql = "SELECT c_idx FROM ".$tbl_order_cart." + WHERE order_no='$order_no' + "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $oc_total = mysql_num_rows($rs); + + if($oc_total > 0){ + for($i=0;$i<$oc_total; $i++){ + $row = mysql_fetch_assoc($rs); + //장바구니에서 주문한 상품 삭제 + $sql = "DELETE FROM ".$tbl_cart." + WHERE c_idx = '".$row[c_idx]."' + "; + mysql_query($sql, $GLOBALS[dblink]); + } + } + + //주문직전 장바구니에서 삭제 + $sql = "DELETE FROM ".$tbl_order_cart." + WHERE order_no='$order_no' + "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + + return true; + }else{ + return false; + } + }else{ + return false; + } +} + +//주문서 입력 +function setEscrowInfo($order_no, $bank_type, $bank_date){ + $tbl_order_info = $GLOBALS["_conf_tbl"]["shop_order_info"];//상품 주문정보 테이블 + + //주문정보 테이블에 수정 + $sql = "UPDATE ".$tbl_order_info." SET + bank_type='".mysql_real_escape_string($_POST[bank_type])."', + bank_date='".mysql_real_escape_string($_POST[bank_date])."' + WHERE order_no='$order_no' + "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + if($rs){ + return true; + }else{ + return false; + } +} + + +//주문정보 가져오기 +function getOrderInfo($user_id, $tp, $order_no){ + $tbl_good = $GLOBALS["_conf_tbl"]["shop_good"];//상품 테이블 + $tbl_order_info = $GLOBALS["_conf_tbl"]["shop_order_info"];//상품 주문정보 테이블 + $tbl_order_good = $GLOBALS["_conf_tbl"]["shop_order_good"];//상품 주문정보 테이블 + + //변수 설정 + if($tp=="1"){ + $order_id = $user_id; + }else{ + $order_id = "guest"; + } + + //목록 + $sql = "SELECT A.* "; + $sql .= "FROM ".$tbl_order_info." A "; + $sql .= "WHERE A.order_id='$order_id' AND A.order_no='$order_no' "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_affected_rows($GLOBALS[dblink]); + + if($total_rs > 0){ + $list['total'] = $total_rs; + + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + + //주문상품 목록 + $sql = "SELECT B.*, C.p_image, C.author_name "; + $sql .= "FROM ".$tbl_order_good." B LEFT JOIN ".$tbl_good." C ON B.g_idx=C.idx "; + $sql .= "WHERE B.order_no='$order_no' "; + + $rs_good = mysql_query($sql, $GLOBALS[dblink]); + $total_good = mysql_affected_rows($GLOBALS[dblink]); + if($total_good > 0){ + $list['good_total'] = $total_good; + + for($i=0; $i < $total_good; $i++){ + $list['good_list'][$i] = mysql_fetch_assoc($rs_good); + } + } + + }else{ + $list['total'] = 0; + } + return $list; +} + +//주문정보 가져오기 - 손님 +function getOrderInfoGuest($order_name, $mobile, $order_no){ + $tbl_good = $GLOBALS["_conf_tbl"]["shop_good"];//상품 테이블 + $tbl_order_info = $GLOBALS["_conf_tbl"]["shop_order_info"];//상품 주문정보 테이블 + $tbl_order_good = $GLOBALS["_conf_tbl"]["shop_order_good"];//상품 주문정보 테이블 + + $que_where = " AND A.order_id='guest' "; + $que_where .= " AND A.order_name='$order_name' "; + $que_where .= " AND A.order_mobile='$mobile' "; + $que_where .= " AND A.order_no='$order_no' "; + + //목록 + $sql = "SELECT A.* "; + $sql .= "FROM ".$tbl_order_info." A "; + $sql .= "WHERE 1=1 $que_where "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_affected_rows($GLOBALS[dblink]); + + if($total_rs > 0){ + $list['total'] = $total_rs; + + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + + //주문상품 목록 + $sql = "SELECT B.*, C.p_image, C.author_name "; + $sql .= "FROM ".$tbl_order_good." B LEFT JOIN ".$tbl_good." C ON B.g_idx=C.idx "; + $sql .= "WHERE B.order_no='$order_no' "; + + $rs_good = mysql_query($sql, $GLOBALS[dblink]); + $total_good = mysql_affected_rows($GLOBALS[dblink]); + if($total_good > 0){ + $list['good_total'] = $total_good; + + for($i=0; $i < $total_good; $i++){ + $list['good_list'][$i] = mysql_fetch_assoc($rs_good); + } + } + + }else{ + $list['total'] = 0; + } + return $list; +} + + +//주문정보 가져오기 - 관리자 +function getOrderInfoAdmin($order_no){ + $tbl_good = $GLOBALS["_conf_tbl"]["shop_good"];//상품 테이블 + $tbl_order_info = $GLOBALS["_conf_tbl"]["shop_order_info"];//상품 주문정보 테이블 + $tbl_order_good = $GLOBALS["_conf_tbl"]["shop_order_good"];//상품 주문정보 테이블 + + + //목록 + $sql = "SELECT A.* "; + $sql .= "FROM ".$tbl_order_info." A "; + $sql .= "WHERE A.order_no='$order_no' "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_affected_rows($GLOBALS[dblink]); + + if($total_rs > 0){ + $list['total'] = $total_rs; + + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + + //주문상품 목록 + $sql = "SELECT B.*, C.image_s, C.author_name "; + $sql .= "FROM ".$tbl_order_good." B LEFT JOIN ".$tbl_good." C ON B.g_idx=C.idx "; + $sql .= "WHERE B.order_no='$order_no' "; + + $rs_good = mysql_query($sql, $GLOBALS[dblink]); + $total_good = mysql_affected_rows($GLOBALS[dblink]); + if($total_good > 0){ + $list['good_total'] = $total_good; + + for($i=0; $i < $total_good; $i++){ + $list['good_list'][$i] = mysql_fetch_assoc($rs_good); + } + } + + }else{ + $list['total'] = 0; + } + return $list; +} + + +//주문정보 수정 - 관리자 +function setOrderInfoAdmin($order_no){ + $tbl_good = $GLOBALS["_conf_tbl"]["shop_good"];//상품 테이블 + $tbl_good_opt_rel = $GLOBALS["_conf_tbl"]["shop_good_opt_rel"];//상품 주문정보 테이블 + $tbl_order_info = $GLOBALS["_conf_tbl"]["shop_order_info"];//주문정보 테이블 + $tbl_order_good = $GLOBALS["_conf_tbl"]["shop_order_good"];//주문상품 테이블 + + + //현재 주문정보 가져오기 + $arrInfo = getOrderInfoAdmin($order_no); + + + //적립금 지급 처리 + if($_POST[pay_point]=="Y"){ + for($i=0;$i<$arrInfo["good_total"];$i++){ + //적립금 계산 + $pay_plus_point += $arrInfo["good_list"][$i][g_point]; + } + //적립해줘야할 금액이 있다면 적립 + if($pay_plus_point > 0 && $arrInfo["list"][0]["order_id"] !="guest"){ + $RS = setPlusPoint($arrInfo["list"][0]["order_id"], $pay_plus_point, $arrInfo["list"][0]["order_summary"] . " 구매"); + if($RS > 0){ + $p_sql = " pay_point='Y', pay_point_date=now(), pay_point_idx='$RS', "; + }else{ + jsMsg("적립금 지금에 실패하였습니다."); + } + } + } + + //재고수량 차감 처리 + if($_POST[stock_apply]=="Y"){ + for($i=0;$i<$arrInfo["good_total"];$i++){ + $arrList = getGoodInfo($arrInfo["good_list"][$i]["g_idx"]); + + //재고관리를 안할경우에는 패스 + if($arrList["list"][0][stock_type]=="1"){ + continue; + + } + //일반재고관리를 할 경우에는 상품재고수량 감소시킴 + else if($arrList["list"][0][stock_type]=="2"){ + $sql = "UPDATE $tbl_good SET + stock = stock - ".$arrInfo["good_list"][$i]["g_qty"]." + WHERE idx = '".$arrInfo["good_list"][$i]["g_idx"]."' + "; + } + //연계재고관리를 할 경우에는 옵션의 재고갯수 확인 + else if($arrList["list"][0][stock_type]=="3"){ + $sql = "UPDATE $tbl_good_opt_rel SET + stock = stock - ".$arrInfo["good_list"][$i]["g_qty"]." + WHERE + g_idx = '".$arrInfo["good_list"][$i]["g_idx"]."' + AND opt_1_value = '".$arrInfo["good_list"][$i]["g_opt_rel_1"]."' + AND opt_2_value = '".$arrInfo["good_list"][$i]["g_opt_rel_2"]."' + "; + } + $rs = mysql_query($sql, $GLOBALS[dblink]); + } + $s_sql = " stock_apply='Y', stock_apply_date=now(), "; + } + + + + + //주문정보 테이블 수정 + $sql = "UPDATE ".$tbl_order_info." SET + order_state='".mysql_real_escape_string($_POST[order_state])."', + ipkum_date='".mysql_real_escape_string($_POST[ipkum_date])."', + shipping_date='".mysql_real_escape_string($_POST[shipping_date])."', + shipping_company='".mysql_real_escape_string($_POST[shipping_company])."', + shipping_no='".mysql_real_escape_string($_POST[shipping_no])."', + $p_sql + $s_sql + admin_comment='".mysql_real_escape_string($_POST[admin_comment])."' + WHERE order_no='$order_no' + "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + + + //주문상품 판매정보 업데이트 + if($_POST[order_state] > 5){ + $order_good_status = "o"; + }else{ + $order_good_status = "x"; + } + $sql = "UPDATE ".$tbl_order_good." SET + order_status='$order_good_status' + WHERE order_no='$order_no' + "; + mysql_query($sql, $GLOBALS[dblink]); + + if($rs){ + return true; + + }else{ + return false; + } +} + +//주문정보 수정(취소요청) +function setOrderInfoCancel($order_no){ + $tbl_good = $GLOBALS["_conf_tbl"]["shop_good"];//상품 테이블 + $tbl_good_opt_rel = $GLOBALS["_conf_tbl"]["shop_good_opt_rel"];//상품 주문정보 테이블 + $tbl_order_info = $GLOBALS["_conf_tbl"]["shop_order_info"];//주문정보 테이블 + $tbl_order_good = $GLOBALS["_conf_tbl"]["shop_order_good"];//주문상품 테이블 + + + //현재 주문정보 가져오기 + $arrInfo = getOrderInfoAdmin($order_no); + //주문정보 테이블 수정 + $sql = "UPDATE ".$tbl_order_info." SET + order_state='2' + WHERE order_no='$order_no' + "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + + //주문상품 판매정보 업데이트 + if($_POST[order_state] > 5){ + $order_good_status = "o"; + }else{ + $order_good_status = "x"; + } + $sql = "UPDATE ".$tbl_order_good." SET + order_status='$order_good_status' + WHERE order_no='$order_no' + "; + mysql_query($sql, $GLOBALS[dblink]); + + if($rs){ + return true; + + }else{ + return false; + } +} + +//주문정보 삭제 - 관리자 +function delOrderInfoAdmin($order_no){ + $tbl_good = $GLOBALS["_conf_tbl"]["shop_good"];//상품 테이블 + $tbl_order_info = $GLOBALS["_conf_tbl"]["shop_order_info"];//상품 주문정보 테이블 + $tbl_order_good = $GLOBALS["_conf_tbl"]["shop_order_good"];//상품 주문정보 테이블 + + + //주문정보 테이블 수정 + $sql = "DELETE FROM ".$tbl_order_info." WHERE order_no='$order_no' "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + + //주문상품 테이블 수정 + $sql = "DELETE FROM ".$tbl_order_good." WHERE order_no='$order_no' "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + + if($rs){ + return true; + }else{ + return false; + } +} + +//주문정보 가져오기 +function getOrderListCheck($order_id, $scale, $offset=0, $g_idx){ + $tbl_order_info = $GLOBALS["_conf_tbl"]["shop_order_info"];//상품 주문정보 테이블 + $tbl_order_good = $GLOBALS["_conf_tbl"]["shop_order_good"];//상품 주문정보 테이블 + + $que_where = "AND A.order_id='$order_id' AND B.g_idx='$g_idx'"; + + //카운트 + $sql = "select count(A.idx) from $tbl_order_info A, $tbl_order_good B WHERE 1=1 $que_where "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $row = mysql_fetch_row($rs); + $total_rs = $row[0]; + //echo $sql; + //목록 + $sql = "SELECT A.* "; + $sql .= "FROM ".$tbl_order_info." A "; + $sql .= "WHERE 1=1 $que_where ORDER BY A.idx DESC "; + + if($total_rs > 0){ + $list['total'] = $total_rs; + }else{ + $list['total'] = 0; + } + + return $list; +} + +//주문정보 가져오기 +function getOrderList($order_id, $scale, $offset=0){ + $tbl_order_info = $GLOBALS["_conf_tbl"]["shop_order_info"];//상품 주문정보 테이블 + $tbl_order_good = $GLOBALS["_conf_tbl"]["shop_order_good"];//상품 주문정보 테이블 + + $que_where = "AND A.order_id='$order_id'"; + $que_where .= " AND (A.order_state !='1' or A.pay_type!='card' )"; + + //카운트 + $sql = "select count(A.idx) from $tbl_order_info A WHERE 1=1 $que_where "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $row = mysql_fetch_row($rs); + $total_rs = $row[0]; + + //목록 + $sql = "SELECT A.* "; + $sql .= "FROM ".$tbl_order_info." A "; + $sql .= "WHERE 1=1 $que_where ORDER BY A.idx DESC "; + + if($total_rs > 0){ + $list['total'] = $total_rs; + // 페이지 네비게이션 오프셋 지정. + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset 이 전체 게시물수보다 작을때 offset 을 전체게시물 - 페이지당 보여줄 글 수로 offset 설정 + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + if($scale != "0"){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset 을 이용한 limit 가 적용된 갯수 + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // 페이지 네비게이션 오프셋 지정. + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + return $list; +} + + +//주문정보 가져오기 - 비회원 +function getOrderListGuest($order_name, $mobile, $scale, $offset=0){ + $tbl_order_info = $GLOBALS["_conf_tbl"]["shop_order_info"];//상품 주문정보 테이블 + $tbl_order_good = $GLOBALS["_conf_tbl"]["shop_order_good"];//상품 주문정보 테이블 + + $que_where = " AND A.order_id='guest' "; + $que_where .= " AND A.order_name='$order_name' "; + $que_where .= " AND A.order_mobile='$mobile' "; + $que_where .= " AND (A.order_state !='1' or A.pay_type!='card' )"; + + //카운트 + $sql = "select count(A.idx) from $tbl_order_info A WHERE 1=1 $que_where "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $row = mysql_fetch_row($rs); + $total_rs = $row[0]; + + //목록 + $sql = "SELECT A.* "; + $sql .= "FROM ".$tbl_order_info." A "; + $sql .= "WHERE 1=1 $que_where ORDER BY A.idx DESC "; + + if($total_rs > 0){ + $list['total'] = $total_rs; + // 페이지 네비게이션 오프셋 지정. + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset 이 전체 게시물수보다 작을때 offset 을 전체게시물 - 페이지당 보여줄 글 수로 offset 설정 + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + if($scale != "0"){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + //echo $sql; + // offset 을 이용한 limit 가 적용된 갯수 + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // 페이지 네비게이션 오프셋 지정. + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + + return $list; +} + +//주문정보 가져오기 - 관리자 +function getOrderListAdmin($sw, $sk, $s_date, $e_date, $order_state, $scale, $offset=0){ + $tbl_order_info = $GLOBALS["_conf_tbl"]["shop_order_info"];//상품 주문정보 테이블 + $tbl_order_good = $GLOBALS["_conf_tbl"]["shop_order_good"];//주문 상품 테이블 + + + if($sw=="all"){ + $que_where .= "AND (A.order_name like '%$sk%' OR A.order_id like '%$sk%') "; + }else if($sw=="name"){ + $que_where .= "AND A.order_name like '%$sk%' "; + }else if($sw=="id"){ + $que_where .= "AND A.order_id like '%$sk%' "; + } + + if($_REQUEST[sk2]) { + $que_where .= "AND B.g_name like '%$_REQUEST[sk2]%' "; + } + + if($s_date){ + $que_where .= "AND A.".$_REQUEST[sh_date]." >='$s_date 00:00:00' "; + } + if($e_date){ + $que_where .= "AND A.".$_REQUEST[sh_date]." <='$e_date 23:59:59' "; + } + + if($_REQUEST[pay_opt]!="A") { //결제옵션 + $que_where .= "AND A.order_regnum1='".$_REQUEST[pay_opt]."' "; + } + + if($_REQUEST[order_states]) { + for($i=0; $i < count($_REQUEST[order_states]); $i++){ + $str_state .= "'".$_REQUEST[order_states][$i]."'"; + if($i != count($_REQUEST[order_states])-1){ + $str_state .= ","; + } + } + $que_where .= "AND A.order_state in ($str_state) "; + } + if($_REQUEST[orderstate]){ + $arrOrder = str_replace("/", "", mysql_real_escape_string($_REQUEST[orderstate])); + $str_state = explode(",",$arrOrder); + $que_where .= " and A.order_state regexp '("; + + for($k=0; $k < count($str_state)-1; $k++){ + $que_where .= $str_state[$k]; + if($k != count($str_state)-2) { + $que_where .= "|"; + } + } + $que_where .= ")' "; + } + + + if($_REQUEST[pay_type]) { + for($i=0; $i < count($_REQUEST[pay_type]); $i++){ + $str_type .= "'".$_REQUEST[pay_type][$i]."'"; + if($i != count($_REQUEST[pay_type])-1){ + $str_type .= ","; + } + } + $que_where .= "AND A.pay_type in ($str_type) "; + } + if($_REQUEST[paytype]){ + + $str_type = explode(",",$_REQUEST[paytype]); + $que_where .= " and A.pay_type regexp '("; + + for($k=0; $k < count($str_type)-1; $k++){ + $que_where .= $str_type[$k]; + if($k != count($str_type)-2) { + $que_where .= "|"; + } + } + $que_where .= ")' "; + } + + if($_REQUEST[s_price]){ + $que_where .= "AND A.pay_amount >='".str_replace(",", "",$_REQUEST[s_price])."' "; + } + if($_REQUEST[e_price]){ + $que_where .= "AND A.pay_amount <='".str_replace(",", "",$_REQUEST[e_price])."' "; + } + + if($order_state){ + $arr_state = explode(",",$order_state); + for($i=0;$i 0){ + $list['total'] = $total_rs; + // 페이지 네비게이션 오프셋 지정. + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset 이 전체 게시물수보다 작을때 offset 을 전체게시물 - 페이지당 보여줄 글 수로 offset 설정 + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + if($scale != "0"){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset 을 이용한 limit 가 적용된 갯수 + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // 페이지 네비게이션 오프셋 지정. + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + //echo $sql; + + return $list; +} + +function getOrderListAdmin2($sw, $sk, $s_date, $e_date, $order_state, $scale, $offset=0){ + $tbl_order_info = $GLOBALS["_conf_tbl"]["shop_order_info"];//상품 주문정보 테이블 + $tbl_order_good = $GLOBALS["_conf_tbl"]["shop_order_good"];//주문 상품 테이블 + + + if($sw=="all"){ + $que_where .= "AND (A.order_name like '%$sk%' OR A.order_id like '%$sk%') "; + }else if($sw=="name"){ + $que_where .= "AND A.order_name like '%$sk%' "; + }else if($sw=="id"){ + $que_where .= "AND A.order_id like '%$sk%' "; + } + + if($s_date){ + $que_where .= "AND A.order_date >='$s_date 00:00:00' "; + } + if($e_date){ + $que_where .= "AND A.order_date <='$e_date 23:59:59' "; + } + + if($order_state){ + $que_where .= "AND A.order_state='$order_state' "; + } + + //카운트 + $sql = "select count(A.idx) from $tbl_order_info A WHERE 1=1 $que_where "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $row = mysql_fetch_row($rs); + $total_rs = $row[0]; + + //목록 + $sql = "SELECT A.* "; + $sql .= "FROM ".$tbl_order_info." A "; + $sql .= "WHERE 1=1 $que_where ORDER BY A.idx DESC "; + + if($total_rs > 0){ + $list['total'] = $total_rs; + // 페이지 네비게이션 오프셋 지정. + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset 이 전체 게시물수보다 작을때 offset 을 전체게시물 - 페이지당 보여줄 글 수로 offset 설정 + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + if($scale != "0"){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset 을 이용한 limit 가 적용된 갯수 + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // 페이지 네비게이션 오프셋 지정. + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + //echo $sql; + + return $list; +} + + +//내가 주문한 상품인지 체크 +function getMyOrderGood($order_no, $g_idx, $order_id){ + $tbl = $GLOBALS["_conf_tbl"]["shop_order_good"];//상품 주문정보 테이블 + + $que_where = "AND A.order_no='$order_no' AND A.g_idx='$g_idx' AND A.order_id='$order_id'"; + + //목록 + $sql = "SELECT A.idx "; + $sql .= "FROM ".$tbl." A "; + $sql .= "WHERE 1=1 $que_where "; + + $rs = mysql_query($sql,$GLOBALS[dblink]); + $total = mysql_num_rows($rs); + + if($total > 0){ + return true; + }else{ + return false; + } + +} + +//매출관리 +function getAccountStatus($s_date, $e_date){ + $tbl_order_info = $GLOBALS["_conf_tbl"]["shop_order_info"];//상품 주문정보 테이블 + + $sql = "SELECT count(order_no) as order_count, "; + $sql .= "SUM(using_point) as using_point, "; + $sql .= "SUM(ship_amount) as ship_amount, "; + $sql .= "SUM(total_amount) as total_amount, "; + $sql .= "SUM(pay_amount) as pay_amount, "; + $sql .= "LEFT(order_date,10) AS order_date, "; + $sql .= "pay_type "; + + $sql .= "FROM $tbl_order_info "; + + $sql .= "WHERE order_state >= '6' "; + $sql .= "AND order_date >= '$s_date 00:00:00' "; + $sql .= "AND order_date <= '$e_date 23:59:59' "; + + //전체 매출뽑기 + $sql_total = $sql . "GROUP BY LEFT(order_date,10) "; + $rs = mysql_query($sql_total, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $row = mysql_fetch_assoc($rs); + $list['list'][$row[order_date]] = $row; + $list['list_sum'][order_count] += $row[order_count]; + $list['list_sum'][using_point] += $row[using_point]; + $list['list_sum'][ship_amount] += $row[ship_amount]; + $list['list_sum'][total_amount] += $row[total_amount]; + $list['list_sum'][pay_amount] += $row[pay_amount]; + } + }else{ + $list['total'] = 0; + } + + //결제타입별 매출뽑기 + $sql_p_type = $sql . "GROUP BY LEFT(order_date,10), pay_type "; + $rs = mysql_query($sql_p_type, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['p_total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $row = mysql_fetch_assoc($rs); + $list['p_list'][$row[order_date]][$row[pay_type]] = $row; + $list['p_list_sum'][$row[pay_type]][pay_amount] += $row[pay_amount]; + } + }else{ + $list['p_total'] = 0; + } + + return $list; +} + +function getBankNameByCode($VIRTUAL_CENTERCD){ + if($VIRTUAL_CENTERCD == "39"){ + return "경남은행"; + }else if($VIRTUAL_CENTERCD == "34"){ + return "광주은행"; + }else if($VIRTUAL_CENTERCD == "04"){ + return "국민은행"; + }else if($VIRTUAL_CENTERCD == "11"){ + return "농협중앙회"; + }else if($VIRTUAL_CENTERCD == "31"){ + return "대구은행"; + }else if($VIRTUAL_CENTERCD == "32"){ + return "부산은행"; + }else if($VIRTUAL_CENTERCD == "02"){ + return "산업은행"; + }else if($VIRTUAL_CENTERCD == "45"){ + return "새마을금고"; + }else if($VIRTUAL_CENTERCD == "07"){ + return "수협중앙회"; + }else if($VIRTUAL_CENTERCD == "48"){ + return "신용협동조합"; + }else if($VIRTUAL_CENTERCD == "26"){ + return "(구)신한은행"; + }else if($VIRTUAL_CENTERCD == "05"){ + return "외환은행"; + }else if($VIRTUAL_CENTERCD == "20"){ + return "우리은행"; + }else if($VIRTUAL_CENTERCD == "71"){ + return "우체국"; + }else if($VIRTUAL_CENTERCD == "37"){ + return "전북은행"; + }else if($VIRTUAL_CENTERCD == "23"){ + return "제일은행"; + }else if($VIRTUAL_CENTERCD == "35"){ + return "제주은행"; + }else if($VIRTUAL_CENTERCD == "21"){ + return "(구)조흥은행"; + }else if($VIRTUAL_CENTERCD == "03"){ + return "중소기업은행"; + }else if($VIRTUAL_CENTERCD == "81"){ + return "하나은행"; + }else if($VIRTUAL_CENTERCD == "88"){ + return "신한은행"; + }else if($VIRTUAL_CENTERCD == "27"){ + return "한미은행"; + } +} + + +//================================================ +// 주문제품 목록 상품연동 CSV +// 주문관리에서 CSV 파일 만들기 +// 20100614 +//================================================ +function getOrderListCSV($sw, $sk, $s_date, $e_date, $order_state, $scale, $offset=0){ + $tbl_order_info = $GLOBALS["_conf_tbl"]["shop_order_info"];//상품 주문정보 테이블 + $tbl_order_good = $GLOBALS["_conf_tbl"]["shop_order_good"];//주문 상품 테이블 + $tbl_category = $GLOBALS["_conf_tbl"]["category"];//카테고리 + + + if($sw=="all"){ + $que_where .= "AND ( B.order_name like '%$sk%' OR B.order_id like '%$sk%') "; + }else if($sw=="name"){ + $que_where .= "AND B.order_name like '%$sk%' "; + }else if($sw=="id"){ + $que_where .= "AND B.order_id like '%$sk%' "; + } + + if($s_date){ + //$que_where .= "AND A.order_date >='$s_date 00:00:00' "; + $que_where .= "AND order_date >='$s_date 00:00:00' "; + } + if($e_date){ + //$que_where .= "AND A.order_date <='$e_date 23:59:59' "; + $que_where .= "AND order_date <='$e_date 23:59:59' "; + } + + if($order_state){ + $que_where .= "AND order_state='$order_state' "; + } + + + + //카운트 + $sql = "SELECT COUNT(A.idx) "; + $sql .= " FROM ".$tbl_order_good." A "; + $sql .= " LEFT JOIN ".$tbl_order_info." B "; + $sql .= " ON A.order_no = B.order_no "; + $sql .= " WHERE 1=1 ".$que_where; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $row = mysql_fetch_row($rs); + $total_rs = $row[0]; + + /* + //목록 + $sql = "SELECT A.* "; + $sql .= "FROM ".$tbl_order_info." A "; + $sql .= "WHERE 1=1 $que_where ORDER BY A.idx DESC "; + */ + + + $sql = " SELECT A. * "; + $sql .= ", B.ship_name AS ship_name , B.order_id AS join_id, B.order_date AS join_date"; + $sql .= ", B.ship_zip AS join_zip, B.ship_address AS join_address, B.order_state AS order_state, B.ship_amount AS ship_amount, B.pay_type AS pay_type, C.cat_code "; + $sql .= ", B.ship_address_ext AS join_address_ext, B.ship_mobile AS join_mobile, B.order_comment "; + $sql .= " FROM ".$tbl_order_good." A "; + $sql .= " LEFT JOIN ".$tbl_order_info." B ON A.order_no = B.order_no "; + $sql .= " LEFT JOIN ".$tbl_category." C ON A.g_cat_no=C.cat_no "; + $sql .= " WHERE 1=1 ".$que_where; + $sql .= " ORDER BY A.order_no DESC "; + + //echo $sql; + + if($total_rs > 0){ + $list['total'] = $total_rs; + // 페이지 네비게이션 오프셋 지정. + if(!$offset){ + $offset=0; + }else{ + $offset=$offset; + } + + // offset 이 전체 게시물수보다 작을때 offset 을 전체게시물 - 페이지당 보여줄 글 수로 offset 설정 + if($total_rs<=$offset){ + $offset = $total_rs - $scale; + } + + if($scale != "0"){ + $sql .= " limit $offset,$scale "; + } + $rs = mysql_query($sql,$GLOBALS[dblink]); + + // offset 을 이용한 limit 가 적용된 갯수 + $total = mysql_num_rows($rs); + $list['list']['total'] = $total; + // 페이지 네비게이션 오프셋 지정. + + for($i=0; $i < $total; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + //echo $sql; + + return $list; +} + +?> diff --git a/module/shop/shop.php b/module/shop/shop.php new file mode 100644 index 0000000..3ca5081 --- /dev/null +++ b/module/shop/shop.php @@ -0,0 +1,118 @@ + + +
    +
    + +
    "> + +
    +
    +
    \ No newline at end of file diff --git a/module/shop/thanks.php b/module/shop/thanks.php new file mode 100644 index 0000000..5356c76 --- /dev/null +++ b/module/shop/thanks.php @@ -0,0 +1,239 @@ + 주문번호가 있어야만 주문가능 +if($arrInfo["total"] > 0){ +?> +
    +
    +
    + +
    +

    주문완료

    +
    +
    [주문번호]     [주문내역]
    + +
    +
      +
    1. 1. 신용카드결제시, 결제가 정상적으로 이루어졌는지 주문조회를 통해 확인하시기 바랍니다.
    2. +
    3. 2. 주문내용은 [마이페이지 > 주문/배송조회]를 통해 언제나 주문/배송상황을 알아보실 수 있습니다.
    4. +
    5. 3. 주문서가 접수되었으므로 장바구니는 자동으로 비워집니다.
    6. +
    7. 4. 신용카드로 결제하신 고객님들께서는 결제대행사 승인전표 서비스 페이지에서 승인전표를 확인해 주시기 바랍니다.
    8. +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + 0){ + for($i=0;$i<$arrInfo["good_total"];$i++){ + //추가금액 계산 + $optionPrice = $arrInfo["good_list"][$i][g_opt_1_price] + $arrInfo["good_list"][$i][g_opt_2_price] + $arrInfo["good_list"][$i][g_opt_3_price] + $arrInfo["good_list"][$i][g_opt_4_price] + $arrInfo["good_list"][$i][g_opt_5_price]; + + //합계금액 계산 + $totalPrice += ($arrInfo["good_list"][$i][g_price]*$arrInfo["good_list"][$i][g_qty])+($optionPrice * $arrInfo["good_list"][$i][g_qty]); + ?> + + + + + + + + + + + + + + +
    상품명판매가적립금수량합계/추가금
    " target="_blank">/" width="80" height="80" alt="" class="img_border" /> + +

    +

    ".$arrInfo["good_list"][$i][g_opt_1]:""?> + ".$arrInfo["good_list"][$i][g_opt_2]:""?> + ".$arrInfo["good_list"][$i][g_opt_3]:""?> + ".$arrInfo["good_list"][$i][g_opt_4]:""?> + ".$arrInfo["good_list"][$i][g_opt_5]:""?> + +

    구매항목이 없습니다.
    +
    + + +
    +
    +

    배송지 정보

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    이름
    주소[]
    전화번호
    휴대폰번호
    남기실 내용
    +
    + + + +
    +
    +

    결제내역

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    결제방법 + + + + + +
    결제금액 산출상품구매금액(원) + 배송비(원) +
    쿠폰 사용
    적립금 사용
    총결제금액
    입금계좌
    입금자명
    입금예정일자
    결제결과문화상품권이 정상적으로 결제되었습니다.
    결제결과
    +
    + + + +
    + + + + + +
    해당하는 주문내역이 없습니다.
    + \ No newline at end of file diff --git a/module/shop/viewImgPop.php b/module/shop/viewImgPop.php new file mode 100644 index 0000000..2e8f8cb --- /dev/null +++ b/module/shop/viewImgPop.php @@ -0,0 +1,69 @@ + + + + + +<?=mysql_real_escape_string($arrInfo["list"][0][g_name])?> + + + + + + + + + + 1){?> + + + + + +
    + /" border="0" alt="">
    + + &seq=">/s_" border="0">  + +
    + + + diff --git a/module/shop/wish_evn.php b/module/shop/wish_evn.php new file mode 100644 index 0000000..f514147 --- /dev/null +++ b/module/shop/wish_evn.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/module/zipcode/ajax_get_gugun.php b/module/zipcode/ajax_get_gugun.php new file mode 100644 index 0000000..8332e4a --- /dev/null +++ b/module/zipcode/ajax_get_gugun.php @@ -0,0 +1,20 @@ + \ No newline at end of file diff --git a/module/zipcode/images/adress_plus.gif b/module/zipcode/images/adress_plus.gif new file mode 100644 index 0000000..9d10710 Binary files /dev/null and b/module/zipcode/images/adress_plus.gif differ diff --git a/module/zipcode/images/btn_close.gif b/module/zipcode/images/btn_close.gif new file mode 100644 index 0000000..472c1c8 Binary files /dev/null and b/module/zipcode/images/btn_close.gif differ diff --git a/module/zipcode/images/btn_search.gif b/module/zipcode/images/btn_search.gif new file mode 100644 index 0000000..eea7513 Binary files /dev/null and b/module/zipcode/images/btn_search.gif differ diff --git a/module/zipcode/images/btn_select.gif b/module/zipcode/images/btn_select.gif new file mode 100644 index 0000000..04d2623 Binary files /dev/null and b/module/zipcode/images/btn_select.gif differ diff --git a/module/zipcode/newzipcode.tgz b/module/zipcode/newzipcode.tgz new file mode 100644 index 0000000..cddeee5 Binary files /dev/null and b/module/zipcode/newzipcode.tgz differ diff --git a/module/zipcode/zipcode.css b/module/zipcode/zipcode.css new file mode 100644 index 0000000..dd4e68d --- /dev/null +++ b/module/zipcode/zipcode.css @@ -0,0 +1,304 @@ +@charset "utf-8"; +/* reset */ +html {overflow-y:scroll;} +body,p,h1,h2,h3,h4,h5,h6,ul,ol,li,dl,dt,dd,table,th,td,form,fieldset,legend,input,textarea,button,select,figure,figcaption{margin:0;padding:0} +body,input,textarea,select,button,table{font-family:'돋움',Dotum,helvetica,sans-serif;font-size:12px;line-height:18px;color:#333;} +img{border:0} +ul,ol{list-style:none} +fieldset{border:none} +fieldset legend {position:absolute;visibility:hidden;overflow:hidden;width:0;height:0;margin:0;padding:0;font:0/0 Arial;} +label {cursor:pointer;} +button{cursor:pointer} +header,hgroup,article,nav,footer,figure,figcaption,canvas,section,time{display:block} +hr {clear:both;display:none;} +em {font-style:normal;} +li img, dd img {vertical-align:top;} +*html body img {margin:none; padding:none;} /*for IE 6*/ + +a{color:#333;text-decoration:none} +a:hover,a:active{text-decoration:underline} + +table caption {visibility:hidden; overflow:hidden; width:0; height:0; margin:0; padding:0; font:0/0 Arial;} +input[type="radio"], input[type="checkbox"] {vertical-align:middle !important; margin:-2px 3px 0 0 !important;} +input.input {height:18px; padding:0 5px; border:1px solid #9c979b; color:#979797;} + +/* user layout */ +.zipcode_wrap .title { + height:32px; + padding:0 15px; + background:#363c4a; + border-bottom:1px solid #1f1f29; +} +.zipcode_wrap .title h1 {color:#fff; font-size:14px; text-shadow:1px 1px #000; line-height:32px;} +.zipcode_wrap .container {padding:10px 8px;} +.zipcode_wrap .tab {margin-bottom:18px; border-bottom:1px solid #666;} +.zipcode_wrap .tab ul {width:416px; height:31px;} +.zipcode_wrap .tab li {float:left; position:relative; width:206px; height:30px; text-align:center; border:1px solid #ccc; border-bottom:0; background:#eee; z-index:0;} +.zipcode_wrap .tab li.on {border:1px solid #666;border-bottom:0;background-color:#fff;height:31px;z-index:1;} +.zipcode_wrap .tab li a {display:block;padding:7px 0;font-size:13px;line-height:14px;letter-spacing:-1px;color:#666;text-decoration:none;} +.zipcode_wrap .tab li.on a {font-weight:bold;color:#333;} +.zipcode_wrap .content .type {margin-bottom:8px;} +.zipcode_wrap .search-area { + margin:0 0 15px 0; + padding:15px 20px; + background-color:#f7f7f7; + border-top:1px solid #ccc; + border-bottom:1px solid #ccc; +} +.zipcode_wrap .search-area .word span { + *vertical-align:3px; +} +.zipcode_wrap .search-area .search img { + vertical-align:top; +} +.zipcode_wrap .result { + margin-top:18px; +} +.zipcode_wrap .result > p { + line-height:14px; + margin:20px 0 8px; + color:#666; +} +.zipcode_wrap .result .none { + padding:20px 0; + margin:0; + border-top:2px solid #666; + border-bottom:1px solid #acacac; + text-align:center; + color:#333; +} +.zipcode_wrap .result .none strong { + display:block; + margin-bottom:8px; +} +.zipcode_wrap .result .list { + border-top:2px solid #666; + border-bottom:1px solid #acacac; +} +.zipcode_wrap .result .list li { + overflow:hidden; + *margin-top:-5px; + padding:8px 10px 7px; + border-top:1px solid #e1e1e1; +} +.zipcode_wrap .result .list li:first-child { + border-top:0; + *padding:13px 10px 7px; +} +.zipcode_wrap .result .list li span { + display:inline-block; + height:32px; + float:left; + color:#666; + text-align:left; + line-height:16px; +} +.zipcode_wrap .result .list li span em { + display:block; + color:#333; +} +.zipcode_wrap .result .list li a { + display:block; + float:right; + margin-top:4px; +} +.zipcode_wrap .result > strong { + display:block; + margin-bottom:7px; +} +.zipcode_wrap .result .input_txt { + border-top:2px solid #666; + border-bottom:1px solid #acacac; +} +.zipcode_wrap .result .input_txt li { + padding:10px 0; +} +.zipcode_wrap .result .input_txt li:first-child { + border-bottom:1px solid #e1e1e1; +} +.zipcode_wrap .result .input_txt input.zip-code { + font-family:Tahoma; +} +.zipcode_wrap .result .input_txt p { + margin-bottom:6px; +} +.zipcode_wrap .result .input_txt .address { + margin:6px 0; +} +.zipcode_wrap .content div.zip-code p span { + color:#999; +} +.zipcode_wrap .content div.zip-code .word input[type="text"] { + *margin-top:-1px; +} +.zipcode_wrap .content div.zip-code .search-area a.search { +} +.zipcode_wrap .content div.zip-code .postresult { + padding:0; + overflow-y:auto; + overflow-x:hidden; +} +.zipcode_wrap .content div.zip-code .postresult ul { + overflow:hidden; + width:100%; +} +.zipcode_wrap .content div.zip-code .postresult li a { + width:100%; +} +.zipcode_wrap .content div.zip-code .postresult li a span { + margin-right:10px; + *margin-right:26px; + padding-right:4px; +} +.zipcode_wrap .content div.zip-code .postresult-none { + height:111px; + text-align:center; +} +.zipcode_wrap .content div.zip-code .postresult-none p { + padding:48px 0; +} +/* 도로명 새주소로 찾기 */ +.zipcode_wrap .street-name .search-area ul { + overflow:hidden; +} +.zipcode_wrap .street-name .search-area li { + float:left; + width:150px; + margin-right:15px; +} +.zipcode_wrap .street-name .search-area label span { + display:inline-block; + width:37px; + line-height:16px; + padding-top:3px; + vertical-align:top; +} +.zipcode_wrap .street-name .search-area .selectors, +.zipcode_wrap .street-name .search-area .word { + height:20px; +} +.zipcode_wrap .street-name .search-area .selectors { + /* margin-bottom:10px; */ +} +.zipcode_wrap .street-name .search-area .selectors .selectbox, +.zipcode_wrap .street-name .search-area .selectors select { + margin-right:12px; +} +.zipcode_wrap .street-name .search-area .word { + padding-top:10px; /* 2013-06-17 eun */ +} +.zipcode_wrap .street-name .search-area .word .first { + display:inline-block; + margin-right:19px; + padding-right:33px; + *padding-right:38px; /* 2013-05-30 eun */ + background:url('images/adress_plus.gif') no-repeat 100% 6px; +} +.zipcode_wrap .street-name .search-area .word input[type="text"] { + *margin-top:-1px; + padding:2px 5px; + padding:4px 5px 0 \0/IE9; + *padding:4px 5px 0; + height:14px; + vertical-align:top; + font:11px/14px Dotum; +} +.zipcode_wrap .street-name .ex { + color:#666; + letter-spacing:-1px; /* 2013-05-30 eun */ +} +.zipcode_wrap .street-name .notice { + margin-top:18px; + color:#999; +} +.zipcode_wrap .street-name .notice a { + color:#416de9; +} +.zipcode_wrap .content .street-name .type label { + margin-right:12px; +} +.zipcode_wrap .content .street-name .type input[type="radio"] { + vertical-align:-1px; + margin-right:2px; +} +.zipcode_wrap .content .street-name .type label em { + color:#dc2c09; +} +.zipcode_wrap .button-area { + margin:0 8px; + padding:10px 0 23px; + border-top:2px solid #363c4a; + text-align:center; +} +.zipcode_wrap .button-area a.button { + vertical-align:top; + padding:0 3px 0 0; +} +.zipcode_wrap .button-area a.button span { + padding:0; + width:67px; +} +.zipcode_wrap .pagination { + margin-top:15px; + text-align:center; +} +.zipcode_wrap .pagination span.pages a, +.zipcode_wrap .pagination span.pages strong { + display:inline-block; + margin-right:3px; + width:19px; + height:18px; + border:1px solid #dddddd; + font:bold 12px/18px Tahoma; +} +.zipcode_wrap .pagination span.pages strong { + border:1px solid #f00f00; + color:#f00f00; +} +.zipcode_wrap .pagination .prev, +.zipcode_wrap .pagination .next { + display:inline-block; + background-image:url('https://pics.auction.co.kr/common/sprite_pagination.gif'); + background-repeat:no-repeat; + text-decoration:none; + *font:11px/14px Dotum; + letter-spacing:-1px; +} +.zipcode_wrap .pagination .prev { + padding-left:11px; + margin-right:4px; + background-position: 0 -58px; +} +.zipcode_wrap .pagination .next { + padding-right:11px; + margin-left:4px; + background-position: 100% -28px; +} + +/* 우편번호 검색결과 */ +.postresult{ + border:1px solid #999; + padding:1px; + margin-top:10px; +} +div.postresult ul li { +} +div.postresult ul li a{ + color:#7c7c7c; + display:block; + padding:4px 3px 2px; + line-height:1.25em; +} +div.postresult ul li a:hover{ + color:#333; + background:#EAEAEA; + text-decoration:none; +} +div.postresult ul li a span{ + display:block; + text-align:right; + cursor:pointer; + margin-top:-16px; +} +*html div.postresult ul li a span{margin-top:-19px;} +*:first-child+html div.postresult ul li a span{margin-top:-19px;} \ No newline at end of file diff --git a/module/zipcode/zipcode.lib.php b/module/zipcode/zipcode.lib.php new file mode 100644 index 0000000..a3b5f24 --- /dev/null +++ b/module/zipcode/zipcode.lib.php @@ -0,0 +1,118 @@ + 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +function getZipCodeGugun($tname){ + $tbl = $GLOBALS["_conf_tbl"]["zipcode"] . $tname; + + $sql = "SELECT distinct gugun FROM ".$tbl." "; + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; +} + +function getZipCodeRoad($tname, $gugun, $road, $building="") { + $tbl = $GLOBALS["_conf_tbl"]["zipcode"] . "_". $tname; + + $build = explode("-", $building); + + $sql = "SELECT * FROM ".$tbl." "; + $sql .= "WHERE gugun='".$gugun."' AND road='".$road."' "; + if($build[0]) { + $sql .= "AND building1='".$build[0]."' "; + } + if($build[1]) { + $sql .= "AND building2='".$build[1]."' "; + } + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; + +} + +function getZipCodeDong($tname, $gugun, $dong, $gibun="") { + $tbl = $GLOBALS["_conf_tbl"]["zipcode"] . "_". $tname; + + $jibun = explode("-", $gibun); + + $sql = "SELECT * FROM ".$tbl." "; + $sql .= "WHERE gugun='".$gugun."' AND (dong='".$dong."' or ri='".$dong."') "; + if($jibun[0]) { + $sql .= "AND gibun1='".$jibun[0]."' "; + } + if($jibun[1]) { + $sql .= "AND gibun2='".$jibun[1]."' "; + } + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; + +} + +function getZipCodeBuild($tname, $gugun, $buildingname) { + $tbl = $GLOBALS["_conf_tbl"]["zipcode"] . "_". $tname; + + $sql = "SELECT * FROM ".$tbl." "; + $sql .= "WHERE gugun='".$gugun."' AND buildingname like '%".$buildingname."%' "; + + $rs = mysql_query($sql, $GLOBALS[dblink]); + $total_rs = mysql_num_rows($rs); + + if($total_rs > 0){ + $list['total'] = $total_rs; + for($i=0; $i < $total_rs; $i++){ + $list['list'][$i] = mysql_fetch_assoc($rs); + } + }else{ + $list['total'] = 0; + } + return $list; + +} +?> \ No newline at end of file diff --git a/module/zipcode/zipcode.php b/module/zipcode/zipcode.php new file mode 100644 index 0000000..5333924 --- /dev/null +++ b/module/zipcode/zipcode.php @@ -0,0 +1,143 @@ + + + + + + +주소찾기 + + + + + + +
    +
    +

    주소찾기

    +
    +
    + +
    +
    +

    찾고자 하는 주소명(동/읍/면/리/가)을 입력하세요. (예:역삼1동)

    +
    +
    + +
    + + " style="width:165px;" onfocus="clearForm(this,'동(읍/면/리/가)');" onblur="escapeForm(this,'동(읍/면/리/가)');" class="input" /> + 검색 +
    +
    +
    + 0){?> +

    ※ 검색 후 우편번호를 클릭해주세요.

    + +
    + +
    + +

    검색결과값이 없습니다.

    + +
    +
    +
    +
    + 닫기 +
    +
    + + \ No newline at end of file diff --git a/module/zipcode/zipcode2.php b/module/zipcode/zipcode2.php new file mode 100644 index 0000000..ad87f5b --- /dev/null +++ b/module/zipcode/zipcode2.php @@ -0,0 +1,322 @@ + + + + + + +주소찾기 + + + + + +
    +
    +

    주소찾기

    +
    +
    + +
    +
    +
    + +
    + + + +
    +
    +
    + + + + +
    +
    + + " id="txtBuildingNo" onfocus="clearForm(this,'건물번호');" onblur="escapeForm(this,'건물번호');" value="건물번호" onkeydown="if(event.keyCode==13){clickSearchButton(); return false;}" style="width:98px;" class="input" /> + 검색 +
    + + +
    +

    예) 테헤란로 152 → ‘서울시’‘강남구’ 선택 후 테헤란로(도로명) + 152(건물번호)

    + + +

    ※ 도로명 새주소가 검색되지 않는 경우는 행정안전부 새주소안내시스템 (http://www.juso.go.kr)에서 확인하시기 바랍니다.

    +
    +
    + + + + +
    +
    +
    + 닫기 +
    +
    + + + \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..eb05362 --- /dev/null +++ b/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..dedb867 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,1641 @@ + + + + http://www.gdidc.jp/ + 2021-05-18 + daily + 1.0 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=36 + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=35 + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/privacy.php + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=38 + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=37 + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/sub04_02.php + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/sub04_01.php + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/sub06_02.php + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/index.php + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/sub06_01.php + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/terms.php + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/sub04_03.php + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=28 + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/sub01_02.php + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/sub03_02.php + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/sub02_01_02.php + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/sub01_01.php + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/sub03_01.php + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/sub02_01.php + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/sub05_01.php + 2021-05-18 + daily + 0.9 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=75&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=35&goPage=&g_idx= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=38&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&sk=&sw=&category=&goPage=&g_idx=&offset=20 + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=76&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=37&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=28&goPage=&g_idx= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&sk=&sw=&category=&goPage=&g_idx=&offset=30 + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=84&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&sk=&sw=&category=&goPage=&g_idx=&offset=70 + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=80&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=77&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=21&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=36&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=28&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=78&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=35&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=list&sk=&sw=&offset=&category=&goPage=&g_idx= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&sk=&sw=&category=&goPage=&g_idx=&offset=40 + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=23&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=83&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=79&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=36&goPage=&g_idx= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=22&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&sk=&sw=&category=&goPage=&g_idx=&offset=10 + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=37&goPage=&g_idx= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&sk=&sw=&category=&goPage=&g_idx=&offset=50 + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&sk=&sw=&category=&goPage=&g_idx=&offset=10 + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=38&goPage=&g_idx= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=25&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=25&goPage=&g_idx= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=81&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&sk=&sw=&category=&goPage=&g_idx=&offset=20 + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=82&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=24&sk=&sw=&offset=&category= + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&sk=&sw=&category=&goPage=&g_idx=&offset=60 + 2021-05-18 + daily + 0.8 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=10&sk=&sw=&offset=70&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=22&sk=&sw=&offset=50&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=36&sk=&sw=&offset=40&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=67&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=27&sk=&sw=&offset=50&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=18&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=23&goPage=&g_idx= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=8&sk=&sw=&offset=20&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=50&sk=&sw=&offset=30&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=63&sk=&sw=&offset=20&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=58&sk=&sw=&offset=20&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=3&sk=&sw=&offset=70&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=13&sk=&sw=&offset=60&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=17&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=8&sk=&sw=&offset=70&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=49&sk=&sw=&offset=30&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=18&sk=&sw=&offset=60&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=64&sk=&sw=&offset=20&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=35&sk=&sw=&offset=40&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=66&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=12&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=10&sk=&sw=&offset=20&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=21&sk=&sw=&offset=50&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=57&sk=&sw=&offset=20&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=22&goPage=&g_idx= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=62&sk=&sw=&offset=20&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=72&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=81&goPage=&g_idx= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=73&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=12&sk=&sw=&offset=60&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=40&sk=&sw=&offset=40&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=2&sk=&sw=&offset=70&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=79&goPage=&g_idx= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=14&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=23&sk=&sw=&offset=50&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=68&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=7&sk=&sw=&offset=70&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=17&sk=&sw=&offset=60&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=24&goPage=&g_idx= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=7&sk=&sw=&offset=20&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=34&sk=&sw=&offset=40&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=13&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=83&goPage=&g_idx= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=28&sk=&sw=&offset=50&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=56&sk=&sw=&offset=20&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=51&sk=&sw=&offset=30&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=39&sk=&sw=&offset=40&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=11&sk=&sw=&offset=60&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=77&goPage=&g_idx= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=19&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=5&sk=&sw=&offset=20&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=78&goPage=&g_idx= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=15&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=21&goPage=&g_idx= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=6&sk=&sw=&offset=70&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=52&sk=&sw=&offset=30&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=30&sk=&sw=&offset=50&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=20&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=16&sk=&sw=&offset=60&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=80&goPage=&g_idx= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=33&sk=&sw=&offset=40&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=74&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=75&goPage=&g_idx= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=70&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=55&sk=&sw=&offset=20&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=24&sk=&sw=&offset=50&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=69&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=41&sk=&sw=&offset=30&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=38&sk=&sw=&offset=40&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=61&sk=&sw=&offset=20&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=5&sk=&sw=&offset=70&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&sk=&sw=&category=&goPage=&g_idx=&offset=0 + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=32&sk=&sw=&offset=40&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=29&sk=&sw=&offset=50&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=46&sk=&sw=&offset=30&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=15&sk=&sw=&offset=60&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=26&sk=&sw=&offset=50&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=9&sk=&sw=&offset=20&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=20&sk=&sw=&offset=60&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=11&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=74&goPage=&g_idx= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=48&sk=&sw=&offset=30&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=37&sk=&sw=&offset=40&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=20&goPage=&g_idx= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=60&sk=&sw=&offset=20&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=84&goPage=&g_idx= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=53&sk=&sw=&offset=30&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=list&sk=&sw=&offset=&category=&goPage=&g_idx= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=4&sk=&sw=&offset=70&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=65&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=76&goPage=&g_idx= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=54&sk=&sw=&offset=30&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=59&sk=&sw=&offset=20&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=14&sk=&sw=&offset=60&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=71&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=16&sk=&sw=&offset=10&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=9&sk=&sw=&offset=70&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=19&sk=&sw=&offset=60&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=31&sk=&sw=&offset=40&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=25&sk=&sw=&offset=50&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&sk=&sw=&category=&goPage=&g_idx=&offset=0 + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=82&goPage=&g_idx= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=73&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=22&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=77&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=52&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=42&sk=&sw=&offset=30&category= + 2021-05-18 + daily + 0.7 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=83&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=7&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=31&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=14&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=10&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=24&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=list&sk=&sw=&offset=40&category=&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=22&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=list&sk=&sw=&offset=20&category=&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=75&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=list&sk=&sw=&offset=60&category=&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=38&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=67&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=25&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=55&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=10&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=17&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=61&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=68&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=26&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=56&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=13&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=19&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=18&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=6&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=51&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=72&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=9&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=53&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=7&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=23&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=list&sk=&sw=&offset=70&category=&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=32&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=49&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=58&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=28&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=15&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=11&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=79&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=4&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=70&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=40&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=21&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=34&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=5&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=37&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=21&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=64&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=17&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=27&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=13&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=48&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=84&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=2&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=18&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=15&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=57&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=23&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=8&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=78&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=5&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=36&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=82&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=66&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=50&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=24&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=19&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=71&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=9&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=list&sk=&sw=&offset=30&category=&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=41&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=16&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=54&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=62&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=38&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=12&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=42&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=39&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=list&sk=&sw=&offset=10&category=&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=69&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=80&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=25&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=36&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=8&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=30&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=35&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=list&sk=&sw=&offset=50&category=&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=60&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=65&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=14&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=28&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=37&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?boardid=notice&mode=view&idx=35&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=11&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=33&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=20&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=46&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=list&sk=&sw=&offset=20&category=&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=63&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=81&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=16&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=59&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=29&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=view&idx=12&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?boardid=pds&mode=view&idx=76&sk=&sw=&offset=0&category= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=view&idx=3&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=list&sk=&sw=&offset=10&category=&goPage=&g_idx= + 2021-05-18 + daily + 0.6 + + + http://www.gdidc.jp/sub/sub06_02.php?mNum=6&sNum=2&boardid=pds&mode=list&sk=&sw=&offset=0&category=&goPage=&g_idx= + 2021-05-18 + daily + 0.5 + + + http://www.gdidc.jp/sub/sub06_01.php?mNum=6&sNum=1&boardid=notice&mode=list&sk=&sw=&offset=0&category=&goPage=&g_idx= + 2021-05-18 + daily + 0.5 + + \ No newline at end of file diff --git a/sub/privacy.php b/sub/privacy.php new file mode 100644 index 0000000..52931b5 --- /dev/null +++ b/sub/privacy.php @@ -0,0 +1,81 @@ + +
    +
    +

    개인정보보호

    +
    +
    +
    +
    +
    +

    개인정보보호

    +
    +
    + + +
    +

    개인정보의 수집 목적 및 이용

    +
    +

    GD IDC가 개인정보를 수집하는 목적은 양질의 서비스 제공 및 회원 개개인의 기호와 필요에 따른 맞춤화된 서비스를 제공해드리기 위한 것입니다. GD IDC는 서비스를 제공하기 위하여 광고를 게재합니다. 이때에도 회원님 개인에 대한 정보를 바탕으로 좀더 유용한 정보로서의 가치가 있는 광고를 선별적으로 전달할 수 있습니다. 성별, 연령별 기타 특정 조건의 집단에 대한 광고 게재 및 발송 시(예, 20대 여자)에도 회원의 개인정보는 광고를 의뢰한 개인이나 단체에 제공되지 않습니다.

    +

    기타 통계처리, 학술연구, 시장조사를 위하여 필요한 경우에는 특정한 개인을 식별할 수 없는 가공된 통계 자료의 형태로만 정보가 제공됩니다.

    +
    + +

    개인정보의 수집 방법 및 범위

    +
    +

    GD IDC는 서비스의 이용을 위하여 회원 가입 시에 회원 정보를 기입하도록 합니다. 회원 가입 절차는 GD IDC Skype 로 문의를 주시면 회원가입을 도와드립니다.

    +

    회원 가입 시 기본 필수 정보에는 고객 아이디 , 전화 번호 , 전자우편이 있으며, 기타 추가적인 정보가 필요한 특정 서비스의 이용 시 추가 정보의 제공을 요청할 수 있습니다.

    +

    이 경우에도 기입하신 정보는 해당 성비스의 이용 및 사전에 밝힌 목적 이외에는 이용하지 않습니다.

    +
    + +

    개인정보의 공유 및 제공

    +
    +

    GD IDC는 원칙적으로 회원의 개인정보를 어느 누구와도 공유하지 않습니다. 다만 회원님이 공개를 동의한 경우 또는 GD IDC 이용자 약관을 위배하거나 타인에게 피해를 주는 행위 등으로 법적인 조치가 요구되고 적법한 절차에 의해 관련 정부 기관의 요구가 있을 경우는 예외로 합니다. GD IDC는 보다 나은 서비스의 제공을 위해 회원의 개인정보를 제휴 업체와 일부 공유할 수 있으나, 이 경우에도 정보수집 또는 정보제공 이전에 제휴 업체 정보, 요청되는 정보의 종류, 정보의 보호 및 관리 방안에 대하여 알리고 동의를 구하는 절차를 거치며, 회원이 동의하지 않는 경우에는 수집 및 공유하지 않습니다. 'GD IDC'가 제공하기로 이용자와 계약을 체결한 서비스의 내용을 재화의 품절 또는 기술적 사양의 변경 등의 사유로 변경할 경우에는 'GD IDC'는 이로 인하여 이용자가 입은 손해를 배상하지 아니합니다. 단, 'GD IDC'에게 고의 또는 과실이 있는 경우에는 그러하지 아니합니다.

    +
    + +

    자신의 개인정보 열람, 수정 및 삭제

    +
    +

    GD IDC의 회원은 언제든지 자신의 개인정보를 열람하거나 수정할 수 있으며, 회원 등록해지를 통해서 개인정보의 삭제를 요청할 수 있습니다. 개인정보의 열람, 수정 및 삭제는 GD IDC에 연락을 하면 확인을 하실 수 있습니다.

    +
    + +

    개인정보의 보유 및 이용 기간

    +
    +

    GD IDC의 회원으로서 GD IDC 서비스를 제공 받는 동안 개인정보는 GD IDC가 계속 보유하고 서비스의 제공을 위해서 이용합니다. 회원 등록해지 또는 GD IDC 이용자 약관에 의거한 해지된 경우에 기 수집된 개인정보는 재생할 수 없도록 하드디스크에서 완전히 삭제되며 어떠한 용도로도 열람, 이용할 수 없게 처리됩니다.

    +
    + +

    청소년 보호정책

    +
    +
      +
    1. 1. GD IDC는 청소년보호법에 근거하여 청소년들이 각종 폭력, 성인정보, 음란정보 등과 같은 유해물에 노출되지 않도록 청소년 보호에 최선을 다할 것입니다.
    2. +
    3. 2. GD IDC는 정보통신윤리위원회 등과 협력하여 GD IDC 내부에서 청소년 유해물이 유통되지 않도록 자체적인 정화활동을 지속해 나갈 것입니다.
    4. +
    5. 3. GD IDC는 청소년보호를 위해 아래와 같이 청소년보호책임자를 지정하여 건전한 인터넷 환경을 조성하기 위한 제반 할동을 펼치고자 합니다.
    6. +
    +
    + +

    만 14세미만 아동의 개인정보보호

    +
    +
      +
    1. + 1. GD IDC는 만 14세 미만인 아동의 경우 법정대리인(부모님)의 동의가 있어야 회원등록이 가능합니다. 즉, 만 4세 미만 아동의 개인정보를 수집하는 경우 법정대리인의 동의를 받습니다.
      + 회원등록 단계에서 만14세 미만과 만14세 이상로 나뉘며, 만14세 미만의 아동이 회원 등록 버튼을 눌렀을 경우 법정대리인(부모님)의 이메일과 실명 정보를 입력하여야 합니다. +
    2. +
    3. 2. 만 14세 미만 아동의 법정대리인은 아동의 개인정보의 열람, 정정, 동의철회를 요청할 수 있으며, 이러한 요청이 있을 경우 GD IDC는 법정대리인 확인 후 지체없이 필요한 조치를 취하겠습니다.
    4. +
    +
    + +

    개인정보관련 신고 및 분쟁조정

    +
    +

    개인정보침해에 대한 신고, 상담이 필요하신 경우에는 한국정보보호진흥원(KISA) 개인정보 침해신고센터로 문의하시기 바랍니다. 또한, 귀하가 개인정보침해를 통한 금전적, 정신적 피해를 입으신 경우에는 개인정보분쟁조정위원회에 피해구제를 신청하실 수 있습니다.

    +
    * 개인정보침해신고센터 - 전화 : (02) 118 - URL : www.cyberprivacy.or.kr
    +
    + +

    기타

    +
    +

    자신이 자발적으로 제공하는 개인정보는 다른 사람들에 의하여 본인의 의도와는 다르게 이용될 수 있다는 사실을 염두에 두어야 합니다. 다른 사람에게도 공개되어 있는 공간에는 자신의 개인정보를 함부로 남겨서는 안됩니다. 또한 PC방이나, 기타 공공장소 등 주변에 다른 사람들이 많은 곳에서는 서비스를 이용하고 있는 동안 다른 사람들이 자신의 컴퓨터 화면을 볼수도 있다는 사실을 염두에 두고 개인정보가 노출되지 않도록 주의하여야 합니다. 회원님 서버의 로그인 패스워드에 대한 보안을 유지할 책임은 회원님 자신에게 있습니다. GD IDC에서 메일 또한 기타 방법으로 회원님께 비밀번호를 질문하는 경우는 절대 없으므로 어떠한 경우에도 비밀번호를 알려주지 마십시오.

    +
    +
    + + +
    +
    +
    + + \ No newline at end of file diff --git a/sub/sub01_01.php b/sub/sub01_01.php new file mode 100644 index 0000000..030af4d --- /dev/null +++ b/sub/sub01_01.php @@ -0,0 +1,31 @@ + + + +
    +
    +
    +

    인사말

    +
    +
    + + +
    +
    +
    +

    GDIDC는

    +

    + GD 홈페이지를 방문하여 주신 고객님들께 진심으로 감사의 말씀을 드립니다.
    + 저희 GD은 일본 최고의 인프라 구축을 통해 1등 업체로 거듭나기 위해
    노력하고 있습니다. +

    +

    정보통신 기술이 하루게 다르게 성장하고 있는 현재 저희는 각 분야별 전문
    엔지니어들이 고객 여러분의 불편사항을 365일 24시간 처리해드리고 있으며,

    +

    고사양 저가격 정책을 통해 고객 여러분들의 부담을 최대한 짊어지고
    각각의 고객님들께서 만족하실만한 최상의 서비스를 제공하기 위해 노력하겠습니다.


    +

    감사합니다.

    +
    +
    + + +
    +
    +
    + + \ No newline at end of file diff --git a/sub/sub01_02.php b/sub/sub01_02.php new file mode 100644 index 0000000..907b1eb --- /dev/null +++ b/sub/sub01_02.php @@ -0,0 +1,92 @@ + + + +
    +
    +
    +

    센터소개

    +
    +
    + + +

    핵심가치

    +
    +
    +
    +
    +
    + +
    고객우선
    +
    항상 고객의입장
    +
    +
    +
    +
    + +
    협력
    +
    어려울때 함께하는 진짜 친구
    +
    +
    +
    +
    + +
    창의성
    +
    생각하고 또 생각하는 기업
    +
    +
    +
    +
    + +
    열정
    +
    불가능은 없다는 마인드
    +
    +
    +
    +
    +
    + +

    조직도

    +
    +
    + +
    +
    + +

    서비스안내

    +
    +
    +
    +
    + +
    + 365/24 고객대응 OK
    + 신속 정확한 작업처리
    + 고객과 엔지니어 1:1 단독 대응 +
    +
    +
    + +
    + 안정적인 회선
    + 실시간 Monitoring
    + DDOS 공격 대응 +
    +
    +
    + +
    + 자체 방화벽 운용
    + 서버 RAID 구성(1+0)
    + 차별화된 고객 지원 +
    +
    +
    +
    +
    + + +
    +
    +
    + + \ No newline at end of file diff --git a/sub/sub02_01.php b/sub/sub02_01.php new file mode 100644 index 0000000..40c33a1 --- /dev/null +++ b/sub/sub02_01.php @@ -0,0 +1,67 @@ + + + +
    +
    +
    +

    신청절차

    +
    +
    + + +

    GDIDC의 서버호스팅은?

    +
    +
    +
    +
    +
    GDIDC의 서버 호스팅 서비스는 단순 서버와 네트워크제공에 국한되지 않고 서비스 운영에 필요한 모든 기술지원과 다양한 부가 서비스를제공하여 고객중심의 최상의 서비스를 보장합니다.
    +
    +
    +
    +
    +
    + +

    서버 호스팅 대상 고객

    +
    +
    +
    +
    +
    + +

    서버 신청절차

    +
    +
    +
    +
    +
    + +

    서비스 상담

    +
    +
    +
    +
    +

    서비스 상담

    +
    전화 및 메신저 문의
    +
    +
    +

    365일 24시간 가능

    +
    1661-4598
    +
    +
    +

    Skype :
    gdidc0125@gmail.com

    +
    +
    +

    Telegram :
    @GDIDC0125

    +
    +
    +
    +
    +
    +
    + + +
    +
    +
    + + diff --git a/sub/sub02_01_02.php b/sub/sub02_01_02.php new file mode 100644 index 0000000..4caeffe --- /dev/null +++ b/sub/sub02_01_02.php @@ -0,0 +1,130 @@ + + + +
    +
    +
    +

    제품안내

    +
    +
    + + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +
    CPUIntel Xeon E5530 4Core 2.4Ghz
    RAMDDR3 8G
    HDDSSD128G*2 / SATA500G*2 중 선택구성 (RAID 1)
    가격30만원 (회선비 포함)
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +
    CPUIntel Xeon E5560*2 8Core 2.6Ghz
    RAMDDR3 16G
    HDDSSD128G*2 / SATA500G*2 중 선택구성 (RAID 1)
    가격40만원 (회선비 포함)
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +
    CPUIntel Xeon E5 2630v2*2 12Core 2.6Ghz
    RAMDDR3 16G
    HDDSSD128G*2 / SATA500G*2 중 선택구성 (RAID 1)
    가격60만원 (회선비 포함)
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +
    CPUIntel Xeon E5 2690v2*2 20Core 3.0Ghz
    RAMDDR3 32G
    HDDSSD128G*2 / SATA500G*2 중 선택구성 (RAID 1)
    가격70만원 (회선비 포함)
    +
    +
    +
    + + +
    +
    +
    + + \ No newline at end of file diff --git a/sub/sub02_02.php b/sub/sub02_02.php new file mode 100644 index 0000000..df3567b --- /dev/null +++ b/sub/sub02_02.php @@ -0,0 +1,67 @@ + + + +
    +
    +
    +

    신청절차

    +
    +
    + + +

    GDIDC의 웹호스팅은?

    +
    +
    +
    +
    +
    저렴한 비용과 최고의 안정성으로 IT 전문지식 없이도 최고의 이용을 자랑하며 계정 및 DB를 SSD로 구성하여 최상의 속도를 제공합니다.
    +
    +
    +
    +
    +
    + +

    웹 호스팅 대상 고객

    +
    +
    +
    +
    +
    + +

    서버 신청절차

    +
    +
    +
    +
    +
    + +

    서비스 상담

    +
    +
    +
    +
    +

    서비스 상담

    +
    전화 및 메신저 문의
    +
    +
    +

    365일 24시간 가능

    +
    1661-4598
    +
    +
    +

    Skype :
    gdidc0125@gmail.com

    +
    +
    +

    Telegram :
    @GDIDC0125

    +
    +
    +
    +
    +
    +
    + + +
    +
    +
    + + diff --git a/sub/sub02_02_02.php b/sub/sub02_02_02.php new file mode 100644 index 0000000..6ac6bb6 --- /dev/null +++ b/sub/sub02_02_02.php @@ -0,0 +1,64 @@ + + + +
    +
    +
    +

    제품안내

    +
    +
    + + +
    +
    +
    +
    +
    +

    Single Web Hosting

    +
      +
    • - 1 웹 사이트
    • +
    • - 10G 웹 공간
    • +
    • - 매월 10,000 개의 연결
    • +
    • - 무료 SSL
    • +
    • - 무료 CDN
    • +
    • - 가격 :
    • +
    +
    +
    +
    +
    +
    +

    Premium Web Hosting

    +
      +
    • - 5 웹 사이트
    • +
    • - 20G 웹 공간
    • +
    • - 매월 25,000 개의 연결
    • +
    • - 무료 SSL
    • +
    • - 무료 CDN
    • +
    • - 가격 :
    • +
    +
    +
    +
    +
    +
    +

    Business Web Hosting

    +
      +
    • - 무제한 웹 사이트
    • +
    • - 40G 웹 공간
    • +
    • - 매월 100,000 개의 연결
    • +
    • - 무료 SSL
    • +
    • - 무료 CDN
    • +
    • - 가격 :
    • +
    +
    +
    +
    +
    + + +
    +
    +
    + + \ No newline at end of file diff --git a/sub/sub03_01.php b/sub/sub03_01.php new file mode 100644 index 0000000..10296d1 --- /dev/null +++ b/sub/sub03_01.php @@ -0,0 +1,85 @@ + + + +
    +
    +
    +

    회선종류

    +
    +
    + + +

    GDIDC의 회선서비스

    +
    +
    +
    +
    +
    GDIDC에서는 Share회선 및 전용회선을 제공해드리고 있으며, 전용회선의 경우 최대 1G까지 이용이 가능합니다.
    +
    엔지니어와의 상담시 필요한 트래픽양을 말씀해주시면 원활한 상담이 가능합니다
    +
    +
    +
    +
    +
    + +

    일반회선

    +
    +
    +
    +
    +
    +
    일반회선
    +
    + Shared 기본 10M 보장
    + 유료서비스를 통해 최대 1G 까지도 OK!! +
    +
    +
    +
    +
    + +

    전용회선

    +
    +
    +
    +
    +
    +
    전용회선
    +
    IDC 내 같은 공간에서 일반회선과 동일한 네트워크망을 단독으로 구성하여 사용 +
      +

      *전용회선 필요대상 고객

      +
    • - 운영중인 서버가 5대 이상인 고객
    • +
    • - 해킹 & 보안에 필요성이 우선인 고객
    • +
    • - 단독 네트워크망이 필요하신 고객
    • +
    +
    +
    +
    +
    +
    + +

    방어회선

    +
    +
    +
    +
    +
    +
    방어회선(우회)
    +
    DDOS 공격유형에 따라 별도의 방어회선을 제공해드리고 있습니다 +
      +

      *방어회선 필요고객

      +
    • - DDOS 공격빈도가 많은 고객
    • +
    • - 공격 패턴의 종류가 많은 고객
    • +
    +
    +
    +
    +
    +
    + + +
    +
    +
    + + diff --git a/sub/sub03_02.php b/sub/sub03_02.php new file mode 100644 index 0000000..55ce2cf --- /dev/null +++ b/sub/sub03_02.php @@ -0,0 +1,59 @@ + + + +
    +
    +
    +

    코로케이션

    +
    +
    + + +

    코로케이션

    +
    +
    +
    +
    +
    +
    +

    코로케이션

    +
      +
    • - 센터내부의 백본망에 고객의 서버 및 네트워크 장비를 직접 연결하여 사용하시는 서비스로 고객의 서버가 입주할 로케이션을 제공하는 상면서비스와 회선제공을 하는 네트워크 임대 서비스를 같이 진행해드리고 있습니다
    • +
    +
    +
    +
    +
    +
    +

    상면서비스

    +
      +
    • - 서버 & 네트워크 장비 종류 불문
    • +
    • - 1/4 , half Rack , Full Rack 의 Location 제공
    • +
    +
    +
    +
    +
    +
    +

    네트워크 서비스

    +
      +
    • - 다른 고객과 회선을 공유하는 Shared 서비스는 기본적으로 많은 트래픽을 사용하시는 고객님의 경우에는 Dedicated 서비스 이용을 권장해드립니다. +
    • - 하나의 회선을 단독으로 사용하는 Dedicated 서비스는 다른 고객의 트래픽 영향을 받지 않기 때문에 더욱 안정된 서비스를 제공합니다.
    • +
    +
    +
    +
    +
    +
    + +

    코로케이션 개통 절차

    +
    +
    +
    + + +
    +
    +
    + + \ No newline at end of file diff --git a/sub/sub04_01.php b/sub/sub04_01.php new file mode 100644 index 0000000..5199e39 --- /dev/null +++ b/sub/sub04_01.php @@ -0,0 +1,38 @@ + + + +
    +
    +
    +

    기본방어

    +
    +
    + + +

    DDOS방어 - 기본방어

    +
    +
    +
    +
    +
    GDIDC 는 일반회선의 모든 IP에 대해 기본방어를 서비스해드리고 있습니다.
    +
    기본방어의 경우 IDC 상단에서 공격트래픽을 원천 차단하는 방식을 사용합니다.
    +
    기본방어로 인해 정상적인 방어가 되지 않는 경우 공격패턴을 파악해 공격유형에 맞는 방어 솔루션을 제공합니다.
    +
    +
    +
    +
    +
    + +

    기본방어 구성도

    +
    +
    +
    +
    +
    + + +
    +
    +
    + + \ No newline at end of file diff --git a/sub/sub04_02.php b/sub/sub04_02.php new file mode 100644 index 0000000..6095e3b --- /dev/null +++ b/sub/sub04_02.php @@ -0,0 +1,44 @@ + + + +
    +
    +
    +

    V방어

    +
    +
    + + +

    DDOS방어 - V방어

    +
    +
    +
    +
    +
    방어는 저희 GDIDC 의 독자적으로 개발한 DDOS 방어 시스템으로 기본적인 UDP 공격외에도 TCP SYN 이나 TCP ACK 를 통한 공격 및 그외에 다양한 공격 패턴에도 대응되는 방어 시스템입니다.
    +
    V방어는 현재 여러고객과 함께 사용하는 V공유방어와 단독으로 사용하는 V단독방어가 제공되고 있으며 엔지니어와 상담후 고객님에게 맞는 서비스를 체험해보시길 바랍니다.
    +
    +
    +
    +
    +
    + +

    V방어(공유) 구성도

    +
    +
    +
    +
    +
    + +

    V방어(단독) 구성도

    +
    +
    +
    +
    +
    + + +
    +
    +
    + + \ No newline at end of file diff --git a/sub/sub04_03.php b/sub/sub04_03.php new file mode 100644 index 0000000..3cb1a38 --- /dev/null +++ b/sub/sub04_03.php @@ -0,0 +1,53 @@ + + + +
    +
    +
    +

    CDN방어

    +
    +
    + + +

    CDN방어 - CDN방어

    +
    +
    +
    +
    +
    GDIDC 는 CDN 기능을 통한 방어서비스 또한 운영하고 있습니다.
    +
    CDN 장점 IP숨김기능 / CDN 망에서 룰셋 설정 / 도메인별 설정 가능
    +
    CDN-F방어 +
      +
    • - 기본 DDOS 공격 방어
    • +
    • - IP 숨김기능 제공
    • +
    • - 도메인별 방화벽 제공(무료제공)
    • +
    +
    +
    CDN-B방어 +
      +
    • - CDN-F 기능 기본제공
    • +
    • - WAF 제공
    • +
    • - Cache Analytics
    • +
    • - CNAME 호환
    • +
    • - 자체 SSL 인증서 사용
    • +
    +
    +
    +
    +
    +
    +
    + +

    CDN방어 구성도

    +
    +
    +
    +
    +
    + + +
    +
    +
    + + \ No newline at end of file diff --git a/sub/sub05_01.php b/sub/sub05_01.php new file mode 100644 index 0000000..a81050f --- /dev/null +++ b/sub/sub05_01.php @@ -0,0 +1,82 @@ + + + +
    +
    +
    +

    방화벽 서비스

    +
    +
    + + +

    방화벽 서비스

    +
    +
    +
    +
    +
    +
    방화벽 서비스
    +
    센터내 방화벽 운용으로 IP차단 및 포트차단등 고객서버내 방화벽 설정이 어려우실때 센터 방화벽을 이용하여 원하시는 Ruleset 조정이 가능합니다.
    +
    +
    +
    +
    + +

    웹방화벽 서비스

    +
    +
    +
    +
    +
    +
    웹방화벽 서비스
    +
    웹방화벽(Web Application Firewall, WAF)은, 일반적인 네트워크 방화벽(Firewall)과는 달리 웹 애플리케이션 보안에 특화되어 개발된 솔루션입니다. 웹방화벽의 기본 역할은 그 이름에서도 알 수 있듯, SQL Injection, Cross-Site Scripting(XSS)등과 같은 웹 공격을 탐지하고 차단하는 것이 가능합니다.
    +
    +
    +
    +
    + +

    우회망 서비스

    +
    +
    +
    +
    +
    +
    우회망 서비스
    +
    DDOS 공격에 의한 대량의 트래픽을 별도의 Zone으로 우회하여 서버 마비상태를 최소화 합니다. 갑작스런 DDOS 공격으로 정상적인 서비스가 어려울시 단기간에 복구가능하도록 대응해드리는 서비스입니다.
    +
    +
    +
    +
    + +

    도메인 구매대행

    +
    +
    +
    +
    +
    +
    도메인 구매대행
    +
    고객들의 해외 도메인 구매를 안전하고 신속하게 대행해드리고 있습니다.
    +
    +
    +
    +
    + +

    VPN

    +
    +
    +
    +
    +
    +
    VPN
    +
    한국/해외 (미국,일본) IP가 필요하신 고객분들을 위해 VPN 서비스를 제공하고 있습니다.
    +
    +
    +
    +
    + + +
    +
    +
    + + \ No newline at end of file diff --git a/sub/sub06_01.php b/sub/sub06_01.php new file mode 100644 index 0000000..f576b9a --- /dev/null +++ b/sub/sub06_01.php @@ -0,0 +1,22 @@ + + + +
    +
    +
    +

    공지사항

    +
    +
    + + + + + +
    +
    +
    + + diff --git a/sub/sub06_02.php b/sub/sub06_02.php new file mode 100644 index 0000000..08c3edd --- /dev/null +++ b/sub/sub06_02.php @@ -0,0 +1,23 @@ + + + +
    +
    +
    +

    자료실

    +
    +
    + + + + + +
    +
    +
    + + \ No newline at end of file diff --git a/sub/terms.php b/sub/terms.php new file mode 100644 index 0000000..9ea5cb9 --- /dev/null +++ b/sub/terms.php @@ -0,0 +1,334 @@ + +
    +
    +

    이용약관

    +
    +
    +
    +
    +
    +

    이용약관

    +
    +
    + + +
    +

    제1장 총칙

    +
    +
    +
    제1조 (목적)
    +
    +

    이 약관은 GDIDC가 운영하는 인터넷 사이트(www.GDIDC.jp)에서 제공하는 서버호스팅 및 코로케이션 서비스를 이용함에 있어 이용자의 권리, 의무, 책임 등 기타 제반사항을 규정함을 목적으로 한다.

    +
    +
    +
    +
    제2조 (용어의 정의)
    +
    +
      +
    1. ① 'GDIDC'란 서버호스팅 서비스를 이용자에게 제공하기 위하여 네트워크,서버 등 정보통신 설비를 이용하여 IDC센터 운영하는 사업자의 의미로 사용합니다.
    2. +
    3. ② '이용자'란 'GDIDC'에 접속하거나 방문하여 이 약관에 따라 'GDIDC'가 제공하는 서비스를 받는 회원과 비회원을 말합니다. +
    4. ③ '회원'이라 함은 'GDIDC'에 개인정보를 제공하여 회원등록을 한 자로서, 'GDIDC'의 정보를 지속적으로 제공받으며, 'GDIDC'가 제공하는 서비스를 계속적으로 이용할 수 있는 자를 말합니다.
    5. +
    6. + ④ '비회원'이라 함은 회원에 가입하지 않고 'GDIDC'가 제공하는 서비스를 이용하는 자를 말합니다.
      + 단, '비회원'은 제한적인 서비스만 이용이 가능합니다. +
    7. +
    +
    +
    +
    +
    제3조 (약관의 명시 및 변경)
    +
    +
      +
    1. ① 이 약관은 'GDIDC'의 홈페이지(http://www.GDIDC.jp)에 공지함으로써 효력이 발생합니다
    2. +
    3. ② 'GDIDC'가 약관을 개정할 경우에는 시행일자 및 개정사유를 명시하여 현행 약관과 함께 'GDIDC'의 홈페이지 초기화면에 시행일자 이전부터 7일 이상 게시합니다.
    4. +
    5. ③ 이용자는 변경된 약관에 동의하지 않을 경우 이의를 제기할 수 있으며, 변경된 약관의 효력 발생일로부터 7일 이후에도 거부의사를 표시하지 아니하고 서비스를 계속 사용할 경우 약관의 변경 사항에 동의한 것으로 간주됩니다.
    6. +
    +
    +
    +
    +
    제4조 (약관 외 적용)
    +
    +

    이 약관에 명시되지 아니한 사항에 대해서는 관계법령, 상관례 및 홈페이지에 명시 되어진 서비스 별 안내에 따릅니다.

    +
    +
    +
    + +

    [제2장 서비스 이용계약]

    +
    +
    +
    제5조 (자율 계약의 원칙)
    +
    +

    이용자는 반드시 타인의 강요나 강매가 아닌 자의로만 서비스 이용계약을 체결할 수 있으며, 계약체결 전에 미리 이용약관을 읽고 동의한 후에 서비스 이용계약을 신청해야 합니다.

    +
    +
    +
    +
    제6조 (서비스의 종류 및 변경)
    +
    +
      +
    1. ① 'GDIDC'는 서비스 종류, 서비스 내용, 가격 및 기타 서비스 관련 사항을 'GDIDC'의 홈페이지를 통하여 게시하며, 이용자는 게시된 내용을 기준으로 서비스 이용신청을 해야 합니다.
    2. +
    3. ② 또한 'GDIDC'는 서비스 종류의 신설 또는 기타 변경 사항에 대해서도 홈페이지를 통하여 게시하며, 이미 서비스 이용 중인 이용자에 대한 서비스의 변경사항은 홈페이지에 게시하거나 이용자의 전자우편 주소를 통해서 통보하며, 게시 또는 통보 후 7일 이내에 이의를 제기하지 않으면 이용자가 변경사항에 대해서 동의한 것으로 간주합니다.
    4. +
    +
    +
    +
    +
    제7조 (서비스 신청)
    +
    +

    'GDIDC'이용자는 이하의 방법에 의하여 서비스를 신청합니다.

    +
      +
    1. 1.업체명, 전화번호, e-mail 등록
    2. +
    3. 2.서비스 상품의 선택
    4. +
    5. 3.결제방법의 선택
    6. +
    +
    +
    +
    +
    제8조 (계약의 성립)
    +
    +
      +
    1. ① 'GDIDC'는 제8조와 같은 서비스신청에 대하여 다음 각 호에 해당하지 않는 한 승낙합니다. 신청 내용에 허위, 기재누락, 오기가 있는 경우 기타 서비스신청에 승낙하는 것이 'GDIDC' 기술상, 및 업무 수행상 현저히 지장이 있다고 판단하는 경우
    2. +
    3. ② 'GDIDC'의 승낙이 제9조 제1항의 수신확인통지형태로 이용자에게 도달한 시점에 계약이 성립한 것으로 봅니다.
    4. +
    +
    +
    +
    +
    제9조(수신확인통지.서비스신청 변경 및 취소)
    +
    +
      +
    1. ① 'GDIDC'는 이용자의 서비스신청이 있는 경우 이용자에게 수신확인통지를 합니다.
    2. +
    3. ② 수신확인통지를 받은 이용자는 의사표시의 불일치 등이 있는 경우에는 수신 확인 통지를 받은 후 즉시 서비스신청 변경 및 취소를 요청할 수 있습니다.
    4. +
    5. ③ 'GDIDC'는 서비스 이용 전 이용자의 서비스신청 변경 및 취소 요청이 있는 때에는 지체 없이 그 요청에 따라 처리합니다.
    6. +
    +
    +
    +
    + +

    [제3장 의 무]

    +
    +
    +
    제10조 ('GDIDC'의 의무)
    +
    +
      +
    1. ① 'GDIDC'는 이용자가 신청한 서비스를 안정적이고 지속적으로 제공해야 합니다.
    2. +
    3. ② 'GDIDC'는 이용자가 계약한 네트워크 대역의 운영에 문제가 발생하지 않도록 충분한 여유 대역을 확보하여야 합니다.
    4. +
    5. ③ 'GDIDC'는 서비스 운영에 지장이 되는 장애가 발생했을 경우 이를 즉시 수리 또는 복구해야 하며, 안정적인 서비스 운영을 위해 최선을 다해야 합니다.
    6. +
    7. ④ 'GDIDC'는 이용자가 정당하게 요구하는 의견이나 불만에 대해서 즉시 또는 'GDIDC'가 정한 기간과 절차에 따라 처리해야 합니다.
    8. +
    9. ⑤ 'GDIDC'는 원활한 서비스 신청 및 운영을 위해 이용자의 개인정보를 수집하여 보관하며 본인의 허락 없이는 제3자에게 이를 제공할 수 없습니다.
    10. +
    11. ⑥ 'GDIDC'는 이용계약의 체결, 계약사항의 변경 및 해지 등 이용자과의 계약관련 절차 및 내용 등에 있어 이용자에게 편의를 제공하도록 노력합니다.
    12. +
    +
    +
    +
    +
    제11조 (이용자의 의무)
    +
    +
      +
    1. ① 이용자는 'GDIDC'가 정한 서비스 이용요금을 지정된 일자에 납입할 의무가 있습니다.
    2. +
    3. ② 이용자는 'GDIDC'와 타 이용자의 서비스 운영에 방해가 되는 행위를 할 수 없습니다.
    4. +
    5. ④ 이용자는 자신이 운영 중인 서버가 인가 받지 않은 침입자로부터 안전하게 보호받을 수 있도록 시스템 운영과 관련한 정기적인 보안 업데이트를 하여야 하며 보안 사고에 대하여 'GDIDC'는 책임을 지지 아니합니다.
    6. +
    7. ⑤ 이용자는 자신이 운영 중인 서버의 데이터 등에 대해 별도로 저장할 의무가 있으며 하드웨어의 망실, 외부 침입 등으로 인한 정보의 유출, 누락 또는 자료의 손실에 대하여 별도의 데이터를 백업하여야 하며 'GDIDC'는 이에 대하여 책임이 없습니다.
    8. +
    9. ⑥ 이용자는 자신이 운영 중인 서버에서 발생하는 저작권과 관련한 문제에 대하여 책임져야 하며, 설치하는 소프트웨어 프로그램에 대하여 라이선스를 취득하거나, 라이선스로부터 자유로운 소프트웨어만을 설치하여야 합니다.
    10. +
    11. ⑦ 각종 아이디(ID)와 비밀번호에 대한 관리 책임은 이용자에게 있으며, 이의 유출로 발생하는 손해에 대한 책임은 이용자에게 있습니다.
    12. +
    13. ⑧ 이용자는 서비스 신청 시 'GDIDC'에게 제공한 정보의 변경내용이 발생했을 경우 해당 절차를 거쳐 빠른 시일 내에 수정·보완해야 하며, 그로 인하여 발생하는 문제에 대한 책임은 이용자에게 있습니다.
    14. +
    +
    +
    +
    +
    제12조 (지식 재산권의 귀속 및 침해 금지)
    +
    +
      +
    1. ① 'GDIDC'가 작성한 저작물에 대한 저작권 기타 지식 재산권은 'GDIDC'에 귀속합니다. 이용자는 'GDIDC' 및 제3자의 지식 재산권을 침해하여서는 안 됩니다.
    2. +
    3. ② 이용자 및 'GDIDC' 홈페이지 방문자는 'GDIDC'의 서비스를 이용하여 얻은 정보를 'GDIDC'의 사전 승낙 없이 복제, 송신, 출판, 배포, 방송 기타 방법에 의하여 영리목적으로 이용하거나 제3자에게 이용하게 하여서는 안 됩니다.
    4. +
    +
    +
    +
    + +

    [제4장 GDIDC IDC와 이용자의 의무사항]

    +
    +
    +
    제13조 (서비스 제공의 원칙)
    +
    +

    서비스 이용은 'GDIDC'의 업무상 또는 기술상 특별한 지장이 없는 한 연중 무휴, 1일 24시간 중단이 없는 서비스 제공을 원칙으로 합니다. 단, 정기점검이나 시스템의 업그레이드가 필요한 시간에 서비스를 일시 중단할 수 있으며, 예정되어 있는 작업으로 인한 서비스 일시 중단은 'GDIDC' 홈페이지 또는 전자메일을 이용하여 사전에 공지합니다.

    +
    +
    +
    +
    제14조 (서비스 중단 시 면책 사항)
    +
    +

    다음과 같은 사유로 인하여 서비스 중단이 발생되는 경우, 'GDIDC'가 통제 혹은 예방이 불가능하므로 이와 관련하여 'GDIDC'의 별도의 통보가 없다 하더라도 'GDIDC'의 귀책 사유에 포함되지 않습니다.

    +
      +
    1. ① 네트워크 장비의 예상하지 못한 장애 혹은 긴급 보수로 인하여 서비스 이용이 일시적으로 중단되는 경우
    2. +
    3. ② 서비스 이용 중인 서버의 고장이나 장애로 인한 유지 보수를 위하여 이용이 중단되는 경우
    4. +
    5. ③ 'GDIDC'가 직접 소유 운영하지 아니하는 설비나 시설에서 발생한 장애로 인한 예측하지 못한 서비스의 중단이 발생되는 경우
    6. +
    7. ④ 전기 통신 사업법에 규정한 기간 통신 사업자의 네트워크 경로상 장애가 발생하는 경우
    8. +
    9. ⑤ 국가 비상사태, 지역 비상사태, 천재 지변 등으로 정상적인 서비스를 제공할 수 없거나 이용에 지장이 있는 경우
    10. +
    11. ⑥ 제15조의 각 항목에 해당하는 경우
    12. +
    +
    +
    +
    +
    제15조 (네트워크 접속의 제한)
    +
    +

    'GDIDC'는 이용자의 서비스 이용 내용이 다음 각호에 해당할 경우, 운영 중인 서버의 네트워크 접속을 중지하고 이용자에게 이의 해소를 요구할 수 있습니다.

    +
      +
    1. ① 제12조 규정에 의한 이용자의 의무를 위반한 경우
    2. +
    3. ② 이용자의 서비스 이용요금 납입이 미납된 경우
    4. +
    5. ③ 이용자 서버가 허용 혹은 계약 체결한 네트워크 대역을 초과하여 사용하는 경우
    6. +
    7. ④ 이용자 서버의 과다 패킷 발생이나 브로드 캐스팅으로 인하여 서비스 중인 네트워크에 장애가 발생되는 경우
    8. +
    9. ⑤ 이용자 서버가 해킹되었거나, 바이러스에 감염된 것으로 의심되는 경우
    10. +
    11. ⑥ 이용자 서버가 관리자 부재로 인하여 적절한 보안 업데이트가 이루어지지 않고 있어 'GDIDC'의 서비스 운영에 위험 요소로 판단되는 경우
    12. +
    13. ⑦ 이용자 서버가 과다한 전기를 사용하거나 발열로 인하여 'GDIDC'의 서비스 운영에 지장이 발생될 것으로 예상되는 경우
    14. +
    +
    +
    +
    + +

    [제5장 서비스 이용계약의 변경 및 취소/해지]

    +
    +
    +
    제16조 (서비스 이용계약 내용의 변경)
    +
    +
      +
    1. ① 이용자는 서비스 이용계약 내용 중 다음에 해당하는 변경 사유가 발생한 즉시 관련 절차에 따라 변경 신청해야 하며, 이와 관련한 정보 변경의 지연으로 인한 문제 발생 시 그 책임은 이용자에게 있습니다. +
        +
      1. 1. 이용자 및 사실상 요금 납입의 책임을 지기로 한 자의 상호, 성명 또는 주소의 변경
      2. +
      3. 2. 계약 종류(상품의 종류, 회선의 종류, 접속 회선의 대역, 이용계약기간, 이용목적)의 변경
      4. +
      +
    2. +
    3. ② 계약된 서비스보다 초과하여 이용하고 있는 경우, 'GDIDC'는 'GDIDC'에 등록되어 있는 이용자의 연락처로 사실 통지 후 계약사항을 변경할 수 있습니다.
    4. +
    5. ③ 계약 기간 이전이라 하더라도 원가의 과도한 상승 요인이 발생할 경우 이용자의 동의를 얻어 이용료를 인상할 수 있습니다. 이는 'GDIDC'의 귀책사유이므로 이용자가 변경된 이용료에 동의할 수 없을 경우, 이용자는 계약 기간과 관련한 위약 수수료를 지급하지 않고도 일방적으로 해지할 수 있습니다.
    6. +
    7. ④ 이용자가 'GDIDC'가 청구한 서비스 이용 요금을 체납하고 있는 경우, 'GDIDC'는 변경 신청을 제한할 수 있습니다.
    8. +
    9. ⑤ 설비의 여유가 없거나, 기술상 서비스 제공이 어렵거나 'GDIDC'의 서비스 정책이 변경되는 경우에 'GDIDC'는 변경 신청을 제한할 수 있습니다.
    10. +
    +
    +
    +
    +
    제17조(저작권의 귀속 및 이용제한)
    +
    +
      +
    1. ① 'GDIDC'가 작성한 저작물에 대한 저작권 기타 지적재산권은 'GDIDC'에게 귀속합니다.
    2. +
    3. ② 이용자는 'GDIDC'를 이용함으로써 얻은 정보를 'GDIDC'의 사전 승낙 없이 복제, 송신, 출판, 배포, 방송 기타 방법에 의하여 영리목적으로 이용하거나 제3자에게 이용하게 하여서는 안됩니다.
    4. +
    +
    +
    +
    +
    제18조 (서비스 이용 계약의 해지)
    +
    +
      +
    1. ① 이용자의 서비스 신청 후 7일 이내에 서비스 신청과 관련한 비용이 결제되지 않은 경우, 이용 계약이 성립되지 않으므로 서비스 신청은 자동으로 취소됩니다.
    2. +
    3. ② 이용자가 이용 계약을 해지하고자 할 경우, 최소 7일 이전에 'GDIDC'에서 미리 공지한 절차와 방식에 따라 'GDIDC'에 통보해야 하며, 이용자가 원하는 해지 일자를 기준으로 미지불 이용 요금이 발생한 경우, 이에 대하여 지불을 완료하여야만 해지 절차가 마무리됩니다.
    4. +
    5. ③ 기간에 대한 계약이 있는 경우, 이용자의 귀책 사유로 인한 서비스 해지 시 위약 수수료를 청구할 수 없습니다.
    6. +
    7. ④ 무료로 제공되는 서비스는 이용 계약 해지 시 별도의 통지 없이 자동 해지할 수 있습니다.
    8. +
    +
    +
    +
    +
    제19조 ('GDIDC'의 서비스 이용계약 직권 해지)
    +
    +
      +
    1. 'GDIDC'는 이용자의 서비스 이용 내용이 다음 각호에 해당할 경우 별도의 협의 없이 서비스 이용 계약을 직권으로 해지할 수 있습니다.
    2. +
    3. ① 서비스 이용 요금 미납에 대한 적절한 조치가 없는 경우
    4. +
    5. ② 이용 신청서에 기재한 내용이 허위로 판명되어진 경우
    6. +
    7. ③ 'GDIDC'의 서비스 운영을 고의로 방해하여 'GDIDC'에 손해를 입힌 경우
    8. +
    9. ④ 제15조에 의한 해소 요구에 대하여 적절한 조치를 취하지 않고 있는 경우
    10. +
    11. ⑤ 운영 중인 서버를 이용하여 불필요한 행위로 'GDIDC' 서비스나 다른 이용자 서버에 피해를 입히거나, 그러한 시도를 하는 경우
    12. +
    13. ⑥ 운영 중인 서버를 목표로 하는 대용량의 네트워크 공격으로 인하여 'GDIDC'의 서비스 운영과 네트워크를 공유하는 다른 이용자 서버의 운영에 피해가 발생한 경우
    14. +
    +
    +
    +
    + +

    [제6장 서비스 이용요금]

    +
    +
    +
    제20조 (서비스 이용요금의 일반원칙)
    +
    +
      +
    1. ① 서비스 이용요금의 세부 내역 및 그 변경사항은 제6조에 따라 'GDIDC'의 홈페이지에 명기합니다.
    2. +
    3. ② 이용자가 납부하여야 하는 서비스의 이용 요금의 종류는 다음 각호와 같습니다. +
        +
      1. 1. 서비스 이용요금 : 서비스 종류별로 정해져 있는 기본요금
      2. +
      3. 2. 추가 이용요금 : 서비스 기준 초과 또는 별도의 부가 서비스에 대한 이용요금
      4. +
      +
    4. +
    5. ③ 이용요금의 납부는 선납이 원칙이나 'GDIDC'의 정책 혹은 서비스 종류에 따라 후납으로 할 수 있습니다.
    6. +
    +
    +
    +
    +
    제21조 (서비스 이용요금 납부)
    +
    +
      +
    1. ① 이용자는 정해진 납부 일자에 서비스 이용요금을 납부해야 합니다. 이를 납부하지 못할 경우에는 제15조에 의한 네트워크 접속의 제한 또는 제19조에 의거 이용 계약이 해지될 수 있습니다.
    2. +
    3. ② 이용자는 'GDIDC'가 인지하기 어려운 이름으로 이용요금을 납부하는 경우, 이에 대해 'GDIDC'에 통보할 의무가 있습니다. 'GDIDC'가 인지하기 어려운 이름의 납부에 대한 통지를 하지 않음으로 인해 발생하는 서비스 중단 등의 불이익은 이용자의 책임입니다.
    4. +
    +
    +
    +
    +
    제22조 (환불정책)
    +
    +
      +
    1. + ① 월 단위 계약(계산)이므로 중도 환불(일할 계산)은 안됩니다.
      + 단, 셋팅에 문제가 있거나 기타 문제가 있을 경우 서버를 인계 받으시고 3일 안으로는 환불 요청을 하실 수 있습니다 +
    2. +
    +
    +
    +
    +
    제23조 (서비스 이용요금 연체 관리규정)
    +
    +
      +
    1. ① 이용자는 서비스 이용 요금 납부일 경과 후에도 이용요금을 납부하지 않을 경우 차후의 서비스 이용을 제한하고, 이용제한일로부터 7일이 경과한 후에도 이를 납부하지 아니하면, 'GDIDC'는 제19조에 의거 서비스 이용계약을 해지할 수 있습니다. +
    2. ② 'GDIDC'는 이용요금 미납으로 인해 서버가 포멧이 될 경우 서버 내 DATA에 대한 책임을 지지 않습니다.
    3. +
    +
    +
    +
    + +

    [제7장 기타]

    +
    +
    +
    제24조(연결'사이트'와 피연결'사이트' 간의 관계)
    +
    +
      +
    1. ① 'GDIDC'는 연결사이트가 독자적으로 제공하는 상품 또는 상품에 의하여 이용자와 행하는 거래에 대해서는 보증 책임을 지지 않습니다.
    2. +
    3. ② 회사를 이용하여 다음 행위를 할 경우 'GDIDC'의 서비스를 받을 수 없습니다. +
        +
      • - 사행성 행위로 인해 범죄와 결부된다고 객관적으로 판단되는 행위
      • +
      • - 법령과 이 약관이 금지하거나 공서양속에 반하는 행위
      • +
      • - 살인,자살,마약,인신매매 등 사회적 공익을 저해할 목적으로 서비스 이용을 계획 또는 실행하는 경우
      • +
      +
    4. +
    +
    +
    +
    +
    제25조(분쟁해결)
    +
    +
      +
    1. ① 'GDIDC'는 이용자가 제기하는 정당한 의견이나 불만을 반영하고 그 피해를 보상처리하기 위하여 피해보상처리기구를 설치,운영합니다.
    2. +
    3. ② 'GDIDC'는 이용자로부터 제출되는 불만사항 및 의견은 우선적으로 그 사항을 처리합니다. 다만, 신속한 처리가 곤란한 경우에는 이용자에게 그 사유와 처리일정을 즉시 통보해 드립니다.
    4. +
    +
    +
    +
    +
    제26조(재판권 및 준거법)
    +
    +
      +
    1. ① 'GDIDC'와 이용자간에 발생한 전자거래 분쟁에 관한 소송은 일본 지바재판소에 제기합니다.
    2. +
    3. ② 'GDIDC'와 이용자간에 제기된 전자거래 소송에는 일본 정부법을 적용합니다.
    4. +
    +
    +
    +
    +
    제27조(약관외 준칙)
    +
    (시행일) 위 약관은 2020년 12월 17일 부터 시행합니다.
    +
    +
    +
    + + +
    +
    +
    + + \ No newline at end of file diff --git a/uploaded/index.php b/uploaded/index.php new file mode 100644 index 0000000..e69de29 diff --git a/uploaded/popup/232a4b2740180c24388b03a62583fc3b.gif b/uploaded/popup/232a4b2740180c24388b03a62583fc3b.gif new file mode 100644 index 0000000..7b7cd3d Binary files /dev/null and b/uploaded/popup/232a4b2740180c24388b03a62583fc3b.gif differ diff --git a/uploaded/popup/3cea6734e753643a1e2c97c7ac278451.gif b/uploaded/popup/3cea6734e753643a1e2c97c7ac278451.gif new file mode 100644 index 0000000..7b7cd3d Binary files /dev/null and b/uploaded/popup/3cea6734e753643a1e2c97c7ac278451.gif differ diff --git a/uploaded/popup/a43e5858e45d348fb8c754e670c3cc04.gif b/uploaded/popup/a43e5858e45d348fb8c754e670c3cc04.gif new file mode 100644 index 0000000..7b7cd3d Binary files /dev/null and b/uploaded/popup/a43e5858e45d348fb8c754e670c3cc04.gif differ diff --git a/uploaded/popup/abca77bff653beabf6e27319fa2dd089.gif b/uploaded/popup/abca77bff653beabf6e27319fa2dd089.gif new file mode 100644 index 0000000..7b7cd3d Binary files /dev/null and b/uploaded/popup/abca77bff653beabf6e27319fa2dd089.gif differ diff --git a/uploaded/popup/b5a8621b1be5f593b77e1e7dcf2d2946.gif b/uploaded/popup/b5a8621b1be5f593b77e1e7dcf2d2946.gif new file mode 100644 index 0000000..7b7cd3d Binary files /dev/null and b/uploaded/popup/b5a8621b1be5f593b77e1e7dcf2d2946.gif differ diff --git a/uploaded/popup/b985c3385db992fc31496cc1d1e8c920.gif b/uploaded/popup/b985c3385db992fc31496cc1d1e8c920.gif new file mode 100644 index 0000000..7b7cd3d Binary files /dev/null and b/uploaded/popup/b985c3385db992fc31496cc1d1e8c920.gif differ diff --git a/uploaded/popup/ce078c82ffc60abca4f2a1561fe0088a.gif b/uploaded/popup/ce078c82ffc60abca4f2a1561fe0088a.gif new file mode 100644 index 0000000..7b7cd3d Binary files /dev/null and b/uploaded/popup/ce078c82ffc60abca4f2a1561fe0088a.gif differ diff --git a/uploaded/popup/ef261cd3c18c85cd966e54582584153f.gif b/uploaded/popup/ef261cd3c18c85cd966e54582584153f.gif new file mode 100644 index 0000000..7b7cd3d Binary files /dev/null and b/uploaded/popup/ef261cd3c18c85cd966e54582584153f.gif differ diff --git a/uploaded/popup/fe7539aebd61a5ca2435eb8af8af550c.gif b/uploaded/popup/fe7539aebd61a5ca2435eb8af8af550c.gif new file mode 100644 index 0000000..7b7cd3d Binary files /dev/null and b/uploaded/popup/fe7539aebd61a5ca2435eb8af8af550c.gif differ diff --git a/uploaded/shop_icons/icon_best.png b/uploaded/shop_icons/icon_best.png new file mode 100644 index 0000000..977b85f Binary files /dev/null and b/uploaded/shop_icons/icon_best.png differ diff --git a/uploaded/shop_icons/icon_new.png b/uploaded/shop_icons/icon_new.png new file mode 100644 index 0000000..4fa893b Binary files /dev/null and b/uploaded/shop_icons/icon_new.png differ diff --git a/uploaded/shop_icons/icon_sale.png b/uploaded/shop_icons/icon_sale.png new file mode 100644 index 0000000..2809e5f Binary files /dev/null and b/uploaded/shop_icons/icon_sale.png differ diff --git a/uploaded/summernote/202101/f61b6386b439a56619a739048a66b2e9.jpg b/uploaded/summernote/202101/f61b6386b439a56619a739048a66b2e9.jpg new file mode 100644 index 0000000..6310029 Binary files /dev/null and b/uploaded/summernote/202101/f61b6386b439a56619a739048a66b2e9.jpg differ diff --git a/webedit/Editor.html b/webedit/Editor.html new file mode 100644 index 0000000..49a2076 --- /dev/null +++ b/webedit/Editor.html @@ -0,0 +1,108 @@ + + + +
    + + + + + + + + + + + \ No newline at end of file diff --git a/webedit/SmartEditor2.html b/webedit/SmartEditor2.html new file mode 100644 index 0000000..9470b7b --- /dev/null +++ b/webedit/SmartEditor2.html @@ -0,0 +1,78 @@ + + + + +네이버 :: Smart Editor 2 ™ + + + +
    + + +

    + + + + +

    +
    + + + + + \ No newline at end of file diff --git a/webedit/SmartEditor2Skin.html b/webedit/SmartEditor2Skin.html new file mode 100644 index 0000000..70ab632 --- /dev/null +++ b/webedit/SmartEditor2Skin.html @@ -0,0 +1,797 @@ + + + + + + +네이버 :: Smart Editor 2 ™ + + + + + + + + + + + + + + + + + + +
    +
    글쓰기영역으로 바로가기 +
    + +
    +
      +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +
      + +
    • + +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +
      + +
    • +
      +
    • + +
    • + +
    • + +
    • + +
    • + + + +
    • + +
    • + + + +
    • + +
    • + +
    • +
      +
    • + +
    • + +
    • + +
    • + +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +

      직접 입력

      + + + + + +
      + +
      +
      +
      +
      + +
    • +
      +
    • +
      +
        +
      • +
      • +
      • +
      • +
      +
      +
    • +
      +
    • + + + +
    • +
      + + +
    • + +
      +
      +
      +
        +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      +

      + +

      +
      +
      +
      + +
    • + +
    • + + +
      +
      +
      +
      + 칸수 지정 +
      +
      +
      + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + + + + +
          
          
          
      +
      +
      + 속성직접입력 +
      +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      + + +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      + 표스타일 +
      +
      +
      + + + +
      +
      +
      +

      + +

      + +
      + +
      +
      +
      + + +
    • + +
    • + + +
      +
      +
      + +

      찾기/바꾸기

      +
        +
      • +
      • +
      +
      +
      +
      +
      +

      + +

      +
      + + +
      +
      +
      + + +
    • +
      +
    • +
    +
    + +
    + + + + + +
    + +
    + + + + + + + + + +
    + + +
    + + +
    + + + + +
    + + +
    + + +
    +
    + + +
    + +
      +
    • +
    • +
    • +
    +
    + +
    + + + +
    +
    + + + + + \ No newline at end of file diff --git a/webedit/SmartEditor2Skin_en_US.html b/webedit/SmartEditor2Skin_en_US.html new file mode 100644 index 0000000..6b6b3f2 --- /dev/null +++ b/webedit/SmartEditor2Skin_en_US.html @@ -0,0 +1,790 @@ + + + + + + +네이버 :: Smart Editor 2 ™ + + + + + + + + + + + + + +Version: 2.9.0.4a256db + + +
    +
    글쓰기영역으로 바로가기 +
    + +
    +
      +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +
      + +
    • + +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +
      + +
    • +
      +
    • + +
    • + +
    • + +
    • + +
    • + + + +
    • + +
    • + + + +
    • + +
    • + +
    • +
      +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +

      Enter

      + + + + + +
      + +
      +
      +
      +
      + +
    • +
      +
    • + + + +
    • +
      + + +
    • + +
      +
      +
      +
        +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      +

      + +

      +
      +
      +
      + +
    • + +
    • + + +
      +
      +
      +
      + Designate Number of Blanks +
      +
      +
      + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + + + + +
          
          
          
      +
      +
      + Enter Attributes +
      +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      + + +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      + Table Style +
      +
      +
      + + + +
      +
      +
      +

      + +

      + +
      + +
      +
      +
      + + +
    • + +
    • + + +
      +
      +
      + +

      Find/Change

      +
        +
      • +
      • +
      +
      +
      +
      +
      +

      + +

      +
      + + +
      +
      +
      + + +
    • +
    +
    + +
    + + + + + +
    + +
    + + + + + + + + + +
    + + +
    + + +
    + + + + +
    + + +
    + + +
    +
    + + +
    + +
      +
    • +
    • +
    • +
    +
    + +
    + + + +
    +
    + + + + + \ No newline at end of file diff --git a/webedit/SmartEditor2Skin_ja_JP.html b/webedit/SmartEditor2Skin_ja_JP.html new file mode 100644 index 0000000..be35a64 --- /dev/null +++ b/webedit/SmartEditor2Skin_ja_JP.html @@ -0,0 +1,790 @@ + + + + + + +네이버 :: Smart Editor 2 ™ + + + + + + + + + + + + + +Version: 2.9.0.4a256db + + +
    +
    글쓰기영역으로 바로가기 +
    + +
    +
      +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +
      + +
    • + +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +
      + +
    • +
      +
    • + +
    • + +
    • + +
    • + +
    • + + + +
    • + +
    • + + + +
    • + +
    • + +
    • +
      +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +

      直接入力

      + + + + + +
      + +
      +
      +
      +
      + +
    • +
      +
    • + + + +
    • +
      + + +
    • + +
      +
      +
      +
        +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      +

      + +

      +
      +
      +
      + +
    • + +
    • + + +
      +
      +
      +
      + セル数指定 +
      +
      +
      + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + + + + +
          
          
          
      +
      +
      + プロパティ直接入力 +
      +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      + + +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      + 表スタイル +
      +
      +
      + + + +
      +
      +
      +

      + +

      + +
      + +
      +
      +
      + + +
    • + +
    • + + +
      +
      +
      + +

      検索/置換

      +
        +
      • +
      • +
      +
      +
      +
      +
      +

      + +

      +
      + + +
      +
      +
      + + +
    • +
    +
    + +
    + + + + + +
    + +
    + + + + + + + + + +
    + + +
    + + +
    + + + + +
    + + +
    + + +
    +
    + + +
    + +
      +
    • +
    • +
    • +
    +
    + +
    + + + +
    +
    + + + + + \ No newline at end of file diff --git a/webedit/SmartEditor2Skin_ko_KR.html b/webedit/SmartEditor2Skin_ko_KR.html new file mode 100644 index 0000000..3087cad --- /dev/null +++ b/webedit/SmartEditor2Skin_ko_KR.html @@ -0,0 +1,790 @@ + + + + + + +네이버 :: Smart Editor 2 ™ + + + + + + + + + + + + + +Version: 2.9.0.4a256db + + +
    +
    글쓰기영역으로 바로가기 +
    + +
    +
      +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +
      + +
    • + +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +
      + +
    • +
      +
    • + +
    • + +
    • + +
    • + +
    • + + + +
    • + +
    • + + + +
    • + +
    • + +
    • +
      +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +

      직접 입력

      + + + + + +
      + +
      +
      +
      +
      + +
    • +
      +
    • + + + +
    • +
      + + +
    • + +
      +
      +
      +
        +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      +

      + +

      +
      +
      +
      + +
    • + +
    • + + +
      +
      +
      +
      + 칸수 지정 +
      +
      +
      + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + + + + +
          
          
          
      +
      +
      + 속성직접입력 +
      +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      + + +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      + 표스타일 +
      +
      +
      + + + +
      +
      +
      +

      + +

      + +
      + +
      +
      +
      + + +
    • + +
    • + + +
      +
      +
      + +

      찾기/바꾸기

      +
        +
      • +
      • +
      +
      +
      +
      +
      +

      + +

      +
      + + +
      +
      +
      + + +
    • +
    +
    + +
    + + + + + +
    + +
    + + + + + + + + + +
    + + +
    + + +
    + + + + +
    + + +
    + + +
    +
    + + +
    + +
      +
    • +
    • +
    • +
    +
    + +
    + + + +
    +
    + + + + + \ No newline at end of file diff --git a/webedit/SmartEditor2Skin_zh_CN.html b/webedit/SmartEditor2Skin_zh_CN.html new file mode 100644 index 0000000..a0f53b9 --- /dev/null +++ b/webedit/SmartEditor2Skin_zh_CN.html @@ -0,0 +1,790 @@ + + + + + + +네이버 :: Smart Editor 2 ™ + + + + + + + + + + + + + +Version: 2.9.0.4a256db + + +
    +
    글쓰기영역으로 바로가기 +
    + +
    +
      +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +
      + +
    • + +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +
      + +
    • +
      +
    • + +
    • + +
    • + +
    • + +
    • + + + +
    • + +
    • + + + +
    • + +
    • + +
    • +
      +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +

      直接输入

      + + + + + +
      + +
      +
      +
      +
      + +
    • +
      +
    • + + + +
    • +
      + + +
    • + +
      +
      +
      +
        +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      +

      + +

      +
      +
      +
      + +
    • + +
    • + + +
      +
      +
      +
      + 指定格数 +
      +
      +
      + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + + + + +
          
          
          
      +
      +
      + 直接输入属性 +
      +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      + + +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      + 表格 +
      +
      +
      + + + +
      +
      +
      +

      + +

      + +
      + +
      +
      +
      + + +
    • + +
    • + + +
      +
      +
      + +

      查找/改变

      +
        +
      • +
      • +
      +
      +
      +
      +
      +

      + +

      +
      + + +
      +
      +
      + + +
    • +
    +
    + +
    + + + + + +
    + +
    + + + + + + + + + +
    + + +
    + + +
    + + + + +
    + + +
    + + +
    +
    + + +
    + +
      +
    • +
    • +
    • +
    +
    + +
    + + + +
    +
    + + + + + \ No newline at end of file diff --git a/webedit/SmartEditor2Skin_zh_TW.html b/webedit/SmartEditor2Skin_zh_TW.html new file mode 100644 index 0000000..90a3429 --- /dev/null +++ b/webedit/SmartEditor2Skin_zh_TW.html @@ -0,0 +1,790 @@ + + + + + + +네이버 :: Smart Editor 2 ™ + + + + + + + + + + + + + +Version: 2.9.0.4a256db + + +
    +
    글쓰기영역으로 바로가기 +
    + +
    +
      +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +
      + +
    • + +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +
      + +
    • +
      +
    • + +
    • + +
    • + +
    • + +
    • + + + +
    • + +
    • + + + +
    • + +
    • + +
    • +
      +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +

      直接輸入

      + + + + + +
      + +
      +
      +
      +
      + +
    • +
      +
    • + + + +
    • +
      + + +
    • + +
      +
      +
      +
        +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      +

      + +

      +
      +
      +
      + +
    • + +
    • + + +
      +
      +
      +
      + 指定間數 +
      +
      +
      + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + + + + +
          
          
          
      +
      +
      + 直接輸入屬性 +
      +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      + + +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      + 表格形式 +
      +
      +
      + + + +
      +
      +
      +

      + +

      + +
      + +
      +
      +
      + + +
    • + +
    • + + +
      +
      +
      + +

      查詢/改變

      +
        +
      • +
      • +
      +
      +
      +
      +
      +

      + +

      +
      + + +
      +
      +
      + + +
    • +
    +
    + +
    + + + + + +
    + +
    + + + + + + + + + +
    + + +
    + + +
    + + + + +
    + + +
    + + +
    +
    + + +
    + +
      +
    • +
    • +
    • +
    +
    + +
    + + + +
    +
    + + + + + \ No newline at end of file diff --git a/webedit/SmartEditor2noframe.html b/webedit/SmartEditor2noframe.html new file mode 100644 index 0000000..5edc725 --- /dev/null +++ b/webedit/SmartEditor2noframe.html @@ -0,0 +1,850 @@ + + + + + + +네이버 :: Smart Editor 2 ™ + + + + + + + + + + + + + +Version: 2.9.0.4a256db + + +
    +
    글쓰기영역으로 바로가기 +
    + +
    +
      +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +
      + +
    • + +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +
      + +
    • +
      +
    • + +
    • + +
    • + +
    • + +
    • + + + +
    • + +
    • + + + +
    • + +
    • + +
    • +
      +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
    • + +
      +
      +
        +
      • +
      • +
      • +
      • +
      • +
      • +
      • +
      +
      +

      직접 입력

      + + + + + +
      + +
      +
      +
      +
      + +
    • +
      +
    • + + + +
    • +
      + + +
    • + +
      +
      +
      +
        +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      • +
        +
          +
        • + + +
        +
        +
      • +
      +

      + +

      +
      +
      +
      + +
    • + +
    • + + +
      +
      +
      +
      + 칸수 지정 +
      +
      +
      + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + + + + +
          
          
          
      +
      +
      + 속성직접입력 +
      +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      + + +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      + 표스타일 +
      +
      +
      + + + +
      +
      +
      +

      + +

      + +
      + +
      +
      +
      + + +
    • + +
    • + + +
      +
      +
      + +

      찾기/바꾸기

      +
        +
      • +
      • +
      +
      +
      +
      +
      +

      + +

      +
      + + +
      +
      +
      + + +
    • +
    +
    + +
    + + + + + +
    + +
    + + + + + + + + + +
    + + +
    + + +
    + + + + +
    + + +
    + + +
    +
    + + +
    + +
      +
    • +
    • +
    • +
    +
    + +
    + + + +
    +
    + + + +
    + + + + +
    + +
    +
    + + + + + \ No newline at end of file diff --git a/webedit/autosave.editor.js b/webedit/autosave.editor.js new file mode 100644 index 0000000..4997876 --- /dev/null +++ b/webedit/autosave.editor.js @@ -0,0 +1,13 @@ +function get_editor_wr_content() +{ + return oEditors.getById['wr_content'].getIR();; +} + +function put_editor_wr_content(content) +{ + oEditors.getById["wr_content"].exec("SET_CONTENTS", [""]); + //oEditors.getById["wr_content"].exec("SET_IR", [""]); + oEditors.getById["wr_content"].exec("PASTE_HTML", [content]); + + return; +} \ No newline at end of file diff --git a/webedit/config.js b/webedit/config.js new file mode 100644 index 0000000..e92933e --- /dev/null +++ b/webedit/config.js @@ -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); \ No newline at end of file diff --git a/webedit/css/en_US/smart_editor2.css b/webedit/css/en_US/smart_editor2.css new file mode 100644 index 0000000..9d7c470 --- /dev/null +++ b/webedit/css/en_US/smart_editor2.css @@ -0,0 +1,192 @@ +@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/en_US/btn_set.png?160622") -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/en_US/btn_set.png?160622") -437px -358px no-repeat;font-size:0;line-height:0;text-indent:-10000px;vertical-align:middle} +#smart_editor2 #smart_editor2_content{position:relative;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?141007") 0 -896px repeat-x} +#smart_editor2 .se2_inputarea_controller{display:block;clear:both;position:relative;width:100%;height:15px;background:url("../../img/icon_set.gif?141007") center -47px no-repeat;text-align:center;cursor:n-resize} +#smart_editor2 .se2_inputarea_controller span{display:block;visibility:visible;height:15px;font-size:0;line-height:0;color:#fff;white-space:nowrap} +#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/en_US/btn_set.png?160622") 0 -85px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .se2_to_html{width:59px;height:15px;background:url("../../img/en_US/btn_set.png?160622") -59px -70px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .se2_to_text{width:60px;height:15px;background:url("../../img/en_US/btn_set.png?160622") -417px -466px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .active .se2_to_editor{width:59px;height:15px;background:url("../../img/en_US/btn_set.png?160622") 0 -70px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .active .se2_to_html{width:59px;height:15px;background:url("../../img/en_US/btn_set.png?160622") -59px -85px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .active .se2_to_text{width:60px;height:15px;background:url("../../img/en_US/btn_set.png?160622") -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} +#smart_editor2 .se2_content_loading{display:none;z-index:10;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center} +#smart_editor2 .se2_content_loading img{position:absolute;top:50%;left:50%;margin:-27px 0 0 -27px} +#smart_editor2 .se2_alert_wrap{display:none;z-index:20;position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;text-align:center} +#smart_editor2 .se2_alert_wrap.active{display:block} +#smart_editor2 .se2_alert_wrap .dimmed{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;opacity:0.4;filter:alpha(opacity=40)} +#smart_editor2 .se2_alert_wrap .ie_cover{position:absolute;top:0;left:0;width:100%;height:100%;background:#fff;opacity:0;filter:alpha(opacity=0)} +#smart_editor2 .se2_alert_wrap .va_line{display:inline-block;height:100%;vertical-align:middle;*zoom:1} +#smart_editor2 .se2_alert_wrap .se2_alert_content{z-index:10;position:relative;display:inline-block;*display:inline;*zoom:1;border:1px solid #727272;background:#fff;padding:26px 33px 22px;vertical-align:middle} +#smart_editor2 .se2_alert_wrap .se2_alert_content{margin-top:47px} +#smart_editor2 .se2_alert_wrap .txt1{color:#333;line-height:18px} +#smart_editor2 .se2_alert_wrap .txt2{margin-top:3px;color:#999} +#smart_editor2 .se2_alert_wrap .btn_close,#smart_editor2 .se2_alert_btns button{background:url("../../img/en_US/btn_set.png?160622") no-repeat} +#smart_editor2 .se2_alert_wrap .btn_close{z-index:10;position:absolute;top:7px;right:7px;width:11px;height:11px;background-position:-122px -32px;text-indent:-5000px} +#smart_editor2 .se2_alert_btns{margin-top:19px} +#smart_editor2 .se2_alert_btns button{display:inline;float:none;width:48px;height:27px} +#smart_editor2 .se2_alert_btns button + button{margin-left:10px} +#smart_editor2 .se2_alert_btns .se2_confirm{background-position:-369px -434px} +#smart_editor2 .se2_alert_btns .se2_cancel{background-position:-419px -434px} +/* 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/en_US/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} +#smart_editor2 .se2_text_tool .se2_multy .se2_photo{width:55px} +#smart_editor2 .se2_text_tool .se2_multy .se2_map{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} diff --git a/webedit/css/en_US/smart_editor2_in.css b/webedit/css/en_US/smart_editor2_in.css new file mode 100644 index 0000000..fdecc09 --- /dev/null +++ b/webedit/css/en_US/smart_editor2_in.css @@ -0,0 +1,24 @@ +@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 td{word-break:break-all} +.se2_inputarea_890{width:741px;margin:20px 0 10px 64px} +.se2_inputarea_698{width:548px;margin:20px 0 10px 64px} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + .se2_inputarea td:empty:after,.se2_inputarea td > p:empty:after{content:"\00A0";line-height:1} +} +/* 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} diff --git a/webedit/css/en_US/smart_editor2_items.css b/webedit/css/en_US/smart_editor2_items.css new file mode 100644 index 0000000..96d7d8c --- /dev/null +++ b/webedit/css/en_US/smart_editor2_items.css @@ -0,0 +1,447 @@ +@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:184px;margin:0;padding:0} +#smart_editor2 .se2_tool .se2_l_font_fam li{display:block;width:184px;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:182px;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;height:auto;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/en_US/btn_set.png?160622") 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/en_US/btn_set.png?160622") 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/en_US/btn_set.png?160622") -83px 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?141007") 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/en_US/btn_set.png?160622") -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/en_US/btn_set.png?160622") -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/en_US/btn_set.png?160622") no-repeat} +#smart_editor2 .se2_tool .btn_area .se2_btn_cancel3{width:42px;height:24px;margin-left:3px;background:url("../../img/en_US/btn_set.png?160622") -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/en_US/btn_set.png?160622") 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/en_US/btn_set.png?160622") -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/en_US/btn_set.png?160622") no-repeat} +#smart_editor2 .se2_url2 .se2_cancel{position:absolute;top:13px;right:6px;width:42px;height:24px;margin:-1px 3px 1px 0;background:url("../../img/en_US/btn_set.png?160622") -41px 0 no-repeat} +/* TEXT_TOOLBAR : SCHARACTER */ +#smart_editor2 .se2_bx_character{width:553px;height:272px;margin:0;padding:0;background:url("../../img/bx_set_110302.gif") 9px -1230px no-repeat} +#smart_editor2 .se2_bx_character .se2_char_tab{_display:inline;float:left;position:relative;width:527px;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:93px;height:26px;background:url("../../img/en_US/btn_set.png?160622") 0 -812px no-repeat} +#smart_editor2 .se2_bx_character .se2_char2{width:104px;height:26px;background:url("../../img/en_US/btn_set.png?160622") -92px -812px no-repeat} +#smart_editor2 .se2_bx_character .se2_char3{width:121px;height:26px;background:url("../../img/en_US/btn_set.png?160622") -195px -812px no-repeat} +#smart_editor2 .se2_bx_character .se2_char4{width:55px;height:26px;background:url("../../img/en_US/btn_set.png?160622") -315px -812px no-repeat} +#smart_editor2 .se2_bx_character .se2_char5{width:86px;height:26px;background:url("../../img/en_US/btn_set.png?160622") -369px -812px no-repeat} +#smart_editor2 .se2_bx_character .se2_char6{width:73px;height:26px;background:url("../../img/en_US/btn_set.png?160622") -454px -812px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char1{width:93px;height:26px;background:url("../../img/en_US/btn_set.png?160622") 0 -838px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char2{width:104px;height:26px;background:url("../../img/en_US/btn_set.png?160622") -92px -838px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char3{width:121px;height:26px;background:url("../../img/en_US/btn_set.png?160622") -195px -838px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char4{width:55px;height:26px;background:url("../../img/en_US/btn_set.png?160622") -315px -838px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char5{width:86px;height:26px;background:url("../../img/en_US/btn_set.png?160622") -369px -838px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char6{width:73px;height:26px;background:url("../../img/en_US/btn_set.png?160622") -454px -838px no-repeat} +#smart_editor2 .se2_bx_character .se2_s_character{display:none;position:absolute;top:26px;left:0;width:532px;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:506px;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/en_US/btn_set.png?160622") -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:364px;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/en_US/btn_set.png?160622") no-repeat;vertical-align:middle} +#smart_editor2 .se2_apply_character .se2_cancel{width:42px;height:24px;background:url("../../img/en_US/btn_set.png?160622") -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:30px;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:42px;height:23px;margin:0;padding:0} +#smart_editor2 .se2_table_set .se2_cell_num .input_ty2{display:block;width:20px;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;*direction:rtl} +#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/en_US/btn_set.png?160622") -86px -54px no-repeat} +#smart_editor2 .se2_table_set .se2_del{position:absolute;top:10px;right:3px;width:13px;height:8px;background:url("../../img/en_US/btn_set.png?160622") -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/en_US/btn_set.png?160622") -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/en_US/btn_set.png?160622") -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/en_US/btn_set.png?160622") 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/en_US/btn_set.png?160622") -357px -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/en_US/btn_set.png?160622") -344px -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/en_US/btn_set.png?160622") 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/en_US/btn_set.png?160622") no-repeat} +#smart_editor2 .se2_table_set button.se2_cancel{width:42px;height:24px;background:url("../../img/en_US/btn_set.png?160622") -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/en_US/btn_set.png?160622") -484px -45px 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/en_US/btn_set.png?160622") 0 -100px no-repeat} +#smart_editor2 .se2_bx_find_revise .se2_tabrevise{width:117px;height:26px;background:url("../../img/en_US/btn_set.png?160622") -116px -100px no-repeat} +#smart_editor2 .se2_bx_find_revise .active .se2_tabfind{width:117px;height:26px;background:url("../../img/en_US/btn_set.png?160622") 0 -126px no-repeat} +#smart_editor2 .se2_bx_find_revise .active .se2_tabrevise{width:117px;height:26px;background:url("../../img/en_US/btn_set.png?160622") -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/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/bx_set_110302.gif") -289px -1619px no-repeat} +#smart_editor2 .se2_bx_find_revise dt{_display:inline;float:left;clear:both;width:59px;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:145px;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/en_US/btn_set.png?160622") -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/en_US/btn_set.png?160622") -180px -24px no-repeat} +#smart_editor2 .se2_bx_find_revise .se2_revise1{width:54px;height:24px;margin:0 3px 0 0;background:url("../../img/en_US/btn_set.png?160622") -245px -48px no-repeat} +#smart_editor2 .se2_bx_find_revise .se2_revise2{width:67px;height:24px;margin:0 3px 0 0;background:url("../../img/en_US/btn_set.png?160622") -245px -24px no-repeat} +#smart_editor2 .se2_bx_find_revise .se2_cancel{width:42px;height:24px;background:url("../../img/en_US/btn_set.png?160622") -41px 0 no-repeat} +/* TEXT_TOOLBAR : QUICKEDITOR_TABLE */ +#smart_editor2 .se2_qmax{position:absolute;width:18px;height:18px;background:url("../../img/en_US/btn_set.png?160622") -339px -169px no-repeat} +#smart_editor2 .se2_qeditor{position:absolute;top:0;left:0;width:273px;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:273px;height:11px;background:url("../../img/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/en_US/btn_set.png?160622") -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:264px;padding:4px 0 0 7px} +#smart_editor2 .se2_qeditor .se2_qe1{overflow:hidden;width:264px} +#smart_editor2 .se2_qeditor .se2_qe1 dt{float:left;width:27px;height:18px;padding:4px 0 0 0} +#smart_editor2 .se2_qeditor .se2_qe1 dd{float:left;width:95px;height:22px;margin-right:8px} +#smart_editor2 .se2_qeditor .se2_addrow{width:40px;height:19px;background:url("../../img/en_US/btn_set.png?160622") no-repeat -385px -49px} +#smart_editor2 .se2_qeditor .se2_addcol{width:55px;height:19px;background:url("../../img/en_US/btn_set.png?160622") no-repeat -425px -49px} +#smart_editor2 .se2_qeditor .se2_seprow{width:40px;height:19px;background:url("../../img/en_US/btn_set.png?160622") no-repeat -385px -68px} +#smart_editor2 .se2_qeditor .se2_sepcol{width:55px;height:19px;background:url("../../img/en_US/btn_set.png?160622") no-repeat -425px -68px} +#smart_editor2 .se2_qeditor .se2_delrow{width:40px;height:19px;background:url("../../img/en_US/btn_set.png?160622") no-repeat -385px -106px} +#smart_editor2 .se2_qeditor .se2_delcol{width:55px;height:19px;background:url("../../img/en_US/btn_set.png?160622") no-repeat -425px -106px} +#smart_editor2 .se2_qeditor .se2_merrow{width:76px;height:19px;background:url("../../img/en_US/btn_set.png?160622") no-repeat -385px -125px} +#smart_editor2 .se2_qeditor .se2_mercol{width:76px;height:19px;background:url("../../img/en_US/btn_set.png?160622") no-repeat -425px -125px} +#smart_editor2 .se2_qeditor .se2_seprow_off{width:40px;height:19px;background:url("../../img/en_US/btn_set.png?160622") no-repeat -385px -87px} +#smart_editor2 .se2_qeditor .se2_sepcol_off{width:55px;height:19px;background:url("../../img/en_US/btn_set.png?160622") no-repeat -425px -87px} +#smart_editor2 .se2_qeditor .se2_merrow_off{width:76px;height:19px;background:url("../../img/en_US/btn_set.png?160622") no-repeat -385px -144px} +#smart_editor2 .se2_qeditor .se2_mercol_off{width:76px;height:19px;background:url("../../img/en_US/btn_set.png?160622") no-repeat -425px -144px} +/* TEXT_TOOLBAR : QUICKEDITOR_TABLE > CELL_BACKGROUND */ +#smart_editor2 .se2_qeditor .se2_qe2{_display:inline;float:left;position:relative;z-index:100;width:255px;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:83px;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:256px;margin:5px 0 0 1px} +#smart_editor2 .se2_qeditor .se2_qe3 dt{float:left;width:83px;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/en_US/btn_set.png?160622") 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/en_US/btn_set.png?160622") -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/en_US/btn_set.png?160622") -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/en_US/btn_set.png?160622") -86px -54px no-repeat} +#smart_editor2 .se2_qe11_1 .se2_del{position:absolute;top:10px;right:3px;width:13px;height:8px;background:url("../../img/en_US/btn_set.png?160622") -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/en_US/btn_set.png?160622") -276px -121px no-repeat} +#smart_editor2 .se2_qe12 .se2_align1{float:left;width:19px;height:21px;background:url("../../img/en_US/btn_set.png?160622") -295px -121px no-repeat} +#smart_editor2 .se2_qe12 .se2_align2{float:left;width:20px;height:21px;background:url("../../img/en_US/btn_set.png?160622") -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:160px;width:76px;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:92px;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:140px;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:34px;width:40px;height:23px;background:#fafafa;opacity:0.5;filter:alpha(opacity=50)} +#smart_editor2 .se2_qeditor .se2_qdim6r{clear:both;position:absolute;top:25px;left:74px;width:57px;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/en_US/btn_set.png?160622") -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)} diff --git a/webedit/css/en_US/smart_editor2_out.css b/webedit/css/en_US/smart_editor2_out.css new file mode 100644 index 0000000..0baf377 --- /dev/null +++ b/webedit/css/en_US/smart_editor2_out.css @@ -0,0 +1,12 @@ +@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} diff --git a/webedit/css/ja_JP/smart_editor2.css b/webedit/css/ja_JP/smart_editor2.css new file mode 100644 index 0000000..739b6bf --- /dev/null +++ b/webedit/css/ja_JP/smart_editor2.css @@ -0,0 +1,190 @@ +@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/ja_JP/btn_set.png?160622") -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/ja_JP/btn_set.png?160622") -437px -358px no-repeat;font-size:0;line-height:0;text-indent:-10000px;vertical-align:middle} +#smart_editor2 #smart_editor2_content{position:relative;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?141007") 0 -896px repeat-x} +#smart_editor2 .se2_inputarea_controller{display:block;clear:both;position:relative;width:100%;height:15px;background:url("../../img/icon_set.gif?141007") center -47px no-repeat;text-align:center;cursor:n-resize} +#smart_editor2 .se2_inputarea_controller span{display:block;visibility:visible;height:15px;font-size:0;line-height:0;color:#fff;white-space:nowrap} +#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/ja_JP/btn_set.png?160622") 0 -85px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .se2_to_html{width:59px;height:15px;background:url("../../img/ja_JP/btn_set.png?160622") -59px -70px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .se2_to_text{width:60px;height:15px;background:url("../../img/ja_JP/btn_set.png?160622") -417px -466px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .active .se2_to_editor{width:59px;height:15px;background:url("../../img/ja_JP/btn_set.png?160622") 0 -70px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .active .se2_to_html{width:59px;height:15px;background:url("../../img/ja_JP/btn_set.png?160622") -59px -85px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .active .se2_to_text{width:60px;height:15px;background:url("../../img/ja_JP/btn_set.png?160622") -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} +#smart_editor2 .se2_content_loading{display:none;z-index:10;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center} +#smart_editor2 .se2_content_loading img{position:absolute;top:50%;left:50%;margin:-27px 0 0 -27px} +#smart_editor2 .se2_alert_wrap{display:none;z-index:20;position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;text-align:center} +#smart_editor2 .se2_alert_wrap.active{display:block} +#smart_editor2 .se2_alert_wrap .dimmed{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;opacity:0.4;filter:alpha(opacity=40)} +#smart_editor2 .se2_alert_wrap .ie_cover{position:absolute;top:0;left:0;width:100%;height:100%;background:#fff;opacity:0;filter:alpha(opacity=0)} +#smart_editor2 .se2_alert_wrap .va_line{display:inline-block;height:100%;vertical-align:middle;*zoom:1} +#smart_editor2 .se2_alert_wrap .se2_alert_content{z-index:10;position:relative;display:inline-block;*display:inline;*zoom:1;border:1px solid #727272;background:#fff;padding:26px 33px 22px;vertical-align:middle} +#smart_editor2 .se2_alert_wrap .se2_alert_content{margin-top:47px} +#smart_editor2 .se2_alert_wrap .txt1{color:#333;line-height:18px} +#smart_editor2 .se2_alert_wrap .txt2{margin-top:3px;color:#999} +#smart_editor2 .se2_alert_wrap .btn_close,#smart_editor2 .se2_alert_btns button{background:url("../../img/ja_JP/btn_set.png?160622") no-repeat} +#smart_editor2 .se2_alert_wrap .btn_close{z-index:10;position:absolute;top:7px;right:7px;width:11px;height:11px;background-position:-122px -32px;text-indent:-5000px} +#smart_editor2 .se2_alert_btns{margin-top:19px} +#smart_editor2 .se2_alert_btns button{display:inline;float:none;width:48px;height:27px} +#smart_editor2 .se2_alert_btns button + button{margin-left:10px} +#smart_editor2 .se2_alert_btns .se2_confirm{background-position:-369px -434px} +#smart_editor2 .se2_alert_btns .se2_cancel{background-position:-419px -434px} +/* 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/ja_JP/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} diff --git a/webedit/css/ja_JP/smart_editor2_in.css b/webedit/css/ja_JP/smart_editor2_in.css new file mode 100644 index 0000000..fdecc09 --- /dev/null +++ b/webedit/css/ja_JP/smart_editor2_in.css @@ -0,0 +1,24 @@ +@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 td{word-break:break-all} +.se2_inputarea_890{width:741px;margin:20px 0 10px 64px} +.se2_inputarea_698{width:548px;margin:20px 0 10px 64px} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + .se2_inputarea td:empty:after,.se2_inputarea td > p:empty:after{content:"\00A0";line-height:1} +} +/* 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} diff --git a/webedit/css/ja_JP/smart_editor2_items.css b/webedit/css/ja_JP/smart_editor2_items.css new file mode 100644 index 0000000..f3a58e6 --- /dev/null +++ b/webedit/css/ja_JP/smart_editor2_items.css @@ -0,0 +1,447 @@ +@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:186px;margin:0;padding:0} +#smart_editor2 .se2_tool .se2_l_font_fam li{display:block;width:186px;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:184px;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;height:auto;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/ja_JP/btn_set.png?160622") 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/ja_JP/btn_set.png?160622") 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/ja_JP/btn_set.png?160622") -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?141007") 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/ja_JP/btn_set.png?160622") -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/ja_JP/btn_set.png?160622") -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/ja_JP/btn_set.png?160622") no-repeat} +#smart_editor2 .se2_tool .btn_area .se2_btn_cancel3{width:39px;height:24px;margin-left:3px;background:url("../../img/ja_JP/btn_set.png?160622") -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/ja_JP/btn_set.png?160622") 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/ja_JP/btn_set.png?160622") -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/ja_JP/btn_set.png?160622") 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/ja_JP/btn_set.png?160622") -41px 0 no-repeat} +/* TEXT_TOOLBAR : SCHARACTER */ +#smart_editor2 .se2_bx_character{width:469px;height:272px;margin:0;padding:0;background:url("../../img/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:72px;height:26px;background:url("../../img/ja_JP/btn_set.png?160622") 0 -204px no-repeat} +#smart_editor2 .se2_bx_character .se2_char2{width:84px;height:26px;background:url("../../img/ja_JP/btn_set.png?160622") -71px -204px no-repeat} +#smart_editor2 .se2_bx_character .se2_char3{width:67px;height:26px;background:url("../../img/ja_JP/btn_set.png?160622") -154px -204px no-repeat} +#smart_editor2 .se2_bx_character .se2_char4{width:62px;height:26px;background:url("../../img/ja_JP/btn_set.png?160622") -220px -204px no-repeat} +#smart_editor2 .se2_bx_character .se2_char5{width:104px;height:26px;background:url("../../img/ja_JP/btn_set.png?160622") -281px -204px no-repeat} +#smart_editor2 .se2_bx_character .se2_char6{width:59px;height:26px;background:url("../../img/ja_JP/btn_set.png?160622") -384px -204px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char1{width:72px;height:26px;background:url("../../img/ja_JP/btn_set.png?160622") 0 -230px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char2{width:84px;height:26px;background:url("../../img/ja_JP/btn_set.png?160622") -71px -230px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char3{width:67px;height:26px;background:url("../../img/ja_JP/btn_set.png?160622") -154px -230px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char4{width:62px;height:26px;background:url("../../img/ja_JP/btn_set.png?160622") -220px -230px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char5{width:104px;height:26px;background:url("../../img/ja_JP/btn_set.png?160622") -281px -230px no-repeat !important} +#smart_editor2 .se2_bx_character .active .se2_char6{width:59px;height:26px;background:url("../../img/ja_JP/btn_set.png?160622") -384px -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/ja_JP/btn_set.png?160622") -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/ja_JP/btn_set.png?160622") no-repeat;vertical-align:middle} +#smart_editor2 .se2_apply_character .se2_cancel{width:39px;height:24px;background:url("../../img/ja_JP/btn_set.png?160622") -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;*direction:rtl} +#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/ja_JP/btn_set.png?160622") -86px -54px no-repeat} +#smart_editor2 .se2_table_set .se2_del{position:absolute;top:10px;right:3px;width:13px;height:8px;background:url("../../img/ja_JP/btn_set.png?160622") -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/ja_JP/btn_set.png?160622") -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/ja_JP/btn_set.png?160622") -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:90px;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/ja_JP/btn_set.png?160622") 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/ja_JP/btn_set.png?160622") -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/ja_JP/btn_set.png?160622") -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/ja_JP/btn_set.png?160622") 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/ja_JP/btn_set.png?160622") no-repeat} +#smart_editor2 .se2_table_set button.se2_cancel{width:39px;height:24px;background:url("../../img/ja_JP/btn_set.png?160622") -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/ja_JP/btn_set.png?160622") -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/ja_JP/btn_set.png?160622") 0 -100px no-repeat} +#smart_editor2 .se2_bx_find_revise .se2_tabrevise{width:117px;height:26px;background:url("../../img/ja_JP/btn_set.png?160622") -116px -100px no-repeat} +#smart_editor2 .se2_bx_find_revise .active .se2_tabfind{width:117px;height:26px;background:url("../../img/ja_JP/btn_set.png?160622") 0 -126px no-repeat} +#smart_editor2 .se2_bx_find_revise .active .se2_tabrevise{width:117px;height:26px;background:url("../../img/ja_JP/btn_set.png?160622") -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/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/bx_set_110302.gif") -289px -1619px no-repeat} +#smart_editor2 .se2_bx_find_revise dt{_display:inline;float:left;clear:both;width:60px;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:145px;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/ja_JP/btn_set.png?160622") -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/ja_JP/btn_set.png?160622") -180px -24px no-repeat} +#smart_editor2 .se2_bx_find_revise .se2_revise1{width:54px;height:24px;margin:0 3px 0 0;background:url("../../img/ja_JP/btn_set.png?160622") -245px -48px no-repeat} +#smart_editor2 .se2_bx_find_revise .se2_revise2{width:70px;height:24px;margin:0 3px 0 0;background:url("../../img/ja_JP/btn_set.png?160622") -245px -24px no-repeat} +#smart_editor2 .se2_bx_find_revise .se2_cancel{width:39px;height:24px;background:url("../../img/ja_JP/btn_set.png?160622") -41px 0 no-repeat} +/* TEXT_TOOLBAR : QUICKEDITOR_TABLE */ +#smart_editor2 .se2_qmax{position:absolute;width:18px;height:18px;background:url("../../img/ja_JP/btn_set.png?160622") -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/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/ja_JP/btn_set.png?160622") -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/ja_JP/btn_set.png?160622") no-repeat -385px -49px} +#smart_editor2 .se2_qeditor .se2_addcol{width:29px;height:19px;background:url("../../img/ja_JP/btn_set.png?160622") no-repeat -413px -49px} +#smart_editor2 .se2_qeditor .se2_seprow{width:28px;height:19px;background:url("../../img/ja_JP/btn_set.png?160622") no-repeat -385px -68px} +#smart_editor2 .se2_qeditor .se2_sepcol{width:29px;height:19px;background:url("../../img/ja_JP/btn_set.png?160622") no-repeat -413px -68px} +#smart_editor2 .se2_qeditor .se2_delrow{width:28px;height:19px;background:url("../../img/ja_JP/btn_set.png?160622") no-repeat -385px -106px} +#smart_editor2 .se2_qeditor .se2_delcol{width:29px;height:19px;background:url("../../img/ja_JP/btn_set.png?160622") no-repeat -413px -106px} +#smart_editor2 .se2_qeditor .se2_merrow{width:57px;height:19px;background:url("../../img/ja_JP/btn_set.png?160622") no-repeat -385px -125px} +#smart_editor2 .se2_qeditor .se2_mercol{width:57px;height:19px;background:url("../../img/ja_JP/btn_set.png?160622") no-repeat -413px -125px} +#smart_editor2 .se2_qeditor .se2_seprow_off{width:28px;height:19px;background:url("../../img/ja_JP/btn_set.png?160622") no-repeat -385px -87px} +#smart_editor2 .se2_qeditor .se2_sepcol_off{width:29px;height:19px;background:url("../../img/ja_JP/btn_set.png?160622") no-repeat -413px -87px} +#smart_editor2 .se2_qeditor .se2_merrow_off{width:57px;height:19px;background:url("../../img/ja_JP/btn_set.png?160622") no-repeat -385px -144px} +#smart_editor2 .se2_qeditor .se2_mercol_off{width:57px;height:19px;background:url("../../img/ja_JP/btn_set.png?160622") 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:69px;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:69px;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/ja_JP/btn_set.png?160622") 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/ja_JP/btn_set.png?160622") -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/ja_JP/btn_set.png?160622") -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/ja_JP/btn_set.png?160622") -86px -54px no-repeat} +#smart_editor2 .se2_qe11_1 .se2_del{position:absolute;top:10px;right:3px;width:13px;height:8px;background:url("../../img/ja_JP/btn_set.png?160622") -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/ja_JP/btn_set.png?160622") -276px -121px no-repeat} +#smart_editor2 .se2_qe12 .se2_align1{float:left;width:19px;height:21px;background:url("../../img/ja_JP/btn_set.png?160622") -295px -121px no-repeat} +#smart_editor2 .se2_qe12 .se2_align2{float:left;width:20px;height:21px;background:url("../../img/ja_JP/btn_set.png?160622") -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:74px;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:123px;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/ja_JP/btn_set.png?160622") -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)} diff --git a/webedit/css/ja_JP/smart_editor2_out.css b/webedit/css/ja_JP/smart_editor2_out.css new file mode 100644 index 0000000..0baf377 --- /dev/null +++ b/webedit/css/ja_JP/smart_editor2_out.css @@ -0,0 +1,12 @@ +@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} diff --git a/webedit/css/ko_KR/smart_editor2.css b/webedit/css/ko_KR/smart_editor2.css new file mode 100644 index 0000000..70e3e3b --- /dev/null +++ b/webedit/css/ko_KR/smart_editor2.css @@ -0,0 +1,193 @@ +@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?160622") -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?160622") -437px -358px no-repeat;font-size:0;line-height:0;text-indent:-10000px;vertical-align:middle} +#smart_editor2 #smart_editor2_content{position:relative;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?141007") 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?160622") 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?160622") -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?160622") -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?160622") 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?160622") -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?160622") -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} +#smart_editor2 .se2_content_loading{display:none;z-index:10;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center} +#smart_editor2 .se2_content_loading img{position:absolute;top:50%;left:50%;margin:-27px 0 0 -27px} +#smart_editor2 .se2_alert_wrap{display:none;z-index:20;position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;text-align:center} +#smart_editor2 .se2_alert_wrap.active{display:block} +#smart_editor2 .se2_alert_wrap .dimmed{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;opacity:0.4;filter:alpha(opacity=40)} +#smart_editor2 .se2_alert_wrap .ie_cover{position:absolute;top:0;left:0;width:100%;height:100%;background:#fff;opacity:0;filter:alpha(opacity=0)} +#smart_editor2 .se2_alert_wrap .va_line{display:inline-block;height:100%;vertical-align:middle;*zoom:1} +#smart_editor2 .se2_alert_wrap .se2_alert_content{z-index:10;position:relative;display:inline-block;*display:inline;*zoom:1;border:1px solid #727272;background:#fff;padding:26px 33px 22px;vertical-align:middle} +#smart_editor2 .se2_alert_wrap .se2_alert_content{margin-top:47px} +#smart_editor2 .se2_alert_wrap .txt1{color:#333;line-height:18px} +#smart_editor2 .se2_alert_wrap .txt2{margin-top:3px;color:#999} +#smart_editor2 .se2_alert_wrap .btn_close,#smart_editor2 .se2_alert_btns button{background:url("../../img/ko_KR/btn_set.png?160622") no-repeat} +#smart_editor2 .se2_alert_wrap .btn_close{z-index:10;position:absolute;top:7px;right:7px;width:11px;height:11px;background-position:-122px -32px;text-indent:-5000px} +#smart_editor2 .se2_alert_btns{margin-top:19px} +#smart_editor2 .se2_alert_btns button{display:inline;float:none;width:48px;height:27px} +#smart_editor2 .se2_alert_btns button + button{margin-left:10px} +#smart_editor2 .se2_alert_btns .se2_confirm{background-position:-369px -434px} +#smart_editor2 .se2_alert_btns .se2_cancel{background-position:-419px -434px} +/* 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} diff --git a/webedit/css/ko_KR/smart_editor2_in.css b/webedit/css/ko_KR/smart_editor2_in.css new file mode 100644 index 0000000..fdecc09 --- /dev/null +++ b/webedit/css/ko_KR/smart_editor2_in.css @@ -0,0 +1,24 @@ +@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 td{word-break:break-all} +.se2_inputarea_890{width:741px;margin:20px 0 10px 64px} +.se2_inputarea_698{width:548px;margin:20px 0 10px 64px} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + .se2_inputarea td:empty:after,.se2_inputarea td > p:empty:after{content:"\00A0";line-height:1} +} +/* 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} diff --git a/webedit/css/ko_KR/smart_editor2_items.css b/webedit/css/ko_KR/smart_editor2_items.css new file mode 100644 index 0000000..e472626 --- /dev/null +++ b/webedit/css/ko_KR/smart_editor2_items.css @@ -0,0 +1,462 @@ +@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;height:auto;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?160622") 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?160622") 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?160622") -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?141007") 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?160622") -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?160622") -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?160622") 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?160622") -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?160622") 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?160622") -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?160622") 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?160622") -41px 0 no-repeat} +/* TEXT_TOOLBAR : SCHARACTER */ +#smart_editor2 .se2_bx_character{width:469px;height:272px;margin:0;padding:0;background:url("../../img/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?160622") 0 -204px no-repeat} +#smart_editor2 .se2_bx_character .se2_char2{width:86px;height:26px;background:url("../../img/ko_KR/btn_set.png?160622") -75px -204px no-repeat} +#smart_editor2 .se2_bx_character .se2_char3{width:68px;height:26px;background:url("../../img/ko_KR/btn_set.png?160622") -160px -204px no-repeat} +#smart_editor2 .se2_bx_character .se2_char4{width:55px;height:26px;background:url("../../img/ko_KR/btn_set.png?160622") -227px -204px no-repeat} +#smart_editor2 .se2_bx_character .se2_char5{width:97px;height:26px;background:url("../../img/ko_KR/btn_set.png?160622") -281px -204px no-repeat} +#smart_editor2 .se2_bx_character .se2_char6{width:66px;height:26px;background:url("../../img/ko_KR/btn_set.png?160622") -377px -204px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char1{width:76px;height:26px;background:url("../../img/ko_KR/btn_set.png?160622") 0 -230px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char2{width:86px;height:26px;background:url("../../img/ko_KR/btn_set.png?160622") -75px -230px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char3{width:68px;height:26px;background:url("../../img/ko_KR/btn_set.png?160622") -160px -230px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char4{width:55px;height:26px;background:url("../../img/ko_KR/btn_set.png?160622") -227px -230px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char5{width:97px;height:26px;background:url("../../img/ko_KR/btn_set.png?160622") -281px -230px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char6{width:66px;height:26px;background:url("../../img/ko_KR/btn_set.png?160622") -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?160622") -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?160622") no-repeat;vertical-align:middle} +#smart_editor2 .se2_apply_character .se2_cancel{width:39px;height:24px;background:url("../../img/ko_KR/btn_set.png?160622") -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;*direction:rtl} +#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?160622") -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?160622") -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?160622") -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?160622") -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?160622") 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?160622") -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?160622") -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?160622") 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?160622") no-repeat} +#smart_editor2 .se2_table_set button.se2_cancel{width:39px;height:24px;background:url("../../img/ko_KR/btn_set.png?160622") -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?160622") -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?160622") 0 -100px no-repeat} +#smart_editor2 .se2_bx_find_revise .se2_tabrevise{width:117px;height:26px;background:url("../../img/ko_KR/btn_set.png?160622") -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?160622") 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?160622") -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/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/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?160622") -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?160622") -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?160622") -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?160622") -245px -24px no-repeat} +#smart_editor2 .se2_bx_find_revise .se2_cancel{width:39px;height:24px;background:url("../../img/ko_KR/btn_set.png?160622") -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?160622") -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/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?160622") -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?160622") no-repeat -385px -49px} +#smart_editor2 .se2_qeditor .se2_addcol{width:29px;height:19px;background:url("../../img/ko_KR/btn_set.png?160622") no-repeat -413px -49px} +#smart_editor2 .se2_qeditor .se2_seprow{width:28px;height:19px;background:url("../../img/ko_KR/btn_set.png?160622") no-repeat -385px -68px} +#smart_editor2 .se2_qeditor .se2_sepcol{width:29px;height:19px;background:url("../../img/ko_KR/btn_set.png?160622") no-repeat -413px -68px} +#smart_editor2 .se2_qeditor .se2_delrow{width:28px;height:19px;background:url("../../img/ko_KR/btn_set.png?160622") no-repeat -385px -106px} +#smart_editor2 .se2_qeditor .se2_delcol{width:29px;height:19px;background:url("../../img/ko_KR/btn_set.png?160622") no-repeat -413px -106px} +#smart_editor2 .se2_qeditor .se2_merrow{width:57px;height:19px;background:url("../../img/ko_KR/btn_set.png?160622") no-repeat -385px -125px} +#smart_editor2 .se2_qeditor .se2_mercol{width:57px;height:19px;background:url("../../img/ko_KR/btn_set.png?160622") no-repeat -413px -125px} +#smart_editor2 .se2_qeditor .se2_seprow_off{width:28px;height:19px;background:url("../../img/ko_KR/btn_set.png?160622") no-repeat -385px -87px} +#smart_editor2 .se2_qeditor .se2_sepcol_off{width:29px;height:19px;background:url("../../img/ko_KR/btn_set.png?160622") no-repeat -413px -87px} +#smart_editor2 .se2_qeditor .se2_merrow_off{width:57px;height:19px;background:url("../../img/ko_KR/btn_set.png?160622") no-repeat -385px -144px} +#smart_editor2 .se2_qeditor .se2_mercol_off{width:57px;height:19px;background:url("../../img/ko_KR/btn_set.png?160622") 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?160622") 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?160622") -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?160622") -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?160622") -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?160622") -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?160622") -276px -121px no-repeat} +#smart_editor2 .se2_qe12 .se2_align1{float:left;width:19px;height:21px;background:url("../../img/ko_KR/btn_set.png?160622") -295px -121px no-repeat} +#smart_editor2 .se2_qe12 .se2_align2{float:left;width:20px;height:21px;background:url("../../img/ko_KR/btn_set.png?160622") -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?160622") -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?160622") -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?160622") -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?160622") -235px -120px no-repeat} diff --git a/webedit/css/ko_KR/smart_editor2_out.css b/webedit/css/ko_KR/smart_editor2_out.css new file mode 100644 index 0000000..0baf377 --- /dev/null +++ b/webedit/css/ko_KR/smart_editor2_out.css @@ -0,0 +1,12 @@ +@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} diff --git a/webedit/css/zh_CN/smart_editor2.css b/webedit/css/zh_CN/smart_editor2.css new file mode 100644 index 0000000..f2a6b47 --- /dev/null +++ b/webedit/css/zh_CN/smart_editor2.css @@ -0,0 +1,190 @@ +@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/zh_CN/btn_set.png?160622") -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/zh_CN/btn_set.png?160622") -437px -358px no-repeat;font-size:0;line-height:0;text-indent:-10000px;vertical-align:middle} +#smart_editor2 #smart_editor2_content{position:relative;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?141007") 0 -896px repeat-x} +#smart_editor2 .se2_inputarea_controller{display:block;clear:both;position:relative;width:100%;height:15px;background:url("../../img/icon_set.gif?141007") center -47px no-repeat;text-align:center;cursor:n-resize} +#smart_editor2 .se2_inputarea_controller span{display:block;visibility:visible;height:15px;font-size:0;line-height:0;color:#fff;white-space:nowrap} +#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/zh_CN/btn_set.png?160622") 0 -85px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .se2_to_html{width:59px;height:15px;background:url("../../img/zh_CN/btn_set.png?160622") -59px -70px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .se2_to_text{width:60px;height:15px;background:url("../../img/zh_CN/btn_set.png?160622") -417px -466px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .active .se2_to_editor{width:59px;height:15px;background:url("../../img/zh_CN/btn_set.png?160622") 0 -70px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .active .se2_to_html{width:59px;height:15px;background:url("../../img/zh_CN/btn_set.png?160622") -59px -85px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .active .se2_to_text{width:60px;height:15px;background:url("../../img/zh_CN/btn_set.png?160622") -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} +#smart_editor2 .se2_content_loading{display:none;z-index:10;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center} +#smart_editor2 .se2_content_loading img{position:absolute;top:50%;left:50%;margin:-27px 0 0 -27px} +#smart_editor2 .se2_alert_wrap{display:none;z-index:20;position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;text-align:center} +#smart_editor2 .se2_alert_wrap.active{display:block} +#smart_editor2 .se2_alert_wrap .dimmed{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;opacity:0.4;filter:alpha(opacity=40)} +#smart_editor2 .se2_alert_wrap .ie_cover{position:absolute;top:0;left:0;width:100%;height:100%;background:#fff;opacity:0;filter:alpha(opacity=0)} +#smart_editor2 .se2_alert_wrap .va_line{display:inline-block;height:100%;vertical-align:middle;*zoom:1} +#smart_editor2 .se2_alert_wrap .se2_alert_content{z-index:10;position:relative;display:inline-block;*display:inline;*zoom:1;border:1px solid #727272;background:#fff;padding:26px 33px 22px;vertical-align:middle} +#smart_editor2 .se2_alert_wrap .se2_alert_content{margin-top:47px} +#smart_editor2 .se2_alert_wrap .txt1{color:#333;line-height:18px} +#smart_editor2 .se2_alert_wrap .txt2{margin-top:3px;color:#999} +#smart_editor2 .se2_alert_wrap .btn_close,#smart_editor2 .se2_alert_btns button{background:url("../../img/zh_CN/btn_set.png?160622") no-repeat} +#smart_editor2 .se2_alert_wrap .btn_close{z-index:10;position:absolute;top:7px;right:7px;width:11px;height:11px;background-position:-122px -32px;text-indent:-5000px} +#smart_editor2 .se2_alert_btns{margin-top:19px} +#smart_editor2 .se2_alert_btns button{display:inline;float:none;width:48px;height:27px} +#smart_editor2 .se2_alert_btns button + button{margin-left:10px} +#smart_editor2 .se2_alert_btns .se2_confirm{background-position:-369px -434px} +#smart_editor2 .se2_alert_btns .se2_cancel{background-position:-419px -434px} +/* 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/zh_CN/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} diff --git a/webedit/css/zh_CN/smart_editor2_in.css b/webedit/css/zh_CN/smart_editor2_in.css new file mode 100644 index 0000000..fdecc09 --- /dev/null +++ b/webedit/css/zh_CN/smart_editor2_in.css @@ -0,0 +1,24 @@ +@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 td{word-break:break-all} +.se2_inputarea_890{width:741px;margin:20px 0 10px 64px} +.se2_inputarea_698{width:548px;margin:20px 0 10px 64px} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + .se2_inputarea td:empty:after,.se2_inputarea td > p:empty:after{content:"\00A0";line-height:1} +} +/* 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} diff --git a/webedit/css/zh_CN/smart_editor2_items.css b/webedit/css/zh_CN/smart_editor2_items.css new file mode 100644 index 0000000..6cdfa1e --- /dev/null +++ b/webedit/css/zh_CN/smart_editor2_items.css @@ -0,0 +1,447 @@ +@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:186px;margin:0;padding:0} +#smart_editor2 .se2_tool .se2_l_font_fam li{display:block;width:186px;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:184px;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;height:auto;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/zh_CN/btn_set.png?160622") 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/zh_CN/btn_set.png?160622") 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/zh_CN/btn_set.png?160622") -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?141007") 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/zh_CN/btn_set.png?160622") -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/zh_CN/btn_set.png?160622") -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/zh_CN/btn_set.png?160622") no-repeat} +#smart_editor2 .se2_tool .btn_area .se2_btn_cancel3{width:39px;height:24px;margin-left:3px;background:url("../../img/zh_CN/btn_set.png?160622") -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/zh_CN/btn_set.png?160622") 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/zh_CN/btn_set.png?160622") -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/zh_CN/btn_set.png?160622") 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/zh_CN/btn_set.png?160622") -41px 0 no-repeat} +/* TEXT_TOOLBAR : SCHARACTER */ +#smart_editor2 .se2_bx_character{width:469px;height:272px;margin:0;padding:0;background:url("../../img/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:77px;height:26px;background:url("../../img/zh_CN/btn_set.png?160622") 0 -204px no-repeat} +#smart_editor2 .se2_bx_character .se2_char2{width:90px;height:26px;background:url("../../img/zh_CN/btn_set.png?160622") -76px -204px no-repeat} +#smart_editor2 .se2_bx_character .se2_char3{width:84px;height:26px;background:url("../../img/zh_CN/btn_set.png?160622") -165px -204px no-repeat} +#smart_editor2 .se2_bx_character .se2_char4{width:52px;height:26px;background:url("../../img/zh_CN/btn_set.png?160622") -248px -204px no-repeat} +#smart_editor2 .se2_bx_character .se2_char5{width:91px;height:26px;background:url("../../img/zh_CN/btn_set.png?160622") -299px -204px no-repeat} +#smart_editor2 .se2_bx_character .se2_char6{width:54px;height:26px;background:url("../../img/zh_CN/btn_set.png?160622") -389px -204px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char1{width:77px;height:26px;background:url("../../img/zh_CN/btn_set.png?160622") 0 -230px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char2{width:90px;height:26px;background:url("../../img/zh_CN/btn_set.png?160622") -76px -230px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char3{width:84px;height:26px;background:url("../../img/zh_CN/btn_set.png?160622") -165px -230px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char4{width:52px;height:26px;background:url("../../img/zh_CN/btn_set.png?160622") -248px -230px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char5{width:91px;height:26px;background:url("../../img/zh_CN/btn_set.png?160622") -299px -230px no-repeat} +#smart_editor2 .se2_bx_character .active .se2_char6{width:54px;height:26px;background:url("../../img/zh_CN/btn_set.png?160622") -389px -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/zh_CN/btn_set.png?160622") -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/zh_CN/btn_set.png?160622") no-repeat;vertical-align:middle} +#smart_editor2 .se2_apply_character .se2_cancel{width:39px;height:24px;background:url("../../img/zh_CN/btn_set.png?160622") -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;*direction:rtl} +#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/zh_CN/btn_set.png?160622") -86px -54px no-repeat} +#smart_editor2 .se2_table_set .se2_del{position:absolute;top:10px;right:3px;width:13px;height:8px;background:url("../../img/zh_CN/btn_set.png?160622") -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/zh_CN/btn_set.png?160622") -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/zh_CN/btn_set.png?160622") -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/zh_CN/btn_set.png?160622") 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/zh_CN/btn_set.png?160622") -355px -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/zh_CN/btn_set.png?160622") -368px -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/zh_CN/btn_set.png?160622") 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/zh_CN/btn_set.png?160622") no-repeat} +#smart_editor2 .se2_table_set button.se2_cancel{width:39px;height:24px;background:url("../../img/zh_CN/btn_set.png?160622") -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/zh_CN/btn_set.png?160622") -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/zh_CN/btn_set.png?160622") 0 -100px no-repeat} +#smart_editor2 .se2_bx_find_revise .se2_tabrevise{width:117px;height:26px;background:url("../../img/zh_CN/btn_set.png?160622") -116px -100px no-repeat} +#smart_editor2 .se2_bx_find_revise .active .se2_tabfind{width:117px;height:26px;background:url("../../img/zh_CN/btn_set.png?160622") 0 -126px no-repeat} +#smart_editor2 .se2_bx_find_revise .active .se2_tabrevise{width:117px;height:26px;background:url("../../img/zh_CN/btn_set.png?160622") -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/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/bx_set_110302.gif") -289px -1619px no-repeat} +#smart_editor2 .se2_bx_find_revise dt{_display:inline;float:left;clear:both;width:55px;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:151px;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:81px;height:24px;margin:0 3px 0 0;background:url("../../img/zh_CN/btn_set.png?160622") -180px -48px no-repeat} +#smart_editor2 .se2_bx_find_revise .se2_find_next2{width:78px;height:24px;margin:0 3px 0 0;background:url("../../img/zh_CN/btn_set.png?160622") -180px -24px no-repeat} +#smart_editor2 .se2_bx_find_revise .se2_revise1{width:52px;height:24px;margin:0 3px 0 0;background:url("../../img/zh_CN/btn_set.png?160622") -261px -48px no-repeat} +#smart_editor2 .se2_bx_find_revise .se2_revise2{width:55px;height:24px;margin:0 3px 0 0;background:url("../../img/zh_CN/btn_set.png?160622") -259px -24px no-repeat} +#smart_editor2 .se2_bx_find_revise .se2_cancel{width:39px;height:24px;background:url("../../img/zh_CN/btn_set.png?160622") -41px 0 no-repeat} +/* TEXT_TOOLBAR : QUICKEDITOR_TABLE */ +#smart_editor2 .se2_qmax{position:absolute;width:18px;height:18px;background:url("../../img/zh_CN/btn_set.png?160622") -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/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/zh_CN/btn_set.png?160622") -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/zh_CN/btn_set.png?160622") no-repeat -385px -49px} +#smart_editor2 .se2_qeditor .se2_addcol{width:29px;height:19px;background:url("../../img/zh_CN/btn_set.png?160622") no-repeat -413px -49px} +#smart_editor2 .se2_qeditor .se2_seprow{width:28px;height:19px;background:url("../../img/zh_CN/btn_set.png?160622") no-repeat -385px -68px} +#smart_editor2 .se2_qeditor .se2_sepcol{width:29px;height:19px;background:url("../../img/zh_CN/btn_set.png?160622") no-repeat -413px -68px} +#smart_editor2 .se2_qeditor .se2_delrow{width:28px;height:19px;background:url("../../img/zh_CN/btn_set.png?160622") no-repeat -385px -106px} +#smart_editor2 .se2_qeditor .se2_delcol{width:29px;height:19px;background:url("../../img/zh_CN/btn_set.png?160622") no-repeat -413px -106px} +#smart_editor2 .se2_qeditor .se2_merrow{width:57px;height:19px;background:url("../../img/zh_CN/btn_set.png?160622") no-repeat -385px -125px} +#smart_editor2 .se2_qeditor .se2_mercol{width:57px;height:19px;background:url("../../img/zh_CN/btn_set.png?160622") no-repeat -413px -125px} +#smart_editor2 .se2_qeditor .se2_seprow_off{width:28px;height:19px;background:url("../../img/zh_CN/btn_set.png?160622") no-repeat -385px -87px} +#smart_editor2 .se2_qeditor .se2_sepcol_off{width:29px;height:19px;background:url("../../img/zh_CN/btn_set.png?160622") no-repeat -413px -87px} +#smart_editor2 .se2_qeditor .se2_merrow_off{width:57px;height:19px;background:url("../../img/zh_CN/btn_set.png?160622") no-repeat -385px -144px} +#smart_editor2 .se2_qeditor .se2_mercol_off{width:57px;height:19px;background:url("../../img/zh_CN/btn_set.png?160622") 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:79px;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:79px;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/zh_CN/btn_set.png?160622") 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/zh_CN/btn_set.png?160622") -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/zh_CN/btn_set.png?160622") -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/zh_CN/btn_set.png?160622") -86px -54px no-repeat} +#smart_editor2 .se2_qe11_1 .se2_del{position:absolute;top:10px;right:3px;width:13px;height:8px;background:url("../../img/zh_CN/btn_set.png?160622") -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/zh_CN/btn_set.png?160622") -276px -121px no-repeat} +#smart_editor2 .se2_qe12 .se2_align1{float:left;width:19px;height:21px;background:url("../../img/zh_CN/btn_set.png?160622") -295px -121px no-repeat} +#smart_editor2 .se2_qe12 .se2_align2{float:left;width:20px;height:21px;background:url("../../img/zh_CN/btn_set.png?160622") -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:87px;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:154px;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/zh_CN/btn_set.png?160622") -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)} diff --git a/webedit/css/zh_CN/smart_editor2_out.css b/webedit/css/zh_CN/smart_editor2_out.css new file mode 100644 index 0000000..0baf377 --- /dev/null +++ b/webedit/css/zh_CN/smart_editor2_out.css @@ -0,0 +1,12 @@ +@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} diff --git a/webedit/css/zh_TW/smart_editor2.css b/webedit/css/zh_TW/smart_editor2.css new file mode 100644 index 0000000..61866f4 --- /dev/null +++ b/webedit/css/zh_TW/smart_editor2.css @@ -0,0 +1,190 @@ +@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/zh_TW/btn_set.png?160622") -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/zh_TW/btn_set.png?160622") -437px -358px no-repeat;font-size:0;line-height:0;text-indent:-10000px;vertical-align:middle} +#smart_editor2 #smart_editor2_content{position:relative;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?141007") 0 -896px repeat-x} +#smart_editor2 .se2_inputarea_controller{display:block;clear:both;position:relative;width:100%;height:15px;background:url("../../img/icon_set.gif?141007") center -47px no-repeat;text-align:center;cursor:n-resize} +#smart_editor2 .se2_inputarea_controller span{display:block;visibility:visible;height:15px;font-size:0;line-height:0;color:#fff;white-space:nowrap} +#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/zh_TW/btn_set.png?160622") 0 -85px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .se2_to_html{width:59px;height:15px;background:url("../../img/zh_TW/btn_set.png?160622") -59px -70px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .se2_to_text{width:60px;height:15px;background:url("../../img/zh_TW/btn_set.png?160622") -417px -466px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .active .se2_to_editor{width:59px;height:15px;background:url("../../img/zh_TW/btn_set.png?160622") 0 -70px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .active .se2_to_html{width:59px;height:15px;background:url("../../img/zh_TW/btn_set.png?160622") -59px -85px no-repeat;vertical-align:top} +#smart_editor2 .se2_converter .active .se2_to_text{width:60px;height:15px;background:url("../../img/zh_TW/btn_set.png?160622") -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} +#smart_editor2 .se2_content_loading{display:none;z-index:10;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center} +#smart_editor2 .se2_content_loading img{position:absolute;top:50%;left:50%;margin:-27px 0 0 -27px} +#smart_editor2 .se2_alert_wrap{display:none;z-index:20;position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;text-align:center} +#smart_editor2 .se2_alert_wrap.active{display:block} +#smart_editor2 .se2_alert_wrap .dimmed{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;opacity:0.4;filter:alpha(opacity=40)} +#smart_editor2 .se2_alert_wrap .ie_cover{position:absolute;top:0;left:0;width:100%;height:100%;background:#fff;opacity:0;filter:alpha(opacity=0)} +#smart_editor2 .se2_alert_wrap .va_line{display:inline-block;height:100%;vertical-align:middle;*zoom:1} +#smart_editor2 .se2_alert_wrap .se2_alert_content{z-index:10;position:relative;display:inline-block;*display:inline;*zoom:1;border:1px solid #727272;background:#fff;padding:26px 33px 22px;vertical-align:middle} +#smart_editor2 .se2_alert_wrap .se2_alert_content{margin-top:47px} +#smart_editor2 .se2_alert_wrap .txt1{color:#333;line-height:18px} +#smart_editor2 .se2_alert_wrap .txt2{margin-top:3px;color:#999} +#smart_editor2 .se2_alert_wrap .btn_close,#smart_editor2 .se2_alert_btns button{background:url("../../img/zh_TW/btn_set.png?160622") no-repeat} +#smart_editor2 .se2_alert_wrap .btn_close{z-index:10;position:absolute;top:7px;right:7px;width:11px;height:11px;background-position:-122px -32px;text-indent:-5000px} +#smart_editor2 .se2_alert_btns{margin-top:19px} +#smart_editor2 .se2_alert_btns button{display:inline;float:none;width:48px;height:27px} +#smart_editor2 .se2_alert_btns button + button{margin-left:10px} +#smart_editor2 .se2_alert_btns .se2_confirm{background-position:-369px -434px} +#smart_editor2 .se2_alert_btns .se2_cancel{background-position:-419px -434px} +/* 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/zh_TW/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} diff --git a/webedit/css/zh_TW/smart_editor2_in.css b/webedit/css/zh_TW/smart_editor2_in.css new file mode 100644 index 0000000..fdecc09 --- /dev/null +++ b/webedit/css/zh_TW/smart_editor2_in.css @@ -0,0 +1,24 @@ +@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 td{word-break:break-all} +.se2_inputarea_890{width:741px;margin:20px 0 10px 64px} +.se2_inputarea_698{width:548px;margin:20px 0 10px 64px} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + .se2_inputarea td:empty:after,.se2_inputarea td > p:empty:after{content:"\00A0";line-height:1} +} +/* 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} diff --git a/webedit/css/zh_TW/smart_editor2_items.css b/webedit/css/zh_TW/smart_editor2_items.css new file mode 100644 index 0000000..2dd3122 --- /dev/null +++ b/webedit/css/zh_TW/smart_editor2_items.css @@ -0,0 +1,417 @@ +@charset "UTF-8"; +/* NHN Web Standardization Team (http://html.nhndesign.com/) HHJ 090226 */ +/* TEXT_TOOLBAR : FONTNAME */ +#smart_editor2 .se2_l_font_fam .hover,#smart_editor2 .se2_l_font_fam .active{background:#ebebeb} +#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;height:auto;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/zh_TW/btn_set.png?160622") 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/zh_TW/btn_set.png?160622") 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/zh_TW/btn_set.png?160622") -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?141007") 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/zh_TW/btn_set.png?160622") -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/zh_TW/btn_set.png?160622") -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/zh_TW/btn_set.png?160622") no-repeat} +#smart_editor2 .se2_tool .btn_area .se2_btn_cancel3{width:39px;height:24px;margin-left:3px;background:url("../../img/zh_TW/btn_set.png?160622") -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/zh_TW/btn_set.png?160622") 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/zh_TW/btn_set.png?160622") -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/zh_TW/btn_set.png?160622") 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/zh_TW/btn_set.png?160622") -41px 0 no-repeat} +/* TEXT_TOOLBAR : SCHARACTER */ +#smart_editor2 .se2_bx_character{width:469px;height:272px;margin:0;padding:0;background:url("../../img/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_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/zh_TW/btn_set.png?160622") -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/zh_TW/btn_set.png?160622") no-repeat;vertical-align:middle} +#smart_editor2 .se2_apply_character .se2_cancel{width:39px;height:24px;background:url("../../img/zh_TW/btn_set.png?160622") -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;*direction:rtl} +#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/zh_TW/btn_set.png?160622") -86px -54px no-repeat} +#smart_editor2 .se2_table_set .se2_del{position:absolute;top:10px;right:3px;width:13px;height:8px;background:url("../../img/zh_TW/btn_set.png?160622") -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/zh_TW/btn_set.png?160622") -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/zh_TW/btn_set.png?160622") -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/zh_TW/btn_set.png?160622") 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 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/zh_TW/btn_set.png?160622") 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/zh_TW/btn_set.png?160622") no-repeat} +#smart_editor2 .se2_table_set button.se2_cancel{width:39px;height:24px;background:url("../../img/zh_TW/btn_set.png?160622") -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/zh_TW/btn_set.png?160622") -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/zh_TW/btn_set.png?160622") 0 -100px no-repeat} +#smart_editor2 .se2_bx_find_revise .se2_tabrevise{width:117px;height:26px;background:url("../../img/zh_TW/btn_set.png?160622") -116px -100px no-repeat} +#smart_editor2 .se2_bx_find_revise .active .se2_tabfind{width:117px;height:26px;background:url("../../img/zh_TW/btn_set.png?160622") 0 -126px no-repeat} +#smart_editor2 .se2_bx_find_revise .active .se2_tabrevise{width:117px;height:26px;background:url("../../img/zh_TW/btn_set.png?160622") -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/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/bx_set_110302.gif") -289px -1619px no-repeat} +#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 .se2_find_btns{float:left;clear:both;width:255px;padding:8px 0 10px 0;text-align:center} +#smart_editor2 .se2_bx_find_revise .se2_cancel{width:39px;height:24px;background:url("../../img/zh_TW/btn_set.png?160622") -41px 0 no-repeat} +/* TEXT_TOOLBAR : QUICKEDITOR_TABLE */ +#smart_editor2 .se2_qmax{position:absolute;width:18px;height:18px;background:url("../../img/zh_TW/btn_set.png?160622") -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/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/zh_TW/btn_set.png?160622") -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/zh_TW/btn_set.png?160622") no-repeat -385px -49px} +#smart_editor2 .se2_qeditor .se2_addcol{width:29px;height:19px;background:url("../../img/zh_TW/btn_set.png?160622") no-repeat -413px -49px} +#smart_editor2 .se2_qeditor .se2_seprow{width:28px;height:19px;background:url("../../img/zh_TW/btn_set.png?160622") no-repeat -385px -68px} +#smart_editor2 .se2_qeditor .se2_sepcol{width:29px;height:19px;background:url("../../img/zh_TW/btn_set.png?160622") no-repeat -413px -68px} +#smart_editor2 .se2_qeditor .se2_delrow{width:28px;height:19px;background:url("../../img/zh_TW/btn_set.png?160622") no-repeat -385px -106px} +#smart_editor2 .se2_qeditor .se2_delcol{width:29px;height:19px;background:url("../../img/zh_TW/btn_set.png?160622") no-repeat -413px -106px} +#smart_editor2 .se2_qeditor .se2_merrow{width:57px;height:19px;background:url("../../img/zh_TW/btn_set.png?160622") no-repeat -385px -125px} +#smart_editor2 .se2_qeditor .se2_mercol{width:57px;height:19px;background:url("../../img/zh_TW/btn_set.png?160622") no-repeat -413px -125px} +#smart_editor2 .se2_qeditor .se2_seprow_off{width:28px;height:19px;background:url("../../img/zh_TW/btn_set.png?160622") no-repeat -385px -87px} +#smart_editor2 .se2_qeditor .se2_sepcol_off{width:29px;height:19px;background:url("../../img/zh_TW/btn_set.png?160622") no-repeat -413px -87px} +#smart_editor2 .se2_qeditor .se2_merrow_off{width:57px;height:19px;background:url("../../img/zh_TW/btn_set.png?160622") no-repeat -385px -144px} +#smart_editor2 .se2_qeditor .se2_mercol_off{width:57px;height:19px;background:url("../../img/zh_TW/btn_set.png?160622") no-repeat -413px -144px} +/* TEXT_TOOLBAR : QUICKEDITOR_TABLE > CELL_BACKGROUND */ +#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_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/zh_TW/btn_set.png?160622") 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/zh_TW/btn_set.png?160622") -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/zh_TW/btn_set.png?160622") -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/zh_TW/btn_set.png?160622") -86px -54px no-repeat} +#smart_editor2 .se2_qe11_1 .se2_del{position:absolute;top:10px;right:3px;width:13px;height:8px;background:url("../../img/zh_TW/btn_set.png?160622") -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/zh_TW/btn_set.png?160622") -276px -121px no-repeat} +#smart_editor2 .se2_qe12 .se2_align1{float:left;width:19px;height:21px;background:url("../../img/zh_TW/btn_set.png?160622") -295px -121px no-repeat} +#smart_editor2 .se2_qe12 .se2_align2{float:left;width:20px;height:21px;background:url("../../img/zh_TW/btn_set.png?160622") -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_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_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/zh_TW/btn_set.png?160622") -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)} diff --git a/webedit/css/zh_TW/smart_editor2_out.css b/webedit/css/zh_TW/smart_editor2_out.css new file mode 100644 index 0000000..0baf377 --- /dev/null +++ b/webedit/css/zh_TW/smart_editor2_out.css @@ -0,0 +1,12 @@ +@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} diff --git a/webedit/img/bg_b1.png b/webedit/img/bg_b1.png new file mode 100644 index 0000000..8bd0c06 Binary files /dev/null and b/webedit/img/bg_b1.png differ diff --git a/webedit/img/bg_button.gif b/webedit/img/bg_button.gif new file mode 100644 index 0000000..1619320 Binary files /dev/null and b/webedit/img/bg_button.gif differ diff --git a/webedit/img/bg_button_left.gif b/webedit/img/bg_button_left.gif new file mode 100644 index 0000000..7b86ffd Binary files /dev/null and b/webedit/img/bg_button_left.gif differ diff --git a/webedit/img/bg_button_right.gif b/webedit/img/bg_button_right.gif new file mode 100644 index 0000000..0ac699c Binary files /dev/null and b/webedit/img/bg_button_right.gif differ diff --git a/webedit/img/bg_find_h3.gif b/webedit/img/bg_find_h3.gif new file mode 100644 index 0000000..06627d9 Binary files /dev/null and b/webedit/img/bg_find_h3.gif differ diff --git a/webedit/img/bg_help.gif b/webedit/img/bg_help.gif new file mode 100644 index 0000000..f2aae94 Binary files /dev/null and b/webedit/img/bg_help.gif differ diff --git a/webedit/img/bg_line1.gif b/webedit/img/bg_line1.gif new file mode 100644 index 0000000..8c506a4 Binary files /dev/null and b/webedit/img/bg_line1.gif differ diff --git a/webedit/img/bg_quote2.gif b/webedit/img/bg_quote2.gif new file mode 100644 index 0000000..eb8cd04 Binary files /dev/null and b/webedit/img/bg_quote2.gif differ diff --git a/webedit/img/bg_set.gif b/webedit/img/bg_set.gif new file mode 100644 index 0000000..14d0973 Binary files /dev/null and b/webedit/img/bg_set.gif differ diff --git a/webedit/img/bg_spell.gif b/webedit/img/bg_spell.gif new file mode 100644 index 0000000..506013e Binary files /dev/null and b/webedit/img/bg_spell.gif differ diff --git a/webedit/img/bg_text_tool.gif b/webedit/img/bg_text_tool.gif new file mode 100644 index 0000000..60d61de Binary files /dev/null and b/webedit/img/bg_text_tool.gif differ diff --git a/webedit/img/bx_set_110302.gif b/webedit/img/bx_set_110302.gif new file mode 100644 index 0000000..86662e9 Binary files /dev/null and b/webedit/img/bx_set_110302.gif differ diff --git a/webedit/img/en_US/btn_set.png b/webedit/img/en_US/btn_set.png new file mode 100644 index 0000000..91543b3 Binary files /dev/null and b/webedit/img/en_US/btn_set.png differ diff --git a/webedit/img/en_US/text_tool_set.png b/webedit/img/en_US/text_tool_set.png new file mode 100644 index 0000000..4065c7c Binary files /dev/null and b/webedit/img/en_US/text_tool_set.png differ diff --git a/webedit/img/ico_extend.png b/webedit/img/ico_extend.png new file mode 100644 index 0000000..1aa88ff Binary files /dev/null and b/webedit/img/ico_extend.png differ diff --git a/webedit/img/icon_set.gif b/webedit/img/icon_set.gif new file mode 100644 index 0000000..428c84b Binary files /dev/null and b/webedit/img/icon_set.gif differ diff --git a/webedit/img/ja_JP/btn_set.png b/webedit/img/ja_JP/btn_set.png new file mode 100644 index 0000000..17725b2 Binary files /dev/null and b/webedit/img/ja_JP/btn_set.png differ diff --git a/webedit/img/ja_JP/text_tool_set.png b/webedit/img/ja_JP/text_tool_set.png new file mode 100644 index 0000000..509f6fc Binary files /dev/null and b/webedit/img/ja_JP/text_tool_set.png differ diff --git a/webedit/img/ko_KR/btn_set.png b/webedit/img/ko_KR/btn_set.png new file mode 100644 index 0000000..b10375c Binary files /dev/null and b/webedit/img/ko_KR/btn_set.png differ diff --git a/webedit/img/ko_KR/text_tool_set.png b/webedit/img/ko_KR/text_tool_set.png new file mode 100644 index 0000000..fa6cc32 Binary files /dev/null and b/webedit/img/ko_KR/text_tool_set.png differ diff --git a/webedit/img/photoQuickPopup/bg_drag_image.png b/webedit/img/photoQuickPopup/bg_drag_image.png new file mode 100644 index 0000000..0a68013 Binary files /dev/null and b/webedit/img/photoQuickPopup/bg_drag_image.png differ diff --git a/webedit/img/photoQuickPopup/btn_cancel.png b/webedit/img/photoQuickPopup/btn_cancel.png new file mode 100644 index 0000000..a39adf8 Binary files /dev/null and b/webedit/img/photoQuickPopup/btn_cancel.png differ diff --git a/webedit/img/photoQuickPopup/btn_confirm.png b/webedit/img/photoQuickPopup/btn_confirm.png new file mode 100644 index 0000000..4b7ed66 Binary files /dev/null and b/webedit/img/photoQuickPopup/btn_confirm.png differ diff --git a/webedit/img/photoQuickPopup/btn_confirm2.png b/webedit/img/photoQuickPopup/btn_confirm2.png new file mode 100644 index 0000000..7d1accf Binary files /dev/null and b/webedit/img/photoQuickPopup/btn_confirm2.png differ diff --git a/webedit/img/photoQuickPopup/btn_del.png b/webedit/img/photoQuickPopup/btn_del.png new file mode 100644 index 0000000..9bbf595 Binary files /dev/null and b/webedit/img/photoQuickPopup/btn_del.png differ diff --git a/webedit/img/photoQuickPopup/btn_find.png b/webedit/img/photoQuickPopup/btn_find.png new file mode 100644 index 0000000..054a411 Binary files /dev/null and b/webedit/img/photoQuickPopup/btn_find.png differ diff --git a/webedit/img/zh_CN/btn_set.png b/webedit/img/zh_CN/btn_set.png new file mode 100644 index 0000000..8a6364e Binary files /dev/null and b/webedit/img/zh_CN/btn_set.png differ diff --git a/webedit/img/zh_CN/text_tool_set.png b/webedit/img/zh_CN/text_tool_set.png new file mode 100644 index 0000000..4065c7c Binary files /dev/null and b/webedit/img/zh_CN/text_tool_set.png differ diff --git a/webedit/img/zh_TW/btn_set.png b/webedit/img/zh_TW/btn_set.png new file mode 100644 index 0000000..2baacbd Binary files /dev/null and b/webedit/img/zh_TW/btn_set.png differ diff --git a/webedit/img/zh_TW/text_tool_set.png b/webedit/img/zh_TW/text_tool_set.png new file mode 100644 index 0000000..4065c7c Binary files /dev/null and b/webedit/img/zh_TW/text_tool_set.png differ diff --git a/webedit/js/lib/jindo2.all.js b/webedit/js/lib/jindo2.all.js new file mode 100644 index 0000000..c0baf9d --- /dev/null +++ b/webedit/js/lib/jindo2.all.js @@ -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 a=arguments.callee;var b=a._cached;if(b){return b}if(!(this instanceof a)){return new a()}if(!b){a._cached=this}this.version="1.5.2-SMART_EDITOR"};jindo.$=function(l){var h=[],o=arguments,n=o.length,g=o[n-1],m=document,c=null;var d=/^<([a-z]+|h[1-5])>$/i;var e=/^<([a-z]+|h[1-5])(\s+[^>]+)?>/i;if(n>1&&typeof g!="string"&&g.body){o=Array.prototype.slice.apply(o,[0,n-1]);m=g}for(var f=0;f-1){if(d.test(c)){c=m.createElement(RegExp.$1)}else{if(e.test(c)){var b={thead:"table",tbody:"table",tr:"tbody",td:"tr",dt:"dl",dd:"dl",li:"ul",legend:"fieldset",option:"select"};var r=RegExp.$1.toLowerCase();var q=jindo._createEle(b[r],c,m);for(var f=0,a=q.length;f1?h:(h[0]||null)};jindo._createEle=function(g,f,a,e){var c="R"+new Date().getTime()+parseInt(Math.random()*100000,10);var d=a.createElement("div");switch(g){case"select":case"table":case"dl":case"ul":case"fieldset":d.innerHTML="<"+g+' class="'+c+'">'+f+"";break;case"thead":case"tbody":case"col":d.innerHTML="<"+g+' class="'+c+'">'+f+"
    ";break;case"tr":d.innerHTML=''+f+"
    ";break;default:d.innerHTML='
    '+f+"
    ";break}var b;for(b=d.firstChild;b;b=b.firstChild){if(b.className==c){break}}return e?b:b.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[^\(]*\(([^\)]*)[\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(b){if(typeof b=="undefined"||b===null||!b.extend){throw new Error("extend시 슈퍼 클래스는 Class여야 합니다.")}this.prototype._$superClass=b;for(var a in b){if(b.hasOwnProperty(a)){if(a=="prototype"){continue}this[a]=b[a]}}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(tag);var elsLen=els.length;var pattern=new RegExp("(^|\\s)"+searchClass+"(\\s|$)");for(i=0,j=0;i -1)';case"^=":return"("+sVar+" && "+sVar+".indexOf("+sVal+") == 0)";case"$=":return"("+sVar+" && "+sVar+".substr("+sVar+".length - "+oExpr.val.length+") == "+sVal+")";case"*=":return"("+sVar+" && "+sVar+".indexOf("+sVal+") > -1)";case"!=":return"("+sVar+" != "+sVal+")";case"=":return"("+sVar+" == "+sVal+")"}return"("+sVar+")"};var getNodeIndex=function(oEl){var nUID=getUID(oEl);var nIndex=oNodeIndexes[nUID]||0;if(nIndex==0){for(var oSib=(oEl.parentNode||oEl._IE5_parentNode).firstChild;oSib;oSib=oSib.nextSibling){if(oSib.nodeType!=1){continue}nIndex++;setNodeIndex(oSib,nIndex)}nIndex=oNodeIndexes[nUID]}return nIndex};var oNodeIndexes={};var setNodeIndex=function(oEl,nIndex){var nUID=getUID(oEl);oNodeIndexes[nUID]=nIndex};var unsetNodeIndexes=function(){setTimeout(function(){oNodeIndexes={}},0)};var oPseudoes_dontShrink={contains:function(oEl,sOption){return(oEl.innerText||oEl.textContent||"").indexOf(sOption)>-1},"last-child":function(oEl,sOption){for(oEl=oEl.nextSibling;oEl;oEl=oEl.nextSibling){if(oEl.nodeType==1){return false}}return true},"first-child":function(oEl,sOption){for(oEl=oEl.previousSibling;oEl;oEl=oEl.previousSibling){if(oEl.nodeType==1){return false}}return true},"only-child":function(oEl,sOption){var nChild=0;for(var oChild=(oEl.parentNode||oEl._IE5_parentNode).firstChild;oChild;oChild=oChild.nextSibling){if(oChild.nodeType==1){nChild++}if(nChild>1){return false}}return nChild?true:false},empty:function(oEl,_){return oEl.firstChild?false:true},"nth-child":function(oEl,nMul,nAdd){var nIndex=getNodeIndex(oEl);return nIndex%nMul==nAdd},"nth-last-child":function(oEl,nMul,nAdd){var oLast=(oEl.parentNode||oEl._IE5_parentNode).lastChild;for(;oLast;oLast=oLast.previousSibling){if(oLast.nodeType==1){break}}var nTotal=getNodeIndex(oLast);var nIndex=getNodeIndex(oEl);var nLastIndex=nTotal-nIndex+1;return nLastIndex%nMul==nAdd},checked:function(oEl){return !!oEl.checked},selected:function(oEl){return !!oEl.selected},enabled:function(oEl){return !oEl.disabled},disabled:function(oEl){return !!oEl.disabled}};var getExpression=function(sBody){var oRet={defines:"",returns:"true"};var sBody=restoreKeys(sBody,true);var aExprs=[];var aDefineCode=[],aReturnCode=[];var sId,sTagName;var sBody=sBody.replace(/:([\w-]+)(\(([^)]*)\))?/g,function(_1,sType,_2,sOption){switch(sType){case"not":var oInner=getExpression(sOption);var sFuncDefines=oInner.defines;var sFuncReturns=oInner.returnsID+oInner.returnsTAG+oInner.returns;aReturnCode.push("!(function() { "+sFuncDefines+" return "+sFuncReturns+" })()");break;case"nth-child":case"nth-last-child":sOption=restoreString(sOption);if(sOption=="even"){sOption="2n"}else{if(sOption=="odd"){sOption="2n+1"}}var nMul,nAdd;var matchstr=sOption.match(/([0-9]*)n([+-][0-9]+)*/);if(matchstr){nMul=matchstr[1]||1;nAdd=matchstr[2]||0}else{nMul=Infinity;nAdd=parseInt(sOption,10)}aReturnCode.push("oPseudoes_dontShrink["+wrapQuot(sType)+"](oEl, "+nMul+", "+nAdd+")");break;case"first-of-type":case"last-of-type":sType=(sType=="first-of-type"?"nth-of-type":"nth-last-of-type");sOption=1;case"nth-of-type":case"nth-last-of-type":sOption=restoreString(sOption);if(sOption=="even"){sOption="2n"}else{if(sOption=="odd"){sOption="2n+1"}}var nMul,nAdd;if(/([0-9]*)n([+-][0-9]+)*/.test(sOption)){nMul=parseInt(RegExp.$1,10)||1;nAdd=parseInt(RegExp.$2,20)||0}else{nMul=Infinity;nAdd=parseInt(sOption,10)}oRet.nth=[nMul,nAdd,sType];break;default:sOption=sOption?restoreString(sOption):"";aReturnCode.push("oPseudoes_dontShrink["+wrapQuot(sType)+"](oEl, "+wrapQuot(sOption)+")");break}return""});var sBody=sBody.replace(/\[(@?[\w-]+)(([!^~$*]?=)([^\]]*))?\]/g,function(_1,sKey,_2,sOp,sVal){sKey=restoreString(sKey);sVal=restoreString(sVal);if(sKey=="checked"||sKey=="disabled"||sKey=="enabled"||sKey=="readonly"||sKey=="selected"){if(!sVal){sOp="=";sVal="true"}}aExprs.push({key:sKey,op:sOp,val:sVal});return""});var sClassName=null;var sBody=sBody.replace(/\.([\w-]+)/g,function(_,sClass){aExprs.push({key:"class",op:"~=",val:sClass});if(!sClassName){sClassName=sClass}return""});var sBody=sBody.replace(/#([\w-]+)/g,function(_,sIdValue){if(bXMLDocument){aExprs.push({key:"id",op:"=",val:sIdValue})}else{sId=sIdValue}return""});sTagName=sBody=="*"?"":sBody;var oVars={};for(var i=0,oExpr;oExpr=aExprs[i];i++){var sKey=oExpr.key;if(!oVars[sKey]){aDefineCode.push(getDefineCode(sKey))}aReturnCode.unshift(getReturnCode(oExpr));oVars[sKey]=true}if(aDefineCode.length){oRet.defines="var "+aDefineCode.join(",")+";"}if(aReturnCode.length){oRet.returns=aReturnCode.join("&&")}oRet.quotID=sId?wrapQuot(sId):"";oRet.quotTAG=sTagName?wrapQuot(bXMLDocument?sTagName:sTagName.toUpperCase()):"";if(bSupportByClassName){oRet.quotCLASS=sClassName?wrapQuot(sClassName):""}oRet.returnsID=sId?"oEl.id == "+oRet.quotID+" && ":"";oRet.returnsTAG=sTagName&&sTagName!="*"?"oEl.tagName == "+oRet.quotTAG+" && ":"";return oRet};var splitToParts=function(sQuery){var aParts=[];var sRel=" ";var sBody=sQuery.replace(/(.*?)\s*(!?[+>~ ]|!)\s*/g,function(_,sBody,sRelative){if(sBody){aParts.push({rel:sRel,body:sBody})}sRel=sRelative.replace(/\s+$/g,"")||" ";return""});if(sBody){aParts.push({rel:sRel,body:sBody})}return aParts};var isNth_dontShrink=function(oEl,sTagName,nMul,nAdd,sDirection){var nIndex=0;for(var oSib=oEl;oSib;oSib=oSib[sDirection]){if(oSib.nodeType==1&&(!sTagName||sTagName==oSib.tagName)){nIndex++}}return nIndex%nMul==nAdd};var compileParts=function(aParts){var aPartExprs=[];for(var i=0,oPart;oPart=aParts[i];i++){aPartExprs.push(getExpression(oPart.body))}var sFunc="";var sPushCode="aRet.push(oEl); if (oOptions.single) { bStop = true; }";for(var i=aParts.length-1,oPart;oPart=aParts[i];i--){var oExpr=aPartExprs[i];var sPush=(debugOption.callback?"cost++;":"")+oExpr.defines;var sReturn="if (bStop) {"+(i==0?"return aRet;":"return;")+"}";if(oExpr.returns=="true"){sPush+=(sFunc?sFunc+"(oEl);":sPushCode)+sReturn}else{sPush+="if ("+oExpr.returns+") {"+(sFunc?sFunc+"(oEl);":sPushCode)+sReturn+"}"}var sCheckTag="oEl.nodeType != 1";if(oExpr.quotTAG){sCheckTag="oEl.tagName != "+oExpr.quotTAG}var sTmpFunc="(function(oBase"+(i==0?", oOptions) { var bStop = false; var aRet = [];":") {");if(oExpr.nth){sPush="if (isNth_dontShrink(oEl, "+(oExpr.quotTAG?oExpr.quotTAG:"false")+","+oExpr.nth[0]+","+oExpr.nth[1]+',"'+(oExpr.nth[2]=="nth-of-type"?"previousSibling":"nextSibling")+'")) {'+sPush+"}"}switch(oPart.rel){case" ":if(oExpr.quotID){sTmpFunc+="var oEl = oDocument_dontShrink.getElementById("+oExpr.quotID+");var oCandi = oEl;for (; oCandi; oCandi = (oCandi.parentNode || oCandi._IE5_parentNode)) {if (oCandi == oBase) break;}if (!oCandi || "+sCheckTag+") return aRet;"+sPush}else{sTmpFunc+="var aCandi = getChilds_dontShrink(oBase, "+(oExpr.quotTAG||'"*"')+", "+(oExpr.quotCLASS||"null")+");for (var i = 0, oEl; oEl = aCandi[i]; i++) {"+(oExpr.quotCLASS?"if ("+sCheckTag+") continue;":"")+sPush+"}"}break;case">":if(oExpr.quotID){sTmpFunc+="var oEl = oDocument_dontShrink.getElementById("+oExpr.quotID+");if ((oEl.parentNode || oEl._IE5_parentNode) != oBase || "+sCheckTag+") return aRet;"+sPush}else{sTmpFunc+="for (var oEl = oBase.firstChild; oEl; oEl = oEl.nextSibling) {if ("+sCheckTag+") { continue; }"+sPush+"}"}break;case"+":if(oExpr.quotID){sTmpFunc+="var oEl = oDocument_dontShrink.getElementById("+oExpr.quotID+");var oPrev;for (oPrev = oEl.previousSibling; oPrev; oPrev = oPrev.previousSibling) { if (oPrev.nodeType == 1) break; }if (!oPrev || oPrev != oBase || "+sCheckTag+") return aRet;"+sPush}else{sTmpFunc+="for (var oEl = oBase.nextSibling; oEl; oEl = oEl.nextSibling) { if (oEl.nodeType == 1) break; }if (!oEl || "+sCheckTag+") { return aRet; }"+sPush}break;case"~":if(oExpr.quotID){sTmpFunc+="var oEl = oDocument_dontShrink.getElementById("+oExpr.quotID+");var oCandi = oEl;for (; oCandi; oCandi = oCandi.previousSibling) { if (oCandi == oBase) break; }if (!oCandi || "+sCheckTag+") return aRet;"+sPush}else{sTmpFunc+="for (var oEl = oBase.nextSibling; oEl; oEl = oEl.nextSibling) {if ("+sCheckTag+") { continue; }if (!markElement_dontShrink(oEl, "+i+")) { break; }"+sPush+"}"}break;case"!":if(oExpr.quotID){sTmpFunc+="var oEl = oDocument_dontShrink.getElementById("+oExpr.quotID+");for (; oBase; oBase = (oBase.parentNode || oBase._IE5_parentNode)) { if (oBase == oEl) break; }if (!oBase || "+sCheckTag+") return aRet;"+sPush}else{sTmpFunc+="for (var oEl = (oBase.parentNode || oBase._IE5_parentNode); oEl; oEl = (oEl.parentNode || oEl._IE5_parentNode)) {if ("+sCheckTag+") { continue; }"+sPush+"}"}break;case"!>":if(oExpr.quotID){sTmpFunc+="var oEl = oDocument_dontShrink.getElementById("+oExpr.quotID+");var oRel = (oBase.parentNode || oBase._IE5_parentNode);if (!oRel || oEl != oRel || ("+sCheckTag+")) return aRet;"+sPush}else{sTmpFunc+="var oEl = (oBase.parentNode || oBase._IE5_parentNode);if (!oEl || "+sCheckTag+") { return aRet; }"+sPush}break;case"!+":if(oExpr.quotID){sTmpFunc+="var oEl = oDocument_dontShrink.getElementById("+oExpr.quotID+");var oRel;for (oRel = oBase.previousSibling; oRel; oRel = oRel.previousSibling) { if (oRel.nodeType == 1) break; }if (!oRel || oEl != oRel || ("+sCheckTag+")) return aRet;"+sPush}else{sTmpFunc+="for (oEl = oBase.previousSibling; oEl; oEl = oEl.previousSibling) { if (oEl.nodeType == 1) break; }if (!oEl || "+sCheckTag+") { return aRet; }"+sPush}break;case"!~":if(oExpr.quotID){sTmpFunc+="var oEl = oDocument_dontShrink.getElementById("+oExpr.quotID+");var oRel;for (oRel = oBase.previousSibling; oRel; oRel = oRel.previousSibling) { if (oRel.nodeType != 1) { continue; }if (oRel == oEl) { break; }}if (!oRel || ("+sCheckTag+")) return aRet;"+sPush}else{sTmpFunc+="for (oEl = oBase.previousSibling; oEl; oEl = oEl.previousSibling) {if ("+sCheckTag+") { continue; }if (!markElement_dontShrink(oEl, "+i+")) { break; }"+sPush+"}"}break}sTmpFunc+=(i==0?"return aRet;":"")+"})";sFunc=sTmpFunc}eval("var fpCompiled = "+sFunc+";");return fpCompiled};var parseQuery=function(sQuery){var sCacheKey=sQuery;var fpSelf=arguments.callee;var fpFunction=fpSelf._cache[sCacheKey];if(!fpFunction){sQuery=backupKeys(sQuery);var aParts=splitToParts(sQuery);fpFunction=fpSelf._cache[sCacheKey]=compileParts(aParts);fpFunction.depth=aParts.length}return fpFunction};parseQuery._cache={};var parseTestQuery=function(sQuery){var fpSelf=arguments.callee;var aSplitQuery=backupKeys(sQuery).split(/\s*,\s*/);var aResult=[];var nLen=aSplitQuery.length;var aFunc=[];for(var i=0;i"+sTag+":nth-of-type("+sTh+")"});return old_cssquery(sXPath,oParent)};cssquery.debug=function(fpCallback,nRepeat){debugOption.callback=fpCallback;debugOption.repeat=nRepeat||1};cssquery.safeHTML=function(bFlag){var bIE=/MSIE/.test(window.navigator.userAgent);if(arguments.length>0){safeHTML=bFlag&&bIE}return safeHTML||!bIE};cssquery.version=sVersion;cssquery.release=function(){if(/MSIE/.test(window.navigator.userAgent)){delete validUID;validUID={};if(bUseResultCache){cssquery.clearCache()}}};cssquery._getCacheInfo=function(){return{uidCache:validUID,eleCache:oResultCache}};cssquery._resetUID=function(){UID=0};cssquery.extreme=function(bExtreme){if(arguments.length==0){bExtreme=true}bExtremeMode=bExtreme};return cssquery})();jindo.$Agent=function(){var a=arguments.callee;var b=a._cached;if(b){return b}if(!(this instanceof a)){return new a}if(!b){a._cached=this}this._navigator=navigator;this._dm=document.documentMode};jindo.$Agent.prototype.navigator=function(){var b={},h=-1,c=-1,n=this._navigator.userAgent,m=this._navigator.vendor||"",d=this._dm;function g(f,e){return((e||"").indexOf(f)>-1)}b.getName=function(){var e="";for(x in b){if(typeof b[x]=="boolean"&&b[x]&&b.hasOwnProperty(x)){e=x}}return e};b.edge=g("Edge",n);b.webkit=!b.edge&&g("WebKit",n);b.opera=(window.opera!==undefined)||g("Opera",n)||g("OPR",n);b.ie=!b.opera&&(g("MSIE",n)||g("Trident",n));b.chrome=!b.edge&&b.webkit&&!b.opera&&g("Chrome",n)||g("CriOS",n);b.safari=!b.edge&&b.webkit&&!b.chrome&&!b.opera&&g("Apple",m);b.firefox=g("Firefox",n);b.mozilla=!b.edge&&g("Gecko",n)&&!b.safari&&!b.chrome&&!b.firefox&&!b.ie;b.camino=g("Camino",m);b.netscape=g("Netscape",n);b.omniweb=g("OmniWeb",n);b.icab=g("iCab",m);b.konqueror=g("KDE",m);b.mobile=!b.edge&&(g("Mobile",n)||g("Android",n)||g("Nokia",n)||g("webOS",n)||g("Opera Mini",n)||g("Opera Mobile",n)||g("BlackBerry",n)||(g("Windows",n)&&g("PPC",n))||g("Smartphone",n)||g("IEMobile",n))&&!(g("iPad",n)||g("Tablet",n));b.msafari=!b.edge&&((!g("IEMobile",n)&&g("Mobile",n))||(g("iPad",n)&&g("Safari",n)))&&!b.chrome&&!b.opera&&!b.firefox;b.mopera=g("Opera Mini",n);b.mie=g("PPC",n)||g("Smartphone",n)||g("IEMobile",n);try{if(b.ie){if(d>0){h=d;if(n.match(/(?:Trident)\/([0-9.]+)/)){var a=parseFloat(RegExp.$1,10);if(a>3){c=a+4}}else{c=h}}else{c=h=n.match(/(?:MSIE) ([0-9.]+)/)[1]}}else{if(b.edge){h=n.match(/(?:Edge)\/([\d.]+)/)[1]}else{if(b.safari||b.msafari){h=parseFloat(n.match(/Safari\/([0-9.]+)/)[1]);if(h==100){h=1.1}else{if(n.match(/Version\/([0-9.]+)/)){h=RegExp.$1}else{h=[1,1.2,-1,1.3,2,3][Math.floor(h/100)]}}}else{if(b.mopera){h=n.match(/(?:Opera\sMini)\/([0-9.]+)/)[1]}else{if(b.firefox||b.opera||b.omniweb){h=n.match(/(?:Firefox|Opera|OmniWeb)\/([0-9.]+)/)[1]}else{if(b.mozilla){h=n.match(/rv:([0-9.]+)/)[1]}else{if(b.icab){h=n.match(/iCab[ \/]([0-9.]+)/)[1]}else{if(b.chrome){h=n.match(/Chrome[ \/]([0-9.]+)/)[1]}}}}}}}}b.version=parseFloat(h);b.nativeVersion=parseFloat(c);if(isNaN(b.version)){b.version=-1}}catch(l){b.version=-1}this.navigator=function(){return b};return b};jindo.$Agent.prototype.os=function(){var d=new Object;var a=this._navigator.userAgent;var c=this._navigator.platform;var b=function(f,e){return(e.indexOf(f)>-1)};d.getName=function(){var e="";for(x in d){if(typeof d[x]=="boolean"&&d[x]&&d.hasOwnProperty(x)){e=x}}return e};d.win=b("Win",c);d.mac=b("Mac",c);d.linux=b("Linux",c);d.win2000=d.win&&(b("NT 5.0",a)||b("2000",a));d.winxp=d.win&&b("NT 5.1",a);d.xpsp2=d.winxp&&b("SV1",a);d.vista=d.win&&b("NT 6.0",a);d.win7=d.win&&b("NT 6.1",a);d.ipad=b("iPad",a);d.iphone=b("iPhone",a)&&!d.ipad;d.android=b("Android",a);d.nokia=b("Nokia",a);d.webos=b("webOS",a);d.blackberry=b("BlackBerry",a);d.mwin=b("PPC",a)||b("Smartphone",a)||b("IEMobile",a);this.os=function(){return d};return d};jindo.$Agent.prototype.flash=function(){var h=new Object;var g=this._navigator.plugins;var a=this._navigator.mimeTypes;var c=null;h.installed=false;h.version=-1;if(typeof g!="undefined"&&g.length){c=g["Shockwave Flash"];if(c){h.installed=true;if(c.description){h.version=parseFloat(c.description.match(/[0-9.]+/)[0])}}if(g["Shockwave Flash 2.0"]){h.installed=true;h.version=2}}else{if(typeof a!="undefined"&&a.length){c=a["application/x-shockwave-flash"];h.installed=(c&&c.enabledPlugin)}else{for(var b=10;b>1;b--){try{c=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+b);h.installed=true;h.version=b;break}catch(d){}}}}this.flash=function(){return h};this.info=this.flash;return h};jindo.$Agent.prototype.silverlight=function(){var d=new Object;var c=this._navigator.plugins;var a=null;d.installed=false;d.version=-1;if(typeof c!="undefined"&&c.length){a=c["Silverlight Plug-In"];if(a){d.installed=true;d.version=parseInt(a.description.split(".")[0],10);if(a.description=="1.0.30226.2"){d.version=2}}}else{try{a=new ActiveXObject("AgControl.AgControl");d.installed=true;if(a.isVersionSupported("3.0")){d.version=3}else{if(a.isVersionSupported("2.0")){d.version=2}else{if(a.isVersionSupported("1.0")){d.version=1}}}}catch(b){}}this.silverlight=function(){return d};return d};jindo.$A=function(c){var a=arguments.callee;if(typeof c=="undefined"||c==null){c=[]}if(c instanceof a){return c}if(!(this instanceof a)){return new a(c)}this._array=[];if(c.constructor!=String){this._array=[];for(var b=0;b-1)};jindo.$A.prototype.indexOf=function(a){if(typeof this._array.indexOf!="undefined"){jindo.$A.prototype.indexOf=function(b){return this._array.indexOf(b)}}else{jindo.$A.prototype.indexOf=function(b){for(var c=0;cMath.random()?1:-1});return this};jindo.$A.prototype.reverse=function(){this._array.reverse();return this};jindo.$A.prototype.empty=function(){return this.length(0)};jindo.$A.Break=function(){if(!(this instanceof arguments.callee)){throw new arguments.callee}};jindo.$A.Continue=function(){if(!(this instanceof arguments.callee)){throw new arguments.callee}};jindo.$A.prototype.map=function(b,a){if(typeof this._array.map=="function"){jindo.$A.prototype.map=function(m,d){var c=this._array;var h=this.constructor.Break;var n=this.constructor.Continue;function g(o,p,f){try{return m.call(d,o,p,f)}catch(q){if(q instanceof n){return o}else{throw q}}}try{this._array=this._array.map(g)}catch(l){if(!(l instanceof h)){throw l}}return this}}else{jindo.$A.prototype.map=function(p,g){var d=this._array;var o=[];var m=this.constructor.Break;var n=this.constructor.Continue;function h(q,r,f){try{return p.call(g,q,r,f)}catch(s){if(s instanceof n){return q}else{throw s}}}for(var c=0;c=c.length){c[f]=e[g]}}this._array=c;return this};jindo.$Ajax=function(c,e){var a=arguments.callee;if(!(this instanceof a)){return new a(c,e)}function b(){var g=window.XMLHttpRequest&&new XMLHttpRequest();if(this._checkCORSUrl(this._url)){if(g&&"withCredentials" in g){return g}else{if(window.XDomainRequest){this._bXDomainRequest=true;return new XDomainRequest()}}}else{if(g){return g}else{if(window.ActiveXObject){try{return new ActiveXObject("MSXML2.XMLHTTP")}catch(f){return new ActiveXObject("Microsoft.XMLHTTP")}}}}return null}this._status=0;this._url=c;this._options=new Object;this._headers=new Object;this._options={type:"xhr",method:"post",proxy:"",timeout:0,onload:function(f){},onerror:null,ontimeout:function(f){},jsonp_charset:"utf-8",callbackid:"",callbackname:"",sendheader:true,async:true,decode:true,postBody:false,withCredentials:false};this.option(e);if(jindo.$Ajax.CONFIG){this.option(jindo.$Ajax.CONFIG)}var d=this._options;d.type=d.type.toLowerCase();d.method=d.method.toLowerCase();if(typeof window.__jindo2_callback=="undefined"){window.__jindo2_callback=new Array()}switch(d.type){case"put":case"delete":case"get":case"post":d.method=d.type;d.type="xhr";case"xhr":this._request=b.call(this);this._checkCORS(this._url,d.type);break;case"flash":if(!jindo.$Ajax.SWFRequest){throw Error("Require jindo.$Ajax.SWFRequest")}this._request=new jindo.$Ajax.SWFRequest(jindo.$Fn(this.option,this).bind());break;case"jsonp":if(!jindo.$Ajax.JSONPRequest){throw Error("Require jindo.$Ajax.JSONPRequest")}d.method="get";this._request=new jindo.$Ajax.JSONPRequest(jindo.$Fn(this.option,this).bind());break;case"iframe":if(!jindo.$Ajax.FrameRequest){throw Error("Require jindo.$Ajax.FrameRequest")}this._request=new jindo.$Ajax.FrameRequest(jindo.$Fn(this.option,this).bind());break}};jindo.$Ajax.prototype._checkCORSUrl=function(a){return/^http/.test(a)&&!new RegExp("^http://"+window.location.host,"i").test(a)};jindo.$Ajax.prototype._checkCORS=function(a,b){this._bCORS=false;if(this._checkCORSUrl(a)&&b==="xhr"){if(this._bXDomainRequest||"withCredentials" in this._request){this._bCORS=true}else{throw Error("This browser does not support CORS.")}}};jindo.$Ajax.prototype._onload=(function(a){if(a){return function(){var b=this._request.status;var c=this._request.readyState==4&&(b==200||b==0)||(this._bXDomainRequest&&!!this._request.responseText);var d;if(this._request.readyState==4||this._bXDomainRequest){try{if(this._request.status!=200&&typeof this._options.onerror=="function"){if(!this._request.status==0){this._options.onerror(jindo.$Ajax.Response(this._request))}}else{if(!this._is_abort){d=this._options.onload(jindo.$Ajax.Response(this._request))}}}finally{if(typeof this._oncompleted=="function"){this._oncompleted(c,d)}if(this._options.type=="xhr"){this.abort();try{delete this._request.onload}catch(f){this._request.onload=undefined}}this._request.onreadystatechange&&delete this._request.onreadystatechange}}}}else{return function(){var b=this._request.readyState==4&&this._request.status==200;var c;if(this._request.readyState==4){try{if(this._request.status!=200&&typeof this._options.onerror=="function"){this._options.onerror(jindo.$Ajax.Response(this._request))}else{c=this._options.onload(jindo.$Ajax.Response(this._request))}}finally{this._status--;if(typeof this._oncompleted=="function"){this._oncompleted(b,c)}}}}}})(/MSIE/.test(window.navigator.userAgent));jindo.$Ajax.prototype.request=function(c){this._status++;var u=this;var m=this._request;var d=this._options;var h,r,p=[],h="";var e=null;var b=this._url;this._is_abort=false;var l=d.type.toUpperCase();var g=d.method.toUpperCase();if(d.postBody&&l=="XHR"&&g!="GET"){if(typeof c=="string"){h=c}else{h=jindo.$Json(c).toString()}}else{if(typeof c=="undefined"||!c){h=null}else{for(var f in c){if(c.hasOwnProperty(f)){r=c[f];if(typeof r=="function"){r=r()}if(r instanceof Array||r instanceof jindo.$A){jindo.$A(r).forEach(function(t,a,v){p[p.length]=f+"="+encodeURIComponent(t)})}else{p[p.length]=f+"="+encodeURIComponent(r)}}}h=p.join("&")}}if(h&&l=="XHR"&&g=="GET"){if(b.indexOf("?")==-1){b+="?"}else{b+="&"}b+=h;h=null}m.open(g,b,!!d.async);if(d.withCredentials){m.withCredentials=true}if(this._bCORS&&d.sendheader===false){m.setRequestHeader=null}if(l=="XHR"&&g=="GET"&&/MSIE|Trident/.test(window.navigator.userAgent)){m.setRequestHeader&&m.setRequestHeader("If-Modified-Since","Thu, 1 Jan 1970 00:00:00 GMT")}if((l=="XHR"||l=="IFRAME"||(l=="FLASH"&&d.sendheader))&&m.setRequestHeader){if(!this._headers["Content-Type"]){m.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8")}m.setRequestHeader("charset","utf-8");if(!this._bCORS&&!this._headers["X-Requested-With"]){m.setRequestHeader("X-Requested-With","XMLHttpRequest")}for(var o in this._headers){if(this._headers.hasOwnProperty(o)){if(typeof this._headers[o]=="function"){continue}m.setRequestHeader(o,String(this._headers[o]))}}}var n=navigator.userAgent;if(m.addEventListener&&!(n.indexOf("Opera")>-1)&&!(n.indexOf("MSIE")>-1)){if(this._loadFunc){m.removeEventListener("load",this._loadFunc,false)}this._loadFunc=function(a){clearTimeout(e);e=undefined;u._onload(a)};m.addEventListener("load",this._loadFunc,false);m.addEventListener("error",this._loadFunc,false)}else{if(typeof m.onload!="undefined"){m.onload=function(a){if(m.readyState==4&&!u._is_abort){clearTimeout(e);e=undefined;u._onload(a)}};if(this._bXDomainRequest){var s=m.onload;m.onload=function(a){u._request.readyState=4;u._request.status=200;s(a)};m.onerror=function(a){u._request.readyState=4;u._request.status=404;s(a)}}}else{if(window.navigator.userAgent.match(/(?:MSIE) ([0-9.]+)/)[1]==6&&d.async){var q=function(a){if(m.readyState==4&&!u._is_abort){if(e){clearTimeout(e);e=undefined}u._onload(a);clearInterval(u._interval);u._interval=undefined}};this._interval=setInterval(q,300)}else{m.onreadystatechange=function(a){if(m.readyState==4){clearTimeout(e);e=undefined;u._onload(a)}}}}}if(d.timeout>0){if(this._timer){clearTimeout(this._timer)}e=setTimeout(function(){u._is_abort=true;if(u._interval){clearInterval(u._interval);u._interval=undefined}try{m.abort()}catch(a){}d.ontimeout(m);if(typeof u._oncompleted=="function"){u._oncompleted(false)}},d.timeout*1000);this._timer=e}this._test_url=b;m.send(h);return this};jindo.$Ajax.prototype.isIdle=function(){return this._status==0};jindo.$Ajax.prototype.abort=function(){try{if(this._interval){clearInterval(this._interval)}if(this._timer){clearTimeout(this._timer)}this._interval=undefined;this._timer=undefined;this._is_abort=true;this._request.abort()}finally{this._status--}return this};jindo.$Ajax.prototype.option=function(b,c){if(typeof b=="undefined"){return""}if(typeof b=="string"){if(typeof c=="undefined"){return this._options[b]}this._options[b]=c;return this}try{for(var a in b){if(b.hasOwnProperty(a)){this._options[a]=b[a]}}}catch(d){}return this};jindo.$Ajax.prototype.header=function(b,c){if(typeof b=="undefined"){return""}if(typeof b=="string"){if(typeof c=="undefined"){return this._headers[b]}this._headers[b]=c;return this}try{for(var a in b){if(b.hasOwnProperty(a)){this._headers[a]=b[a]}}}catch(d){}return this};jindo.$Ajax.Response=function(a){if(this===jindo.$Ajax){return new jindo.$Ajax.Response(a)}this._response=a};jindo.$Ajax.Response.prototype.xml=function(){return this._response.responseXML};jindo.$Ajax.Response.prototype.text=function(){return this._response.responseText};jindo.$Ajax.Response.prototype.status=function(){return this._response.status};jindo.$Ajax.Response.prototype.readyState=function(){return this._response.readyState};jindo.$Ajax.Response.prototype.json=function(){if(this._response.responseJSON){return this._response.responseJSON}else{if(this._response.responseText){try{return eval("("+this._response.responseText+")")}catch(e){return{}}}}return{}};jindo.$Ajax.Response.prototype.header=function(a){if(typeof a=="string"){return this._response.getResponseHeader(a)}return this._response.getAllResponseHeaders()};jindo.$Ajax.RequestBase=jindo.$Class({_respHeaderString:"",callbackid:"",callbackname:"",responseXML:null,responseJSON:null,responseText:"",status:404,readyState:0,$init:function(a){},onload:function(){},abort:function(){},open:function(){},send:function(){},setRequestHeader:function(a,b){this._headers[a]=b},getResponseHeader:function(a){return this._respHeaders[a]||""},getAllResponseHeaders:function(){return this._respHeaderString},_getCallbackInfo:function(){var b="";if(this.option("callbackid")!=""){var a=0;do{b="_"+this.option("callbackid")+"_"+a;a++}while(window.__jindo2_callback[b])}else{do{b="_"+Math.floor(Math.random()*10000)}while(window.__jindo2_callback[b])}if(this.option("callbackname")==""){this.option("callbackname","_callback")}return{callbackname:this.option("callbackname"),id:b,name:"window.__jindo2_callback."+b}}});jindo.$Ajax.JSONPRequest=jindo.$Class({_headers:{},_respHeaders:{},_script:null,_onerror:null,$init:function(a){this.option=a},_callback:function(b){if(this._onerror){clearTimeout(this._onerror);this._onerror=null}var a=this;this.responseJSON=b;this.onload(this);setTimeout(function(){a.abort()},10)},abort:function(){if(this._script){try{this._script.parentNode.removeChild(this._script)}catch(a){}}},open:function(b,a){this.responseJSON=null;this._url=a},send:function(e){var c=this;var f=this._getCallbackInfo();var b=document.getElementsByTagName("head")[0];this._script=jindo.$(" + + + + + + + + + + + + + \ No newline at end of file diff --git a/webedit/photo_uploader/popup/js/basic.js b/webedit/photo_uploader/popup/js/basic.js new file mode 100644 index 0000000..7f0121b --- /dev/null +++ b/webedit/photo_uploader/popup/js/basic.js @@ -0,0 +1,346 @@ +jQuery.fn.bindAll = function(options) { + var $this = this; + jQuery.each(options, function(key, val){ + $this.bind(key, val); + }); + return this; +} + +jQuery(function ($) { + 'use strict'; + + var ed_nonce = ''; + + if( !!opener && !!opener.window && !!opener.window.nhn ){ + ed_nonce = opener.window.nhn.husky.SE2M_Configuration.SE2M_Accessibility.ed_nonce; + } + + // Change this to the location of your server-side upload handler: + var gnu = { + url : './php/?_nonce='+ed_nonce, + container_el : 'body', + dreg_area : '#drag_area', + dreg_area_list : '#drag_area > ul', + progress_bar : '#progress .progress-bar', + filter : /^(image\/bmp|image\/gif|image\/jpg|image\/jpeg|image\/png)$/i, + files : [], + file_limit : 10, //한번에 올릴수 파일갯수 제한 + imgw : 100, + imgh : 70, + file_api_support : !!(window.ProgressEvent && window.FileReader), + $elTextGuide : $("#guide_text"), + init : function(){ + $(this.dreg_area_list).sortable({ + 'cursor':'pointer', + 'placeholder':'placeholder' + }); + $(this.dreg_area_list).disableSelection(); + if( this.file_api_support ) this.$elTextGuide.removeClass("hidebg").addClass("showbg"); + }, + file_push : function(file){ + var othis = this, + last = othis.files.length; + + othis.files.push(file); + }, + _readymodebg : function(){ + if( this.file_api_support ) { + var sClass = this.$elTextGuide.attr('class'); + if(sClass.indexOf('hidebg') > 0){ + this.$elTextGuide.removeClass('hidebg'); + this.$elTextGuide.addClass('showbg'); + } + } + }, + _startmodebg : function(){ + if( this.file_api_support ) { + var sClass = this.$elTextGuide.attr('class'); + if(sClass.indexOf('hidebg') < 0){ + this.$elTextGuide.removeClass('showbg'); + this.$elTextGuide.addClass('hidebg'); + } + } + }, + _delete : function(e){ + e.preventDefault(); + var othis = gnu, + $button = $(e.currentTarget), + delete_url = $button.attr("data-delete"); + if( delete_url ){ + $.ajax({ + url: othis.url+"&del=1&file="+ delete_url + }).done(function (result) { + }); + } + $button.parents('li.sort_list').fadeOut(300, function(){ + $(this).remove(); + var $dreg_area = $(othis.dreg_area_list); + $dreg_area.sortable('refresh'); + if( !$dreg_area.children('li').length ) othis._readymodebg(); + }); + }, + _add : function(e, data, preload){ + var othis = this; + othis._startmodebg(); + data.context = $('
  • ').addClass("sort_list").appendTo(this.dreg_area_list); + $.each(data.files, function (index, file) { + if ( !preload && !othis.filter.test(file.type)) { + data.context.remove(); + alert('이미지만 허용합니다.'); + return true; + } + var node = $('
    ') + .append($('').text(file.name)) + .append($('').addClass("delete_img").attr({"data-delete":file.name,"data-url":file.url}).html("삭제")), + $img = "", + size_text = ''; + + if ( preload && preload != 'swfupload' ){ + var ret = othis.get_ratio( file.width, file.height ), + size_text = file.width+" x "+file.height; + $img = ""; + + } + if (!index) { + node + .prepend('
    ') + .prepend($img); + if(size_text){ + node.append('
    ') + .append($('').text(size_text)) + } + } + node.appendTo(data.context); + node.find(".delete_img").on("click", othis._delete); + }); + $(othis.dreg_area_list).sortable('refresh'); + }, + get_file_all : function(){ + var othis = this, + oDate = new Date(); + $.ajax({ + // Uncomment the following to send cross-domain cookies: + //xhrFields: {withCredentials: true}, + //url: $('#fileupload').fileupload('option', 'url'), + url: this.url+"&t="+ oDate.getTime(), + dataType: 'json', + context: $('#fileupload')[0] + }).always(function () { + //$(this).removeClass('fileupload-processing'); + }).done(function (result) { + $.each(result.files, function (index, data) { + var tmp = { files : [] }; + tmp.files[0] = data; + othis._add( $.Event('add'), tmp, 'preload' ); + }); + }); + }, + _processalways : function(e, data){ + var index = data.index, + file = data.files[index], + node = $(data.context.children()[index]); + if (file.error) { + node + .append('
    ') + .append($('').text(file.error)); + } + if (index + 1 === data.files.length) { + data.context.find('button') + .text('Upload') + .prop('disabled', !!data.files.error); + } + }, + obj_to_arr : function(obj){ + var array = $.map(obj, function(value, index) { + return [value]; + }); + return array; + }, + _done : function(e, data){ + var othis = this; + $.each(data.result.files, function (index, file) { + if (file.url && !file.error) { + var ret = othis.get_ratio( file.width, file.height ), + node = $(data.context.children()[index]), + size_text = file.width+" x "+file.height, + //$img = "", + link = $('') + .attr('target', '_blank') + .prop('href', file.url); + node + //.wrap(link) + .append('
    ') + .append($('').text(size_text)) + .find("img.pre_thumb").attr({"src":file.url,"width":ret['width'],"height":ret['height']}) + .end().find(".delete_img").attr({"data-delete":file.name,"data-url":file.url}); + } else if (file.error) { + var error = $('').text(file.error); + $(data.context.children()[index]) + .append('
    ') + .append(error); + } + othis.file_push(file); + }); + }, + get_ratio : function(width, height){ + var ratio = 0, + ret_img = []; + if( !width || !height ){ + ret_img['width'] = this.imgw; + ret_img['height'] = this.imgh; + return ret_img; + } + if(width > this.imgw){ + ratio = this.imgw / width; + height = height * ratio; + width = this.imgw; + } + if( height > this.imgh ){ + ratio = this.imgh / height; + width = width * ratio; + height = this.imgh; + } + ret_img['width'] = parseInt(width); + ret_img['height'] = parseInt(height); + return ret_img; + }, + setPhotoToEditor : function(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으로 ) + //opener.nhn.husky.PopUpManager.setCallback(window, 'PASTE_HTML', [oFileInfo]); + } + } + } + + $('#fileupload').fileupload({ + url: gnu.url, + dataType: 'json', + container_el: gnu.container_el, + dropZone: $(gnu.dreg_area), + autoUpload: true, + sequentialUploads: true, + acceptFileTypes: /(\.|\/)(gif|jpe?g|bmp|png)$/i, + // Enable image resizing, except for Android and Opera, + // which actually support image resizing, but fail to + // send Blob objects via XHR requests: + disableImageResize: true, + limit_filesLength : gnu.file_limit + }).on('fileuploadadd', function (e, data) { + gnu._add(e, data); + }).on('fileuploadprocessalways', function (e, data) { + gnu._processalways(e, data); + }).on('fileuploaddone', function (e, data) { + + gnu._done( e, data ); + + }).on('fileuploadfail', function (e, data) { + $.each(data.files, function (index, file) { + var error = $('').text('File upload failed.'); + $(data.context.children()[index]) + .append('
    ') + .append(error); + }); + }).prop('disabled', !$.support.fileInput) + .parent().addClass($.support.fileInput ? undefined : 'disabled'); + + gnu.init(); + + var listeners = { + data : {}, + log : false, + swfuploadLoaded: function(event){ + if(this.log) $('.log', this).append('
  • Loaded
  • '); + }, + fileQueued: function(event, file){ + if(this.log) $('.log', this).append('
  • File queued - '+file.name+'
  • '); + // start the upload once it is queued + // but only if this queue is not disabled + if (!$('input[name=disabled]:checked', this).length) { + $(this).swfupload('startUpload'); + } + }, + fileQueueError: function(event, file, errorCode, message){ + switch (errorCode) + { + case -100 : + alert("파일을 "+message+"개 이하로 선택해주세요."); + break; + } + if(this.log) $('.log', this).append('
  • File queue error - '+message+'
  • '); + }, + fileDialogStart: function(event){ + if(this.log) $('.log', this).append('
  • File dialog start
  • '); + }, + fileDialogComplete: function(event, numFilesSelected, numFilesQueued){ + if(this.log) $('.log', this).append('
  • File dialog complete
  • '); + }, + uploadStart: function(event, file){ + listeners.data.files = $.makeArray(file); + gnu._add( event, listeners.data, 'swfupload' ); + if(this.log) $('.log', this).append('
  • Upload start - '+file.name+'
  • '); + }, + uploadProgress: function(event, file, bytesLoaded){ + if(this.log) $('.log', this).append('
  • Upload progress - '+bytesLoaded+'
  • '); + }, + uploadSuccess: function(event, file, serverData){ + listeners.data.result = jQuery.parseJSON( serverData ); + gnu._done( event, listeners.data ); + if(this.log) $('.log', this).append('
  • Upload success - '+file.name+'
  • '); + + }, + uploadComplete: function(event, file){ + if(this.log) $('.log', this).append('
  • Upload complete - '+file.name+'
  • '); + // upload has completed, lets try the next one in the queue + // but only if this queue is not disabled + if (!$('input[name=disabled]:checked', this).length) { + $(this).swfupload('startUpload'); + } + }, + uploadError: function(event, file, errorCode, message){ + if(this.log) $('.log', this).append('
  • Upload error - '+message+'
  • '); + } + }; + + $(gnu.container_el).bindAll(listeners); + /* listeners이벤트 */ + + $(gnu.dreg_area).bind('drop dragover', function (e) { + e.preventDefault(); + if( !gnu.file_api_support && e.type == 'drop' ) alert("브라우저가 드래그 앤 드랍을 지원하지 않습니다."); + }); + $("#all_remove_btn").bind("click", function(e){ + e.preventDefault(); + if( $(gnu.dreg_area_list).children().length ){ + if (confirm("추가한 이미지가 있습니다.정말 삭제 하시겠습니까?")){ + $(gnu.dreg_area_list).find(".delete_img").each( function(i){ + $(this).trigger("click"); + }); + $(gnu.dreg_area_list).sortable('refresh'); + } + } + }); + $("#img_upload_submit").bind("click", function(e){ + e.preventDefault(); + var aResult = [], j = 0; + $(gnu.dreg_area_list).find(".delete_img").each( function(i, f){ + if( !$(this).attr("data-url") ) return true; + aResult[j] = []; + aResult[j]['bNewLine'] = 'true'; + aResult[j]['sAlign'] = ''; + aResult[j]['sFileName'] = $(this).attr("data-delete"); + aResult[j]['sFileURL'] = $(this).attr("data-url"); + j++; + }); + if( aResult.length ){ + gnu.setPhotoToEditor(aResult); + aResult = null; + } + window.close(); + }); + $("#close_w_btn").bind("click", function(e){ + e.preventDefault(); + window.close(); + }); +}); \ No newline at end of file diff --git a/webedit/photo_uploader/popup/js/jquery-1.8.3.min.js b/webedit/photo_uploader/popup/js/jquery-1.8.3.min.js new file mode 100644 index 0000000..3883779 --- /dev/null +++ b/webedit/photo_uploader/popup/js/jquery-1.8.3.min.js @@ -0,0 +1,2 @@ +/*! jQuery v1.8.3 jquery.com | jquery.org/license */ +(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write(""),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t
    a",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="
    t
    ",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="
    ",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;ti.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="
    ",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="

    ",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t0)for(i=r;i=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*\s*$/g,Nt={option:[1,""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X
    ","
    "]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1>");try{for(;r1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]===""&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("
    ").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window); \ No newline at end of file diff --git a/webedit/photo_uploader/popup/js/jquery-ui.min.js b/webedit/photo_uploader/popup/js/jquery-ui.min.js new file mode 100644 index 0000000..192dc36 --- /dev/null +++ b/webedit/photo_uploader/popup/js/jquery-ui.min.js @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.10.1 - 2013-02-15 +* http://jqueryui.com +* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.sortable.js, jquery.ui.effect.js, jquery.ui.accordion.js, jquery.ui.autocomplete.js, jquery.ui.button.js, jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.effect-blind.js, jquery.ui.effect-bounce.js, jquery.ui.effect-clip.js, jquery.ui.effect-drop.js, jquery.ui.effect-explode.js, jquery.ui.effect-fade.js, jquery.ui.effect-fold.js, jquery.ui.effect-highlight.js, jquery.ui.effect-pulsate.js, jquery.ui.effect-scale.js, jquery.ui.effect-shake.js, jquery.ui.effect-slide.js, jquery.ui.effect-transfer.js, jquery.ui.menu.js, jquery.ui.position.js, jquery.ui.progressbar.js, jquery.ui.slider.js, jquery.ui.spinner.js, jquery.ui.tabs.js, jquery.ui.tooltip.js +* Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */ +(function(e,t){function i(t,n){var r,i,o,u=t.nodeName.toLowerCase();return"area"===u?(r=t.parentNode,i=r.name,!t.href||!i||r.nodeName.toLowerCase()!=="map"?!1:(o=e("img[usemap=#"+i+"]")[0],!!o&&s(o))):(/input|select|textarea|button|object/.test(u)?!t.disabled:"a"===u?t.href||n:n)&&s(t)}function s(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return e.css(this,"visibility")==="hidden"}).length}var n=0,r=/^ui-id-\d+$/;e.ui=e.ui||{};if(e.ui.version)return;e.extend(e.ui,{version:"1.10.1",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({_focus:e.fn.focus,focus:function(t,n){return typeof t=="number"?this.each(function(){var r=this;setTimeout(function(){e(r).focus(),n&&n.call(r)},t)}):this._focus.apply(this,arguments)},scrollParent:function(){var t;return e.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?t=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(e.css(this,"position"))&&/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0):t=this.parents().filter(function(){return/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!t.length?e(document):t},zIndex:function(n){if(n!==t)return this.css("zIndex",n);if(this.length){var r=e(this[0]),i,s;while(r.length&&r[0]!==document){i=r.css("position");if(i==="absolute"||i==="relative"||i==="fixed"){s=parseInt(r.css("zIndex"),10);if(!isNaN(s)&&s!==0)return s}r=r.parent()}}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++n)})},removeUniqueId:function(){return this.each(function(){r.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])},focusable:function(t){return i(t,!isNaN(e.attr(t,"tabindex")))},tabbable:function(t){var n=e.attr(t,"tabindex"),r=isNaN(n);return(r||n>=0)&&i(t,!r)}}),e("").outerWidth(1).jquery||e.each(["Width","Height"],function(n,r){function u(t,n,r,s){return e.each(i,function(){n-=parseFloat(e.css(t,"padding"+this))||0,r&&(n-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(n-=parseFloat(e.css(t,"margin"+this))||0)}),n}var i=r==="Width"?["Left","Right"]:["Top","Bottom"],s=r.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+r]=function(n){return n===t?o["inner"+r].call(this):this.each(function(){e(this).css(s,u(this,n)+"px")})},e.fn["outer"+r]=function(t,n){return typeof t!="number"?o["outer"+r].call(this,t):this.each(function(){e(this).css(s,u(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}),e("").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(n){return arguments.length?t.call(this,e.camelCase(n)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.support.selectstart="onselectstart"in document.createElement("div"),e.fn.extend({disableSelection:function(){return this.bind((e.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),e.extend(e.ui,{plugin:{add:function(t,n,r){var i,s=e.ui[t].prototype;for(i in r)s.plugins[i]=s.plugins[i]||[],s.plugins[i].push([n,r[i]])},call:function(e,t,n){var r,i=e.plugins[t];if(!i||!e.element[0].parentNode||e.element[0].parentNode.nodeType===11)return;for(r=0;r0?!0:(t[r]=1,i=t[r]>0,t[r]=0,i)}})})(jQuery),function(e,t){var n=0,r=Array.prototype.slice,i=e.cleanData;e.cleanData=function(t){for(var n=0,r;(r=t[n])!=null;n++)try{e(r).triggerHandler("remove")}catch(s){}i(t)},e.widget=function(t,n,r){var i,s,o,u,a={},f=t.split(".")[0];t=t.split(".")[1],i=f+"-"+t,r||(r=n,n=e.Widget),e.expr[":"][i.toLowerCase()]=function(t){return!!e.data(t,i)},e[f]=e[f]||{},s=e[f][t],o=e[f][t]=function(e,t){if(!this._createWidget)return new o(e,t);arguments.length&&this._createWidget(e,t)},e.extend(o,s,{version:r.version,_proto:e.extend({},r),_childConstructors:[]}),u=new n,u.options=e.widget.extend({},u.options),e.each(r,function(t,r){if(!e.isFunction(r)){a[t]=r;return}a[t]=function(){var e=function(){return n.prototype[t].apply(this,arguments)},i=function(e){return n.prototype[t].apply(this,e)};return function(){var t=this._super,n=this._superApply,s;return this._super=e,this._superApply=i,s=r.apply(this,arguments),this._super=t,this._superApply=n,s}}()}),o.prototype=e.widget.extend(u,{widgetEventPrefix:s?u.widgetEventPrefix:t},a,{constructor:o,namespace:f,widgetName:t,widgetFullName:i}),s?(e.each(s._childConstructors,function(t,n){var r=n.prototype;e.widget(r.namespace+"."+r.widgetName,o,n._proto)}),delete s._childConstructors):n._childConstructors.push(o),e.widget.bridge(t,o)},e.widget.extend=function(n){var i=r.call(arguments,1),s=0,o=i.length,u,a;for(;s",options:{disabled:!1,create:null},_createWidget:function(t,r){r=e(r||this.defaultElement||this)[0],this.element=e(r),this.uuid=n++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this.bindings=e(),this.hoverable=e(),this.focusable=e(),r!==this&&(e.data(r,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===r&&this.destroy()}}),this.document=e(r.style?r.ownerDocument:r.document||r),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(n,r){var i=n,s,o,u;if(arguments.length===0)return e.widget.extend({},this.options);if(typeof n=="string"){i={},s=n.split("."),n=s.shift();if(s.length){o=i[n]=e.widget.extend({},this.options[n]);for(u=0;u=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})}(jQuery),function(e,t){e.widget("ui.draggable",e.ui.mouse,{version:"1.10.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){this.options.helper==="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},_destroy:function(){this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy()},_mouseCapture:function(t){var n=this.options;return this.helper||n.disabled||e(t.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(t),this.handle?(e(n.iframeFix===!0?"iframe":n.iframeFix).each(function(){e("
    ").css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(e(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(t){var n=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),n.containment&&this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_mouseDrag:function(t,n){this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute");if(!n){var r=this._uiHash();if(this._trigger("drag",t,r)===!1)return this._mouseUp({}),!1;this.position=r.position}if(!this.options.axis||this.options.axis!=="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!=="x")this.helper[0].style.top=this.position.top+"px";return e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var n,r=this,i=!1,s=!1;e.ui.ddmanager&&!this.options.dropBehaviour&&(s=e.ui.ddmanager.drop(this,t)),this.dropped&&(s=this.dropped,this.dropped=!1),n=this.element[0];while(n&&(n=n.parentNode))n===document&&(i=!0);return!i&&this.options.helper==="original"?!1:(this.options.revert==="invalid"&&!s||this.options.revert==="valid"&&s||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){r._trigger("stop",t)!==!1&&r._clear()}):this._trigger("stop",t)!==!1&&this._clear(),!1)},_mouseUp:function(t){return e("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){var n=!this.options.handle||!e(this.options.handle,this.element).length?!0:!1;return e(this.options.handle,this.element).find("*").addBack().each(function(){this===t.target&&(n=!0)}),n},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper)?e(n.helper.apply(this.element[0],[t])):n.helper==="clone"?this.element.clone().removeAttr("id"):this.element;return r.parents("body").length||r.appendTo(n.appendTo==="parent"?this.element[0].parentNode:n.appendTo),r[0]!==this.element[0]&&!/(fixed|absolute)/.test(r.css("position"))&&r.css("position","absolute"),r},_adjustOffsetFromHelper:function(t){typeof t=="string"&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();this.cssPosition==="absolute"&&this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()==="html"&&e.ui.ie)t={top:0,left:0};return{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition==="relative"){var e=this.element.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,n,r,i=this.options;i.containment==="parent"&&(i.containment=this.helper[0].parentNode);if(i.containment==="document"||i.containment==="window")this.containment=[i.containment==="document"?0:e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,i.containment==="document"?0:e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(i.containment==="document"?0:e(window).scrollLeft())+e(i.containment==="document"?document:window).width()-this.helperProportions.width-this.margins.left,(i.containment==="document"?0:e(window).scrollTop())+(e(i.containment==="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(i.containment)&&i.containment.constructor!==Array){n=e(i.containment),r=n[0];if(!r)return;t=e(r).css("overflow")!=="hidden",this.containment=[(parseInt(e(r).css("borderLeftWidth"),10)||0)+(parseInt(e(r).css("paddingLeft"),10)||0),(parseInt(e(r).css("borderTopWidth"),10)||0)+(parseInt(e(r).css("paddingTop"),10)||0),(t?Math.max(r.scrollWidth,r.offsetWidth):r.offsetWidth)-(parseInt(e(r).css("borderLeftWidth"),10)||0)-(parseInt(e(r).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(r.scrollHeight,r.offsetHeight):r.offsetHeight)-(parseInt(e(r).css("borderTopWidth"),10)||0)-(parseInt(e(r).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=n}else i.containment.constructor===Array&&(this.containment=i.containment)},_convertPositionTo:function(t,n){n||(n=this.position);var r=t==="absolute"?1:-1,i=this.cssPosition!=="absolute"||this.scrollParent[0]!==document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,s=/(html|body)/i.test(i[0].tagName);return{top:n.top+this.offset.relative.top*r+this.offset.parent.top*r-(this.cssPosition==="fixed"?-this.scrollParent.scrollTop():s?0:i.scrollTop())*r,left:n.left+this.offset.relative.left*r+this.offset.parent.left*r-(this.cssPosition==="fixed"?-this.scrollParent.scrollLeft():s?0:i.scrollLeft())*r}},_generatePosition:function(t){var n,r,i,s,o=this.options,u=this.cssPosition!=="absolute"||this.scrollParent[0]!==document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,a=/(html|body)/i.test(u[0].tagName),f=t.pageX,l=t.pageY;return this.originalPosition&&(this.containment&&(this.relative_container?(r=this.relative_container.offset(),n=[this.containment[0]+r.left,this.containment[1]+r.top,this.containment[2]+r.left,this.containment[3]+r.top]):n=this.containment,t.pageX-this.offset.click.leftn[2]&&(f=n[2]+this.offset.click.left),t.pageY-this.offset.click.top>n[3]&&(l=n[3]+this.offset.click.top)),o.grid&&(i=o.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,l=n?i-this.offset.click.top>=n[1]||i-this.offset.click.top>n[3]?i:i-this.offset.click.top>=n[1]?i-o.grid[1]:i+o.grid[1]:i,s=o.grid[0]?this.originalPageX+Math.round((f-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,f=n?s-this.offset.click.left>=n[0]||s-this.offset.click.left>n[2]?s:s-this.offset.click.left>=n[0]?s-o.grid[0]:s+o.grid[0]:s)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition==="fixed"?-this.scrollParent.scrollTop():a?0:u.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition==="fixed"?-this.scrollParent.scrollLeft():a?0:u.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]!==this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1},_trigger:function(t,n,r){return r=r||this._uiHash(),e.ui.plugin.call(this,t,[n,r]),t==="drag"&&(this.positionAbs=this._convertPositionTo("absolute")),e.Widget.prototype._trigger.call(this,t,n,r)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,n){var r=e(this).data("ui-draggable"),i=r.options,s=e.extend({},n,{item:r.element});r.sortables=[],e(i.connectToSortable).each(function(){var n=e.data(this,"ui-sortable");n&&!n.options.disabled&&(r.sortables.push({instance:n,shouldRevert:n.options.revert}),n.refreshPositions(),n._trigger("activate",t,s))})},stop:function(t,n){var r=e(this).data("ui-draggable"),i=e.extend({},n,{item:r.element});e.each(r.sortables,function(){this.instance.isOver?(this.instance.isOver=0,r.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=!0),this.instance._mouseStop(t),this.instance.options.helper=this.instance.options._helper,r.options.helper==="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",t,i))})},drag:function(t,n){var r=e(this).data("ui-draggable"),i=this;e.each(r.sortables,function(){var s=!1,o=this;this.instance.positionAbs=r.positionAbs,this.instance.helperProportions=r.helperProportions,this.instance.offset.click=r.offset.click,this.instance._intersectsWith(this.instance.containerCache)&&(s=!0,e.each(r.sortables,function(){return this.instance.positionAbs=r.positionAbs,this.instance.helperProportions=r.helperProportions,this.instance.offset.click=r.offset.click,this!==o&&this.instance._intersectsWith(this.instance.containerCache)&&e.contains(o.instance.element[0],this.instance.element[0])&&(s=!1),s})),s?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=e(i).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return n.helper[0]},t.target=this.instance.currentItem[0],this.instance._mouseCapture(t,!0),this.instance._mouseStart(t,!0,!0),this.instance.offset.click.top=r.offset.click.top,this.instance.offset.click.left=r.offset.click.left,this.instance.offset.parent.left-=r.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=r.offset.parent.top-this.instance.offset.parent.top,r._trigger("toSortable",t),r.dropped=this.instance.element,r.currentItem=r.element,this.instance.fromOutside=r),this.instance.currentItem&&this.instance._mouseDrag(t)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",t,this.instance._uiHash(this.instance)),this.instance._mouseStop(t,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),r._trigger("fromSortable",t),r.dropped=!1)})}}),e.ui.plugin.add("draggable","cursor",{start:function(){var t=e("body"),n=e(this).data("ui-draggable").options;t.css("cursor")&&(n._cursor=t.css("cursor")),t.css("cursor",n.cursor)},stop:function(){var t=e(this).data("ui-draggable").options;t._cursor&&e("body").css("cursor",t._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,n){var r=e(n.helper),i=e(this).data("ui-draggable").options;r.css("opacity")&&(i._opacity=r.css("opacity")),r.css("opacity",i.opacity)},stop:function(t,n){var r=e(this).data("ui-draggable").options;r._opacity&&e(n.helper).css("opacity",r._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(){var t=e(this).data("ui-draggable");t.scrollParent[0]!==document&&t.scrollParent[0].tagName!=="HTML"&&(t.overflowOffset=t.scrollParent.offset())},drag:function(t){var n=e(this).data("ui-draggable"),r=n.options,i=!1;if(n.scrollParent[0]!==document&&n.scrollParent[0].tagName!=="HTML"){if(!r.axis||r.axis!=="x")n.overflowOffset.top+n.scrollParent[0].offsetHeight-t.pageY=0;c--){u=p.snapElements[c].left,a=u+p.snapElements[c].width,f=p.snapElements[c].top,l=f+p.snapElements[c].height;if(!(u-vt&&e=h&&a<=p||f>=h&&f<=p||ap)&&(o>=l&&o<=c||u>=l&&u<=c||oc);default:return!1}},e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,n){var r,i,s=e.ui.ddmanager.droppables[t.options.scope]||[],o=n?n.type:null,u=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();e:for(r=0;r
    ").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.data("ui-resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=u.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor===String){this.handles==="all"&&(this.handles="n,e,s,w,se,sw,ne,nw"),t=this.handles.split(","),this.handles={};for(n=0;n"),i.css({zIndex:u.zIndex}),"se"===r&&i.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[r]=".ui-resizable-"+r,this.element.append(i)}this._renderAxis=function(t){var n,r,i,s;t=t||this.element;for(n in this.handles){this.handles[n].constructor===String&&(this.handles[n]=e(this.handles[n],this.element).show()),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)&&(r=e(this.handles[n],this.element),s=/sw|ne|nw|se|n|s/.test(n)?r.outerHeight():r.outerWidth(),i=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize());if(!e(this.handles[n]).length)continue}},this._renderAxis(this.element),this._handles=e(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=i&&i[1]?i[1]:"se")}),u.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){if(u.disabled)return;e(this).removeClass("ui-resizable-autohide"),o._handles.show()}).mouseleave(function(){if(u.disabled)return;o.resizing||(e(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t,n=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(n(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),n(this.originalElement),this},_mouseCapture:function(t){var n,r,i=!1;for(n in this.handles){r=e(this.handles[n])[0];if(r===t.target||e.contains(r,t.target))i=!0}return!this.options.disabled&&i},_mouseStart:function(t){var r,i,s,o=this.options,u=this.element.position(),a=this.element;return this.resizing=!0,/absolute/.test(a.css("position"))?a.css({position:"absolute",top:a.css("top"),left:a.css("left")}):a.is(".ui-draggable")&&a.css({position:"absolute",top:u.top,left:u.left}),this._renderProxy(),r=n(this.helper.css("left")),i=n(this.helper.css("top")),o.containment&&(r+=e(o.containment).scrollLeft()||0,i+=e(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:r,top:i},this.size=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.originalPosition={left:r,top:i},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio=typeof o.aspectRatio=="number"?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor",s==="auto"?this.axis+"-resize":s),a.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var n,r=this.helper,i={},s=this.originalMousePosition,o=this.axis,u=this.position.top,a=this.position.left,f=this.size.width,l=this.size.height,c=t.pageX-s.left||0,h=t.pageY-s.top||0,p=this._change[o];if(!p)return!1;n=p.apply(this,[t,c,h]),this._updateVirtualBoundaries(t.shiftKey);if(this._aspectRatio||t.shiftKey)n=this._updateRatio(n,t);return n=this._respectSize(n,t),this._updateCache(n),this._propagate("resize",t),this.position.top!==u&&(i.top=this.position.top+"px"),this.position.left!==a&&(i.left=this.position.left+"px"),this.size.width!==f&&(i.width=this.size.width+"px"),this.size.height!==l&&(i.height=this.size.height+"px"),r.css(i),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(i)||this._trigger("resize",t,this.ui()),!1},_mouseStop:function(t){this.resizing=!1;var n,r,i,s,o,u,a,f=this.options,l=this;return this._helper&&(n=this._proportionallyResizeElements,r=n.length&&/textarea/i.test(n[0].nodeName),i=r&&e.ui.hasScroll(n[0],"left")?0:l.sizeDiff.height,s=r?0:l.sizeDiff.width,o={width:l.helper.width()-s,height:l.helper.height()-i},u=parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left)||null,a=parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top)||null,f.animate||this.element.css(e.extend(o,{top:a,left:u})),l.helper.height(l.size.height),l.helper.width(l.size.width),this._helper&&!f.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(e){var t,n,i,s,o,u=this.options;o={minWidth:r(u.minWidth)?u.minWidth:0,maxWidth:r(u.maxWidth)?u.maxWidth:Infinity,minHeight:r(u.minHeight)?u.minHeight:0,maxHeight:r(u.maxHeight)?u.maxHeight:Infinity};if(this._aspectRatio||e)t=o.minHeight*this.aspectRatio,i=o.minWidth/this.aspectRatio,n=o.maxHeight*this.aspectRatio,s=o.maxWidth/this.aspectRatio,t>o.minWidth&&(o.minWidth=t),i>o.minHeight&&(o.minHeight=i),ne.width,u=r(e.height)&&t.minHeight&&t.minHeight>e.height,a=this.originalPosition.left+this.originalSize.width,f=this.position.top+this.size.height,l=/sw|nw|w/.test(n),c=/nw|ne|n/.test(n);return o&&(e.width=t.minWidth),u&&(e.height=t.minHeight),i&&(e.width=t.maxWidth),s&&(e.height=t.maxHeight),o&&l&&(e.left=a-t.minWidth),i&&l&&(e.left=a-t.maxWidth),u&&c&&(e.top=f-t.minHeight),s&&c&&(e.top=f-t.maxHeight),!e.width&&!e.height&&!e.left&&e.top?e.top=null:!e.width&&!e.height&&!e.top&&e.left&&(e.left=null),e},_proportionallyResize:function(){if(!this._proportionallyResizeElements.length)return;var e,t,n,r,i,s=this.helper||this.element;for(e=0;e"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++n.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var n=this.originalSize,r=this.originalPosition;return{left:r.left+t,width:n.width-t}},n:function(e,t,n){var r=this.originalSize,i=this.originalPosition;return{top:i.top+n,height:r.height-n}},s:function(e,t,n){return{height:this.originalSize.height+n}},se:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},sw:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,n,r]))},ne:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},nw:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,n,r]))}},_propagate:function(t,n){e.ui.plugin.call(this,t,[n,this.ui()]),t!=="resize"&&this._trigger(t,n,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var n=e(this).data("ui-resizable"),r=n.options,i=n._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),o=s&&e.ui.hasScroll(i[0],"left")?0:n.sizeDiff.height,u=s?0:n.sizeDiff.width,a={width:n.size.width-u,height:n.size.height-o},f=parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left)||null,l=parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top)||null;n.element.animate(e.extend(a,l&&f?{top:l,left:f}:{}),{duration:r.animateDuration,easing:r.animateEasing,step:function(){var r={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};i&&i.length&&e(i[0]).css({width:r.width,height:r.height}),n._updateCache(r),n._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var t,r,i,s,o,u,a,f=e(this).data("ui-resizable"),l=f.options,c=f.element,h=l.containment,p=h instanceof e?h.get(0):/parent/.test(h)?c.parent().get(0):h;if(!p)return;f.containerElement=e(p),/document/.test(h)||h===document?(f.containerOffset={left:0,top:0},f.containerPosition={left:0,top:0},f.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(t=e(p),r=[],e(["Top","Right","Left","Bottom"]).each(function(e,i){r[e]=n(t.css("padding"+i))}),f.containerOffset=t.offset(),f.containerPosition=t.position(),f.containerSize={height:t.innerHeight()-r[3],width:t.innerWidth()-r[1]},i=f.containerOffset,s=f.containerSize.height,o=f.containerSize.width,u=e.ui.hasScroll(p,"left")?p.scrollWidth:o,a=e.ui.hasScroll(p)?p.scrollHeight:s,f.parentData={element:p,left:i.left,top:i.top,width:u,height:a})},resize:function(t){var n,r,i,s,o=e(this).data("ui-resizable"),u=o.options,a=o.containerOffset,f=o.position,l=o._aspectRatio||t.shiftKey,c={top:0,left:0},h=o.containerElement;h[0]!==document&&/static/.test(h.css("position"))&&(c=a),f.left<(o._helper?a.left:0)&&(o.size.width=o.size.width+(o._helper?o.position.left-a.left:o.position.left-c.left),l&&(o.size.height=o.size.width/o.aspectRatio),o.position.left=u.helper?a.left:0),f.top<(o._helper?a.top:0)&&(o.size.height=o.size.height+(o._helper?o.position.top-a.top:o.position.top),l&&(o.size.width=o.size.height*o.aspectRatio),o.position.top=o._helper?a.top:0),o.offset.left=o.parentData.left+o.position.left,o.offset.top=o.parentData.top+o.position.top,n=Math.abs((o._helper?o.offset.left-c.left:o.offset.left-c.left)+o.sizeDiff.width),r=Math.abs((o._helper?o.offset.top-c.top:o.offset.top-a.top)+o.sizeDiff.height),i=o.containerElement.get(0)===o.element.parent().get(0),s=/relative|absolute/.test(o.containerElement.css("position")),i&&s&&(n-=o.parentData.left),n+o.size.width>=o.parentData.width&&(o.size.width=o.parentData.width-n,l&&(o.size.height=o.size.width/o.aspectRatio)),r+o.size.height>=o.parentData.height&&(o.size.height=o.parentData.height-r,l&&(o.size.width=o.size.height*o.aspectRatio))},stop:function(){var t=e(this).data("ui-resizable"),n=t.options,r=t.containerOffset,i=t.containerPosition,s=t.containerElement,o=e(t.helper),u=o.offset(),a=o.outerWidth()-t.sizeDiff.width,f=o.outerHeight()-t.sizeDiff.height;t._helper&&!n.animate&&/relative/.test(s.css("position"))&&e(this).css({left:u.left-i.left-r.left,width:a,height:f}),t._helper&&!n.animate&&/static/.test(s.css("position"))&&e(this).css({left:u.left-i.left-r.left,width:a,height:f})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).data("ui-resizable"),n=t.options,r=function(t){e(t).each(function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})};typeof n.alsoResize=="object"&&!n.alsoResize.parentNode?n.alsoResize.length?(n.alsoResize=n.alsoResize[0],r(n.alsoResize)):e.each(n.alsoResize,function(e){r(e)}):r(n.alsoResize)},resize:function(t,n){var r=e(this).data("ui-resizable"),i=r.options,s=r.originalSize,o=r.originalPosition,u={height:r.size.height-s.height||0,width:r.size.width-s.width||0,top:r.position.top-o.top||0,left:r.position.left-o.left||0},a=function(t,r){e(t).each(function(){var t=e(this),i=e(this).data("ui-resizable-alsoresize"),s={},o=r&&r.length?r:t.parents(n.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(o,function(e,t){var n=(i[t]||0)+(u[t]||0);n&&n>=0&&(s[t]=n||null)}),t.css(s)})};typeof i.alsoResize=="object"&&!i.alsoResize.nodeType?e.each(i.alsoResize,function(e,t){a(e,t)}):a(i.alsoResize)},stop:function(){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).data("ui-resizable"),n=t.options,r=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:r.height,width:r.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof n.ghost=="string"?n.ghost:""),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).data("ui-resizable");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).data("ui-resizable");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t=e(this).data("ui-resizable"),n=t.options,r=t.size,i=t.originalSize,s=t.originalPosition,o=t.axis,u=typeof n.grid=="number"?[n.grid,n.grid]:n.grid,a=u[0]||1,f=u[1]||1,l=Math.round((r.width-i.width)/a)*a,c=Math.round((r.height-i.height)/f)*f,h=i.width+l,p=i.height+c,d=n.maxWidth&&n.maxWidthh,g=n.minHeight&&n.minHeight>p;n.grid=u,m&&(h+=a),g&&(p+=f),d&&(h-=a),v&&(p-=f),/^(se|s|e)$/.test(o)?(t.size.width=h,t.size.height=p):/^(ne)$/.test(o)?(t.size.width=h,t.size.height=p,t.position.top=s.top-c):/^(sw)$/.test(o)?(t.size.width=h,t.size.height=p,t.position.left=s.left-l):(t.size.width=h,t.size.height=p,t.position.top=s.top-c,t.position.left=s.left-l)}})}(jQuery),function(e,t){e.widget("ui.selectable",e.ui.mouse,{version:"1.10.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var t,n=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){t=e(n.options.filter,n.element[0]),t.addClass("ui-selectee"),t.each(function(){var t=e(this),n=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:n.left,top:n.top,right:n.left+t.outerWidth(),bottom:n.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=t.addClass("ui-selectee"),this._mouseInit(),this.helper=e("
    ")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var n=this,r=this.options;this.opos=[t.pageX,t.pageY];if(this.options.disabled)return;this.selectees=e(r.filter,this.element[0]),this._trigger("start",t),e(r.appendTo).append(this.helper),this.helper.css({left:t.pageX,top:t.pageY,width:0,height:0}),r.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var r=e.data(this,"selectable-item");r.startselected=!0,!t.metaKey&&!t.ctrlKey&&(r.$element.removeClass("ui-selected"),r.selected=!1,r.$element.addClass("ui-unselecting"),r.unselecting=!0,n._trigger("unselecting",t,{unselecting:r.element}))}),e(t.target).parents().addBack().each(function(){var r,i=e.data(this,"selectable-item");if(i)return r=!t.metaKey&&!t.ctrlKey||!i.$element.hasClass("ui-selected"),i.$element.removeClass(r?"ui-unselecting":"ui-selected").addClass(r?"ui-selecting":"ui-unselecting"),i.unselecting=!r,i.selecting=r,i.selected=r,r?n._trigger("selecting",t,{selecting:i.element}):n._trigger("unselecting",t,{unselecting:i.element}),!1})},_mouseDrag:function(t){this.dragged=!0;if(this.options.disabled)return;var n,r=this,i=this.options,s=this.opos[0],o=this.opos[1],u=t.pageX,a=t.pageY;return s>u&&(n=u,u=s,s=n),o>a&&(n=a,a=o,o=n),this.helper.css({left:s,top:o,width:u-s,height:a-o}),this.selectees.each(function(){var n=e.data(this,"selectable-item"),f=!1;if(!n||n.element===r.element[0])return;i.tolerance==="touch"?f=!(n.left>u||n.righta||n.bottoms&&n.righto&&n.bottomt&&e *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_create:function(){var e=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?e.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_setOption:function(t,n){t==="disabled"?(this.options[t]=n,this.widget().toggleClass("ui-sortable-disabled",!!n)):e.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(t,n){var r=null,i=!1,s=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type==="static")return!1;this._refreshItems(t),e(t.target).parents().each(function(){if(e.data(this,s.widgetName+"-item")===s)return r=e(this),!1}),e.data(t.target,s.widgetName+"-item")===s&&(r=e(t.target));if(!r)return!1;if(this.options.handle&&!n){e(this.options.handle,r).find("*").addBack().each(function(){this===t.target&&(i=!0)});if(!i)return!1}return this.currentItem=r,this._removeCurrentsFromItems(),!0},_mouseStart:function(t,n,r){var i,s=this.options;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,s.cursorAt&&this._adjustOffsetFromHelper(s.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),s.containment&&this._setContainment(),s.cursor&&(e("body").css("cursor")&&(this._storedCursor=e("body").css("cursor")),e("body").css("cursor",s.cursor)),s.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",s.opacity)),s.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",s.zIndex)),this.scrollParent[0]!==document&&this.scrollParent[0].tagName!=="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!r)for(i=this.containers.length-1;i>=0;i--)this.containers[i]._trigger("activate",t,this._uiHash(this));return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!s.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var n,r,i,s,o=this.options,u=!1;this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==document&&this.scrollParent[0].tagName!=="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY=0;n--){r=this.items[n],i=r.item[0],s=this._intersectsWithPointer(r);if(!s)continue;if(r.instance!==this.currentContainer)continue;if(i!==this.currentItem[0]&&this.placeholder[s===1?"next":"prev"]()[0]!==i&&!e.contains(this.placeholder[0],i)&&(this.options.type==="semi-dynamic"?!e.contains(this.element[0],i):!0)){this.direction=s===1?"down":"up";if(this.options.tolerance!=="pointer"&&!this._intersectsWithSides(r))break;this._rearrange(t,r),this._trigger("change",t,this._uiHash());break}}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,n){if(!t)return;e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t);if(this.options.revert){var r=this,i=this.placeholder.offset();this.reverting=!0,e(this.helper).animate({left:i.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollLeft),top:i.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){r._clear(t)})}else this._clear(t,n);return!1},cancel:function(){if(this.dragging){this._mouseUp({target:null}),this.options.helper==="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!=="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},e(n).each(function(){var n=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[\-=_](.+)/);n&&r.push((t.key||n[1]+"[]")+"="+(t.key&&t.expression?n[1]:n[2]))}),!r.length&&t.key&&r.push(t.key+"="),r.join("&")},toArray:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},n.each(function(){r.push(e(t.item||this).attr(t.attribute||"id")||"")}),r},_intersectsWith:function(e){var t=this.positionAbs.left,n=t+this.helperProportions.width,r=this.positionAbs.top,i=r+this.helperProportions.height,s=e.left,o=s+e.width,u=e.top,a=u+e.height,f=this.offset.click.top,l=this.offset.click.left,c=r+f>u&&r+fs&&t+le[this.floating?"width":"height"]?c:s0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return e!==0&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor===String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){var n,r,i,s,o=[],u=[],a=this._connectWith();if(a&&t)for(n=a.length-1;n>=0;n--){i=e(a[n]);for(r=i.length-1;r>=0;r--)s=e.data(i[r],this.widgetFullName),s&&s!==this&&!s.options.disabled&&u.push([e.isFunction(s.options.items)?s.options.items.call(s.element):e(s.options.items,s.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),s])}u.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(n=u.length-1;n>=0;n--)u[n][0].each(function(){o.push(this)});return e(o)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var n=0;n=0;n--){i=e(h[n]);for(r=i.length-1;r>=0;r--)s=e.data(i[r],this.widgetFullName),s&&s!==this&&!s.options.disabled&&(c.push([e.isFunction(s.options.items)?s.options.items.call(s.element[0],t,{item:this.currentItem}):e(s.options.items,s.element),s]),this.containers.push(s))}for(n=c.length-1;n>=0;n--){o=c[n][1],u=c[n][0];for(r=0,f=u.length;r=0;n--){r=this.items[n];if(r.instance!==this.currentContainer&&this.currentContainer&&r.item[0]!==this.currentItem[0])continue;i=this.options.toleranceElement?e(this.options.toleranceElement,r.item):r.item,t||(r.width=i.outerWidth(),r.height=i.outerHeight()),s=i.offset(),r.left=s.left,r.top=s.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(n=this.containers.length-1;n>=0;n--)s=this.containers[n].element.offset(),this.containers[n].containerCache.left=s.left,this.containers[n].containerCache.top=s.top,this.containers[n].containerCache.width=this.containers[n].element.outerWidth(),this.containers[n].containerCache.height=this.containers[n].element.outerHeight();return this},_createPlaceholder:function(t){t=t||this;var n,r=t.options;if(!r.placeholder||r.placeholder.constructor===String)n=r.placeholder,r.placeholder={element:function(){var r=e(document.createElement(t.currentItem[0].nodeName)).addClass(n||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];return n||(r.style.visibility="hidden"),r},update:function(e,i){if(n&&!r.forcePlaceholderSize)return;i.height()||i.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),i.width()||i.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10))}};t.placeholder=e(r.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),r.placeholder.update(t,t.placeholder)},_contactContainers:function(t){var n,r,i,s,o,u,a,f,l,c=null,h=null;for(n=this.containers.length-1;n>=0;n--){if(e.contains(this.currentItem[0],this.containers[n].element[0]))continue;if(this._intersectsWith(this.containers[n].containerCache)){if(c&&e.contains(this.containers[n].element[0],c.element[0]))continue;c=this.containers[n],h=n}else this.containers[n].containerCache.over&&(this.containers[n]._trigger("out",t,this._uiHash(this)),this.containers[n].containerCache.over=0)}if(!c)return;if(this.containers.length===1)this.containers[h]._trigger("over",t,this._uiHash(this)),this.containers[h].containerCache.over=1;else{i=1e4,s=null,o=this.containers[h].floating?"left":"top",u=this.containers[h].floating?"width":"height",a=this.positionAbs[o]+this.offset.click[o];for(r=this.items.length-1;r>=0;r--){if(!e.contains(this.containers[h].element[0],this.items[r].item[0]))continue;if(this.items[r].item[0]===this.currentItem[0])continue;f=this.items[r].item.offset()[o],l=!1,Math.abs(f-a)>Math.abs(f+this.items[r][u]-a)&&(l=!0,f+=this.items[r][u]),Math.abs(f-a)this.containment[2]&&(s=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),i.grid&&(n=this.originalPageY+Math.round((o-this.originalPageY)/i.grid[1])*i.grid[1],o=this.containment?n-this.offset.click.top>=this.containment[1]&&n-this.offset.click.top<=this.containment[3]?n:n-this.offset.click.top>=this.containment[1]?n-i.grid[1]:n+i.grid[1]:n,r=this.originalPageX+Math.round((s-this.originalPageX)/i.grid[0])*i.grid[0],s=this.containment?r-this.offset.click.left>=this.containment[0]&&r-this.offset.click.left<=this.containment[2]?r:r-this.offset.click.left>=this.containment[0]?r-i.grid[0]:r+i.grid[0]:r)),{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition==="fixed"?-this.scrollParent.scrollTop():a?0:u.scrollTop()),left:s-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition==="fixed"?-this.scrollParent.scrollLeft():a?0:u.scrollLeft())}},_rearrange:function(e,t,n,r){n?n[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],this.direction==="down"?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var i=this.counter;this._delay(function(){i===this.counter&&this.refreshPositions(!r)})},_clear:function(t,n){this.reverting=!1;var r,i=[];!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null;if(this.helper[0]===this.currentItem[0]){for(r in this._storedCSS)if(this._storedCSS[r]==="auto"||this._storedCSS[r]==="static")this._storedCSS[r]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!n&&i.push(function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))}),(this.fromOutside||this.domPosition.prev!==this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!==this.currentItem.parent()[0])&&!n&&i.push(function(e){this._trigger("update",e,this._uiHash())}),this!==this.currentContainer&&(n||(i.push(function(e){this._trigger("remove",e,this._uiHash())}),i.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),i.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer))));for(r=this.containers.length-1;r>=0;r--)n||i.push(function(e){return function(t){e._trigger("deactivate",t,this._uiHash(this))}}.call(this,this.containers[r])),this.containers[r].containerCache.over&&(i.push(function(e){return function(t){e._trigger("out",t,this._uiHash(this))}}.call(this,this.containers[r])),this.containers[r].containerCache.over=0);this._storedCursor&&e("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex==="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!n){this._trigger("beforeStop",t,this._uiHash());for(r=0;re?0:r.max")[0],l,c=e.each;f.style.cssText="background-color:rgba(1,1,1,.5)",a.rgba=f.style.backgroundColor.indexOf("rgba")>-1,c(o,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),s.fn=e.extend(s.prototype,{parse:function(n,r,i,u){if(n===t)return this._rgba=[null,null,null,null],this;if(n.jquery||n.nodeType)n=e(n).css(r),r=t;var a=this,f=e.type(n),d=this._rgba=[];r!==t&&(n=[n,r,i,u],f="array");if(f==="string")return this.parse(p(n)||l._default);if(f==="array")return c(o.rgba.props,function(e,t){d[t.idx]=h(n[t.idx],t)}),this;if(f==="object")return n instanceof s?c(o,function(e,t){n[t.cache]&&(a[t.cache]=n[t.cache].slice())}):c(o,function(t,r){var i=r.cache;c(r.props,function(e,t){if(!a[i]&&r.to){if(e==="alpha"||n[e]==null)return;a[i]=r.to(a._rgba)}a[i][t.idx]=h(n[e],t,!0)}),a[i]&&e.inArray(null,a[i].slice(0,3))<0&&(a[i][3]=1,r.from&&(a._rgba=r.from(a[i])))}),this},is:function(e){var t=s(e),n=!0,r=this;return c(o,function(e,i){var s,o=t[i.cache];return o&&(s=r[i.cache]||i.to&&i.to(r._rgba)||[],c(i.props,function(e,t){if(o[t.idx]!=null)return n=o[t.idx]===s[t.idx],n})),n}),n},_space:function(){var e=[],t=this;return c(o,function(n,r){t[r.cache]&&e.push(n)}),e.pop()},transition:function(e,t){var n=s(e),r=n._space(),i=o[r],a=this.alpha()===0?s("transparent"):this,f=a[i.cache]||i.to(a._rgba),l=f.slice();return n=n[i.cache],c(i.props,function(e,r){var i=r.idx,s=f[i],o=n[i],a=u[r.type]||{};if(o===null)return;s===null?l[i]=o:(a.mod&&(o-s>a.mod/2?s+=a.mod:s-o>a.mod/2&&(s-=a.mod)),l[i]=h((o-s)*t+s,r))}),this[r](l)},blend:function(t){if(this._rgba[3]===1)return this;var n=this._rgba.slice(),r=n.pop(),i=s(t)._rgba;return s(e.map(n,function(e,t){return(1-r)*i[t]+r*e}))},toRgbaString:function(){var t="rgba(",n=e.map(this._rgba,function(e,t){return e==null?t>2?1:0:e});return n[3]===1&&(n.pop(),t="rgb("),t+n.join()+")"},toHslaString:function(){var t="hsla(",n=e.map(this.hsla(),function(e,t){return e==null&&(e=t>2?1:0),t&&t<3&&(e=Math.round(e*100)+"%"),e});return n[3]===1&&(n.pop(),t="hsl("),t+n.join()+")"},toHexString:function(t){var n=this._rgba.slice(),r=n.pop();return t&&n.push(~~(r*255)),"#"+e.map(n,function(e){return e=(e||0).toString(16),e.length===1?"0"+e:e}).join("")},toString:function(){return this._rgba[3]===0?"transparent":this.toRgbaString()}}),s.fn.parse.prototype=s.fn,o.hsla.to=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/255,n=e[1]/255,r=e[2]/255,i=e[3],s=Math.max(t,n,r),o=Math.min(t,n,r),u=s-o,a=s+o,f=a*.5,l,c;return o===s?l=0:t===s?l=60*(n-r)/u+360:n===s?l=60*(r-t)/u+120:l=60*(t-n)/u+240,u===0?c=0:f<=.5?c=u/a:c=u/(2-a),[Math.round(l)%360,c,f,i==null?1:i]},o.hsla.from=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/360,n=e[1],r=e[2],i=e[3],s=r<=.5?r*(1+n):r+n-r*n,o=2*r-s;return[Math.round(d(o,s,t+1/3)*255),Math.round(d(o,s,t)*255),Math.round(d(o,s,t-1/3)*255),i]},c(o,function(n,i){var o=i.props,u=i.cache,a=i.to,f=i.from;s.fn[n]=function(n){a&&!this[u]&&(this[u]=a(this._rgba));if(n===t)return this[u].slice();var r,i=e.type(n),l=i==="array"||i==="object"?n:arguments,p=this[u].slice();return c(o,function(e,t){var n=l[i==="object"?e:t.idx];n==null&&(n=p[t.idx]),p[t.idx]=h(n,t)}),f?(r=s(f(p)),r[u]=p,r):s(p)},c(o,function(t,i){if(s.fn[t])return;s.fn[t]=function(s){var o=e.type(s),u=t==="alpha"?this._hsla?"hsla":"rgba":n,a=this[u](),f=a[i.idx],l;return o==="undefined"?f:(o==="function"&&(s=s.call(this,f),o=e.type(s)),s==null&&i.empty?this:(o==="string"&&(l=r.exec(s),l&&(s=f+parseFloat(l[2])*(l[1]==="+"?1:-1))),a[i.idx]=s,this[u](a)))}})}),s.hook=function(t){var n=t.split(" ");c(n,function(t,n){e.cssHooks[n]={set:function(t,r){var i,o,u="";if(r!=="transparent"&&(e.type(r)!=="string"||(i=p(r)))){r=s(i||r);if(!a.rgba&&r._rgba[3]!==1){o=n==="backgroundColor"?t.parentNode:t;while((u===""||u==="transparent")&&o&&o.style)try{u=e.css(o,"backgroundColor"),o=o.parentNode}catch(f){}r=r.blend(u&&u!=="transparent"?u:"_default")}r=r.toRgbaString()}try{t.style[n]=r}catch(f){}}},e.fx.step[n]=function(t){t.colorInit||(t.start=s(t.elem,n),t.end=s(t.end),t.colorInit=!0),e.cssHooks[n].set(t.elem,t.start.transition(t.end,t.pos))}})},s.hook(n),e.cssHooks.borderColor={expand:function(e){var t={};return c(["Top","Right","Bottom","Left"],function(n,r){t["border"+r+"Color"]=e}),t}},l=e.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function i(t){var n,r,i=t.ownerDocument.defaultView?t.ownerDocument.defaultView.getComputedStyle(t,null):t.currentStyle,s={};if(i&&i.length&&i[0]&&i[i[0]]){r=i.length;while(r--)n=i[r],typeof i[n]=="string"&&(s[e.camelCase(n)]=i[n])}else for(n in i)typeof i[n]=="string"&&(s[n]=i[n]);return s}function s(t,n){var i={},s,o;for(s in n)o=n[s],t[s]!==o&&!r[s]&&(e.fx.step[s]||!isNaN(parseFloat(o)))&&(i[s]=o);return i}var n=["add","remove","toggle"],r={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,n){e.fx.step[n]=function(e){if(e.end!=="none"&&!e.setAttr||e.pos===1&&!e.setAttr)jQuery.style(e.elem,n,e.end),e.setAttr=!0}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}),e.effects.animateClass=function(t,r,o,u){var a=e.speed(r,o,u);return this.queue(function(){var r=e(this),o=r.attr("class")||"",u,f=a.children?r.find("*").addBack():r;f=f.map(function(){var t=e(this);return{el:t,start:i(this)}}),u=function(){e.each(n,function(e,n){t[n]&&r[n+"Class"](t[n])})},u(),f=f.map(function(){return this.end=i(this.el[0]),this.diff=s(this.start,this.end),this}),r.attr("class",o),f=f.map(function(){var t=this,n=e.Deferred(),r=e.extend({},a,{queue:!1,complete:function(){n.resolve(t)}});return this.el.animate(this.diff,r),n.promise()}),e.when.apply(e,f.get()).done(function(){u(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),a.complete.call(r[0])})})},e.fn.extend({_addClass:e.fn.addClass,addClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{add:t},n,r,i):this._addClass(t)},_removeClass:e.fn.removeClass,removeClass:function(t,n,r,i){return arguments.length>1?e.effects.animateClass.call(this,{remove:t},n,r,i):this._removeClass.apply(this,arguments)},_toggleClass:e.fn.toggleClass,toggleClass:function(n,r,i,s,o){return typeof r=="boolean"||r===t?i?e.effects.animateClass.call(this,r?{add:n}:{remove:n},i,s,o):this._toggleClass(n,r):e.effects.animateClass.call(this,{toggle:n},r,i,s)},switchClass:function(t,n,r,i,s){return e.effects.animateClass.call(this,{add:n,remove:t},r,i,s)}})}(),function(){function r(t,n,r,i){e.isPlainObject(t)&&(n=t,t=t.effect),t={effect:t},n==null&&(n={}),e.isFunction(n)&&(i=n,r=null,n={});if(typeof n=="number"||e.fx.speeds[n])i=r,r=n,n={};return e.isFunction(r)&&(i=r,r=null),n&&e.extend(t,n),r=r||n.duration,t.duration=e.fx.off?0:typeof r=="number"?r:r in e.fx.speeds?e.fx.speeds[r]:e.fx.speeds._default,t.complete=i||n.complete,t}function i(t){return!t||typeof t=="number"||e.fx.speeds[t]?!0:typeof t=="string"&&!e.effects.effect[t]}e.extend(e.effects,{version:"1.10.1",save:function(e,t){for(var r=0;r").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),i={width:t.width(),height:t.height()},s=document.activeElement;try{s.id}catch(o){s=document.body}return t.wrap(r),(t[0]===s||e.contains(t[0],s))&&e(s).focus(),r=t.parent(),t.css("position")==="static"?(r.css({position:"relative"}),t.css({position:"relative"})):(e.extend(n,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,r){n[r]=t.css(r),isNaN(parseInt(n[r],10))&&(n[r]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(i),r.css(n).show()},removeWrapper:function(t){var n=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===n||e.contains(t[0],n))&&e(n).focus()),t},setTransition:function(t,n,r,i){return i=i||{},e.each(n,function(e,n){var s=t.cssUnit(n);s[0]>0&&(i[n]=s[0]*r+s[1])}),i}}),e.fn.extend({effect:function(){function o(n){function u(){e.isFunction(i)&&i.call(r[0]),e.isFunction(n)&&n()}var r=e(this),i=t.complete,o=t.mode;(r.is(":hidden")?o==="hide":o==="show")?u():s.call(r[0],t,u)}var t=r.apply(this,arguments),n=t.mode,i=t.queue,s=e.effects.effect[t.effect];return e.fx.off||!s?n?this[n](t.duration,t.complete):this.each(function(){t.complete&&t.complete.call(this)}):i===!1?this.each(o):this.queue(i||"fx",o)},_show:e.fn.show,show:function(e){if(i(e))return this._show.apply(this,arguments);var t=r.apply(this,arguments);return t.mode="show",this.effect.call(this,t)},_hide:e.fn.hide,hide:function(e){if(i(e))return this._hide.apply(this,arguments);var t=r.apply(this,arguments);return t.mode="hide",this.effect.call(this,t)},__toggle:e.fn.toggle,toggle:function(t){if(i(t)||typeof t=="boolean"||e.isFunction(t))return this.__toggle.apply(this,arguments);var n=r.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)},cssUnit:function(t){var n=this.css(t),r=[];return e.each(["em","px","%","pt"],function(e,t){n.indexOf(t)>0&&(r=[parseFloat(n),t])}),r}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,n){t[n]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return e===0||e===1?e:-Math.pow(2,8*(e-1))*Math.sin(((e-1)*80-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){var t,n=4;while(e<((t=Math.pow(2,--n))-1)/11);return 1/Math.pow(4,3-n)-7.5625*Math.pow((t*3-2)/22-e,2)}}),e.each(t,function(t,n){e.easing["easeIn"+t]=n,e.easing["easeOut"+t]=function(e){return 1-n(1-e)},e.easing["easeInOut"+t]=function(e){return e<.5?n(e*2)/2:1-n(e*-2+2)/2}})}()}(jQuery),function(e,t){var n=0,r={},i={};r.height=r.paddingTop=r.paddingBottom=r.borderTopWidth=r.borderBottomWidth="hide",i.height=i.paddingTop=i.paddingBottom=i.borderTopWidth=i.borderBottomWidth="show",e.widget("ui.accordion",{version:"1.10.1",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},_create:function(){var t=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),!t.collapsible&&(t.active===!1||t.active==null)&&(t.active=0),this._processPanels(),t.active<0&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():e(),content:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this._destroyIcons(),e=this.headers.next().css("display","").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this.options.heightStyle!=="content"&&e.css("height","")},_setOption:function(e,t){if(e==="active"){this._activate(t);return}e==="event"&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),e==="collapsible"&&!t&&this.options.active===!1&&this._activate(0),e==="icons"&&(this._destroyIcons(),t&&this._createIcons()),e==="disabled"&&this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)},_keydown:function(t){if(t.altKey||t.ctrlKey)return;var n=e.ui.keyCode,r=this.headers.length,i=this.headers.index(t.target),s=!1;switch(t.keyCode){case n.RIGHT:case n.DOWN:s=this.headers[(i+1)%r];break;case n.LEFT:case n.UP:s=this.headers[(i-1+r)%r];break;case n.SPACE:case n.ENTER:this._eventHandler(t);break;case n.HOME:s=this.headers[0];break;case n.END:s=this.headers[r-1]}s&&(e(t.target).attr("tabIndex",-1),e(s).attr("tabIndex",0),s.focus(),t.preventDefault())},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t=this.options;this._processPanels();if(t.active===!1&&t.collapsible===!0||!this.headers.length)t.active=!1,this.active=e();t.active===!1?this._activate(0):this.active.length&&!e.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=e()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"),this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide()},_refresh:function(){var t,r=this.options,i=r.heightStyle,s=this.element.parent(),o=this.accordionId="ui-accordion-"+(this.element.attr("id")||++n);this.active=this._findActive(r.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(t){var n=e(this),r=n.attr("id"),i=n.next(),s=i.attr("id");r||(r=o+"-header-"+t,n.attr("id",r)),s||(s=o+"-panel-"+t,i.attr("id",s)),n.attr("aria-controls",s),i.attr("aria-labelledby",r)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false",tabIndex:-1}).next().attr({"aria-expanded":"false","aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true",tabIndex:0}).next().attr({"aria-expanded":"true","aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(r.event),i==="fill"?(t=s.height(),this.element.siblings(":visible").each(function(){var n=e(this),r=n.css("position");if(r==="absolute"||r==="fixed")return;t-=n.outerHeight(!0)}),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):i==="auto"&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).css("height","").height())}).height(t))},_activate:function(t){var n=this._findActive(t)[0];if(n===this.active[0])return;n=n||this.active[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop})},_findActive:function(t){return typeof t=="number"?this.headers.eq(t):e()},_setupEvents:function(t){var n={keydown:"_keydown"};t&&e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,n),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget),s=i[0]===r[0],o=s&&n.collapsible,u=o?e():i.next(),a=r.next(),f={oldHeader:r,oldPanel:a,newHeader:o?e():i,newPanel:u};t.preventDefault();if(s&&!n.collapsible||this._trigger("beforeActivate",t,f)===!1)return;n.active=o?!1:this.headers.index(i),this.active=s?e():i,this._toggle(f),r.removeClass("ui-accordion-header-active ui-state-active"),n.icons&&r.children(".ui-accordion-header-icon").removeClass(n.icons.activeHeader).addClass(n.icons.header),s||(i.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),n.icons&&i.children(".ui-accordion-header-icon").removeClass(n.icons.header).addClass(n.icons.activeHeader),i.next().addClass("ui-accordion-content-active"))},_toggle:function(t){var n=t.newPanel,r=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=n,this.prevHide=r,this.options.animate?this._animate(n,r,t):(r.hide(),n.show(),this._toggleComplete(t)),r.attr({"aria-expanded":"false","aria-hidden":"true"}),r.prev().attr("aria-selected","false"),n.length&&r.length?r.prev().attr("tabIndex",-1):n.length&&this.headers.filter(function(){return e(this).attr("tabIndex")===0}).attr("tabIndex",-1),n.attr({"aria-expanded":"true","aria-hidden":"false"}).prev().attr({"aria-selected":"true",tabIndex:0})},_animate:function(e,t,n){var s,o,u,a=this,f=0,l=e.length&&(!t.length||e.index()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},pending:0,_create:function(){var t,n,r,i=this.element[0].nodeName.toLowerCase(),s=i==="textarea",o=i==="input";this.isMultiLine=s?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[s||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(i){if(this.element.prop("readOnly")){t=!0,r=!0,n=!0;return}t=!1,r=!1,n=!1;var s=e.ui.keyCode;switch(i.keyCode){case s.PAGE_UP:t=!0,this._move("previousPage",i);break;case s.PAGE_DOWN:t=!0,this._move("nextPage",i);break;case s.UP:t=!0,this._keyEvent("previous",i);break;case s.DOWN:t=!0,this._keyEvent("next",i);break;case s.ENTER:case s.NUMPAD_ENTER:this.menu.active&&(t=!0,i.preventDefault(),this.menu.select(i));break;case s.TAB:this.menu.active&&this.menu.select(i);break;case s.ESCAPE:this.menu.element.is(":visible")&&(this._value(this.term),this.close(i),i.preventDefault());break;default:n=!0,this._searchTimeout(i)}},keypress:function(r){if(t){t=!1,r.preventDefault();return}if(n)return;var i=e.ui.keyCode;switch(r.keyCode){case i.PAGE_UP:this._move("previousPage",r);break;case i.PAGE_DOWN:this._move("nextPage",r);break;case i.UP:this._keyEvent("previous",r);break;case i.DOWN:this._keyEvent("next",r)}},input:function(e){if(r){r=!1,e.preventDefault();return}this._searchTimeout(e)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){if(this.cancelBlur){delete this.cancelBlur;return}clearTimeout(this.searching),this.close(e),this._change(e)}}),this._initSource(),this.menu=e("
    "+"",L=c?"":"";for(E=0;E<7;E++)A=(E+l)%7,L+="=5?" class='ui-datepicker-week-end'":"")+">"+""+p[A]+"";k+=L+"",O=this._getDaysInMonth(et,Z),et===e.selectedYear&&Z===e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,O)),M=(this._getFirstDayOfMonth(et,Z)-l+7)%7,_=Math.ceil((M+O)/7),D=K?this.maxRows>_?this.maxRows:_:_,this.maxRows=D,P=this._daylightSavingAdjust(new Date(et,Z,1-M));for(H=0;H",B=c?"":"";for(E=0;E<7;E++)j=m?m.apply(e.input?e.input[0]:null,[P]):[!0,""],F=P.getMonth()!==Z,I=F&&!y||!j[0]||G&&PY,B+="",P.setDate(P.getDate()+1),P=this._daylightSavingAdjust(P);k+=B+""}Z++,Z>11&&(Z=0,et++),k+="
    "+this._get(e,"weekHeader")+"
    "+this._get(e,"calculateWeek")(P)+""+(F&&!g?" ":I?""+P.getDate()+"":""+P.getDate()+"")+"
    "+(K?"
    "+(V[0]>0&&T===V[1]-1?"
    ":""):""),x+=k}w+=x}return w+=f,e._keyEvent=!1,w},_generateMonthYearHeader:function(e,t,n,r,i,s,o,u){var a,f,l,c,h,p,d,v,m=this._get(e,"changeMonth"),g=this._get(e,"changeYear"),y=this._get(e,"showMonthAfterYear"),b="
    ",w="";if(s||!m)w+=""+o[t]+"";else{a=r&&r.getFullYear()===n,f=i&&i.getFullYear()===n,w+=""}y||(b+=w+(s||!m||!g?" ":""));if(!e.yearshtml){e.yearshtml="";if(s||!g)b+=""+n+"";else{c=this._get(e,"yearRange").split(":"),h=(new Date).getFullYear(),p=function(e){var t=e.match(/c[+\-].*/)?n+parseInt(e.substring(1),10):e.match(/[+\-].*/)?h+parseInt(e,10):parseInt(e,10);return isNaN(t)?h:t},d=p(c[0]),v=Math.max(d,p(c[1]||"")),d=r?Math.max(d,r.getFullYear()):d,v=i?Math.min(v,i.getFullYear()):v,e.yearshtml+="",b+=e.yearshtml,e.yearshtml=null}}return b+=this._get(e,"yearSuffix"),y&&(b+=(s||!m||!g?" ":"")+w),b+="
    ",b},_adjustInstDate:function(e,t,n){var r=e.drawYear+(n==="Y"?t:0),i=e.drawMonth+(n==="M"?t:0),s=Math.min(e.selectedDay,this._getDaysInMonth(r,i))+(n==="D"?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(r,i,s)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),(n==="M"||n==="Y")&&this._notifyChange(e)},_restrictMinMax:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max"),i=n&&tr?r:i},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return t==null?[1,1]:typeof t=="number"?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return(new Date(e,t,1)).getDay()},_canAdjustMonth:function(e,t,n,r){var i=this._getNumberOfMonths(e),s=this._daylightSavingAdjust(new Date(n,r+(t<0?t:i[0]*i[1]),1));return t<0&&s.setDate(this._getDaysInMonth(s.getFullYear(),s.getMonth())),this._isInRange(e,s)},_isInRange:function(e,t){var n,r,i=this._getMinMaxDate(e,"min"),s=this._getMinMaxDate(e,"max"),o=null,u=null,a=this._get(e,"yearRange");return a&&(n=a.split(":"),r=(new Date).getFullYear(),o=parseInt(n[0],10),u=parseInt(n[1],10),n[0].match(/[+\-].*/)&&(o+=r),n[1].match(/[+\-].*/)&&(u+=r)),(!i||t.getTime()>=i.getTime())&&(!s||t.getTime()<=s.getTime())&&(!o||t.getFullYear()>=o)&&(!u||t.getFullYear()<=u)},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t=typeof t!="string"?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,n,r){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var i=t?typeof t=="object"?t:this._daylightSavingAdjust(new Date(r,n,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),i,this._getFormatConfig(e))}}),e.fn.datepicker=function(t){if(!this.length)return this;e.datepicker.initialized||(e(document).mousedown(e.datepicker._checkExternalClick),e.datepicker.initialized=!0),e("#"+e.datepicker._mainDivId).length===0&&e("body").append(e.datepicker.dpDiv);var n=Array.prototype.slice.call(arguments,1);return typeof t!="string"||t!=="isDisabled"&&t!=="getDate"&&t!=="widget"?t==="option"&&arguments.length===2&&typeof arguments[1]=="string"?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(n)):this.each(function(){typeof t=="string"?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this].concat(n)):e.datepicker._attachDatepicker(this,t)}):e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(n))},e.datepicker=new s,e.datepicker.initialized=!1,e.datepicker.uuid=(new Date).getTime(),e.datepicker.version="1.10.1",window["DP_jQuery_"+r]=e}(jQuery),function(e,t){var n={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},r={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};e.widget("ui.dialog",{version:"1.10.1",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var n=e(this).css(t).offset().top;n<0&&e(this).css("top",t.top-n)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&e.fn.draggable&&this._makeDraggable(),this.options.resizable&&e.fn.resizable&&this._makeResizable(),this._isOpen=!1},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?e(t):this.document.find(t||"body").eq(0)},_destroy:function(){var e,t=this.originalPosition;this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},disable:e.noop,enable:e.noop,close:function(t){var n=this;if(!this._isOpen||this._trigger("beforeClose",t)===!1)return;this._isOpen=!1,this._destroyOverlay(),this.opener.filter(":focusable").focus().length||e(this.document[0].activeElement).blur(),this._hide(this.uiDialog,this.options.hide,function(){n._trigger("close",t)})},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,t){var n=!!this.uiDialog.nextAll(":visible").insertBefore(this.uiDialog).length;return n&&!t&&this._trigger("focus",e),n},open:function(){var t=this;if(this._isOpen){this._moveToTop()&&this._focusTabbable();return}this._isOpen=!0,this.opener=e(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._trigger("open")},_focusTabbable:function(){var e=this.element.find("[autofocus]");e.length||(e=this.element.find(":tabbable")),e.length||(e=this.uiDialogButtonPane.find(":tabbable")),e.length||(e=this.uiDialogTitlebarClose.filter(":tabbable")),e.length||(e=this.uiDialog),e.eq(0).focus()},_keepFocus:function(t){function n(){var t=this.document[0].activeElement,n=this.uiDialog[0]===t||e.contains(this.uiDialog[0],t);n||this._focusTabbable()}t.preventDefault(),n.call(this),this._delay(n)},_createWrapper:function(){this.uiDialog=e("
    ").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===e.ui.keyCode.ESCAPE){t.preventDefault(),this.close(t);return}if(t.keyCode!==e.ui.keyCode.TAB)return;var n=this.uiDialog.find(":tabbable"),r=n.filter(":first"),i=n.filter(":last");t.target!==i[0]&&t.target!==this.uiDialog[0]||!!t.shiftKey?(t.target===r[0]||t.target===this.uiDialog[0])&&t.shiftKey&&(i.focus(1),t.preventDefault()):(r.focus(1),t.preventDefault())},mousedown:function(e){this._moveToTop(e)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=e("
    ").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(t){e(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=e("").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(e){e.preventDefault(),this.close(e)}}),t=e("").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(t),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(e){this.options.title||e.html(" "),e.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=e("
    ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=e("
    ").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var t=this,n=this.options.buttons;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty();if(e.isEmptyObject(n)||e.isArray(n)&&!n.length){this.uiDialog.removeClass("ui-dialog-buttons");return}e.each(n,function(n,r){var i,s;r=e.isFunction(r)?{click:r,text:n}:r,r=e.extend({type:"button"},r),i=r.click,r.click=function(){i.apply(t.element[0],arguments)},s={icons:r.icons,text:r.showText},delete r.icons,delete r.showText,e("",r).button(s).appendTo(t.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog)},_makeDraggable:function(){function r(e){return{position:e.position,offset:e.offset}}var t=this,n=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(n,i){e(this).addClass("ui-dialog-dragging"),t._blockFrames(),t._trigger("dragStart",n,r(i))},drag:function(e,n){t._trigger("drag",e,r(n))},stop:function(i,s){n.position=[s.position.left-t.document.scrollLeft(),s.position.top-t.document.scrollTop()],e(this).removeClass("ui-dialog-dragging"),t._unblockFrames(),t._trigger("dragStop",i,r(s))}})},_makeResizable:function(){function o(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}var t=this,n=this.options,r=n.resizable,i=this.uiDialog.css("position"),s=typeof r=="string"?r:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:n.maxWidth,maxHeight:n.maxHeight,minWidth:n.minWidth,minHeight:this._minHeight(),handles:s,start:function(n,r){e(this).addClass("ui-dialog-resizing"),t._blockFrames(),t._trigger("resizeStart",n,o(r))},resize:function(e,n){t._trigger("resize",e,o(n))},stop:function(r,i){n.height=e(this).height(),n.width=e(this).width(),e(this).removeClass("ui-dialog-resizing"),t._unblockFrames(),t._trigger("resizeStop",r,o(i))}}).css("position",i)},_minHeight:function(){var e=this.options;return e.height==="auto"?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(){var e=this.uiDialog.is(":visible");e||this.uiDialog.show(),this.uiDialog.position(this.options.position),e||this.uiDialog.hide()},_setOptions:function(t){var i=this,s=!1,o={};e.each(t,function(e,t){i._setOption(e,t),e in n&&(s=!0),e in r&&(o[e]=t)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",o)},_setOption:function(e,t){var n,r,i=this.uiDialog;e==="dialogClass"&&i.removeClass(this.options.dialogClass).addClass(t);if(e==="disabled")return;this._super(e,t),e==="appendTo"&&this.uiDialog.appendTo(this._appendTo()),e==="buttons"&&this._createButtons(),e==="closeText"&&this.uiDialogTitlebarClose.button({label:""+t}),e==="draggable"&&(n=i.is(":data(ui-draggable)"),n&&!t&&i.draggable("destroy"),!n&&t&&this._makeDraggable()),e==="position"&&this._position(),e==="resizable"&&(r=i.is(":data(ui-resizable)"),r&&!t&&i.resizable("destroy"),r&&typeof t=="string"&&i.resizable("option","handles",t),!r&&t!==!1&&this._makeResizable()),e==="title"&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title"))},_size:function(){var e,t,n,r=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),r.minWidth>r.width&&(r.width=r.minWidth),e=this.uiDialog.css({height:"auto",width:r.width}).outerHeight(),t=Math.max(0,r.minHeight-e),n=typeof r.maxHeight=="number"?Math.max(0,r.maxHeight-e):"none",r.height==="auto"?this.element.css({minHeight:t,maxHeight:n,height:"auto"}):this.element.height(Math.max(0,r.height-e)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=e(this);return e("
    ").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_createOverlay:function(){if(!this.options.modal)return;e.ui.dialog.overlayInstances||this._delay(function(){e.ui.dialog.overlayInstances&&this.document.bind("focusin.dialog",function(t){!e(t.target).closest(".ui-dialog").length&&!e(t.target).closest(".ui-datepicker").length&&(t.preventDefault(),e(".ui-dialog:visible:last .ui-dialog-content").data("ui-dialog")._focusTabbable())})}),this.overlay=e("
    ").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),e.ui.dialog.overlayInstances++},_destroyOverlay:function(){if(!this.options.modal)return;this.overlay&&(e.ui.dialog.overlayInstances--,e.ui.dialog.overlayInstances||this.document.unbind("focusin.dialog"),this.overlay.remove(),this.overlay=null)}}),e.ui.dialog.overlayInstances=0,e.uiBackCompat!==!1&&e.widget("ui.dialog",e.ui.dialog,{_position:function(){var t=this.options.position,n=[],r=[0,0],i;if(t){if(typeof t=="string"||typeof t=="object"&&"0"in t)n=t.split?t.split(" "):[t[0],t[1]],n.length===1&&(n[1]=n[0]),e.each(["left","top"],function(e,t){+n[e]===n[e]&&(r[e]=n[e],n[e]=t)}),t={my:n[0]+(r[0]<0?r[0]:"+"+r[0])+" "+n[1]+(r[1]<0?r[1]:"+"+r[1]),at:n.join(" ")};t=e.extend({},e.ui.dialog.prototype.options.position,t)}else t=e.ui.dialog.prototype.options.position;i=this.uiDialog.is(":visible"),i||this.uiDialog.show(),this.uiDialog.position(t),i||this.uiDialog.hide()}})}(jQuery),function(e,t){var n=/up|down|vertical/,r=/up|left|vertical|horizontal/;e.effects.effect.blind=function(t,i){var s=e(this),o=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(s,t.mode||"hide"),a=t.direction||"up",f=n.test(a),l=f?"height":"width",c=f?"top":"left",h=r.test(a),p={},d=u==="show",v,m,g;s.parent().is(".ui-effects-wrapper")?e.effects.save(s.parent(),o):e.effects.save(s,o),s.show(),v=e.effects.createWrapper(s).css({overflow:"hidden"}),m=v[l](),g=parseFloat(v.css(c))||0,p[l]=d?m:0,h||(s.css(f?"bottom":"right",0).css(f?"top":"left","auto").css({position:"absolute"}),p[c]=d?g:m+g),d&&(v.css(l,0),h||v.css(c,g+m)),v.animate(p,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){u==="hide"&&s.hide(),e.effects.restore(s,o),e.effects.removeWrapper(s),i()}})}}(jQuery),function(e,t){e.effects.effect.bounce=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=s==="hide",u=s==="show",a=t.direction||"up",f=t.distance,l=t.times||5,c=l*2+(u||o?1:0),h=t.duration/c,p=t.easing,d=a==="up"||a==="down"?"top":"left",v=a==="up"||a==="left",m,g,y,b=r.queue(),w=b.length;(u||o)&&i.push("opacity"),e.effects.save(r,i),r.show(),e.effects.createWrapper(r),f||(f=r[d==="top"?"outerHeight":"outerWidth"]()/3),u&&(y={opacity:1},y[d]=0,r.css("opacity",0).css(d,v?-f*2:f*2).animate(y,h,p)),o&&(f/=Math.pow(2,l-1)),y={},y[d]=0;for(m=0;m1&&b.splice.apply(b,[1,0].concat(b.splice(w,c+1))),r.dequeue()}}(jQuery),function(e,t){e.effects.effect.clip=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"vertical",a=u==="vertical",f=a?"height":"width",l=a?"top":"left",c={},h,p,d;e.effects.save(r,i),r.show(),h=e.effects.createWrapper(r).css({overflow:"hidden"}),p=r[0].tagName==="IMG"?h:r,d=p[f](),o&&(p.css(f,0),p.css(l,d/2)),c[f]=o?d:0,c[l]=o?0:d/2,p.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o||r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}}(jQuery),function(e,t){e.effects.effect.drop=function(t,n){var r=e(this),i=["position","top","bottom","left","right","opacity","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left"?"pos":"neg",l={opacity:o?1:0},c;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),c=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0)/2,o&&r.css("opacity",0).css(a,f==="pos"?-c:c),l[a]=(o?f==="pos"?"+=":"-=":f==="pos"?"-=":"+=")+c,r.animate(l,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}}(jQuery),function(e,t){e.effects.effect.explode=function(t,n){function y(){c.push(this),c.length===r*i&&b()}function b(){s.css({visibility:"visible"}),e(c).remove(),u||s.hide(),n()}var r=t.pieces?Math.round(Math.sqrt(t.pieces)):3,i=r,s=e(this),o=e.effects.setMode(s,t.mode||"hide"),u=o==="show",a=s.show().css("visibility","hidden").offset(),f=Math.ceil(s.outerWidth()/i),l=Math.ceil(s.outerHeight()/r),c=[],h,p,d,v,m,g;for(h=0;h
    ").css({position:"absolute",visibility:"visible",left:-p*f,top:-h*l}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:f,height:l,left:d+(u?m*f:0),top:v+(u?g*l:0),opacity:u?0:1}).animate({left:d+(u?0:m*f),top:v+(u?0:g*l),opacity:u?1:0},t.duration||500,t.easing,y)}}}(jQuery),function(e,t){e.effects.effect.fade=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"toggle");r.animate({opacity:i},{queue:!1,duration:t.duration,easing:t.easing,complete:n})}}(jQuery),function(e,t){e.effects.effect.fold=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=s==="hide",a=t.size||15,f=/([0-9]+)%/.exec(a),l=!!t.horizFirst,c=o!==l,h=c?["width","height"]:["height","width"],p=t.duration/2,d,v,m={},g={};e.effects.save(r,i),r.show(),d=e.effects.createWrapper(r).css({overflow:"hidden"}),v=c?[d.width(),d.height()]:[d.height(),d.width()],f&&(a=parseInt(f[1],10)/100*v[u?0:1]),o&&d.css(l?{height:0,width:a}:{height:a,width:0}),m[h[0]]=o?v[0]:a,g[h[1]]=o?v[1]:0,d.animate(m,p,t.easing).animate(g,p,t.easing,function(){u&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()})}}(jQuery),function(e,t){e.effects.effect.highlight=function(t,n){var r=e(this),i=["backgroundImage","backgroundColor","opacity"],s=e.effects.setMode(r,t.mode||"show"),o={backgroundColor:r.css("backgroundColor")};s==="hide"&&(o.opacity=0),e.effects.save(r,i),r.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),n()}})}}(jQuery),function(e,t){e.effects.effect.pulsate=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"show"),s=i==="show",o=i==="hide",u=s||i==="hide",a=(t.times||5)*2+(u?1:0),f=t.duration/a,l=0,c=r.queue(),h=c.length,p;if(s||!r.is(":visible"))r.css("opacity",0).show(),l=1;for(p=1;p1&&c.splice.apply(c,[1,0].concat(c.splice(h,a+1))),r.dequeue()}}(jQuery),function(e,t){e.effects.effect.puff=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"hide"),s=i==="hide",o=parseInt(t.percent,10)||150,u=o/100,a={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:i,complete:n,percent:s?o:100,from:s?a:{height:a.height*u,width:a.width*u,outerHeight:a.outerHeight*u,outerWidth:a.outerWidth*u}}),r.effect(t)},e.effects.effect.scale=function(t,n){var r=e(this),i=e.extend(!0,{},t),s=e.effects.setMode(r,t.mode||"effect"),o=parseInt(t.percent,10)||(parseInt(t.percent,10)===0?0:s==="hide"?0:100),u=t.direction||"both",a=t.origin,f={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()},l={y:u!=="horizontal"?o/100:1,x:u!=="vertical"?o/100:1};i.effect="size",i.queue=!1,i.complete=n,s!=="effect"&&(i.origin=a||["middle","center"],i.restore=!0),i.from=t.from||(s==="show"?{height:0,width:0,outerHeight:0,outerWidth:0}:f),i.to={height:f.height*l.y,width:f.width*l.x,outerHeight:f.outerHeight*l.y,outerWidth:f.outerWidth*l.x},i.fade&&(s==="show"&&(i.from.opacity=0,i.to.opacity=1),s==="hide"&&(i.from.opacity=1,i.to.opacity=0)),r.effect(i)},e.effects.effect.size=function(t,n){var r,i,s,o=e(this),u=["position","top","bottom","left","right","width","height","overflow","opacity"],a=["position","top","bottom","left","right","overflow","opacity"],f=["width","height","overflow"],l=["fontSize"],c=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],h=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=e.effects.setMode(o,t.mode||"effect"),d=t.restore||p!=="effect",v=t.scale||"both",m=t.origin||["middle","center"],g=o.css("position"),y=d?u:a,b={height:0,width:0,outerHeight:0,outerWidth:0};p==="show"&&o.show(),r={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},t.mode==="toggle"&&p==="show"?(o.from=t.to||b,o.to=t.from||r):(o.from=t.from||(p==="show"?b:r),o.to=t.to||(p==="hide"?b:r)),s={from:{y:o.from.height/r.height,x:o.from.width/r.width},to:{y:o.to.height/r.height,x:o.to.width/r.width}};if(v==="box"||v==="both")s.from.y!==s.to.y&&(y=y.concat(c),o.from=e.effects.setTransition(o,c,s.from.y,o.from),o.to=e.effects.setTransition(o,c,s.to.y,o.to)),s.from.x!==s.to.x&&(y=y.concat(h),o.from=e.effects.setTransition(o,h,s.from.x,o.from),o.to=e.effects.setTransition(o,h,s.to.x,o.to));(v==="content"||v==="both")&&s.from.y!==s.to.y&&(y=y.concat(l).concat(f),o.from=e.effects.setTransition(o,l,s.from.y,o.from),o.to=e.effects.setTransition(o,l,s.to.y,o.to)),e.effects.save(o,y),o.show(),e.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),m&&(i=e.effects.getBaseline(m,r),o.from.top=(r.outerHeight-o.outerHeight())*i.y,o.from.left=(r.outerWidth-o.outerWidth())*i.x,o.to.top=(r.outerHeight-o.to.outerHeight)*i.y,o.to.left=(r.outerWidth-o.to.outerWidth)*i.x),o.css(o.from);if(v==="content"||v==="both")c=c.concat(["marginTop","marginBottom"]).concat(l),h=h.concat(["marginLeft","marginRight"]),f=u.concat(c).concat(h),o.find("*[width]").each(function(){var n=e(this),r={height:n.height(),width:n.width(),outerHeight:n.outerHeight(),outerWidth:n.outerWidth()};d&&e.effects.save(n,f),n.from={height:r.height*s.from.y,width:r.width*s.from.x,outerHeight:r.outerHeight*s.from.y,outerWidth:r.outerWidth*s.from.x},n.to={height:r.height*s.to.y,width:r.width*s.to.x,outerHeight:r.height*s.to.y,outerWidth:r.width*s.to.x},s.from.y!==s.to.y&&(n.from=e.effects.setTransition(n,c,s.from.y,n.from),n.to=e.effects.setTransition(n,c,s.to.y,n.to)),s.from.x!==s.to.x&&(n.from=e.effects.setTransition(n,h,s.from.x,n.from),n.to=e.effects.setTransition(n,h,s.to.x,n.to)),n.css(n.from),n.animate(n.to,t.duration,t.easing,function(){d&&e.effects.restore(n,f)})});o.animate(o.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o.to.opacity===0&&o.css("opacity",o.from.opacity),p==="hide"&&o.hide(),e.effects.restore(o,y),d||(g==="static"?o.css({position:"relative",top:o.to.top,left:o.to.left}):e.each(["top","left"],function(e,t){o.css(t,function(t,n){var r=parseInt(n,10),i=e?o.to.left:o.to.top;return n==="auto"?i+"px":r+i+"px"})})),e.effects.removeWrapper(o),n()}})}}(jQuery),function(e,t){e.effects.effect.shake=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=t.direction||"left",u=t.distance||20,a=t.times||3,f=a*2+1,l=Math.round(t.duration/f),c=o==="up"||o==="down"?"top":"left",h=o==="up"||o==="left",p={},d={},v={},m,g=r.queue(),y=g.length;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),p[c]=(h?"-=":"+=")+u,d[c]=(h?"+=":"-=")+u*2,v[c]=(h?"-=":"+=")+u*2,r.animate(p,l,t.easing);for(m=1;m1&&g.splice.apply(g,[1,0].concat(g.splice(y,f+1))),r.dequeue()}}(jQuery),function(e,t){e.effects.effect.slide=function(t,n){var r=e(this),i=["position","top","bottom","left","right","width","height"],s=e.effects.setMode(r,t.mode||"show"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left",l,c={};e.effects.save(r,i),r.show(),l=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(r).css({overflow:"hidden"}),o&&r.css(a,f?isNaN(l)?"-"+l:-l:l),c[a]=(o?f?"+=":"-=":f?"-=":"+=")+l,r.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}}(jQuery),function(e,t){e.effects.effect.transfer=function(t,n){var r=e(this),i=e(t.to),s=i.css("position")==="fixed",o=e("body"),u=s?o.scrollTop():0,a=s?o.scrollLeft():0,f=i.offset(),l={top:f.top-u,left:f.left-a,height:i.innerHeight(),width:i.innerWidth()},c=r.offset(),h=e("
    ").appendTo(document.body).addClass(t.className).css({top:c.top-u,left:c.left-a,height:r.innerHeight(),width:r.innerWidth(),position:s?"fixed":"absolute"}).animate(l,t.duration,t.easing,function(){h.remove(),n()})}}(jQuery),function(e,t){e.widget("ui.menu",{version:"1.10.1",defaultElement:"
      ",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}).bind("click"+this.eventNamespace,e.proxy(function(e){this.options.disabled&&e.preventDefault()},this)),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item > a":function(e){e.preventDefault()},"click .ui-state-disabled > a":function(e){e.preventDefault()},"click .ui-menu-item:has(a)":function(t){var n=e(t.target).closest(".ui-menu-item");!this.mouseHandled&&n.not(".ui-state-disabled").length&&(this.mouseHandled=!0,this.select(t),n.has(".ui-menu").length?this.expand(t):this.element.is(":focus")||(this.element.trigger("focus",[!0]),this.active&&this.active.parents(".ui-menu").length===1&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){var n=e(t.currentTarget);n.siblings().children(".ui-state-active").removeClass("ui-state-active"),this.focus(t,n)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var n=this.active||this.element.children(".ui-menu-item").eq(0);t||this.focus(e,n)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){e(t.target).closest(".ui-menu").length||this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){function a(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var n,r,i,s,o,u=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:u=!1,r=this.previousFilter||"",i=String.fromCharCode(t.keyCode),s=!1,clearTimeout(this.filterTimer),i===r?s=!0:i=r+i,o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())}),n=s&&n.index(this.active.next())!==-1?this.active.nextAll(".ui-menu-item"):n,n.length||(i=String.fromCharCode(t.keyCode),o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())})),n.length?(this.focus(t,n),n.length>1?(this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter):delete this.previousFilter}u&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.children("a[aria-haspopup='true']").length?this.expand(e):this.select(e))},refresh:function(){var t,n=this.options.icons.submenu,r=this.element.find(this.options.menus);r.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),r=t.prev("a"),i=e("").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);r.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",r.attr("id"))}),t=r.add(this.element),t.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","presentation").children("a").uniqueId().addClass("ui-corner-all").attr({tabIndex:-1,role:this._itemRole()}),t.children(":not(.ui-menu-item)").each(function(){var t=e(this);/[^\-\u2014\u2013\s]/.test(t.text())||t.addClass("ui-widget-content ui-menu-divider")}),t.children(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){e==="icons"&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(t.submenu),this._super(e,t)},focus:function(e,t){var n,r;this.blur(e,e&&e.type==="focus"),this._scrollIntoView(t),this.active=t.first(),r=this.active.children("a").addClass("ui-state-focus"),this.options.role&&this.element.attr("aria-activedescendant",r.attr("id")),this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),e&&e.type==="keydown"?this._close():this.timer=this._delay(function(){this._close()},this.delay),n=t.children(".ui-menu"),n.length&&/^mouse/.test(e.type)&&this._startOpening(n),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var n,r,i,s,o,u;this._hasScroll()&&(n=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,r=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,i=t.offset().top-this.activeMenu.offset().top-n-r,s=this.activeMenu.scrollTop(),o=this.activeMenu.height(),u=t.height(),i<0?this.activeMenu.scrollTop(s+i):i+u>o&&this.activeMenu.scrollTop(s+i-o+u))},blur:function(e,t){t||clearTimeout(this.timer);if(!this.active)return;this.active.children("a").removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active})},_startOpening:function(e){clearTimeout(this.timer);if(e.attr("aria-hidden")!=="true")return;this.timer=this._delay(function(){this._close(),this._open(e)},this.delay)},_open:function(t){var n=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(n)},collapseAll:function(t,n){clearTimeout(this.timer),this.timer=this._delay(function(){var r=n?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));r.length||(r=this.element),this._close(r),this.blur(t),this.activeMenu=r},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,n){var r;this.active&&(e==="first"||e==="last"?r=this.active[e==="first"?"prevAll":"nextAll"](".ui-menu-item").eq(-1):r=this.active[e+"All"](".ui-menu-item").eq(0));if(!r||!r.length||!this.active)r=this.activeMenu.children(".ui-menu-item")[t]();this.focus(n,r)},nextPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isLastItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r-i<0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item")[this.active?"last":"first"]())},previousPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isFirstItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r+i>0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item").first())},_hasScroll:function(){return this.element.outerHeight()
    "),o=s.children()[0];return e("body").append(s),r=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,r===i&&(i=s[0].clientWidth),s.remove(),n=r-i},getScrollInfo:function(t){var n=t.isWindow?"":t.element.css("overflow-x"),r=t.isWindow?"":t.element.css("overflow-y"),i=n==="scroll"||n==="auto"&&t.width0?"right":"center",vertical:u<0?"top":o>0?"bottom":"middle"};lr(i(o),i(u))?h.important="horizontal":h.important="vertical",t.using.call(this,e,h)}),a.offset(e.extend(C,{using:u}))})},e.ui.position={fit:{left:function(e,t){var n=t.within,i=n.isWindow?n.scrollLeft:n.offset.left,s=n.width,o=e.left-t.collisionPosition.marginLeft,u=i-o,a=o+t.collisionWidth-s-i,f;t.collisionWidth>s?u>0&&a<=0?(f=e.left+u+t.collisionWidth-s-i,e.left+=u-f):a>0&&u<=0?e.left=i:u>a?e.left=i+s-t.collisionWidth:e.left=i:u>0?e.left+=u:a>0?e.left-=a:e.left=r(e.left-o,e.left)},top:function(e,t){var n=t.within,i=n.isWindow?n.scrollTop:n.offset.top,s=t.within.height,o=e.top-t.collisionPosition.marginTop,u=i-o,a=o+t.collisionHeight-s-i,f;t.collisionHeight>s?u>0&&a<=0?(f=e.top+u+t.collisionHeight-s-i,e.top+=u-f):a>0&&u<=0?e.top=i:u>a?e.top=i+s-t.collisionHeight:e.top=i:u>0?e.top+=u:a>0?e.top-=a:e.top=r(e.top-o,e.top)}},flip:{left:function(e,t){var n=t.within,r=n.offset.left+n.scrollLeft,s=n.width,o=n.isWindow?n.scrollLeft:n.offset.left,u=e.left-t.collisionPosition.marginLeft,a=u-o,f=u+t.collisionWidth-s-o,l=t.my[0]==="left"?-t.elemWidth:t.my[0]==="right"?t.elemWidth:0,c=t.at[0]==="left"?t.targetWidth:t.at[0]==="right"?-t.targetWidth:0,h=-2*t.offset[0],p,d;if(a<0){p=e.left+l+c+h+t.collisionWidth-s-r;if(p<0||p0){d=e.left-t.collisionPosition.marginLeft+l+c+h-o;if(d>0||i(d)a&&(v<0||v0&&(d=e.top-t.collisionPosition.marginTop+c+h+p-o,e.top+c+h+p>f&&(d>0||i(d)10&&i<11,t.innerHTML="",n.removeChild(t)}()}(jQuery),function(e,t){e.widget("ui.progressbar",{version:"1.10.1",options:{max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min}),this.valueDiv=e("
    ").appendTo(this.element),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(e){if(e===t)return this.options.value;this.options.value=this._constrainedValue(e),this._refreshValue()},_constrainedValue:function(e){return e===t&&(e=this.options.value),this.indeterminate=e===!1,typeof e!="number"&&(e=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,e))},_setOptions:function(e){var t=e.value;delete e.value,this._super(e),this.options.value=this._constrainedValue(t),this._refreshValue()},_setOption:function(e,t){e==="max"&&(t=Math.max(this.min,t)),this._super(e,t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var t=this.options.value,n=this._percentage();this.valueDiv.toggle(this.indeterminate||t>this.min).toggleClass("ui-corner-right",t===this.options.max).width(n.toFixed(0)+"%"),this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=e("
    ").appendTo(this.valueDiv))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":t}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),t===this.options.max&&this._trigger("complete")}})}(jQuery),function(e,t){var n=5;e.widget("ui.slider",e.ui.mouse,{version:"1.10.1",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var t,n,r=this.options,i=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),s="",o=[];n=r.values&&r.values.length||1,i.length>n&&(i.slice(n).remove(),i=i.slice(0,n));for(t=i.length;t
    ").appendTo(this.element),n="ui-slider-range ui-widget-header ui-corner-all"):this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({left:"",bottom:""}),this.range.addClass(n+(t.range==="min"||t.range==="max"?" ui-slider-range-"+t.range:""))):this.range=e([])},_setupEvents:function(){var e=this.handles.add(this.range).filter("a");this._off(e),this._on(e,this._handleEvents),this._hoverable(e),this._focusable(e)},_destroy:function(){this.handles.remove(),this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(t){var n,r,i,s,o,u,a,f,l=this,c=this.options;return c.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),n={x:t.pageX,y:t.pageY},r=this._normValueFromMouse(n),i=this._valueMax()-this._valueMin()+1,this.handles.each(function(t){var n=Math.abs(r-l.values(t));if(i>n||i===n&&(t===l._lastChangedValue||l.values(t)===c.min))i=n,s=e(this),o=t}),u=this._start(t,o),u===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,s.addClass("ui-state-active").focus(),a=s.offset(),f=!e(t.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=f?{left:0,top:0}:{left:t.pageX-a.left-s.width()/2,top:t.pageY-a.top-s.height()/2-(parseInt(s.css("borderTopWidth"),10)||0)-(parseInt(s.css("borderBottomWidth"),10)||0)+(parseInt(s.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,r),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},n=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,n),!1},_mouseStop:function(e){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,n,r,i,s;return this.orientation==="horizontal"?(t=this.elementSize.width,n=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,n=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),r=n/t,r>1&&(r=1),r<0&&(r=0),this.orientation==="vertical"&&(r=1-r),i=this._valueMax()-this._valueMin(),s=this._valueMin()+r*i,this._trimAlignValue(s)},_start:function(e,t){var n={handle:this.handles[t],value:this.value()};return this.options.values&&this.options.values.length&&(n.value=this.values(t),n.values=this.values()),this._trigger("start",e,n)},_slide:function(e,t,n){var r,i,s;this.options.values&&this.options.values.length?(r=this.values(t?0:1),this.options.values.length===2&&this.options.range===!0&&(t===0&&n>r||t===1&&n1){this.options.values[t]=this._trimAlignValue(n),this._refreshValue(),this._change(null,t);return}if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(t):this.value();r=this.options.values,i=arguments[0];for(s=0;s=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,n=(e-this._valueMin())%t,r=e-n;return Math.abs(n)*2>=t&&(r+=n>0?t:-t),parseFloat(r.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var t,n,r,i,s,o=this.options.range,u=this.options,a=this,f=this._animateOff?!1:u.animate,l={};this.options.values&&this.options.values.length?this.handles.each(function(r){n=(a.values(r)-a._valueMin())/(a._valueMax()-a._valueMin())*100,l[a.orientation==="horizontal"?"left":"bottom"]=n+"%",e(this).stop(1,1)[f?"animate":"css"](l,u.animate),a.options.range===!0&&(a.orientation==="horizontal"?(r===0&&a.range.stop(1,1)[f?"animate":"css"]({left:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({width:n-t+"%"},{queue:!1,duration:u.animate})):(r===0&&a.range.stop(1,1)[f?"animate":"css"]({bottom:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({height:n-t+"%"},{queue:!1,duration:u.animate}))),t=n}):(r=this.value(),i=this._valueMin(),s=this._valueMax(),n=s!==i?(r-i)/(s-i)*100:0,l[this.orientation==="horizontal"?"left":"bottom"]=n+"%",this.handle.stop(1,1)[f?"animate":"css"](l,u.animate),o==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[f?"animate":"css"]({width:n+"%"},u.animate),o==="max"&&this.orientation==="horizontal"&&this.range[f?"animate":"css"]({width:100-n+"%"},{queue:!1,duration:u.animate}),o==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[f?"animate":"css"]({height:n+"%"},u.animate),o==="max"&&this.orientation==="vertical"&&this.range[f?"animate":"css"]({height:100-n+"%"},{queue:!1,duration:u.animate}))},_handleEvents:{keydown:function(t){var r,i,s,o,u=e(t.target).data("ui-slider-handle-index");switch(t.keyCode){case e.ui.keyCode.HOME:case e.ui.keyCode.END:case e.ui.keyCode.PAGE_UP:case e.ui.keyCode.PAGE_DOWN:case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:t.preventDefault();if(!this._keySliding){this._keySliding=!0,e(t.target).addClass("ui-state-active"),r=this._start(t,u);if(r===!1)return}}o=this.options.step,this.options.values&&this.options.values.length?i=s=this.values(u):i=s=this.value();switch(t.keyCode){case e.ui.keyCode.HOME:s=this._valueMin();break;case e.ui.keyCode.END:s=this._valueMax();break;case e.ui.keyCode.PAGE_UP:s=this._trimAlignValue(i+(this._valueMax()-this._valueMin())/n);break;case e.ui.keyCode.PAGE_DOWN:s=this._trimAlignValue(i-(this._valueMax()-this._valueMin())/n);break;case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:if(i===this._valueMax())return;s=this._trimAlignValue(i+o);break;case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(i===this._valueMin())return;s=this._trimAlignValue(i-o)}this._slide(t,u,s)},click:function(e){e.preventDefault()},keyup:function(t){var n=e(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,n),this._change(t,n),e(t.target).removeClass("ui-state-active"))}}})}(jQuery),function(e){function t(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.widget("ui.spinner",{version:"1.10.1",defaultElement:"",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t={},n=this.element;return e.each(["min","max","step"],function(e,r){var i=n.attr(r);i!==undefined&&i.length&&(t[r]=i)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(e){if(this.cancelBlur){delete this.cancelBlur;return}this._refresh(),this.previous!==this.element.val()&&this._trigger("change",e)},mousewheel:function(e,t){if(!t)return;if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()},"mousedown .ui-spinner-button":function(t){function r(){var e=this.element[0]===this.document[0].activeElement;e||(this.element.focus(),this.previous=n,this._delay(function(){this.previous=n}))}var n;n=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),r.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,r.call(this)});if(this._start(t)===!1)return;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){if(!e(t.currentTarget).hasClass("ui-state-active"))return;if(this._start(t)===!1)return!1;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var e=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=e.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(e.height()*.5)&&e.height()>0&&e.height(e.height()),this.options.disabled&&this.disable()},_keydown:function(t){var n=this.options,r=e.ui.keyCode;switch(t.keyCode){case r.UP:return this._repeat(null,1,t),!0;case r.DOWN:return this._repeat(null,-1,t),!0;case r.PAGE_UP:return this._repeat(null,n.page,t),!0;case r.PAGE_DOWN:return this._repeat(null,-n.page,t),!0}return!1},_uiSpinnerHtml:function(){return""},_buttonHtml:function(){return""+""+""+""+""},_start:function(e){return!this.spinning&&this._trigger("start",e)===!1?!1:(this.counter||(this.counter=1),this.spinning=!0,!0)},_repeat:function(e,t,n){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,n)},e),this._spin(t*this.options.step,n)},_spin:function(e,t){var n=this.value()||0;this.counter||(this.counter=1),n=this._adjustValue(n+e*this._increment(this.counter));if(!this.spinning||this._trigger("spin",t,{value:n})!==!1)this._value(n),this.counter++},_increment:function(t){var n=this.options.incremental;return n?e.isFunction(n)?n(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return this.options.min!==null&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=e.toString(),n=t.indexOf(".");return n===-1?0:t.length-n-1},_adjustValue:function(e){var t,n,r=this.options;return t=r.min!==null?r.min:0,n=e-t,n=Math.round(n/r.step)*r.step,e=t+n,e=parseFloat(e.toFixed(this._precision())),r.max!==null&&e>r.max?r.max:r.min!==null&&e1&&decodeURIComponent(e.href.replace(r,""))===decodeURIComponent(location.href.replace(r,""))}var n=0,r=/#.*$/;e.widget("ui.tabs",{version:"1.10.1",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var t=this,n=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",n.collapsible).delegate(".ui-tabs-nav > li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this._processTabs(),n.active=this._initialActive(),e.isArray(n.disabled)&&(n.disabled=e.unique(n.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return t.tabs.index(e)}))).sort()),this.options.active!==!1&&this.anchors.length?this.active=this._findActive(n.active):this.active=e(),this._refresh(),this.active.length&&this.load(n.active)},_initialActive:function(){var t=this.options.active,n=this.options.collapsible,r=location.hash.substring(1);if(t===null){r&&this.tabs.each(function(n,i){if(e(i).attr("aria-controls")===r)return t=n,!1}),t===null&&(t=this.tabs.index(this.tabs.filter(".ui-tabs-active")));if(t===null||t===-1)t=this.tabs.length?0:!1}return t!==!1&&(t=this.tabs.index(this.tabs.eq(t)),t===-1&&(t=n?!1:0)),!n&&t===!1&&this.anchors.length&&(t=0),t},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var n=e(this.document[0].activeElement).closest("li"),r=this.tabs.index(n),i=!0;if(this._handlePageNav(t))return;switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:r++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:i=!1,r--;break;case e.ui.keyCode.END:r=this.anchors.length-1;break;case e.ui.keyCode.HOME:r=0;break;case e.ui.keyCode.SPACE:t.preventDefault(),clearTimeout(this.activating),this._activate(r);return;case e.ui.keyCode.ENTER:t.preventDefault(),clearTimeout(this.activating),this._activate(r===this.options.active?!1:r);return;default:return}t.preventDefault(),clearTimeout(this.activating),r=this._focusNextTab(r,i),t.ctrlKey||(n.attr("aria-selected","false"),this.tabs.eq(r).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",r)},this.delay))},_panelKeydown:function(t){if(this._handlePageNav(t))return;t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP)return this._activate(this._focusNextTab(this.options.active-1,!1)),!0;if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN)return this._activate(this._focusNextTab(this.options.active+1,!0)),!0},_findNextTab:function(t,n){function i(){return t>r&&(t=0),t<0&&(t=r),t}var r=this.tabs.length-1;while(e.inArray(i(),this.options.disabled)!==-1)t=n?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,t){if(e==="active"){this._activate(t);return}if(e==="disabled"){this._setupDisabled(t);return}this._super(e,t),e==="collapsible"&&(this.element.toggleClass("ui-tabs-collapsible",t),!t&&this.options.active===!1&&this._activate(0)),e==="event"&&this._setupEvents(t),e==="heightStyle"&&this._setupHeightStyle(t)},_tabId:function(e){return e.attr("aria-controls")||"ui-tabs-"+i()},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,n=this.tablist.children(":has(a[href])");t.disabled=e.map(n.filter(".ui-state-disabled"),function(e){return n.index(e)}),this._processTabs(),t.active===!1||!this.anchors.length?(t.active=!1,this.active=e()):this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-expanded":"false","aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-expanded":"true","aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist"),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(n,r){var i,o,u,a=e(r).uniqueId().attr("id"),f=e(r).closest("li"),l=f.attr("aria-controls");s(r)?(i=r.hash,o=t.element.find(t._sanitizeSelector(i))):(u=t._tabId(f),i="#"+u,o=t.element.find(i),o.length||(o=t._createPanel(u),o.insertAfter(t.panels[n-1]||t.tablist)),o.attr("aria-live","polite")),o.length&&(t.panels=t.panels.add(o)),l&&f.data("ui-tabs-aria-controls",l),f.attr({"aria-controls":i.substring(1),"aria-labelledby":a}),o.attr("aria-labelledby",a)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel")},_getList:function(){return this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("
    ").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var n=0,r;r=this.tabs[n];n++)t===!0||e.inArray(n,t)!==-1?e(r).addClass("ui-state-disabled").attr("aria-disabled","true"):e(r).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var n={click:function(e){e.preventDefault()}};t&&e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(this.anchors,n),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var n,r=this.element.parent();t==="fill"?(n=r.height(),n-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var t=e(this),r=t.css("position");if(r==="absolute"||r==="fixed")return;n-=t.outerHeight(!0)}),this.element.children().not(this.panels).each(function(){n-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,n-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):t==="auto"&&(n=0,this.panels.each(function(){n=Math.max(n,e(this).height("").height())}).height(n))},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget),s=i.closest("li"),o=s[0]===r[0],u=o&&n.collapsible,a=u?e():this._getPanelForTab(s),f=r.length?this._getPanelForTab(r):e(),l={oldTab:r,oldPanel:f,newTab:u?e():s,newPanel:a};t.preventDefault();if(s.hasClass("ui-state-disabled")||s.hasClass("ui-tabs-loading")||this.running||o&&!n.collapsible||this._trigger("beforeActivate",t,l)===!1)return;n.active=u?!1:this.tabs.index(s),this.active=o?e():s,this.xhr&&this.xhr.abort(),!f.length&&!a.length&&e.error("jQuery UI Tabs: Mismatching fragment identifier."),a.length&&this.load(this.tabs.index(s),t),this._toggle(t,l)},_toggle:function(t,n){function o(){r.running=!1,r._trigger("activate",t,n)}function u(){n.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),i.length&&r.options.show?r._show(i,r.options.show,o):(i.show(),o())}var r=this,i=n.newPanel,s=n.oldPanel;this.running=!0,s.length&&this.options.hide?this._hide(s,this.options.hide,function(){n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),s.hide(),u()),s.attr({"aria-expanded":"false","aria-hidden":"true"}),n.oldTab.attr("aria-selected","false"),i.length&&s.length?n.oldTab.attr("tabIndex",-1):i.length&&this.tabs.filter(function(){return e(this).attr("tabIndex")===0}).attr("tabIndex",-1),i.attr({"aria-expanded":"true","aria-hidden":"false"}),n.newTab.attr({"aria-selected":"true",tabIndex:0})},_activate:function(t){var n,r=this._findActive(t);if(r[0]===this.active[0])return;r.length||(r=this.active),n=r.find(".ui-tabs-anchor")[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop})},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return typeof e=="string"&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),n=t.data("ui-tabs-aria-controls");n?t.attr("aria-controls",n).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")}),this.panels.show(),this.options.heightStyle!=="content"&&this.panels.css("height","")},enable:function(n){var r=this.options.disabled;if(r===!1)return;n===t?r=!1:(n=this._getIndex(n),e.isArray(r)?r=e.map(r,function(e){return e!==n?e:null}):r=e.map(this.tabs,function(e,t){return t!==n?t:null})),this._setupDisabled(r)},disable:function(n){var r=this.options.disabled;if(r===!0)return;if(n===t)r=!0;else{n=this._getIndex(n);if(e.inArray(n,r)!==-1)return;e.isArray(r)?r=e.merge([n],r).sort():r=[n]}this._setupDisabled(r)},load:function(t,n){t=this._getIndex(t);var r=this,i=this.tabs.eq(t),o=i.find(".ui-tabs-anchor"),u=this._getPanelForTab(i),a={tab:i,panel:u};if(s(o[0]))return;this.xhr=e.ajax(this._ajaxSettings(o,n,a)),this.xhr&&this.xhr.statusText!=="canceled"&&(i.addClass("ui-tabs-loading"),u.attr("aria-busy","true"),this.xhr.success(function(e){setTimeout(function(){u.html(e),r._trigger("load",n,a)},1)}).complete(function(e,t){setTimeout(function(){t==="abort"&&r.panels.stop(!1,!0),i.removeClass("ui-tabs-loading"),u.removeAttr("aria-busy"),e===r.xhr&&delete r.xhr},1)}))},_ajaxSettings:function(t,n,r){var i=this;return{url:t.attr("href"),beforeSend:function(t,s){return i._trigger("beforeLoad",n,e.extend({jqXHR:t,ajaxSettings:s},r))}}},_getPanelForTab:function(t){var n=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+n))}})}(jQuery),function(e){function n(t,n){var r=(t.attr("aria-describedby")||"").split(/\s+/);r.push(n),t.data("ui-tooltip-id",n).attr("aria-describedby",e.trim(r.join(" ")))}function r(t){var n=t.data("ui-tooltip-id"),r=(t.attr("aria-describedby")||"").split(/\s+/),i=e.inArray(n,r);i!==-1&&r.splice(i,1),t.removeData("ui-tooltip-id"),r=e.trim(r.join(" ")),r?t.attr("aria-describedby",r):t.removeAttr("aria-describedby")}var t=0;e.widget("ui.tooltip",{version:"1.10.1",options:{content:function(){var t=e(this).attr("title")||"";return e("").text(t).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable()},_setOption:function(t,n){var r=this;if(t==="disabled"){this[n?"_disable":"_enable"](),this.options[t]=n;return}this._super(t,n),t==="content"&&e.each(this.tooltips,function(e,t){r._updateContent(t)})},_disable:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0)}),this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).attr("title","")})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var n=this,r=e(t?t.target:this.element).closest(this.options.items);if(!r.length||r.data("ui-tooltip-id"))return;r.attr("title")&&r.data("ui-tooltip-title",r.attr("title")),r.data("ui-tooltip-open",!0),t&&t.type==="mouseover"&&r.parents().each(function(){var t=e(this),r;t.data("ui-tooltip-open")&&(r=e.Event("blur"),r.target=r.currentTarget=this,n.close(r,!0)),t.attr("title")&&(t.uniqueId(),n.parents[this.id]={element:this,title:t.attr("title")},t.attr("title",""))}),this._updateContent(r,t)},_updateContent:function(e,t){var n,r=this.options.content,i=this,s=t?t.type:null;if(typeof r=="string")return this._open(t,e,r);n=r.call(e[0],function(n){if(!e.data("ui-tooltip-open"))return;i._delay(function(){t&&(t.type=s),this._open(t,e,n)})}),n&&this._open(t,e,n)},_open:function(t,r,i){function f(e){a.of=e;if(s.is(":hidden"))return;s.position(a)}var s,o,u,a=e.extend({},this.options.position);if(!i)return;s=this._find(r);if(s.length){s.find(".ui-tooltip-content").html(i);return}r.is("[title]")&&(t&&t.type==="mouseover"?r.attr("title",""):r.removeAttr("title")),s=this._tooltip(r),n(r,s.attr("id")),s.find(".ui-tooltip-content").html(i),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:f}),f(t)):s.position(e.extend({of:r},this.options.position)),s.hide(),this._show(s,this.options.show),this.options.show&&this.options.show.delay&&(u=this.delayedShow=setInterval(function(){s.is(":visible")&&(f(a.of),clearInterval(u))},e.fx.interval)),this._trigger("open",t,{tooltip:s}),o={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var n=e.Event(t);n.currentTarget=r[0],this.close(n,!0)}},remove:function(){this._removeTooltip(s)}};if(!t||t.type==="mouseover")o.mouseleave="close";if(!t||t.type==="focusin")o.focusout="close";this._on(!0,r,o)},close:function(t){var n=this,i=e(t?t.currentTarget:this.element),s=this._find(i);if(this.closing)return;clearInterval(this.delayedShow),i.data("ui-tooltip-title")&&i.attr("title",i.data("ui-tooltip-title")),r(i),s.stop(!0),this._hide(s,this.options.hide,function(){n._removeTooltip(e(this))}),i.removeData("ui-tooltip-open"),this._off(i,"mouseleave focusout keyup"),i[0]!==this.element[0]&&this._off(i,"remove"),this._off(this.document,"mousemove"),t&&t.type==="mouseleave"&&e.each(this.parents,function(t,r){e(r.element).attr("title",r.title),delete n.parents[t]}),this.closing=!0,this._trigger("close",t,{tooltip:s}),this.closing=!1},_tooltip:function(n){var r="ui-tooltip-"+t++,i=e("
    ").attr({id:r,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));return e("
    ").addClass("ui-tooltip-content").appendTo(i),i.appendTo(this.document[0].body),this.tooltips[r]=n,i},_find:function(t){var n=t.data("ui-tooltip-id");return n?e("#"+n):e()},_removeTooltip:function(e){e.remove(),delete this.tooltips[e.attr("id")]},_destroy:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0),e("#"+n).remove(),r.data("ui-tooltip-title")&&(r.attr("title",r.data("ui-tooltip-title")),r.removeData("ui-tooltip-title"))})}})}(jQuery); \ No newline at end of file diff --git a/webedit/photo_uploader/popup/js/jquery.fileupload-process.js b/webedit/photo_uploader/popup/js/jquery.fileupload-process.js new file mode 100644 index 0000000..8a6b929 --- /dev/null +++ b/webedit/photo_uploader/popup/js/jquery.fileupload-process.js @@ -0,0 +1,172 @@ +/* + * jQuery File Upload Processing Plugin 1.3.0 + * 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 + */ + +/* jshint nomen:false */ +/* global define, window */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + './jquery.fileupload' + ], factory); + } else { + // Browser globals: + factory( + window.jQuery + ); + } +}(function ($) { + 'use strict'; + + var originalAdd = $.blueimp.fileupload.prototype.options.add; + + // The File Upload Processing plugin extends the fileupload widget + // with file processing functionality: + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + // The list of processing actions: + processQueue: [ + /* + { + action: 'log', + type: 'debug' + } + */ + ], + add: function (e, data) { + var $this = $(this); + data.process(function () { + return $this.fileupload('process', data); + }); + originalAdd.call(this, e, data); + } + }, + + processActions: { + /* + log: function (data, options) { + console[options.type]( + 'Processing "' + data.files[data.index].name + '"' + ); + } + */ + }, + + _processFile: function (data, originalData) { + var that = this, + dfd = $.Deferred().resolveWith(that, [data]), + chain = dfd.promise(); + this._trigger('process', null, data); + $.each(data.processQueue, function (i, settings) { + var func = function (data) { + if (originalData.errorThrown) { + return $.Deferred() + .rejectWith(that, [originalData]).promise(); + } + return that.processActions[settings.action].call( + that, + data, + settings + ); + }; + chain = chain.pipe(func, settings.always && func); + }); + chain + .done(function () { + that._trigger('processdone', null, data); + that._trigger('processalways', null, data); + }) + .fail(function () { + that._trigger('processfail', null, data); + that._trigger('processalways', null, data); + }); + return chain; + }, + + // Replaces the settings of each processQueue item that + // are strings starting with an "@", using the remaining + // substring as key for the option map, + // e.g. "@autoUpload" is replaced with options.autoUpload: + _transformProcessQueue: function (options) { + var processQueue = []; + $.each(options.processQueue, function () { + var settings = {}, + action = this.action, + prefix = this.prefix === true ? action : this.prefix; + $.each(this, function (key, value) { + if ($.type(value) === 'string' && + value.charAt(0) === '@') { + settings[key] = options[ + value.slice(1) || (prefix ? prefix + + key.charAt(0).toUpperCase() + key.slice(1) : key) + ]; + } else { + settings[key] = value; + } + + }); + processQueue.push(settings); + }); + options.processQueue = processQueue; + }, + + // Returns the number of files currently in the processsing queue: + processing: function () { + return this._processing; + }, + + // Processes the files given as files property of the data parameter, + // returns a Promise object that allows to bind callbacks: + process: function (data) { + var that = this, + options = $.extend({}, this.options, data); + if (options.processQueue && options.processQueue.length) { + this._transformProcessQueue(options); + if (this._processing === 0) { + this._trigger('processstart'); + } + $.each(data.files, function (index) { + var opts = index ? $.extend({}, options) : options, + func = function () { + if (data.errorThrown) { + return $.Deferred() + .rejectWith(that, [data]).promise(); + } + return that._processFile(opts, data); + }; + opts.index = index; + that._processing += 1; + that._processingQueue = that._processingQueue.pipe(func, func) + .always(function () { + that._processing -= 1; + if (that._processing === 0) { + that._trigger('processstop'); + } + }); + }); + } + return this._processingQueue; + }, + + _create: function () { + this._super(); + this._processing = 0; + this._processingQueue = $.Deferred().resolveWith(this) + .promise(); + } + + }); + +})); diff --git a/webedit/photo_uploader/popup/js/jquery.fileupload-ui.js b/webedit/photo_uploader/popup/js/jquery.fileupload-ui.js new file mode 100644 index 0000000..b9dab7d --- /dev/null +++ b/webedit/photo_uploader/popup/js/jquery.fileupload-ui.js @@ -0,0 +1,699 @@ +/* + * jQuery File Upload User Interface Plugin 9.5.2 + * 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 + */ + +/* jshint nomen:false */ +/* global define, window */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'tmpl', + './jquery.fileupload-image', + './jquery.fileupload-audio', + './jquery.fileupload-video', + './jquery.fileupload-validate' + ], factory); + } else { + // Browser globals: + factory( + window.jQuery, + window.tmpl + ); + } +}(function ($, tmpl) { + 'use strict'; + + $.blueimp.fileupload.prototype._specialOptions.push( + 'filesContainer', + 'uploadTemplateId', + 'downloadTemplateId' + ); + + // The UI version extends the file upload widget + // and adds complete user interface interaction: + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + // By default, files added to the widget are uploaded as soon + // as the user clicks on the start buttons. To enable automatic + // uploads, set the following option to true: + autoUpload: false, + // The ID of the upload template: + uploadTemplateId: 'template-upload', + // The ID of the download template: + downloadTemplateId: 'template-download', + // The container for the list of files. If undefined, it is set to + // an element with class "files" inside of the widget element: + filesContainer: undefined, + // By default, files are appended to the files container. + // Set the following option to true, to prepend files instead: + prependFiles: false, + // The expected data type of the upload response, sets the dataType + // option of the $.ajax upload requests: + dataType: 'json', + + // Function returning the current number of files, + // used by the maxNumberOfFiles validation: + getNumberOfFiles: function () { + return this.filesContainer.children() + .not('.processing').length; + }, + + // Callback to retrieve the list of files from the server response: + getFilesFromResponse: function (data) { + if (data.result && $.isArray(data.result.files)) { + return data.result.files; + } + return []; + }, + + // The add callback is invoked as soon as files are added to the fileupload + // widget (via file input selection, drag & drop or add API call). + // See the basic file upload widget for more information: + add: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var $this = $(this), + that = $this.data('blueimp-fileupload') || + $this.data('fileupload'), + options = that.options; + data.context = that._renderUpload(data.files) + .data('data', data) + .addClass('processing'); + options.filesContainer[ + options.prependFiles ? 'prepend' : 'append' + ](data.context); + that._forceReflow(data.context); + that._transition(data.context); + data.process(function () { + return $this.fileupload('process', data); + }).always(function () { + data.context.each(function (index) { + $(this).find('.size').text( + that._formatFileSize(data.files[index].size) + ); + }).removeClass('processing'); + that._renderPreviews(data); + }).done(function () { + data.context.find('.start').prop('disabled', false); + if ((that._trigger('added', e, data) !== false) && + (options.autoUpload || data.autoUpload) && + data.autoUpload !== false) { + data.submit(); + } + }).fail(function () { + if (data.files.error) { + data.context.each(function (index) { + var error = data.files[index].error; + if (error) { + $(this).find('.error').text(error); + } + }); + } + }); + }, + // Callback for the start of each file upload request: + send: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'); + if (data.context && data.dataType && + data.dataType.substr(0, 6) === 'iframe') { + // Iframe Transport does not support progress events. + // In lack of an indeterminate progress bar, we set + // the progress to 100%, showing the full animated bar: + data.context + .find('.progress').addClass( + !$.support.transition && 'progress-animated' + ) + .attr('aria-valuenow', 100) + .children().first().css( + 'width', + '100%' + ); + } + return that._trigger('sent', e, data); + }, + // Callback for successful uploads: + done: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'), + getFilesFromResponse = data.getFilesFromResponse || + that.options.getFilesFromResponse, + files = getFilesFromResponse(data), + template, + deferred; + if (data.context) { + data.context.each(function (index) { + var file = files[index] || + {error: 'Empty file upload result'}; + deferred = that._addFinishedDeferreds(); + that._transition($(this)).done( + function () { + var node = $(this); + template = that._renderDownload([file]) + .replaceAll(node); + that._forceReflow(template); + that._transition(template).done( + function () { + data.context = $(this); + that._trigger('completed', e, data); + that._trigger('finished', e, data); + deferred.resolve(); + } + ); + } + ); + }); + } else { + template = that._renderDownload(files)[ + that.options.prependFiles ? 'prependTo' : 'appendTo' + ](that.options.filesContainer); + that._forceReflow(template); + deferred = that._addFinishedDeferreds(); + that._transition(template).done( + function () { + data.context = $(this); + that._trigger('completed', e, data); + that._trigger('finished', e, data); + deferred.resolve(); + } + ); + } + }, + // Callback for failed (abort or error) uploads: + fail: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'), + template, + deferred; + if (data.context) { + data.context.each(function (index) { + if (data.errorThrown !== 'abort') { + var file = data.files[index]; + file.error = file.error || data.errorThrown || + true; + deferred = that._addFinishedDeferreds(); + that._transition($(this)).done( + function () { + var node = $(this); + template = that._renderDownload([file]) + .replaceAll(node); + that._forceReflow(template); + that._transition(template).done( + function () { + data.context = $(this); + that._trigger('failed', e, data); + that._trigger('finished', e, data); + deferred.resolve(); + } + ); + } + ); + } else { + deferred = that._addFinishedDeferreds(); + that._transition($(this)).done( + function () { + $(this).remove(); + that._trigger('failed', e, data); + that._trigger('finished', e, data); + deferred.resolve(); + } + ); + } + }); + } else if (data.errorThrown !== 'abort') { + data.context = that._renderUpload(data.files)[ + that.options.prependFiles ? 'prependTo' : 'appendTo' + ](that.options.filesContainer) + .data('data', data); + that._forceReflow(data.context); + deferred = that._addFinishedDeferreds(); + that._transition(data.context).done( + function () { + data.context = $(this); + that._trigger('failed', e, data); + that._trigger('finished', e, data); + deferred.resolve(); + } + ); + } else { + that._trigger('failed', e, data); + that._trigger('finished', e, data); + that._addFinishedDeferreds().resolve(); + } + }, + // Callback for upload progress events: + progress: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var progress = Math.floor(data.loaded / data.total * 100); + if (data.context) { + data.context.each(function () { + $(this).find('.progress') + .attr('aria-valuenow', progress) + .children().first().css( + 'width', + progress + '%' + ); + }); + } + }, + // Callback for global upload progress events: + progressall: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var $this = $(this), + progress = Math.floor(data.loaded / data.total * 100), + globalProgressNode = $this.find('.fileupload-progress'), + extendedProgressNode = globalProgressNode + .find('.progress-extended'); + if (extendedProgressNode.length) { + extendedProgressNode.html( + ($this.data('blueimp-fileupload') || $this.data('fileupload')) + ._renderExtendedProgress(data) + ); + } + globalProgressNode + .find('.progress') + .attr('aria-valuenow', progress) + .children().first().css( + 'width', + progress + '%' + ); + }, + // Callback for uploads start, equivalent to the global ajaxStart event: + start: function (e) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'); + that._resetFinishedDeferreds(); + that._transition($(this).find('.fileupload-progress')).done( + function () { + that._trigger('started', e); + } + ); + }, + // Callback for uploads stop, equivalent to the global ajaxStop event: + stop: function (e) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'), + deferred = that._addFinishedDeferreds(); + $.when.apply($, that._getFinishedDeferreds()) + .done(function () { + that._trigger('stopped', e); + }); + that._transition($(this).find('.fileupload-progress')).done( + function () { + $(this).find('.progress') + .attr('aria-valuenow', '0') + .children().first().css('width', '0%'); + $(this).find('.progress-extended').html(' '); + deferred.resolve(); + } + ); + }, + processstart: function (e) { + if (e.isDefaultPrevented()) { + return false; + } + $(this).addClass('fileupload-processing'); + }, + processstop: function (e) { + if (e.isDefaultPrevented()) { + return false; + } + $(this).removeClass('fileupload-processing'); + }, + // Callback for file deletion: + destroy: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'), + removeNode = function () { + that._transition(data.context).done( + function () { + $(this).remove(); + that._trigger('destroyed', e, data); + } + ); + }; + if (data.url) { + data.dataType = data.dataType || that.options.dataType; + $.ajax(data).done(removeNode).fail(function () { + that._trigger('destroyfailed', e, data); + }); + } else { + removeNode(); + } + } + }, + + _resetFinishedDeferreds: function () { + this._finishedUploads = []; + }, + + _addFinishedDeferreds: function (deferred) { + if (!deferred) { + deferred = $.Deferred(); + } + this._finishedUploads.push(deferred); + return deferred; + }, + + _getFinishedDeferreds: function () { + return this._finishedUploads; + }, + + // Link handler, that allows to download files + // by drag & drop of the links to the desktop: + _enableDragToDesktop: function () { + var link = $(this), + url = link.prop('href'), + name = link.prop('download'), + type = 'application/octet-stream'; + link.bind('dragstart', function (e) { + try { + e.originalEvent.dataTransfer.setData( + 'DownloadURL', + [type, name, url].join(':') + ); + } catch (ignore) {} + }); + }, + + _formatFileSize: function (bytes) { + if (typeof bytes !== 'number') { + return ''; + } + if (bytes >= 1000000000) { + return (bytes / 1000000000).toFixed(2) + ' GB'; + } + if (bytes >= 1000000) { + return (bytes / 1000000).toFixed(2) + ' MB'; + } + return (bytes / 1000).toFixed(2) + ' KB'; + }, + + _formatBitrate: function (bits) { + if (typeof bits !== 'number') { + return ''; + } + if (bits >= 1000000000) { + return (bits / 1000000000).toFixed(2) + ' Gbit/s'; + } + if (bits >= 1000000) { + return (bits / 1000000).toFixed(2) + ' Mbit/s'; + } + if (bits >= 1000) { + return (bits / 1000).toFixed(2) + ' kbit/s'; + } + return bits.toFixed(2) + ' bit/s'; + }, + + _formatTime: function (seconds) { + var date = new Date(seconds * 1000), + days = Math.floor(seconds / 86400); + days = days ? days + 'd ' : ''; + return days + + ('0' + date.getUTCHours()).slice(-2) + ':' + + ('0' + date.getUTCMinutes()).slice(-2) + ':' + + ('0' + date.getUTCSeconds()).slice(-2); + }, + + _formatPercentage: function (floatValue) { + return (floatValue * 100).toFixed(2) + ' %'; + }, + + _renderExtendedProgress: function (data) { + return this._formatBitrate(data.bitrate) + ' | ' + + this._formatTime( + (data.total - data.loaded) * 8 / data.bitrate + ) + ' | ' + + this._formatPercentage( + data.loaded / data.total + ) + ' | ' + + this._formatFileSize(data.loaded) + ' / ' + + this._formatFileSize(data.total); + }, + + _renderTemplate: function (func, files) { + if (!func) { + return $(); + } + var result = func({ + files: files, + formatFileSize: this._formatFileSize, + options: this.options + }); + if (result instanceof $) { + return result; + } + return $(this.options.templatesContainer).html(result).children(); + }, + + _renderPreviews: function (data) { + data.context.find('.preview').each(function (index, elm) { + $(elm).append(data.files[index].preview); + }); + }, + + _renderUpload: function (files) { + return this._renderTemplate( + this.options.uploadTemplate, + files + ); + }, + + _renderDownload: function (files) { + return this._renderTemplate( + this.options.downloadTemplate, + files + ).find('a[download]').each(this._enableDragToDesktop).end(); + }, + + _startHandler: function (e) { + e.preventDefault(); + var button = $(e.currentTarget), + template = button.closest('.template-upload'), + data = template.data('data'); + button.prop('disabled', true); + if (data && data.submit) { + data.submit(); + } + }, + + _cancelHandler: function (e) { + e.preventDefault(); + var template = $(e.currentTarget) + .closest('.template-upload,.template-download'), + data = template.data('data') || {}; + data.context = data.context || template; + if (data.abort) { + data.abort(); + } else { + data.errorThrown = 'abort'; + this._trigger('fail', e, data); + } + }, + + _deleteHandler: function (e) { + e.preventDefault(); + var button = $(e.currentTarget); + this._trigger('destroy', e, $.extend({ + context: button.closest('.template-download'), + type: 'DELETE' + }, button.data())); + }, + + _forceReflow: function (node) { + return $.support.transition && node.length && + node[0].offsetWidth; + }, + + _transition: function (node) { + var dfd = $.Deferred(); + if ($.support.transition && node.hasClass('fade') && node.is(':visible')) { + node.bind( + $.support.transition.end, + function (e) { + // Make sure we don't respond to other transitions events + // in the container element, e.g. from button elements: + if (e.target === node[0]) { + node.unbind($.support.transition.end); + dfd.resolveWith(node); + } + } + ).toggleClass('in'); + } else { + node.toggleClass('in'); + dfd.resolveWith(node); + } + return dfd; + }, + + _initButtonBarEventHandlers: function () { + var fileUploadButtonBar = this.element.find('.fileupload-buttonbar'), + filesList = this.options.filesContainer; + this._on(fileUploadButtonBar.find('.start'), { + click: function (e) { + e.preventDefault(); + filesList.find('.start').click(); + } + }); + this._on(fileUploadButtonBar.find('.cancel'), { + click: function (e) { + e.preventDefault(); + filesList.find('.cancel').click(); + } + }); + this._on(fileUploadButtonBar.find('.delete'), { + click: function (e) { + e.preventDefault(); + filesList.find('.toggle:checked') + .closest('.template-download') + .find('.delete').click(); + fileUploadButtonBar.find('.toggle') + .prop('checked', false); + } + }); + this._on(fileUploadButtonBar.find('.toggle'), { + change: function (e) { + filesList.find('.toggle').prop( + 'checked', + $(e.currentTarget).is(':checked') + ); + } + }); + }, + + _destroyButtonBarEventHandlers: function () { + this._off( + this.element.find('.fileupload-buttonbar') + .find('.start, .cancel, .delete'), + 'click' + ); + this._off( + this.element.find('.fileupload-buttonbar .toggle'), + 'change.' + ); + }, + + _initEventHandlers: function () { + this._super(); + this._on(this.options.filesContainer, { + 'click .start': this._startHandler, + 'click .cancel': this._cancelHandler, + 'click .delete': this._deleteHandler + }); + this._initButtonBarEventHandlers(); + }, + + _destroyEventHandlers: function () { + this._destroyButtonBarEventHandlers(); + this._off(this.options.filesContainer, 'click'); + this._super(); + }, + + _enableFileInputButton: function () { + this.element.find('.fileinput-button input') + .prop('disabled', false) + .parent().removeClass('disabled'); + }, + + _disableFileInputButton: function () { + this.element.find('.fileinput-button input') + .prop('disabled', true) + .parent().addClass('disabled'); + }, + + _initTemplates: function () { + var options = this.options; + options.templatesContainer = this.document[0].createElement( + options.filesContainer.prop('nodeName') + ); + if (tmpl) { + if (options.uploadTemplateId) { + options.uploadTemplate = tmpl(options.uploadTemplateId); + } + if (options.downloadTemplateId) { + options.downloadTemplate = tmpl(options.downloadTemplateId); + } + } + }, + + _initFilesContainer: function () { + var options = this.options; + if (options.filesContainer === undefined) { + options.filesContainer = this.element.find('.files'); + } else if (!(options.filesContainer instanceof $)) { + options.filesContainer = $(options.filesContainer); + } + }, + + _initSpecialOptions: function () { + this._super(); + this._initFilesContainer(); + this._initTemplates(); + }, + + _create: function () { + this._super(); + this._resetFinishedDeferreds(); + if (!$.support.fileInput) { + this._disableFileInputButton(); + } + }, + + enable: function () { + var wasDisabled = false; + if (this.options.disabled) { + wasDisabled = true; + } + this._super(); + if (wasDisabled) { + this.element.find('input, button').prop('disabled', false); + this._enableFileInputButton(); + } + }, + + disable: function () { + if (!this.options.disabled) { + this.element.find('input, button').prop('disabled', true); + this._disableFileInputButton(); + } + this._super(); + } + + }); + +})); diff --git a/webedit/photo_uploader/popup/js/jquery.fileupload.js b/webedit/photo_uploader/popup/js/jquery.fileupload.js new file mode 100644 index 0000000..69430ec --- /dev/null +++ b/webedit/photo_uploader/popup/js/jquery.fileupload.js @@ -0,0 +1,1462 @@ +/* + * jQuery File Upload Plugin 5.40.1 + * 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 + */ + +/* jshint nomen:false */ +/* global define, window, document, location, Blob, FormData */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'jquery.ui.widget' + ], factory); + } else { + // Browser globals: + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + + // Detect file input support, based on + // http://viljamis.com/blog/2012/file-upload-support-on-mobile/ + $.support.fileInput = !(new RegExp( + // Handle devices which give false positives for the feature detection: + '(Android (1\\.[0156]|2\\.[01]))' + + '|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' + + '|(w(eb)?OSBrowser)|(webOS)' + + '|(Kindle/(1\\.0|2\\.[05]|3\\.0))' + ).test(window.navigator.userAgent) || + // Feature detection for all other devices: + $('').prop('disabled')); + + // The FileReader API is not actually used, but works as feature detection, + // as some Safari versions (5?) support XHR file uploads via the FormData API, + // but not non-multipart XHR file uploads. + // window.XMLHttpRequestUpload is not available on IE10, so we check for + // window.ProgressEvent instead to detect XHR2 file upload capability: + $.support.xhrFileUpload = !!(window.ProgressEvent && window.FileReader); + $.support.xhrFormDataFileUpload = !!window.FormData; + + // Detect support for Blob slicing (required for chunked uploads): + $.support.blobSlice = window.Blob && (Blob.prototype.slice || + Blob.prototype.webkitSlice || Blob.prototype.mozSlice); + + // The fileupload widget listens for change events on file input fields defined + // via fileInput setting and paste or drop events of the given dropZone. + // In addition to the default jQuery Widget methods, the fileupload widget + // exposes the "add" and "send" methods, to add or directly send files using + // the fileupload API. + // By default, files added via file input selection, paste, drag & drop or + // "add" method are uploaded immediately, but it is possible to override + // the "add" callback option to queue file uploads. + $.widget('blueimp.fileupload', { + + options: { + // The drop target element(s), by the default the complete document. + // Set to null to disable drag & drop support: + dropZone: $(document), + // The paste target element(s), by the default the complete document. + // Set to null to disable paste support: + pasteZone: $(document), + // The file input field(s), that are listened to for change events. + // If undefined, it is set to the file input fields inside + // of the widget element on plugin initialization. + // Set to null to disable the change listener. + fileInput: undefined, + // By default, the file input field is replaced with a clone after + // each input field change event. This is required for iframe transport + // queues and allows change events to be fired for the same file + // selection, but can be disabled by setting the following option to false: + replaceFileInput: true, + // The parameter name for the file form data (the request argument name). + // If undefined or empty, the name property of the file input field is + // used, or "files[]" if the file input name property is also empty, + // can be a string or an array of strings: + paramName: undefined, + // By default, each file of a selection is uploaded using an individual + // request for XHR type uploads. Set to false to upload file + // selections in one request each: + singleFileUploads: true, + // To limit the number of files uploaded with one XHR request, + // set the following option to an integer greater than 0: + limitMultiFileUploads: undefined, + // The following option limits the number of files uploaded with one + // XHR request to keep the request size under or equal to the defined + // limit in bytes: + limitMultiFileUploadSize: undefined, + // Multipart file uploads add a number of bytes to each uploaded file, + // therefore the following option adds an overhead for each file used + // in the limitMultiFileUploadSize configuration: + limitMultiFileUploadSizeOverhead: 512, + // Set the following option to true to issue all file upload requests + // in a sequential order: + sequentialUploads: false, + // To limit the number of concurrent uploads, + // set the following option to an integer greater than 0: + limitConcurrentUploads: undefined, + // Set the following option to true to force iframe transport uploads: + forceIframeTransport: false, + // Set the following option to the location of a redirect url on the + // origin server, for cross-domain iframe transport uploads: + redirect: undefined, + // The parameter name for the redirect url, sent as part of the form + // data and set to 'redirect' if this option is empty: + redirectParamName: undefined, + // Set the following option to the location of a postMessage window, + // to enable postMessage transport uploads: + postMessage: undefined, + // By default, XHR file uploads are sent as multipart/form-data. + // The iframe transport is always using multipart/form-data. + // Set to false to enable non-multipart XHR uploads: + multipart: true, + // To upload large files in smaller chunks, set the following option + // to a preferred maximum chunk size. If set to 0, null or undefined, + // or the browser does not support the required Blob API, files will + // be uploaded as a whole. + maxChunkSize: undefined, + // When a non-multipart upload or a chunked multipart upload has been + // aborted, this option can be used to resume the upload by setting + // it to the size of the already uploaded bytes. This option is most + // useful when modifying the options object inside of the "add" or + // "send" callbacks, as the options are cloned for each file upload. + uploadedBytes: undefined, + // By default, failed (abort or error) file uploads are removed from the + // global progress calculation. Set the following option to false to + // prevent recalculating the global progress data: + recalculateProgress: true, + // Interval in milliseconds to calculate and trigger progress events: + progressInterval: 100, + // Interval in milliseconds to calculate progress bitrate: + bitrateInterval: 500, + // By default, uploads are started automatically when adding files: + autoUpload: true, + + // Error and info messages: + messages: { + uploadedBytes: 'Uploaded bytes exceed file size' + }, + + // Translation function, gets the message key to be translated + // and an object with context specific data as arguments: + i18n: function (message, context) { + message = this.messages[message] || message.toString(); + if (context) { + $.each(context, function (key, value) { + message = message.replace('{' + key + '}', value); + }); + } + return message; + }, + + // Additional form data to be sent along with the file uploads can be set + // using this option, which accepts an array of objects with name and + // value properties, a function returning such an array, a FormData + // object (for XHR file uploads), or a simple object. + // The form of the first fileInput is given as parameter to the function: + formData: function (form) { + return form.serializeArray(); + }, + + // The add callback is invoked as soon as files are added to the fileupload + // widget (via file input selection, drag & drop, paste or add API call). + // If the singleFileUploads option is enabled, this callback will be + // called once for each file in the selection for XHR file uploads, else + // once for each file selection. + // + // The upload starts when the submit method is invoked on the data parameter. + // The data object contains a files property holding the added files + // and allows you to override plugin options as well as define ajax settings. + // + // Listeners for this callback can also be bound the following way: + // .bind('fileuploadadd', func); + // + // data.submit() returns a Promise object and allows to attach additional + // handlers using jQuery's Deferred callbacks: + // data.submit().done(func).fail(func).always(func); + add: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + if (data.autoUpload || (data.autoUpload !== false && + $(this).fileupload('option', 'autoUpload'))) { + data.process().done(function () { + data.submit(); + }); + } + }, + + // Other callbacks: + + // Callback for the submit event of each file upload: + // submit: function (e, data) {}, // .bind('fileuploadsubmit', func); + + // Callback for the start of each file upload request: + // send: function (e, data) {}, // .bind('fileuploadsend', func); + + // Callback for successful uploads: + // done: function (e, data) {}, // .bind('fileuploaddone', func); + + // Callback for failed (abort or error) uploads: + // fail: function (e, data) {}, // .bind('fileuploadfail', func); + + // Callback for completed (success, abort or error) requests: + // always: function (e, data) {}, // .bind('fileuploadalways', func); + + // Callback for upload progress events: + // progress: function (e, data) {}, // .bind('fileuploadprogress', func); + + // Callback for global upload progress events: + // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func); + + // Callback for uploads start, equivalent to the global ajaxStart event: + // start: function (e) {}, // .bind('fileuploadstart', func); + + // Callback for uploads stop, equivalent to the global ajaxStop event: + // stop: function (e) {}, // .bind('fileuploadstop', func); + + // Callback for change events of the fileInput(s): + // change: function (e, data) {}, // .bind('fileuploadchange', func); + + // Callback for paste events to the pasteZone(s): + // paste: function (e, data) {}, // .bind('fileuploadpaste', func); + + // Callback for drop events of the dropZone(s): + // drop: function (e, data) {}, // .bind('fileuploaddrop', func); + + // Callback for dragover events of the dropZone(s): + // dragover: function (e) {}, // .bind('fileuploaddragover', func); + + // Callback for the start of each chunk upload request: + // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func); + + // Callback for successful chunk uploads: + // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func); + + // Callback for failed (abort or error) chunk uploads: + // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func); + + // Callback for completed (success, abort or error) chunk upload requests: + // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func); + + // The plugin options are used as settings object for the ajax calls. + // The following are jQuery ajax settings required for the file uploads: + processData: false, + contentType: false, + cache: false, + container_el : null //사용자추가 + }, + + // A list of options that require reinitializing event listeners and/or + // special initialization code: + _specialOptions: [ + 'fileInput', + 'dropZone', + 'pasteZone', + 'multipart', + 'forceIframeTransport' + ], + + _blobSlice: $.support.blobSlice && function () { + var slice = this.slice || this.webkitSlice || this.mozSlice; + return slice.apply(this, arguments); + }, + + _BitrateTimer: function () { + this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime()); + this.loaded = 0; + this.bitrate = 0; + this.getBitrate = function (now, loaded, interval) { + var timeDiff = now - this.timestamp; + if (!this.bitrate || !interval || timeDiff > interval) { + this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8; + this.loaded = loaded; + this.timestamp = now; + } + return this.bitrate; + }; + }, + + _isXHRUpload: function (options) { + return !options.forceIframeTransport && + ((!options.multipart && $.support.xhrFileUpload) || + $.support.xhrFormDataFileUpload); + }, + + _getFormData: function (options) { + var formData; + if ($.type(options.formData) === 'function') { + return options.formData(options.form); + } + if ($.isArray(options.formData)) { + return options.formData; + } + if ($.type(options.formData) === 'object') { + formData = []; + $.each(options.formData, function (name, value) { + formData.push({name: name, value: value}); + }); + return formData; + } + return []; + }, + + _getTotal: function (files) { + var total = 0; + $.each(files, function (index, file) { + total += file.size || 1; + }); + + return total; + }, + + _initProgressObject: function (obj) { + var progress = { + loaded: 0, + total: 0, + bitrate: 0 + }; + if (obj._progress) { + $.extend(obj._progress, progress); + } else { + obj._progress = progress; + } + }, + + _initResponseObject: function (obj) { + var prop; + if (obj._response) { + for (prop in obj._response) { + if (obj._response.hasOwnProperty(prop)) { + delete obj._response[prop]; + } + } + } else { + obj._response = {}; + } + }, + + _onProgress: function (e, data) { + if (e.lengthComputable) { + var now = ((Date.now) ? Date.now() : (new Date()).getTime()), + loaded; + if (data._time && data.progressInterval && + (now - data._time < data.progressInterval) && + e.loaded !== e.total) { + return; + } + data._time = now; + loaded = Math.floor( + e.loaded / e.total * (data.chunkSize || data._progress.total) + ) + (data.uploadedBytes || 0); + // Add the difference from the previously loaded state + // to the global loaded counter: + this._progress.loaded += (loaded - data._progress.loaded); + this._progress.bitrate = this._bitrateTimer.getBitrate( + now, + this._progress.loaded, + data.bitrateInterval + ); + data._progress.loaded = data.loaded = loaded; + data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate( + now, + loaded, + data.bitrateInterval + ); + // Trigger a custom progress event with a total data property set + // to the file size(s) of the current upload and a loaded data + // property calculated accordingly: + this._trigger( + 'progress', + $.Event('progress', {delegatedEvent: e}), + data + ); + // Trigger a global progress event for all current file uploads, + // including ajax calls queued for sequential file uploads: + this._trigger( + 'progressall', + $.Event('progressall', {delegatedEvent: e}), + this._progress + ); + } + }, + + _initProgressListener: function (options) { + var that = this, + xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr(); + // Accesss to the native XHR object is required to add event listeners + // for the upload progress event: + if (xhr.upload) { + $(xhr.upload).bind('progress', function (e) { + var oe = e.originalEvent; + // Make sure the progress event properties get copied over: + e.lengthComputable = oe.lengthComputable; + e.loaded = oe.loaded; + e.total = oe.total; + that._onProgress(e, options); + }); + options.xhr = function () { + return xhr; + }; + } + }, + + _isInstanceOf: function (type, obj) { + // Cross-frame instanceof check + return Object.prototype.toString.call(obj) === '[object ' + type + ']'; + }, + + _initXHRData: function (options) { + var that = this, + formData, + file = options.files[0], + // Ignore non-multipart setting if not supported: + multipart = options.multipart || !$.support.xhrFileUpload, + paramName = $.type(options.paramName) === 'array' ? + options.paramName[0] : options.paramName; + options.headers = $.extend({}, options.headers); + if (options.contentRange) { + options.headers['Content-Range'] = options.contentRange; + } + if (!multipart || options.blob || !this._isInstanceOf('File', file)) { + options.headers['Content-Disposition'] = 'attachment; filename="' + + encodeURI(file.name) + '"'; + } + if (!multipart) { + options.contentType = file.type || 'application/octet-stream'; + options.data = options.blob || file; + } else if ($.support.xhrFormDataFileUpload) { + if (options.postMessage) { + // window.postMessage does not allow sending FormData + // objects, so we just add the File/Blob objects to + // the formData array and let the postMessage window + // create the FormData object out of this array: + formData = this._getFormData(options); + if (options.blob) { + formData.push({ + name: paramName, + value: options.blob + }); + } else { + $.each(options.files, function (index, file) { + formData.push({ + name: ($.type(options.paramName) === 'array' && + options.paramName[index]) || paramName, + value: file + }); + }); + } + } else { + if (that._isInstanceOf('FormData', options.formData)) { + formData = options.formData; + } else { + formData = new FormData(); + $.each(this._getFormData(options), function (index, field) { + formData.append(field.name, field.value); + }); + } + if (options.blob) { + formData.append(paramName, options.blob, file.name); + } else { + $.each(options.files, function (index, file) { + // This check allows the tests to run with + // dummy objects: + if (that._isInstanceOf('File', file) || + that._isInstanceOf('Blob', file)) { + formData.append( + ($.type(options.paramName) === 'array' && + options.paramName[index]) || paramName, + file, + file.uploadName || file.name + ); + } + }); + } + } + options.data = formData; + } + // Blob reference is not needed anymore, free memory: + options.blob = null; + }, + + _initIframeSettings: function (options) { + var targetHost = $('').prop('href', options.url).prop('host'); + // Setting the dataType to iframe enables the iframe transport: + options.dataType = 'iframe ' + (options.dataType || ''); + // The iframe transport accepts a serialized array as form data: + options.formData = this._getFormData(options); + // Add redirect url to form data on cross-domain uploads: + if (options.redirect && targetHost && targetHost !== location.host) { + options.formData.push({ + name: options.redirectParamName || 'redirect', + value: options.redirect + }); + } + }, + + _initDataSettings: function (options) { + if (this._isXHRUpload(options)) { + if (!this._chunkedUpload(options, true)) { + if (!options.data) { + this._initXHRData(options); + } + this._initProgressListener(options); + } + if (options.postMessage) { + // Setting the dataType to postmessage enables the + // postMessage transport: + options.dataType = 'postmessage ' + (options.dataType || ''); + } + } else { + this._initIframeSettings(options); + } + }, + + _getParamName: function (options) { + var fileInput = $(options.fileInput), + paramName = options.paramName; + if (!paramName) { + paramName = []; + fileInput.each(function () { + var input = $(this), + name = input.prop('name') || 'files[]', + i = (input.prop('files') || [1]).length; + while (i) { + paramName.push(name); + i -= 1; + } + }); + if (!paramName.length) { + paramName = [fileInput.prop('name') || 'files[]']; + } + } else if (!$.isArray(paramName)) { + paramName = [paramName]; + } + return paramName; + }, + + _initFormSettings: function (options) { + // Retrieve missing options from the input field and the + // associated form, if available: + if (!options.form || !options.form.length) { + options.form = $(options.fileInput.prop('form')); + // If the given file input doesn't have an associated form, + // use the default widget file input's form: + if (!options.form.length) { + options.form = $(this.options.fileInput.prop('form')); + } + } + options.paramName = this._getParamName(options); + if (!options.url) { + options.url = options.form.prop('action') || location.href; + } + // The HTTP request method must be "POST" or "PUT": + options.type = (options.type || + ($.type(options.form.prop('method')) === 'string' && + options.form.prop('method')) || '' + ).toUpperCase(); + if (options.type !== 'POST' && options.type !== 'PUT' && + options.type !== 'PATCH') { + options.type = 'POST'; + } + if (!options.formAcceptCharset) { + options.formAcceptCharset = options.form.attr('accept-charset'); + } + }, + + _getAJAXSettings: function (data) { + var options = $.extend({}, this.options, data); + this._initFormSettings(options); + this._initDataSettings(options); + return options; + }, + + // jQuery 1.6 doesn't provide .state(), + // while jQuery 1.8+ removed .isRejected() and .isResolved(): + _getDeferredState: function (deferred) { + if (deferred.state) { + return deferred.state(); + } + if (deferred.isResolved()) { + return 'resolved'; + } + if (deferred.isRejected()) { + return 'rejected'; + } + return 'pending'; + }, + + // Maps jqXHR callbacks to the equivalent + // methods of the given Promise object: + _enhancePromise: function (promise) { + promise.success = promise.done; + promise.error = promise.fail; + promise.complete = promise.always; + return promise; + }, + + // Creates and returns a Promise object enhanced with + // the jqXHR methods abort, success, error and complete: + _getXHRPromise: function (resolveOrReject, context, args) { + var dfd = $.Deferred(), + promise = dfd.promise(); + context = context || this.options.context || promise; + if (resolveOrReject === true) { + dfd.resolveWith(context, args); + } else if (resolveOrReject === false) { + dfd.rejectWith(context, args); + } + promise.abort = dfd.promise; + return this._enhancePromise(promise); + }, + + // Adds convenience methods to the data callback argument: + _addConvenienceMethods: function (e, data) { + var that = this, + getPromise = function (args) { + return $.Deferred().resolveWith(that, args).promise(); + }; + data.process = function (resolveFunc, rejectFunc) { + if (resolveFunc || rejectFunc) { + data._processQueue = this._processQueue = + (this._processQueue || getPromise([this])).pipe( + function () { + if (data.errorThrown) { + return $.Deferred() + .rejectWith(that, [data]).promise(); + } + return getPromise(arguments); + } + ).pipe(resolveFunc, rejectFunc); + } + return this._processQueue || getPromise([this]); + }; + data.submit = function () { + if (this.state() !== 'pending') { + data.jqXHR = this.jqXHR = + (that._trigger( + 'submit', + $.Event('submit', {delegatedEvent: e}), + this + ) !== false) && that._onSend(e, this); + } + return this.jqXHR || that._getXHRPromise(); + }; + data.abort = function () { + if (this.jqXHR) { + return this.jqXHR.abort(); + } + this.errorThrown = 'abort'; + that._trigger('fail', null, this); + return that._getXHRPromise(false); + }; + data.state = function () { + if (this.jqXHR) { + return that._getDeferredState(this.jqXHR); + } + if (this._processQueue) { + return that._getDeferredState(this._processQueue); + } + }; + data.processing = function () { + return !this.jqXHR && this._processQueue && that + ._getDeferredState(this._processQueue) === 'pending'; + }; + data.progress = function () { + return this._progress; + }; + data.response = function () { + return this._response; + }; + }, + + // Parses the Range header from the server response + // and returns the uploaded bytes: + _getUploadedBytes: function (jqXHR) { + var range = jqXHR.getResponseHeader('Range'), + parts = range && range.split('-'), + upperBytesPos = parts && parts.length > 1 && + parseInt(parts[1], 10); + return upperBytesPos && upperBytesPos + 1; + }, + + // Uploads a file in multiple, sequential requests + // by splitting the file up in multiple blob chunks. + // If the second parameter is true, only tests if the file + // should be uploaded in chunks, but does not invoke any + // upload requests: + _chunkedUpload: function (options, testOnly) { + options.uploadedBytes = options.uploadedBytes || 0; + var that = this, + file = options.files[0], + fs = file.size, + ub = options.uploadedBytes, + mcs = options.maxChunkSize || fs, + slice = this._blobSlice, + dfd = $.Deferred(), + promise = dfd.promise(), + jqXHR, + upload; + if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) || + options.data) { + return false; + } + if (testOnly) { + return true; + } + if (ub >= fs) { + file.error = options.i18n('uploadedBytes'); + return this._getXHRPromise( + false, + options.context, + [null, 'error', file.error] + ); + } + // The chunk upload method: + upload = function () { + // Clone the options object for each chunk upload: + var o = $.extend({}, options), + currentLoaded = o._progress.loaded; + o.blob = slice.call( + file, + ub, + ub + mcs, + file.type + ); + // Store the current chunk size, as the blob itself + // will be dereferenced after data processing: + o.chunkSize = o.blob.size; + // Expose the chunk bytes position range: + o.contentRange = 'bytes ' + ub + '-' + + (ub + o.chunkSize - 1) + '/' + fs; + // Process the upload data (the blob and potential form data): + that._initXHRData(o); + // Add progress listeners for this chunk upload: + that._initProgressListener(o); + jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) || + that._getXHRPromise(false, o.context)) + .done(function (result, textStatus, jqXHR) { + ub = that._getUploadedBytes(jqXHR) || + (ub + o.chunkSize); + // Create a progress event if no final progress event + // with loaded equaling total has been triggered + // for this chunk: + if (currentLoaded + o.chunkSize - o._progress.loaded) { + that._onProgress($.Event('progress', { + lengthComputable: true, + loaded: ub - o.uploadedBytes, + total: ub - o.uploadedBytes + }), o); + } + options.uploadedBytes = o.uploadedBytes = ub; + o.result = result; + o.textStatus = textStatus; + o.jqXHR = jqXHR; + that._trigger('chunkdone', null, o); + that._trigger('chunkalways', null, o); + if (ub < fs) { + // File upload not yet complete, + // continue with the next chunk: + upload(); + } else { + dfd.resolveWith( + o.context, + [result, textStatus, jqXHR] + ); + } + }) + .fail(function (jqXHR, textStatus, errorThrown) { + o.jqXHR = jqXHR; + o.textStatus = textStatus; + o.errorThrown = errorThrown; + that._trigger('chunkfail', null, o); + that._trigger('chunkalways', null, o); + dfd.rejectWith( + o.context, + [jqXHR, textStatus, errorThrown] + ); + }); + }; + this._enhancePromise(promise); + promise.abort = function () { + return jqXHR.abort(); + }; + upload(); + return promise; + }, + + _beforeSend: function (e, data) { + if (this._active === 0) { + // the start callback is triggered when an upload starts + // and no other uploads are currently running, + // equivalent to the global ajaxStart event: + this._trigger('start'); + // Set timer for global bitrate progress calculation: + this._bitrateTimer = new this._BitrateTimer(); + // Reset the global progress values: + this._progress.loaded = this._progress.total = 0; + this._progress.bitrate = 0; + } + // Make sure the container objects for the .response() and + // .progress() methods on the data object are available + // and reset to their initial state: + this._initResponseObject(data); + this._initProgressObject(data); + data._progress.loaded = data.loaded = data.uploadedBytes || 0; + data._progress.total = data.total = this._getTotal(data.files) || 1; + data._progress.bitrate = data.bitrate = 0; + this._active += 1; + // Initialize the global progress values: + this._progress.loaded += data.loaded; + this._progress.total += data.total; + }, + + _onDone: function (result, textStatus, jqXHR, options) { + var total = options._progress.total, + response = options._response; + if (options._progress.loaded < total) { + // Create a progress event if no final progress event + // with loaded equaling total has been triggered: + this._onProgress($.Event('progress', { + lengthComputable: true, + loaded: total, + total: total + }), options); + } + response.result = options.result = result; + response.textStatus = options.textStatus = textStatus; + response.jqXHR = options.jqXHR = jqXHR; + this._trigger('done', null, options); + }, + + _onFail: function (jqXHR, textStatus, errorThrown, options) { + var response = options._response; + if (options.recalculateProgress) { + // Remove the failed (error or abort) file upload from + // the global progress calculation: + this._progress.loaded -= options._progress.loaded; + this._progress.total -= options._progress.total; + } + response.jqXHR = options.jqXHR = jqXHR; + response.textStatus = options.textStatus = textStatus; + response.errorThrown = options.errorThrown = errorThrown; + this._trigger('fail', null, options); + }, + + _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) { + // jqXHRorResult, textStatus and jqXHRorError are added to the + // options object via done and fail callbacks + this._trigger('always', null, options); + }, + + _onSend: function (e, data) { + if (!data.submit) { + this._addConvenienceMethods(e, data); + } + var that = this, + jqXHR, + aborted, + slot, + pipe, + options = that._getAJAXSettings(data), + send = function () { + that._sending += 1; + // Set timer for bitrate progress calculation: + options._bitrateTimer = new that._BitrateTimer(); + jqXHR = jqXHR || ( + ((aborted || that._trigger( + 'send', + $.Event('send', {delegatedEvent: e}), + options + ) === false) && + that._getXHRPromise(false, options.context, aborted)) || + that._chunkedUpload(options) || $.ajax(options) + ).done(function (result, textStatus, jqXHR) { + that._onDone(result, textStatus, jqXHR, options); + }).fail(function (jqXHR, textStatus, errorThrown) { + that._onFail(jqXHR, textStatus, errorThrown, options); + }).always(function (jqXHRorResult, textStatus, jqXHRorError) { + that._onAlways( + jqXHRorResult, + textStatus, + jqXHRorError, + options + ); + that._sending -= 1; + that._active -= 1; + if (options.limitConcurrentUploads && + options.limitConcurrentUploads > that._sending) { + // Start the next queued upload, + // that has not been aborted: + var nextSlot = that._slots.shift(); + while (nextSlot) { + if (that._getDeferredState(nextSlot) === 'pending') { + nextSlot.resolve(); + break; + } + nextSlot = that._slots.shift(); + } + } + if (that._active === 0) { + // The stop callback is triggered when all uploads have + // been completed, equivalent to the global ajaxStop event: + that._trigger('stop'); + } + }); + return jqXHR; + }; + this._beforeSend(e, options); + if (this.options.sequentialUploads || + (this.options.limitConcurrentUploads && + this.options.limitConcurrentUploads <= this._sending)) { + if (this.options.limitConcurrentUploads > 1) { + slot = $.Deferred(); + this._slots.push(slot); + pipe = slot.pipe(send); + } else { + this._sequence = this._sequence.pipe(send, send); + pipe = this._sequence; + } + // Return the piped Promise object, enhanced with an abort method, + // which is delegated to the jqXHR object of the current upload, + // and jqXHR callbacks mapped to the equivalent Promise methods: + pipe.abort = function () { + aborted = [undefined, 'abort', 'abort']; + if (!jqXHR) { + if (slot) { + slot.rejectWith(options.context, aborted); + } + return send(); + } + return jqXHR.abort(); + }; + return this._enhancePromise(pipe); + } + return send(); + }, + + _onAdd: function (e, data) { + var that = this, + result = true, + options = $.extend({}, this.options, data), + files = data.files, + filesLength = files.length, + limit = options.limitMultiFileUploads, + limitSize = options.limitMultiFileUploadSize, + overhead = options.limitMultiFileUploadSizeOverhead, + batchSize = 0, + paramName = this._getParamName(options), + paramNameSet, + paramNameSlice, + fileSet, + i, + j = 0; + + if ( options.limit_filesLength && filesLength > options.limit_filesLength) + { + filesLength = options.limit_filesLength; //사용자추가 + } + + if (limitSize && (!filesLength || files[0].size === undefined)) { + limitSize = undefined; + } + if (!(options.singleFileUploads || limit || limitSize) || + !this._isXHRUpload(options)) { + fileSet = [files]; + paramNameSet = [paramName]; + } else if (!(options.singleFileUploads || limitSize) && limit) { + fileSet = []; + paramNameSet = []; + for (i = 0; i < filesLength; i += limit) { + fileSet.push(files.slice(i, i + limit)); + paramNameSlice = paramName.slice(i, i + limit); + if (!paramNameSlice.length) { + paramNameSlice = paramName; + } + paramNameSet.push(paramNameSlice); + } + } else if (!options.singleFileUploads && limitSize) { + fileSet = []; + paramNameSet = []; + console.log( filesLength ); + for (i = 0; i < filesLength; i = i + 1) { + batchSize += files[i].size + overhead; + if (i + 1 === filesLength || + ((batchSize + files[i + 1].size + overhead) > limitSize) || + (limit && i + 1 - j >= limit)) { + fileSet.push(files.slice(j, i + 1)); + paramNameSlice = paramName.slice(j, i + 1); + if (!paramNameSlice.length) { + paramNameSlice = paramName; + } + paramNameSet.push(paramNameSlice); + j = i + 1; + batchSize = 0; + } + } + } else { + paramNameSet = paramName; + } + data.originalFiles = files; + $.each(fileSet || files, function (index, element) { + + if( filesLength <= index) return true; //사용자 추가 + var newData = $.extend({}, data); + newData.files = fileSet ? element : [element]; + newData.paramName = paramNameSet[index]; + that._initResponseObject(newData); + that._initProgressObject(newData); + that._addConvenienceMethods(e, newData); + result = that._trigger( + 'add', + $.Event('add', {delegatedEvent: e}), + newData + ); + return result; + }); + return result; + }, + + _replaceFileInput: function (input) { + var inputClone = input.clone(true); + $('
    ').append(inputClone)[0].reset(); + // Detaching allows to insert the fileInput on another form + // without loosing the file input value: + input.after(inputClone).detach(); + // Avoid memory leaks with the detached file input: + $.cleanData(input.unbind('remove')); + // Replace the original file input element in the fileInput + // elements set with the clone, which has been copied including + // event handlers: + this.options.fileInput = this.options.fileInput.map(function (i, el) { + if (el === input[0]) { + return inputClone[0]; + } + return el; + }); + // If the widget has been initialized on the file input itself, + // override this.element with the file input clone: + if (input[0] === this.element[0]) { + this.element = inputClone; + } + }, + + _handleFileTreeEntry: function (entry, path) { + var that = this, + dfd = $.Deferred(), + errorHandler = function (e) { + if (e && !e.entry) { + e.entry = entry; + } + // Since $.when returns immediately if one + // Deferred is rejected, we use resolve instead. + // This allows valid files and invalid items + // to be returned together in one set: + dfd.resolve([e]); + }, + dirReader; + path = path || ''; + if (entry.isFile) { + if (entry._file) { + // Workaround for Chrome bug #149735 + entry._file.relativePath = path; + dfd.resolve(entry._file); + } else { + entry.file(function (file) { + file.relativePath = path; + dfd.resolve(file); + }, errorHandler); + } + } else if (entry.isDirectory) { + dirReader = entry.createReader(); + dirReader.readEntries(function (entries) { + that._handleFileTreeEntries( + entries, + path + entry.name + '/' + ).done(function (files) { + dfd.resolve(files); + }).fail(errorHandler); + }, errorHandler); + } else { + // Return an empy list for file system items + // other than files or directories: + dfd.resolve([]); + } + return dfd.promise(); + }, + + _handleFileTreeEntries: function (entries, path) { + var that = this; + return $.when.apply( + $, + $.map(entries, function (entry) { + return that._handleFileTreeEntry(entry, path); + }) + ).pipe(function () { + return Array.prototype.concat.apply( + [], + arguments + ); + }); + }, + + _getDroppedFiles: function (dataTransfer) { + dataTransfer = dataTransfer || {}; + var items = dataTransfer.items; + if (items && items.length && (items[0].webkitGetAsEntry || + items[0].getAsEntry)) { + return this._handleFileTreeEntries( + $.map(items, function (item) { + var entry; + if (item.webkitGetAsEntry) { + entry = item.webkitGetAsEntry(); + if (entry) { + // Workaround for Chrome bug #149735: + entry._file = item.getAsFile(); + } + return entry; + } + return item.getAsEntry(); + }) + ); + } + return $.Deferred().resolve( + $.makeArray(dataTransfer.files) + ).promise(); + }, + + _getSingleFileInputFiles: function (fileInput) { + fileInput = $(fileInput); + var entries = fileInput.prop('webkitEntries') || + fileInput.prop('entries'), + files, + value; + if (entries && entries.length) { + return this._handleFileTreeEntries(entries); + } + files = $.makeArray(fileInput.prop('files')); + if (!files.length) { + value = fileInput.prop('value'); + if (!value) { + return $.Deferred().resolve([]).promise(); + } + // If the files property is not available, the browser does not + // support the File API and we add a pseudo File object with + // the input value as name with path information removed: + files = [{name: value.replace(/^.*\\/, '')}]; + } else if (files[0].name === undefined && files[0].fileName) { + // File normalization for Safari 4 and Firefox 3: + $.each(files, function (index, file) { + file.name = file.fileName; + file.size = file.fileSize; + }); + } + return $.Deferred().resolve(files).promise(); + }, + + _getFileInputFiles: function (fileInput) { + if (!(fileInput instanceof $) || fileInput.length === 1) { + return this._getSingleFileInputFiles(fileInput); + } + return $.when.apply( + $, + $.map(fileInput, this._getSingleFileInputFiles) + ).pipe(function () { + return Array.prototype.concat.apply( + [], + arguments + ); + }); + }, + + _onChange: function (e) { + var that = this, + data = { + fileInput: $(e.target), + form: $(e.target.form) + }; + this._getFileInputFiles(data.fileInput).always(function (files) { + data.files = files; + if (that.options.replaceFileInput) { + that._replaceFileInput(data.fileInput); + } + if (that._trigger( + 'change', + $.Event('change', {delegatedEvent: e}), + data + ) !== false) { + that._onAdd(e, data); + } + }); + }, + + _onPaste: function (e) { + var items = e.originalEvent && e.originalEvent.clipboardData && + e.originalEvent.clipboardData.items, + data = {files: []}; + if (items && items.length) { + $.each(items, function (index, item) { + var file = item.getAsFile && item.getAsFile(); + if (file) { + data.files.push(file); + } + }); + if (this._trigger( + 'paste', + $.Event('paste', {delegatedEvent: e}), + data + ) !== false) { + this._onAdd(e, data); + } + } + }, + + _onDrop: function (e) { + e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer; + var that = this, + dataTransfer = e.dataTransfer, + data = {}; + if (dataTransfer && dataTransfer.files && dataTransfer.files.length) { + e.preventDefault(); + this._getDroppedFiles(dataTransfer).always(function (files) { + data.files = files; + if (that._trigger( + 'drop', + $.Event('drop', {delegatedEvent: e}), + data + ) !== false) { + that._onAdd(e, data); + } + }); + } + }, + + _onDragOver: function (e) { + e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer; + var dataTransfer = e.dataTransfer; + if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 && + this._trigger( + 'dragover', + $.Event('dragover', {delegatedEvent: e}) + ) !== false) { + e.preventDefault(); + dataTransfer.dropEffect = 'copy'; + } + }, + + _initEventHandlers: function () { + if (this._isXHRUpload(this.options)) { + this._on(this.options.dropZone, { + dragover: this._onDragOver, + drop: this._onDrop + }); + this._on(this.options.pasteZone, { + paste: this._onPaste + }); + } + if ($.support.fileInput) { + /* + this._on(this.options.fileInput, { + change: this._onChange + }); + */ + //var othis = this; + if( $.support.xhrFileUpload ) { + this._on(this.options.fileInput, { + change: this._onChange + }); + } else { //drag and drop을 지원 하지 않는 브라우저에는 swfupload를 사용 + var $swf_target = $(this.options.container_el); + $swf_target.swfupload({ + //upload_url: "upload.php", + upload_url: this.options.url, + file_post_name : "files", + file_size_limit : "10 MB", + file_upload_limit: 0, + file_queue_limit : this.options.limit_filesLength, + file_types : "*.jpeg; *.bmp; *.png; *.jpg; *.gif", + file_types_description : "Image Files (JPG, JPEG, PNG, BMP, GIF)", + flash_url : "./swfupload/swfupload.swf", + button_placeholder : this.options.fileInput[0], + button_width : "100%", + button_height : "100%", + button_window_mode : "transparent" + }); + } + } + }, + + _destroyEventHandlers: function () { + this._off(this.options.dropZone, 'dragover drop'); + this._off(this.options.pasteZone, 'paste'); + this._off(this.options.fileInput, 'change'); + }, + + _setOption: function (key, value) { + var reinit = $.inArray(key, this._specialOptions) !== -1; + if (reinit) { + this._destroyEventHandlers(); + } + this._super(key, value); + if (reinit) { + this._initSpecialOptions(); + this._initEventHandlers(); + } + }, + + _initSpecialOptions: function () { + var options = this.options; + if (options.fileInput === undefined) { + options.fileInput = this.element.is('input[type="file"]') ? + this.element : this.element.find('input[type="file"]'); + } else if (!(options.fileInput instanceof $)) { + options.fileInput = $(options.fileInput); + } + if (!(options.dropZone instanceof $)) { + options.dropZone = $(options.dropZone); + } + if (!(options.pasteZone instanceof $)) { + options.pasteZone = $(options.pasteZone); + } + }, + + _getRegExp: function (str) { + var parts = str.split('/'), + modifiers = parts.pop(); + parts.shift(); + return new RegExp(parts.join('/'), modifiers); + }, + + _isRegExpOption: function (key, value) { + return key !== 'url' && $.type(value) === 'string' && + /^\/.*\/[igm]{0,3}$/.test(value); + }, + + _initDataAttributes: function () { + var that = this, + options = this.options, + clone = $(this.element[0].cloneNode(false)); + // Initialize options set via HTML5 data-attributes: + $.each( + clone.data(), + function (key, value) { + var dataAttributeName = 'data-' + + // Convert camelCase to hyphen-ated key: + key.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase(); + if (clone.attr(dataAttributeName)) { + if (that._isRegExpOption(key, value)) { + value = that._getRegExp(value); + } + options[key] = value; + } + } + ); + }, + + _create: function () { + this._initDataAttributes(); + this._initSpecialOptions(); + this._slots = []; + this._sequence = this._getXHRPromise(true); + this._sending = this._active = 0; + this._initProgressObject(this); + this._initEventHandlers(); + }, + + // This method is exposed to the widget API and allows to query + // the number of active uploads: + active: function () { + return this._active; + }, + + // This method is exposed to the widget API and allows to query + // the widget upload progress. + // It returns an object with loaded, total and bitrate properties + // for the running uploads: + progress: function () { + return this._progress; + }, + + // This method is exposed to the widget API and allows adding files + // using the fileupload API. The data parameter accepts an object which + // must have a files property and can contain additional options: + // .fileupload('add', {files: filesList}); + add: function (data) { + var that = this; + if (!data || this.options.disabled) { + return; + } + if (data.fileInput && !data.files) { + this._getFileInputFiles(data.fileInput).always(function (files) { + data.files = files; + that._onAdd(null, data); + }); + } else { + data.files = $.makeArray(data.files); + this._onAdd(null, data); + } + }, + + // This method is exposed to the widget API and allows sending files + // using the fileupload API. The data parameter accepts an object which + // must have a files or fileInput property and can contain additional options: + // .fileupload('send', {files: filesList}); + // The method returns a Promise object for the file upload call. + send: function (data) { + if (data && !this.options.disabled) { + if (data.fileInput && !data.files) { + var that = this, + dfd = $.Deferred(), + promise = dfd.promise(), + jqXHR, + aborted; + promise.abort = function () { + aborted = true; + if (jqXHR) { + return jqXHR.abort(); + } + dfd.reject(null, 'abort', 'abort'); + return promise; + }; + this._getFileInputFiles(data.fileInput).always( + function (files) { + if (aborted) { + return; + } + if (!files.length) { + dfd.reject(); + return; + } + data.files = files; + jqXHR = that._onSend(null, data).then( + function (result, textStatus, jqXHR) { + dfd.resolve(result, textStatus, jqXHR); + }, + function (jqXHR, textStatus, errorThrown) { + dfd.reject(jqXHR, textStatus, errorThrown); + } + ); + } + ); + return this._enhancePromise(promise); + } + data.files = $.makeArray(data.files); + if (data.files.length) { + return this._onSend(null, data); + } + } + return this._getXHRPromise(false, data && data.context); + } + + }); + +})); diff --git a/webedit/photo_uploader/popup/js/jquery.iframe-transport.js b/webedit/photo_uploader/popup/js/jquery.iframe-transport.js new file mode 100644 index 0000000..8d64b59 --- /dev/null +++ b/webedit/photo_uploader/popup/js/jquery.iframe-transport.js @@ -0,0 +1,214 @@ +/* + * jQuery Iframe Transport Plugin 1.8.2 + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2011, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* global define, window, document */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define(['jquery'], factory); + } else { + // Browser globals: + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + + // Helper variable to create unique names for the transport iframes: + var counter = 0; + + // The iframe transport accepts four additional options: + // options.fileInput: a jQuery collection of file input fields + // options.paramName: the parameter name for the file form data, + // overrides the name property of the file input field(s), + // can be a string or an array of strings. + // options.formData: an array of objects with name and value properties, + // equivalent to the return data of .serializeArray(), e.g.: + // [{name: 'a', value: 1}, {name: 'b', value: 2}] + // options.initialIframeSrc: the URL of the initial iframe src, + // by default set to "javascript:false;" + $.ajaxTransport('iframe', function (options) { + if (options.async) { + // javascript:false as initial iframe src + // prevents warning popups on HTTPS in IE6: + /*jshint scripturl: true */ + var initialIframeSrc = options.initialIframeSrc || 'javascript:false;', + /*jshint scripturl: false */ + form, + iframe, + addParamChar; + return { + send: function (_, completeCallback) { + form = $('
    '); + form.attr('accept-charset', options.formAcceptCharset); + addParamChar = /\?/.test(options.url) ? '&' : '?'; + // XDomainRequest only supports GET and POST: + if (options.type === 'DELETE') { + options.url = options.url + addParamChar + '_method=DELETE'; + options.type = 'POST'; + } else if (options.type === 'PUT') { + options.url = options.url + addParamChar + '_method=PUT'; + options.type = 'POST'; + } else if (options.type === 'PATCH') { + options.url = options.url + addParamChar + '_method=PATCH'; + options.type = 'POST'; + } + // IE versions below IE8 cannot set the name property of + // elements that have already been added to the DOM, + // so we set the name along with the iframe HTML markup: + counter += 1; + iframe = $( + '' + ).bind('load', function () { + var fileInputClones, + paramNames = $.isArray(options.paramName) ? + options.paramName : [options.paramName]; + iframe + .unbind('load') + .bind('load', function () { + var response; + // Wrap in a try/catch block to catch exceptions thrown + // when trying to access cross-domain iframe contents: + try { + response = iframe.contents(); + // Google Chrome and Firefox do not throw an + // exception when calling iframe.contents() on + // cross-domain requests, so we unify the response: + if (!response.length || !response[0].firstChild) { + throw new Error(); + } + } catch (e) { + response = undefined; + } + // The complete callback returns the + // iframe content document as response object: + completeCallback( + 200, + 'success', + {'iframe': response} + ); + // Fix for IE endless progress bar activity bug + // (happens on form submits to iframe targets): + $('') + .appendTo(form); + window.setTimeout(function () { + // Removing the form in a setTimeout call + // allows Chrome's developer tools to display + // the response result + form.remove(); + }, 0); + }); + form + .prop('target', iframe.prop('name')) + .prop('action', options.url) + .prop('method', options.type); + if (options.formData) { + $.each(options.formData, function (index, field) { + $('') + .prop('name', field.name) + .val(field.value) + .appendTo(form); + }); + } + if (options.fileInput && options.fileInput.length && + options.type === 'POST') { + fileInputClones = options.fileInput.clone(); + // Insert a clone for each file input field: + options.fileInput.after(function (index) { + return fileInputClones[index]; + }); + if (options.paramName) { + options.fileInput.each(function (index) { + $(this).prop( + 'name', + paramNames[index] || options.paramName + ); + }); + } + // Appending the file input fields to the hidden form + // removes them from their original location: + form + .append(options.fileInput) + .prop('enctype', 'multipart/form-data') + // enctype must be set as encoding for IE: + .prop('encoding', 'multipart/form-data'); + // Remove the HTML5 form attribute from the input(s): + options.fileInput.removeAttr('form'); + } + form.submit(); + // Insert the file input fields at their original location + // by replacing the clones with the originals: + if (fileInputClones && fileInputClones.length) { + options.fileInput.each(function (index, input) { + var clone = $(fileInputClones[index]); + // Restore the original name and form properties: + $(input) + .prop('name', clone.prop('name')) + .attr('form', clone.attr('form')); + clone.replaceWith(input); + }); + } + }); + form.append(iframe).appendTo(document.body); + }, + abort: function () { + if (iframe) { + // javascript:false as iframe src aborts the request + // and prevents warning popups on HTTPS in IE6. + // concat is used to avoid the "Script URL" JSLint error: + iframe + .unbind('load') + .prop('src', initialIframeSrc); + } + if (form) { + form.remove(); + } + } + }; + } + }); + + // The iframe transport returns the iframe content document as response. + // The following adds converters from iframe to text, json, html, xml + // and script. + // Please note that the Content-Type for JSON responses has to be text/plain + // or text/html, if the browser doesn't include application/json in the + // Accept header, else IE will show a download dialog. + // The Content-Type for XML responses on the other hand has to be always + // application/xml or text/xml, so IE properly parses the XML response. + // See also + // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation + $.ajaxSetup({ + converters: { + 'iframe text': function (iframe) { + return iframe && $(iframe[0].body).text(); + }, + 'iframe json': function (iframe) { + return iframe && $.parseJSON($(iframe[0].body).text()); + }, + 'iframe html': function (iframe) { + return iframe && $(iframe[0].body).html(); + }, + 'iframe xml': function (iframe) { + var xmlDoc = iframe && iframe[0]; + return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc : + $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) || + $(xmlDoc.body).html()); + }, + 'iframe script': function (iframe) { + return iframe && $.globalEval($(iframe[0].body).text()); + } + } + }); + +})); diff --git a/webedit/photo_uploader/popup/js/jquery.ui.widget.js b/webedit/photo_uploader/popup/js/jquery.ui.widget.js new file mode 100644 index 0000000..c430419 --- /dev/null +++ b/webedit/photo_uploader/popup/js/jquery.ui.widget.js @@ -0,0 +1,530 @@ +/*! + * jQuery UI Widget 1.10.4+amd + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2014 jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/jQuery.widget/ + */ + +(function (factory) { + if (typeof define === "function" && define.amd) { + // Register as an anonymous AMD module: + define(["jquery"], factory); + } else { + // Browser globals: + factory(jQuery); + } +}(function( $, undefined ) { + +var uuid = 0, + slice = Array.prototype.slice, + _cleanData = $.cleanData; +$.cleanData = function( elems ) { + for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { + try { + $( elem ).triggerHandler( "remove" ); + // http://bugs.jquery.com/ticket/8235 + } catch( e ) {} + } + _cleanData( elems ); +}; + +$.widget = function( name, base, prototype ) { + var fullName, existingConstructor, constructor, basePrototype, + // proxiedPrototype allows the provided prototype to remain unmodified + // so that it can be used as a mixin for multiple widgets (#8876) + proxiedPrototype = {}, + namespace = name.split( "." )[ 0 ]; + + name = name.split( "." )[ 1 ]; + fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + // create selector for plugin + $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { + return !!$.data( elem, fullName ); + }; + + $[ namespace ] = $[ namespace ] || {}; + existingConstructor = $[ namespace ][ name ]; + constructor = $[ namespace ][ name ] = function( options, element ) { + // allow instantiation without "new" keyword + if ( !this._createWidget ) { + return new constructor( options, element ); + } + + // allow instantiation without initializing for simple inheritance + // must use "new" keyword (the code above always passes args) + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + // extend with the existing constructor to carry over any static properties + $.extend( constructor, existingConstructor, { + version: prototype.version, + // copy the object used to create the prototype in case we need to + // redefine the widget later + _proto: $.extend( {}, prototype ), + // track widgets that inherit from this widget in case this widget is + // redefined after a widget inherits from it + _childConstructors: [] + }); + + basePrototype = new base(); + // we need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from + basePrototype.options = $.widget.extend( {}, basePrototype.options ); + $.each( prototype, function( prop, value ) { + if ( !$.isFunction( value ) ) { + proxiedPrototype[ prop ] = value; + return; + } + proxiedPrototype[ prop ] = (function() { + var _super = function() { + return base.prototype[ prop ].apply( this, arguments ); + }, + _superApply = function( args ) { + return base.prototype[ prop ].apply( this, args ); + }; + return function() { + var __super = this._super, + __superApply = this._superApply, + returnValue; + + this._super = _super; + this._superApply = _superApply; + + returnValue = value.apply( this, arguments ); + + this._super = __super; + this._superApply = __superApply; + + return returnValue; + }; + })(); + }); + constructor.prototype = $.widget.extend( basePrototype, { + // TODO: remove support for widgetEventPrefix + // always use the name + a colon as the prefix, e.g., draggable:start + // don't prefix for widgets that aren't DOM-based + widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name + }, proxiedPrototype, { + constructor: constructor, + namespace: namespace, + widgetName: name, + widgetFullName: fullName + }); + + // If this widget is being redefined then we need to find all widgets that + // are inheriting from it and redefine all of them so that they inherit from + // the new version of this widget. We're essentially trying to replace one + // level in the prototype chain. + if ( existingConstructor ) { + $.each( existingConstructor._childConstructors, function( i, child ) { + var childPrototype = child.prototype; + + // redefine the child widget using the same prototype that was + // originally used, but inherit from the new version of the base + $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto ); + }); + // remove the list of existing child constructors from the old constructor + // so the old child constructors can be garbage collected + delete existingConstructor._childConstructors; + } else { + base._childConstructors.push( constructor ); + } + + $.widget.bridge( name, constructor ); +}; + +$.widget.extend = function( target ) { + var input = slice.call( arguments, 1 ), + inputIndex = 0, + inputLength = input.length, + key, + value; + for ( ; inputIndex < inputLength; inputIndex++ ) { + for ( key in input[ inputIndex ] ) { + value = input[ inputIndex ][ key ]; + if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { + // Clone objects + if ( $.isPlainObject( value ) ) { + target[ key ] = $.isPlainObject( target[ key ] ) ? + $.widget.extend( {}, target[ key ], value ) : + // Don't extend strings, arrays, etc. with objects + $.widget.extend( {}, value ); + // Copy everything else by reference + } else { + target[ key ] = value; + } + } + } + } + return target; +}; + +$.widget.bridge = function( name, object ) { + var fullName = object.prototype.widgetFullName || name; + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string", + args = slice.call( arguments, 1 ), + returnValue = this; + + // allow multiple hashes to be passed on init + options = !isMethodCall && args.length ? + $.widget.extend.apply( null, [ options ].concat(args) ) : + options; + + if ( isMethodCall ) { + this.each(function() { + var methodValue, + instance = $.data( this, fullName ); + if ( !instance ) { + return $.error( "cannot call methods on " + name + " prior to initialization; " + + "attempted to call method '" + options + "'" ); + } + if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) { + return $.error( "no such method '" + options + "' for " + name + " widget instance" ); + } + methodValue = instance[ options ].apply( instance, args ); + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue && methodValue.jquery ? + returnValue.pushStack( methodValue.get() ) : + methodValue; + return false; + } + }); + } else { + this.each(function() { + var instance = $.data( this, fullName ); + if ( instance ) { + instance.option( options || {} )._init(); + } else { + $.data( this, fullName, new object( options, this ) ); + } + }); + } + + return returnValue; + }; +}; + +$.Widget = function( /* options, element */ ) {}; +$.Widget._childConstructors = []; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + defaultElement: "
    ", + options: { + disabled: false, + + // callbacks + create: null + }, + _createWidget: function( options, element ) { + element = $( element || this.defaultElement || this )[ 0 ]; + this.element = $( element ); + this.uuid = uuid++; + this.eventNamespace = "." + this.widgetName + this.uuid; + this.options = $.widget.extend( {}, + this.options, + this._getCreateOptions(), + options ); + + this.bindings = $(); + this.hoverable = $(); + this.focusable = $(); + + if ( element !== this ) { + $.data( element, this.widgetFullName, this ); + this._on( true, this.element, { + remove: function( event ) { + if ( event.target === element ) { + this.destroy(); + } + } + }); + this.document = $( element.style ? + // element within the document + element.ownerDocument : + // element is window or document + element.document || element ); + this.window = $( this.document[0].defaultView || this.document[0].parentWindow ); + } + + this._create(); + this._trigger( "create", null, this._getCreateEventData() ); + this._init(); + }, + _getCreateOptions: $.noop, + _getCreateEventData: $.noop, + _create: $.noop, + _init: $.noop, + + destroy: function() { + this._destroy(); + // we can probably remove the unbind calls in 2.0 + // all event bindings should go through this._on() + this.element + .unbind( this.eventNamespace ) + // 1.9 BC for #7810 + // TODO remove dual storage + .removeData( this.widgetName ) + .removeData( this.widgetFullName ) + // support: jquery <1.6.3 + // http://bugs.jquery.com/ticket/9413 + .removeData( $.camelCase( this.widgetFullName ) ); + this.widget() + .unbind( this.eventNamespace ) + .removeAttr( "aria-disabled" ) + .removeClass( + this.widgetFullName + "-disabled " + + "ui-state-disabled" ); + + // clean up events and states + this.bindings.unbind( this.eventNamespace ); + this.hoverable.removeClass( "ui-state-hover" ); + this.focusable.removeClass( "ui-state-focus" ); + }, + _destroy: $.noop, + + widget: function() { + return this.element; + }, + + option: function( key, value ) { + var options = key, + parts, + curOption, + i; + + if ( arguments.length === 0 ) { + // don't return a reference to the internal hash + return $.widget.extend( {}, this.options ); + } + + if ( typeof key === "string" ) { + // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } + options = {}; + parts = key.split( "." ); + key = parts.shift(); + if ( parts.length ) { + curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); + for ( i = 0; i < parts.length - 1; i++ ) { + curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; + curOption = curOption[ parts[ i ] ]; + } + key = parts.pop(); + if ( arguments.length === 1 ) { + return curOption[ key ] === undefined ? null : curOption[ key ]; + } + curOption[ key ] = value; + } else { + if ( arguments.length === 1 ) { + return this.options[ key ] === undefined ? null : this.options[ key ]; + } + options[ key ] = value; + } + } + + this._setOptions( options ); + + return this; + }, + _setOptions: function( options ) { + var key; + + for ( key in options ) { + this._setOption( key, options[ key ] ); + } + + return this; + }, + _setOption: function( key, value ) { + this.options[ key ] = value; + + if ( key === "disabled" ) { + this.widget() + .toggleClass( this.widgetFullName + "-disabled ui-state-disabled", !!value ) + .attr( "aria-disabled", value ); + this.hoverable.removeClass( "ui-state-hover" ); + this.focusable.removeClass( "ui-state-focus" ); + } + + return this; + }, + + enable: function() { + return this._setOption( "disabled", false ); + }, + disable: function() { + return this._setOption( "disabled", true ); + }, + + _on: function( suppressDisabledCheck, element, handlers ) { + var delegateElement, + instance = this; + + // no suppressDisabledCheck flag, shuffle arguments + if ( typeof suppressDisabledCheck !== "boolean" ) { + handlers = element; + element = suppressDisabledCheck; + suppressDisabledCheck = false; + } + + // no element argument, shuffle and use this.element + if ( !handlers ) { + handlers = element; + element = this.element; + delegateElement = this.widget(); + } else { + // accept selectors, DOM elements + element = delegateElement = $( element ); + this.bindings = this.bindings.add( element ); + } + + $.each( handlers, function( event, handler ) { + function handlerProxy() { + // allow widgets to customize the disabled handling + // - disabled as an array instead of boolean + // - disabled class as method for disabling individual parts + if ( !suppressDisabledCheck && + ( instance.options.disabled === true || + $( this ).hasClass( "ui-state-disabled" ) ) ) { + return; + } + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + + // copy the guid so direct unbinding works + if ( typeof handler !== "string" ) { + handlerProxy.guid = handler.guid = + handler.guid || handlerProxy.guid || $.guid++; + } + + var match = event.match( /^(\w+)\s*(.*)$/ ), + eventName = match[1] + instance.eventNamespace, + selector = match[2]; + if ( selector ) { + delegateElement.delegate( selector, eventName, handlerProxy ); + } else { + element.bind( eventName, handlerProxy ); + } + }); + }, + + _off: function( element, eventName ) { + eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + this.eventNamespace; + element.unbind( eventName ).undelegate( eventName ); + }, + + _delay: function( handler, delay ) { + function handlerProxy() { + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + var instance = this; + return setTimeout( handlerProxy, delay || 0 ); + }, + + _hoverable: function( element ) { + this.hoverable = this.hoverable.add( element ); + this._on( element, { + mouseenter: function( event ) { + $( event.currentTarget ).addClass( "ui-state-hover" ); + }, + mouseleave: function( event ) { + $( event.currentTarget ).removeClass( "ui-state-hover" ); + } + }); + }, + + _focusable: function( element ) { + this.focusable = this.focusable.add( element ); + this._on( element, { + focusin: function( event ) { + $( event.currentTarget ).addClass( "ui-state-focus" ); + }, + focusout: function( event ) { + $( event.currentTarget ).removeClass( "ui-state-focus" ); + } + }); + }, + + _trigger: function( type, event, data ) { + var prop, orig, + callback = this.options[ type ]; + + data = data || {}; + event = $.Event( event ); + event.type = ( type === this.widgetEventPrefix ? + type : + this.widgetEventPrefix + type ).toLowerCase(); + // the original event may come from any element + // so we need to reset the target on the new event + event.target = this.element[ 0 ]; + + // copy original event properties over to the new event + orig = event.originalEvent; + if ( orig ) { + for ( prop in orig ) { + if ( !( prop in event ) ) { + event[ prop ] = orig[ prop ]; + } + } + } + + this.element.trigger( event, data ); + return !( $.isFunction( callback ) && + callback.apply( this.element[0], [ event ].concat( data ) ) === false || + event.isDefaultPrevented() ); + } +}; + +$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { + $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { + if ( typeof options === "string" ) { + options = { effect: options }; + } + var hasOptions, + effectName = !options ? + method : + options === true || typeof options === "number" ? + defaultEffect : + options.effect || defaultEffect; + options = options || {}; + if ( typeof options === "number" ) { + options = { duration: options }; + } + hasOptions = !$.isEmptyObject( options ); + options.complete = callback; + if ( options.delay ) { + element.delay( options.delay ); + } + if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { + element[ method ]( options ); + } else if ( effectName !== method && element[ effectName ] ) { + element[ effectName ]( options.duration, options.easing, callback ); + } else { + element.queue(function( next ) { + $( this )[ method ](); + if ( callback ) { + callback.call( element[ 0 ] ); + } + next(); + }); + } + }; +}); + +})); diff --git a/webedit/photo_uploader/popup/php/JSON.php b/webedit/photo_uploader/popup/php/JSON.php new file mode 100644 index 0000000..8dc8a6f --- /dev/null +++ b/webedit/photo_uploader/popup/php/JSON.php @@ -0,0 +1,933 @@ + + * @author Matt Knapp + * @author Brett Stimmerman + * @copyright 2005 Michal Migurski + * @version CVS: $Id: JSON.php 305040 2010-11-02 23:19:03Z alan_k $ + * @license http://www.opensource.org/licenses/bsd-license.php + * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198 + */ + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_SLICE', 1); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_STR', 2); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_ARR', 3); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_OBJ', 4); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_CMT', 5); + +/** + * Behavior switch for Services_JSON::decode() + */ +define('SERVICES_JSON_LOOSE_TYPE', 16); + +/** + * Behavior switch for Services_JSON::decode() + */ +define('SERVICES_JSON_SUPPRESS_ERRORS', 32); + +/** + * Behavior switch for Services_JSON::decode() + */ +define('SERVICES_JSON_USE_TO_JSON', 64); + +/** + * Converts to and from JSON format. + * + * Brief example of use: + * + * + * // create a new instance of Services_JSON + * $json = new Services_JSON(); + * + * // convert a complexe value to JSON notation, and send it to the browser + * $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4))); + * $output = $json->encode($value); + * + * print($output); + * // prints: ["foo","bar",[1,2,"baz"],[3,[4]]] + * + * // accept incoming POST data, assumed to be in JSON notation + * $input = file_get_contents('php://input', 1000000); + * $value = $json->decode($input); + * + */ +class Services_JSON +{ + /** + * constructs a new JSON instance + * + * @param int $use object behavior flags; combine with boolean-OR + * + * possible values: + * - SERVICES_JSON_LOOSE_TYPE: loose typing. + * "{...}" syntax creates associative arrays + * instead of objects in decode(). + * - SERVICES_JSON_SUPPRESS_ERRORS: error suppression. + * Values which can't be encoded (e.g. resources) + * appear as NULL instead of throwing errors. + * By default, a deeply-nested resource will + * bubble up with an error, so all return values + * from encode() should be checked with isError() + * - SERVICES_JSON_USE_TO_JSON: call toJSON when serializing objects + * It serializes the return value from the toJSON call rather + * than the object it'self, toJSON can return associative arrays, + * strings or numbers, if you return an object, make sure it does + * not have a toJSON method, otherwise an error will occur. + */ + function Services_JSON($use = 0) + { + $this->use = $use; + $this->_mb_strlen = function_exists('mb_strlen'); + $this->_mb_convert_encoding = function_exists('mb_convert_encoding'); + $this->_mb_substr = function_exists('mb_substr'); + } + // private - cache the mbstring lookup results.. + var $_mb_strlen = false; + var $_mb_substr = false; + var $_mb_convert_encoding = false; + + /** + * convert a string from one UTF-16 char to one UTF-8 char + * + * Normally should be handled by mb_convert_encoding, but + * provides a slower PHP-only method for installations + * that lack the multibye string extension. + * + * @param string $utf16 UTF-16 character + * @return string UTF-8 character + * @access private + */ + function utf162utf8($utf16) + { + // oh please oh please oh please oh please oh please + if($this->_mb_convert_encoding) { + return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); + } + + $bytes = (ord($utf16{0}) << 8) | ord($utf16{1}); + + switch(true) { + case ((0x7F & $bytes) == $bytes): + // this case should never be reached, because we are in ASCII range + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0x7F & $bytes); + + case (0x07FF & $bytes) == $bytes: + // return a 2-byte UTF-8 character + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0xC0 | (($bytes >> 6) & 0x1F)) + . chr(0x80 | ($bytes & 0x3F)); + + case (0xFFFF & $bytes) == $bytes: + // return a 3-byte UTF-8 character + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0xE0 | (($bytes >> 12) & 0x0F)) + . chr(0x80 | (($bytes >> 6) & 0x3F)) + . chr(0x80 | ($bytes & 0x3F)); + } + + // ignoring UTF-32 for now, sorry + return ''; + } + + /** + * convert a string from one UTF-8 char to one UTF-16 char + * + * Normally should be handled by mb_convert_encoding, but + * provides a slower PHP-only method for installations + * that lack the multibye string extension. + * + * @param string $utf8 UTF-8 character + * @return string UTF-16 character + * @access private + */ + function utf82utf16($utf8) + { + // oh please oh please oh please oh please oh please + if($this->_mb_convert_encoding) { + return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); + } + + switch($this->strlen8($utf8)) { + case 1: + // this case should never be reached, because we are in ASCII range + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return $utf8; + + case 2: + // return a UTF-16 character from a 2-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0x07 & (ord($utf8{0}) >> 2)) + . chr((0xC0 & (ord($utf8{0}) << 6)) + | (0x3F & ord($utf8{1}))); + + case 3: + // return a UTF-16 character from a 3-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr((0xF0 & (ord($utf8{0}) << 4)) + | (0x0F & (ord($utf8{1}) >> 2))) + . chr((0xC0 & (ord($utf8{1}) << 6)) + | (0x7F & ord($utf8{2}))); + } + + // ignoring UTF-32 for now, sorry + return ''; + } + + /** + * encodes an arbitrary variable into JSON format (and sends JSON Header) + * + * @param mixed $var any number, boolean, string, array, or object to be encoded. + * see argument 1 to Services_JSON() above for array-parsing behavior. + * if var is a strng, note that encode() always expects it + * to be in ASCII or UTF-8 format! + * + * @return mixed JSON string representation of input var or an error if a problem occurs + * @access public + */ + function encode($var) + { + header('Content-type: application/json'); + return $this->encodeUnsafe($var); + } + /** + * encodes an arbitrary variable into JSON format without JSON Header - warning - may allow XSS!!!!) + * + * @param mixed $var any number, boolean, string, array, or object to be encoded. + * see argument 1 to Services_JSON() above for array-parsing behavior. + * if var is a strng, note that encode() always expects it + * to be in ASCII or UTF-8 format! + * + * @return mixed JSON string representation of input var or an error if a problem occurs + * @access public + */ + function encodeUnsafe($var) + { + // see bug #16908 - regarding numeric locale printing + $lc = setlocale(LC_NUMERIC, 0); + setlocale(LC_NUMERIC, 'C'); + $ret = $this->_encode($var); + setlocale(LC_NUMERIC, $lc); + return $ret; + + } + /** + * PRIVATE CODE that does the work of encodes an arbitrary variable into JSON format + * + * @param mixed $var any number, boolean, string, array, or object to be encoded. + * see argument 1 to Services_JSON() above for array-parsing behavior. + * if var is a strng, note that encode() always expects it + * to be in ASCII or UTF-8 format! + * + * @return mixed JSON string representation of input var or an error if a problem occurs + * @access public + */ + function _encode($var) + { + + switch (gettype($var)) { + case 'boolean': + return $var ? 'true' : 'false'; + + case 'NULL': + return 'null'; + + case 'integer': + return (int) $var; + + case 'double': + case 'float': + return (float) $var; + + case 'string': + // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT + $ascii = ''; + $strlen_var = $this->strlen8($var); + + /* + * Iterate over every character in the string, + * escaping with a slash or encoding to UTF-8 where necessary + */ + for ($c = 0; $c < $strlen_var; ++$c) { + + $ord_var_c = ord($var{$c}); + + switch (true) { + case $ord_var_c == 0x08: + $ascii .= '\b'; + break; + case $ord_var_c == 0x09: + $ascii .= '\t'; + break; + case $ord_var_c == 0x0A: + $ascii .= '\n'; + break; + case $ord_var_c == 0x0C: + $ascii .= '\f'; + break; + case $ord_var_c == 0x0D: + $ascii .= '\r'; + break; + + case $ord_var_c == 0x22: + case $ord_var_c == 0x2F: + case $ord_var_c == 0x5C: + // double quote, slash, slosh + $ascii .= '\\'.$var{$c}; + break; + + case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)): + // characters U-00000000 - U-0000007F (same as ASCII) + $ascii .= $var{$c}; + break; + + case (($ord_var_c & 0xE0) == 0xC0): + // characters U-00000080 - U-000007FF, mask 110XXXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + if ($c+1 >= $strlen_var) { + $c += 1; + $ascii .= '?'; + break; + } + + $char = pack('C*', $ord_var_c, ord($var{$c + 1})); + $c += 1; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF0) == 0xE0): + if ($c+2 >= $strlen_var) { + $c += 2; + $ascii .= '?'; + break; + } + // characters U-00000800 - U-0000FFFF, mask 1110XXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + @ord($var{$c + 1}), + @ord($var{$c + 2})); + $c += 2; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF8) == 0xF0): + if ($c+3 >= $strlen_var) { + $c += 3; + $ascii .= '?'; + break; + } + // characters U-00010000 - U-001FFFFF, mask 11110XXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3})); + $c += 3; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFC) == 0xF8): + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + if ($c+4 >= $strlen_var) { + $c += 4; + $ascii .= '?'; + break; + } + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4})); + $c += 4; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFE) == 0xFC): + if ($c+5 >= $strlen_var) { + $c += 5; + $ascii .= '?'; + break; + } + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4}), + ord($var{$c + 5})); + $c += 5; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + } + } + return '"'.$ascii.'"'; + + case 'array': + /* + * As per JSON spec if any array key is not an integer + * we must treat the the whole array as an object. We + * also try to catch a sparsely populated associative + * array with numeric keys here because some JS engines + * will create an array with empty indexes up to + * max_index which can cause memory issues and because + * the keys, which may be relevant, will be remapped + * otherwise. + * + * As per the ECMA and JSON specification an object may + * have any string as a property. Unfortunately due to + * a hole in the ECMA specification if the key is a + * ECMA reserved word or starts with a digit the + * parameter is only accessible using ECMAScript's + * bracket notation. + */ + + // treat as a JSON object + if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) { + $properties = array_map(array($this, 'name_value'), + array_keys($var), + array_values($var)); + + foreach($properties as $property) { + if(Services_JSON::isError($property)) { + return $property; + } + } + + return '{' . join(',', $properties) . '}'; + } + + // treat it like a regular array + $elements = array_map(array($this, '_encode'), $var); + + foreach($elements as $element) { + if(Services_JSON::isError($element)) { + return $element; + } + } + + return '[' . join(',', $elements) . ']'; + + case 'object': + + // support toJSON methods. + if (($this->use & SERVICES_JSON_USE_TO_JSON) && method_exists($var, 'toJSON')) { + // this may end up allowing unlimited recursion + // so we check the return value to make sure it's not got the same method. + $recode = $var->toJSON(); + + if (method_exists($recode, 'toJSON')) { + + return ($this->use & SERVICES_JSON_SUPPRESS_ERRORS) + ? 'null' + : new Services_JSON_Error(class_name($var). + " toJSON returned an object with a toJSON method."); + + } + + return $this->_encode( $recode ); + } + + $vars = get_object_vars($var); + + $properties = array_map(array($this, 'name_value'), + array_keys($vars), + array_values($vars)); + + foreach($properties as $property) { + if(Services_JSON::isError($property)) { + return $property; + } + } + + return '{' . join(',', $properties) . '}'; + + default: + return ($this->use & SERVICES_JSON_SUPPRESS_ERRORS) + ? 'null' + : new Services_JSON_Error(gettype($var)." can not be encoded as JSON string"); + } + } + + /** + * array-walking function for use in generating JSON-formatted name-value pairs + * + * @param string $name name of key to use + * @param mixed $value reference to an array element to be encoded + * + * @return string JSON-formatted name-value pair, like '"name":value' + * @access private + */ + function name_value($name, $value) + { + $encoded_value = $this->_encode($value); + + if(Services_JSON::isError($encoded_value)) { + return $encoded_value; + } + + return $this->_encode(strval($name)) . ':' . $encoded_value; + } + + /** + * reduce a string by removing leading and trailing comments and whitespace + * + * @param $str string string value to strip of comments and whitespace + * + * @return string string value stripped of comments and whitespace + * @access private + */ + function reduce_string($str) + { + $str = preg_replace(array( + + // eliminate single line comments in '// ...' form + '#^\s*//(.+)$#m', + + // eliminate multi-line comments in '/* ... */' form, at start of string + '#^\s*/\*(.+)\*/#Us', + + // eliminate multi-line comments in '/* ... */' form, at end of string + '#/\*(.+)\*/\s*$#Us' + + ), '', $str); + + // eliminate extraneous space + return trim($str); + } + + /** + * decodes a JSON string into appropriate variable + * + * @param string $str JSON-formatted string + * + * @return mixed number, boolean, string, array, or object + * corresponding to given JSON input string. + * See argument 1 to Services_JSON() above for object-output behavior. + * Note that decode() always returns strings + * in ASCII or UTF-8 format! + * @access public + */ + function decode($str) + { + $str = $this->reduce_string($str); + + switch (strtolower($str)) { + case 'true': + return true; + + case 'false': + return false; + + case 'null': + return null; + + default: + $m = array(); + + if (is_numeric($str)) { + // Lookie-loo, it's a number + + // This would work on its own, but I'm trying to be + // good about returning integers where appropriate: + // return (float)$str; + + // Return float or int, as appropriate + return ((float)$str == (integer)$str) + ? (integer)$str + : (float)$str; + + } elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) { + // STRINGS RETURNED IN UTF-8 FORMAT + $delim = $this->substr8($str, 0, 1); + $chrs = $this->substr8($str, 1, -1); + $utf8 = ''; + $strlen_chrs = $this->strlen8($chrs); + + for ($c = 0; $c < $strlen_chrs; ++$c) { + + $substr_chrs_c_2 = $this->substr8($chrs, $c, 2); + $ord_chrs_c = ord($chrs{$c}); + + switch (true) { + case $substr_chrs_c_2 == '\b': + $utf8 .= chr(0x08); + ++$c; + break; + case $substr_chrs_c_2 == '\t': + $utf8 .= chr(0x09); + ++$c; + break; + case $substr_chrs_c_2 == '\n': + $utf8 .= chr(0x0A); + ++$c; + break; + case $substr_chrs_c_2 == '\f': + $utf8 .= chr(0x0C); + ++$c; + break; + case $substr_chrs_c_2 == '\r': + $utf8 .= chr(0x0D); + ++$c; + break; + + case $substr_chrs_c_2 == '\\"': + case $substr_chrs_c_2 == '\\\'': + case $substr_chrs_c_2 == '\\\\': + case $substr_chrs_c_2 == '\\/': + if (($delim == '"' && $substr_chrs_c_2 != '\\\'') || + ($delim == "'" && $substr_chrs_c_2 != '\\"')) { + $utf8 .= $chrs{++$c}; + } + break; + + case preg_match('/\\\u[0-9A-F]{4}/i', $this->substr8($chrs, $c, 6)): + // single, escaped unicode character + $utf16 = chr(hexdec($this->substr8($chrs, ($c + 2), 2))) + . chr(hexdec($this->substr8($chrs, ($c + 4), 2))); + $utf8 .= $this->utf162utf8($utf16); + $c += 5; + break; + + case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F): + $utf8 .= $chrs{$c}; + break; + + case ($ord_chrs_c & 0xE0) == 0xC0: + // characters U-00000080 - U-000007FF, mask 110XXXXX + //see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= $this->substr8($chrs, $c, 2); + ++$c; + break; + + case ($ord_chrs_c & 0xF0) == 0xE0: + // characters U-00000800 - U-0000FFFF, mask 1110XXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= $this->substr8($chrs, $c, 3); + $c += 2; + break; + + case ($ord_chrs_c & 0xF8) == 0xF0: + // characters U-00010000 - U-001FFFFF, mask 11110XXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= $this->substr8($chrs, $c, 4); + $c += 3; + break; + + case ($ord_chrs_c & 0xFC) == 0xF8: + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= $this->substr8($chrs, $c, 5); + $c += 4; + break; + + case ($ord_chrs_c & 0xFE) == 0xFC: + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= $this->substr8($chrs, $c, 6); + $c += 5; + break; + + } + + } + + return $utf8; + + } elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) { + // array, or object notation + + if ($str{0} == '[') { + $stk = array(SERVICES_JSON_IN_ARR); + $arr = array(); + } else { + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $stk = array(SERVICES_JSON_IN_OBJ); + $obj = array(); + } else { + $stk = array(SERVICES_JSON_IN_OBJ); + $obj = new stdClass(); + } + } + + array_push($stk, array('what' => SERVICES_JSON_SLICE, + 'where' => 0, + 'delim' => false)); + + $chrs = $this->substr8($str, 1, -1); + $chrs = $this->reduce_string($chrs); + + if ($chrs == '') { + if (reset($stk) == SERVICES_JSON_IN_ARR) { + return $arr; + + } else { + return $obj; + + } + } + + //print("\nparsing {$chrs}\n"); + + $strlen_chrs = $this->strlen8($chrs); + + for ($c = 0; $c <= $strlen_chrs; ++$c) { + + $top = end($stk); + $substr_chrs_c_2 = $this->substr8($chrs, $c, 2); + + if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) { + // found a comma that is not inside a string, array, etc., + // OR we've reached the end of the character list + $slice = $this->substr8($chrs, $top['where'], ($c - $top['where'])); + array_push($stk, array('what' => SERVICES_JSON_SLICE, 'where' => ($c + 1), 'delim' => false)); + //print("Found split at {$c}: ".$this->substr8($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + if (reset($stk) == SERVICES_JSON_IN_ARR) { + // we are in an array, so just push an element onto the stack + array_push($arr, $this->decode($slice)); + + } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { + // we are in an object, so figure + // out the property name and set an + // element in an associative array, + // for now + $parts = array(); + + if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:/Uis', $slice, $parts)) { + // "name":value pair + $key = $this->decode($parts[1]); + $val = $this->decode(trim(substr($slice, strlen($parts[0])), ", \t\n\r\0\x0B")); + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $obj[$key] = $val; + } else { + $obj->$key = $val; + } + } elseif (preg_match('/^\s*(\w+)\s*:/Uis', $slice, $parts)) { + // name:value pair, where name is unquoted + $key = $parts[1]; + $val = $this->decode(trim(substr($slice, strlen($parts[0])), ", \t\n\r\0\x0B")); + + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $obj[$key] = $val; + } else { + $obj->$key = $val; + } + } + + } + + } elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) { + // found a quote, and we are not inside a string + array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c})); + //print("Found start of string at {$c}\n"); + + } elseif (($chrs{$c} == $top['delim']) && + ($top['what'] == SERVICES_JSON_IN_STR) && + (($this->strlen8($this->substr8($chrs, 0, $c)) - $this->strlen8(rtrim($this->substr8($chrs, 0, $c), '\\'))) % 2 != 1)) { + // found a quote, we're in a string, and it's not escaped + // we know that it's not escaped becase there is _not_ an + // odd number of backslashes at the end of the string so far + array_pop($stk); + //print("Found end of string at {$c}: ".$this->substr8($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n"); + + } elseif (($chrs{$c} == '[') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a left-bracket, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false)); + //print("Found start of array at {$c}\n"); + + } elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) { + // found a right-bracket, and we're in an array + array_pop($stk); + //print("Found end of array at {$c}: ".$this->substr8($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } elseif (($chrs{$c} == '{') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a left-brace, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false)); + //print("Found start of object at {$c}\n"); + + } elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) { + // found a right-brace, and we're in an object + array_pop($stk); + //print("Found end of object at {$c}: ".$this->substr8($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } elseif (($substr_chrs_c_2 == '/*') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a comment start, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_CMT, 'where' => $c, 'delim' => false)); + $c++; + //print("Found start of comment at {$c}\n"); + + } elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == SERVICES_JSON_IN_CMT)) { + // found a comment end, and we're in one now + array_pop($stk); + $c++; + + for ($i = $top['where']; $i <= $c; ++$i) + $chrs = substr_replace($chrs, ' ', $i, 1); + + //print("Found end of comment at {$c}: ".$this->substr8($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } + + } + + if (reset($stk) == SERVICES_JSON_IN_ARR) { + return $arr; + + } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { + return $obj; + + } + + } + } + } + + /** + * @todo Ultimately, this should just call PEAR::isError() + */ + function isError($data, $code = null) + { + if (class_exists('pear')) { + return PEAR::isError($data, $code); + } elseif (is_object($data) && (get_class($data) == 'services_json_error' || + is_subclass_of($data, 'services_json_error'))) { + return true; + } + + return false; + } + + /** + * Calculates length of string in bytes + * @param string + * @return integer length + */ + function strlen8( $str ) + { + if ( $this->_mb_strlen ) { + return mb_strlen( $str, "8bit" ); + } + return strlen( $str ); + } + + /** + * Returns part of a string, interpreting $start and $length as number of bytes. + * @param string + * @param integer start + * @param integer length + * @return integer length + */ + function substr8( $string, $start, $length=false ) + { + if ( $length === false ) { + $length = $this->strlen8( $string ) - $start; + } + if ( $this->_mb_substr ) { + return mb_substr( $string, $start, $length, "8bit" ); + } + return substr( $string, $start, $length ); + } + +} + +if (class_exists('PEAR_Error')) { + + class Services_JSON_Error extends PEAR_Error + { + function Services_JSON_Error($message = 'unknown error', $code = null, + $mode = null, $options = null, $userinfo = null) + { + parent::PEAR_Error($message, $code, $mode, $options, $userinfo); + } + } + +} else { + + /** + * @todo Ultimately, this class shall be descended from PEAR_Error + */ + class Services_JSON_Error + { + function Services_JSON_Error($message = 'unknown error', $code = null, + $mode = null, $options = null, $userinfo = null) + { + + } + } + +} diff --git a/webedit/photo_uploader/popup/php/UploadHandler.php b/webedit/photo_uploader/popup/php/UploadHandler.php new file mode 100644 index 0000000..6ae2094 --- /dev/null +++ b/webedit/photo_uploader/popup/php/UploadHandler.php @@ -0,0 +1,1459 @@ + array("imagecreatefromgif", "imagegif"), + "image/jpg" => array("imagecreatefromjpeg", "imagejpeg"), + "image/jpeg" => array("imagecreatefromjpeg", "imagejpeg"), + "image/png" => array("imagecreatefrompng", "imagepng"), + "image/bmp" => array("imagecreatefromwbmp", "imagewbmp") + ); + + public function __construct($options = null, $initialize = true, $error_messages = null) { + + $this->post_max_size = (defined('SMARTEDITOR_UPLOAD_SIZE_LIMIT') && SMARTEDITOR_UPLOAD_SIZE_LIMIT) ? SMARTEDITOR_UPLOAD_SIZE_LIMIT.'M' : ini_get('post_max_size'); + + // PHP File Upload error message codes: + // http://php.net/manual/en/features.file-upload.errors.php + $this->error_messages = array( + 1 => 'The uploaded file exceeds the upload_max_filesize', + 2 => 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form', + 3 => 'The uploaded file was only partially uploaded', + 4 => 'No file was uploaded', + 6 => 'Missing a temporary folder', + 7 => 'Failed to write file to disk', + 8 => 'A PHP extension stopped the file upload', + 'post_max_size' => 'The uploaded file exceeds the post_max_size', + 'max_file_size' => 'File is too big', + 'min_file_size' => 'File is too small', + 'accept_file_types' => 'Filetype not allowed', + 'max_number_of_files' => 'Maximum number of files exceeded', + 'max_width' => 'Image exceeds maximum width', + 'min_width' => 'Image requires a minimum width', + 'max_height' => 'Image exceeds maximum height', + 'min_height' => 'Image requires a minimum height', + 'abort' => 'File upload aborted', + 'image_resize' => 'Failed to resize image' + ); + + $this->options = array( + 'script_url' => $this->get_full_url().'/', + 'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/files/', + 'upload_url' => $this->get_full_url().'/files/', + 'user_dirs' => false, + 'mkdir_mode' => 0755, + 'param_name' => 'files', + // Set the following option to 'POST', if your server does not support + // DELETE requests. This is a parameter sent to the client: + 'delete_type' => 'DELETE', + 'access_control_allow_origin' => '*', + 'access_control_allow_credentials' => false, + 'access_control_allow_methods' => array( + 'OPTIONS', + 'HEAD', + 'GET', + 'POST', + 'PUT', + 'PATCH', + 'DELETE' + ), + 'access_control_allow_headers' => array( + 'Content-Type', + 'Content-Range', + 'Content-Disposition' + ), + // Enable to provide file downloads via GET requests to the PHP script: + // 1. Set to 1 to download files via readfile method through PHP + // 2. Set to 2 to send a X-Sendfile header for lighttpd/Apache + // 3. Set to 3 to send a X-Accel-Redirect header for nginx + // If set to 2 or 3, adjust the upload_url option to the base path of + // the redirect parameter, e.g. '/files/'. + 'download_via_php' => false, + // Read files in chunks to avoid memory limits when download_via_php + // is enabled, set to 0 to disable chunked reading of files: + 'readfile_chunk_size' => 10 * 1024 * 1024, // 10 MiB + // Defines which files can be displayed inline when downloaded: + 'inline_file_types' => '/\.(gif|jpe?g|bmp|png)$/i', + // Defines which files (based on their names) are accepted for upload: + //'accept_file_types' => '/.+$/i', + 'accept_file_types' => '/\.(gif|jpe?g|bmp|png)$/i', + // The php.ini settings upload_max_filesize and post_max_size + // take precedence over the following max_file_size setting: + 'max_file_size' => null, + 'min_file_size' => 1, + // The maximum number of files for the upload directory: + 'max_number_of_files' => null, + // Defines which files are handled as image files: + 'image_file_types' => '/\.(gif|jpe?g|bmp|png)$/i', + 'is_resize' => (defined('SMARTEDITOR_UPLOAD_RESIZE') && SMARTEDITOR_UPLOAD_RESIZE) ? true : false, + 'resize_max_width' => (defined('SMARTEDITOR_UPLOAD_MAX_WIDTH') && SMARTEDITOR_UPLOAD_MAX_WIDTH) ? SMARTEDITOR_UPLOAD_MAX_WIDTH : 800, + 'resize_max_height' => (defined('SMARTEDITOR_UPLOAD_MAX_HEIGHT') && SMARTEDITOR_UPLOAD_MAX_HEIGHT) ? SMARTEDITOR_UPLOAD_MAX_HEIGHT : 800, + 'resize_jpeg_compress' => (defined('SMARTEDITOR_UPLOAD_IMAGE_QUALITY') && SMARTEDITOR_UPLOAD_IMAGE_QUALITY) ? SMARTEDITOR_UPLOAD_IMAGE_QUALITY : 800, + // Image resolution restrictions: + 'max_width' => null, + 'max_height' => null, + 'min_width' => 1, + 'min_height' => 1, + // Set the following option to false to enable resumable uploads: + 'discard_aborted_uploads' => true, + // Set to 0 to use the GD library to scale and orient images, + // set to 1 to use imagick (if installed, falls back to GD), + // set to 2 to use the ImageMagick convert binary directly: + 'image_library' => 1, + // Uncomment the following to define an array of resource limits + // for imagick: + /* + 'imagick_resource_limits' => array( + imagick::RESOURCETYPE_MAP => 32, + imagick::RESOURCETYPE_MEMORY => 32 + ), + */ + // Command or path for to the ImageMagick convert binary: + 'convert_bin' => 'convert', + // Uncomment the following to add parameters in front of each + // ImageMagick convert call (the limit constraints seem only + // to have an effect if put in front): + /* + 'convert_params' => '-limit memory 32MiB -limit map 32MiB', + */ + // Command or path for to the ImageMagick identify binary: + 'identify_bin' => 'identify', + 'image_versions' => array( + // The empty image version key defines options for the original image: + '' => array( + // Automatically rotate images based on EXIF meta data: + 'auto_orient' => true + ), + // Uncomment the following to create medium sized images: + /* + 'medium' => array( + 'max_width' => 800, + 'max_height' => 600 + ), + */ + 'thumbnail' => array( + // Uncomment the following to use a defined directory for the thumbnails + // instead of a subdirectory based on the version identifier. + // Make sure that this directory doesn't allow execution of files if you + // don't pose any restrictions on the type of uploaded files, e.g. by + // copying the .htaccess file from the files directory for Apache: + //'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/thumb/', + //'upload_url' => $this->get_full_url().'/thumb/', + // Uncomment the following to force the max + // dimensions and e.g. create square thumbnails: + //'crop' => true, + 'max_width' => 80, + 'max_height' => 80 + ) + ) + ); + if ($options) { + $this->options = $options + $this->options; + } + if ($error_messages) { + $this->error_messages = $error_messages + $this->error_messages; + } + if ($initialize) { + $this->initialize(); + } + } + + protected function initialize() { + switch ($this->get_server_var('REQUEST_METHOD')) { + case 'OPTIONS': + case 'HEAD': + $this->head(); + break; + case 'GET': + if( $_GET['del'] ){ + $this->delete(); + } else { + $this->get(); + } + break; + case 'PATCH': + case 'PUT': + case 'POST': + $this->post(); + break; + case 'DELETE': + $this->delete(); + break; + default: + $this->header('HTTP/1.1 405 Method Not Allowed'); + } + } + + protected function get_full_url() { + $https = !empty($_SERVER['HTTPS']) && strcasecmp($_SERVER['HTTPS'], 'on') === 0; + return + ($https ? 'https://' : 'http://'). + (!empty($_SERVER['REMOTE_USER']) ? $_SERVER['REMOTE_USER'].'@' : ''). + (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ($_SERVER['SERVER_NAME']. + ($https && $_SERVER['SERVER_PORT'] === 443 || + $_SERVER['SERVER_PORT'] === 80 ? '' : ':'.$_SERVER['SERVER_PORT']))). + substr($_SERVER['SCRIPT_NAME'],0, strrpos($_SERVER['SCRIPT_NAME'], '/')); + } + + protected function get_user_id() { + @session_start(); + return session_id(); + } + + protected function get_user_path() { + if ($this->options['user_dirs']) { + return $this->get_user_id().'/'; + } + return ''; + } + + protected function get_upload_path($file_name = null, $version = null) { + $file_name = $file_name ? $file_name : ''; + if (empty($version)) { + $version_path = ''; + } else { + $version_dir = @$this->options['image_versions'][$version]['upload_dir']; + if ($version_dir) { + return $version_dir.$this->get_user_path().$file_name; + } + $version_path = $version.'/'; + } + return $this->options['upload_dir'].$this->get_user_path() + .$version_path.$file_name; + } + + protected function get_query_separator($url) { + return strpos($url, '?') === false ? '?' : '&'; + } + + protected function get_download_url($file_name, $version = null, $direct = false) { + if (!$direct && $this->options['download_via_php']) { + $url = $this->options['script_url'] + .$this->get_query_separator($this->options['script_url']) + .$this->get_singular_param_name() + .'='.rawurlencode($file_name); + if ($version) { + $url .= '&version='.rawurlencode($version); + } + return $url.'&download=1'; + } + if (empty($version)) { + $version_path = ''; + } else { + $version_url = @$this->options['image_versions'][$version]['upload_url']; + if ($version_url) { + return $version_url.$this->get_user_path().rawurlencode($file_name); + } + $version_path = rawurlencode($version).'/'; + } + return $this->options['upload_url'].$this->get_user_path() + .$version_path.rawurlencode($file_name); + } + + protected function set_additional_file_properties($file) { + $file->deleteUrl = $this->options['script_url'] + .$this->get_query_separator($this->options['script_url']) + .$this->get_singular_param_name() + .'='.rawurlencode($file->name); + $file->deleteType = $this->options['delete_type']; + if ($file->deleteType !== 'DELETE') { + $file->deleteUrl .= '&_method=DELETE'; + } + if ($this->options['access_control_allow_credentials']) { + $file->deleteWithCredentials = true; + } + } + + // Fix for overflowing signed 32 bit integers, + // works for sizes up to 2^32-1 bytes (4 GiB - 1): + protected function fix_integer_overflow($size) { + if ($size < 0) { + $size += 2.0 * (PHP_INT_MAX + 1); + } + return $size; + } + + protected function get_file_size($file_path, $clear_stat_cache = false) { + if ($clear_stat_cache) { + if (version_compare(PHP_VERSION, '5.3.0') >= 0) { + clearstatcache(true, $file_path); + } else { + clearstatcache(); + } + } + return $this->fix_integer_overflow(filesize($file_path)); + } + + protected function is_valid_file_object($file_name) { + $file_path = $this->get_upload_path($file_name); + if (is_file($file_path) && $file_name[0] !== '.') { + return true; + } + return false; + } + + protected function get_file_object($file_name) { + if ($this->is_valid_file_object($file_name)) { + $file = new \stdClass(); + $file->name = iconv('UTF-8', 'UTF-8//IGNORE', $file_name); + $file->size = $this->get_file_size( + $this->get_upload_path($file_name) + ); + $img_width_height = $this->get_image_size($this->get_upload_path($file_name)); + $file->width = $img_width_height[0]; + $file->height = $img_width_height[1]; + $file->url = $this->get_download_url($file->name); + foreach($this->options['image_versions'] as $version => $options) { + if (!empty($version)) { + if (is_file($this->get_upload_path($file_name, $version))) { + $file->{$version.'Url'} = $this->get_download_url( + $file->name, + $version + ); + } + } + } + $this->set_additional_file_properties($file); + return $file; + } + return null; + } + + protected function get_file_objects($iteration_method = 'get_file_object') { + $upload_dir = $this->get_upload_path(); + if (!is_dir($upload_dir)) { + return array(); + } + return array_values(array_filter(array_map( + array($this, $iteration_method), + scandir($upload_dir) + ))); + } + + protected function count_file_objects() { + return count($this->get_file_objects('is_valid_file_object')); + } + + protected function get_error_message($error) { + return array_key_exists($error, $this->error_messages) ? + $this->error_messages[$error] : $error; + } + + function get_config_bytes($val) { + $val = trim($val); + $last = strtolower($val[strlen($val)-1]); + switch($last) { + case 'g': + $val *= 1024; + case 'm': + $val *= 1024; + case 'k': + $val *= 1024; + } + return $this->fix_integer_overflow($val); + } + + protected function validate($uploaded_file, $file, $error, $index) { + if ($error) { + $file->error = $this->get_error_message($error); + return false; + } + $content_length = $this->fix_integer_overflow(intval( + $this->get_server_var('CONTENT_LENGTH') + )); + $post_max_size = $this->get_config_bytes($this->post_max_size); + + if ($post_max_size && ($content_length > $post_max_size)) { + $file->error = $this->get_error_message('post_max_size'); + return false; + } + if (!preg_match($this->options['accept_file_types'], $file->name)) { + $file->error = $this->get_error_message('accept_file_types'); + return false; + } + if ($uploaded_file && is_uploaded_file($uploaded_file)) { + $file_size = $this->get_file_size($uploaded_file); + } else { + $file_size = $content_length; + } + if ($this->options['max_file_size'] && ( + $file_size > $this->options['max_file_size'] || + $file->size > $this->options['max_file_size']) + ) { + $file->error = $this->get_error_message('max_file_size'); + return false; + } + if ($this->options['min_file_size'] && + $file_size < $this->options['min_file_size']) { + $file->error = $this->get_error_message('min_file_size'); + return false; + } + if (is_int($this->options['max_number_of_files']) && + ($this->count_file_objects() >= $this->options['max_number_of_files']) && + // Ignore additional chunks of existing files: + !is_file($this->get_upload_path($file->name))) { + $file->error = $this->get_error_message('max_number_of_files'); + return false; + } + $max_width = @$this->options['max_width']; + $max_height = @$this->options['max_height']; + $min_width = @$this->options['min_width']; + $min_height = @$this->options['min_height']; + if (($max_width || $max_height || $min_width || $min_height) + && preg_match($this->options['image_file_types'], $file->name)) { + list($img_width, $img_height) = $this->get_image_size($uploaded_file); + } + + if (!empty($img_width)) { + if ($max_width && $img_width > $max_width) { + $file->error = $this->get_error_message('max_width'); + return false; + } + if ($max_height && $img_height > $max_height) { + $file->error = $this->get_error_message('max_height'); + return false; + } + if ($min_width && $img_width < $min_width) { + $file->error = $this->get_error_message('min_width'); + return false; + } + if ($min_height && $img_height < $min_height) { + $file->error = $this->get_error_message('min_height'); + return false; + } + } + return true; + } + + protected function upcount_name_callback($matches) { + $index = isset($matches[1]) ? intval($matches[1]) + 1 : 1; + $ext = isset($matches[2]) ? $matches[2] : ''; + return ' ('.$index.')'.$ext; + } + + protected function upcount_name($name) { + return preg_replace_callback( + '/(?:(?: \(([\d]+)\))?(\.[^.]+))?$/', + array($this, 'upcount_name_callback'), + $name, + 1 + ); + } + + protected function get_unique_filename($file_path, $name, $size, $type, $error, + $index, $content_range) { + while(is_dir($this->get_upload_path($name))) { + $name = $this->upcount_name($name); + } + // Keep an existing filename if this is part of a chunked upload: + $uploaded_bytes = $this->fix_integer_overflow(intval($content_range[1])); + while(is_file($this->get_upload_path($name))) { + if ($uploaded_bytes === $this->get_file_size( + $this->get_upload_path($name))) { + break; + } + $name = $this->upcount_name($name); + } + return $name; + } + + protected function trim_file_name($file_path, $name, $size, $type, $error, + $index, $content_range) { + // Remove path information and dots around the filename, to prevent uploading + // into different directories or replacing hidden system files. + // Also remove control characters and spaces (\x00..\x20) around the filename: + $name = trim(basename(stripslashes($name)), ".\x00..\x20"); + // Use a timestamp for empty filenames: + if (!$name) { + $name = str_replace('.', '-', microtime(true)); + } + // Add missing file extension for known image types: + if (strpos($name, '.') === false && + preg_match('/^image\/(gif|jpe?g|png)/', $type, $matches)) { + $name .= '.'.$matches[1]; + } + if (function_exists('exif_imagetype')) { + switch(@exif_imagetype($file_path)){ + case IMAGETYPE_JPEG: + $extensions = array('jpg', 'jpeg'); + break; + case IMAGETYPE_PNG: + $extensions = array('png'); + break; + case IMAGETYPE_GIF: + $extensions = array('gif'); + break; + } + // Adjust incorrect image file extensions: + if (!empty($extensions)) { + $parts = explode('.', $name); + $extIndex = count($parts) - 1; + $ext = strtolower(@$parts[$extIndex]); + if (!in_array($ext, $extensions)) { + $parts[$extIndex] = $extensions[0]; + $name = implode('.', $parts); + } + } + } + return $name; + } + + protected function get_file_name($file_path, $name, $size, $type, $error, + $index, $content_range) { + return $this->get_unique_filename( + $file_path, + $this->trim_file_name($file_path, $name, $size, $type, $error, + $index, $content_range), + $size, + $type, + $error, + $index, + $content_range + ); + } + + protected function handle_form_data($file, $index) { + // Handle form data, e.g. $_REQUEST['description'][$index] + } + + protected function get_scaled_image_file_paths($file_name, $version) { + $file_path = $this->get_upload_path($file_name); + if (!empty($version)) { + $version_dir = $this->get_upload_path(null, $version); + if (!is_dir($version_dir)) { + mkdir($version_dir, $this->options['mkdir_mode'], true); + } + $new_file_path = $version_dir.'/'.$file_name; + } else { + $new_file_path = $file_path; + } + return array($file_path, $new_file_path); + } + + protected function gd_get_image_object($file_path, $func, $no_cache = false) { + if (empty($this->image_objects[$file_path]) || $no_cache) { + $this->gd_destroy_image_object($file_path); + $this->image_objects[$file_path] = $func($file_path); + } + return $this->image_objects[$file_path]; + } + + protected function gd_set_image_object($file_path, $image) { + $this->gd_destroy_image_object($file_path); + $this->image_objects[$file_path] = $image; + } + + protected function gd_destroy_image_object($file_path) { + $image = @$this->image_objects[$file_path]; + return $image && imagedestroy($image); + } + + protected function gd_imageflip($image, $mode) { + if (function_exists('imageflip')) { + return imageflip($image, $mode); + } + $new_width = $src_width = imagesx($image); + $new_height = $src_height = imagesy($image); + $new_img = imagecreatetruecolor($new_width, $new_height); + $src_x = 0; + $src_y = 0; + switch ($mode) { + case '1': // flip on the horizontal axis + $src_y = $new_height - 1; + $src_height = -$new_height; + break; + case '2': // flip on the vertical axis + $src_x = $new_width - 1; + $src_width = -$new_width; + break; + case '3': // flip on both axes + $src_y = $new_height - 1; + $src_height = -$new_height; + $src_x = $new_width - 1; + $src_width = -$new_width; + break; + default: + return $image; + } + imagecopyresampled( + $new_img, + $image, + 0, + 0, + $src_x, + $src_y, + $new_width, + $new_height, + $src_width, + $src_height + ); + return $new_img; + } + + protected function gd_orient_image($file_path, $src_img) { + if (!function_exists('exif_read_data')) { + return false; + } + $exif = @exif_read_data($file_path); + if ($exif === false) { + return false; + } + $orientation = intval(@$exif['Orientation']); + if ($orientation < 2 || $orientation > 8) { + return false; + } + switch ($orientation) { + case 2: + $new_img = $this->gd_imageflip( + $src_img, + defined('IMG_FLIP_VERTICAL') ? IMG_FLIP_VERTICAL : 2 + ); + break; + case 3: + $new_img = imagerotate($src_img, 180, 0); + break; + case 4: + $new_img = $this->gd_imageflip( + $src_img, + defined('IMG_FLIP_HORIZONTAL') ? IMG_FLIP_HORIZONTAL : 1 + ); + break; + case 5: + $tmp_img = $this->gd_imageflip( + $src_img, + defined('IMG_FLIP_HORIZONTAL') ? IMG_FLIP_HORIZONTAL : 1 + ); + $new_img = imagerotate($tmp_img, 270, 0); + imagedestroy($tmp_img); + break; + case 6: + $new_img = imagerotate($src_img, 270, 0); + break; + case 7: + $tmp_img = $this->gd_imageflip( + $src_img, + defined('IMG_FLIP_VERTICAL') ? IMG_FLIP_VERTICAL : 2 + ); + $new_img = imagerotate($tmp_img, 270, 0); + imagedestroy($tmp_img); + break; + case 8: + $new_img = imagerotate($src_img, 90, 0); + break; + default: + return false; + } + $this->gd_set_image_object($file_path, $new_img); + return true; + } + + protected function gd_create_scaled_image($file_name, $version, $options) { + if (!function_exists('imagecreatetruecolor')) { + error_log('Function not found: imagecreatetruecolor'); + return false; + } + list($file_path, $new_file_path) = + $this->get_scaled_image_file_paths($file_name, $version); + $type = strtolower(substr(strrchr($file_name, '.'), 1)); + switch ($type) { + case 'jpg': + case 'jpeg': + $src_func = 'imagecreatefromjpeg'; + $write_func = 'imagejpeg'; + $image_quality = isset($options['jpeg_quality']) ? + $options['jpeg_quality'] : 75; + break; + case 'gif': + $src_func = 'imagecreatefromgif'; + $write_func = 'imagegif'; + $image_quality = null; + break; + case 'png': + $src_func = 'imagecreatefrompng'; + $write_func = 'imagepng'; + $image_quality = isset($options['png_quality']) ? + $options['png_quality'] : 9; + break; + default: + return false; + } + $src_img = $this->gd_get_image_object( + $file_path, + $src_func, + !empty($options['no_cache']) + ); + $image_oriented = false; + if (!empty($options['auto_orient']) && $this->gd_orient_image( + $file_path, + $src_img + )) { + $image_oriented = true; + $src_img = $this->gd_get_image_object( + $file_path, + $src_func + ); + } + $max_width = $img_width = imagesx($src_img); + $max_height = $img_height = imagesy($src_img); + if (!empty($options['max_width'])) { + $max_width = $options['max_width']; + } + if (!empty($options['max_height'])) { + $max_height = $options['max_height']; + } + $scale = min( + $max_width / $img_width, + $max_height / $img_height + ); + if ($scale >= 1) { + if ($image_oriented) { + return $write_func($src_img, $new_file_path, $image_quality); + } + if ($file_path !== $new_file_path) { + return copy($file_path, $new_file_path); + } + return true; + } + if (empty($options['crop'])) { + $new_width = $img_width * $scale; + $new_height = $img_height * $scale; + $dst_x = 0; + $dst_y = 0; + $new_img = imagecreatetruecolor($new_width, $new_height); + } else { + if (($img_width / $img_height) >= ($max_width / $max_height)) { + $new_width = $img_width / ($img_height / $max_height); + $new_height = $max_height; + } else { + $new_width = $max_width; + $new_height = $img_height / ($img_width / $max_width); + } + $dst_x = 0 - ($new_width - $max_width) / 2; + $dst_y = 0 - ($new_height - $max_height) / 2; + $new_img = imagecreatetruecolor($max_width, $max_height); + } + // Handle transparency in GIF and PNG images: + switch ($type) { + case 'gif': + case 'png': + imagecolortransparent($new_img, imagecolorallocate($new_img, 0, 0, 0)); + case 'png': + imagealphablending($new_img, false); + imagesavealpha($new_img, true); + break; + } + $success = imagecopyresampled( + $new_img, + $src_img, + $dst_x, + $dst_y, + 0, + 0, + $new_width, + $new_height, + $img_width, + $img_height + ) && $write_func($new_img, $new_file_path, $image_quality); + $this->gd_set_image_object($file_path, $new_img); + return $success; + } + + protected function imagick_get_image_object($file_path, $no_cache = false) { + if (empty($this->image_objects[$file_path]) || $no_cache) { + $this->imagick_destroy_image_object($file_path); + $image = new \Imagick(); + if (!empty($this->options['imagick_resource_limits'])) { + foreach ($this->options['imagick_resource_limits'] as $type => $limit) { + $image->setResourceLimit($type, $limit); + } + } + $image->readImage($file_path); + $this->image_objects[$file_path] = $image; + } + return $this->image_objects[$file_path]; + } + + protected function imagick_set_image_object($file_path, $image) { + $this->imagick_destroy_image_object($file_path); + $this->image_objects[$file_path] = $image; + } + + protected function imagick_destroy_image_object($file_path) { + $image = @$this->image_objects[$file_path]; + return $image && $image->destroy(); + } + + protected function imagick_orient_image($image) { + $orientation = $image->getImageOrientation(); + $background = new \ImagickPixel('none'); + switch ($orientation) { + case \imagick::ORIENTATION_TOPRIGHT: // 2 + $image->flopImage(); // horizontal flop around y-axis + break; + case \imagick::ORIENTATION_BOTTOMRIGHT: // 3 + $image->rotateImage($background, 180); + break; + case \imagick::ORIENTATION_BOTTOMLEFT: // 4 + $image->flipImage(); // vertical flip around x-axis + break; + case \imagick::ORIENTATION_LEFTTOP: // 5 + $image->flopImage(); // horizontal flop around y-axis + $image->rotateImage($background, 270); + break; + case \imagick::ORIENTATION_RIGHTTOP: // 6 + $image->rotateImage($background, 90); + break; + case \imagick::ORIENTATION_RIGHTBOTTOM: // 7 + $image->flipImage(); // vertical flip around x-axis + $image->rotateImage($background, 270); + break; + case \imagick::ORIENTATION_LEFTBOTTOM: // 8 + $image->rotateImage($background, 270); + break; + default: + return false; + } + $image->setImageOrientation(\imagick::ORIENTATION_TOPLEFT); // 1 + return true; + } + + protected function imagick_create_scaled_image($file_name, $version, $options) { + list($file_path, $new_file_path) = + $this->get_scaled_image_file_paths($file_name, $version); + $image = $this->imagick_get_image_object( + $file_path, + !empty($options['no_cache']) + ); + if ($image->getImageFormat() === 'GIF') { + // Handle animated GIFs: + $images = $image->coalesceImages(); + foreach ($images as $frame) { + $image = $frame; + $this->imagick_set_image_object($file_name, $image); + break; + } + } + $image_oriented = false; + if (!empty($options['auto_orient'])) { + $image_oriented = $this->imagick_orient_image($image); + } + $new_width = $max_width = $img_width = $image->getImageWidth(); + $new_height = $max_height = $img_height = $image->getImageHeight(); + if (!empty($options['max_width'])) { + $new_width = $max_width = $options['max_width']; + } + if (!empty($options['max_height'])) { + $new_height = $max_height = $options['max_height']; + } + if (!($image_oriented || $max_width < $img_width || $max_height < $img_height)) { + if ($file_path !== $new_file_path) { + return copy($file_path, $new_file_path); + } + return true; + } + $crop = !empty($options['crop']); + if ($crop) { + $x = 0; + $y = 0; + if (($img_width / $img_height) >= ($max_width / $max_height)) { + $new_width = 0; // Enables proportional scaling based on max_height + $x = ($img_width / ($img_height / $max_height) - $max_width) / 2; + } else { + $new_height = 0; // Enables proportional scaling based on max_width + $y = ($img_height / ($img_width / $max_width) - $max_height) / 2; + } + } + $success = $image->resizeImage( + $new_width, + $new_height, + isset($options['filter']) ? $options['filter'] : \imagick::FILTER_LANCZOS, + isset($options['blur']) ? $options['blur'] : 1, + $new_width && $new_height // fit image into constraints if not to be cropped + ); + if ($success && $crop) { + $success = $image->cropImage( + $max_width, + $max_height, + $x, + $y + ); + if ($success) { + $success = $image->setImagePage($max_width, $max_height, 0, 0); + } + } + $type = strtolower(substr(strrchr($file_name, '.'), 1)); + switch ($type) { + case 'jpg': + case 'jpeg': + if (!empty($options['jpeg_quality'])) { + $image->setImageCompression(\imagick::COMPRESSION_JPEG); + $image->setImageCompressionQuality($options['jpeg_quality']); + } + break; + } + if (!empty($options['strip'])) { + $image->stripImage(); + } + return $success && $image->writeImage($new_file_path); + } + + protected function imagemagick_create_scaled_image($file_name, $version, $options) { + list($file_path, $new_file_path) = + $this->get_scaled_image_file_paths($file_name, $version); + $resize = @$options['max_width'] + .(empty($options['max_height']) ? '' : 'X'.$options['max_height']); + if (!$resize && empty($options['auto_orient'])) { + if ($file_path !== $new_file_path) { + return copy($file_path, $new_file_path); + } + return true; + } + $cmd = $this->options['convert_bin']; + if (!empty($this->options['convert_params'])) { + $cmd .= ' '.$this->options['convert_params']; + } + $cmd .= ' '.escapeshellarg($file_path); + if (!empty($options['auto_orient'])) { + $cmd .= ' -auto-orient'; + } + if ($resize) { + // Handle animated GIFs: + $cmd .= ' -coalesce'; + if (empty($options['crop'])) { + $cmd .= ' -resize '.escapeshellarg($resize.'>'); + } else { + $cmd .= ' -resize '.escapeshellarg($resize.'^'); + $cmd .= ' -gravity center'; + $cmd .= ' -crop '.escapeshellarg($resize.'+0+0'); + } + // Make sure the page dimensions are correct (fixes offsets of animated GIFs): + $cmd .= ' +repage'; + } + if (!empty($options['convert_params'])) { + $cmd .= ' '.$options['convert_params']; + } + $cmd .= ' '.escapeshellarg($new_file_path); + exec($cmd, $output, $error); + if ($error) { + error_log(implode('\n', $output)); + return false; + } + return true; + } + + protected function get_image_size($file_path) { + if ($this->options['image_library']) { + if (extension_loaded('imagick')) { + $image = new \Imagick(); + try { + if (@$image->pingImage($file_path)) { + $dimensions = array($image->getImageWidth(), $image->getImageHeight()); + $image->destroy(); + return $dimensions; + } + return false; + } catch (Exception $e) { + error_log($e->getMessage()); + } + } + if ($this->options['image_library'] === 2) { + $cmd = $this->options['identify_bin']; + $cmd .= ' -ping '.escapeshellarg($file_path); + exec($cmd, $output, $error); + if (!$error && !empty($output)) { + // image.jpg JPEG 1920x1080 1920x1080+0+0 8-bit sRGB 465KB 0.000u 0:00.000 + $infos = preg_split('/\s+/', $output[0]); + $dimensions = preg_split('/x/', $infos[2]); + return $dimensions; + } + return false; + } + } + if (!function_exists('getimagesize')) { + error_log('Function not found: getimagesize'); + return false; + } + return @getimagesize($file_path); + } + + protected function create_scaled_image($file_name, $version, $options) { + if ($this->options['image_library'] === 2) { + return $this->imagemagick_create_scaled_image($file_name, $version, $options); + } + if ($this->options['image_library'] && extension_loaded('imagick')) { + return $this->imagick_create_scaled_image($file_name, $version, $options); + } + return $this->gd_create_scaled_image($file_name, $version, $options); + } + + protected function destroy_image_object($file_path) { + if ($this->options['image_library'] && extension_loaded('imagick')) { + return $this->imagick_destroy_image_object($file_path); + } + } + + protected function is_valid_image_file($file_path) { + if (!preg_match($this->options['image_file_types'], $file_path)) { + return false; + } + if (function_exists('exif_imagetype')) { + return @exif_imagetype($file_path); + } + $image_info = $this->get_image_size($file_path); + return $image_info && $image_info[0] && $image_info[1]; + } + + protected function handle_image_file($file_path, $file) { + $failed_versions = array(); + foreach($this->options['image_versions'] as $version => $options) { + if ($this->create_scaled_image($file->name, $version, $options)) { + if (!empty($version)) { + $file->{$version.'Url'} = $this->get_download_url( + $file->name, + $version + ); + } else { + $file->size = $this->get_file_size($file_path, true); + } + } else { + $failed_versions[] = $version ? $version : 'original'; + } + } + if (count($failed_versions)) { + $file->error = $this->get_error_message('image_resize') + .' ('.implode($failed_versions,', ').')'; + } + // Free memory: + $this->destroy_image_object($file_path); + } + + protected function get_microtime(){ + list($usec, $sec) = explode(" ",microtime()); + return ((float)$usec + (float)$sec); + } + + protected function get_file_passname(){ + $tmp_name = $this->get_user_id().$_SERVER['REMOTE_ADDR']; + $tmp_name = md5(sha1($tmp_name)); + return $tmp_name; + } + + protected function reprocessImage($file_path, $callback) + { + // Extracting mime type using getimagesize + try { + $image_info = getimagesize($file_path); + if ($image_info === null) { + //throw new Exception("Invalid image type"); + return false; + } + + $mime_type = $image_info["mime"]; + + if (!array_key_exists($mime_type, self::$MIME_TYPES_PROCESSORS)) { + //throw new Exception("Invalid image MIME type"); + return false; + } + + $image_from_file = self::$MIME_TYPES_PROCESSORS[$mime_type][0]; + $image_to_file = self::$MIME_TYPES_PROCESSORS[$mime_type][1]; + + $reprocessed_image = @$image_from_file($file_path); + + if (!$reprocessed_image) { + //throw new Exception("Unable to create reprocessed image from file"); + return false; + } + + // Calling callback(if set) with path of image as a parameter + if ($callback !== null) { + $callback($reprocessed_image); + } + + // Freeing up memory + imagedestroy($reprocessed_image); + } catch (Exception $e) { + unlink($file_path); + return false; + } + + return true; + } + + protected function handle_file_upload($uploaded_file, $name, $size, $type, $error, + $index = null, $content_range = null) { + $file = new \stdClass(); + $file->oriname = $this->get_file_name($uploaded_file, $name, $size, $type, $error, + $index, $content_range); + + $filename_ext = pathinfo($name, PATHINFO_EXTENSION); + $file->name = $this->get_file_passname().'_'.str_replace(".", "_", $this->get_microtime()).".".$filename_ext; + + //$file->name = iconv('UTF-8', 'UTF-8//IGNORE', utf8_encode($file->name)); + $file->size = $this->fix_integer_overflow(intval($size)); + $file->type = $type; + + if ( SMARTEDITOR_UPLOAD_IMG_CHECK && ! $this->reprocessImage($uploaded_file, null) ){ + $file->error = $this->get_error_message('accept_file_types'); + return $file; + } + + if ($this->validate($uploaded_file, $file, $error, $index)) { + $this->handle_form_data($file, $index); + $upload_dir = $this->get_upload_path(); + if (!is_dir($upload_dir)) { + mkdir($upload_dir, $this->options['mkdir_mode'], true); + } + $file_path = $this->get_upload_path($file->name); + $append_file = $content_range && is_file($file_path) && + $file->size > $this->get_file_size($file_path); + if ($uploaded_file && is_uploaded_file($uploaded_file)) { + // multipart/formdata uploads (POST method uploads) + if ($append_file) { + file_put_contents( + $file_path, + fopen($uploaded_file, 'r'), + FILE_APPEND + ); + } else { + move_uploaded_file($uploaded_file, $file_path); + } + } else { + // Non-multipart uploads (PUT method support) + file_put_contents( + $file_path, + fopen('php://input', 'r'), + $append_file ? FILE_APPEND : 0 + ); + } + $file_size = $this->get_file_size($file_path, $append_file); + + try { + if(defined('G5_FILE_PERMISSION')) chmod($file_path, G5_FILE_PERMISSION); + } catch (Exception $e) { + } + + if ($file_size === $file->size) { + $file->url = $this->get_download_url($file->name); + if ($this->is_valid_image_file($file_path)) { + $this->handle_image_file($file_path, $file); + + $this->files[] = $file->name; + + if( $this->options['is_resize'] ){ + $resize_options = array( + 'max_width'=>$this->options['resize_max_width'], + 'max_height'=>$this->options['resize_max_height'], + 'jpeg_quality'=>$this->options['resize_jpeg_compress'], + 'auto_orient' => true, + ); + + if ($this->create_scaled_image($file->name, '', $resize_options)) { + $file->size = $this->get_file_size($file_path, true); + } + } + + $image_width_height = $this->get_image_size($file_path); + $file->width = $image_width_height[0]; + $file->height = $image_width_height[1]; + } else { //로빈아빠님이 알려주심, 이미지 업로드 체크 + unlink($file_path); + $file->error = $this->get_error_message('accept_file_types'); + } + } else { + $file->size = $file_size; + if (!$content_range && $this->options['discard_aborted_uploads']) { + unlink($file_path); + $file->error = $this->get_error_message('abort'); + } + } + $this->set_additional_file_properties($file); + } + + return $file; + } + + protected function readfile($file_path) { + $file_size = $this->get_file_size($file_path); + $chunk_size = $this->options['readfile_chunk_size']; + if ($chunk_size && $file_size > $chunk_size) { + $handle = fopen($file_path, 'rb'); + while (!feof($handle)) { + echo fread($handle, $chunk_size); + ob_flush(); + flush(); + } + fclose($handle); + return $file_size; + } + return readfile($file_path); + } + + protected function body($str) { + echo $str; + } + + protected function header($str) { + header($str); + } + + protected function get_server_var($id) { + return isset($_SERVER[$id]) ? $_SERVER[$id] : ''; + } + + protected function generate_response($content, $print_response = true) { + if ($print_response) { + $json = json_encode($content); + + $redirect = isset($_REQUEST['redirect']) ? + stripslashes($_REQUEST['redirect']) : null; + if ($redirect) { + $this->header('Location: '.sprintf($redirect, rawurlencode($json))); + return; + } + $this->head(); + if ($this->get_server_var('HTTP_CONTENT_RANGE')) { + $files = isset($content[$this->options['param_name']]) ? + $content[$this->options['param_name']] : null; + if ($files && is_array($files) && is_object($files[0]) && $files[0]->size) { + $this->header('Range: 0-'.( + $this->fix_integer_overflow(intval($files[0]->size)) - 1 + )); + } + } + $this->body($json); + } + return $content; + } + + protected function get_version_param() { + return isset($_GET['version']) ? basename(stripslashes($_GET['version'])) : null; + } + + protected function get_singular_param_name() { + return substr($this->options['param_name'], 0, -1); + } + + protected function get_file_name_param() { + $name = $this->get_singular_param_name(); + return isset($_GET[$name]) ? basename(stripslashes($_GET[$name])) : null; + } + + protected function get_file_names_params() { + $params = isset($_GET[$this->options['param_name']]) ? + $_GET[$this->options['param_name']] : array(); + foreach ($params as $key => $value) { + $params[$key] = basename(stripslashes($value)); + } + return $params; + } + + protected function get_file_type($file_path) { + switch (strtolower(pathinfo($file_path, PATHINFO_EXTENSION))) { + case 'jpeg': + case 'jpg': + return 'image/jpeg'; + case 'png': + return 'image/png'; + case 'gif': + return 'image/gif'; + default: + return ''; + } + } + + protected function download() { + switch ($this->options['download_via_php']) { + case 1: + $redirect_header = null; + break; + case 2: + $redirect_header = 'X-Sendfile'; + break; + case 3: + $redirect_header = 'X-Accel-Redirect'; + break; + default: + return $this->header('HTTP/1.1 403 Forbidden'); + } + $file_name = $this->get_file_name_param(); + if (!$this->is_valid_file_object($file_name)) { + return $this->header('HTTP/1.1 404 Not Found'); + } + if ($redirect_header) { + return $this->header( + $redirect_header.': '.$this->get_download_url( + $file_name, + $this->get_version_param(), + true + ) + ); + } + $file_path = $this->get_upload_path($file_name, $this->get_version_param()); + // Prevent browsers from MIME-sniffing the content-type: + $this->header('X-Content-Type-Options: nosniff'); + if (!preg_match($this->options['inline_file_types'], $file_name)) { + $this->header('Content-Type: application/octet-stream'); + $this->header('Content-Disposition: attachment; filename="'.$file_name.'"'); + } else { + $this->header('Content-Type: '.$this->get_file_type($file_path)); + $this->header('Content-Disposition: inline; filename="'.$file_name.'"'); + } + $this->header('Content-Length: '.$this->get_file_size($file_path)); + $this->header('Last-Modified: '.gmdate('D, d M Y H:i:s T', filemtime($file_path))); + $this->readfile($file_path); + } + + protected function send_content_type_header() { + $this->header('Vary: Accept'); + if (strpos($this->get_server_var('HTTP_ACCEPT'), 'application/json') !== false) { + $this->header('Content-type: application/json'); + } else { + $this->header('Content-type: text/plain'); + } + } + + protected function send_access_control_headers() { + $this->header('Access-Control-Allow-Origin: '.$this->options['access_control_allow_origin']); + $this->header('Access-Control-Allow-Credentials: ' + .($this->options['access_control_allow_credentials'] ? 'true' : 'false')); + $this->header('Access-Control-Allow-Methods: ' + .implode(', ', $this->options['access_control_allow_methods'])); + $this->header('Access-Control-Allow-Headers: ' + .implode(', ', $this->options['access_control_allow_headers'])); + } + + public function head() { + $this->header('Pragma: no-cache'); + $this->header('Cache-Control: no-store, no-cache, must-revalidate'); + $this->header('Content-Disposition: inline; filename="files.json"'); + // Prevent Internet Explorer from MIME-sniffing the content-type: + $this->header('X-Content-Type-Options: nosniff'); + if ($this->options['access_control_allow_origin']) { + $this->send_access_control_headers(); + } + $this->send_content_type_header(); + } + + public function get($print_response = true) { + //보안 이슈로 인해 사용하지 않습니다. + /* + if ($print_response && isset($_GET['download'])) { + return $this->download(); + } + $file_name = $this->get_file_name_param(); + if ($file_name) { + $response = array( + $this->get_singular_param_name() => $this->get_file_object($file_name) + ); + } else { + $response = array( + $this->options['param_name'] => $this->get_file_objects() + ); + } + return $this->generate_response($response, $print_response); + */ + } + + public function post($print_response = true) { + if (isset($_REQUEST['_method']) && $_REQUEST['_method'] === 'DELETE') { + return $this->delete($print_response); + } + $upload = isset($_FILES[$this->options['param_name']]) ? + $_FILES[$this->options['param_name']] : null; + // Parse the Content-Disposition header, if available: + $file_name = $this->get_server_var('HTTP_CONTENT_DISPOSITION') ? + rawurldecode(preg_replace( + '/(^[^"]+")|("$)/', + '', + $this->get_server_var('HTTP_CONTENT_DISPOSITION') + )) : null; + // Parse the Content-Range header, which has the following form: + // Content-Range: bytes 0-524287/2000000 + $content_range = $this->get_server_var('HTTP_CONTENT_RANGE') ? + preg_split('/[^0-9]+/', $this->get_server_var('HTTP_CONTENT_RANGE')) : null; + $size = $content_range ? $content_range[3] : null; + $files = array(); + if ($upload && is_array($upload['tmp_name'])) { + // param_name is an array identifier like "files[]", + // $_FILES is a multi-dimensional array: + foreach ($upload['tmp_name'] as $index => $value) { + $files[] = $this->handle_file_upload( + $upload['tmp_name'][$index], + $file_name ? $file_name : $upload['name'][$index], + $size ? $size : $upload['size'][$index], + $upload['type'][$index], + $upload['error'][$index], + $index, + $content_range + ); + } + } else { + // param_name is a single object identifier like "file", + // $_FILES is a one-dimensional array: + $files[] = $this->handle_file_upload( + isset($upload['tmp_name']) ? $upload['tmp_name'] : null, + $file_name ? $file_name : (isset($upload['name']) ? + $upload['name'] : null), + $size ? $size : (isset($upload['size']) ? + $upload['size'] : $this->get_server_var('CONTENT_LENGTH')), + isset($upload['type']) ? + $upload['type'] : $this->get_server_var('CONTENT_TYPE'), + isset($upload['error']) ? $upload['error'] : null, + null, + $content_range + ); + } + return $this->generate_response( + array($this->options['param_name'] => $files), + $print_response + ); + } + + public function delete($print_response = true) { + /* 보안 이슈 url을 참고 https://github.com/blueimp/jQuery-File-Upload/issues/2426 */ + $file_names = $this->get_file_names_params(); + if (empty($file_names)) { + $file_names = array($this->get_file_name_param()); + } + $response = array(); + foreach($file_names as $file_name) { + if( substr($file_name, 0 , 32) != $this->get_file_passname() ) continue; //session_id() 와 비교하여 틀리면 지우지 않음 + $file_path = $this->get_upload_path($file_name); + $success = is_file($file_path) && $file_name[0] !== '.' && unlink($file_path); + if ($success) { + foreach($this->options['image_versions'] as $version => $options) { + if (!empty($version)) { + $file = $this->get_upload_path($file_name, $version); + if (is_file($file)) { + unlink($file); + } + } + } + } + $response[$file_name] = $success; + } + return $this->generate_response($response, $print_response); + } + +} \ No newline at end of file diff --git a/webedit/photo_uploader/popup/php/index.php b/webedit/photo_uploader/popup/php/index.php new file mode 100644 index 0000000..c6e7404 --- /dev/null +++ b/webedit/photo_uploader/popup/php/index.php @@ -0,0 +1,49 @@ +encode($data) ); + } +} + +@ini_set('gd.jpeg_ignore_warning', 1); + +$ym = date('ym'); + +$data_dir = $_SERVER[DOCUMENT_ROOT] . "/uploaded/webedit/".$ym."/"; +$data_url = "/uploaded/webedit/".$ym."/"; + +@mkdir($data_dir, 0777); +@chmod($data_dir, 0777); + +$is_editor_upload = true; + +if( $is_editor_upload ) { + + @require('UploadHandler.php'); + $options = array( + 'upload_dir' => $data_dir, + 'upload_url' => $data_url, + // This option will disable creating thumbnail images and will not create that extra folder. + // However, due to this, the images preview will not be displayed after upload + 'image_versions' => array() + ); + + $upload_handler = new UploadHandler($options); + +} else { + echo json_encode(array('files'=>array('0'=>array('error'=>'정상적인 업로드가 아닙니다.')))); + exit; +} \ No newline at end of file diff --git a/webedit/photo_uploader/popup/swfupload/XPButtonUploadText_61x22.png b/webedit/photo_uploader/popup/swfupload/XPButtonUploadText_61x22.png new file mode 100644 index 0000000..df7aa6e Binary files /dev/null and b/webedit/photo_uploader/popup/swfupload/XPButtonUploadText_61x22.png differ diff --git a/webedit/photo_uploader/popup/swfupload/fileprogress.js b/webedit/photo_uploader/popup/swfupload/fileprogress.js new file mode 100644 index 0000000..9f21a28 --- /dev/null +++ b/webedit/photo_uploader/popup/swfupload/fileprogress.js @@ -0,0 +1,203 @@ +/* + A simple class for displaying file information and progress + Note: This is a demonstration only and not part of SWFUpload. + Note: Some have had problems adapting this class in IE7. It may not be suitable for your application. +*/ + +// Constructor +// file is a SWFUpload file object +// targetID is the HTML element id attribute that the FileProgress HTML structure will be added to. +// Instantiating a new FileProgress object with an existing file will reuse/update the existing DOM elements +function FileProgress(file, targetID) { + this.fileProgressID = file.id; + + this.opacity = 100; + this.height = 0; + + + this.fileProgressWrapper = document.getElementById(this.fileProgressID); + if (!this.fileProgressWrapper) { + this.fileProgressWrapper = document.createElement("div"); + this.fileProgressWrapper.className = "progressWrapper"; + this.fileProgressWrapper.id = this.fileProgressID; + + this.fileProgressElement = document.createElement("div"); + this.fileProgressElement.className = "progressContainer"; + + var progressCancel = document.createElement("a"); + progressCancel.className = "progressCancel"; + progressCancel.href = "#"; + progressCancel.style.visibility = "hidden"; + progressCancel.appendChild(document.createTextNode(" ")); + + var progressText = document.createElement("div"); + progressText.className = "progressName"; + progressText.appendChild(document.createTextNode(file.name)); + + var progressBar = document.createElement("div"); + progressBar.className = "progressBarInProgress"; + + var progressStatus = document.createElement("div"); + progressStatus.className = "progressBarStatus"; + progressStatus.innerHTML = " "; + + this.fileProgressElement.appendChild(progressCancel); + this.fileProgressElement.appendChild(progressText); + this.fileProgressElement.appendChild(progressStatus); + this.fileProgressElement.appendChild(progressBar); + + this.fileProgressWrapper.appendChild(this.fileProgressElement); + + document.getElementById(targetID).appendChild(this.fileProgressWrapper); + } else { + this.fileProgressElement = this.fileProgressWrapper.firstChild; + this.reset(); + } + + this.height = this.fileProgressWrapper.offsetHeight; + this.setTimer(null); + + +} + +FileProgress.prototype.setTimer = function (timer) { + this.fileProgressElement["FP_TIMER"] = timer; +}; +FileProgress.prototype.getTimer = function (timer) { + return this.fileProgressElement["FP_TIMER"] || null; +}; + +FileProgress.prototype.reset = function () { + this.fileProgressElement.className = "progressContainer"; + + this.fileProgressElement.childNodes[2].innerHTML = " "; + this.fileProgressElement.childNodes[2].className = "progressBarStatus"; + + this.fileProgressElement.childNodes[3].className = "progressBarInProgress"; + this.fileProgressElement.childNodes[3].style.width = "0%"; + + this.appear(); +}; + +FileProgress.prototype.setProgress = function (percentage) { + this.fileProgressElement.className = "progressContainer green"; + this.fileProgressElement.childNodes[3].className = "progressBarInProgress"; + this.fileProgressElement.childNodes[3].style.width = percentage + "%"; + + this.appear(); +}; +FileProgress.prototype.setComplete = function () { + this.fileProgressElement.className = "progressContainer blue"; + this.fileProgressElement.childNodes[3].className = "progressBarComplete"; + this.fileProgressElement.childNodes[3].style.width = ""; + + var oSelf = this; + this.setTimer(setTimeout(function () { + oSelf.disappear(); + }, 10000)); +}; +FileProgress.prototype.setError = function () { + this.fileProgressElement.className = "progressContainer red"; + this.fileProgressElement.childNodes[3].className = "progressBarError"; + this.fileProgressElement.childNodes[3].style.width = ""; + + var oSelf = this; + this.setTimer(setTimeout(function () { + oSelf.disappear(); + }, 5000)); +}; +FileProgress.prototype.setCancelled = function () { + this.fileProgressElement.className = "progressContainer"; + this.fileProgressElement.childNodes[3].className = "progressBarError"; + this.fileProgressElement.childNodes[3].style.width = ""; + + var oSelf = this; + this.setTimer(setTimeout(function () { + oSelf.disappear(); + }, 2000)); +}; +FileProgress.prototype.setStatus = function (status) { + this.fileProgressElement.childNodes[2].innerHTML = status; +}; + +// Show/Hide the cancel button +FileProgress.prototype.toggleCancel = function (show, swfUploadInstance) { + this.fileProgressElement.childNodes[0].style.visibility = show ? "visible" : "hidden"; + if (swfUploadInstance) { + var fileID = this.fileProgressID; + this.fileProgressElement.childNodes[0].onclick = function () { + swfUploadInstance.cancelUpload(fileID); + return false; + }; + } +}; + +FileProgress.prototype.appear = function () { + if (this.getTimer() !== null) { + clearTimeout(this.getTimer()); + this.setTimer(null); + } + + if (this.fileProgressWrapper.filters) { + try { + this.fileProgressWrapper.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 100; + } catch (e) { + // If it is not set initially, the browser will throw an error. This will set it if it is not set yet. + this.fileProgressWrapper.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=100)"; + } + } else { + this.fileProgressWrapper.style.opacity = 1; + } + + this.fileProgressWrapper.style.height = ""; + + this.height = this.fileProgressWrapper.offsetHeight; + this.opacity = 100; + this.fileProgressWrapper.style.display = ""; + +}; + +// Fades out and clips away the FileProgress box. +FileProgress.prototype.disappear = function () { + + var reduceOpacityBy = 15; + var reduceHeightBy = 4; + var rate = 30; // 15 fps + + if (this.opacity > 0) { + this.opacity -= reduceOpacityBy; + if (this.opacity < 0) { + this.opacity = 0; + } + + if (this.fileProgressWrapper.filters) { + try { + this.fileProgressWrapper.filters.item("DXImageTransform.Microsoft.Alpha").opacity = this.opacity; + } catch (e) { + // If it is not set initially, the browser will throw an error. This will set it if it is not set yet. + this.fileProgressWrapper.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + this.opacity + ")"; + } + } else { + this.fileProgressWrapper.style.opacity = this.opacity / 100; + } + } + + if (this.height > 0) { + this.height -= reduceHeightBy; + if (this.height < 0) { + this.height = 0; + } + + this.fileProgressWrapper.style.height = this.height + "px"; + } + + if (this.height > 0 || this.opacity > 0) { + var oSelf = this; + this.setTimer(setTimeout(function () { + oSelf.disappear(); + }, rate)); + } else { + this.fileProgressWrapper.style.display = "none"; + this.setTimer(null); + } +}; \ No newline at end of file diff --git a/webedit/photo_uploader/popup/swfupload/handlers.js b/webedit/photo_uploader/popup/swfupload/handlers.js new file mode 100644 index 0000000..e652452 --- /dev/null +++ b/webedit/photo_uploader/popup/swfupload/handlers.js @@ -0,0 +1,378 @@ +/* +@author romeojks (romeojks@gmail.com) +@version 0.1 +@brief 파일 업로드 관련 +*/ + +function swfUploadPreLoad() { + var self = this; + var loading = function () { + document.getElementById("divLoadingContent").style.display = ""; + + var longLoad = function () { + document.getElementById("divLoadingContent").style.display = "none"; + document.getElementById("divLongLoading").style.display = ""; + }; + this.customSettings.loadingTimeout = setTimeout(function () { + longLoad.call(self) + }, + 15 * 1000 + ); + }; + + this.customSettings.loadingTimeout = setTimeout(function () { + loading.call(self); + }, + 1*1000 + ); +} + +function swfUploadLoaded() { + var self = this; + clearTimeout(this.customSettings.loadingTimeout); + document.getElementById("divLoadingContent").style.display = "none"; + document.getElementById("divLongLoading").style.display = "none"; + document.getElementById("divAlternateContent").style.display = "none"; +} + +function swfUploadLoadFailed() { + clearTimeout(this.customSettings.loadingTimeout); + document.getElementById("divLoadingContent").style.display = "none"; + document.getElementById("divLongLoading").style.display = "none"; + document.getElementById("divAlternateContent").style.display = ""; +} + +function fileQueued(file) { + try { + var obj = document.getElementById(this.customSettings.fileListAreaID); + var filename = file.name; + + if (filename.length > 20) { + filename = filename.substr(0,20) + "..."; + }; + + var text = filename + " (대기중...)"; + var value = last_bf_no + file.index; + var opt_obj = new Option(text, value, true, true); + obj.options[obj.options.length] = opt_obj; + } catch (ex) { + this.debug(ex); + } +} + +function fileQueueError(file, errorCode, message) { + try { + switch (errorCode) { + case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED : + alert(message == 0 ? "더이상 업로드 할 수 없습니다." : (message == file_upload_limit ? file_upload_limit + "개 까지만 업로드 할 수 있습니다." : file_upload_limit + "개 까지만 업로드 할 수 있습니다.\n\n" + "현재 " + message + "개 남았습니다.")); + break; + case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT : + alert("업로드 가능한 파일 용량(" + file_size_limit + ")을 초과했습니다.\n\n" + "File name: " + file.name + ", File size: " + getfilesize(file.size)); + break; + case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE : + alert("파일 사이즈가 '0' 입니다.\n\n" + "File name: " + file.name + ", File size: " + getfilesize(file.size)); + break; + case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE : + alert("파일 타입이 올바르지 않습니다.\n\n" + "File name: " + file.name + ", File size: " + getfilesize(file.size)); + break; + default : + alert("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + getfilesize(file.size) + ", Message: " + message); + break; + }; + } catch (ex) { + this.debug(ex); + }; +} + +function fileDialogComplete(numFilesSelected, numFilesQueued) { + try { + this.startUpload(); + } catch (ex) { + this.debug(ex); + }; +} + +function uploadStart(file) { + try { + if ((sum_filesize + file.size) > getfilesize1(file_allsize_limit)) { + return false; + } else { + return true; + }; + } catch (ex) { + this.debug(ex); + }; +} + +function uploadProgress(file, bytesLoaded, bytesTotal) { + try { + var obj = document.getElementById(this.customSettings.fileListAreaID); + var percent = Math.ceil((bytesLoaded / bytesTotal) * 100); + var filename = file.name; + + if (filename.length > 20) { + filename = filename.substr(0,20) + "..."; + }; + + var text = filename + " (" + percent + " %)"; + var bf_position = last_bf_no + file.index; + + obj.options[bf_position].text = text; + } catch (ex) { + this.debug(ex); + }; +} + +function uploadSuccess(file, serverData) { + try { + var obj = document.getElementById(this.customSettings.fileListAreaID); + var bf_position = last_bf_no + file.index; + var params = { + "bo_table" : bo_table, + "wr_id" : wr_id, + "w" : w, + "bf_position" : bf_position+1 + }; + + var url = swfupload_path + "/get_file_info.php"; + $.ajax({ + type: 'post', + url: url, + data: params, + success : after_upload_success = function(req) { + var file = eval('('+req+')'); + var file_size = (file.bf_filesize / 1024).toFixed(1); + var text = file.bf_source + " (" + getfilesize(file.bf_filesize) + ")"; + var value = file.bf_no + "|" + file.bf_source + "|" + file.bf_file + "|" + file.bf_filesize + "|" + file.bf_width + "|" + file.bf_type; + obj.options[bf_position].text = text; + obj.options[bf_position].value = value; + eval("preview(file.bf_file)"); + } + }); + + sum_filesize = sum_filesize + file.size; + document.getElementById("uploader_status").innerHTML = "문서첨부제한 : " + getfilesize(sum_filesize) + " / " + file_allsize_limit + "
    파일제한크기 : " + file_size_limit + " (허용확장자 : " + file_types_description + ")"; + } catch (ex) { + this.debug(ex); + }; +} + +function uploadError(file, errorCode, message) { + try { + switch (errorCode) { + case SWFUpload.UPLOAD_ERROR.HTTP_ERROR : + alert("네트워크 에러가 발생하였습니다. 관리자에게 문의하세요.\n\n" + "File name: " + file.name); + break; + case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED : + alert("파일 업로드가 실패하였습니다.\n\n" + "File name: " + file.name + ", File size: " + getfilesize(file.size)); + break; + case SWFUpload.UPLOAD_ERROR.IO_ERROR : + alert("입출력 에러가 발생하였습니다.\n\n" + "다른 프로그램에서 이 파일(" + file.name + ")을 사용중인지 확인하세요."); + break; + case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR : + alert("보안 에러가 발생하였습니다. 관리자에게 문의하세요.\n\n" + "File name: " + file.name); + break; + case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED : + alert("업로드 가능한 파일 용량(" + file_size_limit + ")을 초과했습니다.\n\n" + "File name: " + file.name + ", File size: " + getfilesize(file.size)); + break; + case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED : + alert("업로드 가능한 총파일 용량(" + file_allsize_limit + ")을 초과했습니다.\n\n" + "File name: " + file.name + ", File size: " + getfilesize(file.size)); + break; + case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED : + // If there aren't any files left (they were all cancelled) disable the cancel button + if (this.getStats().files_queued === 0) { + document.getElementById(this.customSettings.cancelButtonId).disabled = true; + }; + break; + case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED : + break; + default : + alert("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + getfilesize(file.size) + ", Message: " + message); + break; + } + } catch (ex) { + this.debug(ex); + }; +} + +function uploadComplete(file) { + /*if (this.getStats().files_queued === 0) { + document.getElementById(this.customSettings.cancelButtonId).disabled = true; + }*/ +} + +function getfilesize(size) { + if (!size) { + return "0 Byte"; + }; + if (size < 1024) { + return (size + " Byte"); + } else if (size > 1024 && size < 1024 *1024) { + return (size / 1024).toFixed(1) + " KB"; + } else { + return (size / (1024*1024)).toFixed(2) + " MB"; + }; +} + +function getfilesize1(size) { + var file_size = size.split(" "); + if (!file_size[0]) { + return 0; + }; + if (file_size[1] == "MB") { + return (file_size[0] * (1024*1024)); + } else if (file_size[1] == "KB") { + return (file_size[0] * 1024); + } else { + return (file_size[0]); + }; +} + +function delete_file() { + try { + var obj = document.getElementById("uploaded_file_list"); + var url = swfupload_path + "/file_delete.php"; + for (var i=0; i파일제한크기 : " + file_size_limit + " (허용확장자 : " + file_types_description + ")"; + }; + }; + } catch (ex) { + this.debug(ex); + }; +} + +function delete_file_complete() { + try { + var obj = document.getElementById("uploaded_file_list"); + for (var i=0; i"; + } else if (thumb && thumb_kind == "etc") { + document.getElementById("image_preview").innerHTML = ""; + } else { + document.getElementById("image_preview").innerHTML = "미리보기"; + }; + } catch (ex) { + this.debug(ex); + }; +} + +function file_to_editor() { + try { + var files_list = document.getElementById("uploaded_file_list"); + var html = ''; + + if (!files_list.value) { + alert('파일을 선택해주세요.'); + return false; + }; + + for (var i=0; i"; + } else { + alert("이미지만 삽입 할 수 있습니다."); + //path = "download.php?bo_table=" + bo_table + "&filename=" + file.bf_file + "&filesource=" + file.bf_source + ""; + //html += "" + file.bf_source + "
    \n"; + } + }; + }; + insert_editor(html2); + } catch (ex) { + this.debug(ex); + }; +} + +function insert_editor(html) { + try { + ed_wr_content.insertContents(html); + /* + if (typeof(ed_wr_content) != "undefined") + if (geditor_wr_content.get_mode() == "WYSIWYG") { + document.getElementById("geditor_wr_content_frame").contentWindow.document.body.focus(); + geditor_wr_content.get_range(); + html = html + "
    "; + } else if (geditor_wr_content.get_mode() == "TEXT") { + html = html + "\n"; + } else { + html = html + "
    "; + } + geditor_wr_content.insert_editor(html); + } else { + document.getElementById("wr_content").value += html + "\n"; + } + */ + } catch (ex) { + this.debug(ex); + }; + +} + +function get_file_info(val) { + try { + var arr = val.split('|'); + var ret = {"bf_no":arr[0], "bf_source":arr[1], "bf_file":arr[2], "bf_filesize":arr[3], "bf_width":arr[4], "bf_type":arr[5]}; + return ret; + } catch (ex) { + this.debug(ex); + }; +} diff --git a/webedit/photo_uploader/popup/swfupload/jquery.swfupload.js b/webedit/photo_uploader/popup/swfupload/jquery.swfupload.js new file mode 100644 index 0000000..e8f4d5f --- /dev/null +++ b/webedit/photo_uploader/popup/swfupload/jquery.swfupload.js @@ -0,0 +1,82 @@ +/* + * SWFUpload jQuery Plugin v1.0.0 + * + * Copyright (c) 2009 Adam Royle + * Licensed under the MIT license. + * + */ + +(function($){ + + var defaultHandlers = [ + 'swfupload_preload_handler', + 'swfupload_load_failed_handler', + 'swfupload_loaded_handler', + 'file_dialog_start_handler', + 'file_queued_handler', + 'file_queue_error_handler', + 'file_dialog_complete_handler', + 'upload_resize_start_handler', + 'upload_start_handler', + 'upload_progress_handler', + 'upload_error_handler', + 'upload_success_handler', + 'upload_complete_handler', + 'mouse_click_handler', + 'mouse_out_handler', + 'mouse_over_handler', + 'queue_complete_handler' + ]; + var additionalHandlers = []; + + $.fn.swfupload = function(){ + var args = $.makeArray(arguments); + return this.each(function(){ + var swfu; + if (args.length == 1 && typeof(args[0]) == 'object') { + swfu = $(this).data('__swfu'); + if (!swfu) { + var settings = args[0]; + var $magicUploadControl = $(this); + var handlers = []; + $.merge(handlers, defaultHandlers); + $.merge(handlers, additionalHandlers); + $.each(handlers, function(i, v){ + var eventName = v.replace(/_handler$/, '').replace(/_([a-z])/g, function(){ return arguments[1].toUpperCase(); }); + settings[v] = function() { + var event = $.Event(eventName); + $magicUploadControl.trigger(event, $.makeArray(arguments)); + return !event.isDefaultPrevented(); + }; + }); + $(this).data('__swfu', new SWFUpload(settings)); + } + } else if (args.length > 0 && typeof(args[0]) == 'string') { + var methodName = args.shift(); + swfu = $(this).data('__swfu'); + if (swfu && swfu[methodName]) { + swfu[methodName].apply(swfu, args); + } + } + }); + }; + + $.swfupload = { + additionalHandlers: function() { + if (arguments.length === 0) { + return additionalHandlers.slice(); + } else { + $(arguments).each(function(i, v){ + $.merge(additionalHandlers, $.makeArray(v)); + }); + } + }, + defaultHandlers: function() { + return defaultHandlers.slice(); + }, + getInstance: function(el) { + return $(el).data('__swfu'); + } + }; + +})(jQuery); \ No newline at end of file diff --git a/webedit/photo_uploader/popup/swfupload/swfupload.js b/webedit/photo_uploader/popup/swfupload/swfupload.js new file mode 100644 index 0000000..67bee4c --- /dev/null +++ b/webedit/photo_uploader/popup/swfupload/swfupload.js @@ -0,0 +1,1002 @@ +/** + * SWFUpload: http://www.swfupload.org, http://swfupload.googlecode.com + * + * mmSWFUpload 1.0: Flash upload dialog - http://profandesign.se/swfupload/, http://www.vinterwebb.se/ + * + * SWFUpload is (c) 2006-2007 Lars Huring, Olov Nilz? and Mammon Media and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + * SWFUpload 2 is (c) 2007-2008 Jake Roberts and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + */ + + +/* ******************* */ +/* Constructor & Init */ +/* ******************* */ +var SWFUpload; + +if (SWFUpload == undefined) { + SWFUpload = function (settings) { + this.initSWFUpload(settings); + }; +} + +SWFUpload.prototype.initSWFUpload = function (settings) { + try { + this.customSettings = {}; // A container where developers can place their own settings associated with this instance. + this.settings = settings; + this.eventQueue = []; + this.movieName = "SWFUpload_" + SWFUpload.movieCount++; + this.movieElement = null; + + + // Setup global control tracking + SWFUpload.instances[this.movieName] = this; + + // Load the settings. Load the Flash movie. + this.initSettings(); + this.loadFlash(); + this.displayDebugInfo(); + } catch (ex) { + delete SWFUpload.instances[this.movieName]; + throw ex; + } +}; + +/* *************** */ +/* Static Members */ +/* *************** */ +SWFUpload.instances = {}; +SWFUpload.movieCount = 0; +SWFUpload.version = "2.2.0 2009-03-25"; +SWFUpload.QUEUE_ERROR = { + QUEUE_LIMIT_EXCEEDED : -100, + FILE_EXCEEDS_SIZE_LIMIT : -110, + ZERO_BYTE_FILE : -120, + INVALID_FILETYPE : -130 +}; +SWFUpload.UPLOAD_ERROR = { + HTTP_ERROR : -200, + MISSING_UPLOAD_URL : -210, + IO_ERROR : -220, + SECURITY_ERROR : -230, + UPLOAD_LIMIT_EXCEEDED : -240, + UPLOAD_FAILED : -250, + SPECIFIED_FILE_ID_NOT_FOUND : -260, + FILE_VALIDATION_FAILED : -270, + FILE_CANCELLED : -280, + UPLOAD_STOPPED : -290 +}; +SWFUpload.FILE_STATUS = { + QUEUED : -1, + IN_PROGRESS : -2, + ERROR : -3, + COMPLETE : -4, + CANCELLED : -5 +}; +SWFUpload.BUTTON_ACTION = { + SELECT_FILE : -100, + SELECT_FILES : -110, + START_UPLOAD : -120 +}; +SWFUpload.CURSOR = { + ARROW : -1, + HAND : -2 +}; +SWFUpload.WINDOW_MODE = { + WINDOW : "window", + TRANSPARENT : "transparent", + OPAQUE : "opaque" +}; + +// Private: takes a URL, determines if it is relative and converts to an absolute URL +// using the current site. Only processes the URL if it can, otherwise returns the URL untouched +SWFUpload.completeURL = function(url) { + if (typeof(url) !== "string" || url.match(/^https?:\/\//i) || url.match(/^\//)) { + return url; + } + + var currentURL = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ":" + window.location.port : ""); + + var indexSlash = window.location.pathname.lastIndexOf("/"); + if (indexSlash <= 0) { + path = "/"; + } else { + path = window.location.pathname.substr(0, indexSlash) + "/"; + } + + return /*currentURL +*/ path + url; + +}; + + +/* ******************** */ +/* Instance Members */ +/* ******************** */ + +// Private: initSettings ensures that all the +// settings are set, getting a default value if one was not assigned. +SWFUpload.prototype.initSettings = function () { + this.ensureDefault = function (settingName, defaultValue) { + this.settings[settingName] = (this.settings[settingName] == undefined) ? defaultValue : this.settings[settingName]; + }; + + // Upload backend settings + this.ensureDefault("upload_url", ""); + this.ensureDefault("preserve_relative_urls", false); + this.ensureDefault("file_post_name", "Filedata"); + this.ensureDefault("post_params", {}); + this.ensureDefault("use_query_string", false); + this.ensureDefault("requeue_on_error", false); + this.ensureDefault("http_success", []); + this.ensureDefault("assume_success_timeout", 0); + + // File Settings + this.ensureDefault("file_types", "*.*"); + this.ensureDefault("file_types_description", "All Files"); + this.ensureDefault("file_size_limit", 0); // Default zero means "unlimited" + this.ensureDefault("file_upload_limit", 0); + this.ensureDefault("file_queue_limit", 0); + + // Flash Settings + this.ensureDefault("flash_url", "swfupload.swf"); + this.ensureDefault("prevent_swf_caching", true); + + // Button Settings + this.ensureDefault("button_image_url", ""); + this.ensureDefault("button_width", 1); + this.ensureDefault("button_height", 1); + this.ensureDefault("button_text", ""); + this.ensureDefault("button_text_style", "color: #000000; font-size: 16pt;"); + this.ensureDefault("button_text_top_padding", 0); + this.ensureDefault("button_text_left_padding", 0); + this.ensureDefault("button_action", SWFUpload.BUTTON_ACTION.SELECT_FILES); + this.ensureDefault("button_disabled", false); + this.ensureDefault("button_placeholder_id", ""); + this.ensureDefault("button_placeholder", null); + this.ensureDefault("button_cursor", SWFUpload.CURSOR.ARROW); + this.ensureDefault("button_window_mode", SWFUpload.WINDOW_MODE.WINDOW); + + // Debug Settings + this.ensureDefault("debug", false); + this.settings.debug_enabled = this.settings.debug; // Here to maintain v2 API + + // Event Handlers + this.settings.return_upload_start_handler = this.returnUploadStart; + this.ensureDefault("swfupload_loaded_handler", null); + this.ensureDefault("file_dialog_start_handler", null); + this.ensureDefault("file_queued_handler", null); + this.ensureDefault("file_queue_error_handler", null); + this.ensureDefault("file_dialog_complete_handler", null); + + this.ensureDefault("upload_start_handler", null); + this.ensureDefault("upload_progress_handler", null); + this.ensureDefault("upload_error_handler", null); + this.ensureDefault("upload_success_handler", null); + this.ensureDefault("upload_complete_handler", null); + + this.ensureDefault("debug_handler", this.debugMessage); + + this.ensureDefault("custom_settings", {}); + + // Other settings + this.customSettings = this.settings.custom_settings; + + // Update the flash url if needed + if (!!this.settings.prevent_swf_caching) { + this.settings.flash_url = this.settings.flash_url + (this.settings.flash_url.indexOf("?") < 0 ? "?" : "&") + "preventswfcaching=" + new Date().getTime(); + } + + if (!this.settings.preserve_relative_urls) { + //this.settings.flash_url = SWFUpload.completeURL(this.settings.flash_url); // Don't need to do this one since flash doesn't look at it + this.settings.upload_url = SWFUpload.completeURL(this.settings.upload_url); + this.settings.button_image_url = SWFUpload.completeURL(this.settings.button_image_url); + } + + delete this.ensureDefault; +}; + +// Private: loadFlash replaces the button_placeholder element with the flash movie. +SWFUpload.prototype.loadFlash = function () { + var targetElement, tempParent, container; + + // Make sure an element with the ID we are going to use doesn't already exist + if (document.getElementById(this.movieName) !== null) { + throw "ID " + this.movieName + " is already in use. The Flash Object could not be added"; + } + + // Get the element where we will be placing the flash movie + targetElement = document.getElementById(this.settings.button_placeholder_id) || this.settings.button_placeholder; + + if (targetElement == undefined) { + throw "Could not find the placeholder element: " + this.settings.button_placeholder_id; + } + + // Append the container and load the flash + tempParent = document.createElement("div"); + tempParent.innerHTML = this.getFlashHTML(); // Using innerHTML is non-standard but the only sensible way to dynamically add Flash in IE (and maybe other browsers) + //targetElement.parentNode.replaceChild(tempParent.firstChild, targetElement); + container = targetElement.parentNode; + + var containerStyle = tempParent.style; + + containerStyle.position = "absolute"; + + containerStyle.top = containerStyle.left = "0"; + containerStyle.width = targetElement.parentNode.offsetWidth+"px"; + containerStyle.height = targetElement.parentNode.offsetHeight+"px"; + containerStyle.overflow = "hidden"; + + if (this.getStyle(container, 'position') === 'static') { //ڵ߰ + container.style.position = 'relative'; + } + targetElement.parentNode.replaceChild(tempParent, targetElement); //ڵ߰ + // Fix IE Flash/Form bug + if (window[this.movieName] == undefined) { + window[this.movieName] = this.getMovieElement(); + } + +}; + +// Private: getFlashHTML generates the object tag needed to embed the flash in to the document +SWFUpload.prototype.getFlashHTML = function () { + // Flash Satay object syntax: http://www.alistapart.com/articles/flashsatay + return ['', + '', + '', + '', + '', + '', + '', + ''].join(""); +}; + +// Private: getFlashVars builds the parameter string that will be passed +// to flash in the flashvars param. +SWFUpload.prototype.getFlashVars = function () { + // Build a string from the post param object + var paramString = this.buildParamString(); + var httpSuccessString = this.settings.http_success.join(","); + + // Build the parameter string + return ["movieName=", encodeURIComponent(this.movieName), + "&uploadURL=", encodeURIComponent(this.settings.upload_url), + "&useQueryString=", encodeURIComponent(this.settings.use_query_string), + "&requeueOnError=", encodeURIComponent(this.settings.requeue_on_error), + "&httpSuccess=", encodeURIComponent(httpSuccessString), + "&assumeSuccessTimeout=", encodeURIComponent(this.settings.assume_success_timeout), + "&params=", encodeURIComponent(paramString), + "&filePostName=", encodeURIComponent(this.settings.file_post_name), + "&fileTypes=", encodeURIComponent(this.settings.file_types), + "&fileTypesDescription=", encodeURIComponent(this.settings.file_types_description), + "&fileSizeLimit=", encodeURIComponent(this.settings.file_size_limit), + "&fileUploadLimit=", encodeURIComponent(this.settings.file_upload_limit), + "&fileQueueLimit=", encodeURIComponent(this.settings.file_queue_limit), + "&debugEnabled=", encodeURIComponent(this.settings.debug_enabled), + "&buttonImageURL=", encodeURIComponent(this.settings.button_image_url), + "&buttonWidth=", encodeURIComponent(this.settings.button_width), + "&buttonHeight=", encodeURIComponent(this.settings.button_height), + "&buttonText=", encodeURIComponent(this.settings.button_text), + "&buttonTextTopPadding=", encodeURIComponent(this.settings.button_text_top_padding), + "&buttonTextLeftPadding=", encodeURIComponent(this.settings.button_text_left_padding), + "&buttonTextStyle=", encodeURIComponent(this.settings.button_text_style), + "&buttonAction=", encodeURIComponent(this.settings.button_action), + "&buttonDisabled=", encodeURIComponent(this.settings.button_disabled), + "&buttonCursor=", encodeURIComponent(this.settings.button_cursor) + ].join(""); +}; + +// Public: getMovieElement retrieves the DOM reference to the Flash element added by SWFUpload +// The element is cached after the first lookup +SWFUpload.prototype.getMovieElement = function () { + if (this.movieElement == undefined) { + this.movieElement = document.getElementById(this.movieName); + } + + if (this.movieElement === null) { + throw "Could not find Flash element"; + } + + return this.movieElement; +}; + +// Private: buildParamString takes the name/value pairs in the post_params setting object +// and joins them up in to a string formatted "name=value&name=value" +SWFUpload.prototype.buildParamString = function () { + var postParams = this.settings.post_params; + var paramStringPairs = []; + + if (typeof(postParams) === "object") { + for (var name in postParams) { + if (postParams.hasOwnProperty(name)) { + paramStringPairs.push(encodeURIComponent(name.toString()) + "=" + encodeURIComponent(postParams[name].toString())); + } + } + } + + return paramStringPairs.join("&"); +}; + +// Public: Used to remove a SWFUpload instance from the page. This method strives to remove +// all references to the SWF, and other objects so memory is properly freed. +// Returns true if everything was destroyed. Returns a false if a failure occurs leaving SWFUpload in an inconsistant state. +// Credits: Major improvements provided by steffen +SWFUpload.prototype.destroy = function () { + try { + // Make sure Flash is done before we try to remove it + this.cancelUpload(null, false); + + + // Remove the SWFUpload DOM nodes + var movieElement = null; + movieElement = this.getMovieElement(); + + if (movieElement && typeof(movieElement.CallFunction) === "unknown") { // We only want to do this in IE + // Loop through all the movie's properties and remove all function references (DOM/JS IE 6/7 memory leak workaround) + for (var i in movieElement) { + try { + if (typeof(movieElement[i]) === "function") { + movieElement[i] = null; + } + } catch (ex1) {} + } + + // Remove the Movie Element from the page + try { + movieElement.parentNode.removeChild(movieElement); + } catch (ex) {} + } + + // Remove IE form fix reference + window[this.movieName] = null; + + // Destroy other references + SWFUpload.instances[this.movieName] = null; + delete SWFUpload.instances[this.movieName]; + + this.movieElement = null; + this.settings = null; + this.customSettings = null; + this.eventQueue = null; + this.movieName = null; + + + return true; + } catch (ex2) { + return false; + } +}; + + +// Public: displayDebugInfo prints out settings and configuration +// information about this SWFUpload instance. +// This function (and any references to it) can be deleted when placing +// SWFUpload in production. +SWFUpload.prototype.displayDebugInfo = function () { + this.debug( + [ + "---SWFUpload Instance Info---\n", + "Version: ", SWFUpload.version, "\n", + "Movie Name: ", this.movieName, "\n", + "Settings:\n", + "\t", "upload_url: ", this.settings.upload_url, "\n", + "\t", "flash_url: ", this.settings.flash_url, "\n", + "\t", "use_query_string: ", this.settings.use_query_string.toString(), "\n", + "\t", "requeue_on_error: ", this.settings.requeue_on_error.toString(), "\n", + "\t", "http_success: ", this.settings.http_success.join(", "), "\n", + "\t", "assume_success_timeout: ", this.settings.assume_success_timeout, "\n", + "\t", "file_post_name: ", this.settings.file_post_name, "\n", + "\t", "post_params: ", this.settings.post_params.toString(), "\n", + "\t", "file_types: ", this.settings.file_types, "\n", + "\t", "file_types_description: ", this.settings.file_types_description, "\n", + "\t", "file_size_limit: ", this.settings.file_size_limit, "\n", + "\t", "file_upload_limit: ", this.settings.file_upload_limit, "\n", + "\t", "file_queue_limit: ", this.settings.file_queue_limit, "\n", + "\t", "debug: ", this.settings.debug.toString(), "\n", + + "\t", "prevent_swf_caching: ", this.settings.prevent_swf_caching.toString(), "\n", + + "\t", "button_placeholder_id: ", this.settings.button_placeholder_id.toString(), "\n", + "\t", "button_placeholder: ", (this.settings.button_placeholder ? "Set" : "Not Set"), "\n", + "\t", "button_image_url: ", this.settings.button_image_url.toString(), "\n", + "\t", "button_width: ", this.settings.button_width.toString(), "\n", + "\t", "button_height: ", this.settings.button_height.toString(), "\n", + "\t", "button_text: ", this.settings.button_text.toString(), "\n", + "\t", "button_text_style: ", this.settings.button_text_style.toString(), "\n", + "\t", "button_text_top_padding: ", this.settings.button_text_top_padding.toString(), "\n", + "\t", "button_text_left_padding: ", this.settings.button_text_left_padding.toString(), "\n", + "\t", "button_action: ", this.settings.button_action.toString(), "\n", + "\t", "button_disabled: ", this.settings.button_disabled.toString(), "\n", + + "\t", "custom_settings: ", this.settings.custom_settings.toString(), "\n", + "Event Handlers:\n", + "\t", "swfupload_loaded_handler assigned: ", (typeof this.settings.swfupload_loaded_handler === "function").toString(), "\n", + "\t", "file_dialog_start_handler assigned: ", (typeof this.settings.file_dialog_start_handler === "function").toString(), "\n", + "\t", "file_queued_handler assigned: ", (typeof this.settings.file_queued_handler === "function").toString(), "\n", + "\t", "file_queue_error_handler assigned: ", (typeof this.settings.file_queue_error_handler === "function").toString(), "\n", + "\t", "upload_start_handler assigned: ", (typeof this.settings.upload_start_handler === "function").toString(), "\n", + "\t", "upload_progress_handler assigned: ", (typeof this.settings.upload_progress_handler === "function").toString(), "\n", + "\t", "upload_error_handler assigned: ", (typeof this.settings.upload_error_handler === "function").toString(), "\n", + "\t", "upload_success_handler assigned: ", (typeof this.settings.upload_success_handler === "function").toString(), "\n", + "\t", "upload_complete_handler assigned: ", (typeof this.settings.upload_complete_handler === "function").toString(), "\n", + "\t", "debug_handler assigned: ", (typeof this.settings.debug_handler === "function").toString(), "\n" + ].join("") + ); +}; + +/* Note: addSetting and getSetting are no longer used by SWFUpload but are included + the maintain v2 API compatibility +*/ +// Public: (Deprecated) addSetting adds a setting value. If the value given is undefined or null then the default_value is used. +SWFUpload.prototype.addSetting = function (name, value, default_value) { + if (value == undefined) { + return (this.settings[name] = default_value); + } else { + return (this.settings[name] = value); + } +}; + +// Public: (Deprecated) getSetting gets a setting. Returns an empty string if the setting was not found. +SWFUpload.prototype.getSetting = function (name) { + if (this.settings[name] != undefined) { + return this.settings[name]; + } + + return ""; +}; + + + +// Private: callFlash handles function calls made to the Flash element. +// Calls are made with a setTimeout for some functions to work around +// bugs in the ExternalInterface library. +SWFUpload.prototype.callFlash = function (functionName, argumentArray) { + argumentArray = argumentArray || []; + + var movieElement = this.getMovieElement(); + var returnValue, returnString; + + // Flash's method if calling ExternalInterface methods (code adapted from MooTools). + try { + returnString = movieElement.CallFunction('' + __flash__argumentsToXML(argumentArray, 0) + ''); + returnValue = eval(returnString); + } catch (ex) { + throw "Call to " + functionName + " failed"; + } + + // Unescape file post param values + if (returnValue != undefined && typeof returnValue.post === "object") { + returnValue = this.unescapeFilePostParams(returnValue); + } + + return returnValue; +}; + +/* ***************************** + -- Flash control methods -- + Your UI should use these + to operate SWFUpload + ***************************** */ + +// WARNING: this function does not work in Flash Player 10 +// Public: selectFile causes a File Selection Dialog window to appear. This +// dialog only allows 1 file to be selected. +SWFUpload.prototype.selectFile = function () { + this.callFlash("SelectFile"); +}; + +// WARNING: this function does not work in Flash Player 10 +// Public: selectFiles causes a File Selection Dialog window to appear/ This +// dialog allows the user to select any number of files +// Flash Bug Warning: Flash limits the number of selectable files based on the combined length of the file names. +// If the selection name length is too long the dialog will fail in an unpredictable manner. There is no work-around +// for this bug. +SWFUpload.prototype.selectFiles = function () { + this.callFlash("SelectFiles"); +}; + + +// Public: startUpload starts uploading the first file in the queue unless +// the optional parameter 'fileID' specifies the ID +SWFUpload.prototype.startUpload = function (fileID) { + this.callFlash("StartUpload", [fileID]); +}; + +// Public: cancelUpload cancels any queued file. The fileID parameter may be the file ID or index. +// If you do not specify a fileID the current uploading file or first file in the queue is cancelled. +// If you do not want the uploadError event to trigger you can specify false for the triggerErrorEvent parameter. +SWFUpload.prototype.cancelUpload = function (fileID, triggerErrorEvent) { + if (triggerErrorEvent !== false) { + triggerErrorEvent = true; + } + this.callFlash("CancelUpload", [fileID, triggerErrorEvent]); +}; + +// Public: stopUpload stops the current upload and requeues the file at the beginning of the queue. +// If nothing is currently uploading then nothing happens. +SWFUpload.prototype.stopUpload = function () { + this.callFlash("StopUpload"); +}; + +/* ************************ + * Settings methods + * These methods change the SWFUpload settings. + * SWFUpload settings should not be changed directly on the settings object + * since many of the settings need to be passed to Flash in order to take + * effect. + * *********************** */ + +// Public: getStats gets the file statistics object. +SWFUpload.prototype.getStats = function () { + return this.callFlash("GetStats"); +}; + +// Public: setStats changes the SWFUpload statistics. You shouldn't need to +// change the statistics but you can. Changing the statistics does not +// affect SWFUpload accept for the successful_uploads count which is used +// by the upload_limit setting to determine how many files the user may upload. +SWFUpload.prototype.setStats = function (statsObject) { + this.callFlash("SetStats", [statsObject]); +}; + +// Public: getFile retrieves a File object by ID or Index. If the file is +// not found then 'null' is returned. +SWFUpload.prototype.getFile = function (fileID) { + if (typeof(fileID) === "number") { + return this.callFlash("GetFileByIndex", [fileID]); + } else { + return this.callFlash("GetFile", [fileID]); + } +}; + +// Public: addFileParam sets a name/value pair that will be posted with the +// file specified by the Files ID. If the name already exists then the +// exiting value will be overwritten. +SWFUpload.prototype.addFileParam = function (fileID, name, value) { + return this.callFlash("AddFileParam", [fileID, name, value]); +}; + +// Public: removeFileParam removes a previously set (by addFileParam) name/value +// pair from the specified file. +SWFUpload.prototype.removeFileParam = function (fileID, name) { + this.callFlash("RemoveFileParam", [fileID, name]); +}; + +// Public: setUploadUrl changes the upload_url setting. +SWFUpload.prototype.setUploadURL = function (url) { + this.settings.upload_url = url.toString(); + this.callFlash("SetUploadURL", [url]); +}; + +// Public: setPostParams changes the post_params setting +SWFUpload.prototype.setPostParams = function (paramsObject) { + this.settings.post_params = paramsObject; + this.callFlash("SetPostParams", [paramsObject]); +}; + +// Public: addPostParam adds post name/value pair. Each name can have only one value. +SWFUpload.prototype.addPostParam = function (name, value) { + this.settings.post_params[name] = value; + this.callFlash("SetPostParams", [this.settings.post_params]); +}; + +// Public: removePostParam deletes post name/value pair. +SWFUpload.prototype.removePostParam = function (name) { + delete this.settings.post_params[name]; + this.callFlash("SetPostParams", [this.settings.post_params]); +}; + +// Public: setFileTypes changes the file_types setting and the file_types_description setting +SWFUpload.prototype.setFileTypes = function (types, description) { + this.settings.file_types = types; + this.settings.file_types_description = description; + this.callFlash("SetFileTypes", [types, description]); +}; + +// Public: setFileSizeLimit changes the file_size_limit setting +SWFUpload.prototype.setFileSizeLimit = function (fileSizeLimit) { + this.settings.file_size_limit = fileSizeLimit; + this.callFlash("SetFileSizeLimit", [fileSizeLimit]); +}; + +// Public: setFileUploadLimit changes the file_upload_limit setting +SWFUpload.prototype.setFileUploadLimit = function (fileUploadLimit) { + this.settings.file_upload_limit = fileUploadLimit; + this.callFlash("SetFileUploadLimit", [fileUploadLimit]); +}; + +// Public: setFileQueueLimit changes the file_queue_limit setting +SWFUpload.prototype.setFileQueueLimit = function (fileQueueLimit) { + this.settings.file_queue_limit = fileQueueLimit; + this.callFlash("SetFileQueueLimit", [fileQueueLimit]); +}; + +// Public: setFilePostName changes the file_post_name setting +SWFUpload.prototype.setFilePostName = function (filePostName) { + this.settings.file_post_name = filePostName; + this.callFlash("SetFilePostName", [filePostName]); +}; + +// Public: setUseQueryString changes the use_query_string setting +SWFUpload.prototype.setUseQueryString = function (useQueryString) { + this.settings.use_query_string = useQueryString; + this.callFlash("SetUseQueryString", [useQueryString]); +}; + +// Public: setRequeueOnError changes the requeue_on_error setting +SWFUpload.prototype.setRequeueOnError = function (requeueOnError) { + this.settings.requeue_on_error = requeueOnError; + this.callFlash("SetRequeueOnError", [requeueOnError]); +}; + +// Public: setHTTPSuccess changes the http_success setting +SWFUpload.prototype.setHTTPSuccess = function (http_status_codes) { + if (typeof http_status_codes === "string") { + http_status_codes = http_status_codes.replace(" ", "").split(","); + } + + this.settings.http_success = http_status_codes; + this.callFlash("SetHTTPSuccess", [http_status_codes]); +}; + +// Public: setHTTPSuccess changes the http_success setting +SWFUpload.prototype.setAssumeSuccessTimeout = function (timeout_seconds) { + this.settings.assume_success_timeout = timeout_seconds; + this.callFlash("SetAssumeSuccessTimeout", [timeout_seconds]); +}; + +// Public: setDebugEnabled changes the debug_enabled setting +SWFUpload.prototype.setDebugEnabled = function (debugEnabled) { + this.settings.debug_enabled = debugEnabled; + this.callFlash("SetDebugEnabled", [debugEnabled]); +}; + +// Public: setButtonImageURL loads a button image sprite +SWFUpload.prototype.setButtonImageURL = function (buttonImageURL) { + if (buttonImageURL == undefined) { + buttonImageURL = ""; + } + + this.settings.button_image_url = buttonImageURL; + this.callFlash("SetButtonImageURL", [buttonImageURL]); +}; + +// Public: setButtonDimensions resizes the Flash Movie and button +SWFUpload.prototype.setButtonDimensions = function (width, height) { + this.settings.button_width = width; + this.settings.button_height = height; + + var movie = this.getMovieElement(); + if (movie != undefined) { + movie.style.width = width + "px"; + movie.style.height = height + "px"; + } + + this.callFlash("SetButtonDimensions", [width, height]); +}; +// Public: setButtonText Changes the text overlaid on the button +SWFUpload.prototype.setButtonText = function (html) { + this.settings.button_text = html; + this.callFlash("SetButtonText", [html]); +}; +// Public: setButtonTextPadding changes the top and left padding of the text overlay +SWFUpload.prototype.setButtonTextPadding = function (left, top) { + this.settings.button_text_top_padding = top; + this.settings.button_text_left_padding = left; + this.callFlash("SetButtonTextPadding", [left, top]); +}; + +// Public: setButtonTextStyle changes the CSS used to style the HTML/Text overlaid on the button +SWFUpload.prototype.setButtonTextStyle = function (css) { + this.settings.button_text_style = css; + this.callFlash("SetButtonTextStyle", [css]); +}; +// Public: setButtonDisabled disables/enables the button +SWFUpload.prototype.setButtonDisabled = function (isDisabled) { + this.settings.button_disabled = isDisabled; + this.callFlash("SetButtonDisabled", [isDisabled]); +}; +// Public: setButtonAction sets the action that occurs when the button is clicked +SWFUpload.prototype.setButtonAction = function (buttonAction) { + this.settings.button_action = buttonAction; + this.callFlash("SetButtonAction", [buttonAction]); +}; + +// Public: setButtonCursor changes the mouse cursor displayed when hovering over the button +SWFUpload.prototype.setButtonCursor = function (cursor) { + this.settings.button_cursor = cursor; + this.callFlash("SetButtonCursor", [cursor]); +}; + +/* ******************************* + Flash Event Interfaces + These functions are used by Flash to trigger the various + events. + + All these functions a Private. + + Because the ExternalInterface library is buggy the event calls + are added to a queue and the queue then executed by a setTimeout. + This ensures that events are executed in a determinate order and that + the ExternalInterface bugs are avoided. +******************************* */ + +SWFUpload.prototype.queueEvent = function (handlerName, argumentArray) { + // Warning: Don't call this.debug inside here or you'll create an infinite loop + + if (argumentArray == undefined) { + argumentArray = []; + } else if (!(argumentArray instanceof Array)) { + argumentArray = [argumentArray]; + } + + var self = this; + if (typeof this.settings[handlerName] === "function") { + // Queue the event + this.eventQueue.push(function () { + this.settings[handlerName].apply(this, argumentArray); + }); + + // Execute the next queued event + setTimeout(function () { + self.executeNextEvent(); + }, 0); + + } else if (this.settings[handlerName] !== null) { + throw "Event handler " + handlerName + " is unknown or is not a function"; + } +}; + +// Private: Causes the next event in the queue to be executed. Since events are queued using a setTimeout +// we must queue them in order to garentee that they are executed in order. +SWFUpload.prototype.executeNextEvent = function () { + // Warning: Don't call this.debug inside here or you'll create an infinite loop + + var f = this.eventQueue ? this.eventQueue.shift() : null; + if (typeof(f) === "function") { + f.apply(this); + } +}; + +// Private: unescapeFileParams is part of a workaround for a flash bug where objects passed through ExternalInterface cannot have +// properties that contain characters that are not valid for JavaScript identifiers. To work around this +// the Flash Component escapes the parameter names and we must unescape again before passing them along. +SWFUpload.prototype.unescapeFilePostParams = function (file) { + var reg = /[$]([0-9a-f]{4})/i; + var unescapedPost = {}; + var uk; + + if (file != undefined) { + for (var k in file.post) { + if (file.post.hasOwnProperty(k)) { + uk = k; + var match; + while ((match = reg.exec(uk)) !== null) { + uk = uk.replace(match[0], String.fromCharCode(parseInt("0x" + match[1], 16))); + } + unescapedPost[uk] = file.post[k]; + } + } + + file.post = unescapedPost; + } + + return file; +}; + +// Private: Called by Flash to see if JS can call in to Flash (test if External Interface is working) +SWFUpload.prototype.testExternalInterface = function () { + try { + return this.callFlash("TestExternalInterface"); + } catch (ex) { + return false; + } +}; + +// Private: This event is called by Flash when it has finished loading. Don't modify this. +// Use the swfupload_loaded_handler event setting to execute custom code when SWFUpload has loaded. +SWFUpload.prototype.flashReady = function () { + // Check that the movie element is loaded correctly with its ExternalInterface methods defined + var movieElement = this.getMovieElement(); + + if (!movieElement) { + this.debug("Flash called back ready but the flash movie can't be found."); + return; + } + + this.cleanUp(movieElement); + + this.queueEvent("swfupload_loaded_handler"); +}; + +// Private: removes Flash added fuctions to the DOM node to prevent memory leaks in IE. +// This function is called by Flash each time the ExternalInterface functions are created. +SWFUpload.prototype.cleanUp = function (movieElement) { + // Pro-actively unhook all the Flash functions + try { + if (this.movieElement && typeof(movieElement.CallFunction) === "unknown") { // We only want to do this in IE + this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)"); + for (var key in movieElement) { + try { + if (typeof(movieElement[key]) === "function") { + movieElement[key] = null; + } + } catch (ex) { + } + } + } + } catch (ex1) { + + } + + // Fix Flashes own cleanup code so if the SWFMovie was removed from the page + // it doesn't display errors. + window["__flash__removeCallback"] = function (instance, name) { + try { + if (instance) { + instance[name] = null; + } + } catch (flashEx) { + + } + }; + +}; + + +/* This is a chance to do something before the browse window opens */ +SWFUpload.prototype.fileDialogStart = function () { + this.queueEvent("file_dialog_start_handler"); +}; + + +/* Called when a file is successfully added to the queue. */ +SWFUpload.prototype.fileQueued = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("file_queued_handler", file); +}; + + +/* Handle errors that occur when an attempt to queue a file fails. */ +SWFUpload.prototype.fileQueueError = function (file, errorCode, message) { + file = this.unescapeFilePostParams(file); + this.queueEvent("file_queue_error_handler", [file, errorCode, message]); +}; + +/* Called after the file dialog has closed and the selected files have been queued. + You could call startUpload here if you want the queued files to begin uploading immediately. */ +SWFUpload.prototype.fileDialogComplete = function (numFilesSelected, numFilesQueued, numFilesInQueue) { + this.queueEvent("file_dialog_complete_handler", [numFilesSelected, numFilesQueued, numFilesInQueue]); +}; + +SWFUpload.prototype.uploadStart = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("return_upload_start_handler", file); +}; + +SWFUpload.prototype.returnUploadStart = function (file) { + var returnValue; + if (typeof this.settings.upload_start_handler === "function") { + file = this.unescapeFilePostParams(file); + returnValue = this.settings.upload_start_handler.call(this, file); + } else if (this.settings.upload_start_handler != undefined) { + throw "upload_start_handler must be a function"; + } + + // Convert undefined to true so if nothing is returned from the upload_start_handler it is + // interpretted as 'true'. + if (returnValue === undefined) { + returnValue = true; + } + + returnValue = !!returnValue; + + this.callFlash("ReturnUploadStart", [returnValue]); +}; + + + +SWFUpload.prototype.uploadProgress = function (file, bytesComplete, bytesTotal) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_progress_handler", [file, bytesComplete, bytesTotal]); +}; + +SWFUpload.prototype.uploadError = function (file, errorCode, message) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_error_handler", [file, errorCode, message]); +}; + +SWFUpload.prototype.uploadSuccess = function (file, serverData, responseReceived) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_success_handler", [file, serverData, responseReceived]); +}; + +SWFUpload.prototype.uploadComplete = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_complete_handler", file); +}; + +/* Called by SWFUpload JavaScript and Flash functions when debug is enabled. By default it writes messages to the + internal debug console. You can override this event and have messages written where you want. */ +SWFUpload.prototype.debug = function (message) { + this.queueEvent("debug_handler", message); +}; + + +/* ********************************** + Debug Console + The debug console is a self contained, in page location + for debug message to be sent. The Debug Console adds + itself to the body if necessary. + + The console is automatically scrolled as messages appear. + + If you are using your own debug handler or when you deploy to production and + have debug disabled you can remove these functions to reduce the file size + and complexity. +********************************** */ + +// Private: debugMessage is the default debug_handler. If you want to print debug messages +// call the debug() function. When overriding the function your own function should +// check to see if the debug setting is true before outputting debug information. +SWFUpload.prototype.debugMessage = function (message) { + if (this.settings.debug) { + var exceptionMessage, exceptionValues = []; + + // Check for an exception object and print it nicely + if (typeof message === "object" && typeof message.name === "string" && typeof message.message === "string") { + for (var key in message) { + if (message.hasOwnProperty(key)) { + exceptionValues.push(key + ": " + message[key]); + } + } + exceptionMessage = exceptionValues.join("\n") || ""; + exceptionValues = exceptionMessage.split("\n"); + exceptionMessage = "EXCEPTION: " + exceptionValues.join("\nEXCEPTION: "); + SWFUpload.Console.writeLine(exceptionMessage); + } else { + SWFUpload.Console.writeLine(message); + } + } +}; + +SWFUpload.Console = {}; +SWFUpload.Console.writeLine = function (message) { + var console, documentForm; + + try { + console = document.getElementById("SWFUpload_Console"); + + if (!console) { + documentForm = document.createElement("form"); + document.getElementsByTagName("body")[0].appendChild(documentForm); + + console = document.createElement("textarea"); + console.id = "SWFUpload_Console"; + console.style.fontFamily = "monospace"; + console.setAttribute("wrap", "off"); + console.wrap = "off"; + console.style.overflow = "auto"; + console.style.width = "700px"; + console.style.height = "350px"; + console.style.margin = "5px"; + documentForm.appendChild(console); + } + + console.value += message + "\n"; + + console.scrollTop = console.scrollHeight - console.clientHeight; + } catch (ex) { + alert("Exception: " + ex.name + " Message: " + ex.message); + } +}; + +SWFUpload.prototype.getStyle = function (obj, name) { //߰ + if (obj.currentStyle) { + return obj.currentStyle[name]; + } else if (window.getComputedStyle) { + return window.getComputedStyle(obj, null)[name]; + } +} \ No newline at end of file diff --git a/webedit/photo_uploader/popup/swfupload/swfupload.queue.js b/webedit/photo_uploader/popup/swfupload/swfupload.queue.js new file mode 100644 index 0000000..5d65c30 --- /dev/null +++ b/webedit/photo_uploader/popup/swfupload/swfupload.queue.js @@ -0,0 +1,99 @@ +/* + Queue Plug-in + + Features: + *Adds a cancelQueue() method for cancelling the entire queue. + *All queued files are uploaded when startUpload() is called. + *If false is returned from uploadComplete then the queue upload is stopped. + If false is not returned (strict comparison) then the queue upload is continued. + *Adds a QueueComplete event that is fired when all the queued files have finished uploading. + Set the event handler with the queue_complete_handler setting. + + */ + +var SWFUpload; +if (typeof(SWFUpload) === "function") { + SWFUpload.queue = {}; + + SWFUpload.prototype.initSettings = (function (oldInitSettings) { + return function () { + if (typeof(oldInitSettings) === "function") { + oldInitSettings.call(this); + } + + this.queueSettings = {}; + + this.queueSettings.queue_cancelled_flag = false; + this.queueSettings.queue_upload_count = 0; + + this.queueSettings.user_upload_complete_handler = this.settings.upload_complete_handler; + this.queueSettings.user_upload_start_handler = this.settings.upload_start_handler; + this.settings.upload_complete_handler = SWFUpload.queue.uploadCompleteHandler; + this.settings.upload_start_handler = SWFUpload.queue.uploadStartHandler; + + this.settings.queue_complete_handler = this.settings.queue_complete_handler || null; + }; + })(SWFUpload.prototype.initSettings); + + SWFUpload.prototype.startUpload = function (fileID) { + this.queueSettings.queue_cancelled_flag = false; + this.callFlash("StartUpload", [fileID]); + }; + + SWFUpload.prototype.cancelQueue = function () { + this.queueSettings.queue_cancelled_flag = true; + this.stopUpload(); + + var stats = this.getStats(); + while (stats.files_queued > 0) { + this.cancelUpload(); + stats = this.getStats(); + } + }; + + SWFUpload.queue.uploadStartHandler = function (file) { + var returnValue; + if (typeof(this.queueSettings.user_upload_start_handler) === "function") { + returnValue = this.queueSettings.user_upload_start_handler.call(this, file); + } + + // To prevent upload a real "FALSE" value must be returned, otherwise default to a real "TRUE" value. + returnValue = (returnValue === false) ? false : true; + + this.queueSettings.queue_cancelled_flag = !returnValue; + + return returnValue; + }; + + SWFUpload.queue.uploadCompleteHandler = function (file) { + var user_upload_complete_handler = this.queueSettings.user_upload_complete_handler; + var continueUpload; + + if (file.filestatus === SWFUpload.FILE_STATUS.COMPLETE) { + this.queueSettings.queue_upload_count++; + } + + if (typeof(user_upload_complete_handler) === "function") { + continueUpload = (user_upload_complete_handler.call(this, file) === false) ? false : true; + } else if (file.filestatus === SWFUpload.FILE_STATUS.QUEUED) { + // If the file was stopped and re-queued don't restart the upload + continueUpload = false; + } else { + continueUpload = true; + } + + if (continueUpload) { + var stats = this.getStats(); + if (stats.files_queued > 0 && this.queueSettings.queue_cancelled_flag === false) { + this.startUpload(); + } else if (this.queueSettings.queue_cancelled_flag === false) { + console.debug('ydfsdfgsdfgsdfg'); + this.queueEvent("queue_complete_handler", [this.queueSettings.queue_upload_count]); + this.queueSettings.queue_upload_count = 0; + } else { + this.queueSettings.queue_cancelled_flag = false; + this.queueSettings.queue_upload_count = 0; + } + } + }; +} \ No newline at end of file diff --git a/webedit/photo_uploader/popup/swfupload/swfupload.swf b/webedit/photo_uploader/popup/swfupload/swfupload.swf new file mode 100644 index 0000000..e3f7670 Binary files /dev/null and b/webedit/photo_uploader/popup/swfupload/swfupload.swf differ diff --git a/webedit/sample.php b/webedit/sample.php new file mode 100644 index 0000000..e69de29 diff --git a/webedit/shortcut.html b/webedit/shortcut.html new file mode 100644 index 0000000..e5d7580 --- /dev/null +++ b/webedit/shortcut.html @@ -0,0 +1,23 @@ +
    +
    CTRL+B
    +
    글자 굵게
    +
    CTRL+U
    +
    글자 밑줄
    +
    CTRL+I
    +
    글자 기울임
    +
    CTRL+D
    +
    글자 취소선
    +
    TAB
    +
    들여쓰기
    +
    SHIFT+TAB
    +
    내어쓰기
    +
    CTRL+K
    +
    링크 걸기
    +
    CTRL+F
    +
    단어 찾기
    +
    CTRL+H
    +
    단어 바꾸기
    +
    CTRL+A
    +
    전체 선택
    +
    + diff --git a/webedit/smart_editor2_inputarea.html b/webedit/smart_editor2_inputarea.html new file mode 100644 index 0000000..a3af8f6 --- /dev/null +++ b/webedit/smart_editor2_inputarea.html @@ -0,0 +1,8 @@ + + + + +Smart Editor™ WYSIWYG Mode + + + \ No newline at end of file diff --git a/webedit/smart_editor2_inputarea_ie8.html b/webedit/smart_editor2_inputarea_ie8.html new file mode 100644 index 0000000..c9771d1 --- /dev/null +++ b/webedit/smart_editor2_inputarea_ie8.html @@ -0,0 +1,9 @@ + + + + + +Smart Editor™ WYSIWYG Mode + + + \ No newline at end of file