From 01c2c687c61b022dbf7cabbcac9f02c341857363 Mon Sep 17 00:00:00 2001 From: lansi951 Date: Thu, 16 Jan 2014 20:55:55 +0900 Subject: [PATCH 001/549] =?UTF-8?q?list=5Forder=EC=9D=98=20min=20=EA=B0=92?= =?UTF-8?q?=EC=9D=84=20=EA=B0=80=EC=A0=B8=EC=98=A4=EB=8A=94=20=EC=BF=BC?= =?UTF-8?q?=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/document/queries/getDocumentMinListOrder.xml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 modules/document/queries/getDocumentMinListOrder.xml diff --git a/modules/document/queries/getDocumentMinListOrder.xml b/modules/document/queries/getDocumentMinListOrder.xml new file mode 100644 index 0000000000..c46060c7c0 --- /dev/null +++ b/modules/document/queries/getDocumentMinListOrder.xml @@ -0,0 +1,8 @@ + + + + + + + + From 9cd1bb1f91e68d918454ddf1fa16bac131bd6f88 Mon Sep 17 00:00:00 2001 From: lansi951 Date: Thu, 16 Jan 2014 21:03:39 +0900 Subject: [PATCH 002/549] =?UTF-8?q?=EC=9E=84=EC=8B=9C=EC=A0=80=EC=9E=A5?= =?UTF-8?q?=EA=B8=80=20=EB=B6=88=EB=9F=AC=EC=98=AC=20=EA=B2=BD=EC=9A=B0=20?= =?UTF-8?q?=EA=B2=8C=EC=8B=9C=EA=B8=80=20=EC=9E=91=EC=84=B1=EC=8B=9C?= =?UTF-8?q?=EA=B0=81=EC=9D=84=20=ED=98=84=EC=9E=AC=20=EC=8B=9C=EA=B0=84?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/board/board.controller.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/board/board.controller.php b/modules/board/board.controller.php index 906b48b963..2e660eab2e 100644 --- a/modules/board/board.controller.php +++ b/modules/board/board.controller.php @@ -96,6 +96,14 @@ function procBoardInsertDocument() $obj->title_color = $oDocument->get('title_color'); $obj->title_bold = $oDocument->get('title_bold'); } + + // modify list_order if document status is temp + if($oDocument->get('status') == 'TEMP') + { + $min_list_order = executeQuery('document.getDocumentMinListOrder')->data->list_order; + $obj->last_update = $obj->regdate = date('YmdHis'); + $obj->update_order = $obj->list_order = $min_list_order - 1; + } $output = $oDocumentController->updateDocument($oDocument, $obj); $msg_code = 'success_updated'; From abe2026f9877ff3abe0414048eefc0b5713806e4 Mon Sep 17 00:00:00 2001 From: lansi951 Date: Sun, 19 Jan 2014 17:02:51 +0900 Subject: [PATCH 003/549] =?UTF-8?q?$=5FGET=20=EB=B3=80=EC=88=98=EB=A5=BC?= =?UTF-8?q?=20Context::get()=EC=9C=BC=EB=A1=9C=20=EB=8C=80=EC=B2=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 쓰이지 않는 변수 $_get 제거. $_GET 변수 대신 Context::get() 사용. --- modules/board/board.view.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/board/board.view.php b/modules/board/board.view.php index 49258adb08..1d6675af36 100644 --- a/modules/board/board.view.php +++ b/modules/board/board.view.php @@ -402,8 +402,7 @@ function dispBoardContentList(){ } // set the current page of documents - $_get = $_GET; - if(!$args->page && ($_GET['document_srl'] || $_GET['entry'])) + if(!$args->page && (Context::get('document_srl') || Context::get('entry'))) { $oDocument = $oDocumentModel->getDocument(Context::get('document_srl')); if($oDocument->isExists() && !$oDocument->isNotice()) From a771a2582c5a043882c84461d9b37e53825c8986 Mon Sep 17 00:00:00 2001 From: canto87-mac Date: Mon, 20 Jan 2014 08:52:31 +0900 Subject: [PATCH 004/549] translated into japanese with addon , autoinstall , comment modules --- modules/addon/conf/info.xml | 2 +- modules/addon/conf/module.xml | 2 +- modules/addon/lang/lang.xml | 6 +++--- modules/autoinstall/conf/info.xml | 4 ++-- modules/autoinstall/conf/module.xml | 2 +- modules/autoinstall/lang/lang.xml | 24 ++++++++++++------------ modules/comment/lang/lang.xml | 4 ++-- 7 files changed, 22 insertions(+), 22 deletions(-) diff --git a/modules/addon/conf/info.xml b/modules/addon/conf/info.xml index 7979114010..7e782c9c0e 100644 --- a/modules/addon/conf/info.xml +++ b/modules/addon/conf/info.xml @@ -15,7 +15,7 @@ Module này dành cho việc bảo trì những Addon đang sử dụng và không sử dụng. Este Módulo es para agregar Addons, como también el manejo de ellos. 登录插件或设置启用/禁用插件的管理模块。 - アドオンの「登録、使用・未使用」などを設定する管理モジュールです。 + アドオンの登録、もしくは「使用・未使用」を設定します。 Ce module est pour les Additions de maintien qui peuvent basculer des états d'utilisation et de désuétude. Этот модуль служит для управления аддонами, использование которых Вы можете включать и выключать. 設定附加元件「登錄、啟用、禁用」的管理模組。 diff --git a/modules/addon/conf/module.xml b/modules/addon/conf/module.xml index 0e8183ae20..ee29a28899 100644 --- a/modules/addon/conf/module.xml +++ b/modules/addon/conf/module.xml @@ -15,7 +15,7 @@ Add-ons 설치된 애드온 插件 - 設置されたアドオン + インストールされたアドオン Add-ons Add-ons Add-ons diff --git a/modules/addon/lang/lang.xml b/modules/addon/lang/lang.xml index c31b470daf..d51e638333 100644 --- a/modules/addon/lang/lang.xml +++ b/modules/addon/lang/lang.xml @@ -59,7 +59,7 @@ - + (Tout sera choisi quand rien n'est choisi.)]]> @@ -83,7 +83,7 @@ - + @@ -104,7 +104,7 @@ - + diff --git a/modules/autoinstall/conf/info.xml b/modules/autoinstall/conf/info.xml index f9563e034e..112cf449bb 100644 --- a/modules/autoinstall/conf/info.xml +++ b/modules/autoinstall/conf/info.xml @@ -5,7 +5,7 @@ Cài đặt tự động 自動安裝 安装·更新 - イージーインストール + 簡単インストール KolayKurulum 관리자 모드에서 클릭으로 모듈/스킨/레이아웃/위젯/위젯스타일 등을 설치하는 모듈입니다. With this module, you can install and upgrade your programs including modules, skins, layouts, etc., from www.xpressengine.com with one-click. @@ -13,7 +13,7 @@ 可以藉由此模組安裝、更新程式包括模組、面板、版面等。 Bu modül ile modüller, dış görünümler, yerleşim düzenleri.. gibi kendi programlarınızı, www.xpressengine.com adresinden tek bir tık ile kurup-düzenleyebilirsiniz. 很方便的在线安装/更新XE相关模块(模块/皮肤/布局/控件/控件样式等)。 - 管理者モードにてクリックだけで、モジュール/スキン/レイアウト/ウィジェット/ウィジェットスタイルのインストールを可能にするモジュールです。 + 管理者モードでクリックするだけで、モジュール/スキン/レイアウト/ウィジェット/ウィジェットスタイルのインストールを可能にするモジュールです。 Bu modülle; modüller, dış görünümler, yerleşim düzenleri vs. gibi programlarınızı www.xpressengine.com adresinden tek tıkla kurabilir ve sürümlerini yükseltebilirsiniz. 1.7 2013-11-27 diff --git a/modules/autoinstall/conf/module.xml b/modules/autoinstall/conf/module.xml index a2443c575b..7cfd264fbd 100644 --- a/modules/autoinstall/conf/module.xml +++ b/modules/autoinstall/conf/module.xml @@ -19,7 +19,7 @@ Easy Install 쉬운 설치 Easy Install - 簡単設置 + 簡単インストール Easy Install Easy Install Easy Install diff --git a/modules/autoinstall/lang/lang.xml b/modules/autoinstall/lang/lang.xml index bbd42ef0a6..9a0652211a 100644 --- a/modules/autoinstall/lang/lang.xml +++ b/modules/autoinstall/lang/lang.xml @@ -3,7 +3,7 @@ - + @@ -59,7 +59,7 @@ - + @@ -69,7 +69,7 @@ - + @@ -82,7 +82,7 @@ - + @@ -115,7 +115,7 @@ - + @@ -206,7 +206,7 @@ - + @@ -228,7 +228,7 @@ - + @@ -306,12 +306,12 @@ - + - + @@ -321,7 +321,7 @@ - + @@ -334,12 +334,12 @@ - + - + diff --git a/modules/comment/lang/lang.xml b/modules/comment/lang/lang.xml index 0668ff5d0f..c44a7d6065 100644 --- a/modules/comment/lang/lang.xml +++ b/modules/comment/lang/lang.xml @@ -230,7 +230,7 @@ - + @@ -263,7 +263,7 @@ - + From 2e2cf3cc3d10d957950f9464aa9dd45c3570e766 Mon Sep 17 00:00:00 2001 From: canto87-mac Date: Mon, 20 Jan 2014 10:23:30 +0900 Subject: [PATCH 005/549] Modify the japanese translation of autoinstall modules. --- modules/autoinstall/conf/info.xml | 2 +- modules/autoinstall/lang/lang.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/autoinstall/conf/info.xml b/modules/autoinstall/conf/info.xml index 112cf449bb..8c68f03d2d 100644 --- a/modules/autoinstall/conf/info.xml +++ b/modules/autoinstall/conf/info.xml @@ -13,7 +13,7 @@ 可以藉由此模組安裝、更新程式包括模組、面板、版面等。 Bu modül ile modüller, dış görünümler, yerleşim düzenleri.. gibi kendi programlarınızı, www.xpressengine.com adresinden tek bir tık ile kurup-düzenleyebilirsiniz. 很方便的在线安装/更新XE相关模块(模块/皮肤/布局/控件/控件样式等)。 - 管理者モードでクリックするだけで、モジュール/スキン/レイアウト/ウィジェット/ウィジェットスタイルのインストールを可能にするモジュールです。 + 管理者モードにてクリックすることだけでモジュール/スキン/レイアウト/ウィジェット/ウィジェットスタイルのインストールを可能にするモジュールです。 Bu modülle; modüller, dış görünümler, yerleşim düzenleri vs. gibi programlarınızı www.xpressengine.com adresinden tek tıkla kurabilir ve sürümlerini yükseltebilirsiniz. 1.7 2013-11-27 diff --git a/modules/autoinstall/lang/lang.xml b/modules/autoinstall/lang/lang.xml index 9a0652211a..00aad260d6 100644 --- a/modules/autoinstall/lang/lang.xml +++ b/modules/autoinstall/lang/lang.xml @@ -166,7 +166,7 @@ - + From e3089dd303094ad663c18ee9003666e3af66aac8 Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 20 Jan 2014 14:16:48 +0900 Subject: [PATCH 006/549] =?UTF-8?q?#345=20is=5Fsecret=20=EB=B0=8F=20?= =?UTF-8?q?=EB=AA=A8=EB=93=88=20=EC=84=A4=EC=A0=95=20=EC=B2=B4=ED=81=AC=20?= =?UTF-8?q?=EB=B3=B4=EC=99=84.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/board/board.controller.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/modules/board/board.controller.php b/modules/board/board.controller.php index 02cc8d09e0..7c79c20b3f 100644 --- a/modules/board/board.controller.php +++ b/modules/board/board.controller.php @@ -204,9 +204,21 @@ function procBoardInsertComment() // get the relevant data for inserting comment $obj = Context::getRequestVars(); $obj->module_srl = $this->module_srl; - - if($this->module_info->secret!='Y') { + + if(!$this->module_info->use_status) $this->module_info->use_status = 'PUBLIC'; + if(!is_array($this->module_info->use_status)) + { + $this->module_info->use_status = explode('|@|', $this->module_info->use_status); + } + + if(in_array('SECRET', $this->module_info->use_status)) + { + $this->module_info->secret = 'Y'; + } + else + { unset($obj->is_secret); + $this->module_info->secret = 'N'; } // check if the doument is existed From 63097d749384aac34f53d859fe4170af1d133556 Mon Sep 17 00:00:00 2001 From: canto87-mac Date: Mon, 20 Jan 2014 16:45:33 +0900 Subject: [PATCH 007/549] #323 Modify the japanese translation of module. --- modules/board/lang/lang.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/board/lang/lang.xml b/modules/board/lang/lang.xml index ec531740ad..95da583ac3 100644 --- a/modules/board/lang/lang.xml +++ b/modules/board/lang/lang.xml @@ -358,7 +358,7 @@ - + From de4380e14ba32d7c2b1c9f4c566bddadd673121d Mon Sep 17 00:00:00 2001 From: khongchi Date: Mon, 20 Jan 2014 17:51:54 +0900 Subject: [PATCH 008/549] =?UTF-8?q?#296=20=EC=84=A4=EC=B9=98=EC=8B=9C=20da?= =?UTF-8?q?tabase(mysql)=EC=84=A4=EC=A0=95=EB=B6=80=EB=B6=84=EC=97=90?= =?UTF-8?q?=EC=84=9C=20DB=EC=95=84=EC=9D=B4=EB=94=94=EC=9D=98=20=EC=9C=A0?= =?UTF-8?q?=ED=9A=A8=EC=84=B1=EC=9D=84=20=EC=B2=B4=ED=81=AC=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/install/ruleset/mysql.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/install/ruleset/mysql.xml b/modules/install/ruleset/mysql.xml index 9183e67f4f..23ff80d813 100644 --- a/modules/install/ruleset/mysql.xml +++ b/modules/install/ruleset/mysql.xml @@ -1,13 +1,12 @@ - - + From 09eff02685c002da0bef1d517d2ea3278c40fd25 Mon Sep 17 00:00:00 2001 From: lansi951 Date: Tue, 21 Jan 2014 01:02:25 +0900 Subject: [PATCH 009/549] =?UTF-8?q?static=20method=EB=A5=BC=20=ED=95=9C?= =?UTF-8?q?=EB=B2=88=EB=A7=8C=20=ED=98=B8=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Context::get()을 한번만 호출. --- modules/board/board.view.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/board/board.view.php b/modules/board/board.view.php index 1d6675af36..b086f75273 100644 --- a/modules/board/board.view.php +++ b/modules/board/board.view.php @@ -402,9 +402,11 @@ function dispBoardContentList(){ } // set the current page of documents - if(!$args->page && (Context::get('document_srl') || Context::get('entry'))) + $document_srl = Context::get('document_srl'); + $entry = Context::get('entry'); + if(!$args->page && ($document_srl || $entry)) { - $oDocument = $oDocumentModel->getDocument(Context::get('document_srl')); + $oDocument = $oDocumentModel->getDocument($document_srl); if($oDocument->isExists() && !$oDocument->isNotice()) { $page = $oDocumentModel->getDocumentPage($oDocument, $args); From 2e8a0b5e5e933f6fd2f900cef338d02de972f29b Mon Sep 17 00:00:00 2001 From: khongchi Date: Tue, 21 Jan 2014 02:31:36 +0900 Subject: [PATCH 010/549] =?UTF-8?q?#341=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EC=BD=94=EB=93=9C=20=EC=A0=9C=EA=B1=B0(module=20ha?= =?UTF-8?q?ndler=EC=97=90=EC=84=9C=20$entry=EB=A5=BC=20=EB=AF=B8=EB=A6=AC?= =?UTF-8?q?=20=EC=B2=98=EB=A6=AC=ED=95=98=EB=AF=80=EB=A1=9C=20=EB=B6=88?= =?UTF-8?q?=ED=95=84=EC=9A=94)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/board/board.view.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/board/board.view.php b/modules/board/board.view.php index b086f75273..6f5daa4e19 100644 --- a/modules/board/board.view.php +++ b/modules/board/board.view.php @@ -403,8 +403,7 @@ function dispBoardContentList(){ // set the current page of documents $document_srl = Context::get('document_srl'); - $entry = Context::get('entry'); - if(!$args->page && ($document_srl || $entry)) + if(!$args->page && ($document_srl)) { $oDocument = $oDocumentModel->getDocument($document_srl); if($oDocument->isExists() && !$oDocument->isNotice()) From d44137052398ee6f4878d8f05854249cdee3c565 Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 21 Jan 2014 10:00:37 +0900 Subject: [PATCH 011/549] #298 remove send emain to document author --- modules/comment/comment.admin.controller.php | 5 +++++ modules/comment/comment.controller.php | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/modules/comment/comment.admin.controller.php b/modules/comment/comment.admin.controller.php index abc27b4767..7f67371329 100644 --- a/modules/comment/comment.admin.controller.php +++ b/modules/comment/comment.admin.controller.php @@ -132,12 +132,17 @@ function procCommentAdminChangeStatus() $document_author_email = $oDocument->variables['email_address']; //mail to author of thread - START + /** + * @todo Removed code send email to document author. + */ + /* if($document_author_email != $comment->email_address && $logged_info->email_address != $document_author_email) { $oMail->setReceiptor($document_author_email, $document_author_email); $oMail->send(); $already_sent[] = $document_author_email; } + */ //mail to author of thread - STOP //mail to all emails set for administrators - START if($module_info->admin_mail) diff --git a/modules/comment/comment.controller.php b/modules/comment/comment.controller.php index 5c5bc21066..a9e9189296 100644 --- a/modules/comment/comment.controller.php +++ b/modules/comment/comment.controller.php @@ -560,11 +560,16 @@ function sendEmailToAdminAfterInsertComment($obj) $logged_info = Context::get('logged_info'); //mail to author of thread - START + /** + * @todo Removed code send email to document author. + */ + /* if($document_author_email != $obj->email_address && $logged_info->email_address != $document_author_email) { $oMail->setReceiptor($document_author_email, $document_author_email); $oMail->send(); } + */ // mail to author of thread - STOP } From 0eeaaef055f7b78a4abf2b68d658d4feb3a5c5e0 Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 20 Jan 2014 18:00:37 +0900 Subject: [PATCH 012/549] =?UTF-8?q?NOISSUE=20=EA=B2=8C=EC=8B=9C=ED=8C=90?= =?UTF-8?q?=20=EC=B9=B4=ED=85=8C=EA=B3=A0=EB=A6=AC=20=EA=B0=90=EC=B6=A4=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=EC=9D=84=20=EC=A0=9C=EB=8C=80=EB=A1=9C=20?= =?UTF-8?q?=EB=B0=98=EC=98=81=ED=95=98=EC=A7=80=20=EB=AA=BB=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/board/board.view.php | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/modules/board/board.view.php b/modules/board/board.view.php index 6f5daa4e19..1cd954a72c 100644 --- a/modules/board/board.view.php +++ b/modules/board/board.view.php @@ -47,16 +47,27 @@ function init() } // use_category <=1.5.x, hide_category >=1.7.x - $count_category = count($oDocumentModel->getCategoryList($this->module_info->module_srl)); - if($count_category && ($this->module_info->hide_category != 'Y' || $this->module_info->use_category != 'N')) + $count_category = count($oDocumentModel->getCategoryList($module_srl)); + if($count_category) { - $this->module_info->hide_category = 'N'; - $this->module_info->use_category = 'Y'; + if($config->hide_category) + { + $config->use_category = ($config->hide_category == 'Y') ? 'N' : 'Y'; + } + else if($config->use_category) + { + $config->hide_category = ($config->use_category == 'Y') ? 'N' : 'Y'; + } + else + { + $config->hide_category = 'N'; + $config->use_category = 'Y'; + } } else { - $this->module_info->hide_category = 'Y'; - $this->module_info->use_category = 'N'; + $config->hide_category = 'Y'; + $config->use_category = 'N'; } /** From da8115a627a2feaef7d2d1cbbc07be968b450262 Mon Sep 17 00:00:00 2001 From: khongchi Date: Tue, 21 Jan 2014 15:01:43 +0900 Subject: [PATCH 013/549] #341 fix typo --- modules/board/board.view.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/board/board.view.php b/modules/board/board.view.php index 1cd954a72c..7c0da18033 100644 --- a/modules/board/board.view.php +++ b/modules/board/board.view.php @@ -414,7 +414,7 @@ function dispBoardContentList(){ // set the current page of documents $document_srl = Context::get('document_srl'); - if(!$args->page && ($document_srl)) + if(!$args->page && $document_srl) { $oDocument = $oDocumentModel->getDocument($document_srl); if($oDocument->isExists() && !$oDocument->isNotice()) From 469bd22ba2220a9da299f08be6519bfeb6d98611 Mon Sep 17 00:00:00 2001 From: khongchi Date: Tue, 21 Jan 2014 15:05:38 +0900 Subject: [PATCH 014/549] =?UTF-8?q?#272=20domain=EC=9D=84=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=9C=20=EA=B0=80=EC=83=81=EC=82=AC=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8=EC=97=90=EC=84=9C=20return=5Furl=20=EC=B2=98=EB=A6=AC?= =?UTF-8?q?=EB=A5=BC=20=EC=A0=9C=EB=8C=80=EB=A1=9C=20=EC=88=98=ED=96=89?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/module/ModuleHandler.class.php | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index 6203f278c0..74b7d28684 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -105,6 +105,10 @@ function ModuleHandler($module = '', $act = '', $mid = '', $document_srl = '', $ * */ function init() { + + $oModuleModel = getModel('module'); + $site_module_info = Context::get('site_module_info'); + // if success_return_url and error_return_url is incorrect $urls = array(Context::get('success_return_url'), Context::get('error_return_url')); foreach($urls as $url) @@ -113,23 +117,20 @@ function init() { continue; } - + $urlInfo = parse_url($url); $host = $urlInfo['host']; - + $dbInfo = Context::getDBInfo(); $defaultUrlInfo = parse_url($dbInfo->default_url); $defaultHost = $defaultUrlInfo['host']; - - if($host && $host != $defaultHost) + + if($host && ($host != $defaultHost && $host != $site_module_info->domain)) { throw new Exception('msg_default_url_is_null'); } } - $oModuleModel = getModel('module'); - $site_module_info = Context::get('site_module_info'); - if(!$this->document_srl && $this->mid && $this->entry) { $oDocumentModel = getModel('document'); @@ -154,11 +155,9 @@ function init() { // If it exists, compare mid based on the module information // if mids are not matching, set it as the document's mid - if(($this->mid && $this->mid != $module_info->mid) || ($this->module_srl && $this->module_srl != $module_info->module_srl)) + if(!$this->mid || ($this->mid && $this->mid != $module_info->mid) || ($this->module_srl && $this->module_srl != $module_info->module_srl)) { $this->mid = $module_info->mid; - $this->module_srl = $module_info->module_srl; - Context::set('mid', $module_info->mid, TRUE); header('location:' . getNotEncodedSiteUrl($site_info->domain, 'mid', $this->mid, 'document_srl', $this->document_srl, 'module_srl','')); return FALSE; } @@ -276,7 +275,7 @@ function init() { Context::set('mid', $this->mid, TRUE); } - + // Call a trigger after moduleHandler init $output = ModuleHandler::triggerCall('moduleHandler.init', 'after', $this->module_info); if(!$output->toBool()) From 4190dcc75e2c0c9ab88570c6a8f03b0af7e17ba5 Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 21 Jan 2014 15:35:02 +0900 Subject: [PATCH 015/549] =?UTF-8?q?#289=20=EC=82=AC=EC=9D=B4=ED=8A=B8=20?= =?UTF-8?q?=EB=A9=94=EB=89=B4=20=ED=8E=B8=EC=A7=80=20>=20=EB=94=94?= =?UTF-8?q?=EC=9E=90=EC=9D=B8=20=EC=84=A4=EC=A0=95=EC=97=90=EC=84=9C=20cac?= =?UTF-8?q?he=20=EA=B4=80=EB=A0=A8=20=EC=98=A4=EB=A5=98=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/module/module.model.php | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/module/module.model.php b/modules/module/module.model.php index af51f57628..d61094f5f5 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -333,6 +333,7 @@ public function getModuleInfoByMenuItemSrl($menu_item_srl = 0) } else { + $coutput->designSettings = $moduleInfo->designSettings; $moduleInfo = $coutput; } } From 0f1b20eb5075839cf84907a0257a15bc73b08cc0 Mon Sep 17 00:00:00 2001 From: khongchi Date: Tue, 21 Jan 2014 17:40:18 +0900 Subject: [PATCH 016/549] =?UTF-8?q?#285=20action=5Fforward=EA=B0=80=20?= =?UTF-8?q?=EC=A0=9C=EB=8C=80=EB=A1=9C=20=EC=9E=91=EB=8F=99=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8A=94=20=EC=98=A4=EB=A5=98=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0,=20#242=20action=5Fforward=20=EA=B4=80=EB=A0=A8=20?= =?UTF-8?q?=EC=BA=90=EC=8B=9C=20=EA=B8=B0=EB=8A=A5=20=EC=A0=95=EC=83=81?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- layouts/default/layout.html | 2 +- modules/module/module.model.php | 31 ++++++++++++++++++------------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/layouts/default/layout.html b/layouts/default/layout.html index 61410210e4..0072594c40 100644 --- a/layouts/default/layout.html +++ b/layouts/default/layout.html @@ -20,7 +20,7 @@

- + diff --git a/modules/module/module.model.php b/modules/module/module.model.php index d61094f5f5..0804b41af3 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -565,7 +565,7 @@ function getModuleSrlByMid($mid) /** * @brief Get forward value by the value of act */ - function getActionForward($act, $module = '') + function getActionForward($act) { // cache controll $oCacheHandler = CacheHandler::getInstance('object', NULL, TRUE); @@ -575,28 +575,33 @@ function getActionForward($act, $module = '') $action_forward = $oCacheHandler->get($cache_key); } + // retrieve and caching all registered action_forward if(!$action_forward) { $args = new stdClass(); - $args->act = $act; - $args->module = ($module) ? $module : null; - if(strlen($args->module) > 0) - { - $output = executeQuery('module.getActionForwardWithModule', $args); - } - else + $output = executeQueryArray('module.getActionForward',$args); + + $action_forward = array(); + foreach($output->data as $item) { - $output = executeQuery('module.getActionForward',$args); + $action_forward[$item->act] = $item; } - $action_forward = $output->data; - debugPrint($action_forward); + + if($oCacheHandler->isSupport()) { $oCacheHandler->put($cache_key, $action_forward); } } - - return $action_forward; + + if($action_forward[$act]) + { + return $action_forward[$act]; + } + else + { + return new stdClass(); + } } /** From 93fe3f0be77da9636259c8ade123f81831bb7e09 Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 21 Jan 2014 19:28:17 +0900 Subject: [PATCH 017/549] #324 add functon 'htmlspecialchars()' to widget title --- widgets/content/content.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/content/content.class.php b/widgets/content/content.class.php index 3f974a19cf..37011e3865 100644 --- a/widgets/content/content.class.php +++ b/widgets/content/content.class.php @@ -275,7 +275,7 @@ function _getDocumentItems($args) $content_item = new contentItem( $args->module_srls_info[$module_srl]->browser_title ); $content_item->adds($oDocument->getObjectVars()); $content_item->add('original_content', $oDocument->get('content')); - $content_item->setTitle($oDocument->getTitleText()); + $content_item->setTitle(htmlspecialchars($oDocument->getTitleText())); $content_item->setCategory( $category_lists[$module_srl][$category_srl]->title ); $content_item->setDomain( $args->module_srls_info[$module_srl]->domain ); $content_item->setContent($oDocument->getSummary($args->content_cut_size)); From 5f1fc942ca7a24e71aa6ba480c1cabd8cbb69f16 Mon Sep 17 00:00:00 2001 From: bnu Date: Tue, 21 Jan 2014 19:37:13 +0900 Subject: [PATCH 018/549] =?UTF-8?q?#242=20=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=ED=8E=B8=EC=A7=91=20=EC=8B=9C=20object=20cache=EA=B0=80=20?= =?UTF-8?q?=EA=B0=B1=EC=8B=A0=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/page/page.admin.controller.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/page/page.admin.controller.php b/modules/page/page.admin.controller.php index 5fd982cc06..ba73025e3d 100644 --- a/modules/page/page.admin.controller.php +++ b/modules/page/page.admin.controller.php @@ -281,6 +281,14 @@ function procPageAdminRemoveWidgetCache() FileHandler::removeFile($path . $module_info->module_srl . '.' . $file_name); } } + + $oCacheHandler = CacheHandler::getInstance('object', null, true); + if($oCacheHandler->isSupport()) + { + $object_key = 'mid_info:' . $module_info->module_srl; + $cache_key = $oCacheHandler->getGroupKey('site_and_module', $object_key); + $oCacheHandler->delete($cache_key); + } } function procPageAdminArticleDocumentInsert() From 6c5e8fadd0c4669f438ff66f4d4539193534c8a7 Mon Sep 17 00:00:00 2001 From: bnu Date: Tue, 21 Jan 2014 19:50:39 +0900 Subject: [PATCH 019/549] =?UTF-8?q?NOISSUE=20editor=20=EA=B5=AC=EC=84=B1?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20minify?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gruntfile.js | 3 + modules/editor/tpl/js/editor.js | 868 +++++++++--------- modules/editor/tpl/js/editor.min.js | 1 + modules/editor/tpl/js/editor_admin.js | 18 +- modules/editor/tpl/js/editor_common.js | 454 ++++----- modules/editor/tpl/js/editor_module_config.js | 28 +- modules/editor/tpl/js/swfupload.js | 102 +- modules/editor/tpl/js/swfupload.min.js | 1 + modules/editor/tpl/js/uploader.js | 116 +-- modules/editor/tpl/js/uploader.min.js | 1 + 10 files changed, 799 insertions(+), 793 deletions(-) create mode 100644 modules/editor/tpl/js/editor.min.js create mode 100644 modules/editor/tpl/js/swfupload.min.js create mode 100644 modules/editor/tpl/js/uploader.min.js diff --git a/Gruntfile.js b/Gruntfile.js index eada99fb96..c98f6a5cdb 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -60,6 +60,9 @@ module.exports = function(grunt) { 'modules/editor/skins/xpresseditor/js/xpresseditor.min.js': ['modules/editor/skins/xpresseditor/js/xpresseditor.js'], 'modules/editor/skins/xpresseditor/js/xe_textarea.min.js': ['modules/editor/skins/xpresseditor/js/xe_textarea.js'], 'modules/editor/tpl/js/editor_common.min.js': ['modules/editor/tpl/js/editor_common.js'], + 'modules/editor/tpl/js/swfupload.min.js': ['modules/editor/tpl/js/swfupload.js'], + 'modules/editor/tpl/js/uploader.min.js': ['modules/editor/tpl/js/uploader.js'], + 'modules/editor/tpl/js/editor.min.js': ['modules/editor/tpl/js/editor.js'], // module/admin 'modules/admin/tpl/js/admin.min.js': ['modules/admin/tpl/js/admin.js'], 'modules/admin/tpl/js/config.min.js': ['modules/admin/tpl/js/config.js'], diff --git a/modules/editor/tpl/js/editor.js b/modules/editor/tpl/js/editor.js index 592a7165b3..c161463543 100755 --- a/modules/editor/tpl/js/editor.js +++ b/modules/editor/tpl/js/editor.js @@ -14,52 +14,52 @@ // editor_sequence값에 해당하는 textarea object를 return function editorGetTextArea(editor_sequence) { - return jQuery('#editor_textarea_' + editor_sequence)[0]; + return jQuery('#editor_textarea_' + editor_sequence)[0]; } function editorGetPreviewArea(editor_sequence) { - return jQuery( '#editor_preview_' + editor_sequence )[0]; + return jQuery( '#editor_preview_' + editor_sequence )[0]; } // editor_sequence에 해당하는 form문 구함 function editorGetForm(editor_sequence) { - var iframe_obj = editorGetIFrame(editor_sequence); - if(!iframe_obj) return; + var iframe_obj = editorGetIFrame(editor_sequence); + if(!iframe_obj) return; - var fo_obj = iframe_obj.parentNode; - while(fo_obj.nodeName != 'FORM') { fo_obj = fo_obj.parentNode; } - if(fo_obj.nodeName == 'FORM') return fo_obj; - return; + var fo_obj = iframe_obj.parentNode; + while(fo_obj.nodeName != 'FORM') { fo_obj = fo_obj.parentNode; } + if(fo_obj.nodeName == 'FORM') return fo_obj; + return; } // 에디터의 전체 내용 return function editorGetContent_xe(editor_sequence) { - var html = ""; - if(editorMode[editor_sequence]=='html') { - var textarea_obj = editorGetTextArea(editor_sequence); - if(!textarea_obj) return ""; - html = textarea_obj.value; - } else { - var iframe_obj = editorGetIFrame(editor_sequence); - if(!iframe_obj) return ""; - html = jQuery(iframe_obj.contentWindow.document.body).html().replace(/^]*)>$/i,''); - } - return html; + var html = ""; + if(editorMode[editor_sequence]=='html') { + var textarea_obj = editorGetTextArea(editor_sequence); + if(!textarea_obj) return ""; + html = textarea_obj.value; + } else { + var iframe_obj = editorGetIFrame(editor_sequence); + if(!iframe_obj) return ""; + html = jQuery(iframe_obj.contentWindow.document.body).html().replace(/^]*)>$/i,''); + } + return html; } // 에디터 내의 선택된 부분의 NODE를 return function editorGetSelectedNode(editor_sequence) { - var iframe_obj = editorGetIFrame(editor_sequence), w, range; + var iframe_obj = editorGetIFrame(editor_sequence), w, range; w = iframe_obj.contentWindow; - if(w.document.selection) { - range = w.document.selection.createRange(); - return jQuery('
').html(range.htmlText)[0].firstChild; - } else { - range = w.getSelection().getRangeAt(0); - return jQuery('
').append(range.cloneContents())[0].firstChild; - } + if(w.document.selection) { + range = w.document.selection.createRange(); + return jQuery('
').html(range.htmlText)[0].firstChild; + } else { + range = w.getSelection().getRangeAt(0); + return jQuery('
').append(range.cloneContents())[0].firstChild; + } } /** @@ -68,136 +68,136 @@ function editorGetSelectedNode(editor_sequence) { var _editorFontColor = new Array(); function editorStart(editor_sequence, primary_key, content_key, editor_height, font_color) { - if(typeof(font_color)=='undefined') font_color = '#000'; - _editorFontColor[editor_sequence] = font_color; + if(typeof(font_color)=='undefined') font_color = '#000'; + _editorFontColor[editor_sequence] = font_color; - // iframe obj를 찾음 - var iframe_obj = editorGetIFrame(editor_sequence); - if(!iframe_obj) return; + // iframe obj를 찾음 + var iframe_obj = editorGetIFrame(editor_sequence); + if(!iframe_obj) return; jQuery(iframe_obj).css('width', '100%').parent().css('width', '100%'); - // 현 에디터를 감싸고 있는 form문을 찾음 - var fo_obj = editorGetForm(editor_sequence); - if(!fo_obj) return; - - // fo_obj에 editor_sequence 값 지정 - fo_obj.setAttribute('editor_sequence', editor_sequence); - - // 모듈 연관 키 값을 세팅 - editorRelKeys[editor_sequence] = new Array(); - editorRelKeys[editor_sequence]["primary"] = fo_obj[primary_key]; - editorRelKeys[editor_sequence]["content"] = fo_obj[content_key]; - editorRelKeys[editor_sequence]["func"] = editorGetContent_xe; - - // saved document(자동저장 문서)에 대한 확인 - if(typeof(fo_obj._saved_doc_title)!="undefined" ) { ///<< _saved_doc_title field가 없으면 자동저장 하지 않음 - - var saved_title = fo_obj._saved_doc_title.value; - var saved_content = fo_obj._saved_doc_content.value; - - if(saved_title || saved_content) { - // 자동저장된 문서 활용여부를 물은 후 사용하지 않는다면 자동저장된 문서 삭제 - if(confirm(fo_obj._saved_doc_message.value)) { - if(typeof(fo_obj.title)!='undefined') fo_obj.title.value = saved_title; - editorRelKeys[editor_sequence]['content'].value = saved_content; - - var param = new Array(); - param['editor_sequence'] = editor_sequence; - param['primary_key'] = primary_key; - param['mid'] = current_mid; - var response_tags = new Array("error","message","editor_sequence","key","title","content","document_srl"); - exec_xml('editor',"procEditorLoadSavedDocument", param, getAutoSavedSrl, response_tags); - } else { - editorRemoveSavedDoc(); - } - } - } - - // 대상 form의 content element에서 데이터를 구함 - var content = editorRelKeys[editor_sequence]['content'].value; - - // IE가 아니고 내용이 없으면
추가 (FF등에서 iframe 선택시 focus를 주기 위한 꽁수) - if(!content && !xIE4Up) content = "
"; - - // IE일 경우 ctrl-Enter 안내 문구를 노출 - var ieHelpObj = xGetElementById("for_ie_help_"+editor_sequence); - if(xIE4Up && ieHelpObj) { - ieHelpObj.style.display = "block"; - } - - // content 생성 - editor_path = editor_path.replace(/^\.\//ig, ''); - var contentHtml = ''+ - ''+ - ''+ - ''+ - ''+ - content+ - ''+ - ''; - iframe_obj.contentWindow.document.open("text/html","replace"); - iframe_obj.contentWindow.document.write(contentHtml); - iframe_obj.contentWindow.document.close(); - - // editorMode를 기본으로 설정 - editorMode[editor_sequence] = null; - - // 에디터를 시작 시킴 - try { - iframe_obj.contentWindow.document.designMode = 'On'; - } catch(e) { - } - - try { - iframe_obj.contentWindow.document.execCommand("undo", false, null); - iframe_obj.contentWindow.document.execCommand("useCSS", false, true); - } catch (e) { - } - - /** - * 더블클릭이나 키눌림등의 각종 이벤트에 대해 listener 추가 - * 작성시 필요한 이벤트 체크 - * 이 이벤트의 경우 윈도우 sp1 (NT or xp sp1) 에서 iframe_obj.contentWindow.document에 대한 권한이 없기에 try 문으로 감싸서 - * 에러를 무시하도록 해야 함. - **/ - - // 위젯 감시를 위한 더블클릭 이벤트 걸기 - try { + // 현 에디터를 감싸고 있는 form문을 찾음 + var fo_obj = editorGetForm(editor_sequence); + if(!fo_obj) return; + + // fo_obj에 editor_sequence 값 지정 + fo_obj.setAttribute('editor_sequence', editor_sequence); + + // 모듈 연관 키 값을 세팅 + editorRelKeys[editor_sequence] = new Array(); + editorRelKeys[editor_sequence]["primary"] = fo_obj[primary_key]; + editorRelKeys[editor_sequence]["content"] = fo_obj[content_key]; + editorRelKeys[editor_sequence]["func"] = editorGetContent_xe; + + // saved document(자동저장 문서)에 대한 확인 + if(typeof(fo_obj._saved_doc_title)!="undefined" ) { ///<< _saved_doc_title field가 없으면 자동저장 하지 않음 + + var saved_title = fo_obj._saved_doc_title.value; + var saved_content = fo_obj._saved_doc_content.value; + + if(saved_title || saved_content) { + // 자동저장된 문서 활용여부를 물은 후 사용하지 않는다면 자동저장된 문서 삭제 + if(confirm(fo_obj._saved_doc_message.value)) { + if(typeof(fo_obj.title)!='undefined') fo_obj.title.value = saved_title; + editorRelKeys[editor_sequence]['content'].value = saved_content; + + var param = new Array(); + param['editor_sequence'] = editor_sequence; + param['primary_key'] = primary_key; + param['mid'] = current_mid; + var response_tags = new Array("error","message","editor_sequence","key","title","content","document_srl"); + exec_xml('editor',"procEditorLoadSavedDocument", param, getAutoSavedSrl, response_tags); + } else { + editorRemoveSavedDoc(); + } + } + } + + // 대상 form의 content element에서 데이터를 구함 + var content = editorRelKeys[editor_sequence]['content'].value; + + // IE가 아니고 내용이 없으면
추가 (FF등에서 iframe 선택시 focus를 주기 위한 꽁수) + if(!content && !xIE4Up) content = "
"; + + // IE일 경우 ctrl-Enter 안내 문구를 노출 + var ieHelpObj = xGetElementById("for_ie_help_"+editor_sequence); + if(xIE4Up && ieHelpObj) { + ieHelpObj.style.display = "block"; + } + + // content 생성 + editor_path = editor_path.replace(/^\.\//ig, ''); + var contentHtml = ''+ + ''+ + ''+ + ''+ + ''+ + content+ + ''+ + ''; + iframe_obj.contentWindow.document.open("text/html","replace"); + iframe_obj.contentWindow.document.write(contentHtml); + iframe_obj.contentWindow.document.close(); + + // editorMode를 기본으로 설정 + editorMode[editor_sequence] = null; + + // 에디터를 시작 시킴 + try { + iframe_obj.contentWindow.document.designMode = 'On'; + } catch(e) { + } + + try { + iframe_obj.contentWindow.document.execCommand("undo", false, null); + iframe_obj.contentWindow.document.execCommand("useCSS", false, true); + } catch (e) { + } + + /** + * 더블클릭이나 키눌림등의 각종 이벤트에 대해 listener 추가 + * 작성시 필요한 이벤트 체크 + * 이 이벤트의 경우 윈도우 sp1 (NT or xp sp1) 에서 iframe_obj.contentWindow.document에 대한 권한이 없기에 try 문으로 감싸서 + * 에러를 무시하도록 해야 함. + **/ + + // 위젯 감시를 위한 더블클릭 이벤트 걸기 + try { jQuery(iframe_obj.contentWindow.document) .unbind('dblclick.widget') .bind('dblclick.widget', editorSearchComponent); - } catch(e) { - } - - // 에디터에서 키가 눌러질때마다 이벤트를 체크함 (enter키의 처리나 FF에서 alt-s등을 처리) - try { - if(xIE4Up) xAddEventListener(iframe_obj.contentWindow.document, 'keydown',editorKeyPress); - else xAddEventListener(iframe_obj.contentWindow.document, 'keypress',editorKeyPress); - } catch(e) { - } - - // 자동저장 필드가 있다면 자동 저장 기능 활성화 - if(typeof(fo_obj._saved_doc_title)!="undefined" ) editorEnableAutoSave(fo_obj, editor_sequence); - - - // 좋지는 않으나;; 스타일 변형을 막기 위해 start 할때 html이면 바꿔주자 - if (xGetCookie('editor_mode') == 'html'){ - var iframe_obj = editorGetIFrame(editor_sequence); - if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='block'; - textarea_obj = editorGetTextArea(editor_sequence); - textarea_obj.value = content; - xWidth(textarea_obj, xWidth(iframe_obj.parentNode)); - xHeight(textarea_obj, xHeight(iframe_obj.parentNode)); - editorMode[editor_sequence] = 'html'; - if(xGetElementById('xeEditor_'+editor_sequence)) { - xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor html'; - xGetElementById('use_rich_'+editor_sequence).className = ''; - xGetElementById('preview_html_'+editor_sequence).className = ''; - xGetElementById('use_html_'+editor_sequence).className = 'active'; - } - } + } catch(e) { + } + + // 에디터에서 키가 눌러질때마다 이벤트를 체크함 (enter키의 처리나 FF에서 alt-s등을 처리) + try { + if(xIE4Up) xAddEventListener(iframe_obj.contentWindow.document, 'keydown',editorKeyPress); + else xAddEventListener(iframe_obj.contentWindow.document, 'keypress',editorKeyPress); + } catch(e) { + } + + // 자동저장 필드가 있다면 자동 저장 기능 활성화 + if(typeof(fo_obj._saved_doc_title)!="undefined" ) editorEnableAutoSave(fo_obj, editor_sequence); + + + // 좋지는 않으나;; 스타일 변형을 막기 위해 start 할때 html이면 바꿔주자 + if (xGetCookie('editor_mode') == 'html'){ + var iframe_obj = editorGetIFrame(editor_sequence); + if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='block'; + textarea_obj = editorGetTextArea(editor_sequence); + textarea_obj.value = content; + xWidth(textarea_obj, xWidth(iframe_obj.parentNode)); + xHeight(textarea_obj, xHeight(iframe_obj.parentNode)); + editorMode[editor_sequence] = 'html'; + if(xGetElementById('xeEditor_'+editor_sequence)) { + xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor html'; + xGetElementById('use_rich_'+editor_sequence).className = ''; + xGetElementById('preview_html_'+editor_sequence).className = ''; + xGetElementById('use_html_'+editor_sequence).className = 'active'; + } + } } @@ -213,211 +213,211 @@ function editorStart(editor_sequence, primary_key, content_key, editor_height, f // 입력 키에 대한 이벤트 체크 function editorKeyPress(evt) { - var e = new xEvent(evt); - - // 대상을 구함 - var obj = e.target; - var body_obj = null; - if(obj.nodeName == "BODY") body_obj = obj; - else body_obj = obj.firstChild.nextSibling; - if(!body_obj) return; - - // editor_sequence는 에디터의 body에 attribute로 정의되어 있음 - var editor_sequence = body_obj.getAttribute("editor_sequence"); - if(!editor_sequence) return; - - // IE에서 enter키를 눌렀을때 P 태그 대신 BR 태그 입력 - if (xIE4Up && !e.ctrlKey && !e.shiftKey && e.keyCode == 13 && !editorMode[editor_sequence]) { - var iframe_obj = editorGetIFrame(editor_sequence); - if(!iframe_obj) return; - - var contentDocument = iframe_obj.contentWindow.document; - - var obj = contentDocument.selection.createRange(); - - var pTag = obj.parentElement().tagName.toLowerCase(); - - switch(pTag) { - case 'li' : - return; - break; - default : - obj.pasteHTML("
"); - break; - } - obj.select(); - evt.cancelBubble = true; - evt.returnValue = false; - return; - } - - // ctrl-S, alt-S 클릭시 submit하기 - if( e.keyCode == 115 && (e.altKey || e.ctrlKey) ) { - // iframe 에디터를 찾음 - var iframe_obj = editorGetIFrame(editor_sequence); - if(!iframe_obj) return; - - // 대상 form을 찾음 - var fo_obj = editorGetForm(editor_sequence); - if(!fo_obj) return; - - // 데이터 동기화 - editorRelKeys[editor_sequence]['content'].value = editorGetContent(editor_sequence); - - // form문 전송 - if(fo_obj.onsubmit) fo_obj.onsubmit(); - - // 이벤트 중단 - evt.cancelBubble = true; - evt.returnValue = false; - xPreventDefault(evt); - xStopPropagation(evt); - return; - } - - // ctrl-b, i, u, s 키에 대한 처리 (파이어폭스에서도 에디터 상태에서 단축키 쓰도록) - if (e.ctrlKey) { - // iframe 에디터를 찾음 - var iframe_obj = editorGetIFrame(editor_sequence); - if(!iframe_obj) return; - - // html 에디터 모드일 경우 이벤트 취소 시킴 - if(editorMode[editor_sequence]) { - evt.cancelBubble = true; - evt.returnValue = false; - xPreventDefault(evt); - xStopPropagation(evt); - return; - } - - switch(e.keyCode) { - // ctrl+1~6 - case 49 : - case 50 : - case 51 : - case 52 : - case 53 : - case 54 : - editorDo('formatblock',"",e.target); - xPreventDefault(evt); - xStopPropagation(evt); - break; - // ctrl+7 - case 55 : - editorDo('formatblock',"

",e.target); - xPreventDefault(evt); - xStopPropagation(evt); - break; - // ie에서 ctrlKey + enter일 경우 P 태그 입력 - case 13 : - if(xIE4Up) { - if(e.target.parentElement.document.designMode!="On") return; - var obj = e.target.parentElement.document.selection.createRange(); - obj.pasteHTML('

'); - obj.select(); - evt.cancelBubble = true; - evt.returnValue = false; - return; - } - // bold - case 98 : - editorDo('Bold',null,e.target); - xPreventDefault(evt); - xStopPropagation(evt); - break; - // italic - case 105 : - editorDo('Italic',null,e.target); - xPreventDefault(evt); - xStopPropagation(evt); - break; - // underline - case 117 : - editorDo('Underline',null,e.target); - xPreventDefault(evt); - xStopPropagation(evt); - break; - //RemoveFormat - case 100 : - editorDo('RemoveFormat',null,e.target); - xPreventDefault(evt); - xStopPropagation(evt); - break; - - - // strike - /* - case 83 : - case 115 : - editorDo('StrikeThrough',null,e.target); - xPreventDefault(evt); - xStopPropagation(evt); - break; - */ - } - } + var e = new xEvent(evt); + + // 대상을 구함 + var obj = e.target; + var body_obj = null; + if(obj.nodeName == "BODY") body_obj = obj; + else body_obj = obj.firstChild.nextSibling; + if(!body_obj) return; + + // editor_sequence는 에디터의 body에 attribute로 정의되어 있음 + var editor_sequence = body_obj.getAttribute("editor_sequence"); + if(!editor_sequence) return; + + // IE에서 enter키를 눌렀을때 P 태그 대신 BR 태그 입력 + if (xIE4Up && !e.ctrlKey && !e.shiftKey && e.keyCode == 13 && !editorMode[editor_sequence]) { + var iframe_obj = editorGetIFrame(editor_sequence); + if(!iframe_obj) return; + + var contentDocument = iframe_obj.contentWindow.document; + + var obj = contentDocument.selection.createRange(); + + var pTag = obj.parentElement().tagName.toLowerCase(); + + switch(pTag) { + case 'li' : + return; + break; + default : + obj.pasteHTML("
"); + break; + } + obj.select(); + evt.cancelBubble = true; + evt.returnValue = false; + return; + } + + // ctrl-S, alt-S 클릭시 submit하기 + if( e.keyCode == 115 && (e.altKey || e.ctrlKey) ) { + // iframe 에디터를 찾음 + var iframe_obj = editorGetIFrame(editor_sequence); + if(!iframe_obj) return; + + // 대상 form을 찾음 + var fo_obj = editorGetForm(editor_sequence); + if(!fo_obj) return; + + // 데이터 동기화 + editorRelKeys[editor_sequence]['content'].value = editorGetContent(editor_sequence); + + // form문 전송 + if(fo_obj.onsubmit) fo_obj.onsubmit(); + + // 이벤트 중단 + evt.cancelBubble = true; + evt.returnValue = false; + xPreventDefault(evt); + xStopPropagation(evt); + return; + } + + // ctrl-b, i, u, s 키에 대한 처리 (파이어폭스에서도 에디터 상태에서 단축키 쓰도록) + if (e.ctrlKey) { + // iframe 에디터를 찾음 + var iframe_obj = editorGetIFrame(editor_sequence); + if(!iframe_obj) return; + + // html 에디터 모드일 경우 이벤트 취소 시킴 + if(editorMode[editor_sequence]) { + evt.cancelBubble = true; + evt.returnValue = false; + xPreventDefault(evt); + xStopPropagation(evt); + return; + } + + switch(e.keyCode) { + // ctrl+1~6 + case 49 : + case 50 : + case 51 : + case 52 : + case 53 : + case 54 : + editorDo('formatblock',"",e.target); + xPreventDefault(evt); + xStopPropagation(evt); + break; + // ctrl+7 + case 55 : + editorDo('formatblock',"

",e.target); + xPreventDefault(evt); + xStopPropagation(evt); + break; + // ie에서 ctrlKey + enter일 경우 P 태그 입력 + case 13 : + if(xIE4Up) { + if(e.target.parentElement.document.designMode!="On") return; + var obj = e.target.parentElement.document.selection.createRange(); + obj.pasteHTML('

'); + obj.select(); + evt.cancelBubble = true; + evt.returnValue = false; + return; + } + // bold + case 98 : + editorDo('Bold',null,e.target); + xPreventDefault(evt); + xStopPropagation(evt); + break; + // italic + case 105 : + editorDo('Italic',null,e.target); + xPreventDefault(evt); + xStopPropagation(evt); + break; + // underline + case 117 : + editorDo('Underline',null,e.target); + xPreventDefault(evt); + xStopPropagation(evt); + break; + //RemoveFormat + case 100 : + editorDo('RemoveFormat',null,e.target); + xPreventDefault(evt); + xStopPropagation(evt); + break; + + + // strike + /* + case 83 : + case 115 : + editorDo('StrikeThrough',null,e.target); + xPreventDefault(evt); + xStopPropagation(evt); + break; + */ + } + } } // 편집 기능 실행 function editorDo(command, value, target) { - var doc = null; + var doc = null; - // target이 object인지 editor_sequence인지에 따라 document를 구함 - if(typeof(target)=="object") { - if(xIE4Up) doc = target.parentElement.document; - else doc = target.parentNode; - } else { - var iframe_obj = editorGetIFrame(target); - doc = iframe_obj.contentWindow.document; - } + // target이 object인지 editor_sequence인지에 따라 document를 구함 + if(typeof(target)=="object") { + if(xIE4Up) doc = target.parentElement.document; + else doc = target.parentNode; + } else { + var iframe_obj = editorGetIFrame(target); + doc = iframe_obj.contentWindow.document; + } - var editor_sequence = doc.body.getAttribute('editor_sequence'); - if(editorMode[editor_sequence]) return; + var editor_sequence = doc.body.getAttribute('editor_sequence'); + if(editorMode[editor_sequence]) return; - // 포커스 - if(typeof(target)=="object") target.focus(); - else editorFocus(target); + // 포커스 + if(typeof(target)=="object") target.focus(); + else editorFocus(target); - // 실행 - doc.execCommand(command, false, value); + // 실행 + doc.execCommand(command, false, value); - // 포커스 - if(typeof(target)=="object") target.focus(); - else editorFocus(target); + // 포커스 + if(typeof(target)=="object") target.focus(); + else editorFocus(target); } // 폰트를 변경 function editorChangeFontName(obj,srl) { - var value = obj.options[obj.selectedIndex].value; - if(!value) return; - editorDo('FontName',value,srl); - obj.selectedIndex = 0; + var value = obj.options[obj.selectedIndex].value; + if(!value) return; + editorDo('FontName',value,srl); + obj.selectedIndex = 0; } function editorChangeFontSize(obj,srl) { - var value = obj.options[obj.selectedIndex].value; - if(!value) return; - editorDo('FontSize',value,srl); - obj.selectedIndex = 0; + var value = obj.options[obj.selectedIndex].value; + if(!value) return; + editorDo('FontSize',value,srl); + obj.selectedIndex = 0; } function editorUnDo(obj,srl) { - editorDo('undo','',srl); - obj.selectedIndex = 0; + editorDo('undo','',srl); + obj.selectedIndex = 0; } function editorReDo(obj,srl) { - editorDo('redo','',srl); - obj.selectedIndex = 0; + editorDo('redo','',srl); + obj.selectedIndex = 0; } function editorChangeHeader(obj,srl) { - var value = obj.options[obj.selectedIndex].value; - if(!value) return; - value = "<"+value+">"; - editorDo('formatblock',value,srl); - obj.selectedIndex = 0; + var value = obj.options[obj.selectedIndex].value; + if(!value) return; + value = "<"+value+">"; + editorDo('formatblock',value,srl); + obj.selectedIndex = 0; } /** @@ -426,100 +426,100 @@ function editorChangeHeader(obj,srl) { function editorChangeMode(mode, editor_sequence) { - if(mode == 'html' || mode ==''){ - var expire = new Date(); - expire.setTime(expire.getTime()+ (7000 * 24 * 3600000)); - xSetCookie('editor_mode', mode, expire); - } + if(mode == 'html' || mode ==''){ + var expire = new Date(); + expire.setTime(expire.getTime()+ (7000 * 24 * 3600000)); + xSetCookie('editor_mode', mode, expire); + } - var iframe_obj = editorGetIFrame(editor_sequence); - if(!iframe_obj) return; + var iframe_obj = editorGetIFrame(editor_sequence); + if(!iframe_obj) return; - var textarea_obj = editorGetTextArea(editor_sequence); - var preview_obj = editorGetPreviewArea(editor_sequence); - var contentDocument = iframe_obj.contentWindow.document; + var textarea_obj = editorGetTextArea(editor_sequence); + var preview_obj = editorGetPreviewArea(editor_sequence); + var contentDocument = iframe_obj.contentWindow.document; - var html = null; - if(editorMode[editor_sequence]=='html') { - html = textarea_obj.value; - contentDocument.body.innerHTML = textarea_obj.value; - } else if (editorMode[editor_sequence]=='preview') { + var html = null; + if(editorMode[editor_sequence]=='html') { + html = textarea_obj.value; + contentDocument.body.innerHTML = textarea_obj.value; + } else if (editorMode[editor_sequence]=='preview') { // html = xInnerHtml(preview_obj); - html = textarea_obj.value; - preview_obj.contentWindow.document.body.innerHTML = ''; + html = textarea_obj.value; + preview_obj.contentWindow.document.body.innerHTML = ''; // xAddEventListener(xGetElementById('editor_preview_'+editor_sequence), 'load', function(){setPreviewHeight(editor_sequence)}); - } else { - html = contentDocument.body.innerHTML; - textarea_obj.value = html - html = html.replace(/
/ig,"
\n"); - html = html.replace(/
\n\n/ig,"
\n"); - } - - // html 편집 사용시 - if(mode == 'html' && textarea_obj) { - preview_obj.style.display='none'; - if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='block'; - textarea_obj.value = html; - xWidth(textarea_obj, xWidth(iframe_obj.parentNode)); - xHeight(textarea_obj, xHeight(iframe_obj.parentNode)); - editorMode[editor_sequence] = 'html'; - - if(xGetElementById('xeEditor_'+editor_sequence)) { - xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor html'; - xGetElementById('use_rich_'+editor_sequence).className = ''; - xGetElementById('preview_html_'+editor_sequence).className = ''; - xGetElementById('use_html_'+editor_sequence).className = 'active'; - } - // 미리보기 - } else if(mode == 'preview' && preview_obj) { - preview_obj.style.display=''; - if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='none'; - - var fo_obj = xGetElementById("preview_form"); - if(!fo_obj) { - fo_obj = xCreateElement('form'); - fo_obj.id = "preview_form"; - fo_obj.method = "post"; - fo_obj.action = request_uri; - fo_obj.target = "editor_preview_"+editor_sequence; - xInnerHtml(fo_obj,''); - document.body.appendChild(fo_obj); - } - fo_obj.content.value = html; - fo_obj.submit(); - - xWidth(preview_obj, xWidth(iframe_obj.parentNode)); - editorMode[editor_sequence] = 'preview'; - - if(xGetElementById('xeEditor_'+editor_sequence)) { - xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor preview'; - xGetElementById('use_rich_'+editor_sequence).className = ''; - xGetElementById('preview_html_'+editor_sequence).className = 'active'; - if(xGetElementById('use_html_'+editor_sequence)) xGetElementById('use_html_'+editor_sequence).className = ''; - } - // 위지윅 모드 사용시 - } else { - preview_obj.style.display='none'; - if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='block'; - contentDocument.body.innerHTML = html; - editorMode[editor_sequence] = null; - - if(xGetElementById('xeEditor_'+editor_sequence)) { - xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor rich'; - xGetElementById('use_rich_'+editor_sequence).className = 'active'; - xGetElementById('preview_html_'+editor_sequence).className = ''; - if(xGetElementById('use_html_'+editor_sequence)) xGetElementById('use_html_'+editor_sequence).className = ''; - } - } + } else { + html = contentDocument.body.innerHTML; + textarea_obj.value = html + html = html.replace(/
/ig,"
\n"); + html = html.replace(/
\n\n/ig,"
\n"); + } + + // html 편집 사용시 + if(mode == 'html' && textarea_obj) { + preview_obj.style.display='none'; + if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='block'; + textarea_obj.value = html; + xWidth(textarea_obj, xWidth(iframe_obj.parentNode)); + xHeight(textarea_obj, xHeight(iframe_obj.parentNode)); + editorMode[editor_sequence] = 'html'; + + if(xGetElementById('xeEditor_'+editor_sequence)) { + xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor html'; + xGetElementById('use_rich_'+editor_sequence).className = ''; + xGetElementById('preview_html_'+editor_sequence).className = ''; + xGetElementById('use_html_'+editor_sequence).className = 'active'; + } + // 미리보기 + } else if(mode == 'preview' && preview_obj) { + preview_obj.style.display=''; + if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='none'; + + var fo_obj = xGetElementById("preview_form"); + if(!fo_obj) { + fo_obj = xCreateElement('form'); + fo_obj.id = "preview_form"; + fo_obj.method = "post"; + fo_obj.action = request_uri; + fo_obj.target = "editor_preview_"+editor_sequence; + xInnerHtml(fo_obj,''); + document.body.appendChild(fo_obj); + } + fo_obj.content.value = html; + fo_obj.submit(); + + xWidth(preview_obj, xWidth(iframe_obj.parentNode)); + editorMode[editor_sequence] = 'preview'; + + if(xGetElementById('xeEditor_'+editor_sequence)) { + xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor preview'; + xGetElementById('use_rich_'+editor_sequence).className = ''; + xGetElementById('preview_html_'+editor_sequence).className = 'active'; + if(xGetElementById('use_html_'+editor_sequence)) xGetElementById('use_html_'+editor_sequence).className = ''; + } + // 위지윅 모드 사용시 + } else { + preview_obj.style.display='none'; + if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='block'; + contentDocument.body.innerHTML = html; + editorMode[editor_sequence] = null; + + if(xGetElementById('xeEditor_'+editor_sequence)) { + xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor rich'; + xGetElementById('use_rich_'+editor_sequence).className = 'active'; + xGetElementById('preview_html_'+editor_sequence).className = ''; + if(xGetElementById('use_html_'+editor_sequence)) xGetElementById('use_html_'+editor_sequence).className = ''; + } + } } // Editor Info Close function closeEditorInfo(editor_sequence) { - xGetElementById('editorInfo_'+editor_sequence).style.display='none'; - var expire = new Date(); - expire.setTime(expire.getTime()+ (7000 * 24 * 3600000)); - xSetCookie('EditorInfo', '1', expire); + xGetElementById('editorInfo_'+editor_sequence).style.display='none'; + var expire = new Date(); + expire.setTime(expire.getTime()+ (7000 * 24 * 3600000)); + xSetCookie('EditorInfo', '1', expire); } @@ -528,39 +528,39 @@ function showEditorHelp(e,editor_sequence){ } function showEditorExtension(evt,editor_sequence){ - var oid = '#editorExtension_'+editor_sequence; - var e = new xEvent(evt); - if(jQuery(oid).hasClass('extension2')){ + var oid = '#editorExtension_'+editor_sequence; + var e = new xEvent(evt); + if(jQuery(oid).hasClass('extension2')){ jQuery(oid).addClass('open'); - if(e.pageX <= xWidth('editor_component_'+editor_sequence)){ + if(e.pageX <= xWidth('editor_component_'+editor_sequence)){ jQuery('#editor_component_'+editor_sequence).css('right','auto').css('left', 0); - }else{ + }else{ jQuery('#editor_component_'+editor_sequence).css('right', 0).css('left', 'auto'); - } - }else{ + } + }else{ jQuery(oid).attr('class', 'extension2'); - } + } } function showPreviewContent(editor_sequence) { - if(typeof(editor_sequence)=='undefined') return; - if(typeof(_editorFontColor[editor_sequence])=='undefined') return; - var preview_obj = editorGetPreviewArea(editor_sequence); - preview_obj.contentWindow.document.body.style.color = _editorFontColor[editor_sequence]; + if(typeof(editor_sequence)=='undefined') return; + if(typeof(_editorFontColor[editor_sequence])=='undefined') return; + var preview_obj = editorGetPreviewArea(editor_sequence); + preview_obj.contentWindow.document.body.style.color = _editorFontColor[editor_sequence]; } function setPreviewHeight(editor_sequence){ - var h = xGetElementById('editor_preview_'+editor_sequence).contentWindow.document.body.scrollHeight; - if(h < 400) h=400; - xHeight('editor_preview_'+editor_sequence,h+20); + var h = xGetElementById('editor_preview_'+editor_sequence).contentWindow.document.body.scrollHeight; + if(h < 400) h=400; + xHeight('editor_preview_'+editor_sequence,h+20); } function getAutoSavedSrl(ret_obj, response_tags, c) { - var editor_sequence = ret_obj['editor_sequence']; - var primary_key = ret_obj['key']; - var fo_obj = editorGetForm(editor_sequence); + var editor_sequence = ret_obj['editor_sequence']; + var primary_key = ret_obj['key']; + var fo_obj = editorGetForm(editor_sequence); - fo_obj[primary_key].value = ret_obj['document_srl']; - if(uploadSettingObj[editor_sequence]) editorUploadInit(uploadSettingObj[editor_sequence], true); + fo_obj[primary_key].value = ret_obj['document_srl']; + if(uploadSettingObj[editor_sequence]) editorUploadInit(uploadSettingObj[editor_sequence], true); } diff --git a/modules/editor/tpl/js/editor.min.js b/modules/editor/tpl/js/editor.min.js new file mode 100644 index 0000000000..3f9999bfa9 --- /dev/null +++ b/modules/editor/tpl/js/editor.min.js @@ -0,0 +1 @@ +function editorGetTextArea(a){return jQuery("#editor_textarea_"+a)[0]}function editorGetPreviewArea(a){return jQuery("#editor_preview_"+a)[0]}function editorGetForm(a){var b=editorGetIFrame(a);if(b){for(var c=b.parentNode;"FORM"!=c.nodeName;)c=c.parentNode;return"FORM"==c.nodeName?c:void 0}}function editorGetContent_xe(a){var b="";if("html"==editorMode[a]){var c=editorGetTextArea(a);if(!c)return"";b=c.value}else{var d=editorGetIFrame(a);if(!d)return"";b=jQuery(d.contentWindow.document.body).html().replace(/^]*)>$/i,"")}return b}function editorGetSelectedNode(a){var b,c,d=editorGetIFrame(a);return b=d.contentWindow,b.document.selection?(c=b.document.selection.createRange(),jQuery("

").html(c.htmlText)[0].firstChild):(c=b.getSelection().getRangeAt(0),jQuery("
").append(c.cloneContents())[0].firstChild)}function editorStart(a,b,c,d,e){"undefined"==typeof e&&(e="#000"),_editorFontColor[a]=e;var f=editorGetIFrame(a);if(f){jQuery(f).css("width","100%").parent().css("width","100%");var g=editorGetForm(a);if(g){if(g.setAttribute("editor_sequence",a),editorRelKeys[a]=new Array,editorRelKeys[a].primary=g[b],editorRelKeys[a].content=g[c],editorRelKeys[a].func=editorGetContent_xe,"undefined"!=typeof g._saved_doc_title){var h=g._saved_doc_title.value,i=g._saved_doc_content.value;if(h||i)if(confirm(g._saved_doc_message.value)){"undefined"!=typeof g.title&&(g.title.value=h),editorRelKeys[a].content.value=i;var j=new Array;j.editor_sequence=a,j.primary_key=b,j.mid=current_mid;var k=new Array("error","message","editor_sequence","key","title","content","document_srl");exec_xml("editor","procEditorLoadSavedDocument",j,getAutoSavedSrl,k)}else editorRemoveSavedDoc()}var l=editorRelKeys[a].content.value;l||xIE4Up||(l="
");var m=xGetElementById("for_ie_help_"+a);xIE4Up&&m&&(m.style.display="block"),editor_path=editor_path.replace(/^\.\//gi,"");var n=''+l+"";f.contentWindow.document.open("text/html","replace"),f.contentWindow.document.write(n),f.contentWindow.document.close(),editorMode[a]=null;try{f.contentWindow.document.designMode="On"}catch(o){}try{f.contentWindow.document.execCommand("undo",!1,null),f.contentWindow.document.execCommand("useCSS",!1,!0)}catch(o){}try{jQuery(f.contentWindow.document).unbind("dblclick.widget").bind("dblclick.widget",editorSearchComponent)}catch(o){}try{xIE4Up?xAddEventListener(f.contentWindow.document,"keydown",editorKeyPress):xAddEventListener(f.contentWindow.document,"keypress",editorKeyPress)}catch(o){}if("undefined"!=typeof g._saved_doc_title&&editorEnableAutoSave(g,a),"html"==xGetCookie("editor_mode")){var f=editorGetIFrame(a);xGetElementById("fileUploader_"+a)&&(xGetElementById("fileUploader_"+a).style.display="block"),textarea_obj=editorGetTextArea(a),textarea_obj.value=l,xWidth(textarea_obj,xWidth(f.parentNode)),xHeight(textarea_obj,xHeight(f.parentNode)),editorMode[a]="html",xGetElementById("xeEditor_"+a)&&(xGetElementById("xeEditor_"+a).className="xeEditor html",xGetElementById("use_rich_"+a).className="",xGetElementById("preview_html_"+a).className="",xGetElementById("use_html_"+a).className="active")}}}}function editorKeyPress(a){var b=new xEvent(a),c=b.target,d=null;if(d="BODY"==c.nodeName?c:c.firstChild.nextSibling){var e=d.getAttribute("editor_sequence");if(e){if(xIE4Up&&!b.ctrlKey&&!b.shiftKey&&13==b.keyCode&&!editorMode[e]){var f=editorGetIFrame(e);if(!f)return;var g=f.contentWindow.document,c=g.selection.createRange(),h=c.parentElement().tagName.toLowerCase();switch(h){case"li":return;default:c.pasteHTML("
")}return c.select(),a.cancelBubble=!0,a.returnValue=!1,void 0}if(115==b.keyCode&&(b.altKey||b.ctrlKey)){var f=editorGetIFrame(e);if(!f)return;var i=editorGetForm(e);if(!i)return;return editorRelKeys[e].content.value=editorGetContent(e),i.onsubmit&&i.onsubmit(),a.cancelBubble=!0,a.returnValue=!1,xPreventDefault(a),xStopPropagation(a),void 0}if(b.ctrlKey){var f=editorGetIFrame(e);if(!f)return;if(editorMode[e])return a.cancelBubble=!0,a.returnValue=!1,xPreventDefault(a),xStopPropagation(a),void 0;switch(b.keyCode){case 49:case 50:case 51:case 52:case 53:case 54:editorDo("formatblock","",b.target),xPreventDefault(a),xStopPropagation(a);break;case 55:editorDo("formatblock","

",b.target),xPreventDefault(a),xStopPropagation(a);break;case 13:if(xIE4Up){if("On"!=b.target.parentElement.document.designMode)return;var c=b.target.parentElement.document.selection.createRange();return c.pasteHTML("

"),c.select(),a.cancelBubble=!0,a.returnValue=!1,void 0}case 98:editorDo("Bold",null,b.target),xPreventDefault(a),xStopPropagation(a);break;case 105:editorDo("Italic",null,b.target),xPreventDefault(a),xStopPropagation(a);break;case 117:editorDo("Underline",null,b.target),xPreventDefault(a),xStopPropagation(a);break;case 100:editorDo("RemoveFormat",null,b.target),xPreventDefault(a),xStopPropagation(a)}}}}}function editorDo(a,b,c){var d=null;if("object"==typeof c)d=xIE4Up?c.parentElement.document:c.parentNode;else{var e=editorGetIFrame(c);d=e.contentWindow.document}var f=d.body.getAttribute("editor_sequence");editorMode[f]||("object"==typeof c?c.focus():editorFocus(c),d.execCommand(a,!1,b),"object"==typeof c?c.focus():editorFocus(c))}function editorChangeFontName(a,b){var c=a.options[a.selectedIndex].value;c&&(editorDo("FontName",c,b),a.selectedIndex=0)}function editorChangeFontSize(a,b){var c=a.options[a.selectedIndex].value;c&&(editorDo("FontSize",c,b),a.selectedIndex=0)}function editorUnDo(a,b){editorDo("undo","",b),a.selectedIndex=0}function editorReDo(a,b){editorDo("redo","",b),a.selectedIndex=0}function editorChangeHeader(a,b){var c=a.options[a.selectedIndex].value;c&&(c="<"+c+">",editorDo("formatblock",c,b),a.selectedIndex=0)}function editorChangeMode(a,b){if("html"==a||""==a){var c=new Date;c.setTime(c.getTime()+6048e8),xSetCookie("editor_mode",a,c)}var d=editorGetIFrame(b);if(d){var e=editorGetTextArea(b),f=editorGetPreviewArea(b),g=d.contentWindow.document,h=null;if("html"==editorMode[b]?(h=e.value,g.body.innerHTML=e.value):"preview"==editorMode[b]?(h=e.value,f.contentWindow.document.body.innerHTML=""):(h=g.body.innerHTML,e.value=h,h=h.replace(/
/gi,"
\n"),h=h.replace(/
\n\n/gi,"
\n")),"html"==a&&e)f.style.display="none",xGetElementById("fileUploader_"+b)&&(xGetElementById("fileUploader_"+b).style.display="block"),e.value=h,xWidth(e,xWidth(d.parentNode)),xHeight(e,xHeight(d.parentNode)),editorMode[b]="html",xGetElementById("xeEditor_"+b)&&(xGetElementById("xeEditor_"+b).className="xeEditor html",xGetElementById("use_rich_"+b).className="",xGetElementById("preview_html_"+b).className="",xGetElementById("use_html_"+b).className="active");else if("preview"==a&&f){f.style.display="",xGetElementById("fileUploader_"+b)&&(xGetElementById("fileUploader_"+b).style.display="none");var i=xGetElementById("preview_form");i||(i=xCreateElement("form"),i.id="preview_form",i.method="post",i.action=request_uri,i.target="editor_preview_"+b,xInnerHtml(i,''),document.body.appendChild(i)),i.content.value=h,i.submit(),xWidth(f,xWidth(d.parentNode)),editorMode[b]="preview",xGetElementById("xeEditor_"+b)&&(xGetElementById("xeEditor_"+b).className="xeEditor preview",xGetElementById("use_rich_"+b).className="",xGetElementById("preview_html_"+b).className="active",xGetElementById("use_html_"+b)&&(xGetElementById("use_html_"+b).className=""))}else f.style.display="none",xGetElementById("fileUploader_"+b)&&(xGetElementById("fileUploader_"+b).style.display="block"),g.body.innerHTML=h,editorMode[b]=null,xGetElementById("xeEditor_"+b)&&(xGetElementById("xeEditor_"+b).className="xeEditor rich",xGetElementById("use_rich_"+b).className="active",xGetElementById("preview_html_"+b).className="",xGetElementById("use_html_"+b)&&(xGetElementById("use_html_"+b).className=""))}}function closeEditorInfo(a){xGetElementById("editorInfo_"+a).style.display="none";var b=new Date;b.setTime(b.getTime()+6048e8),xSetCookie("EditorInfo","1",b)}function showEditorHelp(a,b){jQuery("#helpList_"+b).toggleClass("open")}function showEditorExtension(a,b){var c="#editorExtension_"+b,d=new xEvent(a);jQuery(c).hasClass("extension2")?(jQuery(c).addClass("open"),d.pageX<=xWidth("editor_component_"+b)?jQuery("#editor_component_"+b).css("right","auto").css("left",0):jQuery("#editor_component_"+b).css("right",0).css("left","auto")):jQuery(c).attr("class","extension2")}function showPreviewContent(a){if("undefined"!=typeof a&&"undefined"!=typeof _editorFontColor[a]){var b=editorGetPreviewArea(a);b.contentWindow.document.body.style.color=_editorFontColor[a]}}function setPreviewHeight(a){var b=xGetElementById("editor_preview_"+a).contentWindow.document.body.scrollHeight;400>b&&(b=400),xHeight("editor_preview_"+a,b+20)}function getAutoSavedSrl(a){var b=a.editor_sequence,c=a.key,d=editorGetForm(b);d[c].value=a.document_srl,uploadSettingObj[b]&&editorUploadInit(uploadSettingObj[b],!0)}var _editorFontColor=new Array; \ No newline at end of file diff --git a/modules/editor/tpl/js/editor_admin.js b/modules/editor/tpl/js/editor_admin.js index a3e5fd3492..c66d495a7e 100644 --- a/modules/editor/tpl/js/editor_admin.js +++ b/modules/editor/tpl/js/editor_admin.js @@ -1,17 +1,17 @@ /** * @author NAVER (developers@xpressengine.com) * @version 0.1 - * @brief 에디터 관리자 페이지용 스크립트 - **/ - + * @brief 에디터 관리자 페이지용 스크립트 + **/ + function doSetupComponent(component_name) { - popopen(request_uri.setQuery('module','editor').setQuery('act','dispEditorAdminSetupComponent').setQuery('component_name',component_name), 'SetupComponent'); + popopen(request_uri.setQuery('module','editor').setQuery('act','dispEditorAdminSetupComponent').setQuery('component_name',component_name), 'SetupComponent'); } function toggleSectionCheckBox(obj, id) { - var box_list = xGetElementsByTagName('input', xGetElementById(id)); - if(typeof(box_list.length)=='undefined') return; - for(var i in box_list) { - box_list[i].checked = obj.checked; - } + var box_list = xGetElementsByTagName('input', xGetElementById(id)); + if(typeof(box_list.length)=='undefined') return; + for(var i in box_list) { + box_list[i].checked = obj.checked; + } } diff --git a/modules/editor/tpl/js/editor_common.js b/modules/editor/tpl/js/editor_common.js index 5d79974a07..f78d677e71 100644 --- a/modules/editor/tpl/js/editor_common.js +++ b/modules/editor/tpl/js/editor_common.js @@ -7,12 +7,12 @@ var editorRelKeys = new Array(); ///< 에디터와 각 모듈과의 연동을 var editorDragObj = {isDrag:false, y:0, obj:null, id:'', det:0, source_height:0} function editorGetContent(editor_sequence) { - // 입력된 내용을 받아옴 - var content = editorRelKeys[editor_sequence]["func"](editor_sequence); + // 입력된 내용을 받아옴 + var content = editorRelKeys[editor_sequence]["func"](editor_sequence); - // 첨부파일 링크시 url을 변경 - var reg_pattern = new RegExp( request_uri.replace(/\//g,'\\/')+"(files|common|modules|layouts|widgets)", 'ig' ); - return content.replace(reg_pattern, "$1"); + // 첨부파일 링크시 url을 변경 + var reg_pattern = new RegExp( request_uri.replace(/\//g,'\\/')+"(files|common|modules|layouts|widgets)", 'ig' ); + return content.replace(reg_pattern, "$1"); } // 에디터에 포커스를 줌 @@ -32,83 +32,83 @@ function editorFocus(editor_sequence) { **/ // 자동 저장 활성화 시키는 함수 (50초마다 자동저장) function editorEnableAutoSave(fo_obj, editor_sequence, callback) { - var title = fo_obj.title.value; - var content = editorRelKeys[editor_sequence]['content'].value; + var title = fo_obj.title.value; + var content = editorRelKeys[editor_sequence]['content'].value; - editorAutoSaveObj = {"fo_obj":fo_obj, "editor_sequence":editor_sequence, "title":title, "content":content, locked:false}; + editorAutoSaveObj = {"fo_obj":fo_obj, "editor_sequence":editor_sequence, "title":title, "content":content, locked:false}; clearTimeout(editorEnableAutoSave.timer); - editorEnableAutoSave.timer = setTimeout(function(){_editorAutoSave(false, callback)}, 50000); + editorEnableAutoSave.timer = setTimeout(function(){_editorAutoSave(false, callback)}, 50000); } editorEnableAutoSave.timer = null; // ajax를 이용하여 editor.procEditorSaveDoc 호출하여 자동 저장시킴 exe는 강제 코드 function _editorAutoSave(exe, callback) { - var fo_obj = editorAutoSaveObj.fo_obj; - var editor_sequence = editorAutoSaveObj.editor_sequence; + var fo_obj = editorAutoSaveObj.fo_obj; + var editor_sequence = editorAutoSaveObj.editor_sequence; - // 50초마다 동기화를 시킴 강제 실행은 제외 - if(!exe) { + // 50초마다 동기화를 시킴 강제 실행은 제외 + if(!exe) { clearTimeout(editorEnableAutoSave.timer); editorEnableAutoSave.timer = setTimeout(function(){ _editorAutoSave(exe, callback) }, 50000); } - // 현재 자동저장중이면 중지 - if(editorAutoSaveObj.locked == true) return; + // 현재 자동저장중이면 중지 + if(editorAutoSaveObj.locked == true) return; - // 대상이 없으면 자동저장 시키는 기능 자체를 중지 - if(!fo_obj || typeof(fo_obj.title)=='undefined' || !editor_sequence) return; + // 대상이 없으면 자동저장 시키는 기능 자체를 중지 + if(!fo_obj || typeof(fo_obj.title)=='undefined' || !editor_sequence) return; - // 자동저장을 위한 준비 - var title = fo_obj.title.value; + // 자동저장을 위한 준비 + var title = fo_obj.title.value; var content = ''; try{ content = editorGetContent(editor_sequence); }catch(e){ } - // 내용이 이전에 저장하였던 것과 다르면 자동 저장을 함 또는 강제 저장 설정시 자동 저장 - if(title != editorAutoSaveObj.title || content != editorAutoSaveObj.content || exe) { - var params, oDate = new Date(); + // 내용이 이전에 저장하였던 것과 다르면 자동 저장을 함 또는 강제 저장 설정시 자동 저장 + if(title != editorAutoSaveObj.title || content != editorAutoSaveObj.content || exe) { + var params, oDate = new Date(); - params = { + params = { title : title, content : content, mid : current_mid, document_srl : editorRelKeys[editor_sequence]['primary'].value }; - editorAutoSaveObj.title = title; - editorAutoSaveObj.content = content; + editorAutoSaveObj.title = title; + editorAutoSaveObj.content = content; - // 메시지 만들어서 보여줌 - jQuery("#editor_autosaved_message_"+editor_sequence).text(oDate.getHours()+':'+oDate.getMinutes()+' '+auto_saved_msg).show(300); + // 메시지 만들어서 보여줌 + jQuery("#editor_autosaved_message_"+editor_sequence).text(oDate.getHours()+':'+oDate.getMinutes()+' '+auto_saved_msg).show(300); - // 현재 자동저장중임을 설정 - editorAutoSaveObj.locked = true; + // 현재 자동저장중임을 설정 + editorAutoSaveObj.locked = true; - // 서버 호출 (서버와 교신중이라는 메세지를 보이지 않도록 함) - show_waiting_message = false; - exec_xml( + // 서버 호출 (서버와 교신중이라는 메세지를 보이지 않도록 함) + show_waiting_message = false; + exec_xml( "editor", "procEditorSaveDoc", params, function() { var arg = jQuery.extend({}, params, {auto_saved_msg:auto_saved_msg}); - + editorAutoSaveObj.locked = false; if(jQuery.isFunction(callback)) callback(arg); } ); - show_waiting_message = true; - } + show_waiting_message = true; + } } // 자동저장된 모든 메세지를 삭제하는 루틴 function editorRemoveSavedDoc() { - var param = new Array(); - param['mid'] = current_mid; - exec_xml("editor","procEditorRemoveSavedDoc", param); + var param = new Array(); + param['mid'] = current_mid; + exec_xml("editor","procEditorRemoveSavedDoc", param); } /** @@ -117,26 +117,26 @@ function editorRemoveSavedDoc() { // editor_sequence값에 해당하는 iframe의 object를 return function editorGetIFrame(editor_sequence) { - if(editorRelKeys != undefined && editorRelKeys[editor_sequence] != undefined && editorRelKeys[editor_sequence]['editor'] != undefined) + if(editorRelKeys != undefined && editorRelKeys[editor_sequence] != undefined && editorRelKeys[editor_sequence]['editor'] != undefined) return editorRelKeys[editor_sequence]['editor'].getFrame(editor_sequence); - return document.getElementById( 'editor_iframe_'+ editor_sequence ); + return document.getElementById( 'editor_iframe_'+ editor_sequence ); } function editorGetTextarea(editor_sequence) { - return document.getElementById( 'editor_textarea_'+ editor_sequence ); + return document.getElementById( 'editor_textarea_'+ editor_sequence ); } // Editor Option Button function eOptionOver(obj) { - obj.style.marginTop='-21px'; - obj.style.zIndex='99'; + obj.style.marginTop='-21px'; + obj.style.zIndex='99'; } function eOptionOut(obj) { - obj.style.marginTop='0'; - obj.style.zIndex='1'; + obj.style.marginTop='0'; + obj.style.zIndex='1'; } function eOptionClick(obj) { - obj.style.marginTop='-42px'; - obj.style.zIndex='99'; + obj.style.marginTop='-42px'; + obj.style.zIndex='99'; } /** @@ -146,201 +146,201 @@ function eOptionClick(obj) { // 에디터 상단의 컴포넌트 버튼 클릭시 action 처리 (마우스다운 이벤트 발생시마다 요청이 됨) var editorPrevSrl = null; function editorEventCheck(e) { - editorPrevNode = null; - - // 이벤트가 발생한 object의 ID를 구함 - var target_id = e.target.id; - if(!target_id) return; - - // editor_sequence와 component name을 구함 (id가 포맷과 다르면 return) - var info = target_id.split('_'); - if(info[0]!="component") return; - var editor_sequence = info[1]; - var component_name = target_id.replace(/^component_[0-9]+_/,''); - - if(!editor_sequence || !component_name) return; - if(editorMode[editor_sequence]=='html') return; - - switch(component_name) { - - // 기본 기능에 대한 동작 (바로 실행) - case 'Bold' : - case 'Italic' : - case 'Underline' : - case 'StrikeThrough' : - case 'undo' : - case 'redo' : - case 'JustifyLeft' : - case 'JustifyCenter' : - case 'JustifyRight' : - case 'JustifyFull' : - case 'Indent' : - case 'Outdent' : - case 'InsertOrderedList' : - case 'InsertUnorderedList' : - case 'SaveAs' : - case 'Print' : - case 'Copy' : - case 'Cut' : - case 'Paste' : - case 'RemoveFormat' : - case 'Subscript' : - case 'Superscript' : - editorDo(component_name, '', editor_sequence); - break; - - // 추가 컴포넌트의 경우 서버에 요청을 시도 - default : + editorPrevNode = null; + + // 이벤트가 발생한 object의 ID를 구함 + var target_id = e.target.id; + if(!target_id) return; + + // editor_sequence와 component name을 구함 (id가 포맷과 다르면 return) + var info = target_id.split('_'); + if(info[0]!="component") return; + var editor_sequence = info[1]; + var component_name = target_id.replace(/^component_[0-9]+_/,''); + + if(!editor_sequence || !component_name) return; + if(editorMode[editor_sequence]=='html') return; + + switch(component_name) { + + // 기본 기능에 대한 동작 (바로 실행) + case 'Bold' : + case 'Italic' : + case 'Underline' : + case 'StrikeThrough' : + case 'undo' : + case 'redo' : + case 'JustifyLeft' : + case 'JustifyCenter' : + case 'JustifyRight' : + case 'JustifyFull' : + case 'Indent' : + case 'Outdent' : + case 'InsertOrderedList' : + case 'InsertUnorderedList' : + case 'SaveAs' : + case 'Print' : + case 'Copy' : + case 'Cut' : + case 'Paste' : + case 'RemoveFormat' : + case 'Subscript' : + case 'Superscript' : + editorDo(component_name, '', editor_sequence); + break; + + // 추가 컴포넌트의 경우 서버에 요청을 시도 + default : openComponent(component_name, editor_sequence); return false; - } + } - return; + return; } jQuery(document).click(editorEventCheck); // 컴포넌트 팝업 열기 function openComponent(component_name, editor_sequence, manual_url) { - editorPrevSrl = editor_sequence; - if(editorMode[editor_sequence]=='html') return; + editorPrevSrl = editor_sequence; + if(editorMode[editor_sequence]=='html') return; - var popup_url = request_uri+"?module=editor&act=dispEditorPopup&editor_sequence="+editor_sequence+"&component="+component_name; - if(typeof(manual_url)!="undefined" && manual_url) popup_url += "&manual_url="+escape(manual_url); + var popup_url = request_uri+"?module=editor&act=dispEditorPopup&editor_sequence="+editor_sequence+"&component="+component_name; + if(typeof(manual_url)!="undefined" && manual_url) popup_url += "&manual_url="+escape(manual_url); - popopen(popup_url, 'editorComponent'); + popopen(popup_url, 'editorComponent'); } // 더블클릭 이벤트 발생시에 본문내에 포함된 컴포넌트를 찾는 함수 var editorPrevNode = null; function editorSearchComponent(evt) { - var e = new xEvent(evt); - - editorPrevNode = null; - var obj = e.target; - - // 위젯인지 일단 체크 - if(obj.getAttribute("widget")) { - // editor_sequence을 찾음 - var tobj = obj; - while(tobj && tobj.nodeName != "BODY") { - tobj = xParent(tobj); - } - if(!tobj || tobj.nodeName != "BODY" || !tobj.getAttribute("editor_sequence")) { - editorPrevNode = null; - return; - } - var editor_sequence = tobj.getAttribute("editor_sequence"); - var widget = obj.getAttribute("widget"); - editorPrevNode = obj; - - if(editorMode[editor_sequence]=='html') return; - popopen(request_uri+"?module=widget&act=dispWidgetGenerateCodeInPage&selected_widget="+widget+"&module_srl="+editor_sequence,'GenerateCodeInPage'); - return; - } - - // 선택되어진 object부터 상단으로 이동하면서 editor_component attribute가 있는지 검사 - if(!obj.getAttribute("editor_component")) { - while(obj && !obj.getAttribute("editor_component")) { - if(obj.parentElement) obj = obj.parentElement; - else obj = xParent(obj); - } - } - - if(!obj) obj = e.target; - - var editor_component = obj.getAttribute("editor_component"); - - // editor_component를 찾지 못했을 경우에 이미지/텍스트/링크의 경우 기본 컴포넌트와 연결 - if(!editor_component) { - // 이미지일 경우 - if(obj.nodeName == "IMG" && !obj.getAttribute("widget")) { - editor_component = "image_link"; - editorPrevNode = obj; - } - } else { - editorPrevNode = obj; - } - - // 아무런 editor_component가 없다면 return - if(!editor_component) { - editorPrevNode = null; - return; - } - - // editor_sequence을 찾음 - var tobj = obj; - while(tobj && tobj.nodeName != "BODY") { - tobj = xParent(tobj); - } - if(!tobj || tobj.nodeName != "BODY" || !tobj.getAttribute("editor_sequence")) { - editorPrevNode = null; - return; - } - var editor_sequence = tobj.getAttribute("editor_sequence"); - - // 해당 컴포넌트를 찾아서 실행 - openComponent(editor_component, editor_sequence); + var e = new xEvent(evt); + + editorPrevNode = null; + var obj = e.target; + + // 위젯인지 일단 체크 + if(obj.getAttribute("widget")) { + // editor_sequence을 찾음 + var tobj = obj; + while(tobj && tobj.nodeName != "BODY") { + tobj = xParent(tobj); + } + if(!tobj || tobj.nodeName != "BODY" || !tobj.getAttribute("editor_sequence")) { + editorPrevNode = null; + return; + } + var editor_sequence = tobj.getAttribute("editor_sequence"); + var widget = obj.getAttribute("widget"); + editorPrevNode = obj; + + if(editorMode[editor_sequence]=='html') return; + popopen(request_uri+"?module=widget&act=dispWidgetGenerateCodeInPage&selected_widget="+widget+"&module_srl="+editor_sequence,'GenerateCodeInPage'); + return; + } + + // 선택되어진 object부터 상단으로 이동하면서 editor_component attribute가 있는지 검사 + if(!obj.getAttribute("editor_component")) { + while(obj && !obj.getAttribute("editor_component")) { + if(obj.parentElement) obj = obj.parentElement; + else obj = xParent(obj); + } + } + + if(!obj) obj = e.target; + + var editor_component = obj.getAttribute("editor_component"); + + // editor_component를 찾지 못했을 경우에 이미지/텍스트/링크의 경우 기본 컴포넌트와 연결 + if(!editor_component) { + // 이미지일 경우 + if(obj.nodeName == "IMG" && !obj.getAttribute("widget")) { + editor_component = "image_link"; + editorPrevNode = obj; + } + } else { + editorPrevNode = obj; + } + + // 아무런 editor_component가 없다면 return + if(!editor_component) { + editorPrevNode = null; + return; + } + + // editor_sequence을 찾음 + var tobj = obj; + while(tobj && tobj.nodeName != "BODY") { + tobj = xParent(tobj); + } + if(!tobj || tobj.nodeName != "BODY" || !tobj.getAttribute("editor_sequence")) { + editorPrevNode = null; + return; + } + var editor_sequence = tobj.getAttribute("editor_sequence"); + + // 해당 컴포넌트를 찾아서 실행 + openComponent(editor_component, editor_sequence); } // 에디터 내의 선택된 부분의 html코드를 변경 function editorReplaceHTML(iframe_obj, html) { - // 이미지 경로 재지정 (rewrite mod) - var srcPathRegx = /src=("|\'){1}(\.\/)?(files\/attach|files\/cache|files\/faceOff|files\/member_extra_info|modules|common|widgets|widgetstyle|layouts|addons)\/([^"\']+)\.(jpg|jpeg|png|gif)("|\'){1}/g; - html = html.replace(srcPathRegx, 'src="'+request_uri+'$3/$4.$5"'); + // 이미지 경로 재지정 (rewrite mod) + var srcPathRegx = /src=("|\'){1}(\.\/)?(files\/attach|files\/cache|files\/faceOff|files\/member_extra_info|modules|common|widgets|widgetstyle|layouts|addons)\/([^"\']+)\.(jpg|jpeg|png|gif)("|\'){1}/g; + html = html.replace(srcPathRegx, 'src="'+request_uri+'$3/$4.$5"'); - // href 경로 재지정 (rewrite mod) - var hrefPathRegx = /href=("|\'){1}(\.\/)?\?([^"\']+)("|\'){1}/g; - html = html.replace(hrefPathRegx, 'href="'+request_uri+'?$3"'); + // href 경로 재지정 (rewrite mod) + var hrefPathRegx = /href=("|\'){1}(\.\/)?\?([^"\']+)("|\'){1}/g; + html = html.replace(hrefPathRegx, 'href="'+request_uri+'?$3"'); - // 에디터가 활성화 되어 있는지 확인 후 비활성화시 활성화 - var editor_sequence = iframe_obj.editor_sequence || iframe_obj.contentWindow.document.body.getAttribute("editor_sequence"); + // 에디터가 활성화 되어 있는지 확인 후 비활성화시 활성화 + var editor_sequence = iframe_obj.editor_sequence || iframe_obj.contentWindow.document.body.getAttribute("editor_sequence"); - // iframe 에디터에 포커스를 둠 + // iframe 에디터에 포커스를 둠 try { iframe_obj.contentWindow.focus(); }catch(e){}; - + if (jQuery.isFunction(iframe_obj.replaceHTML)) { iframe_obj.replaceHTML(html); } else if(xIE4Up) { - var range = iframe_obj.contentWindow.document.selection.createRange(); - if(range.pasteHTML) { - range.pasteHTML(html); - } else if(editorPrevNode) { - editorPrevNode.outerHTML = html; - } - } else { - try { - if(iframe_obj.contentWindow.getSelection().focusNode.tagName == "HTML") { - var range = iframe_obj.contentDocument.createRange(); - range.setStart(iframe_obj.contentDocument.body,0); - range.setEnd(iframe_obj.contentDocument.body,0); - range.insertNode(range.createContextualFragment(html)); - } else { - var range = iframe_obj.contentWindow.getSelection().getRangeAt(0); - range.deleteContents(); - range.insertNode(range.createContextualFragment(html)); - } - } catch(e) { - xInnerHtml(iframe_obj.contentWindow.document.body, html+xInnerHtml(iframe_obj.contentWindow.document.body)); - } - } + var range = iframe_obj.contentWindow.document.selection.createRange(); + if(range.pasteHTML) { + range.pasteHTML(html); + } else if(editorPrevNode) { + editorPrevNode.outerHTML = html; + } + } else { + try { + if(iframe_obj.contentWindow.getSelection().focusNode.tagName == "HTML") { + var range = iframe_obj.contentDocument.createRange(); + range.setStart(iframe_obj.contentDocument.body,0); + range.setEnd(iframe_obj.contentDocument.body,0); + range.insertNode(range.createContextualFragment(html)); + } else { + var range = iframe_obj.contentWindow.getSelection().getRangeAt(0); + range.deleteContents(); + range.insertNode(range.createContextualFragment(html)); + } + } catch(e) { + xInnerHtml(iframe_obj.contentWindow.document.body, html+xInnerHtml(iframe_obj.contentWindow.document.body)); + } + } } // 에디터 내의 선택된 부분의 html 코드를 return function editorGetSelectedHtml(editor_sequence) { - var iframe_obj = editorGetIFrame(editor_sequence); + var iframe_obj = editorGetIFrame(editor_sequence); if (jQuery.isFunction(iframe_obj.getSelectedHTML)) { return iframe_obj.getSelectedHTML(); - } else if(xIE4Up) { - var range = iframe_obj.contentWindow.document.selection.createRange(); - var html = range.htmlText; - return html; - } else { - var range = iframe_obj.contentWindow.getSelection().getRangeAt(0); - var dummy = xCreateElement('div'); - dummy.appendChild(range.cloneContents()); - var html = xInnerHtml(dummy); - return html; - } + } else if(xIE4Up) { + var range = iframe_obj.contentWindow.document.selection.createRange(); + var html = range.htmlText; + return html; + } else { + var range = iframe_obj.contentWindow.getSelection().getRangeAt(0); + var dummy = xCreateElement('div'); + dummy.appendChild(range.cloneContents()); + var html = xInnerHtml(dummy); + return html; + } } @@ -355,19 +355,19 @@ var eventObj = null; // event target object var targetObj = null; // elements to be resized function editorDragStart(e) { - var obj = $(e.target); + var obj = $(e.target); var id = obj.attr('id'); - if(!id || !/^editor_drag_bar_(.+)$/.test(id)) return; + if(!id || !/^editor_drag_bar_(.+)$/.test(id)) return; - dragging = true; - startY = e.pageY; - eventObj = obj; + dragging = true; + startY = e.pageY; + eventObj = obj; editorId = RegExp.$1; - var iframe_obj = $( editorGetIFrame(editorId) ); - var textarea_obj = $( editorGetTextarea(editorId) ); - var preview_obj = $('#editor_preview_'+editorId); + var iframe_obj = $( editorGetIFrame(editorId) ); + var textarea_obj = $( editorGetTextarea(editorId) ); + var preview_obj = $('#editor_preview_'+editorId); var visible_obj = iframe_obj.is(':visible')?iframe_obj:textarea_obj; startH = parseInt(visible_obj.css('height')); @@ -391,12 +391,12 @@ function editorDragStart(e) { } function editorDragMove(e) { - if(!dragging) { - $('#xeEditorMask_' + editorId).hide(); - return; - } + if(!dragging) { + $('#xeEditorMask_' + editorId).hide(); + return; + } - var diff = e.pageY - startY; + var diff = e.pageY - startY; targetObj.css('height', (startH + diff)+'px'); return false; @@ -404,7 +404,7 @@ function editorDragMove(e) { function editorDragStop(e) { $('#xeEditorMask_' + editorId).hide(); - if(!dragging) return; + if(!dragging) return; $(document).unbind('mousemove', editorDragMove); @@ -414,9 +414,9 @@ function editorDragStop(e) { fixAdminLayoutFooter( diff ); } - dragging = false; - startY = 0; - eventObj = null; + dragging = false; + startY = 0; + eventObj = null; targetObj = null; editorId = ''; diff --git a/modules/editor/tpl/js/editor_module_config.js b/modules/editor/tpl/js/editor_module_config.js index 343887d6c3..b02689d27f 100644 --- a/modules/editor/tpl/js/editor_module_config.js +++ b/modules/editor/tpl/js/editor_module_config.js @@ -1,13 +1,13 @@ function getEditorSkinColorList(skin_name,selected_colorset,type,testid){ - if(skin_name.length>0){ - type = type || 'document'; - var response_tags = new Array('error','message','colorset'); - exec_xml('editor','dispEditorSkinColorset',{skin:skin_name},resultGetEditorSkinColorList,response_tags,{'selected_colorset':selected_colorset,'type':type,'testid':testid}); - } + if(skin_name.length>0){ + type = type || 'document'; + var response_tags = new Array('error','message','colorset'); + exec_xml('editor','dispEditorSkinColorset',{skin:skin_name},resultGetEditorSkinColorList,response_tags,{'selected_colorset':selected_colorset,'type':type,'testid':testid}); + } } function resultGetEditorSkinColorList(ret_obj,response_tags, params) { - var selectbox = null; + var selectbox = null; jQuery(function($){ if(params.testid){ selectbox = $("#"+params.testid).next('label').children('select'); @@ -19,21 +19,21 @@ function resultGetEditorSkinColorList(ret_obj,response_tags, params) { if(params.type == 'document'){ $("select[name=sel_editor_colorset]").hide() .removeAttr('name'); - selectbox.attr('name','sel_editor_colorset'); + selectbox.attr('name','sel_editor_colorset'); }else{ $("select[name=sel_comment_editor_colorset]").hide() - .removeAttr('name'); - selectbox.attr('name','sel_comment_editor_colorset'); - } + .removeAttr('name'); + selectbox.attr('name','sel_comment_editor_colorset'); + } - if(ret_obj['error'] == 0 && ret_obj.colorset){ + if(ret_obj['error'] == 0 && ret_obj.colorset){ var it = new Array(); - var items = ret_obj['colorset']['item']; + var items = ret_obj['colorset']['item']; if(typeof(items[0]) == 'undefined'){ it[0] = items; }else{ it = items; - } + } var selectAttr = ""; for(var i=0;i'+it[i].title+''); @@ -42,7 +42,7 @@ function resultGetEditorSkinColorList(ret_obj,response_tags, params) { $options.attr('selected', 'selected'); } - selectbox.append($options); + selectbox.append($options); } selectbox.show(); }else{ diff --git a/modules/editor/tpl/js/swfupload.js b/modules/editor/tpl/js/swfupload.js index e65b19cb29..15e15fd66d 100644 --- a/modules/editor/tpl/js/swfupload.js +++ b/modules/editor/tpl/js/swfupload.js @@ -97,18 +97,18 @@ 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; - + }; @@ -122,7 +122,7 @@ 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); @@ -132,7 +132,7 @@ SWFUpload.prototype.initSettings = function () { 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"); @@ -143,7 +143,7 @@ SWFUpload.prototype.initSettings = function () { // 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); @@ -158,11 +158,11 @@ SWFUpload.prototype.initSettings = function () { 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); @@ -170,31 +170,31 @@ SWFUpload.prototype.initSettings = function () { 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; }; @@ -223,7 +223,7 @@ SWFUpload.prototype.loadFlash = function () { 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 @@ -245,7 +245,7 @@ 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), @@ -284,14 +284,14 @@ SWFUpload.prototype.getMovieElement = function () { 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 postParams = this.settings.post_params; var paramStringPairs = []; if (typeof(postParams) === "object") { @@ -313,12 +313,12 @@ 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) { @@ -334,7 +334,7 @@ SWFUpload.prototype.destroy = function () { movieElement.parentNode.removeChild(movieElement); } catch (ex) {} } - + // Remove IE form fix reference window[this.movieName] = null; @@ -347,8 +347,8 @@ SWFUpload.prototype.destroy = function () { this.customSettings = null; this.eventQueue = null; this.movieName = null; - - + + return true; } catch (ex2) { return false; @@ -417,20 +417,20 @@ SWFUpload.prototype.displayDebugInfo = function () { */ // 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); + 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]; + if (this.settings[name] != undefined) { + return this.settings[name]; } - return ""; + return ""; }; @@ -440,7 +440,7 @@ SWFUpload.prototype.getSetting = function (name) { // bugs in the ExternalInterface library. SWFUpload.prototype.callFlash = function (functionName, argumentArray) { argumentArray = argumentArray || []; - + var movieElement = this.getMovieElement(); var returnValue, returnString; @@ -451,7 +451,7 @@ SWFUpload.prototype.callFlash = function (functionName, argumentArray) { } catch (ex) { throw "Call to " + functionName + " failed"; } - + // Unescape file post param values if (returnValue != undefined && typeof returnValue.post === "object") { returnValue = this.unescapeFilePostParams(returnValue); @@ -485,7 +485,7 @@ SWFUpload.prototype.selectFiles = function () { // Public: startUpload starts uploading the first file in the queue unless -// the optional parameter 'fileID' specifies the ID +// the optional parameter 'fileID' specifies the ID SWFUpload.prototype.startUpload = function (fileID) { this.callFlash("StartUpload", [fileID]); }; @@ -519,7 +519,7 @@ SWFUpload.prototype.getStats = function () { return this.callFlash("GetStats"); }; -// Public: setStats changes the SWFUpload statistics. You shouldn't need to +// 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. @@ -622,7 +622,7 @@ 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]); }; @@ -644,7 +644,7 @@ SWFUpload.prototype.setButtonImageURL = function (buttonImageURL) { if (buttonImageURL == undefined) { buttonImageURL = ""; } - + this.settings.button_image_url = buttonImageURL; this.callFlash("SetButtonImageURL", [buttonImageURL]); }; @@ -653,13 +653,13 @@ SWFUpload.prototype.setButtonImageURL = function (buttonImageURL) { 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 @@ -700,9 +700,9 @@ SWFUpload.prototype.setButtonCursor = function (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 @@ -711,25 +711,25 @@ SWFUpload.prototype.setButtonCursor = function (cursor) { 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"; } @@ -793,7 +793,7 @@ SWFUpload.prototype.flashReady = function () { } this.cleanUp(movieElement); - + this.queueEvent("swfupload_loaded_handler"); }; @@ -814,7 +814,7 @@ SWFUpload.prototype.cleanUp = function (movieElement) { } } } catch (ex1) { - + } // Fix Flashes own cleanup code so if the SWFMovie was removed from the page @@ -825,7 +825,7 @@ SWFUpload.prototype.cleanUp = function (movieElement) { instance[name] = null; } } catch (flashEx) { - + } }; @@ -876,9 +876,9 @@ SWFUpload.prototype.returnUploadStart = function (file) { if (returnValue === undefined) { returnValue = true; } - + returnValue = !!returnValue; - + this.callFlash("ReturnUploadStart", [returnValue]); }; @@ -918,12 +918,12 @@ SWFUpload.prototype.debug = function (message) { 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. diff --git a/modules/editor/tpl/js/swfupload.min.js b/modules/editor/tpl/js/swfupload.min.js new file mode 100644 index 0000000000..42a0f13cf5 --- /dev/null +++ b/modules/editor/tpl/js/swfupload.min.js @@ -0,0 +1 @@ +var SWFUpload;void 0==SWFUpload&&(SWFUpload=function(a){this.initSWFUpload(a)}),SWFUpload.prototype.initSWFUpload=function(a){try{this.customSettings={},this.settings=a,this.eventQueue=[],this.movieName="SWFUpload_"+SWFUpload.movieCount++,this.movieElement=null,SWFUpload.instances[this.movieName]=this,this.initSettings(),this.loadFlash(),this.displayDebugInfo()}catch(b){throw delete SWFUpload.instances[this.movieName],b}},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"},SWFUpload.completeURL=function(a){if("string"!=typeof a||a.match(/^https?:\/\//i)||a.match(/^\//))return a;var b=(window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:""),window.location.pathname.lastIndexOf("/"));return path=0>=b?"/":window.location.pathname.substr(0,b)+"/",path+a},SWFUpload.prototype.initSettings=function(){this.ensureDefault=function(a,b){this.settings[a]=void 0==this.settings[a]?b:this.settings[a]},this.ensureDefault("upload_url",""),this.ensureDefault("preserve_relative_urls",!1),this.ensureDefault("file_post_name","Filedata"),this.ensureDefault("post_params",{}),this.ensureDefault("use_query_string",!1),this.ensureDefault("requeue_on_error",!1),this.ensureDefault("http_success",[]),this.ensureDefault("assume_success_timeout",0),this.ensureDefault("file_types","*.*"),this.ensureDefault("file_types_description","All Files"),this.ensureDefault("file_size_limit",0),this.ensureDefault("file_upload_limit",0),this.ensureDefault("file_queue_limit",0),this.ensureDefault("flash_url","swfupload.swf"),this.ensureDefault("prevent_swf_caching",!0),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",!1),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),this.ensureDefault("debug",!1),this.settings.debug_enabled=this.settings.debug,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",{}),this.customSettings=this.settings.custom_settings,this.settings.prevent_swf_caching&&(this.settings.flash_url=this.settings.flash_url+(this.settings.flash_url.indexOf("?")<0?"?":"&")+"preventswfcaching="+(new Date).getTime()),this.settings.preserve_relative_urls||(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},SWFUpload.prototype.loadFlash=function(){var a,b;if(null!==document.getElementById(this.movieName))throw"ID "+this.movieName+" is already in use. The Flash Object could not be added";if(a=document.getElementById(this.settings.button_placeholder_id)||this.settings.button_placeholder,void 0==a)throw"Could not find the placeholder element: "+this.settings.button_placeholder_id;b=document.createElement("div"),b.innerHTML=this.getFlashHTML(),a.parentNode.replaceChild(b.firstChild,a),void 0==window[this.movieName]&&(window[this.movieName]=this.getMovieElement())},SWFUpload.prototype.getFlashHTML=function(){return['','','','','','','',""].join("")},SWFUpload.prototype.getFlashVars=function(){var a=this.buildParamString(),b=this.settings.http_success.join(",");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(b),"&assumeSuccessTimeout=",encodeURIComponent(this.settings.assume_success_timeout),"&params=",encodeURIComponent(a),"&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("")},SWFUpload.prototype.getMovieElement=function(){if(void 0==this.movieElement&&(this.movieElement=document.getElementById(this.movieName)),null===this.movieElement)throw"Could not find Flash element";return this.movieElement},SWFUpload.prototype.buildParamString=function(){var a=this.settings.post_params,b=[];if("object"==typeof a)for(var c in a)a.hasOwnProperty(c)&&b.push(encodeURIComponent(c.toString())+"="+encodeURIComponent(a[c].toString()));return b.join("&")},SWFUpload.prototype.destroy=function(){try{this.cancelUpload(null,!1);var a=null;if(a=this.getMovieElement(),a&&"unknown"==typeof a.CallFunction){for(var b in a)try{"function"==typeof a[b]&&(a[b]=null)}catch(c){}try{a.parentNode.removeChild(a)}catch(d){}}return window[this.movieName]=null,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,!0}catch(e){return!1}},SWFUpload.prototype.displayDebugInfo=function(){this.debug(["---SWFUpload Instance Info---\n","Version: ",SWFUpload.version,"\n","Movie Name: ",this.movieName,"\n","Settings:\n"," ","upload_url: ",this.settings.upload_url,"\n"," ","flash_url: ",this.settings.flash_url,"\n"," ","use_query_string: ",this.settings.use_query_string.toString(),"\n"," ","requeue_on_error: ",this.settings.requeue_on_error.toString(),"\n"," ","http_success: ",this.settings.http_success.join(", "),"\n"," ","assume_success_timeout: ",this.settings.assume_success_timeout,"\n"," ","file_post_name: ",this.settings.file_post_name,"\n"," ","post_params: ",this.settings.post_params.toString(),"\n"," ","file_types: ",this.settings.file_types,"\n"," ","file_types_description: ",this.settings.file_types_description,"\n"," ","file_size_limit: ",this.settings.file_size_limit,"\n"," ","file_upload_limit: ",this.settings.file_upload_limit,"\n"," ","file_queue_limit: ",this.settings.file_queue_limit,"\n"," ","debug: ",this.settings.debug.toString(),"\n"," ","prevent_swf_caching: ",this.settings.prevent_swf_caching.toString(),"\n"," ","button_placeholder_id: ",this.settings.button_placeholder_id.toString(),"\n"," ","button_placeholder: ",this.settings.button_placeholder?"Set":"Not Set","\n"," ","button_image_url: ",this.settings.button_image_url.toString(),"\n"," ","button_width: ",this.settings.button_width.toString(),"\n"," ","button_height: ",this.settings.button_height.toString(),"\n"," ","button_text: ",this.settings.button_text.toString(),"\n"," ","button_text_style: ",this.settings.button_text_style.toString(),"\n"," ","button_text_top_padding: ",this.settings.button_text_top_padding.toString(),"\n"," ","button_text_left_padding: ",this.settings.button_text_left_padding.toString(),"\n"," ","button_action: ",this.settings.button_action.toString(),"\n"," ","button_disabled: ",this.settings.button_disabled.toString(),"\n"," ","custom_settings: ",this.settings.custom_settings.toString(),"\n","Event Handlers:\n"," ","swfupload_loaded_handler assigned: ",("function"==typeof this.settings.swfupload_loaded_handler).toString(),"\n"," ","file_dialog_start_handler assigned: ",("function"==typeof this.settings.file_dialog_start_handler).toString(),"\n"," ","file_queued_handler assigned: ",("function"==typeof this.settings.file_queued_handler).toString(),"\n"," ","file_queue_error_handler assigned: ",("function"==typeof this.settings.file_queue_error_handler).toString(),"\n"," ","upload_start_handler assigned: ",("function"==typeof this.settings.upload_start_handler).toString(),"\n"," ","upload_progress_handler assigned: ",("function"==typeof this.settings.upload_progress_handler).toString(),"\n"," ","upload_error_handler assigned: ",("function"==typeof this.settings.upload_error_handler).toString(),"\n"," ","upload_success_handler assigned: ",("function"==typeof this.settings.upload_success_handler).toString(),"\n"," ","upload_complete_handler assigned: ",("function"==typeof this.settings.upload_complete_handler).toString(),"\n"," ","debug_handler assigned: ",("function"==typeof this.settings.debug_handler).toString(),"\n"].join(""))},SWFUpload.prototype.addSetting=function(a,b,c){return this.settings[a]=void 0==b?c:b},SWFUpload.prototype.getSetting=function(a){return void 0!=this.settings[a]?this.settings[a]:""},SWFUpload.prototype.callFlash=function(functionName,argumentArray){argumentArray=argumentArray||[];var movieElement=this.getMovieElement(),returnValue,returnString;try{returnString=movieElement.CallFunction(''+__flash__argumentsToXML(argumentArray,0)+""),returnValue=eval(returnString)}catch(ex){throw"Call to "+functionName+" failed"}return void 0!=returnValue&&"object"==typeof returnValue.post&&(returnValue=this.unescapeFilePostParams(returnValue)),returnValue},SWFUpload.prototype.selectFile=function(){this.callFlash("SelectFile")},SWFUpload.prototype.selectFiles=function(){this.callFlash("SelectFiles")},SWFUpload.prototype.startUpload=function(a){this.callFlash("StartUpload",[a])},SWFUpload.prototype.cancelUpload=function(a,b){b!==!1&&(b=!0),this.callFlash("CancelUpload",[a,b])},SWFUpload.prototype.stopUpload=function(){this.callFlash("StopUpload")},SWFUpload.prototype.getStats=function(){return this.callFlash("GetStats")},SWFUpload.prototype.setStats=function(a){this.callFlash("SetStats",[a])},SWFUpload.prototype.getFile=function(a){return"number"==typeof a?this.callFlash("GetFileByIndex",[a]):this.callFlash("GetFile",[a])},SWFUpload.prototype.addFileParam=function(a,b,c){return this.callFlash("AddFileParam",[a,b,c])},SWFUpload.prototype.removeFileParam=function(a,b){this.callFlash("RemoveFileParam",[a,b])},SWFUpload.prototype.setUploadURL=function(a){this.settings.upload_url=a.toString(),this.callFlash("SetUploadURL",[a])},SWFUpload.prototype.setPostParams=function(a){this.settings.post_params=a,this.callFlash("SetPostParams",[a])},SWFUpload.prototype.addPostParam=function(a,b){this.settings.post_params[a]=b,this.callFlash("SetPostParams",[this.settings.post_params])},SWFUpload.prototype.removePostParam=function(a){delete this.settings.post_params[a],this.callFlash("SetPostParams",[this.settings.post_params])},SWFUpload.prototype.setFileTypes=function(a,b){this.settings.file_types=a,this.settings.file_types_description=b,this.callFlash("SetFileTypes",[a,b])},SWFUpload.prototype.setFileSizeLimit=function(a){this.settings.file_size_limit=a,this.callFlash("SetFileSizeLimit",[a])},SWFUpload.prototype.setFileUploadLimit=function(a){this.settings.file_upload_limit=a,this.callFlash("SetFileUploadLimit",[a])},SWFUpload.prototype.setFileQueueLimit=function(a){this.settings.file_queue_limit=a,this.callFlash("SetFileQueueLimit",[a])},SWFUpload.prototype.setFilePostName=function(a){this.settings.file_post_name=a,this.callFlash("SetFilePostName",[a])},SWFUpload.prototype.setUseQueryString=function(a){this.settings.use_query_string=a,this.callFlash("SetUseQueryString",[a])},SWFUpload.prototype.setRequeueOnError=function(a){this.settings.requeue_on_error=a,this.callFlash("SetRequeueOnError",[a])},SWFUpload.prototype.setHTTPSuccess=function(a){"string"==typeof a&&(a=a.replace(" ","").split(",")),this.settings.http_success=a,this.callFlash("SetHTTPSuccess",[a])},SWFUpload.prototype.setAssumeSuccessTimeout=function(a){this.settings.assume_success_timeout=a,this.callFlash("SetAssumeSuccessTimeout",[a])},SWFUpload.prototype.setDebugEnabled=function(a){this.settings.debug_enabled=a,this.callFlash("SetDebugEnabled",[a])},SWFUpload.prototype.setButtonImageURL=function(a){void 0==a&&(a=""),this.settings.button_image_url=a,this.callFlash("SetButtonImageURL",[a])},SWFUpload.prototype.setButtonDimensions=function(a,b){this.settings.button_width=a,this.settings.button_height=b;var c=this.getMovieElement();void 0!=c&&(c.style.width=a+"px",c.style.height=b+"px"),this.callFlash("SetButtonDimensions",[a,b])},SWFUpload.prototype.setButtonText=function(a){this.settings.button_text=a,this.callFlash("SetButtonText",[a])},SWFUpload.prototype.setButtonTextPadding=function(a,b){this.settings.button_text_top_padding=b,this.settings.button_text_left_padding=a,this.callFlash("SetButtonTextPadding",[a,b])},SWFUpload.prototype.setButtonTextStyle=function(a){this.settings.button_text_style=a,this.callFlash("SetButtonTextStyle",[a])},SWFUpload.prototype.setButtonDisabled=function(a){this.settings.button_disabled=a,this.callFlash("SetButtonDisabled",[a])},SWFUpload.prototype.setButtonAction=function(a){this.settings.button_action=a,this.callFlash("SetButtonAction",[a])},SWFUpload.prototype.setButtonCursor=function(a){this.settings.button_cursor=a,this.callFlash("SetButtonCursor",[a])},SWFUpload.prototype.queueEvent=function(a,b){void 0==b?b=[]:b instanceof Array||(b=[b]);var c=this;if("function"==typeof this.settings[a])this.eventQueue.push(function(){this.settings[a].apply(this,b)}),setTimeout(function(){c.executeNextEvent()},0);else if(null!==this.settings[a])throw"Event handler "+a+" is unknown or is not a function"},SWFUpload.prototype.executeNextEvent=function(){var a=this.eventQueue?this.eventQueue.shift():null;"function"==typeof a&&a.apply(this)},SWFUpload.prototype.unescapeFilePostParams=function(a){var b,c=/[$]([0-9a-f]{4})/i,d={};if(void 0!=a){for(var e in a.post)if(a.post.hasOwnProperty(e)){b=e;for(var f;null!==(f=c.exec(b));)b=b.replace(f[0],String.fromCharCode(parseInt("0x"+f[1],16)));d[b]=a.post[e]}a.post=d}return a},SWFUpload.prototype.testExternalInterface=function(){try{return this.callFlash("TestExternalInterface")}catch(a){return!1}},SWFUpload.prototype.flashReady=function(){var a=this.getMovieElement();return a?(this.cleanUp(a),this.queueEvent("swfupload_loaded_handler"),void 0):(this.debug("Flash called back ready but the flash movie can't be found."),void 0)},SWFUpload.prototype.cleanUp=function(a){try{if(this.movieElement&&"unknown"==typeof a.CallFunction){this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)");for(var b in a)try{"function"==typeof a[b]&&(a[b]=null)}catch(c){}}}catch(d){}window.__flash__removeCallback=function(a,b){try{a&&(a[b]=null)}catch(c){}}},SWFUpload.prototype.fileDialogStart=function(){this.queueEvent("file_dialog_start_handler")},SWFUpload.prototype.fileQueued=function(a){a=this.unescapeFilePostParams(a),this.queueEvent("file_queued_handler",a)},SWFUpload.prototype.fileQueueError=function(a,b,c){a=this.unescapeFilePostParams(a),this.queueEvent("file_queue_error_handler",[a,b,c])},SWFUpload.prototype.fileDialogComplete=function(a,b,c){this.queueEvent("file_dialog_complete_handler",[a,b,c])},SWFUpload.prototype.uploadStart=function(a){a=this.unescapeFilePostParams(a),this.queueEvent("return_upload_start_handler",a)},SWFUpload.prototype.returnUploadStart=function(a){var b;if("function"==typeof this.settings.upload_start_handler)a=this.unescapeFilePostParams(a),b=this.settings.upload_start_handler.call(this,a);else if(void 0!=this.settings.upload_start_handler)throw"upload_start_handler must be a function";void 0===b&&(b=!0),b=!!b,this.callFlash("ReturnUploadStart",[b])},SWFUpload.prototype.uploadProgress=function(a,b,c){a=this.unescapeFilePostParams(a),this.queueEvent("upload_progress_handler",[a,b,c])},SWFUpload.prototype.uploadError=function(a,b,c){a=this.unescapeFilePostParams(a),this.queueEvent("upload_error_handler",[a,b,c])},SWFUpload.prototype.uploadSuccess=function(a,b,c){a=this.unescapeFilePostParams(a),this.queueEvent("upload_success_handler",[a,b,c])},SWFUpload.prototype.uploadComplete=function(a){a=this.unescapeFilePostParams(a),this.queueEvent("upload_complete_handler",a)},SWFUpload.prototype.debug=function(a){this.queueEvent("debug_handler",a)},SWFUpload.prototype.debugMessage=function(a){if(this.settings.debug){var b,c=[];if("object"==typeof a&&"string"==typeof a.name&&"string"==typeof a.message){for(var d in a)a.hasOwnProperty(d)&&c.push(d+": "+a[d]);b=c.join("\n")||"",c=b.split("\n"),b="EXCEPTION: "+c.join("\nEXCEPTION: "),SWFUpload.Console.writeLine(b)}else SWFUpload.Console.writeLine(a)}},SWFUpload.Console={},SWFUpload.Console.writeLine=function(a){var b,c;try{b=document.getElementById("SWFUpload_Console"),b||(c=document.createElement("form"),document.getElementsByTagName("body")[0].appendChild(c),b=document.createElement("textarea"),b.id="SWFUpload_Console",b.style.fontFamily="monospace",b.setAttribute("wrap","off"),b.wrap="off",b.style.overflow="auto",b.style.width="700px",b.style.height="350px",b.style.margin="5px",c.appendChild(b)),b.value+=a+"\n",b.scrollTop=b.scrollHeight-b.clientHeight}catch(d){alert("Exception: "+d.name+" Message: "+d.message)}}; \ No newline at end of file diff --git a/modules/editor/tpl/js/uploader.js b/modules/editor/tpl/js/uploader.js index a86f52ac3e..e6b69fe80e 100755 --- a/modules/editor/tpl/js/uploader.js +++ b/modules/editor/tpl/js/uploader.js @@ -33,7 +33,7 @@ function init(cfg, exe) { insertedFiles : 0 }, cfg); - uploadSettingObj[seq] = cfg; + uploadSettingObj[seq] = cfg; $(function(){ start(cfg) }); } @@ -352,7 +352,7 @@ function previewFiles(event, file_srl) { if(fileinfo.direct_download != 'Y' || !match) { html = ''; } else if(match[1]) { // flash video file - html = ''; + html = ''; } else if(match[2]) { // shockwave flash file html = ''; } else if(match[3]) { // movie file @@ -392,60 +392,60 @@ function removeUploadedFile(editorSequence) { function insertUploadedFile(editorSequence) { - var settings = uploaderSettings[editorSequence]; - var fileListAreaID = settings["fileListAreaID"]; - var fileListObj = get_by_id(fileListAreaID); - if(!fileListObj) return; - - if(editorMode[editorSequence]=='preview') return; - - var text = new Array(); - for(var i=0;i"); - } - - // binary파일의 경우 url_link 컴포넌트 연결 - } else { - text.push(""+file.source_filename+"\n"); - } - } - - // html 모드 - if(editorMode[editorSequence]=='html'){ - if(text.length>0 && get_by_id('editor_textarea_'+editorSequence)) - { - get_by_id('editor_textarea_'+editorSequence).value += text.join(''); - } - - // 위지윅 모드 - }else{ - var iframe_obj = editorGetIFrame(editorSequence); - if(!iframe_obj) return; - if(text.length>0) editorReplaceHTML(iframe_obj, text.join('')); - } + var settings = uploaderSettings[editorSequence]; + var fileListAreaID = settings["fileListAreaID"]; + var fileListObj = get_by_id(fileListAreaID); + if(!fileListObj) return; + + if(editorMode[editorSequence]=='preview') return; + + var text = new Array(); + for(var i=0;i"); + } + + } else { + // binary파일의 경우 url_link 컴포넌트 연결 + text.push(""+file.source_filename+"\n"); + } + } + + // html 모드 + if(editorMode[editorSequence]=='html'){ + if(text.length>0 && get_by_id('editor_textarea_'+editorSequence)) + { + get_by_id('editor_textarea_'+editorSequence).value += text.join(''); + } + + // 위지윅 모드 + }else{ + var iframe_obj = editorGetIFrame(editorSequence); + if(!iframe_obj) return; + if(text.length>0) editorReplaceHTML(iframe_obj, text.join('')); + } } diff --git a/modules/editor/tpl/js/uploader.min.js b/modules/editor/tpl/js/uploader.min.js new file mode 100644 index 0000000000..9f751705a0 --- /dev/null +++ b/modules/editor/tpl/js/uploader.min.js @@ -0,0 +1 @@ +function previewFiles(a,b){var c,d,e,f,g,h,i=jQuery;if(!b){if(c=i(a.target).parent().andSelf().filter("select").find(">option:selected"),!c.length)return;b=c.attr("value")}b&&is_def(e=uploadedFiles[b])&&(d=i("#"+e.previewAreaID).html(" "),d.length&&(f=e.download_url||"",g=f.match(/\.(?:(flv)|(swf)|(wmv|avi|mpe?g|as[fx]|mp3)|(jpe?g|png|gif))$/i),"Y"==e.direct_download&&g?g[1]?h='':g[2]?h='':g[3]?h='':g[4]&&(h=''):h='',h&&d.html(h)))}function removeUploadedFile(a){var b=uploaderSettings[a],c=b.fileListAreaID,d=get_by_id(c);if(d&&!(d.selectedIndex<0)){for(var e=new Array,f=0;f');else e.push(''+h.source_filename+"\n")}}if("html"==editorMode[a])e.length>0&&get_by_id("editor_textarea_"+a)&&(get_by_id("editor_textarea_"+a).value+=e.join(""));else{var j=editorGetIFrame(a);if(!j)return;e.length>0&&editorReplaceHTML(j,e.join(""))}}}var uploadedFiles=[],uploaderSettings=[],loaded_images=[],swfUploadObjs=[],uploadSettingObj=[],uploadAutosaveChecker=!1;!function(a){function b(b){var d=b.editorSequence;is_def(d)&&(b=a.extend({sessionName:"PHPSESSID",allowedFileSize:2097152,allowedFileTypes:"*.*",allowedFileTypesDescription:"All Files",replaceButtonID:"swfUploadButton"+b.editorSequence,insertedFiles:0},b),uploadSettingObj[d]=b,a(function(){c(b)}))}function c(b){var c,d,g,h,i,j,k,l,m,n,o,p;i=b.editorSequence,j=b.replaceButtonID,c=a("#"+j).wrap(''),d=c.width(),g=c.height(),h=a('').insertAfter(c),k={flash_url:request_uri+"modules/editor/tpl/images/SWFUpload.swf",upload_url:request_uri.replace(/^https/i,"http")+"index.php",post_params:{mid:current_mid,act:"procFileUpload",editor_sequence:i,uploadTargetSrl:editorRelKeys[i].primary.value},http_success:[302],file_size_limit:Math.floor((parseInt(b.allowedFileSize,10)||1024)/1024),file_queue_limit:0,file_upload_limit:0,file_types:b.allowedFileTypes,file_types_description:b.allowedFileTypesDescription,custom_settings:{progressTarget:null,cancelButtonId:null},debug:!1,button_window_mode:"transparent",button_placeholder_id:h.attr("id"),button_text:null,button_image_url:request_uri+"common/img/blank.gif",button_width:d,button_height:g,button_text_style:null,button_text_left_padding:0,button_text_top_padding:0,button_cursor:-2,editorSequence:i,uploadTargetSrl:editorRelKeys[i].primary.value,fileListAreaID:b.fileListAreaID,previewAreaID:b.previewAreaID,uploaderStatusID:b.uploaderStatusID},"undefined"!=typeof enforce_ssl&&enforce_ssl&&(k.upload_url=request_uri+"index.php"),a("#"+b.fileListAreaID).click(previewFiles),l={file_queued:"FileQueued",file_queue_error:"FileQueueError",file_dialog_complete:"FileDialogComplete",upload_start:"UploadStart",upload_progress:"UploadProgress",upload_error:"UploadError",upload_success:"UploadSuccess",upload_complete:"UploadComplete",queue_complete:"QueueComplete"};for(m in l)l.hasOwnProperty(m)&&(n="on"+l[m],k[m+"_handler"]=b["on"+n]||f[n]);is_def(window.xeVid)&&(k.post_params.vid=xeVid),k.post_params[b.sessionName]=getCookie(b.sessionName),uploaderSettings[i]=k,o=new SWFUpload(k),p=a("#"+o.movieName),swfUploadObjs[i]=o.movieName,p.length&&(p.css({display:"block",cursor:"pointer",position:"absolute",left:0,top:0,width:d+"px",height:g+"px"}),(b.insertedFiles||editorRelKeys[i].primary.value)&&e(b))}function d(){return!0}function e(b){function c(){"function"==typeof _editorAutoSave&&(uploadAutosaveChecker=!0,_editorAutoSave(!0))}function d(d){var e,f,g,h,i,j,k,l,m,n,o;if(f=d.editor_sequence,g=d.files,i=d.upload_status,h=d.upload_target_srl,j=Math.floor((parseInt(d.left_size,10)||0)/1024),e=a("#"+b.fileListAreaID).empty(),h&&(editorRelKeys[f].primary.value!=h&&(editorRelKeys[f].primary.value=h,c()),editorRelKeys[f].primary.value=h,b.uploadTargetSrl=h),a("#"+b.uploaderStatusID).html(i),a("#"+b.previewAreaID).empty(),g&&g.item){for(k=g.item,a.isArray(k)||(k=[k]),l=0,m=k.length;m>l;l++)n=k[l],o=n.file_srl,uploadedFiles[o]=n,n.previewAreaID=b.previewAreaID,/\.(jpe?g|png|gif)$/i.test(n.download_url)&&(loaded_images[o]=a("").attr("src",n.download_url).get(0)),a("

- + From 4a6b1e61f67e240f06fff9055724508c090dfbdc Mon Sep 17 00:00:00 2001 From: khongchi Date: Tue, 21 Jan 2014 20:41:17 +0900 Subject: [PATCH 024/549] =?UTF-8?q?#320=20=ED=9A=8C=EC=9B=90=20=EB=AA=A8?= =?UTF-8?q?=EB=93=88=20=EC=8A=A4=ED=82=A8=20=EC=B2=98=EB=A6=AC=20=EB=A9=94?= =?UTF-8?q?=EC=8B=9C=EC=A7=80=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/member/conf/module.xml | 2 +- modules/member/member.controller.php | 8 ++++---- modules/member/skins/default/find_member_account.html | 3 ++- modules/member/skins/default/leave_form.html | 4 ++-- modules/member/skins/default/login_form.html | 4 ++-- modules/member/skins/default/member_info.html | 2 +- modules/member/skins/default/modify_email_address.html | 4 ++-- modules/member/skins/default/modify_info.html | 4 ++-- modules/member/skins/default/modify_password.html | 4 ++-- modules/member/skins/default/rechecked_password.html | 10 ++-------- modules/member/skins/default/signup_form.html | 4 ++-- 11 files changed, 22 insertions(+), 27 deletions(-) diff --git a/modules/member/conf/module.xml b/modules/member/conf/module.xml index 69ea67b413..9ef67b93ac 100644 --- a/modules/member/conf/module.xml +++ b/modules/member/conf/module.xml @@ -62,7 +62,7 @@ - + diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index d01fd7f428..61d7333169 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -985,8 +985,8 @@ function procMemberFindAccount() $msg = sprintf(Context::getLang('msg_auth_mail_sent'), $member_info->email_address); if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) { - $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', ''); - $this->setRedirectUrl($returnUrl.'&user_id='.$user_id); + $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispMemberFindAccount'); + $this->setRedirectUrl($returnUrl); } return new Object(0,$msg); } @@ -1166,14 +1166,14 @@ function procMemberResendAuthMail() { // Get an email_address $email_address = Context::get('email_address'); - if(!$email_address) return $this->stop('msg_invalid_request'); + if(!$email_address) return new Object(-1, 'msg_invalid_request'); // Log test by using email_address $oMemberModel = getModel('member'); $args = new stdClass; $args->email_address = $email_address; $memberSrl = $oMemberModel->getMemberSrlByEmailAddress($email_address); - if(!$memberSrl) return $this->stop('msg_not_exists_member'); + if(!$memberSrl) return new Object(-1, 'msg_not_exists_member'); $columnList = array('member_srl', 'user_id', 'user_name', 'nick_name', 'email_address'); $memberInfo = $oMemberModel->getMemberInfoByMemberSrl($memberSrl, 0, $columnList); diff --git a/modules/member/skins/default/find_member_account.html b/modules/member/skins/default/find_member_account.html index 4bba57e80d..70c166b9bb 100644 --- a/modules/member/skins/default/find_member_account.html +++ b/modules/member/skins/default/find_member_account.html @@ -6,8 +6,9 @@

{$lang->cmd_find_member_account_with_email}

{$XE_VALIDATOR_MESSAGE}

- + + diff --git a/modules/member/skins/default/leave_form.html b/modules/member/skins/default/leave_form.html index 834a153b9c..db2653ed47 100644 --- a/modules/member/skins/default/leave_form.html +++ b/modules/member/skins/default/leave_form.html @@ -1,6 +1,6 @@

{$member_title = $lang->msg_leave_member}

-
+

{$XE_VALIDATOR_MESSAGE}

@@ -9,7 +9,7 @@

{$member_title = $lang->msg_leave_member}

- +
diff --git a/modules/member/skins/default/login_form.html b/modules/member/skins/default/login_form.html index 33561aacb7..a80b5d3822 100644 --- a/modules/member/skins/default/login_form.html +++ b/modules/member/skins/default/login_form.html @@ -5,13 +5,13 @@

{$lang->cmd_login}

');a.fn.xeSortableTable=function(){return this.not(".xe-sortable-table").addClass("xe-sortable-table").delegate("button.dragBtn","mousedown.st",function(d){var e,f,g,h,i,j,k,l,m,n,o,p;if(1==d.which){if(e=a(this),f=e.closest("tr"),g=e.closest("table"),p=g.get(0).offsetParent,i=f.height(),j=f.width(),before_event=a.Event("before-drag.st"),g.trigger(before_event),before_event.isDefaultPrevented())return!1;l={x:d.pageX,y:d.pageY},k=getOffset(f.get(0),p),$clone=f.attr("target",!0).clone(!0).appendTo(g),o=(h=g.find("thead th")).length,h.filter("[colspan]").attr("colspan",function(a,b){o+=b-1}),c.find("td").attr("colspan",o),m=[],g.find("tbody>tr:not([target],.sticky,:hidden)").each(function(){var b,c=a(this);b=getOffset(this,p),m.push({top:b.top,bottom:b.top+c.height(),$item:c})}),$clone.addClass("draggable").css({position:"absolute",opacity:.6,width:j,height:i,left:k.left,top:k.top,zIndex:100}),c.css({position:"absolute",opacity:.6,width:j,height:"10px",left:k.left,top:k.top,backgroundColor:"#bbb",overflow:"hidden",zIndex:99}).appendTo(g),f.css("opacity",.6),a(document).unbind("mousedown.st mouseup.st").bind("mousemove.st",function(a){var b,d,e,f,g;for(n=null,b={x:l.x-a.pageX,y:l.y-a.pageY},d=k.top-b.y,e=0,f=m.length;f>e;e++)g=m[e],e&&g.top>d||f-1>e&&g.bottomd-12?(n.state="before",c.css("top",g.top-5)):(n.state="after",c.css("top",g.bottom-5)));$clone.css({top:d})}).bind("mouseup.st",function(){var d;b=!1,a(document).unbind("mousemove.st mouseup.st"),f.removeAttr("target").css("opacity",""),$clone.remove(),c.remove(),n&&(d=a(n.element),d[n.state](f),g.trigger("after-drag.st"))})}}),this},a("table.sortable").xeSortableTable()}),jQuery(function(a){a(".filebox").bind("before-open.mw",function(){function b(e){d.html(e.html),d.find(".select").bind("click",function(){var b=a("input.select_checkbox:checked");if(0===b.length){var d=a(this).closest("tr").find("img.filebox_item").attr("src");d?(c.trigger("filebox.selected",[d]),c.trigger("close.mw")):alert("None selected!")}else c.trigger("filebox.selected",[b]),c.trigger("close.mw");return!1}),d.find(".x_pagination").find("a").filter(function(){return a(this).data("toggle")?!1:a(this).parent().hasClass("x_disabled")?!1:a(this).parent().hasClass("x_active")?!1:!0}).bind("click",function(){var c=a(this).attr("page");return a.exec_json("module.getFileBoxListHtml",{page:c},b),!1}),a("#goToFileBox").find("button").bind("click",function(){var c=a(this).prev("input").val();return a.exec_json("module.getFileBoxListHtml",{page:c},b),!1}),d.closest(".x_modal-body").scrollTop(0)}var c,d,e;c=a(this),e=c.attr("href"),d=a(e).find(".filebox_list"),a.exec_json("module.getFileBoxListHtml",{page:"1"},b)});var b=a(".x .dsTg .__simple"),c=a(".x .dsTg .__detail"),d=a(".x .dsTg td.title");d.each(function(){var b=a(this);0===b.find("p.x_alert").length&&b.addClass("tg").find(">*:not(:first-child)").hide()});var e=a(".x .dsTg td.tg>*:not(:first-child)");b.click(function(){e.hide(),c.removeClass("x_active"),b.addClass("x_active")}),c.click(function(){e.show(),c.addClass("x_active"),b.removeClass("x_active")})}),jQuery(function(a){a.fn.xeMultilingualWindow=function(b){function c(){return o.is(":visible")&&q&&confirm(xe.msg_confirm_save_and_use_multilingual)&&o.find(".save-useit").trigger("click"),!0}function d(){if(p.is(":visible")&&p.find(".editMode").length){var a=p.find(".editMode");confirm(xe.msg_confirm_save_and_use_multilingual)?a.find(".save").trigger("click"):a.find(".cancel").trigger("click")}return!0}function e(){return p.find(".item > fieldset").hide().prev("a").children("i").removeClass("x_icon-chevrom-up").addClass("x_icon-chevron-down"),n.find('[href="#lang_create"]').trigger("click"),o.find(".editMode").children("textarea").val(""),q=!1,!0}function f(a){a?(i(1,xe.current_lang,"",a,!1),n.find('[href="#lang_search"]').trigger("click",!0)):i(1,xe.current_lang,"","",!1)}function g(){return c()?d()?e()?void 0:!1:!1:!1}function h(a,b){var c=n.data("lang-target");q=!1,c&&c.trigger("selected.g11n",[a,b])}function i(c,d,e,f,g){"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=xe.current_lang),"undefined"==typeof e&&(e=""),"undefined"==typeof f&&(f=""),"undefined"==typeof g&&(g=!0),a.exec_json("module.getModuleAdminLangListHtml",{page:c,lang_code:d,search_keyword:e,name:f,list_count:b.list_count,mid:current_url.getQuery("mid")},function(b){b&&b.html&&(p.html(b.html),j(),k(),l(),m(),g&&(document.location.href="#lang_search"),f&&a("#lang_search").find('[href^="#lang-"]').trigger("click"))})}function j(){p.find(".x_pagination a").click(function(){var b=a(this).data("page"),c=a(this).data("search_keyword"),d=a(this).data("current_lang");return b?(i(b,d,c),!1):void 0}),p.find(".x_pagination").submit(function(){var b=a(this).find('[name="page"]').val(),c=a(this).data("search_keyword"),d=a(this).data("current_lang");return b?(i(b,d,c),!1):!1})}function k(){p.find(".search").submit(function(){var b=a(this).find('[name="search_keyword"]').val(),c=a(this).find('[name="lang_code"]').val();return i(1,c,b),!1}),p.find("#search_cancel").click(function(){i(1,xe.current_lang,"")})}function l(){p.find(".set").append('').click(function(){function b(b){var d=c.next("fieldset").find("textarea");d.each(function(){var c=a(this),d=b.langs[c.data("lang")],e=/^\$user_lang->/;e.test(d)?c.val("").data("value",""):c.val(d).data("value",d)}),c.data("is_loaded",!0)}var c=a(this),e=c.data("lang_code");d();var f="x_icon-chevron-up",g="x_icon-chevron-down";c.next("fieldset").is(":visible")?c.children("i").removeClass(f).addClass(g):(c.parent(".item").siblings(".item").find("a > i").removeClass(f).addClass(g).end().children("fieldset").hide(),c.children("i").removeClass(g).addClass(f)),"undefined"==typeof c.data("is_loaded")&&a.exec_json("module.getModuleAdminLangCode",{name:e,mid:current_url.getQuery("mid")},b)})}function m(){b.view_use||p.find(".useit").hide(),b.view_modify||p.find(".modify").hide(),b.view_delete||p.find(".delete").hide(),"save"==b.modify_type&&p.find(".save").text(xe.cmd_save),p.find(".modify").click(function(){a(this).closest("fieldset").addClass("editMode").find("textarea").removeAttr("disabled"),a(this).siblings(".cancel").prependTo(a(this).parent()),a(this).siblings(".delete").attr("disabled","disabled")}),p.find(".cancel").click(function(){return a(this).closest("fieldset").removeClass("editMode").find("textarea").attr("disabled","disabled").each(function(){var b=a(this);b.val(b.data("value"))}),a(this).siblings(".modify").prependTo(a(this).parent()),a(this).siblings(".delete").removeAttr("disabled"),!1}),p.find(".delete").click(function(){if(confirm(xe.confirm_delete)){var b=a(this);lang_name=b.closest(".item").find('[href^="#lang-"]').data("lang_code"),a.exec_json("module.procModuleAdminDeleteLang",{name:lang_name,mid:current_url.getQuery("mid")},function(a){if(a){if(a.error)return alert(a.message),void 0;var b=p.find(".x_pagination"),c=b.data("page"),d=b.data("search_keyword"),e=b.data("lang_code");c||($page=1),i(c,e,d)}})}}),p.find(".item").submit(function(){var b=a(this),c=b.find(".editMode").children("textarea"),d=b.find('[href^="#lang-"]'),e={},f=null;return c.each(function(){var b=a(this);e[b.attr("class")]=b.val(),b.data("tmp_value",b.val()),xe.current_lang==b.attr("class")&&(f=b.val())}),e.lang_name=d.data("lang_code"),e.mid=current_url.getQuery("mid"),a.exec_json("module.procModuleAdminInsertLang",e,function(e){e&&!e.error&&e.name&&(c.each(function(){var b=a(this);b.data("value",b.data("tmp_value"))}),d.children("span").html(f),p.find(".cancel").trigger("click"),b.find(".useit").trigger("click"))}),!1}),p.find(".useit").click(function(){var b=a(this),c=b.closest(".item").find('[href^="#lang-"]'),d=c.data("lang_code"),e=c.children("span").text();h(d,e)})}var n=a(this),o=n.find("#lang_create"),p=n.find("#lang_search"),q=!1;return b=a.extend({create_type:"save_and_use",modify_type:"save_and_use",view_use:!0,view_modify:!0,view_delete:!1,list_count:5},b||{}),"save_and_use"!=b.create_type&&o.find(".save-useit").text(xe.cmd_save),n.find(".x_tabbable").xeTabbable(),o.find(".editMode textarea").change(function(){q=!0}),o.submit(function(){function c(a){a&&!a.error&&a.name&&("save_and_use"==b.create_type?h(a.name,g):(alert(a.message),e()))}var d=a(this),f={},g=null;return d.find(".editMode").children("textarea").each(function(){var b=a(this);f[b.attr("class")]=b.val(),xe.current_lang==b.attr("class")&&(g=b.val())}),g?(f.mid=current_url.getQuery("mid"),a.exec_json("module.procModuleAdminInsertLang",f,c),!1):(alert(xe.msg_empty_multilingual),!1)}),n.find('[href="#lang_search"]').click(function(a,b){"undefined"==typeof b&&i()}),n.bind("reset.g11n",function(){e()}),n.bind("before-open.g11n",function(a,b){f(b)}),n.bind("before-close.g11n",function(){return g()}),this}});var is_loaded_multilingual_window_html=!1;jQuery(function(a){a.fn.xeLoadMultilingualWindowHtml=function(){function b(b){var c=a("#content");a(b.html).appendTo(c).xeMultilingualWindow(),a(".lang_code").trigger("loaded-multilingualWindow")}return a.exec_json("module.getModuleAdminMultilingualHtml",{mid:current_url.getQuery("mid")},b),this}});var multilingual_id_count=0;jQuery(function(a){a.fn.xeApplyMultilingualUI=function(){return a(this).each(function(){function b(){function b(){g.val(l.val()).width(g.data("width")).removeAttr("disabled").data("active",!1),g.parent(".g11n").removeClass("active")}function f(){function c(a){if(a&&a.langs){var b=g.width();g.closest(".g11n").addClass("active"),g.val(a.langs[xe.current_lang]).attr("disabled","disabled").width(b-44).data("active",!0)}}b();var d=/^\$user_lang->/;d.test(g.val())&&a.exec_json("module.getModuleAdminLangCode",{name:g.val().replace("$user_lang->",""),mid:current_url.getQuery("mid")},c)}var g,h=a("#g11n"),i=c.width();g="TEXTAREA"==d.tagName||"textarea"==c.data("type")?a(''),n=k.get(0).form;n.setAttribute("editor_sequence",a),k.css("display","none");var o="";jQuery("input[name=content]",n).size()>0&&(o=jQuery("input[name=content]",n).val().replace(/src=\"files\/attach/g,'src="'+request_uri+"files/attach"),jQuery("#xpress-editor-"+a).val(o)),k.hide().css("width","100%").before(l).after(m);var p=new xe.XpressCore,q=l.get(0),r=k.get(0),t=m.get(0),u=jQuery(".xpress-editor",n).get(0);p.getFrame=function(){return q},p.getContent=function(){editorGetContentTextarea_xe(a)};var v=n[c].value;return xFF&&!v&&(v="
"),v=editorReplacePath(v),n[c].value=v,jQuery("#xpress-editor-"+a).val(v),editorRelKeys[a]=new Array,editorRelKeys[a].primary=n[b],editorRelKeys[a].content=n[c],editorRelKeys[a].func=editorGetContentTextarea_xe,editorRelKeys[a].editor=p,editorRelKeys[a].pasteHTML=function(a){p.exec("PASTE_HTML",[a])},xe.Editors[a]=p,p.registerPlugin(new xe.CorePlugin(null)),p.registerPlugin(new xe.XE_PreservTemplate(jQuery("#xpress-editor-"+a).val())),p.registerPlugin(new xe.StringConverterManager),p.registerPlugin(new xe.XE_EditingAreaManager("WYSIWYG",r,{nHeight:parseInt(d),nMinHeight:100},null,u)),p.registerPlugin(new xe.XE_EditingArea_HTMLSrc(t)),p.registerPlugin(new xe.XE_EditingAreaVerticalResizer(u)),p.registerPlugin(new xe.Utils),p.registerPlugin(new xe.DialogLayerManager),p.registerPlugin(new xe.ActiveLayerManager),p.registerPlugin(new xe.Hotkey),p.registerPlugin(new xe.XE_WYSIWYGStyler),p.registerPlugin(new xe.XE_WYSIWYGStyleGetter),p.registerPlugin(new xe.MessageManager(xe.XpressCore.oMessageMap)),p.registerPlugin(new xe.XE_Toolbar(u)),p.registerPlugin(new xe.XE_XHTMLFormatter),p.registerPlugin(new xe.XE_GET_WYSYWYG_MODE(a)),jQuery("ul.extra1").length&&(p.registerPlugin(new xe.XE_ColorPalette(u)),p.registerPlugin(new xe.XE_FontColor(u)),p.registerPlugin(new xe.XE_BGColor(u)),p.registerPlugin(new xe.XE_Quote(u)),p.registerPlugin(new xe.XE_FontNameWithSelectUI(u)),p.registerPlugin(new xe.XE_FontSizeWithSelectUI(u)),p.registerPlugin(new xe.XE_LineHeightWithSelectUI(u)),p.registerPlugin(new xe.XE_UndoRedo),p.registerPlugin(new xe.XE_Table(u)),p.registerPlugin(new xe.XE_Hyperlink(u)),p.registerPlugin(new xe.XE_FormatWithSelectUI(u)),p.registerPlugin(new xe.XE_SCharacter(u))),jQuery("ul.extra2").length&&p.registerPlugin(new xe.XE_Extension(u,a)),jQuery("ul.extra3").length&&p.registerPlugin(new xe.XE_EditingModeToggler(u)),jQuery("#editorresize").length&&p.registerPlugin(new xe.XE_Editorresize(u,q)),jQuery.browser.msie||jQuery.browser.opera||p.registerPlugin(new xe.XE_WYSIWYGEnterKey(q)),(s=n._saved_doc_title)&&p.registerPlugin(new xe.XE_AutoSave(r,u)),i(),p}function editorGetContentTextarea_xe(a){var b=xe.Editors[a]||null;if(!b)return"";var c=b.getIR();if(!jQuery.trim(c.replace(/( |<\/?(p|br|span|div)([^>]+)?>)/gi,"")))return"";if(c=c.replace(/
$/i,""),c.length<1024){var d=Array("#text","A","BR","IMG","EM","STRONG","SPAN","BIG","CITE","CODE","DD","DFN","HR","INS","KBD","LINK","Q","SAMP","SMALL","SUB","SUP","TT"),e=!0,f=jQuery("
"+c+"
").eq(0),g=f.contents();jQuery.each(g,function(){3!=this.nodeType&&-1==jQuery.inArray(this.nodeName,d)&&(e=!1)}),e&&(c="

"+c+"

")}return c=c.replace(/src\s?=\s?(["']?)(?:\.\.\/)+(files\/attach\/)/gi,function(a,b,c){return"src="+(b||"")+c}),c=c.replace(/\<(\/)?([A-Z]+)([^>]*)\>/gi,function(a,b,c,d){return d=d?d.replace(/ ([A-Z]+?)\=/gi,function(a,b){return b=b.toLowerCase()," "+b+"="}):"",c=c.toLowerCase(),b||(b=""),"<"+b+c+d+">"}),c=c.replace("
","
")}function editorGetIframe(a){return jQuery("iframe#editor_iframe_"+a).get(0)}function editorReplaceHTML(a,b){b=editorReplacePath(b);var c=parseInt(a.id.replace(/^.*_/,""),10);editorRelKeys[c].pasteHTML(b)}function editorReplacePath(a){return a=a.replace(/\<([^\>\<]*)(src=|href=|url\()("|\')*([^"\'\)]+)("|\'|\))*(\s|>)*/gi,function(a,b,c,d,e,f,g){"url("==c?(d="",f=")"):("undefined"==typeof d&&(d='"'),"undefined"==typeof f&&(f='"'),"undefined"==typeof g&&(g=""));var h=jQuery.trim(e).replace(/^\.\//,"");return/^(http\:|https\:|ftp\:|telnet\:|mms\:|mailto\:|\/|\.\.|\#)/i.test(h)?a:"<"+b+c+d+request_uri+h+f+g})}function editorGetAutoSavedDoc(a){var b=new Array;b.mid=current_mid,b.editor_sequence=a.getAttribute("editor_sequence"),setTimeout(function(){var a=new Array("error","message","editor_sequence","title","content","document_srl");exec_xml("editor","procEditorLoadSavedDocument",b,function(a){editorRelKeys[b.editor_sequence].primary.value=a.document_srl,"object"==typeof uploadSettingObj[b.editor_sequence]&&editorUploadInit(uploadSettingObj[b.editor_sequence],!0)},a)},0)}!function(a){function b(b){function c(a){return function(){return a.apply(this.$this,arguments)}}var d=b.prototype;this.prototype.$super={};for(var e in d)d.propertyIsEnumerable(e)&&("undefined"==typeof this.prototype[e]&&(this.prototype[e]=d[e]),this.prototype.$super[e]=a.isFunction(d[e])?c(d[e]):d[e]);return this}a.extend({Class:function(c){function d(){"undefined"!=typeof this.$super&&(this.$super.$this=this),a.isFunction(this.$init)&&this.$init.apply(this,arguments)}return d.prototype=c,d.constructor=d,d.extend=b,d},$:function(b){return"string"==typeof b?"<"==b.substring(0,1)?a(b).get(0):a("#"+b).get(0):b},fnBind:function(b,c){var d=a.makeArray(arguments);return d.shift(),d.shift(),function(){var e=d.concat(a.makeArray(arguments));return b.apply(c,e)}}}),a.browser.nVersion=parseFloat(a.browser.version),"undefined"==typeof window.xe&&(window.xe={}),xe.XpressCore=a.Class({name:"XpressCore",$init:function(b){b=b?a.Class({}).extend({oDebugger:null}).extend(b):{},b.oDebugger&&(this.oDebugger=b.oDebugger,this.oDebugger.oApp=this),this.commandQueue=[],this.oCommandMap={},this.oDisabledCommand={},this.aPlugins=[],this.appStatus=xe.APP_STATUS.NOT_READY,this.registerPlugin(this)},exec:function(a,b,c){return this.appStatus==xe.APP_STATUS.NOT_READY?(this.commandQueue[this.commandQueue.length]={msg:a,args:b,event:c},!0):(this.exec=this._exec,this.exec(a,b,c),void 0)},delayedExec:function(b,c,d,e){var f=a.fnBind(this.exec,this,b,c,e);setTimeout(f,d)},_exec:function(a,b,c){return(this._exec=this.oDebugger?this._execWithDebugger:this._execWithoutDebugger).call(this,a,b,c)},_execWithDebugger:function(a,b,c){this.oDebugger.log_MessageStart(a,b);var d=this._doExec(a,b,c);return this.oDebugger.log_MessageEnd(a,b),d},_execWithoutDebugger:function(a,b,c){return this._doExec(a,b,c)},_doExec:function(a,b,c){var d=!1;if(!this.oDisabledCommand[a]){var e=[];if(b&&b.length)for(var f=b.length,g=0;f>g;g++)e[g]=b[g];c&&(e[e.length]=c);var d=!0;d=this._execMsgStep("BEFORE",a,e),d&&(d=this._execMsgStep("ON",a,e)),d&&(d=this._execMsgStep("AFTER",a,e))}return d},registerPlugin:function(a){if(!a)throw"An error occured in registerPlugin(): invalid plug-in";return a.nIdx=this.aPlugins.length,a.oApp=this,this.aPlugins[a.nIdx]=a,a.status!=xe.PLUGIN_STATUS.NOT_READY&&(a.status=xe.PLUGIN_STATUS.READY),this.exec("MSG_PLUGIN_REGISTERED",[a]),a.nIdx},disableCommand:function(a,b){this.oDisabledCommand[a]=b},registerBrowserEvent:function(b,c,d,e,f){if(b){e=e||[];var g=f?a.fnBind(this.delayedExec,this,d,e,f):a.fnBind(this.exec,this,d,e);a(b).bind(c,g)}},run:function(){this._changeAppStatus(xe.APP_STATUS.WAITING_FOR_PLUGINS_READY);var a=this.commandQueue.length;for(i=0;a>i;i++){var b=this.commandQueue[i];this.exec(b.msg,b.args,b.event)}this._waitForPluginReady()},createCommandMap:function(a){this.oCommandMap[a]=[];for(var b=this.aPlugins.length,c=0;b>c;c++)this._doAddToCommandMap(a,this.aPlugins[c])},addToCommandMap:function(a,b){this.oCommandMap[a]&&this._addToCommandMap(a,b)},_changeAppStatus:function(a){this.appStatus=a,this.appStatus==xe.APP_STATUS.READY&&this.exec("MSG_APP_READY")},_execMsgStep:function(a,b,c){return(this._execMsgStep=this.oDebugger?this._execMsgStepWithDebugger:this._execMsgStepWithoutDebugger).call(this,a,b,c)},_execMsgStepWithDebugger:function(a,b,c){this.oDebugger.log_MessageStepStart(a,b,c);var d=this._execMsgHandler("$"+a+"_"+b,c);return this.oDebugger.log_MessageStepEnd(a,b,c),d},_execMsgStepWithoutDebugger:function(a,b,c){return this._execMsgHandler("$"+a+"_"+b,c)},_execMsgHandler:function(a,b){this.oCommandMap[a]||this.createCommandMap(a);var c=this.oCommandMap[a],d=c.length;if(0==d)return!0;var e,f=!0;if(a.match(/^\$(BEFORE|ON|AFTER)_MSG_APP_READY$/)){for(var g=0;d>g;g++)if(e=this._execHandler(c[g],a,b),e===!1){f=!1;break}}else for(var g=0;d>g;g++)if(("function"!=typeof c[g].$PRECONDITION||this._execHandler(c[g],"$PRECONDITION",[a,b]))&&(e=this._execHandler(c[g],a,b),e===!1)){f=!1;break}return f},_execHandler:function(a,b,c){return(this._execHandler=this.oDebugger?this._execHandlerWithDebugger:this._execHandlerWithoutDebugger).call(this,a,b,c)},_execHandlerWithDebugger:function(a,b,c){this.oDebugger.log_CallHandlerStart(a,b,c);var d=a[b].apply(a,c);return this.oDebugger.log_CallHandlerEnd(a,b,c),d},_execHandlerWithoutDebugger:function(a,b,c){return a[b].apply(a,c)},_doAddToCommandMap:function(a,b){"function"==typeof b[a]&&(this.oCommandMap[a][this.oCommandMap[a].length]=b)},_waitForPluginReady:function(){for(var b=!0,c=0;cb)return b;var i=b-1,j=a[b].cloneNode(!1);for(a[b]==e&&(c=j),a[b]==f&&(d=j);i>=0&&xe.DOMFix.parentNode(a[i])==a[b];)i=this._recurConstructClonedTree(a,i,a[b],j,c,d);return h.insertBefore(j,h.firstChild),i},a[a.length]=xe.DOMFix.parentNode(a[a.length-1]),_recurConstructClonedTree(a,a.length-1,a[a.length-1],b),{oStartContainer:c,oEndContainer:d}},cloneRange:function(){return this._copyRange(new xe.W3CDOMRange(this._document))},_copyRange:function(a){return a.collapsed=this.collapsed,a.commonAncestorContainer=this.commonAncestorContainer,a.endContainer=this.endContainer,a.endOffset=this.endOffset,a.startContainer=this.startContainer,a.startOffset=this.startOffset,a._document=this._document,a},collapse:function(a){a?(this.endContainer=this.startContainer,this.endOffset=this.startOffset):(this.startContainer=this.endContainer,this.startOffset=this.endOffset),this._updateRangeInfo()},compareBoundaryPoints:function(a,b){switch(a){case xe.W3CDOMRange.START_TO_START:return this._compareEndPoint(this.startContainer,this.startOffset,b.startContainer,b.startOffset);case xe.W3CDOMRange.START_TO_END:return this._compareEndPoint(this.endContainer,this.endOffset,b.startContainer,b.startOffset);case xe.W3CDOMRange.END_TO_END:return this._compareEndPoint(this.endContainer,this.endOffset,b.endContainer,b.endOffset);case xe.W3CDOMRange.END_TO_START:return this._compareEndPoint(this.startContainer,this.startOffset,b.endContainer,b.endOffset)}},_findBody:function(a){if(!a)return null;for(;a;){if("BODY"==a.tagName)return a;a=xe.DOMFix.parentNode(a)}return null},_compareEndPoint:function(a,b,c,d){var e,f;a&&this._findBody(a)==this._document.body||(a=this._document.body,b=0),c&&this._findBody(c)==this._document.body||(c=this._document.body,d=0);var g=function(a,b){return-1==b&&(b=a+1),b>a?-1:a==b?0:1},h=this._getCommonAncestorContainer(a,c),i=a;if(i!=h){for(;(oTmpNode=xe.DOMFix.parentNode(i))!=h;)i=oTmpNode;e=this._getPosIdx(i)+.5}else e=b;var j=c;if(j!=h){for(;(oTmpNode=xe.DOMFix.parentNode(j))!=h;)j=oTmpNode;f=this._getPosIdx(j)+.5}else f=d;return g(e,f)},_getCommonAncestorContainer:function(a,b){for(var c=b;a;){for(;c;){if(a==c)return a;c=xe.DOMFix.parentNode(c)}c=b,a=xe.DOMFix.parentNode(a)}return this._document.body},deleteContents:function(){if(!this.collapsed){this._splitTextEndNodesOfTheRange();var a=this._getNodesInRange();if(!(a.length<1)){for(var b=a[0].previousSibling;b&&this._isBlankTextNode(b);)b=b.previousSibling;var c,d;b||(c=xe.DOMFix.parentNode(a[0]),d=0);for(var e=0;ea.nodeValue.length&&(b=a.nodeValue.length):b>xe.DOMFix.childNodes(a).length&&(b=xe.DOMFix.childNodes(a).length),b},setEnd:function(a,b){b=this._endsNodeValidation(a,b),this.endContainer=a,this.endOffset=b,this.startContainer&&-1==this._compareEndPoint(this.startContainer,this.startOffset,this.endContainer,this.endOffset)||this.collapse(!1),this._updateRangeInfo()},setEndAfter:function(a){if(!a)throw new Error("INVALID_NODE_TYPE_ERR in setEndAfter");return"BODY"==a.tagName?(this.setEnd(a,xe.DOMFix.childNodes(a).length),void 0):(this.setEnd(xe.DOMFix.parentNode(a),this._getPosIdx(a)+1),void 0)},setEndBefore:function(a){if(!a)throw new Error("INVALID_NODE_TYPE_ERR in setEndBefore");return"BODY"==a.tagName?(this.setEnd(a,0),void 0):(this.setEnd(xe.DOMFix.parentNode(a),this._getPosIdx(a)),void 0)},setStart:function(a,b){b=this._endsNodeValidation(a,b),this.startContainer=a,this.startOffset=b,this.endContainer&&-1==this._compareEndPoint(this.startContainer,this.startOffset,this.endContainer,this.endOffset)||this.collapse(!0),this._updateRangeInfo()},setStartAfter:function(a){if(!a)throw new Error("INVALID_NODE_TYPE_ERR in setStartAfter");return"BODY"==a.tagName?(this.setStart(a,xe.DOMFix.childNodes(a).length),void 0):(this.setStart(xe.DOMFix.parentNode(a),this._getPosIdx(a)+1),void 0)},setStartBefore:function(a){if(!a)throw new Error("INVALID_NODE_TYPE_ERR in setStartBefore");return"BODY"==a.tagName?(this.setStart(a,0),void 0):(this.setStart(xe.DOMFix.parentNode(a),this._getPosIdx(a)),void 0)},surroundContents:function(a){a.appendChild(this.extractContents()),this.insertNode(a),this.selectNode(a)},toString:function(){var a=this._document.createElement("DIV");return a.appendChild(this.cloneContents()),a.textContent||a.innerText||""},_isBlankTextNode:function(a){return 3==a.nodeType&&""==a.nodeValue?!0:!1},_getPosIdx:function(a){for(var b=0,c=a.previousSibling;c;c=c.previousSibling)b++;return b},_updateRangeInfo:function(){return this.startContainer?(this.collapsed=this._isCollapsed(this.startContainer,this.startOffset,this.endContainer,this.endOffset),this.commonAncestorContainer=this._getCommonAncestorContainer(this.startContainer,this.endContainer),void 0):(this.init(this._document),void 0)},_isCollapsed:function(a,b,c,d){var e=!1;if(a==c&&b==d)e=!0;else{var f=this._getActualStartNode(a,b),g=this._getActualEndNode(c,d);f=this._getNextNode(this._getPrevNode(f)),g=this._getPrevNode(this._getNextNode(g)),f&&g&&"BODY"!=g.tagName&&(this._getNextNode(g)==f||g==f&&this._isBlankTextNode(g))&&(e=!0)}return e},_splitTextEndNodesOfTheRange:function(){var a=this._splitTextEndNodes({oStartContainer:this.startContainer,iStartOffset:this.startOffset,oEndContainer:this.endContainer,iEndOffset:this.endOffset});this.startContainer=a.oStartContainer,this.startOffset=a.iStartOffset,this.endContainer=a.oEndContainer,this.endOffset=a.iEndOffset},_splitTextEndNodes:function(a){return a=this._splitStartTextNode(a),a=this._splitEndTextNode(a)},_splitStartTextNode:function(a){var b=a.oStartContainer,c=a.iStartOffset,d=a.oEndContainer,e=a.iEndOffset;if(!b)return a;if(3!=b.nodeType)return a;if(0==c)return a;if(b.nodeValue.length<=c)return a;var f=b.splitText(c);return b==d&&(e-=c,d=f),b=f,c=0,{oStartContainer:b,iStartOffset:c,oEndContainer:d,iEndOffset:e}},_splitEndTextNode:function(a){var b=a.oStartContainer,c=a.iStartOffset,d=a.oEndContainer,e=a.iEndOffset;return d?3!=d.nodeType?a:e>=d.nodeValue.length?a:0==e?a:(d.splitText(e),{oStartContainer:b,iStartOffset:c,oEndContainer:d,iEndOffset:e}):a},_getNodesInRange:function(){if(this.collapsed)return[];var a=this._getActualStartNode(this.startContainer,this.startOffset),b=this._getActualEndNode(this.endContainer,this.endOffset);return this._getNodesBetween(a,b)},_getActualStartNode:function(a,b){var c=a;return 3==a.nodeType?b>=a.nodeValue.length?(c=this._getNextNode(a),"BODY"==c.tagName&&(c=null)):c=a:b=this.startContainer.nodeValue.length?this._getNextNode(this.startContainer):this.startContainer:this.startOffset>=xe.DOMFix.childNodes(this.startContainer).length?this._getNextNode(this.startContainer):xe.DOMFix.childNodes(this.startContainer)[this.startOffset]},getEndNode:function(){return this.collapsed?this.getStartNode():3==this.endContainer.nodeType?0==this.endOffset?this._getPrevNode(this.endContainer):this.endContainer:0==this.endOffset?this._getPrevNode(this.endContainer):xe.DOMFix.childNodes(this.endContainer)[this.endOffset-1]},getNodeAroundRange:function(a,b){if(this.collapsed&&this.startContainer&&3==this.startContainer.nodeType)return this.startContainer;if(!this.collapsed||this.startContainer&&3==this.startContainer.nodeType)return this.getStartNode();var c,d,e;return d=this.startOffset>=xe.DOMFix.childNodes(this.startContainer).length?this._getNextNode(this.startContainer):xe.DOMFix.childNodes(this.startContainer)[this.startOffset],c=0==this.endOffset?this._getPrevNode(this.endContainer):xe.DOMFix.childNodes(this.endContainer)[this.endOffset-1],a?(e=c,e||b||(e=d)):(e=d,e||b||(e=c)),e},_getXPath:function(a){for(var b="";a&&1==a.nodeType;)b="/"+a.tagName+"["+this._getPosIdx4XPath(a)+"]"+b,a=xe.DOMFix.parentNode(a);return b},_getPosIdx4XPath:function(a){for(var b=0,c=a.previousSibling;c;c=c.previousSibling)c.tagName==a.tagName&&b++;return b},_evaluateXPath:function(a,b){a=a.substring(1,a.length-1);for(var c=a.split(/\//),d=b.body,e=2;el;l++)h[l].tagName==f&&(i[k++]=h[l]);d=i.length-1&&e){for(var f=xe.DOMFix.childNodes(e),g=null,h=c,i=d;(g=f[h])&&3==g.nodeType&&g.nodeValue.length=b&&e>=0?!0:bIncludePartlyIncluded?1==c?!1:-1==d?!1:!0:!1},isNodeInRange:function(a,b,c){var d=new xe.XpressRange(this._window);return c&&a.firstChild?(d.setStartBefore(a.firstChild),d.setEndAfter(a.lastChild)):d.selectNode(a),isRangeInRange(d,b)},pasteHTML:function(a){if(""==a)return this.deleteContents(),void 0;var b=this._document.createElement("DIV");b.innerHTML=a;for(var c=b.firstChild,d=b.lastChild,e=this.cloneRange(),f=e.placeStringBookmark();b.lastChild;)this.insertNode(b.lastChild);this.setEndNodes(c,d),e.moveToBookmark(f),e.deleteContents(),e.removeStringBookmark(f)},toString:function(){return this.toString=xe.W3CDOMRange.prototype.toString,this.toString()},toHTMLString:function(){var a=this._document.createElement("DIV");return a.appendChild(this.cloneContents()),a.innerHTML},findAncestorByTagName:function(a){for(var b=this.commonAncestorContainer;b&&b.tagName!=a;)b=xe.DOMFix.parentNode(b);return b},selectNodeContents:function(a){if(a){var b=a.firstChild?a.firstChild:a,c=a.lastChild?a.lastChild:a;3==b.nodeType?this.setStart(b,0):this.setStartBefore(b),3==c.nodeType?this.setEnd(c,c.nodeValue.length):this.setEndAfter(c)}},styleRange:function(b,c,d){var e=this._getStyleParentNodes(d);if(!(e.length<1)){for(var f,g,h=0;ho;o++)if(c=k[o],c&&3==c.nodeType&&""!=c.nodeValue){if(h=xe.DOMFix.parentNode(c),"SPAN"==h.tagName){var p=a(h).html();if(d=this._getVeryFirstRealChild(h),f=d==c?1:p.indexOf(d),-1!=f&&(d=this._getVeryLastRealChild(h),g=d==c?1:p.indexOf(d)),-1!=f&&-1!=g){l[m++]=h;continue}}e=this._document.createElement("SPAN"),h.insertBefore(e,c),e.appendChild(c),l[m++]=e,b&&e.setAttribute(b,"true")}return this.setStartBefore(i),this.setEndAfter(j),l},_getVeryFirstChild:function(a){return a.firstChild?this._getVeryFirstChild(a.firstChild):a},_getVeryLastChild:function(a){return a.lastChild?this._getVeryLastChild(a.lastChild):a},_getFirstRealChild:function(a){for(var b=a.firstChild;b&&3==b.nodeType&&""==b.nodeValue;)b=b.nextSibling;return b},_getLastRealChild:function(a){for(var b=a.lastChild;b&&3==b.nodeType&&""==b.nodeValue;)b=b.previousSibling;return b},_getVeryFirstRealChild:function(a){var b=this._getFirstRealChild(a);return b?this._getVeryFirstRealChild(b):a},_getVeryLastRealChild:function(a){var b=this._getLastRealChild(a);return b?this._getVeryLastChild(b):a},_getLineStartInfo:function(a){function b(a){if(a&&!d){if(h.test(a.tagName))return f=a,d=e,g=!0,void 0;e=a,c(a.previousSibling),d||b(xe.DOMFix.parentNode(a))}}function c(a){if(a&&!d){if(h.test(a.tagName))return f=a,d=e,g=!1,void 0;if(a.firstChild&&"TABLE"!=a.tagName)for(var b=a.lastChild;b&&!d;)c(b),b=b.previousSibling;else e=a;d||c(a.previousSibling)}}var d=null,e=a,f=a,g=!0,h=this.rxLineBreaker;return b(a),{oNode:d,oLineBreaker:f,bParentBreak:g}},_getLineEndInfo:function(a){function b(a){if(a&&!d){if(h.test(a.tagName))return f=a,d=e,g=!0,void 0;e=a,c(a.nextSibling),d||b(xe.DOMFix.parentNode(a))}}function c(a){if(a&&!d){if(h.test(a.tagName))return f=a,d=e,g=!1,void 0;if(a.firstChild&&"TABLE"!=a.tagName)for(var b=a.firstChild;b&&!d;)c(b),b=b.nextSibling;else e=a;d||c(a.nextSibling)}}var d=null,e=a,f=a,g=!0,h=this.rxLineBreaker;return b(a),{oNode:d,oLineBreaker:f,bParentBreak:g}},getLineInfo:function(){var a=this.getStartNode(),b=this.getEndNode();a||(a=this.getNodeAroundRange(!0,!0)),b||(b=this.getNodeAroundRange(!0,!0));var c=this._getLineStartInfo(a),d=c.oNode,e=this._getLineEndInfo(b),f=e.oNode,g=this._compareEndPoint(xe.DOMFix.parentNode(d),this._getPosIdx(d),this.endContainer,this.endOffset),h=this._compareEndPoint(xe.DOMFix.parentNode(f),this._getPosIdx(f)+1,this.startContainer,this.startOffset);return 0>=g&&h>=0||(a=this.getNodeAroundRange(!1,!0),b=this.getNodeAroundRange(!1,!0),c=this._getLineStartInfo(a),e=this._getLineEndInfo(b)),{oStart:c,oEnd:e}}}).extend(xe.W3CDOMRange),xe.SimpleSelection=function(b){this.init=function(a){this._window=a||window,this._document=this._window.document},this.init(b),a.browser.msie?xe.SimpleSelectionImpl_IE.apply(this):xe.SimpleSelectionImpl_FF.apply(this),this.selectRange=function(a){this.selectNone(),this.addRange(a)},this.selectionLoaded=!0,this._oSelection||(this.selectionLoaded=!1)},xe.SimpleSelectionImpl_FF=function(){this._oSelection=this._window.getSelection(),this.getRangeAt=function(a){a=a||0;try{var b=this._oSelection.getRangeAt(a)}catch(c){return new xe.W3CDOMRange(this._document)}return this._FFRange2W3CRange(b)},this.addRange=function(a){var b=this._W3CRange2FFRange(a);this._oSelection.addRange(b)},this.selectNone=function(){this._oSelection.removeAllRanges()},this._FFRange2W3CRange=function(a){var b=new xe.W3CDOMRange(this._document);return b.setStart(a.startContainer,a.startOffset),b.setEnd(a.endContainer,a.endOffset),b},this._W3CRange2FFRange=function(a){var b=this._document.createRange(); -return b.setStart(a.startContainer,a.startOffset),b.setEnd(a.endContainer,a.endOffset),b}},xe.SimpleSelectionImpl_IE=function(){this._oSelection=this._document.selection,this.getRangeAt=function(a){if(a=a||0,"Control"==this._oSelection.type){var b=new xe.W3CDOMRange(this._document),c=this._oSelection.createRange().item(a);return c&&c.ownerDocument==this._document?(b.selectNode(c),b):b}var c=this._oSelection.createRangeCollection().item(a).parentElement();if(!c||c.ownerDocument!=this._document){var b=new xe.W3CDOMRange(this._document);return b}return this._IERange2W3CRange(this._oSelection.createRangeCollection().item(a))},this.addRange=function(a){var b=this._W3CRange2IERange(a);b.select()},this.selectNone=function(){this._oSelection.empty()},this._W3CRange2IERange=function(a){var b=this._getIERangeAt(a.startContainer,a.startOffset),c=this._getIERangeAt(a.endContainer,a.endOffset);return b.setEndPoint("EndToEnd",c),b},this._getIERangeAt=function(a,b){var c=this._document.body.createTextRange(),d=this._getSelectableNodeAndOffsetForIE(a,b),e=d.oSelectableNodeForIE,f=d.iOffsetForIE;return c.moveToElementText(e),c.collapse(d.bCollapseToStart),c.moveStart("character",f),c},this._getSelectableNodeAndOffsetForIE=function(a,b){var c=this._document.body.createTextRange(),d=null,e=null,f=0;3==a.nodeType?(d=xe.DOMFix.parentNode(a),e=xe.DOMFix.childNodes(d),f=e.length):(d=a,e=xe.DOMFix.childNodes(d),f=b);for(var g=null,h=0,i=!0,j=0;f>j;j++)if(g=e[j],3==g.nodeType){if(g==a)break;h+=g.nodeValue.length}else c.moveToElementText(g),d=g,h=0,i=!1;return 3==a.nodeType&&(h+=b),{oSelectableNodeForIE:d,iOffsetForIE:h,bCollapseToStart:i}},this._IERange2W3CRange=function(a){var b=new xe.W3CDOMRange(this._document),c=null,d=null;c=a.duplicate(),c.collapse(!0),d=this._getW3CContainerAndOffset(c,!0),b.setStart(d.oContainer,d.iOffset);var e=a.duplicate();return e.collapse(!0),e.isEqual(a)?b.collapse(!0):(c=a.duplicate(),c.collapse(!1),d=this._getW3CContainerAndOffset(c),b.setEnd(d.oContainer,d.iOffset)),b},this._getW3CContainerAndOffset=function(a,b){for(var c=a,d=c.parentElement(),e=-1,f=this._document.body.createTextRange(),g=xe.DOMFix.childNodes(d),h=null,i=0,j=0;j=0)break;h=g[j]}var i=j;if(0!=i&&3==g[i-1].nodeType){var k=this._document.body.createTextRange(),l=null;h?(k.moveToElementText(h),k.collapse(!1),l=h.nextSibling):(k.moveToElementText(d),k.collapse(!0),l=d.firstChild);var m=c.duplicate();m.setEndPoint("StartToStart",k);for(var n=m.text.length;n>l.nodeValue.length&&l.nextSibling;)n-=l.nodeValue.length,l=l.nextSibling;{l.nodeValue}b&&l.nextSibling&&3==l.nextSibling.nodeType&&n==l.nodeValue.length&&(n-=l.nodeValue.length,l=l.nextSibling),d=l,e=n}else d=c.parentElement(),e=i;return{oContainer:d,iOffset:e}}},xe.DOMFix=new(a.Class({$init:function(){a.browser.msie||a.browser.opera?(this.childNodes=this._childNodes_Fix,this.parentNode=this._parentNode_Fix):(this.childNodes=this._childNodes_Native,this.parentNode=this._parentNode_Native)},_parentNode_Native:function(a){return a.parentNode},_parentNode_Fix:function(a){if(!a)return a;for(;a.previousSibling;)a=a.previousSibling;return a.parentNode},_childNodes_Native:function(a){return a.childNodes},_childNodes_Fix:function(a){var b=null,c=0;if(a){var b=[];for(a=a.firstChild;a;)b[c++]=a,a=a.nextSibling}return b}})),xe.DraggableLayer=a.Class({$init:function(b,c){this.oOptions=a.extend({bModal:"false",oHandle:b,iMinX:-999999,iMinY:-999999,iMaxX:999999,iMaxY:999999},c),this.oHandle=this.oOptions.oHandle,b.style.display="block",b.style.position="absolute",b.style.zIndex="9999",this.aBasePosition=this.getBaseOffset(b),b.style.top=this.toInt(a(b).offset().top)-this.aBasePosition.top+"px",b.style.left=this.toInt(a(b).offset().left)-this.aBasePosition.left+"px",this.$FnMouseDown=a.fnBind(this._mousedown,this,b),this.$FnMouseMove=a.fnBind(this._mousemove,this,b),this.$FnMouseUp=a.fnBind(this._mouseup,this,b),a(this.oHandle).bind("mousedown",this.$FnMouseDown)},_mousedown:function(b,c){"INPUT"!=c.target.tagName&&(this.MouseOffsetY=c.pageY-this.toInt(b.style.top)-this.aBasePosition.top,this.MouseOffsetX=c.pageX-this.toInt(b.style.left)-this.aBasePosition.left,a(b).bind("mousemove",this.$FnMouseMove),a(b).bind("mouseup",this.$FnMouseUp))},_mousemove:function(a,b){var c=b.pageY-this.MouseOffsetY-this.aBasePosition.top,d=b.pageX-this.MouseOffsetX-this.aBasePosition.left;cthis.oOptions.iMaxY&&(c=this.oOptions.iMaxY),dthis.oOptions.iMaxX&&(d=this.oOptions.iMaxX),a.style.top=c+"px",a.style.left=d+"px"},_mouseup:function(b){a(b).unbind("mousemove",this.$FnMouseMove),a(b).unbind("mouseup",this.$FnMouseUp)},toInt:function(a){var b=parseInt(a);return b||0},findNonStatic:function(b){return b?"BODY"==b.tagName?b:a(b).css("position").match(/absolute|relative/i)?b:this.findNonStatic(b.offsetParent):null},getBaseOffset:function(b){var c=this.findNonStatic(b.offsetParent),d=a(c).offset();return{top:d.top,left:d.left}}}),xe.CorePlugin=a.Class({name:"CorePlugin",$init:function(a){this.funcOnReady=a},$AFTER_MSG_APP_READY:function(){this.oApp.exec("EXEC_ON_READY_FUNCTION",[])},$ON_ADD_APP_PROPERTY:function(a,b){this.oApp[a]=b},$ON_REGISTER_BROWSER_EVENT:function(a,b,c,d,e){this.oApp.registerBrowserEvent(a,b,c,d,e)},$ON_DISABLE_COMMAND:function(a){this.oApp.disableCommand(a,!0)},$ON_ENABLE_COMMAND:function(a){this.oApp.disableCommand(a,!1)},$ON_EXEC_ON_READY_FUNCTION:function(){"function"==typeof this.funcOnReady&&this.funcOnReady()}}),xe.Utils=a.Class({name:"Utils",$init:function(){if(a.browser.msie&&6==a.browser.nVersion)try{document.execCommand("BackgroundImageCache",!1,!0)}catch(b){}},$ON_ATTACH_HOVER_EVENTS:function(b,c){c=c||"hover",b&&a(b).hover(function(){a(this).addClass(c)},function(){a(this).removeClass(c)})}}),xe.XpressRangeManager=a.Class({name:"XpressRangeManager",oWindow:null,$init:function(a){this.oWindow=a||window},$BEFORE_MSG_APP_READY:function(){this.oWindow&&"IFRAME"==this.oWindow.tagName&&(this.oWindow=this.oWindow.contentWindow),this.oApp.exec("ADD_APP_PROPERTY",["getSelection",a.fnBind(this.getSelection,this)]),this.oApp.exec("ADD_APP_PROPERTY",["getEmptySelection",a.fnBind(this.getEmptySelection,this)])},$ON_SET_EDITING_WINDOW:function(a){this.oWindow=a},getEmptySelection:function(){var a=new xe.XpressRange(this.oWindow);return a},getSelection:function(){this.oApp.exec("RESTORE_IE_SELECTION",[]);var a=this.getEmptySelection();try{a.setFromSelection()}catch(b){}return a}}),xe.Hotkey=a.Class({name:"Hotkey",storage:{},keyhash:{},$init:function(){this.storage={},this.keyhash={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,meta:224,esc:27,space:32,pageup:33,pagedown:34,end:35,home:36,left:37,up:38,right:39,down:40,del:46,comma:188,period:190,slash:191,hyphen:109,equal:61},(a.browser.msie||a.browser.safari)&&(this.keyhash.hyphen=189,this.keyhash.equal=187,this.keyhash.meta=91)},$ON_MSG_APP_READY:function(){a(this.oApp.getWYSIWYGDocument()||document).keydown(a.fnBind(this.keydown,this))},$ON_REGISTER_HOTKEY:function(b,c,d){d||(d=[]);var e=a.fnBind(this.oApp.exec,this.oApp,c,d);return(b=this.normalize(b))?(this.add(b,e),void 0):!1},add:function(a,b){"undefined"==typeof this.storage[a]?this.storage[a]=[b]:this.storage[a].push(b)},keydown:function(b){var c=[],d=this.keyhash;if(!(a.inArray(b.keyCode,[d.shift,d.ctrl,d.alt,d.meta])>=0)&&(b.shiftKey&&c.push("shift"),b.altKey&&c.push("alt"),b.ctrlKey&&c.push("ctrl"),b.metaKey&&c.push("meta"),c.length&&(1==c.length&&b.metaKey&&(c=["ctrl","meta"]),c.push(b.keyCode),c=c.join("+"),this.storage[c])))return a.each(this.storage[c],function(){this()}),!1},normalize:function(b){var c,d,e,f,g,h=(b||"").toLowerCase().split("+");return c=d=e=f=g=!1,a.each(h,function(){var a=""+this;switch(a){case"shift":c=!0;case"alt":e=!0;case"ctrl":d=!0;case"meta":f=!0;default:g=a}}),g?(h=[],c&&h.push("shift"),e&&h.push("alt"),d&&h.push("ctrl"),(f||d&&!c&&!e)&&h.push("meta"),h.push(this.keyhash[g]||g.toUpperCase().charCodeAt(0)),h.join("+")):""}}),xe.DialogLayerManager=a.Class({name:"DialogLayerManager",aMadeDraggable:null,aOpenedLayers:null,$init:function(){this.aMadeDraggable=[],this.aOpenedLayers=[]},$ON_SHOW_DIALOG_LAYER:function(b,c){b=a.$(b),c=a.$(c)||!1,b&&-1==a.inArray(b,this.aOpenedLayers)&&(this.oApp.exec("POSITION_DIALOG_LAYER",[b]),this.aOpenedLayers[this.aOpenedLayers.length]=b,-1==a.inArray(b,this.aMadeDraggable)?(new xe.DraggableLayer(b,{bModal:c,iMinY:0}),this.aMadeDraggable[this.aMadeDraggable.length]=b):b.style.display="block")},$ON_HIDE_LAST_DIALOG_LAYER:function(){this.oApp.exec("HIDE_DIALOG_LAYER",[this.aOpenedLayers[this.aOpenedLayers.length-1]])},$ON_HIDE_ALL_DIALOG_LAYER:function(){for(var a=this.aOpenedLayers.length-1;a>=0;a--)this.oApp.exec("HIDE_DIALOG_LAYER",[this.aOpenedLayers[a]])},$ON_HIDE_DIALOG_LAYER:function(b){b=a.$(b),b&&(b.style.display="none"),this.aOpenedLayers=a.grep(this.aOpenedLayers,function(a){return a!=b})},$ON_SET_DIALOG_LAYER_POSITION:function(a,b,c){a.style.top=b,a.style.left=c}}),xe.ActiveLayerManager=a.Class({name:"ActiveLayerManager",oCurrentLayer:null,$ON_TOGGLE_ACTIVE_LAYER:function(a,b,c,d,e){a==this.oCurrentLayer?this.oApp.exec("HIDE_ACTIVE_LAYER",[]):(this.oApp.exec("SHOW_ACTIVE_LAYER",[a,d,e]),b&&this.oApp.exec(b,c))},$ON_SHOW_ACTIVE_LAYER:function(b,c,d){b=a.$(b),this.sOnCloseCmd=c,this.aOnCloseParam=d;var e=this.oCurrentLayer;b!=e&&(this.oApp.exec("HIDE_ACTIVE_LAYER",[]),b.style.display="block",this.oCurrentLayer=b)},$ON_HIDE_ACTIVE_LAYER:function(){var a=this.oCurrentLayer;a&&(a.style.display="none",this.oCurrentLayer=null,this.sOnCloseCmd&&this.oApp.exec(this.sOnCloseCmd,this.aOnCloseParam))},$ON_HIDE_CURRENT_ACTIVE_LAYER:function(){this.oApp.exec("HIDE_ACTIVE_LAYER",[])},$ON_EVENT_EDITING_AREA_KEYDOWN:function(){this.oApp.exec("HIDE_ACTIVE_LAYER",[])},$ON_EVENT_EDITING_AREA_MOUSEDOWN:function(){this.oApp.exec("HIDE_ACTIVE_LAYER",[])}}),xe.StringConverterManager=a.Class({name:"StringConverterManager",oConverters:null,$init:function(){this.oConverters={}},$BEFORE_MSG_APP_READY:function(){this.oApp.exec("ADD_APP_PROPERTY",["applyConverter",a.fnBind(this.applyConverter,this)]),this.oApp.exec("ADD_APP_PROPERTY",["addConverter",a.fnBind(this.addConverter,this)])},applyConverter:function(a,b){var c=this.oConverters[a];if(!c)return b;for(var d=0;df;f++)if(e.test(c[f].className)){var g=RegExp.$1;if(null!=this.htUIList[g])continue;this.htUIList[g]=a(">*:first-child",c[f]).get(0)}},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.toolbarArea,"mouseover","EVENT_TOOLBAR_MOUSEOVER",[]),this.oApp.registerBrowserEvent(this.toolbarArea,"mouseout","EVENT_TOOLBAR_MOUSEOUT",[]),this.oApp.exec("ADD_APP_PROPERTY",["getToolbarButtonByUIName",a.fnBind(this.getToolbarButtonByUIName,this)])},$ON_EVENT_TOOLBAR_MOUSEOVER:function(b){"BUTTON"==b.target.tagName&&a(b.target).addClass("hover").parent("span").addClass("hover")},$ON_EVENT_TOOLBAR_MOUSEOUT:function(b){"BUTTON"==b.target.tagName&&a(b.target).removeClass("hover").parent("span").removeClass("hover")},$ON_TOGGLE_TOOLBAR_ACTIVE_LAYER:function(a,b,c,d,e,f){this.oApp.exec("TOGGLE_ACTIVE_LAYER",[a,"MSG_TOOLBAR_LAYER_SHOWN",[a,b,c,d],e,f])},$ON_MSG_TOOLBAR_LAYER_SHOWN:function(a,b,c,d){this.oApp.exec("POSITION_TOOLBAR_LAYER",[a,b]),c&&this.oApp.exec(c,d)},$ON_SHOW_TOOLBAR_ACTIVE_LAYER:function(a,b,c,d){this.oApp.exec("SHOW_ACTIVE_LAYER",[a,b,c]),this.oApp.exec("POSITION_TOOLBAR_LAYER",[a,d])},$ON_ENABLE_UI:function(b){var c=this.htUIList[b];if(c){a(c).removeClass("off"),c.disabled=!1;var d="";if(this.aUICmdMap[b])for(var e=0;ef&&(b.style.left=f-e-5+"px")}},getToolbarButtonByUIName:function(a){return this.htUIList[a]}}),xe.XE_EditingAreaManager=a.Class({name:"XE_EditingAreaManager",oActivePlugin:null,oIRField:null,bIsDirty:!1,$init:function(b,c,d,e,f){this.sInitialMode=b,this.oIRField=a.$(c),this._assignHTMLObjects(f),this.fOnBeforeUnload=e,this.oEditingMode={},this.elEditingAreaContainer.style.height=parseInt(d.nHeight||this.elEditingAreaContainer.offsetHeight)+"px",this.nMinHeight=d.nMinHeight||10,this.niMinWidth=d.nMinWidth||10},_assignHTMLObjects:function(b){b=a.$(b)||document,this.elEditingAreaContainer=a("DIV.xpress_xeditor_editing_area_container",b).get(0),this.elEditingAreaSkipUI=a("A.skip",b).get(0)},$BEFORE_MSG_APP_READY:function(){this.oApp.exec("ADD_APP_PROPERTY",["elEditingAreaContainer",this.elEditingAreaContainer]),this.oApp.exec("ADD_APP_PROPERTY",["getIR",a.fnBind(this.getIR,this)]),this.oApp.exec("ADD_APP_PROPERTY",["setIR",this.setIR]),this.oApp.exec("ADD_APP_PROPERTY",["getEditingMode",a.fnBind(this.getEditingMode,this)])},$ON_MSG_APP_READY:function(){this.oApp.exec("CHANGE_EDITING_MODE",[this.sInitialMode,!0]),this.oApp.exec("LOAD_IR_FIELD",[!1]),this.oApp.registerBrowserEvent(this.elEditingAreaSkipUI,"focus","MSG_EDITING_AREA_SIZE_CHANGED",[],50),this.oApp.registerBrowserEvent(this.elEditingAreaSkipUI,"blur","MSG_EDITING_AREA_SIZE_CHANGED",[],50)},$AFTER_MSG_APP_READY:function(){this.oApp.exec("UPDATE_IR_FIELD",[])},$ON_LOAD_IR_FIELD:function(a){this.oApp.setIR(this.oIRField.value,a)},$ON_UPDATE_IR_FIELD:function(){this.oIRField.value=this.oApp.getIR()},$BEFORE_CHANGE_EDITING_MODE:function(a){this._oPrevActivePlugin=this.oActivePlugin,this.oActivePlugin=this.oEditingMode[a]},$AFTER_CHANGE_EDITING_MODE:function(a,b){if(this._oPrevActivePlugin){var c=this._oPrevActivePlugin.getIR();this.oApp.exec("SET_IR",[c]),this.oApp.exec("ENABLE_UI",[this._oPrevActivePlugin.sMode]),this._setEditingAreaDimension()}this.oApp.exec("DISABLE_UI",[this.oActivePlugin.sMode]),b||this.oApp.exec("FOCUS",[])},$ON_SET_IS_DIRTY:function(a){this.bIsDirty=a},$ON_FOCUS:function(){this.oActivePlugin&&"function"==typeof this.oActivePlugin.setIR&&this.oActivePlugin.focus()},$BEFORE_SET_IR:function(a,b){b=b||!1,b||this.oApp.exec("RECORD_UNDO_ACTION",["SET CONTENTS"])},$ON_SET_IR:function(a){this.oActivePlugin&&"function"==typeof this.oActivePlugin.setIR&&this.oActivePlugin.setIR(a)},$AFTER_SET_IR:function(a,b){b=b||!1,b||this.oApp.exec("RECORD_UNDO_ACTION",["SET CONTENTS"])},$ON_REGISTER_EDITING_AREA:function(a){this.oEditingMode[a.sMode]=a,this.attachDocumentEvents(a.oEditingArea)},$ON_MSG_EDITING_AREA_RESIZE_STARTED:function(){this.oActivePlugin.elEditingArea.style.display="none",this.iStartingHeight=parseInt(this.elEditingAreaContainer.style.height)},$ON_RESIZE_EDITING_AREA:function(a,b){var c=parseInt(a),d=parseInt(b);c"]);break;default:return}a.preventDefault(),a.stopPropagation()}},$ON_EVENT_EDITING_AREA_KEYUP:function(a){229==a.keyCode||13==a.keyCode||a.altKey||a.ctrlKey||a.keyCode>=33&&a.keyCode<=40||16==a.keyCode||this._recordUndo(a)},$ON_PASTE_HTML:function(b,c){if(this.oApp.getEditingMode()==this.sMode){var d=c||this.oApp.getSelection();if(d.pasteHTML(b),!a.browser.msie){var e=d.placeStringBookmark();this.oApp.getWYSIWYGDocument().body.innerHTML=this.oApp.getWYSIWYGDocument().body.innerHTML,d.moveToBookmark(e),d.collapseToEnd(),d.select(),d.removeStringBookmark(e)}this.oApp.exec("RECORD_UNDO_ACTION",["INSERT HTML"])}},$AFTER_MSG_EDITING_AREA_RESIZE_ENDED:function(){this.oApp.exec("REFRESH_WYSIWYG",[])},$ON_RESTORE_IE_SELECTION:function(){this._oIERange&&(this._oIERange.select(),this._oPrevIERange=this._oIERange,this._oIERange=null)},initIframe:function(){try{if(this.doc=this.iframe.contentWindow.document,null==this.doc||"about:blank"==this.doc.location.href)throw new Error("Access denied");this._enableWYSIWYG(),this.status=xe.PLUGIN_STATUS.READY}catch(b){if(!(this._nIFrameReadyCount-->0))throw"iframe for WYSIWYG editing mode can't be initialized. Please check if the iframe document exists and is also accessable(cross-domain issues). ";setTimeout(a.fnBind(this.initIframe,this),100)}},getIR:function(){var a,b=this.doc.body.innerHTML;return a=this.oApp.applyConverter?this.oApp.applyConverter(this.sMode+"_TO_IR",b):b},setIR:function(b){var c;c=this.oApp.applyConverter?this.oApp.applyConverter("IR_TO_"+this.sMode,b):b,this.doc.body.innerHTML=c,a.browser.mozilla&&""==this.doc.body.innerHTML&&(this.doc.body.innerHTML="
")},getWindow:function(){return this.iframe.contentWindow},getDocument:function(){return this.iframe.contentWindow.document},focus:function(){},_recordUndo:function(a){var b=new Date;b-this.iLastUndoRecorded"),""==h.innerHTML&&(h.innerHTML="
"),h.nextSibling&&"BR"==h.nextSibling.tagName&&h.parentNode.removeChild(h.nextSibling),b.selectNodeContents(h),b.collapseToStart(),b.select(),this.oApp.exec("CHECK_STYLE_CHANGE",[])}else b.removeStringBookmark(c)}}}),xe.XE_WYSIWYGStyler=a.Class({name:"XE_WYSIWYGStyler",$PRECONDITION:function(){return"WYSIWYG"==this.oApp.getEditingMode()},$ON_SET_WYSIWYG_STYLE:function(b){var c=this.oApp.getSelection();if(c.collapsed){var d=this.oApp.getWYSIWYGDocument().createElement("SPAN");c.insertNode(d),d.innerHTML=unescape("%uFEFF");var e;for(var f in b)e=b[f],"string"==typeof e&&(d.style[f]=e);return c.selectNodeContents(d),c.collapseToEnd(),c._window.focus(),c._window.document.body.focus(),c.select(),a.browser.mozilla&&3==a.browser.nVersion&&(d.innerHTML=""),void 0}this.oApp.exec("RECORD_UNDO_BEFORE_ACTION",["FONT STYLE"]),c.styleRange(b),c._window.focus(),c.select(),this.oApp.exec("RECORD_UNDO_AFTER_ACTION",["FONT STYLE"])}}),xe.XE_WYSIWYGStyleGetter=a.Class({name:"XE_WYSIWYGStyleGetter",hKeyUp:null,getStyleInterval:200,oStyleMap:{fontFamily:{type:"Value",css:"fontFamily"},fontSize:{type:"Value",css:"fontSize"},lineHeight:{type:"Value",css:"lineHeight",converter:function(a,b){return a.match(/px$/)?Math.ceil(parseInt(a)/parseInt(b.fontSize)*10)/10:a}},bold:{command:"bold"},underline:{command:"underline"},italic:{command:"italic"},lineThrough:{command:"strikethrough"},superscript:{command:"superscript"},subscript:{command:"subscript"},justifyleft:{command:"justifyleft"},justifycenter:{command:"justifycenter"},justifyright:{command:"justifyright"},justifyfull:{command:"justifyfull"},orderedlist:{command:"insertorderedlist"},unorderedlist:{command:"insertunorderedlist"}},$init:function(){this.oStyle=this._getBlankStyle()},$PRECONDITION:function(){return"WYSIWYG"!=this.oApp.getEditingMode()?!1:!0},$ON_MSG_APP_READY:function(){this.oDocument=this.oApp.getWYSIWYGDocument(),this.oApp.exec("ADD_APP_PROPERTY",["getCurrentStyle",a.fnBind(this.getCurrentStyle,this)])},$ON_EVENT_EDITING_AREA_MOUSEUP:function(){this.hKeyUp&&clearTimeout(this.hKeyUp),this.oApp.exec("CHECK_STYLE_CHANGE",[])},$ON_EVENT_EDITING_AREA_KEYUP:function(b){(8==b.keyCode||b.keyCode>=33&&b.keyCode<=40||45==b.keyCode||46==b.keyCode)&&(this.hKeyUp&&clearTimeout(this.hKeyUp),this.hKeyUp=setTimeout(a.fnBind(this.oApp.exec,this.oApp,"CHECK_STYLE_CHANGE",[]),this.getStyleInterval))},$ON_CHECK_STYLE_CHANGE:function(){this._getStyle()},$ON_RESET_STYLE_STATUS:function(){var a=this._getBlankStyle();for(var b in a)this.oApp.exec("SET_STYLE_STATUS",[b,a[b]])},getCurrentStyle:function(){return this.oStyle},_check_style_change:function(){this.oApp.exec("CHECK_STYLE_CHANGE",[])},_getBlankStyle:function(){var a={};for(var b in this.oStyleMap)a[b]="Value"==this.oStyleMap[b].type?"":0; -return a},_getStyle:function(){var a,b,c=this.oApp.getSelection(),d=function(a){return a.childNodes&&0!=a.childNodes.length?!1:!0},e=c.getNodes(!1,d);a=0==e.length?this._getStyleOf(c.commonAncestorContainer):this._getStyleOf(e[0]);for(b in a)this.oStyleMap[b].converter&&(a[b]=this.oStyleMap[b].converter(a[b],a)),this.oStyle[b]!=a[b]&&this.oApp.exec("MSG_STYLE_CHANGED",[b,a[b]]);this.oStyle=a},_getStyleOf:function(b){var c=this._getBlankStyle();if(!b)return c;3==b.nodeType&&(b=b.parentNode);var d,e=a(b);for(var f in this.oStyle)if(d=this.oStyleMap[f],d.type&&"Value"==d.type){if(d.css){var g=e.css(d.css);"fontFamily"==f&&(g=g.split(/,/)[0]),c[f]=g}else if(d.command)try{c[f]=this.oDocument.queryCommandState(d.command)}catch(h){}}else if(d.command)try{c[f]=this.oDocument.queryCommandState(d.command)?1:0}catch(h){}return c}}),xe.XE_FontSizeWithSelectUI=a.Class({name:"XE_FontSizeWithSelectUI",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elFontSizeSelect=a("SELECT.xpress_xeditor_ui_fontSize_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elFontSizeSelect,"change","SET_FONTSIZE_FROM_SELECT_UI"),this.elFontSizeSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(a,b){"fontSize"==a&&(this.elFontSizeSelect.value=b,this.elFontSizeSelect.selectedIndex<0&&(this.elFontSizeSelect.selectedIndex=0))},$ON_SET_FONTSIZE_FROM_SELECT_UI:function(){var a=this.elFontSizeSelect.value;a&&(this.oApp.exec("SET_WYSIWYG_STYLE",[{fontSize:a}]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}),xe.XE_FontNameWithSelectUI=a.Class({name:"XE_FontNameWithSelectUI",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elFontNameSelect=a("SELECT.xpress_xeditor_ui_fontName_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elFontNameSelect,"change","SET_FONTNAME_FROM_SELECT_UI"),this.elFontNameSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(a,b){"fontFamily"==a&&(this.elFontNameSelect.value=b.toLowerCase(),this.elFontNameSelect.selectedIndex<0&&(this.elFontNameSelect.selectedIndex=0))},$ON_SET_FONTNAME_FROM_SELECT_UI:function(){var a=this.elFontNameSelect.value;a&&(this.oApp.exec("SET_WYSIWYG_STYLE",[{fontFamily:a}]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}),xe.XE_LineHeight=a.Class({name:"XE_LineHeight",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(){},$ON_SET_LINEHEIGHT:function(a){this.setLineHeight(a)},getLineHeight:function(){var b,c,d,e=this._getSelectedNodes(!1);if(0==e.length)return-1;var f=e.length;0==f?d=-1:(c=this._getLineWrapper(e[0]),d=this._getWrapperLineheight(c));var g=this.oSelection.getStartNode();if(d>0)for(var h=1;f>h;h++)if(!this._isChildOf(e[h],b)&&e[h]&&(b=this._getLineWrapper(e[h]),b!=c)){if(curHeight=this._getWrapperLineheight(b),curHeight!=d){d=-1;break}c=b}b=this._getLineWrapper(e[f-1]);var i=this.oSelection.getEndNode();return selectText=a.fnBind(function(a,b){this.oSelection.setEndNodes(a,b),this.oSelection.select()},this,g,i),setTimeout(selectText,100),d},setLineHeight:function(b){function c(a,b){if(!a)try{a=thisRef.oSelection.surroundContentsWithNewNode("P")}catch(c){a=thisRef.oSelection.surroundContentsWithNewNode("DIV")}return a.style.lineHeight=b,a}function d(a){for(;a&&"BODY"!=a.tagName;)a=xe.DOMFix.parentNode(a);return a?!0:!1}thisRef=this;var e=this._getSelectedNodes(!1);if(0!=e.length){var f,g,h=e.length;this.oApp.exec("RECORD_UNDO_BEFORE_ACTION",["LINEHEIGHT"]),g=this._getLineWrapper(e[0]),g=c(g,b);for(var i=g,j=g,k=1;h>k;k++){try{if(!d(xe.DOMFix.parentNode(e[k])))continue}catch(l){continue}this._isChildOf(e[k],f)||(f=this._getLineWrapper(e[k]),f!=g&&(f=c(f,b),g=f))}j=f||i,setTimeout(a.fnBind(function(a,b){this.oSelection.setEndNodes(a,b),this.oSelection.select(),this.oApp.exec("RECORD_UNDO_AFTER_ACTION",["LINEHEIGHT"])},this,i,j),100)}},_getSelectedNodes:function(a){a||(this.oSelection=this.oApp.getSelection()),this.oSelection.collapsed&&this.oSelection.selectNode(this.oSelection.commonAncestorContainer);var b=this.oSelection.getTextNodes();if(0==b.length){var c=this.oSelection.getStartNode();c?b[0]=c:b=[]}return b},_getWrapperLineheight:function(a){var b="";if(a&&a.style.lineHeight)b=a.style.lineHeight;else for(a=this.oSelection.commonAncesterContainer;a&&!this.oSelection.rxLineBreaker.test(a.tagName);){if(a&&a.style.lineHeight){b=a.style.lineHeight;break}a=xe.DOMFix.parentNode(a)}return b},_isChildOf:function(a,b){for(;a&&"BODY"!=a.tagName;){if(a==b)return!0;a=xe.DOMFix.parentNode(a)}return!1},_getLineWrapper:function(a){var b=this.oApp.getEmptySelection();b.selectNode(a);var c,d,e,f,g=b.getLineInfo(),h=g.oStart,i=g.oEnd,j=null;return c=h.oNode,e=h.oLineBreaker,d=i.oNode,f=i.oLineBreaker,this.oSelection.setEndNodes(c,d),e==f&&("P"==e.tagName||"DIV"==e.tagName?j=e:this.oSelection.setEndNodes(e.firstChild,e.lastChild)),j}}),xe.XE_LineHeightWithSelectUI=a.Class({name:"XE_LineHeightWithSelectUI",_assignHTMLObjects:function(b){this.elLineHeightSelect=a("SELECT.xpress_xeditor_ui_lineHeight_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elLineHeightSelect,"change","SET_LINEHEIGHT_FROM_SELECT_UI"),this.elLineHeightSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(a,b){"lineHeight"==a&&(this.elLineHeightSelect.value=b,this.elLineHeightSelect.selectedIndex<0&&(this.elLineHeightSelect.selectedIndex=0))},$ON_SET_LINEHEIGHT_FROM_SELECT_UI:function(){var a=this.elLineHeightSelect.value;a&&(this.elLineHeightSelect.selectedIndex=0,this.oApp.exec("SET_LINEHEIGHT",[a]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}).extend(xe.XE_LineHeight),xe.XE_ColorPalette=a.Class({name:"XE_ColorPalette",rxRGBColorPattern:/rgb\((\d+), ?(\d+), ?(\d+)\)/i,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elColorPaletteLayer=a("UL.xpress_xeditor_color_palette",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elColorPaletteLayer,"click","EVENT_MOUSEUP_COLOR_PALETTE")},$ON_SHOW_COLOR_PALETTE:function(a,b){this.sCallbackCmd=a,this.oLayerContainer=b,this.oLayerContainer.insertBefore(this.elColorPaletteLayer,null),this.elColorPaletteLayer.style.display="block"},$ON_HIDE_COLOR_PALETTE:function(){this.elColorPaletteLayer.style.display="none"},$ON_COLOR_PALETTE_APPLY_COLOR:function(a){function b(a){var b=parseInt(a).toString(16);return b.length<2&&(b="0"+b),b.toUpperCase()}if(this.rxRGBColorPattern.test(a)){var c=b(RegExp.$1),d=b(RegExp.$2),e=b(RegExp.$3);a="#"+c+d+e}this.oApp.exec(this.sCallbackCmd,[a])},$ON_EVENT_MOUSEUP_COLOR_PALETTE:function(a){var b=a.target;b.style.backgroundColor&&this.oApp.exec("COLOR_PALETTE_APPLY_COLOR",[b.style.backgroundColor])}}),xe.XE_FontColor=a.Class({name:"XE_FontColor",rxColorPattern:/^#?[0-9a-fA-F]{6}$|^rgb\(\d+, ?\d+, ?\d+\)$/i,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_fontcolor_layer",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.exec("REGISTER_UI_EVENT",["fontColor","click","TOGGLE_FONTCOLOR_LAYER"])},$ON_TOGGLE_FONTCOLOR_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer,null,"SHOW_COLOR_PALETTE",["APPLY_FONTCOLOR",this.elDropdownLayer]])},$ON_APPLY_FONTCOLOR:function(a){return this.rxColorPattern.test(a)?(this.oApp.exec("SET_WYSIWYG_STYLE",[{color:a}]),this.oApp.exec("HIDE_ACTIVE_LAYER"),void 0):(alert(this.oApp.$MSG("XE_FontColor.invalidColorCode")),void 0)}}),xe.XE_BGColor=a.Class({name:"XE_BGColor",rxColorPattern:/^#?[0-9a-fA-F]{6}$|^rgb\(\d+, ?\d+, ?\d+\)$/i,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_bgcolor_layer",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.exec("REGISTER_UI_EVENT",["bgColor","click","TOGGLE_BGCOLOR_LAYER"]),this.oApp.registerBrowserEvent(this.elDropdownLayer,"click","EVENT_APPLY_BGCOLOR",[])},$ON_TOGGLE_BGCOLOR_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer,null,"SHOW_COLOR_PALETTE",["APPLY_BGCOLOR",this.elDropdownLayer]])},$ON_EVENT_APPLY_BGCOLOR:function(a){var b=a.target;if("SPAN"==b.tagName&&(b=b.parentNode),"BUTTON"==b.tagName){var c,d;c=b.style.backgroundColor,d=b.style.color,this.oApp.exec("APPLY_BGCOLOR",[c,d])}},$ON_APPLY_BGCOLOR:function(a,b){if(!this.rxColorPattern.test(a))return alert(this.oApp.$MSG("XE_BGColor.invalidColorCode")),void 0;var c={backgroundColor:a};b&&(c.color=b),this.oApp.exec("SET_WYSIWYG_STYLE",[c]),this.oApp.exec("HIDE_ACTIVE_LAYER")}}),xe.XE_Quote=a.Class({name:"XE_Quote",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_blockquote_layer",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.exec("REGISTER_UI_EVENT",["quote","click","TOGGLE_BLOCKQUOTE_LAYER"]),this.oApp.registerBrowserEvent(this.elDropdownLayer,"click","EVENT_APPLY_SEDITOR_BLOCKQUOTE",[])},$ON_TOGGLE_BLOCKQUOTE_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer])},$ON_EVENT_APPLY_SEDITOR_BLOCKQUOTE:function(a){var b=a.target;if("BUTTON"==b.tagName){var c=b.parentNode.className;"q8"!=c?this._wrapBlock("BLOCKQUOTE",c):this._unwrapBlock("BLOCKQUOTE"),this.oApp.exec("HIDE_ACTIVE_LAYER",[])}},_unwrapBlock:function(a){for(var b=this.oApp.getSelection(),c=b.commonAncestorContainer;c&&c.tagName!=a;)c=c.parentNode;if(c){for(;c.firstChild;)c.parentNode.insertBefore(c.firstChild,c);c.parentNode.removeChild(c)}},_wrapBlock:function(a,b){var c,d,e=this.oApp.getSelection(),f=e.getLineInfo(),g=f.oStart,h=f.oEnd,i=/BODY|TD|LI/i;c=g.bParentBreak&&!i.test(g.oLineBreaker.tagName)?g.oNode.parentNode:g.oNode,d=h.bParentBreak&&!i.test(h.oLineBreaker.tagName)?h.oNode.parentNode:h.oNode,e.setStartBefore(c),e.setEndAfter(d);var j=this._expandToTableStart(e,d);j&&(d=j,e.setEndAfter(j)),j=this._expandToTableStart(e,c),j&&(c=j,e.setStartBefore(j)),j=c;for(var k=e.commonAncestorContainer;j&&j!=k&&j.parentNode!=k;)j=j.parentNode;oFormattingNode=e._document.createElement(a),b&&(oFormattingNode.className=b),j==k?k.insertBefore(oFormattingNode,k.firstChild):k.insertBefore(oFormattingNode,j),e.setStartAfter(oFormattingNode),e.setEndAfter(d),e.surroundContents(oFormattingNode);for(var l,m=oFormattingNode.childNodes,n=m.length-1;n>=0;n--)if(3==m[n].nodeType||"BR"==m[n].tagName){var o=e._document.createElement("P");for(l=m[n].nextSibling;n>=0&&m[n]&&(3==m[n].nodeType||"BR"==m[n].tagName);)o.insertBefore(m[n--],o.firstChild);oFormattingNode.insertBefore(o,l),n++}if(oFormattingNode&&oFormattingNode.parentNode){var o=e._document.createElement("P");o.innerHTML=unescape("
"),oFormattingNode.parentNode.insertBefore(o,oFormattingNode.nextSibling)}return this.oApp.exec("RECORD_UNDO_ACTION",["Block Quote"]),oFormattingNode},_expandToTableStart:function(a,b){for(var c=a.commonAncestorContainer,d=null,e=!1;b&&!e;){if(b==c&&(e=!0),/TBODY|TFOOT|THEAD|TR/i.test(b.tagName)){d=this._getTableRoot(b);break}b=b.parentNode}return d},_getTableRoot:function(a){for(;a&&"TABLE"!=a.tagName;)a=a.parentNode;return a}}),xe.XE_SCharacter=a.Class({name:"XE_SCharacter",$init:function(b){this.bIE=a.browser.msie,this._assignHTMLObjects(b),this.charSet=[],this.charSet[0]=unescape("FF5B FF5D 3014 3015 3008 3009 300A 300B 300C 300D 300E 300F 3010 3011 2018 2019 201C 201D 3001 3002 %B7 2025 2026 %A7 203B 2606 2605 25CB 25CF 25CE 25C7 25C6 25A1 25A0 25B3 25B2 25BD 25BC 25C1 25C0 25B7 25B6 2664 2660 2661 2665 2667 2663 2299 25C8 25A3 25D0 25D1 2592 25A4 25A5 25A8 25A7 25A6 25A9 %B1 %D7 %F7 2260 2264 2265 221E 2234 %B0 2032 2033 2220 22A5 2312 2202 2261 2252 226A 226B 221A 223D 221D 2235 222B 222C 2208 220B 2286 2287 2282 2283 222A 2229 2227 2228 FFE2 21D2 21D4 2200 2203 %B4 FF5E 02C7 02D8 02DD 02DA 02D9 %B8 02DB %A1 %BF 02D0 222E 2211 220F 266D 2669 266A 266C 327F 2192 2190 2191 2193 2194 2195 2197 2199 2196 2198 321C 2116 33C7 2122 33C2 33D8 2121 2668 260F 260E 261C 261E %B6 2020 2021 %AE %AA %BA 2642 2640").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[1]=unescape("%BD 2153 2154 %BC %BE 215B 215C 215D 215E %B9 %B2 %B3 2074 207F 2081 2082 2083 2084 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 FFE6 %24 FFE5 FFE1 20AC 2103 212B 2109 FFE0 %A4 2030 3395 3396 3397 2113 3398 33C4 33A3 33A4 33A5 33A6 3399 339A 339B 339C 339D 339E 339F 33A0 33A1 33A2 33CA 338D 338E 338F 33CF 3388 3389 33C8 33A7 33A8 33B0 33B1 33B2 33B3 33B4 33B5 33B6 33B7 33B8 33B9 3380 3381 3382 3383 3384 33BA 33BB 33BC 33BD 33BE 33BF 3390 3391 3392 3393 3394 2126 33C0 33C1 338A 338B 338C 33D6 33C5 33AD 33AE 33AF 33DB 33A9 33AA 33AB 33AC 33DD 33D0 33D3 33C3 33C9 33DC 33C6").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[2]=unescape("3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 326A 326B 326C 326D 326E 326F 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 327A 327B 24D0 24D1 24D2 24D3 24D4 24D5 24D6 24D7 24D8 24D9 24DA 24DB 24DC 24DD 24DE 24DF 24E0 24E1 24E2 24E3 24E4 24E5 24E6 24E7 24E8 24E9 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 246A 246B 246C 246D 246E 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 320A 320B 320C 320D 320E 320F 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 321A 321B 249C 249D 249E 249F 24A0 24A1 24A2 24A3 24A4 24A5 24A6 24A7 24A8 24A9 24AA 24AB 24AC 24AD 24AE 24AF 24B0 24B1 24B2 24B3 24B4 24B5 2474 2475 2476 2477 2478 2479 247A 247B 247C 247D 247E 247F 2480 2481 2482").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[3]=unescape("3131 3132 3133 3134 3135 3136 3137 3138 3139 313A 313B 313C 313D 313E 313F 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 314A 314B 314C 314D 314E 314F 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 315A 315B 315C 315D 315E 315F 3160 3161 3162 3163 3165 3166 3167 3168 3169 316A 316B 316C 316D 316E 316F 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 317A 317B 317C 317D 317E 317F 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 318A 318B 318C 318D 318E").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[4]=unescape("0391 0392 0393 0394 0395 0396 0397 0398 0399 039A 039B 039C 039D 039E 039F 03A0 03A1 03A3 03A4 03A5 03A6 03A7 03A8 03A9 03B1 03B2 03B3 03B4 03B5 03B6 03B7 03B8 03B9 03BA 03BB 03BC 03BD 03BE 03BF 03C0 03C1 03C3 03C4 03C5 03C6 03C7 03C8 03C9 %C6 %D0 0126 0132 013F 0141 %D8 0152 %DE 0166 014A %E6 0111 %F0 0127 I 0133 0138 0140 0142 0142 0153 %DF %FE 0167 014B 0149 0411 0413 0414 0401 0416 0417 0418 0419 041B 041F 0426 0427 0428 0429 042A 042B 042C 042D 042E 042F 0431 0432 0433 0434 0451 0436 0437 0438 0439 043B 043F 0444 0446 0447 0448 0449 044A 044B 044C 044D 044E 044F").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[5]=unescape("3041 3042 3043 3044 3045 3046 3047 3048 3049 304A 304B 304C 304D 304E 304F 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 305A 305B 305C 305D 305E 305F 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 306A 306B 306C 306D 306E 306F 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 307A 307B 307C 307D 307E 307F 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 308A 308B 308C 308D 308E 308F 3090 3091 3092 3093 30A1 30A2 30A3 30A4 30A5 30A6 30A7 30A8 30A9 30AA 30AB 30AC 30AD 30AE 30AF 30B0 30B1 30B2 30B3 30B4 30B5 30B6 30B7 30B8 30B9 30BA 30BB 30BC 30BD 30BE 30BF 30C0 30C1 30C2 30C3 30C4 30C5 30C6 30C7 30C8 30C9 30CA 30CB 30CC 30CD 30CE 30CF 30D0 30D1 30D2 30D3 30D4 30D5 30D6 30D7 30D8 30D9 30DA 30DB 30DC 30DD 30DE 30DF 30E0 30E1 30E2 30E3 30E4 30E5 30E6 30E7 30E8 30E9 30EA 30EB 30EC 30ED 30EE 30EF 30F0 30F1 30F2 30F3 30F4 30F5 30F6").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" ")},_assignHTMLObjects:function(b){b=a.$(b)||document,this.elDropdownLayer=a("DIV.xpress_xeditor_sCharacter_layer",b).get(0),this.oTextField=a("INPUT",this.elDropdownLayer).get(0),this.oInsertButton=a("+ BUTTON",this.oTextField).get(0),this.aCloseButton=a("BUTTON.close",this.elDropdownLayer).get(),this.aSCharList=a(".list",this.elDropdownLayer).get();var c=a(">UL",this.elDropdownLayer).get(0);this.aLabelA=a("A",c).get()},$ON_MSG_APP_READY:function(){var b=a.fnBind(this.oApp.exec,this.oApp,"INSERT_SCHARACTERS",[this.oTextField.value]);a(this.oInsertButton).click(b),this.oApp.exec("SET_SCHARACTER_LIST",[this.charSet]);for(var c=0;cd;d++)c[d]=document.createElement("LI"),c[d].innerHTML='",this.aSCharList[a].appendChild(c[d])}},_stopBrowserEvent:function(b,c){a(b).bind(c,function(a){a.stopPropagation(),a.preventDefault()})}}),xe.XE_UndoRedo=a.Class({name:"XE_UndoRedo",actionHistory:null,oCurStateIdx:null,iMinimumSizeChange:10,sBlankContentsForFF:"
",$init:function(){this.aUndoHistory=[],this.oCurStateIdx={nIdx:0,nStep:0}},$PRECONDITION:function(a){if(a.match(/_DO_RECORD_UNDO_HISTORY_AT$/))return!0;try{if("WYSIWYG"!=this.oApp.getEditingMode())return!1}catch(b){return!1}return!0},$BEFORE_MSG_APP_READY:function(){this.oApp.exec("DO_RECORD_UNDO_HISTORY_AT",[this.oCurStateIdx,"","",null])},$ON_MSG_APP_READY:function(){this.bFF=a.browser.mozilla,this.oApp.exec("ADD_APP_PROPERTY",["getUndoHistory",a.fnBind(this.getUndoHistory,this)]),this.oApp.exec("ADD_APP_PROPERTY",["getUndoStateIdx",a.fnBind(this.getUndoStateIdx,this)]),this.oApp.exec("REGISTER_UI_EVENT",["undo","click","UNDO"]),this.oApp.exec("REGISTER_UI_EVENT",["redo","click","REDO"]),this.oApp.exec("REGISTER_HOTKEY",["ctrl+z","UNDO"]),this.oApp.exec("REGISTER_HOTKEY",["ctrl+y","REDO"])},$ON_UNDO:function(){if(this.oApp.exec("DO_RECORD_UNDO_HISTORY",["KEYPRESS",!1,!1,1]),0!=this.oCurStateIdx.nIdx){if(this.oCurStateIdx.nStep>0)this.oCurStateIdx.nStep--;else{var a=this.aUndoHistory[this.oCurStateIdx.nIdx];this.oCurStateIdx.nIdx--,a.nTotalSteps>1?this.oCurStateIdx.nStep=0:(a=this.aUndoHistory[this.oCurStateIdx.nIdx],this.oCurStateIdx.nStep=a.nTotalSteps-1)}this.oApp.exec("RESTORE_UNDO_HISTORY",[this.oCurStateIdx.nIdx,this.oCurStateIdx.nStep]),this.oApp.exec("CHECK_STYLE_CHANGE",[])}},$ON_REDO:function(){if(!(this.oCurStateIdx.nIdx>=this.aUndoHistory.length)){var a=this.aUndoHistory[this.oCurStateIdx.nIdx];this.oCurStateIdx.nIdx==this.aUndoHistory.length-1&&this.oCurStateIdx.nStep>=a.nTotalSteps-1||(this.oCurStateIdx.nStep"+b+"";this.oSelection.pasteHTML(e)}else{var f=Math.ceil(1e4*Math.random()),g=this.sATagMarker+f,h=""==b?["unlink"]:["createLink",!1,g+b];this.oApp.exec("EXECCOMMAND",h);try{this.oSelection.setFromSelection()}catch(i){}var j=this.oApp.getWYSIWYGDocument();a(j.body.getElementsByTagName("A")).filter('[href^="'+g+'"]').attr("href",function(){var b=new RegExp("^"+g.replace(/([\.\\])/g,"\\$1"),"i");return d?a(this).attr("target",d):a(this).removeAttr("target"),this.href.replace(b,"")})}this.oApp.exec("HIDE_ACTIVE_LAYER"),setTimeout(a.fnBind(function(){try{this.oSelection.select()}catch(a){}},this),0)},_validateURL:function(a){return/^(http|https|ftp|mailto):(?:\/\/)?((\w|-)+(?:[\.:@](\w|-))+)(?:\/|@)?([^"\?]*?)(?:\?([^\?"]*?))?$/.test(a)},$ON_EVENT_XE_HYPERLINK_KEYDOWN:function(a){13==a.keyCode&&(this.oApp.exec("XE_APPLY_HYPERLINK"),a.preventDefault(),a.stopPropagation())}}),xe.XE_Table=a.Class({name:"XE_Table",iMinRows:1,iMaxRows:20,iMinColumns:1,iMaxColumns:10,iMinBorderWidth:1,iMaxBorderWidth:10,oSelection:null,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){var c=null;this.elDropdownLayer=a("DIV.xpress_xeditor_table_layer",b).get(0),this.welDropdownLayer=a(this.elDropdownLayer),c=a("INPUT",this.elDropdownLayer).get(),this.oRowInput=c[0],this.oColumnInput=c[1],this.oBorderWidthInput=c[2],this.oBorderColorInput=c[3],this.oBGColorInput=c[4],c=a("BUTTON",this.elDropdownLayer).get(),this.oButton_AddRow=c[0],this.oButton_RemoveRow=c[1],this.oButton_AddColumn=c[2],this.oButton_RemoveColumn=c[3],this.oButton_IncBorderWidth=c[4],this.oButton_DecBorderWidth=c[5],this.oButton_BorderColorPreview=c[6],this.oButton_BorderColor=c[7],this.oButton_BGColorPreview=c[8],this.oButton_BGColor=c[9],this.oButton_Insert=c[10],this.oButton_Cancel=c[11],this.oSampleTable=a("TABLE",this.elDropdownLayer).get(0)},$ON_MSG_APP_READY:function(){this.oApp.exec("REGISTER_UI_EVENT",["table","click","ST_TOGGLE_TOOLBAR_LAYER"]),this.oApp.registerBrowserEvent(this.oRowInput,"change","ST_SET_ROW_NUM",[null,0]),this.oApp.registerBrowserEvent(this.oColumnInput,"change","ST_SET_COLUMN_NUM",[null,0]),this.oApp.registerBrowserEvent(this.oBorderWidthInput,"change","ST_SET_BORDER_WIDTH",[null,0]),this.oApp.registerBrowserEvent(this.oButton_AddRow,"click","ST_ADD_ROW"),this.oApp.registerBrowserEvent(this.oButton_RemoveRow,"click","ST_REMOVE_ROW"),this.oApp.registerBrowserEvent(this.oButton_AddColumn,"click","ST_ADD_COLUMN"),this.oApp.registerBrowserEvent(this.oButton_RemoveColumn,"click","ST_REMOVE_COLUMN"),this.oApp.registerBrowserEvent(this.oButton_IncBorderWidth,"click","ST_INC_BORDER_WIDTH"),this.oApp.registerBrowserEvent(this.oButton_DecBorderWidth,"click","ST_DEC_BORDER_WIDTH"),this.oApp.registerBrowserEvent(this.oButton_BorderColorPreview,"click","ST_TOGGLE_BORDER_COLOR_LAYER"),this.oApp.registerBrowserEvent(this.oButton_BGColorPreview,"click","ST_TOGGLE_BGCOLOR_LAYER"),this.oApp.registerBrowserEvent(this.oButton_BorderColor,"click","ST_TOGGLE_BORDER_COLOR_LAYER"),this.oApp.registerBrowserEvent(this.oButton_BGColor,"click","ST_TOGGLE_BGCOLOR_LAYER"),this.oApp.registerBrowserEvent(this.oButton_Insert,"click","ST_INSERT_TABLE"),this.oApp.registerBrowserEvent(this.oButton_Cancel,"click","ST_CLOSE"),this.oApp.exec("ST_SET_BORDER_COLOR",["#CCCCCC"]),this.oApp.exec("ST_SET_BGCOLOR",["#FFFFFF"])},$ON_ST_TOGGLE_TOOLBAR_LAYER:function(){this.oApp.exec("RECORD_UNDO_ACTION_FORCED",["KEYPRESS"]),this._showNewTable(),this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer])},$ON_ST_ADD_ROW:function(){this.oApp.exec("ST_SET_ROW_NUM",[null,1])},$ON_ST_REMOVE_ROW:function(){this.oApp.exec("ST_SET_ROW_NUM",[null,-1])},$ON_ST_ADD_COLUMN:function(){this.oApp.exec("ST_SET_COLUMN_NUM",[null,1])},$ON_ST_REMOVE_COLUMN:function(){this.oApp.exec("ST_SET_COLUMN_NUM",[null,-1])},$ON_ST_SET_ROW_NUM:function(a,b){a=a||parseInt(this.oRowInput.value),b=b||0,a+=b,athis.iMaxRows&&(a=this.iMaxRows),this.oRowInput.value=a,this._showNewTable()},$ON_ST_SET_COLUMN_NUM:function(a,b){a=a||parseInt(this.oColumnInput.value),b=b||0,a+=b,athis.iMaxColumns&&(a=this.iMaxColumns),this.oColumnInput.value=a,this._showNewTable()},$ON_ST_INSERT_TABLE:function(){var a=this._getTableString();this.oApp.exec("PASTE_HTML",[a]),this.oApp.exec("ST_CLOSE",[])},$ON_ST_CLOSE:function(){this.oApp.exec("HIDE_ACTIVE_LAYER",[])},$ON_ST_SET_BORDER_WIDTH:function(a,b){a=a||parseInt(this.oBorderWidthInput.value),b=b||0,a+=b,athis.iMaxBorderWidth&&(a=this.iMaxBorderWidth),this.oBorderWidthInput.value=a,this._showNewTable()},$ON_ST_INC_BORDER_WIDTH:function(){this.oApp.exec("ST_SET_BORDER_WIDTH",[null,1])},$ON_ST_DEC_BORDER_WIDTH:function(){this.oApp.exec("ST_SET_BORDER_WIDTH",[null,-1])},$ON_ST_TOGGLE_BORDER_COLOR_LAYER:function(){this.welDropdownLayer.hasClass("p1")?this.oApp.exec("ST_HIDE_BORDER_COLOR_LAYER",[]):this.oApp.exec("ST_SHOW_BORDER_COLOR_LAYER",[])},$ON_ST_SHOW_BORDER_COLOR_LAYER:function(){this.welDropdownLayer.addClass("p1"),this.welDropdownLayer.removeClass("p2"),this.oApp.exec("SHOW_COLOR_PALETTE",["ST_SET_BORDER_COLOR_FROM_PALETTE",this.elDropdownLayer])},$ON_ST_HIDE_BORDER_COLOR_LAYER:function(){this.welDropdownLayer.removeClass("p1"),this.oApp.exec("HIDE_COLOR_PALETTE",[])},$ON_ST_TOGGLE_BGCOLOR_LAYER:function(){this.welDropdownLayer.hasClass("p2")?this.oApp.exec("ST_HIDE_BGCOLOR_LAYER",[]):this.oApp.exec("ST_SHOW_BGCOLOR_LAYER",[])},$ON_ST_SHOW_BGCOLOR_LAYER:function(){this.welDropdownLayer.removeClass("p1"),this.welDropdownLayer.addClass("p2"),this.oApp.exec("SHOW_COLOR_PALETTE",["ST_SET_BGCOLOR_FROM_PALETTE",this.elDropdownLayer])},$ON_ST_HIDE_BGCOLOR_LAYER:function(){this.welDropdownLayer.removeClass("p2"),this.oApp.exec("HIDE_COLOR_PALETTE",[])},$ON_ST_SET_BORDER_COLOR_FROM_PALETTE:function(a){this.oApp.exec("ST_SET_BORDER_COLOR",[a]),this.oApp.exec("ST_HIDE_BORDER_COLOR_LAYER",[])},$ON_ST_SET_BORDER_COLOR:function(a){this.oBorderColorInput.value=a,this.oButton_BorderColorPreview.style.backgroundColor=a,this._showNewTable()},$ON_ST_SET_BGCOLOR_FROM_PALETTE:function(a){this.oApp.exec("ST_SET_BGCOLOR",[a]),this.oApp.exec("ST_HIDE_BGCOLOR_LAYER",[])},$ON_ST_SET_BGCOLOR:function(a){this.oBGColorInput.value=a,this.oButton_BGColorPreview.style.backgroundColor=a,this._showNewTable()},_showNewTable:function(){var a=document.createElement("DIV");a.innerHTML=this._getTableString();var b=a.firstChild;this.oSampleTable.parentNode.insertBefore(b,this.oSampleTable),this.oSampleTable.parentNode.removeChild(this.oSampleTable),this.oSampleTable=b},_getTableString:function(){var b=this.oBorderColorInput.value,c=this.oBGColorInput.value,d=this.oBorderWidthInput.value,e="";e=a.browser.msie?"
":a.browser.firefox?"":"";for(var f='
 


 

',g='',h=this.oColumnInput.value,i=0;h>i;i++)g+=e;g+="\n";var j=this.oRowInput.value;f+="";for(var i=0;j>i;i++)f+=g;return f+="",f+="
"}}),xe.XE_EditingModeToggler=a.Class({name:"XE_EditingModeToggler",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){b=a.$(b)||document,this.elModeToggleButton=a("BUTTON.xpress_xeditor_mode_toggle_button",b).get(0),this.welModeToggleButton=a(this.elModeToggleButton)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elModeToggleButton,"click","EVENT_TOGGLE_EDITING_MODE",[])},$ON_EVENT_TOGGLE_EDITING_MODE:function(){"WYSIWYG"==this.oApp.getEditingMode()?this.oApp.exec("CHANGE_EDITING_MODE",["HTMLSrc"]):this.oApp.exec("CHANGE_EDITING_MODE",["WYSIWYG"])},$ON_CHANGE_EDITING_MODE:function(a){"HTMLSrc"==a?(this.welModeToggleButton.addClass("active").parent("span").addClass("active"),this.oApp.exec("DISABLE_ALL_UI",[])):(this.welModeToggleButton.removeClass("active").parent("span").removeClass("active"),this.oApp.exec("ENABLE_ALL_UI",[])) -}}),xe.XE_Editorresize=a.Class({name:"XE_Editorresize",$init:function(b,c){this.inputArea=a(".xpress_xeditor_editing_area_container",b).get(0),this.oVerticalResizer=a(".xpress_xeditor_editingArea_verticalResizer",b).get(0),this.oCheckBox=a("#editorresize",b).get(0),this.oIframe=c;var d=this;a(c).load(function(){d.oIframeBody=a(c).contents().find("body")})},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.oCheckBox,"change","XE_TOGGLE_EDITOR_RESIZE")},$ON_XE_TOGGLE_EDITOR_RESIZE:function(){1==this.oCheckBox.checked?(void 0==this._prevHeight&&(this._prevHeight=this.inputArea.style.height),this.oVerticalResizer.style.display="none",this.oApp.registerBrowserEvent(this.oIframeBody,"keydown","XE_EDITOR_RESIZE"),this.inputArea.style.height=this.oIframe.style.height=this.oIframeBody[0].scrollHeight+"px"):(a(this.oIframeBody).unbind("keydown"),this.oVerticalResizer.style.display="block",this.inputArea.style.height=this._prevHeight,this.oIframe.style.height=this._prevHeight)},$ON_XE_EDITOR_RESIZE:function(){var a=this;setTimeout(function(){a.inputArea.style.height=a.oIframe.style.height=a.oIframeBody[0].scrollHeight+"px"},0)}});var d={"XE_EditingAreaManager.onExit":"%uB0B4%uC6A9%uC774%20%uBCC0%uACBD%uB418%uC5C8%uC2B5%uB2C8%uB2E4.","XE_FontColor.invalidColorCode":"%uC0C9%uC0C1%20%uCF54%uB4DC%uB97C%20%uC62C%uBC14%uB974%uAC8C%20%uC785%uB825%uD558%uC5EC%20%uC8FC%uC2DC%uAE30%20%uBC14%uB78D%uB2C8%uB2E4.\n\n%uC608%29%20%23000000%2C%20%23FF0000%2C%20%23FFFFFF%2C%20%23ffffff%2C%20ffffff","XE_BGColor.invalidColorCode":"%uC0C9%uC0C1%20%uCF54%uB4DC%uB97C%20%uC62C%uBC14%uB974%uAC8C%20%uC785%uB825%uD558%uC5EC%20%uC8FC%uC2DC%uAE30%20%uBC14%uB78D%uB2C8%uB2E4.\n\n%uC608%29%20%23000000%2C%20%23FF0000%2C%20%23FFFFFF%2C%20%23ffffff%2C%20ffffff","XE_Hyperlink.invalidURL":"%uC785%uB825%uD558%uC2E0%20URL%uC774%20%uC62C%uBC14%uB974%uC9C0%20%uC54A%uC2B5%uB2C8%uB2E4."};xe.XpressCore.oMessageMap=d;regex_handler=/<(.*?)\s+on[a-z]+\s*=(?:\s*".*?"|\s*'.*?'|[^\s>]+)(.*?)>/gi,regex_font_color=/color\s*=(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_face=/face\s*=(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_size=/size\s*=(?:\s*"(\d+)"|\s*'(\d+)'|(\d+))/i,regex_style=/style\s*=\s*(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_weight=/font-weight\s*:\s*([a-z]+);?/i,regex_font_style=/font-style\s*:\s*italic;?/i,regex_font_decoration=/text-decoration\s*:\s*([a-z -]+);?/i,regex_jquery=/jQuery\d+\s*=(\s*"\d+"|\d+)/gi,regex_quote_attr=/([\w-]+\s*=(?:\s*"[^"]+"|\s*'[^']+'))|([\w-]+)=([^\s]+)/g;var e=("a,abbr,acronym,address,area,blockquote,br,caption,center,cite,code,col,colgroup,dd,del,dfn,div,dl,dt,em,embed,h1,h2,h3,h4,h5,h6,hr,img,ins,kbd,li,map,object,ol,p,param,pre,q,samp,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,tt,u,ul,var,iframe,object,param,style".split(","),"area,br,col,embed,hr,img,input,param,base,meta,link,basefont,isindex".split(","));xe.XE_XHTMLFormatter=a.Class({name:"XE_XHTMLFormatter",$ON_MSG_APP_READY:function(){this.oApp.addConverter("WYSIWYG_TO_IR",this.TO_IR),this.oApp.addConverter("HTMLSrc_TO_IR",this.TO_IR),this.oApp.addConverter("IR_TO_HTMLSrc",this.IR_TO),this.oApp.addConverter("IR_TO_WYSIWYG",this.IR_TO)},TO_IR:function(b){var c=[];if(a.browser.msie&&(b=b.replace(regex_jquery,""),b=b.replace(/<(\w+) ([^>]+)>/g,function(a,b,c){return"<"+b+" "+c.replace(regex_quote_attr,function(a,b,c,d){return b?b:/^"/.test(d)||/"$/.test(d)?c+"="+d:c+'="'+(d||c)+'"'})+">"})),regex=/<(\/)?([:\w\/-]+)(.*?)>/gi,b=b.replace(regex,function(b,d,f,g){var h="";if(d=d||"",f=f.toLowerCase(),g=a.trim(g||""),d){var i=[],j="";if(a.inArray(f,e)>=0)return"";if(!c.length)return"";do j=c.pop(),j.tag==f&&"deleted"!=j.state&&i.push("");while(c.length&&j.tag!=f);return i.join("")}if(a.inArray(f,e)>=0){var k=g.length;return"br"==f&&(g=""),g&&"/"==g.substring(k-1,k)||(g+=" /"),"<"+f+" "+a.trim(g)+">"}return c.push({tag:f,state:h}),"<"+d+f+(g?" "+g:"")+">"}),c.length){var d="";do d=c.pop(),"deleted"!=d.state&&(b+="");while(c.length)}return regex=/<\/p>[ \t]*(\n)?/gi,b=b.replace(regex,"

\n")},IR_TO:function(a){return a}}),xe.XE_Extension=a.Class({name:"XE_Extension",seq:"",last_doc:"",$init:function(a,b){this.seq=b,this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_extension_layer",b).get(0)},_removeAttrs:function(a){return a},_addEvent:function(){if("WYSIWYG"==this.oApp.getEditingMode()){var b=this.oApp.getWYSIWYGDocument(),c=this.seq,d=function(){var b=a(this),d=b.attr("editor_component");d&&a.isFunction(openComponent)&&(editorPrevNode=b.get(0),openComponent(d,c))};a(b).find("img,div[editor_component]").each(function(){var c=a(this);"IMG"!=this.nodeName||c.attr("editor_component")||c.attr("widget")||c.attr("editor_component","image_link"),this.last_doc!=b&&(c.unbind("dblclick.widget").bind("dblclick.widget",d),this.last_doc=b)})}},$ON_MSG_APP_READY:function(){var b=this.oApp;b.exec("REGISTER_UI_EVENT",["extension","click","TOGGLE_EXTENSION_LAYER"]);var c=function(){b.exec("HIDE_ACTIVE_LAYER",[])};a("a",this.elDropdownLayer).each(function(){var b=a(this);b.attr("component_onclick_event_added")||(b.click(c),b.attr("component_onclick_event_added","Y"))})},$ON_TOGGLE_EXTENSION_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer])},$ON_CHANGE_EDITING_MODE:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_PASTE_HTML:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_LOAD_IR_FIELD:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_SET_IR:function(){var a=this;setTimeout(function(){a._addEvent()},100)}}),xe.XE_AutoSave=a.Class({name:"XE_AutoSave",form:null,textarea:null,$init:function(a,b){this.form=a.form,this.textarea=a,this._assignHTMLObjects(b)},_assignHTMLObjects:function(){this.welMessageBox=a("autosave_message")},$ON_MSG_APP_READY:function(){var b=a(this.form._saved_doc_title),c=a(this.form._saved_doc_content),d=a(this.form._saved_doc_document_srl),e=a.trim(b.val()),f=a.trim(c.val()),g=a.trim(d.val());(e||f||g)&&(confirm(this.form._saved_doc_message.value)?(a(this.form.title).val(e),this.oApp.setIR(f),"function"==typeof editorGetAutoSavedDoc&&editorGetAutoSavedDoc(this.form)):editorRemoveSavedDoc()),editorEnableAutoSave(this.form,a(this.form).attr("editor_sequence")),this.oApp.exec("REGISTER_HOTKEY",["ctrl+shift+s","AUTO_SAVE"])},$ON_AUTO_SAVE:function(){_editorAutoSave()}}),xe.XE_FormatWithSelectUI=a.Class({name:"XE_FormatWithSelectUI",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elFormatSelect=a("SELECT.xpress_xeditor_ui_format_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elFormatSelect,"change","SET_FORMAT_FROM_SELECT_UI"),this.elFormatSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(){var b=this.oApp.getWYSIWYGDocument().queryCommandValue("FormatBlock");return b?(a.browser.msie&&/([0-9])/.test(b)&&(b="h"+RegExp.$1),this.elFormatSelect.value=b.toLowerCase(),this.elFormatSelect.selectedIndex<0&&(this.elFormatSelect.selectedIndex=0),this.elFormatSelect.value!=b.toLowerCase()&&(this.elFormatSelect.selectedIndex=0),void 0):this.elFormatSelect.selectedIndex=0},$ON_SET_FORMAT_FROM_SELECT_UI:function(){var b=this.elFormatSelect.value;b&&(a.browser.msie&&(b="<"+b+">"),this.oApp.exec("EXECCOMMAND",["FormatBlock",!1,b]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}),xe.XE_Table=a.Class({_startSel:null,_endSel:null,$ON_MSG_APP_READY:function(){this._doc=a(this.oApp.getWYSIWYGDocument()),this.$FnMouseDown=a.fnBind(this._mousedown,this),this.$FnMouseUp=a.fnBind(this._mouseup,this),this.$FnMouseMove=a.fnBind(this._mousemove,this),this._doc.mousedown(this.$FnMouseDown),this._startSel=null,this._endSel=null,this.oApp.exec("REGISTER_UI_EVENT",["merge_cells","click","MERGE_CELLS"]),this.oApp.exec("REGISTER_UI_EVENT",["split_col","click","CELL_SPLIT_BY_COL"]),this.oApp.exec("REGISTER_UI_EVENT",["split_row","click","CELL_SPLIT_BY_ROW"]),this.oApp.exec("REGISTER_HOTKEY",["ctrl+alt+m","MERGE_CELLS"]),this.$super.$ON_MSG_APP_READY()},$ON_MERGE_CELLS:function(){var b="",c=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),d=this;if(c.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Merge"]),c.each(function(){b+=a(this).html()}).eq(0).html(b);var e=0;c.eq(0).nextAll("td,th").andSelf().filter(".xe_selected_cell").each(function(){e+=d._getSpan(this,"col")});var f=(this._getRect(c.eq(0)),c.eq(0).parent("tr")),g=c.eq(c.length-1).parent("tr"),h=c.parents("table").eq(0).find("tr"),i=h.index(g.get(0))-h.index(f.get(0))+this._getSpan(c.eq(c.length-1),"row");c.eq(0).attr("colSpan",e).attr("rowSpan",i),c.slice(1).remove()}},$ON_CELL_SPLIT_BY_ROW:function(){var b=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),c=b.parents("table").eq(0),d=this;if(b.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Split By Row"]);var e=this._getRect(b.eq(0)).top,f=this._getRect(b.eq(b.length-1)).bottom;(b=c.find("td,th").filter(function(){var b=d._getRect(a(this));return!(b.bottom<=e||b.top>=f)})).filter(".xe_selected_cell").each(function(){var c=a(this),e=c.parent("tr"),f=d._getSpan(c,"row"),g=d._getRect(c),h=[],i=c.clone().html("
"),j=1,k=1;f>1?(j=Math.ceil(f/2),k=f-j,h.push(function(){c.attr("rowSpan",j)}),i.attr("rowSpan",k)):(b.filter(function(){if(c.get(0)==this)return!1;var b=a(this),e=d._getRect(b);return e.bottom<=g.top||e.top>=g.bottom?!1:!0}).each(function(){var b=a(this),c=d._getSpan(b,"row")+1;h.push(function(){b.attr("rowSpan",c)})}),a.browser.msie?e.after(e.clone().empty().get(0).outerHTML):e.after(e.clone().empty()));var l=e.nextAll("tr");if(l.length){var m=l.eq(j-1).children("td,th").filter(function(){return d._getRect(a(this)).left>g.left});a.browser.msie?m.length?m.eq(0).before(i.get(0).outerHTML):l.eq(j-1).append(i.get(0).outerHTML):m.length?m.slice(0,1).before(i):l.slice(j-1,1).append(i)}else e.after(e.clone().empty().append(i));a.each(h,function(){this()})})}},$ON_CELL_SPLIT_BY_COL:function(){{var b=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),c=b.parents("table").slice(0,1),d=this;(new Date).getTime()}if(b.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Split By Column"]);var e=b.eq(0).parent("tr"),f=this._getRect(e.find(".xe_selected_cell:first")).left,g=this._getRect(e.find(".xe_selected_cell:last")).right;(b=c.find("td,th").filter(function(){var b=d._getRect(a(this));return!(b.right<=f||b.left>=g)})).filter(".xe_selected_cell").each(function(){var c=a(this),e=d._getSpan(c,"col"),f=c.clone().html("
");if(e>1){var g=Math.ceil(e/2),h=e-g;c.attr("colSpan",g),f.attr("colSpan",h)}else{var i=d._getRect(c);b.filter(function(){if(c.get(0)==this)return!1;var b=a(this),e=d._getRect(b);return e.right<=i.left||e.left>=i.right?!1:!0}).each(function(){var b=a(this);b.attr("colSpan",d._getSpan(b,"col")+1)}),f.attr("colSpan",1)}a.browser.msie?c.after(f.get(0).outerHTML):c.after(f)})}},$ON_CHECK_STYLE_CHANGE:function(){var b=["merge_cells","split_col","split_row"],c=this.oApp,d=this._startSel&&this._startSel.is(".xe_selected_cell")?"ENABLE_UI":"DISABLE_UI";a.each(b,function(){c.exec(d,[this])})},_mousedown:function(b){function c(){return e=f.getSelection().cloneRange(),e.collapseToStart(),e=a(e.startContainer).parents().andSelf().filter("td,th").eq(0),e.length?(g._getRect(g._startSel=e),g._doc.bind("mousemove",g.$FnMouseMove),g._doc.bind("mouseup",g.$FnMouseUp),void 0):g._removeAllListener()||!0}var d=a(b.target),e=d.parents().andSelf().filter("td,th,table"),f=this.oApp,g=this;a("td.xe_selected_cell",this.oApp.getWYSIWYGDocument()).removeClass("xe_selected_cell"),this._startSel=null,this._endSel=null,e.length&&this._isLeftClicked(b.button)&&setTimeout(c,0)},_mouseup:function(){this._removeAllListener(),this._startSel=this._endSel=null},_mousemove:function(b){function c(){var a=f.oApp.getSelection();f._startSel&&(f._startSel.get(0).firstChild||f._startSel.text(" "),a.selectNode(f._startSel.get(0).firstChild),a.collapseToStart(),a.select())}var d=a(b.target),e=d.parents().andSelf().filter("td,th").eq(0),f=this;if(e.length&&this._isLeftClicked(b.button)&&!(!this._endSel&&e.get(0)==this._startSel.get(0)||this._endSel&&e.get(0)==this._endSel.get(0))){this._getRect(this._endSel=e);var g=Math.min(this._startSel.rect.top,this._endSel.rect.top),h=Math.min(this._startSel.rect.left,this._endSel.rect.left),i=Math.max(this._startSel.rect.bottom,this._endSel.rect.bottom),j=Math.max(this._startSel.rect.right,this._endSel.rect.right),k=e.parents("table"),l=k.find("td,th").removeClass("xe_selected_cell"),m=a();do m.each(function(){var b=f._getRect(a(this));b.right>j&&(j=b.right),b.lefti&&(i=b.bottom)}),l=l.filter(":not(.xe_selected_cell)"),m=l.filter(function(){var b=f._getRect(a(this));return b.right<=h||b.left>=j||b.bottom<=g||b.top>=i?!1:!0}).addClass("xe_selected_cell");while(m.length);return a.browser.mozilla||setTimeout(c,0),!1}},_removeAllListener:function(){this._doc.unbind("mousemove",this.$FnMouseMove),this._doc.unbind("mouseup",this.$FnMouseUp)},_isLeftClicked:function(b){return a.browser.msie?!!(1&b):0==b},_getRect:function(a){var b=a.get(0);return a.rect={},a.rect.top=b.offsetTop,a.rect.left=b.offsetLeft,a.rect.bottom=a.rect.top+b.offsetHeight,a.rect.right=a.rect.left+b.offsetWidth,a.rect},_getSpan:function(b,c){var d=parseInt(a(b).attr(c+"span"));return isNaN(d)?1:d}}).extend(xe.XE_Table)}(jQuery),window.xe||(xe={}),xe.Editors=[],xe.XE_GET_WYSYWYG_MODE=jQuery.Class({name:"XE_GET_WYSYWYG_MODE",$init:function(a){this.editor_sequence=a},$ON_CHANGE_EDITING_MODE:function(a){editorMode[this.editor_sequence]="HTMLSrc"==a?"html":"wysiwyg"}}),xe.XE_PreservTemplate=jQuery.Class({name:"XE_PreservTemplate",isRun:!1,$BEFORE_SET_IR:function(a){return this.isRun||a?void 0:(this.isRun=!0,!1)}}),xe.XE_Preview=jQuery.Class({name:"XE_Preview",elPreviewButton:null,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(a){this.elPreviewButton=jQuery("BUTTON.xpress_xeditor_preview_button",a)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elPreviewButton.get(0),"click","EVENT_PREVIEW",[])},$ON_EVENT_PREVIEW:function(){}}); \ No newline at end of file +function editorStart_xe(a,b,c,d,e,f,g,h){function i(){try{var a,b=q.contentWindow.document;if("about:blank"==b.location)throw"blank";b.body.innerHTML=b.body.innerHTML.trim(),a=b.body.innerHTML,p.registerPlugin(new xe.XE_EditingArea_WYSIWYG(q)),p.registerPlugin(new xe.XpressRangeManager(q)),p.registerPlugin(new xe.XE_ExecCommand(q)),g&&!b.body.style.fontFamily&&(b.body.style.fontFamily=g),h&&!b.body.style.fontSize&&(b.body.style.fontSize=h),p.run()}catch(c){setTimeout(i,0)}}"undefined"==typeof e&&(e="white"),"undefined"==typeof f&&(f="xeStyle"),"undefined"==typeof g&&(g=""),"undefined"==typeof h&&(h="");var j=request_uri+"modules/editor/styles/"+f+"/editor.html",k=jQuery("#xpress-editor-"+a),l=jQuery(''),m=jQuery(''),n=k.get(0).form;n.setAttribute("editor_sequence",a),k.css("display","none");var o="";jQuery("input[name=content]",n).size()>0&&(o=jQuery("input[name=content]",n).val().replace(/src=\"files\/attach/g,'src="'+request_uri+"files/attach"),jQuery("#xpress-editor-"+a).val(o)),k.hide().css("width","100%").before(l).after(m);var p=new xe.XpressCore,q=l.get(0),r=k.get(0),t=m.get(0),u=jQuery(".xpress-editor",n).get(0);p.getFrame=function(){return q},p.getContent=function(){editorGetContentTextarea_xe(a)};var v=n[c].value;return xFF&&!v&&(v="
"),v=editorReplacePath(v),n[c].value=v,jQuery("#xpress-editor-"+a).val(v),editorRelKeys[a]=new Array,editorRelKeys[a].primary=n[b],editorRelKeys[a].content=n[c],editorRelKeys[a].func=editorGetContentTextarea_xe,editorRelKeys[a].editor=p,editorRelKeys[a].pasteHTML=function(a){p.exec("PASTE_HTML",[a])},xe.Editors[a]=p,p.registerPlugin(new xe.CorePlugin(null)),p.registerPlugin(new xe.XE_PreservTemplate(jQuery("#xpress-editor-"+a).val())),p.registerPlugin(new xe.StringConverterManager),p.registerPlugin(new xe.XE_EditingAreaManager("WYSIWYG",r,{nHeight:parseInt(d),nMinHeight:100},null,u)),p.registerPlugin(new xe.XE_EditingArea_HTMLSrc(t)),p.registerPlugin(new xe.XE_EditingAreaVerticalResizer(u)),p.registerPlugin(new xe.Utils),p.registerPlugin(new xe.DialogLayerManager),p.registerPlugin(new xe.ActiveLayerManager),p.registerPlugin(new xe.Hotkey),p.registerPlugin(new xe.XE_WYSIWYGStyler),p.registerPlugin(new xe.XE_WYSIWYGStyleGetter),p.registerPlugin(new xe.MessageManager(xe.XpressCore.oMessageMap)),p.registerPlugin(new xe.XE_Toolbar(u)),p.registerPlugin(new xe.XE_XHTMLFormatter),p.registerPlugin(new xe.XE_GET_WYSYWYG_MODE(a)),jQuery("ul.extra1").length&&(p.registerPlugin(new xe.XE_ColorPalette(u)),p.registerPlugin(new xe.XE_FontColor(u)),p.registerPlugin(new xe.XE_BGColor(u)),p.registerPlugin(new xe.XE_Quote(u)),p.registerPlugin(new xe.XE_FontNameWithSelectUI(u)),p.registerPlugin(new xe.XE_FontSizeWithSelectUI(u)),p.registerPlugin(new xe.XE_LineHeightWithSelectUI(u)),p.registerPlugin(new xe.XE_UndoRedo),p.registerPlugin(new xe.XE_Table(u)),p.registerPlugin(new xe.XE_Hyperlink(u)),p.registerPlugin(new xe.XE_FormatWithSelectUI(u)),p.registerPlugin(new xe.XE_SCharacter(u))),jQuery("ul.extra2").length&&p.registerPlugin(new xe.XE_Extension(u,a)),jQuery("ul.extra3").length&&p.registerPlugin(new xe.XE_EditingModeToggler(u)),jQuery("#editorresize").length&&p.registerPlugin(new xe.XE_Editorresize(u,q)),jQuery.browser.msie||jQuery.browser.opera||p.registerPlugin(new xe.XE_WYSIWYGEnterKey(q)),(s=n._saved_doc_title)&&p.registerPlugin(new xe.XE_AutoSave(r,u)),i(),p}function editorGetContentTextarea_xe(a){var b=xe.Editors[a]||null;if(!b)return"";var c=b.getIR();if(!jQuery.trim(c.replace(/( |<\/?(p|br|span|div)([^>]+)?>)/gi,"")))return"";if(c=c.replace(/
$/i,""),c.length<1024){var d=Array("#text","A","BR","IMG","EM","STRONG","SPAN","BIG","CITE","CODE","DD","DFN","HR","INS","KBD","LINK","Q","SAMP","SMALL","SUB","SUP","TT"),e=!0,f=jQuery("
"+c+"
").eq(0),g=f.contents();jQuery.each(g,function(){3!=this.nodeType&&-1==jQuery.inArray(this.nodeName,d)&&(e=!1)}),e&&(c="

"+c+"

")}return c=c.replace(/src\s?=\s?(["']?)(?:\.\.\/)+(files\/attach\/)/gi,function(a,b,c){return"src="+(b||"")+c}),c=c.replace(/\<(\/)?([A-Z]+)([^>]*)\>/gi,function(a,b,c,d){return d=d?d.replace(/ ([A-Z]+?)\=/gi,function(a,b){return b=b.toLowerCase()," "+b+"="}):"",c=c.toLowerCase(),b||(b=""),"<"+b+c+d+">"}),c=c.replace("
","
")}function editorGetIframe(a){return jQuery("iframe#editor_iframe_"+a).get(0)}function editorReplaceHTML(a,b){b=editorReplacePath(b);var c=parseInt(a.id.replace(/^.*_/,""),10);editorRelKeys[c].pasteHTML(b)}function editorReplacePath(a){return a=a.replace(/\<([^\>\<]*)(src=|href=|url\()("|\')*([^"\'\)]+)("|\'|\))*(\s|>)*/gi,function(a,b,c,d,e,f,g){"url("==c?(d="",f=")"):("undefined"==typeof d&&(d='"'),"undefined"==typeof f&&(f='"'),"undefined"==typeof g&&(g=""));var h=jQuery.trim(e).replace(/^\.\//,"");return/^(http\:|https\:|ftp\:|telnet\:|mms\:|mailto\:|\/|\.\.|\#)/i.test(h)?a:"<"+b+c+d+request_uri+h+f+g})}function editorGetAutoSavedDoc(a){var b=new Array;b.mid=current_mid,b.editor_sequence=a.getAttribute("editor_sequence"),setTimeout(function(){var a=new Array("error","message","editor_sequence","title","content","document_srl");exec_xml("editor","procEditorLoadSavedDocument",b,function(a){editorRelKeys[b.editor_sequence].primary.value=a.document_srl,"object"==typeof uploadSettingObj[b.editor_sequence]&&editorUploadInit(uploadSettingObj[b.editor_sequence],!0)},a)},0)}!function(a){function b(b){function c(a){return function(){return a.apply(this.$this,arguments)}}var d=b.prototype;this.prototype.$super={};for(var e in d)d.propertyIsEnumerable(e)&&("undefined"==typeof this.prototype[e]&&(this.prototype[e]=d[e]),this.prototype.$super[e]=a.isFunction(d[e])?c(d[e]):d[e]);return this}a.extend({Class:function(c){function d(){"undefined"!=typeof this.$super&&(this.$super.$this=this),a.isFunction(this.$init)&&this.$init.apply(this,arguments)}return d.prototype=c,d.constructor=d,d.extend=b,d},$:function(b){return"string"==typeof b?"<"==b.substring(0,1)?a(b).get(0):a("#"+b).get(0):b},fnBind:function(b,c){var d=a.makeArray(arguments);return d.shift(),d.shift(),function(){var e=d.concat(a.makeArray(arguments));return b.apply(c,e)}}}),a.browser.nVersion=parseFloat(a.browser.version),"undefined"==typeof window.xe&&(window.xe={}),xe.XpressCore=a.Class({name:"XpressCore",$init:function(b){b=b?a.Class({}).extend({oDebugger:null}).extend(b):{},b.oDebugger&&(this.oDebugger=b.oDebugger,this.oDebugger.oApp=this),this.commandQueue=[],this.oCommandMap={},this.oDisabledCommand={},this.aPlugins=[],this.appStatus=xe.APP_STATUS.NOT_READY,this.registerPlugin(this)},exec:function(a,b,c){return this.appStatus==xe.APP_STATUS.NOT_READY?(this.commandQueue[this.commandQueue.length]={msg:a,args:b,event:c},!0):(this.exec=this._exec,void this.exec(a,b,c))},delayedExec:function(b,c,d,e){var f=a.fnBind(this.exec,this,b,c,e);setTimeout(f,d)},_exec:function(a,b,c){return(this._exec=this.oDebugger?this._execWithDebugger:this._execWithoutDebugger).call(this,a,b,c)},_execWithDebugger:function(a,b,c){this.oDebugger.log_MessageStart(a,b);var d=this._doExec(a,b,c);return this.oDebugger.log_MessageEnd(a,b),d},_execWithoutDebugger:function(a,b,c){return this._doExec(a,b,c)},_doExec:function(a,b,c){var d=!1;if(!this.oDisabledCommand[a]){var e=[];if(b&&b.length)for(var f=b.length,g=0;f>g;g++)e[g]=b[g];c&&(e[e.length]=c);var d=!0;d=this._execMsgStep("BEFORE",a,e),d&&(d=this._execMsgStep("ON",a,e)),d&&(d=this._execMsgStep("AFTER",a,e))}return d},registerPlugin:function(a){if(!a)throw"An error occured in registerPlugin(): invalid plug-in";return a.nIdx=this.aPlugins.length,a.oApp=this,this.aPlugins[a.nIdx]=a,a.status!=xe.PLUGIN_STATUS.NOT_READY&&(a.status=xe.PLUGIN_STATUS.READY),this.exec("MSG_PLUGIN_REGISTERED",[a]),a.nIdx},disableCommand:function(a,b){this.oDisabledCommand[a]=b},registerBrowserEvent:function(b,c,d,e,f){if(b){e=e||[];var g=f?a.fnBind(this.delayedExec,this,d,e,f):a.fnBind(this.exec,this,d,e);a(b).bind(c,g)}},run:function(){this._changeAppStatus(xe.APP_STATUS.WAITING_FOR_PLUGINS_READY);var a=this.commandQueue.length;for(i=0;a>i;i++){var b=this.commandQueue[i];this.exec(b.msg,b.args,b.event)}this._waitForPluginReady()},createCommandMap:function(a){this.oCommandMap[a]=[];for(var b=this.aPlugins.length,c=0;b>c;c++)this._doAddToCommandMap(a,this.aPlugins[c])},addToCommandMap:function(a,b){this.oCommandMap[a]&&this._addToCommandMap(a,b)},_changeAppStatus:function(a){this.appStatus=a,this.appStatus==xe.APP_STATUS.READY&&this.exec("MSG_APP_READY")},_execMsgStep:function(a,b,c){return(this._execMsgStep=this.oDebugger?this._execMsgStepWithDebugger:this._execMsgStepWithoutDebugger).call(this,a,b,c)},_execMsgStepWithDebugger:function(a,b,c){this.oDebugger.log_MessageStepStart(a,b,c);var d=this._execMsgHandler("$"+a+"_"+b,c);return this.oDebugger.log_MessageStepEnd(a,b,c),d},_execMsgStepWithoutDebugger:function(a,b,c){return this._execMsgHandler("$"+a+"_"+b,c)},_execMsgHandler:function(a,b){this.oCommandMap[a]||this.createCommandMap(a);var c=this.oCommandMap[a],d=c.length;if(0==d)return!0;var e,f=!0;if(a.match(/^\$(BEFORE|ON|AFTER)_MSG_APP_READY$/)){for(var g=0;d>g;g++)if(e=this._execHandler(c[g],a,b),e===!1){f=!1;break}}else for(var g=0;d>g;g++)if(("function"!=typeof c[g].$PRECONDITION||this._execHandler(c[g],"$PRECONDITION",[a,b]))&&(e=this._execHandler(c[g],a,b),e===!1)){f=!1;break}return f},_execHandler:function(a,b,c){return(this._execHandler=this.oDebugger?this._execHandlerWithDebugger:this._execHandlerWithoutDebugger).call(this,a,b,c)},_execHandlerWithDebugger:function(a,b,c){this.oDebugger.log_CallHandlerStart(a,b,c);var d=a[b].apply(a,c);return this.oDebugger.log_CallHandlerEnd(a,b,c),d},_execHandlerWithoutDebugger:function(a,b,c){return a[b].apply(a,c)},_doAddToCommandMap:function(a,b){"function"==typeof b[a]&&(this.oCommandMap[a][this.oCommandMap[a].length]=b)},_waitForPluginReady:function(){for(var b=!0,c=0;cb)return b;var i=b-1,j=a[b].cloneNode(!1);for(a[b]==e&&(c=j),a[b]==f&&(d=j);i>=0&&xe.DOMFix.parentNode(a[i])==a[b];)i=this._recurConstructClonedTree(a,i,a[b],j,c,d);return h.insertBefore(j,h.firstChild),i},a[a.length]=xe.DOMFix.parentNode(a[a.length-1]),_recurConstructClonedTree(a,a.length-1,a[a.length-1],b),{oStartContainer:c,oEndContainer:d}},cloneRange:function(){return this._copyRange(new xe.W3CDOMRange(this._document))},_copyRange:function(a){return a.collapsed=this.collapsed,a.commonAncestorContainer=this.commonAncestorContainer,a.endContainer=this.endContainer,a.endOffset=this.endOffset,a.startContainer=this.startContainer,a.startOffset=this.startOffset,a._document=this._document,a},collapse:function(a){a?(this.endContainer=this.startContainer,this.endOffset=this.startOffset):(this.startContainer=this.endContainer,this.startOffset=this.endOffset),this._updateRangeInfo()},compareBoundaryPoints:function(a,b){switch(a){case xe.W3CDOMRange.START_TO_START:return this._compareEndPoint(this.startContainer,this.startOffset,b.startContainer,b.startOffset);case xe.W3CDOMRange.START_TO_END:return this._compareEndPoint(this.endContainer,this.endOffset,b.startContainer,b.startOffset);case xe.W3CDOMRange.END_TO_END:return this._compareEndPoint(this.endContainer,this.endOffset,b.endContainer,b.endOffset);case xe.W3CDOMRange.END_TO_START:return this._compareEndPoint(this.startContainer,this.startOffset,b.endContainer,b.endOffset)}},_findBody:function(a){if(!a)return null;for(;a;){if("BODY"==a.tagName)return a;a=xe.DOMFix.parentNode(a)}return null},_compareEndPoint:function(a,b,c,d){var e,f;a&&this._findBody(a)==this._document.body||(a=this._document.body,b=0),c&&this._findBody(c)==this._document.body||(c=this._document.body,d=0);var g=function(a,b){return-1==b&&(b=a+1),b>a?-1:a==b?0:1},h=this._getCommonAncestorContainer(a,c),i=a;if(i!=h){for(;(oTmpNode=xe.DOMFix.parentNode(i))!=h;)i=oTmpNode;e=this._getPosIdx(i)+.5}else e=b;var j=c;if(j!=h){for(;(oTmpNode=xe.DOMFix.parentNode(j))!=h;)j=oTmpNode;f=this._getPosIdx(j)+.5}else f=d;return g(e,f)},_getCommonAncestorContainer:function(a,b){for(var c=b;a;){for(;c;){if(a==c)return a;c=xe.DOMFix.parentNode(c)}c=b,a=xe.DOMFix.parentNode(a)}return this._document.body},deleteContents:function(){if(!this.collapsed){this._splitTextEndNodesOfTheRange();var a=this._getNodesInRange();if(!(a.length<1)){for(var b=a[0].previousSibling;b&&this._isBlankTextNode(b);)b=b.previousSibling;var c,d;b||(c=xe.DOMFix.parentNode(a[0]),d=0);for(var e=0;ea.nodeValue.length&&(b=a.nodeValue.length):b>xe.DOMFix.childNodes(a).length&&(b=xe.DOMFix.childNodes(a).length),b},setEnd:function(a,b){b=this._endsNodeValidation(a,b),this.endContainer=a,this.endOffset=b,this.startContainer&&-1==this._compareEndPoint(this.startContainer,this.startOffset,this.endContainer,this.endOffset)||this.collapse(!1),this._updateRangeInfo()},setEndAfter:function(a){if(!a)throw new Error("INVALID_NODE_TYPE_ERR in setEndAfter");return"BODY"==a.tagName?void this.setEnd(a,xe.DOMFix.childNodes(a).length):void this.setEnd(xe.DOMFix.parentNode(a),this._getPosIdx(a)+1)},setEndBefore:function(a){if(!a)throw new Error("INVALID_NODE_TYPE_ERR in setEndBefore");return"BODY"==a.tagName?void this.setEnd(a,0):void this.setEnd(xe.DOMFix.parentNode(a),this._getPosIdx(a))},setStart:function(a,b){b=this._endsNodeValidation(a,b),this.startContainer=a,this.startOffset=b,this.endContainer&&-1==this._compareEndPoint(this.startContainer,this.startOffset,this.endContainer,this.endOffset)||this.collapse(!0),this._updateRangeInfo()},setStartAfter:function(a){if(!a)throw new Error("INVALID_NODE_TYPE_ERR in setStartAfter");return"BODY"==a.tagName?void this.setStart(a,xe.DOMFix.childNodes(a).length):void this.setStart(xe.DOMFix.parentNode(a),this._getPosIdx(a)+1)},setStartBefore:function(a){if(!a)throw new Error("INVALID_NODE_TYPE_ERR in setStartBefore");return"BODY"==a.tagName?void this.setStart(a,0):void this.setStart(xe.DOMFix.parentNode(a),this._getPosIdx(a))},surroundContents:function(a){a.appendChild(this.extractContents()),this.insertNode(a),this.selectNode(a)},toString:function(){var a=this._document.createElement("DIV");return a.appendChild(this.cloneContents()),a.textContent||a.innerText||""},_isBlankTextNode:function(a){return 3==a.nodeType&&""==a.nodeValue?!0:!1},_getPosIdx:function(a){for(var b=0,c=a.previousSibling;c;c=c.previousSibling)b++;return b},_updateRangeInfo:function(){return this.startContainer?(this.collapsed=this._isCollapsed(this.startContainer,this.startOffset,this.endContainer,this.endOffset),void(this.commonAncestorContainer=this._getCommonAncestorContainer(this.startContainer,this.endContainer))):void this.init(this._document)},_isCollapsed:function(a,b,c,d){var e=!1;if(a==c&&b==d)e=!0;else{var f=this._getActualStartNode(a,b),g=this._getActualEndNode(c,d);f=this._getNextNode(this._getPrevNode(f)),g=this._getPrevNode(this._getNextNode(g)),f&&g&&"BODY"!=g.tagName&&(this._getNextNode(g)==f||g==f&&this._isBlankTextNode(g))&&(e=!0)}return e},_splitTextEndNodesOfTheRange:function(){var a=this._splitTextEndNodes({oStartContainer:this.startContainer,iStartOffset:this.startOffset,oEndContainer:this.endContainer,iEndOffset:this.endOffset});this.startContainer=a.oStartContainer,this.startOffset=a.iStartOffset,this.endContainer=a.oEndContainer,this.endOffset=a.iEndOffset},_splitTextEndNodes:function(a){return a=this._splitStartTextNode(a),a=this._splitEndTextNode(a)},_splitStartTextNode:function(a){var b=a.oStartContainer,c=a.iStartOffset,d=a.oEndContainer,e=a.iEndOffset;if(!b)return a;if(3!=b.nodeType)return a;if(0==c)return a;if(b.nodeValue.length<=c)return a;var f=b.splitText(c);return b==d&&(e-=c,d=f),b=f,c=0,{oStartContainer:b,iStartOffset:c,oEndContainer:d,iEndOffset:e}},_splitEndTextNode:function(a){var b=a.oStartContainer,c=a.iStartOffset,d=a.oEndContainer,e=a.iEndOffset;return d?3!=d.nodeType?a:e>=d.nodeValue.length?a:0==e?a:(d.splitText(e),{oStartContainer:b,iStartOffset:c,oEndContainer:d,iEndOffset:e}):a},_getNodesInRange:function(){if(this.collapsed)return[];var a=this._getActualStartNode(this.startContainer,this.startOffset),b=this._getActualEndNode(this.endContainer,this.endOffset);return this._getNodesBetween(a,b)},_getActualStartNode:function(a,b){var c=a;return 3==a.nodeType?b>=a.nodeValue.length?(c=this._getNextNode(a),"BODY"==c.tagName&&(c=null)):c=a:b=this.startContainer.nodeValue.length?this._getNextNode(this.startContainer):this.startContainer:this.startOffset>=xe.DOMFix.childNodes(this.startContainer).length?this._getNextNode(this.startContainer):xe.DOMFix.childNodes(this.startContainer)[this.startOffset]},getEndNode:function(){return this.collapsed?this.getStartNode():3==this.endContainer.nodeType?0==this.endOffset?this._getPrevNode(this.endContainer):this.endContainer:0==this.endOffset?this._getPrevNode(this.endContainer):xe.DOMFix.childNodes(this.endContainer)[this.endOffset-1]},getNodeAroundRange:function(a,b){if(this.collapsed&&this.startContainer&&3==this.startContainer.nodeType)return this.startContainer;if(!this.collapsed||this.startContainer&&3==this.startContainer.nodeType)return this.getStartNode();var c,d,e;return d=this.startOffset>=xe.DOMFix.childNodes(this.startContainer).length?this._getNextNode(this.startContainer):xe.DOMFix.childNodes(this.startContainer)[this.startOffset],c=0==this.endOffset?this._getPrevNode(this.endContainer):xe.DOMFix.childNodes(this.endContainer)[this.endOffset-1],a?(e=c,e||b||(e=d)):(e=d,e||b||(e=c)),e},_getXPath:function(a){for(var b="";a&&1==a.nodeType;)b="/"+a.tagName+"["+this._getPosIdx4XPath(a)+"]"+b,a=xe.DOMFix.parentNode(a);return b},_getPosIdx4XPath:function(a){for(var b=0,c=a.previousSibling;c;c=c.previousSibling)c.tagName==a.tagName&&b++;return b},_evaluateXPath:function(a,b){a=a.substring(1,a.length-1);for(var c=a.split(/\//),d=b.body,e=2;el;l++)h[l].tagName==f&&(i[k++]=h[l]);d=i.length-1&&e){for(var f=xe.DOMFix.childNodes(e),g=null,h=c,i=d;(g=f[h])&&3==g.nodeType&&g.nodeValue.length=b&&e>=0?!0:bIncludePartlyIncluded?1==c?!1:-1==d?!1:!0:!1},isNodeInRange:function(a,b,c){var d=new xe.XpressRange(this._window);return c&&a.firstChild?(d.setStartBefore(a.firstChild),d.setEndAfter(a.lastChild)):d.selectNode(a),isRangeInRange(d,b)},pasteHTML:function(a){if(""==a)return void this.deleteContents();var b=this._document.createElement("DIV");b.innerHTML=a;for(var c=b.firstChild,d=b.lastChild,e=this.cloneRange(),f=e.placeStringBookmark();b.lastChild;)this.insertNode(b.lastChild);this.setEndNodes(c,d),e.moveToBookmark(f),e.deleteContents(),e.removeStringBookmark(f)},toString:function(){return this.toString=xe.W3CDOMRange.prototype.toString,this.toString()},toHTMLString:function(){var a=this._document.createElement("DIV");return a.appendChild(this.cloneContents()),a.innerHTML},findAncestorByTagName:function(a){for(var b=this.commonAncestorContainer;b&&b.tagName!=a;)b=xe.DOMFix.parentNode(b);return b},selectNodeContents:function(a){if(a){var b=a.firstChild?a.firstChild:a,c=a.lastChild?a.lastChild:a;3==b.nodeType?this.setStart(b,0):this.setStartBefore(b),3==c.nodeType?this.setEnd(c,c.nodeValue.length):this.setEndAfter(c)}},styleRange:function(b,c,d){var e=this._getStyleParentNodes(d);if(!(e.length<1)){for(var f,g,h=0;ho;o++)if(c=k[o],c&&3==c.nodeType&&""!=c.nodeValue){if(h=xe.DOMFix.parentNode(c),"SPAN"==h.tagName){var p=a(h).html();if(d=this._getVeryFirstRealChild(h),f=d==c?1:p.indexOf(d),-1!=f&&(d=this._getVeryLastRealChild(h),g=d==c?1:p.indexOf(d)),-1!=f&&-1!=g){l[m++]=h;continue}}e=this._document.createElement("SPAN"),h.insertBefore(e,c),e.appendChild(c),l[m++]=e,b&&e.setAttribute(b,"true")}return this.setStartBefore(i),this.setEndAfter(j),l},_getVeryFirstChild:function(a){return a.firstChild?this._getVeryFirstChild(a.firstChild):a},_getVeryLastChild:function(a){return a.lastChild?this._getVeryLastChild(a.lastChild):a},_getFirstRealChild:function(a){for(var b=a.firstChild;b&&3==b.nodeType&&""==b.nodeValue;)b=b.nextSibling;return b},_getLastRealChild:function(a){for(var b=a.lastChild;b&&3==b.nodeType&&""==b.nodeValue;)b=b.previousSibling;return b},_getVeryFirstRealChild:function(a){var b=this._getFirstRealChild(a);return b?this._getVeryFirstRealChild(b):a},_getVeryLastRealChild:function(a){var b=this._getLastRealChild(a);return b?this._getVeryLastChild(b):a},_getLineStartInfo:function(a){function b(a){if(a&&!d){if(h.test(a.tagName))return f=a,d=e,void(g=!0);e=a,c(a.previousSibling),d||b(xe.DOMFix.parentNode(a))}}function c(a){if(a&&!d){if(h.test(a.tagName))return f=a,d=e,void(g=!1);if(a.firstChild&&"TABLE"!=a.tagName)for(var b=a.lastChild;b&&!d;)c(b),b=b.previousSibling;else e=a;d||c(a.previousSibling)}}var d=null,e=a,f=a,g=!0,h=this.rxLineBreaker;return b(a),{oNode:d,oLineBreaker:f,bParentBreak:g}},_getLineEndInfo:function(a){function b(a){if(a&&!d){if(h.test(a.tagName))return f=a,d=e,void(g=!0);e=a,c(a.nextSibling),d||b(xe.DOMFix.parentNode(a))}}function c(a){if(a&&!d){if(h.test(a.tagName))return f=a,d=e,void(g=!1);if(a.firstChild&&"TABLE"!=a.tagName)for(var b=a.firstChild;b&&!d;)c(b),b=b.nextSibling;else e=a;d||c(a.nextSibling)}}var d=null,e=a,f=a,g=!0,h=this.rxLineBreaker;return b(a),{oNode:d,oLineBreaker:f,bParentBreak:g}},getLineInfo:function(){var a=this.getStartNode(),b=this.getEndNode();a||(a=this.getNodeAroundRange(!0,!0)),b||(b=this.getNodeAroundRange(!0,!0));var c=this._getLineStartInfo(a),d=c.oNode,e=this._getLineEndInfo(b),f=e.oNode,g=this._compareEndPoint(xe.DOMFix.parentNode(d),this._getPosIdx(d),this.endContainer,this.endOffset),h=this._compareEndPoint(xe.DOMFix.parentNode(f),this._getPosIdx(f)+1,this.startContainer,this.startOffset);return 0>=g&&h>=0||(a=this.getNodeAroundRange(!1,!0),b=this.getNodeAroundRange(!1,!0),c=this._getLineStartInfo(a),e=this._getLineEndInfo(b)),{oStart:c,oEnd:e}}}).extend(xe.W3CDOMRange),xe.SimpleSelection=function(b){this.init=function(a){this._window=a||window,this._document=this._window.document},this.init(b),a.browser.msie?xe.SimpleSelectionImpl_IE.apply(this):xe.SimpleSelectionImpl_FF.apply(this),this.selectRange=function(a){this.selectNone(),this.addRange(a)},this.selectionLoaded=!0,this._oSelection||(this.selectionLoaded=!1)},xe.SimpleSelectionImpl_FF=function(){this._oSelection=this._window.getSelection(),this.getRangeAt=function(a){a=a||0;try{var b=this._oSelection.getRangeAt(a)}catch(c){return new xe.W3CDOMRange(this._document)}return this._FFRange2W3CRange(b)},this.addRange=function(a){var b=this._W3CRange2FFRange(a);this._oSelection.addRange(b)},this.selectNone=function(){this._oSelection.removeAllRanges()},this._FFRange2W3CRange=function(a){var b=new xe.W3CDOMRange(this._document);return b.setStart(a.startContainer,a.startOffset),b.setEnd(a.endContainer,a.endOffset),b},this._W3CRange2FFRange=function(a){var b=this._document.createRange(); +return b.setStart(a.startContainer,a.startOffset),b.setEnd(a.endContainer,a.endOffset),b}},xe.SimpleSelectionImpl_IE=function(){this._oSelection=this._document.selection,this.getRangeAt=function(a){if(a=a||0,"Control"==this._oSelection.type){var b=new xe.W3CDOMRange(this._document),c=this._oSelection.createRange().item(a);return c&&c.ownerDocument==this._document?(b.selectNode(c),b):b}var c=this._oSelection.createRangeCollection().item(a).parentElement();if(!c||c.ownerDocument!=this._document){var b=new xe.W3CDOMRange(this._document);return b}return this._IERange2W3CRange(this._oSelection.createRangeCollection().item(a))},this.addRange=function(a){var b=this._W3CRange2IERange(a);b.select()},this.selectNone=function(){this._oSelection.empty()},this._W3CRange2IERange=function(a){var b=this._getIERangeAt(a.startContainer,a.startOffset),c=this._getIERangeAt(a.endContainer,a.endOffset);return b.setEndPoint("EndToEnd",c),b},this._getIERangeAt=function(a,b){var c=this._document.body.createTextRange(),d=this._getSelectableNodeAndOffsetForIE(a,b),e=d.oSelectableNodeForIE,f=d.iOffsetForIE;return c.moveToElementText(e),c.collapse(d.bCollapseToStart),c.moveStart("character",f),c},this._getSelectableNodeAndOffsetForIE=function(a,b){var c=this._document.body.createTextRange(),d=null,e=null,f=0;3==a.nodeType?(d=xe.DOMFix.parentNode(a),e=xe.DOMFix.childNodes(d),f=e.length):(d=a,e=xe.DOMFix.childNodes(d),f=b);for(var g=null,h=0,i=!0,j=0;f>j;j++)if(g=e[j],3==g.nodeType){if(g==a)break;h+=g.nodeValue.length}else c.moveToElementText(g),d=g,h=0,i=!1;return 3==a.nodeType&&(h+=b),{oSelectableNodeForIE:d,iOffsetForIE:h,bCollapseToStart:i}},this._IERange2W3CRange=function(a){var b=new xe.W3CDOMRange(this._document),c=null,d=null;c=a.duplicate(),c.collapse(!0),d=this._getW3CContainerAndOffset(c,!0),b.setStart(d.oContainer,d.iOffset);var e=a.duplicate();return e.collapse(!0),e.isEqual(a)?b.collapse(!0):(c=a.duplicate(),c.collapse(!1),d=this._getW3CContainerAndOffset(c),b.setEnd(d.oContainer,d.iOffset)),b},this._getW3CContainerAndOffset=function(a,b){for(var c=a,d=c.parentElement(),e=-1,f=this._document.body.createTextRange(),g=xe.DOMFix.childNodes(d),h=null,i=0,j=0;j=0)break;h=g[j]}var i=j;if(0!=i&&3==g[i-1].nodeType){var k=this._document.body.createTextRange(),l=null;h?(k.moveToElementText(h),k.collapse(!1),l=h.nextSibling):(k.moveToElementText(d),k.collapse(!0),l=d.firstChild);var m=c.duplicate();m.setEndPoint("StartToStart",k);for(var n=m.text.length;n>l.nodeValue.length&&l.nextSibling;)n-=l.nodeValue.length,l=l.nextSibling;{l.nodeValue}b&&l.nextSibling&&3==l.nextSibling.nodeType&&n==l.nodeValue.length&&(n-=l.nodeValue.length,l=l.nextSibling),d=l,e=n}else d=c.parentElement(),e=i;return{oContainer:d,iOffset:e}}},xe.DOMFix=new(a.Class({$init:function(){a.browser.msie||a.browser.opera?(this.childNodes=this._childNodes_Fix,this.parentNode=this._parentNode_Fix):(this.childNodes=this._childNodes_Native,this.parentNode=this._parentNode_Native)},_parentNode_Native:function(a){return a.parentNode},_parentNode_Fix:function(a){if(!a)return a;for(;a.previousSibling;)a=a.previousSibling;return a.parentNode},_childNodes_Native:function(a){return a.childNodes},_childNodes_Fix:function(a){var b=null,c=0;if(a){var b=[];for(a=a.firstChild;a;)b[c++]=a,a=a.nextSibling}return b}})),xe.DraggableLayer=a.Class({$init:function(b,c){this.oOptions=a.extend({bModal:"false",oHandle:b,iMinX:-999999,iMinY:-999999,iMaxX:999999,iMaxY:999999},c),this.oHandle=this.oOptions.oHandle,b.style.display="block",b.style.position="absolute",b.style.zIndex="9999",this.aBasePosition=this.getBaseOffset(b),b.style.top=this.toInt(a(b).offset().top)-this.aBasePosition.top+"px",b.style.left=this.toInt(a(b).offset().left)-this.aBasePosition.left+"px",this.$FnMouseDown=a.fnBind(this._mousedown,this,b),this.$FnMouseMove=a.fnBind(this._mousemove,this,b),this.$FnMouseUp=a.fnBind(this._mouseup,this,b),a(this.oHandle).bind("mousedown",this.$FnMouseDown)},_mousedown:function(b,c){"INPUT"!=c.target.tagName&&(this.MouseOffsetY=c.pageY-this.toInt(b.style.top)-this.aBasePosition.top,this.MouseOffsetX=c.pageX-this.toInt(b.style.left)-this.aBasePosition.left,a(b).bind("mousemove",this.$FnMouseMove),a(b).bind("mouseup",this.$FnMouseUp))},_mousemove:function(a,b){var c=b.pageY-this.MouseOffsetY-this.aBasePosition.top,d=b.pageX-this.MouseOffsetX-this.aBasePosition.left;cthis.oOptions.iMaxY&&(c=this.oOptions.iMaxY),dthis.oOptions.iMaxX&&(d=this.oOptions.iMaxX),a.style.top=c+"px",a.style.left=d+"px"},_mouseup:function(b){a(b).unbind("mousemove",this.$FnMouseMove),a(b).unbind("mouseup",this.$FnMouseUp)},toInt:function(a){var b=parseInt(a);return b||0},findNonStatic:function(b){return b?"BODY"==b.tagName?b:a(b).css("position").match(/absolute|relative/i)?b:this.findNonStatic(b.offsetParent):null},getBaseOffset:function(b){var c=this.findNonStatic(b.offsetParent),d=a(c).offset();return{top:d.top,left:d.left}}}),xe.CorePlugin=a.Class({name:"CorePlugin",$init:function(a){this.funcOnReady=a},$AFTER_MSG_APP_READY:function(){this.oApp.exec("EXEC_ON_READY_FUNCTION",[])},$ON_ADD_APP_PROPERTY:function(a,b){this.oApp[a]=b},$ON_REGISTER_BROWSER_EVENT:function(a,b,c,d,e){this.oApp.registerBrowserEvent(a,b,c,d,e)},$ON_DISABLE_COMMAND:function(a){this.oApp.disableCommand(a,!0)},$ON_ENABLE_COMMAND:function(a){this.oApp.disableCommand(a,!1)},$ON_EXEC_ON_READY_FUNCTION:function(){"function"==typeof this.funcOnReady&&this.funcOnReady()}}),xe.Utils=a.Class({name:"Utils",$init:function(){if(a.browser.msie&&6==a.browser.nVersion)try{document.execCommand("BackgroundImageCache",!1,!0)}catch(b){}},$ON_ATTACH_HOVER_EVENTS:function(b,c){c=c||"hover",b&&a(b).hover(function(){a(this).addClass(c)},function(){a(this).removeClass(c)})}}),xe.XpressRangeManager=a.Class({name:"XpressRangeManager",oWindow:null,$init:function(a){this.oWindow=a||window},$BEFORE_MSG_APP_READY:function(){this.oWindow&&"IFRAME"==this.oWindow.tagName&&(this.oWindow=this.oWindow.contentWindow),this.oApp.exec("ADD_APP_PROPERTY",["getSelection",a.fnBind(this.getSelection,this)]),this.oApp.exec("ADD_APP_PROPERTY",["getEmptySelection",a.fnBind(this.getEmptySelection,this)])},$ON_SET_EDITING_WINDOW:function(a){this.oWindow=a},getEmptySelection:function(){var a=new xe.XpressRange(this.oWindow);return a},getSelection:function(){this.oApp.exec("RESTORE_IE_SELECTION",[]);var a=this.getEmptySelection();try{a.setFromSelection()}catch(b){}return a}}),xe.Hotkey=a.Class({name:"Hotkey",storage:{},keyhash:{},$init:function(){this.storage={},this.keyhash={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,meta:224,esc:27,space:32,pageup:33,pagedown:34,end:35,home:36,left:37,up:38,right:39,down:40,del:46,comma:188,period:190,slash:191,hyphen:109,equal:61},(a.browser.msie||a.browser.safari)&&(this.keyhash.hyphen=189,this.keyhash.equal=187,this.keyhash.meta=91)},$ON_MSG_APP_READY:function(){a(this.oApp.getWYSIWYGDocument()||document).keydown(a.fnBind(this.keydown,this))},$ON_REGISTER_HOTKEY:function(b,c,d){d||(d=[]);var e=a.fnBind(this.oApp.exec,this.oApp,c,d);return(b=this.normalize(b))?void this.add(b,e):!1},add:function(a,b){"undefined"==typeof this.storage[a]?this.storage[a]=[b]:this.storage[a].push(b)},keydown:function(b){var c=[],d=this.keyhash;if(!(a.inArray(b.keyCode,[d.shift,d.ctrl,d.alt,d.meta])>=0)&&(b.shiftKey&&c.push("shift"),b.altKey&&c.push("alt"),b.ctrlKey&&c.push("ctrl"),b.metaKey&&c.push("meta"),c.length&&(1==c.length&&b.metaKey&&(c=["ctrl","meta"]),c.push(b.keyCode),c=c.join("+"),this.storage[c])))return a.each(this.storage[c],function(){this()}),!1},normalize:function(b){var c,d,e,f,g,h=(b||"").toLowerCase().split("+");return c=d=e=f=g=!1,a.each(h,function(){var a=""+this;switch(a){case"shift":c=!0;case"alt":e=!0;case"ctrl":d=!0;case"meta":f=!0;default:g=a}}),g?(h=[],c&&h.push("shift"),e&&h.push("alt"),d&&h.push("ctrl"),(f||d&&!c&&!e)&&h.push("meta"),h.push(this.keyhash[g]||g.toUpperCase().charCodeAt(0)),h.join("+")):""}}),xe.DialogLayerManager=a.Class({name:"DialogLayerManager",aMadeDraggable:null,aOpenedLayers:null,$init:function(){this.aMadeDraggable=[],this.aOpenedLayers=[]},$ON_SHOW_DIALOG_LAYER:function(b,c){b=a.$(b),c=a.$(c)||!1,b&&-1==a.inArray(b,this.aOpenedLayers)&&(this.oApp.exec("POSITION_DIALOG_LAYER",[b]),this.aOpenedLayers[this.aOpenedLayers.length]=b,-1==a.inArray(b,this.aMadeDraggable)?(new xe.DraggableLayer(b,{bModal:c,iMinY:0}),this.aMadeDraggable[this.aMadeDraggable.length]=b):b.style.display="block")},$ON_HIDE_LAST_DIALOG_LAYER:function(){this.oApp.exec("HIDE_DIALOG_LAYER",[this.aOpenedLayers[this.aOpenedLayers.length-1]])},$ON_HIDE_ALL_DIALOG_LAYER:function(){for(var a=this.aOpenedLayers.length-1;a>=0;a--)this.oApp.exec("HIDE_DIALOG_LAYER",[this.aOpenedLayers[a]])},$ON_HIDE_DIALOG_LAYER:function(b){b=a.$(b),b&&(b.style.display="none"),this.aOpenedLayers=a.grep(this.aOpenedLayers,function(a){return a!=b})},$ON_SET_DIALOG_LAYER_POSITION:function(a,b,c){a.style.top=b,a.style.left=c}}),xe.ActiveLayerManager=a.Class({name:"ActiveLayerManager",oCurrentLayer:null,$ON_TOGGLE_ACTIVE_LAYER:function(a,b,c,d,e){a==this.oCurrentLayer?this.oApp.exec("HIDE_ACTIVE_LAYER",[]):(this.oApp.exec("SHOW_ACTIVE_LAYER",[a,d,e]),b&&this.oApp.exec(b,c))},$ON_SHOW_ACTIVE_LAYER:function(b,c,d){b=a.$(b),this.sOnCloseCmd=c,this.aOnCloseParam=d;var e=this.oCurrentLayer;b!=e&&(this.oApp.exec("HIDE_ACTIVE_LAYER",[]),b.style.display="block",this.oCurrentLayer=b)},$ON_HIDE_ACTIVE_LAYER:function(){var a=this.oCurrentLayer;a&&(a.style.display="none",this.oCurrentLayer=null,this.sOnCloseCmd&&this.oApp.exec(this.sOnCloseCmd,this.aOnCloseParam))},$ON_HIDE_CURRENT_ACTIVE_LAYER:function(){this.oApp.exec("HIDE_ACTIVE_LAYER",[])},$ON_EVENT_EDITING_AREA_KEYDOWN:function(){this.oApp.exec("HIDE_ACTIVE_LAYER",[])},$ON_EVENT_EDITING_AREA_MOUSEDOWN:function(){this.oApp.exec("HIDE_ACTIVE_LAYER",[])}}),xe.StringConverterManager=a.Class({name:"StringConverterManager",oConverters:null,$init:function(){this.oConverters={}},$BEFORE_MSG_APP_READY:function(){this.oApp.exec("ADD_APP_PROPERTY",["applyConverter",a.fnBind(this.applyConverter,this)]),this.oApp.exec("ADD_APP_PROPERTY",["addConverter",a.fnBind(this.addConverter,this)])},applyConverter:function(a,b){var c=this.oConverters[a];if(!c)return b;for(var d=0;df;f++)if(e.test(c[f].className)){var g=RegExp.$1;if(null!=this.htUIList[g])continue;this.htUIList[g]=a(">*:first-child",c[f]).get(0)}},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.toolbarArea,"mouseover","EVENT_TOOLBAR_MOUSEOVER",[]),this.oApp.registerBrowserEvent(this.toolbarArea,"mouseout","EVENT_TOOLBAR_MOUSEOUT",[]),this.oApp.exec("ADD_APP_PROPERTY",["getToolbarButtonByUIName",a.fnBind(this.getToolbarButtonByUIName,this)])},$ON_EVENT_TOOLBAR_MOUSEOVER:function(b){"BUTTON"==b.target.tagName&&a(b.target).addClass("hover").parent("span").addClass("hover")},$ON_EVENT_TOOLBAR_MOUSEOUT:function(b){"BUTTON"==b.target.tagName&&a(b.target).removeClass("hover").parent("span").removeClass("hover")},$ON_TOGGLE_TOOLBAR_ACTIVE_LAYER:function(a,b,c,d,e,f){this.oApp.exec("TOGGLE_ACTIVE_LAYER",[a,"MSG_TOOLBAR_LAYER_SHOWN",[a,b,c,d],e,f])},$ON_MSG_TOOLBAR_LAYER_SHOWN:function(a,b,c,d){this.oApp.exec("POSITION_TOOLBAR_LAYER",[a,b]),c&&this.oApp.exec(c,d)},$ON_SHOW_TOOLBAR_ACTIVE_LAYER:function(a,b,c,d){this.oApp.exec("SHOW_ACTIVE_LAYER",[a,b,c]),this.oApp.exec("POSITION_TOOLBAR_LAYER",[a,d])},$ON_ENABLE_UI:function(b){var c=this.htUIList[b];if(c){a(c).removeClass("off"),c.disabled=!1;var d="";if(this.aUICmdMap[b])for(var e=0;ef&&(b.style.left=f-e-5+"px")}},getToolbarButtonByUIName:function(a){return this.htUIList[a]}}),xe.XE_EditingAreaManager=a.Class({name:"XE_EditingAreaManager",oActivePlugin:null,oIRField:null,bIsDirty:!1,$init:function(b,c,d,e,f){this.sInitialMode=b,this.oIRField=a.$(c),this._assignHTMLObjects(f),this.fOnBeforeUnload=e,this.oEditingMode={},this.elEditingAreaContainer.style.height=parseInt(d.nHeight||this.elEditingAreaContainer.offsetHeight)+"px",this.nMinHeight=d.nMinHeight||10,this.niMinWidth=d.nMinWidth||10},_assignHTMLObjects:function(b){b=a.$(b)||document,this.elEditingAreaContainer=a("DIV.xpress_xeditor_editing_area_container",b).get(0),this.elEditingAreaSkipUI=a("A.skip",b).get(0)},$BEFORE_MSG_APP_READY:function(){this.oApp.exec("ADD_APP_PROPERTY",["elEditingAreaContainer",this.elEditingAreaContainer]),this.oApp.exec("ADD_APP_PROPERTY",["getIR",a.fnBind(this.getIR,this)]),this.oApp.exec("ADD_APP_PROPERTY",["setIR",this.setIR]),this.oApp.exec("ADD_APP_PROPERTY",["getEditingMode",a.fnBind(this.getEditingMode,this)])},$ON_MSG_APP_READY:function(){this.oApp.exec("CHANGE_EDITING_MODE",[this.sInitialMode,!0]),this.oApp.exec("LOAD_IR_FIELD",[!1]),this.oApp.registerBrowserEvent(this.elEditingAreaSkipUI,"focus","MSG_EDITING_AREA_SIZE_CHANGED",[],50),this.oApp.registerBrowserEvent(this.elEditingAreaSkipUI,"blur","MSG_EDITING_AREA_SIZE_CHANGED",[],50)},$AFTER_MSG_APP_READY:function(){this.oApp.exec("UPDATE_IR_FIELD",[])},$ON_LOAD_IR_FIELD:function(a){this.oApp.setIR(this.oIRField.value,a)},$ON_UPDATE_IR_FIELD:function(){this.oIRField.value=this.oApp.getIR()},$BEFORE_CHANGE_EDITING_MODE:function(a){this._oPrevActivePlugin=this.oActivePlugin,this.oActivePlugin=this.oEditingMode[a]},$AFTER_CHANGE_EDITING_MODE:function(a,b){if(this._oPrevActivePlugin){var c=this._oPrevActivePlugin.getIR();this.oApp.exec("SET_IR",[c]),this.oApp.exec("ENABLE_UI",[this._oPrevActivePlugin.sMode]),this._setEditingAreaDimension()}this.oApp.exec("DISABLE_UI",[this.oActivePlugin.sMode]),b||this.oApp.exec("FOCUS",[])},$ON_SET_IS_DIRTY:function(a){this.bIsDirty=a},$ON_FOCUS:function(){this.oActivePlugin&&"function"==typeof this.oActivePlugin.setIR&&this.oActivePlugin.focus()},$BEFORE_SET_IR:function(a,b){b=b||!1,b||this.oApp.exec("RECORD_UNDO_ACTION",["SET CONTENTS"])},$ON_SET_IR:function(a){this.oActivePlugin&&"function"==typeof this.oActivePlugin.setIR&&this.oActivePlugin.setIR(a)},$AFTER_SET_IR:function(a,b){b=b||!1,b||this.oApp.exec("RECORD_UNDO_ACTION",["SET CONTENTS"])},$ON_REGISTER_EDITING_AREA:function(a){this.oEditingMode[a.sMode]=a,this.attachDocumentEvents(a.oEditingArea)},$ON_MSG_EDITING_AREA_RESIZE_STARTED:function(){this.oActivePlugin.elEditingArea.style.display="none",this.iStartingHeight=parseInt(this.elEditingAreaContainer.style.height)},$ON_RESIZE_EDITING_AREA:function(a,b){var c=parseInt(a),d=parseInt(b);c"]);break;default:return}a.preventDefault(),a.stopPropagation()}},$ON_EVENT_EDITING_AREA_KEYUP:function(a){229==a.keyCode||13==a.keyCode||a.altKey||a.ctrlKey||a.keyCode>=33&&a.keyCode<=40||16==a.keyCode||this._recordUndo(a)},$ON_PASTE_HTML:function(b,c){if(this.oApp.getEditingMode()==this.sMode){var d=c||this.oApp.getSelection();if(d.pasteHTML(b),!a.browser.msie){var e=d.placeStringBookmark();this.oApp.getWYSIWYGDocument().body.innerHTML=this.oApp.getWYSIWYGDocument().body.innerHTML,d.moveToBookmark(e),d.collapseToEnd(),d.select(),d.removeStringBookmark(e)}this.oApp.exec("RECORD_UNDO_ACTION",["INSERT HTML"])}},$AFTER_MSG_EDITING_AREA_RESIZE_ENDED:function(){this.oApp.exec("REFRESH_WYSIWYG",[])},$ON_RESTORE_IE_SELECTION:function(){this._oIERange&&(this._oIERange.select(),this._oPrevIERange=this._oIERange,this._oIERange=null)},initIframe:function(){try{if(this.doc=this.iframe.contentWindow.document,null==this.doc||"about:blank"==this.doc.location.href)throw new Error("Access denied");this._enableWYSIWYG(),this.status=xe.PLUGIN_STATUS.READY}catch(b){if(!(this._nIFrameReadyCount-->0))throw"iframe for WYSIWYG editing mode can't be initialized. Please check if the iframe document exists and is also accessable(cross-domain issues). ";setTimeout(a.fnBind(this.initIframe,this),100)}},getIR:function(){var a,b=this.doc.body.innerHTML;return a=this.oApp.applyConverter?this.oApp.applyConverter(this.sMode+"_TO_IR",b):b},setIR:function(b){var c;c=this.oApp.applyConverter?this.oApp.applyConverter("IR_TO_"+this.sMode,b):b,this.doc.body.innerHTML=c,a.browser.mozilla&&""==this.doc.body.innerHTML&&(this.doc.body.innerHTML="
")},getWindow:function(){return this.iframe.contentWindow},getDocument:function(){return this.iframe.contentWindow.document},focus:function(){},_recordUndo:function(a){var b=new Date;b-this.iLastUndoRecorded"),""==h.innerHTML&&(h.innerHTML="
"),h.nextSibling&&"BR"==h.nextSibling.tagName&&h.parentNode.removeChild(h.nextSibling),b.selectNodeContents(h),b.collapseToStart(),b.select(),this.oApp.exec("CHECK_STYLE_CHANGE",[])}else b.removeStringBookmark(c)}}}),xe.XE_WYSIWYGStyler=a.Class({name:"XE_WYSIWYGStyler",$PRECONDITION:function(){return"WYSIWYG"==this.oApp.getEditingMode()},$ON_SET_WYSIWYG_STYLE:function(b){var c=this.oApp.getSelection();if(c.collapsed){var d=this.oApp.getWYSIWYGDocument().createElement("SPAN");c.insertNode(d),d.innerHTML=unescape("%uFEFF");var e;for(var f in b)e=b[f],"string"==typeof e&&(d.style[f]=e);return c.selectNodeContents(d),c.collapseToEnd(),c._window.focus(),c._window.document.body.focus(),c.select(),void(a.browser.mozilla&&3==a.browser.nVersion&&(d.innerHTML=""))}this.oApp.exec("RECORD_UNDO_BEFORE_ACTION",["FONT STYLE"]),c.styleRange(b),c._window.focus(),c.select(),this.oApp.exec("RECORD_UNDO_AFTER_ACTION",["FONT STYLE"])}}),xe.XE_WYSIWYGStyleGetter=a.Class({name:"XE_WYSIWYGStyleGetter",hKeyUp:null,getStyleInterval:200,oStyleMap:{fontFamily:{type:"Value",css:"fontFamily"},fontSize:{type:"Value",css:"fontSize"},lineHeight:{type:"Value",css:"lineHeight",converter:function(a,b){return a.match(/px$/)?Math.ceil(parseInt(a)/parseInt(b.fontSize)*10)/10:a}},bold:{command:"bold"},underline:{command:"underline"},italic:{command:"italic"},lineThrough:{command:"strikethrough"},superscript:{command:"superscript"},subscript:{command:"subscript"},justifyleft:{command:"justifyleft"},justifycenter:{command:"justifycenter"},justifyright:{command:"justifyright"},justifyfull:{command:"justifyfull"},orderedlist:{command:"insertorderedlist"},unorderedlist:{command:"insertunorderedlist"}},$init:function(){this.oStyle=this._getBlankStyle()},$PRECONDITION:function(){return"WYSIWYG"!=this.oApp.getEditingMode()?!1:!0},$ON_MSG_APP_READY:function(){this.oDocument=this.oApp.getWYSIWYGDocument(),this.oApp.exec("ADD_APP_PROPERTY",["getCurrentStyle",a.fnBind(this.getCurrentStyle,this)])},$ON_EVENT_EDITING_AREA_MOUSEUP:function(){this.hKeyUp&&clearTimeout(this.hKeyUp),this.oApp.exec("CHECK_STYLE_CHANGE",[])},$ON_EVENT_EDITING_AREA_KEYUP:function(b){(8==b.keyCode||b.keyCode>=33&&b.keyCode<=40||45==b.keyCode||46==b.keyCode)&&(this.hKeyUp&&clearTimeout(this.hKeyUp),this.hKeyUp=setTimeout(a.fnBind(this.oApp.exec,this.oApp,"CHECK_STYLE_CHANGE",[]),this.getStyleInterval))},$ON_CHECK_STYLE_CHANGE:function(){this._getStyle()},$ON_RESET_STYLE_STATUS:function(){var a=this._getBlankStyle();for(var b in a)this.oApp.exec("SET_STYLE_STATUS",[b,a[b]])},getCurrentStyle:function(){return this.oStyle},_check_style_change:function(){this.oApp.exec("CHECK_STYLE_CHANGE",[])},_getBlankStyle:function(){var a={};for(var b in this.oStyleMap)a[b]="Value"==this.oStyleMap[b].type?"":0; +return a},_getStyle:function(){var a,b,c=this.oApp.getSelection(),d=function(a){return a.childNodes&&0!=a.childNodes.length?!1:!0},e=c.getNodes(!1,d);a=this._getStyleOf(0==e.length?c.commonAncestorContainer:e[0]);for(b in a)this.oStyleMap[b].converter&&(a[b]=this.oStyleMap[b].converter(a[b],a)),this.oStyle[b]!=a[b]&&this.oApp.exec("MSG_STYLE_CHANGED",[b,a[b]]);this.oStyle=a},_getStyleOf:function(b){var c=this._getBlankStyle();if(!b)return c;3==b.nodeType&&(b=b.parentNode);var d,e=a(b);for(var f in this.oStyle)if(d=this.oStyleMap[f],d.type&&"Value"==d.type){if(d.css){var g=e.css(d.css);"fontFamily"==f&&(g=g.split(/,/)[0]),c[f]=g}else if(d.command)try{c[f]=this.oDocument.queryCommandState(d.command)}catch(h){}}else if(d.command)try{c[f]=this.oDocument.queryCommandState(d.command)?1:0}catch(h){}return c}}),xe.XE_FontSizeWithSelectUI=a.Class({name:"XE_FontSizeWithSelectUI",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elFontSizeSelect=a("SELECT.xpress_xeditor_ui_fontSize_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elFontSizeSelect,"change","SET_FONTSIZE_FROM_SELECT_UI"),this.elFontSizeSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(a,b){"fontSize"==a&&(this.elFontSizeSelect.value=b,this.elFontSizeSelect.selectedIndex<0&&(this.elFontSizeSelect.selectedIndex=0))},$ON_SET_FONTSIZE_FROM_SELECT_UI:function(){var a=this.elFontSizeSelect.value;a&&(this.oApp.exec("SET_WYSIWYG_STYLE",[{fontSize:a}]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}),xe.XE_FontNameWithSelectUI=a.Class({name:"XE_FontNameWithSelectUI",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elFontNameSelect=a("SELECT.xpress_xeditor_ui_fontName_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elFontNameSelect,"change","SET_FONTNAME_FROM_SELECT_UI"),this.elFontNameSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(a,b){"fontFamily"==a&&(this.elFontNameSelect.value=b.toLowerCase(),this.elFontNameSelect.selectedIndex<0&&(this.elFontNameSelect.selectedIndex=0))},$ON_SET_FONTNAME_FROM_SELECT_UI:function(){var a=this.elFontNameSelect.value;a&&(this.oApp.exec("SET_WYSIWYG_STYLE",[{fontFamily:a}]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}),xe.XE_LineHeight=a.Class({name:"XE_LineHeight",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(){},$ON_SET_LINEHEIGHT:function(a){this.setLineHeight(a)},getLineHeight:function(){var b,c,d,e=this._getSelectedNodes(!1);if(0==e.length)return-1;var f=e.length;0==f?d=-1:(c=this._getLineWrapper(e[0]),d=this._getWrapperLineheight(c));var g=this.oSelection.getStartNode();if(d>0)for(var h=1;f>h;h++)if(!this._isChildOf(e[h],b)&&e[h]&&(b=this._getLineWrapper(e[h]),b!=c)){if(curHeight=this._getWrapperLineheight(b),curHeight!=d){d=-1;break}c=b}b=this._getLineWrapper(e[f-1]);var i=this.oSelection.getEndNode();return selectText=a.fnBind(function(a,b){this.oSelection.setEndNodes(a,b),this.oSelection.select()},this,g,i),setTimeout(selectText,100),d},setLineHeight:function(b){function c(a,b){if(!a)try{a=thisRef.oSelection.surroundContentsWithNewNode("P")}catch(c){a=thisRef.oSelection.surroundContentsWithNewNode("DIV")}return a.style.lineHeight=b,a}function d(a){for(;a&&"BODY"!=a.tagName;)a=xe.DOMFix.parentNode(a);return a?!0:!1}thisRef=this;var e=this._getSelectedNodes(!1);if(0!=e.length){var f,g,h=e.length;this.oApp.exec("RECORD_UNDO_BEFORE_ACTION",["LINEHEIGHT"]),g=this._getLineWrapper(e[0]),g=c(g,b);for(var i=g,j=g,k=1;h>k;k++){try{if(!d(xe.DOMFix.parentNode(e[k])))continue}catch(l){continue}this._isChildOf(e[k],f)||(f=this._getLineWrapper(e[k]),f!=g&&(f=c(f,b),g=f))}j=f||i,setTimeout(a.fnBind(function(a,b){this.oSelection.setEndNodes(a,b),this.oSelection.select(),this.oApp.exec("RECORD_UNDO_AFTER_ACTION",["LINEHEIGHT"])},this,i,j),100)}},_getSelectedNodes:function(a){a||(this.oSelection=this.oApp.getSelection()),this.oSelection.collapsed&&this.oSelection.selectNode(this.oSelection.commonAncestorContainer);var b=this.oSelection.getTextNodes();if(0==b.length){var c=this.oSelection.getStartNode();c?b[0]=c:b=[]}return b},_getWrapperLineheight:function(a){var b="";if(a&&a.style.lineHeight)b=a.style.lineHeight;else for(a=this.oSelection.commonAncesterContainer;a&&!this.oSelection.rxLineBreaker.test(a.tagName);){if(a&&a.style.lineHeight){b=a.style.lineHeight;break}a=xe.DOMFix.parentNode(a)}return b},_isChildOf:function(a,b){for(;a&&"BODY"!=a.tagName;){if(a==b)return!0;a=xe.DOMFix.parentNode(a)}return!1},_getLineWrapper:function(a){var b=this.oApp.getEmptySelection();b.selectNode(a);var c,d,e,f,g=b.getLineInfo(),h=g.oStart,i=g.oEnd,j=null;return c=h.oNode,e=h.oLineBreaker,d=i.oNode,f=i.oLineBreaker,this.oSelection.setEndNodes(c,d),e==f&&("P"==e.tagName||"DIV"==e.tagName?j=e:this.oSelection.setEndNodes(e.firstChild,e.lastChild)),j}}),xe.XE_LineHeightWithSelectUI=a.Class({name:"XE_LineHeightWithSelectUI",_assignHTMLObjects:function(b){this.elLineHeightSelect=a("SELECT.xpress_xeditor_ui_lineHeight_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elLineHeightSelect,"change","SET_LINEHEIGHT_FROM_SELECT_UI"),this.elLineHeightSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(a,b){"lineHeight"==a&&(this.elLineHeightSelect.value=b,this.elLineHeightSelect.selectedIndex<0&&(this.elLineHeightSelect.selectedIndex=0))},$ON_SET_LINEHEIGHT_FROM_SELECT_UI:function(){var a=this.elLineHeightSelect.value;a&&(this.elLineHeightSelect.selectedIndex=0,this.oApp.exec("SET_LINEHEIGHT",[a]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}).extend(xe.XE_LineHeight),xe.XE_ColorPalette=a.Class({name:"XE_ColorPalette",rxRGBColorPattern:/rgb\((\d+), ?(\d+), ?(\d+)\)/i,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elColorPaletteLayer=a("UL.xpress_xeditor_color_palette",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elColorPaletteLayer,"click","EVENT_MOUSEUP_COLOR_PALETTE")},$ON_SHOW_COLOR_PALETTE:function(a,b){this.sCallbackCmd=a,this.oLayerContainer=b,this.oLayerContainer.insertBefore(this.elColorPaletteLayer,null),this.elColorPaletteLayer.style.display="block"},$ON_HIDE_COLOR_PALETTE:function(){this.elColorPaletteLayer.style.display="none"},$ON_COLOR_PALETTE_APPLY_COLOR:function(a){function b(a){var b=parseInt(a).toString(16);return b.length<2&&(b="0"+b),b.toUpperCase()}if(this.rxRGBColorPattern.test(a)){var c=b(RegExp.$1),d=b(RegExp.$2),e=b(RegExp.$3);a="#"+c+d+e}this.oApp.exec(this.sCallbackCmd,[a])},$ON_EVENT_MOUSEUP_COLOR_PALETTE:function(a){var b=a.target;b.style.backgroundColor&&this.oApp.exec("COLOR_PALETTE_APPLY_COLOR",[b.style.backgroundColor])}}),xe.XE_FontColor=a.Class({name:"XE_FontColor",rxColorPattern:/^#?[0-9a-fA-F]{6}$|^rgb\(\d+, ?\d+, ?\d+\)$/i,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_fontcolor_layer",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.exec("REGISTER_UI_EVENT",["fontColor","click","TOGGLE_FONTCOLOR_LAYER"])},$ON_TOGGLE_FONTCOLOR_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer,null,"SHOW_COLOR_PALETTE",["APPLY_FONTCOLOR",this.elDropdownLayer]])},$ON_APPLY_FONTCOLOR:function(a){return this.rxColorPattern.test(a)?(this.oApp.exec("SET_WYSIWYG_STYLE",[{color:a}]),void this.oApp.exec("HIDE_ACTIVE_LAYER")):void alert(this.oApp.$MSG("XE_FontColor.invalidColorCode"))}}),xe.XE_BGColor=a.Class({name:"XE_BGColor",rxColorPattern:/^#?[0-9a-fA-F]{6}$|^rgb\(\d+, ?\d+, ?\d+\)$/i,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_bgcolor_layer",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.exec("REGISTER_UI_EVENT",["bgColor","click","TOGGLE_BGCOLOR_LAYER"]),this.oApp.registerBrowserEvent(this.elDropdownLayer,"click","EVENT_APPLY_BGCOLOR",[])},$ON_TOGGLE_BGCOLOR_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer,null,"SHOW_COLOR_PALETTE",["APPLY_BGCOLOR",this.elDropdownLayer]])},$ON_EVENT_APPLY_BGCOLOR:function(a){var b=a.target;if("SPAN"==b.tagName&&(b=b.parentNode),"BUTTON"==b.tagName){var c,d;c=b.style.backgroundColor,d=b.style.color,this.oApp.exec("APPLY_BGCOLOR",[c,d])}},$ON_APPLY_BGCOLOR:function(a,b){if(!this.rxColorPattern.test(a))return void alert(this.oApp.$MSG("XE_BGColor.invalidColorCode"));var c={backgroundColor:a};b&&(c.color=b),this.oApp.exec("SET_WYSIWYG_STYLE",[c]),this.oApp.exec("HIDE_ACTIVE_LAYER")}}),xe.XE_Quote=a.Class({name:"XE_Quote",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_blockquote_layer",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.exec("REGISTER_UI_EVENT",["quote","click","TOGGLE_BLOCKQUOTE_LAYER"]),this.oApp.registerBrowserEvent(this.elDropdownLayer,"click","EVENT_APPLY_SEDITOR_BLOCKQUOTE",[])},$ON_TOGGLE_BLOCKQUOTE_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer])},$ON_EVENT_APPLY_SEDITOR_BLOCKQUOTE:function(a){var b=a.target;if("BUTTON"==b.tagName){var c=b.parentNode.className;"q8"!=c?this._wrapBlock("BLOCKQUOTE",c):this._unwrapBlock("BLOCKQUOTE"),this.oApp.exec("HIDE_ACTIVE_LAYER",[])}},_unwrapBlock:function(a){for(var b=this.oApp.getSelection(),c=b.commonAncestorContainer;c&&c.tagName!=a;)c=c.parentNode;if(c){for(;c.firstChild;)c.parentNode.insertBefore(c.firstChild,c);c.parentNode.removeChild(c)}},_wrapBlock:function(a,b){var c,d,e=this.oApp.getSelection(),f=e.getLineInfo(),g=f.oStart,h=f.oEnd,i=/BODY|TD|LI/i;c=g.bParentBreak&&!i.test(g.oLineBreaker.tagName)?g.oNode.parentNode:g.oNode,d=h.bParentBreak&&!i.test(h.oLineBreaker.tagName)?h.oNode.parentNode:h.oNode,e.setStartBefore(c),e.setEndAfter(d);var j=this._expandToTableStart(e,d);j&&(d=j,e.setEndAfter(j)),j=this._expandToTableStart(e,c),j&&(c=j,e.setStartBefore(j)),j=c;for(var k=e.commonAncestorContainer;j&&j!=k&&j.parentNode!=k;)j=j.parentNode;oFormattingNode=e._document.createElement(a),b&&(oFormattingNode.className=b),j==k?k.insertBefore(oFormattingNode,k.firstChild):k.insertBefore(oFormattingNode,j),e.setStartAfter(oFormattingNode),e.setEndAfter(d),e.surroundContents(oFormattingNode);for(var l,m=oFormattingNode.childNodes,n=m.length-1;n>=0;n--)if(3==m[n].nodeType||"BR"==m[n].tagName){var o=e._document.createElement("P");for(l=m[n].nextSibling;n>=0&&m[n]&&(3==m[n].nodeType||"BR"==m[n].tagName);)o.insertBefore(m[n--],o.firstChild);oFormattingNode.insertBefore(o,l),n++}if(oFormattingNode&&oFormattingNode.parentNode){var o=e._document.createElement("P");o.innerHTML=unescape("
"),oFormattingNode.parentNode.insertBefore(o,oFormattingNode.nextSibling)}return this.oApp.exec("RECORD_UNDO_ACTION",["Block Quote"]),oFormattingNode},_expandToTableStart:function(a,b){for(var c=a.commonAncestorContainer,d=null,e=!1;b&&!e;){if(b==c&&(e=!0),/TBODY|TFOOT|THEAD|TR/i.test(b.tagName)){d=this._getTableRoot(b);break}b=b.parentNode}return d},_getTableRoot:function(a){for(;a&&"TABLE"!=a.tagName;)a=a.parentNode;return a}}),xe.XE_SCharacter=a.Class({name:"XE_SCharacter",$init:function(b){this.bIE=a.browser.msie,this._assignHTMLObjects(b),this.charSet=[],this.charSet[0]=unescape("FF5B FF5D 3014 3015 3008 3009 300A 300B 300C 300D 300E 300F 3010 3011 2018 2019 201C 201D 3001 3002 %B7 2025 2026 %A7 203B 2606 2605 25CB 25CF 25CE 25C7 25C6 25A1 25A0 25B3 25B2 25BD 25BC 25C1 25C0 25B7 25B6 2664 2660 2661 2665 2667 2663 2299 25C8 25A3 25D0 25D1 2592 25A4 25A5 25A8 25A7 25A6 25A9 %B1 %D7 %F7 2260 2264 2265 221E 2234 %B0 2032 2033 2220 22A5 2312 2202 2261 2252 226A 226B 221A 223D 221D 2235 222B 222C 2208 220B 2286 2287 2282 2283 222A 2229 2227 2228 FFE2 21D2 21D4 2200 2203 %B4 FF5E 02C7 02D8 02DD 02DA 02D9 %B8 02DB %A1 %BF 02D0 222E 2211 220F 266D 2669 266A 266C 327F 2192 2190 2191 2193 2194 2195 2197 2199 2196 2198 321C 2116 33C7 2122 33C2 33D8 2121 2668 260F 260E 261C 261E %B6 2020 2021 %AE %AA %BA 2642 2640").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[1]=unescape("%BD 2153 2154 %BC %BE 215B 215C 215D 215E %B9 %B2 %B3 2074 207F 2081 2082 2083 2084 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 FFE6 %24 FFE5 FFE1 20AC 2103 212B 2109 FFE0 %A4 2030 3395 3396 3397 2113 3398 33C4 33A3 33A4 33A5 33A6 3399 339A 339B 339C 339D 339E 339F 33A0 33A1 33A2 33CA 338D 338E 338F 33CF 3388 3389 33C8 33A7 33A8 33B0 33B1 33B2 33B3 33B4 33B5 33B6 33B7 33B8 33B9 3380 3381 3382 3383 3384 33BA 33BB 33BC 33BD 33BE 33BF 3390 3391 3392 3393 3394 2126 33C0 33C1 338A 338B 338C 33D6 33C5 33AD 33AE 33AF 33DB 33A9 33AA 33AB 33AC 33DD 33D0 33D3 33C3 33C9 33DC 33C6").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[2]=unescape("3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 326A 326B 326C 326D 326E 326F 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 327A 327B 24D0 24D1 24D2 24D3 24D4 24D5 24D6 24D7 24D8 24D9 24DA 24DB 24DC 24DD 24DE 24DF 24E0 24E1 24E2 24E3 24E4 24E5 24E6 24E7 24E8 24E9 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 246A 246B 246C 246D 246E 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 320A 320B 320C 320D 320E 320F 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 321A 321B 249C 249D 249E 249F 24A0 24A1 24A2 24A3 24A4 24A5 24A6 24A7 24A8 24A9 24AA 24AB 24AC 24AD 24AE 24AF 24B0 24B1 24B2 24B3 24B4 24B5 2474 2475 2476 2477 2478 2479 247A 247B 247C 247D 247E 247F 2480 2481 2482").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[3]=unescape("3131 3132 3133 3134 3135 3136 3137 3138 3139 313A 313B 313C 313D 313E 313F 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 314A 314B 314C 314D 314E 314F 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 315A 315B 315C 315D 315E 315F 3160 3161 3162 3163 3165 3166 3167 3168 3169 316A 316B 316C 316D 316E 316F 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 317A 317B 317C 317D 317E 317F 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 318A 318B 318C 318D 318E").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[4]=unescape("0391 0392 0393 0394 0395 0396 0397 0398 0399 039A 039B 039C 039D 039E 039F 03A0 03A1 03A3 03A4 03A5 03A6 03A7 03A8 03A9 03B1 03B2 03B3 03B4 03B5 03B6 03B7 03B8 03B9 03BA 03BB 03BC 03BD 03BE 03BF 03C0 03C1 03C3 03C4 03C5 03C6 03C7 03C8 03C9 %C6 %D0 0126 0132 013F 0141 %D8 0152 %DE 0166 014A %E6 0111 %F0 0127 I 0133 0138 0140 0142 0142 0153 %DF %FE 0167 014B 0149 0411 0413 0414 0401 0416 0417 0418 0419 041B 041F 0426 0427 0428 0429 042A 042B 042C 042D 042E 042F 0431 0432 0433 0434 0451 0436 0437 0438 0439 043B 043F 0444 0446 0447 0448 0449 044A 044B 044C 044D 044E 044F").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[5]=unescape("3041 3042 3043 3044 3045 3046 3047 3048 3049 304A 304B 304C 304D 304E 304F 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 305A 305B 305C 305D 305E 305F 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 306A 306B 306C 306D 306E 306F 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 307A 307B 307C 307D 307E 307F 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 308A 308B 308C 308D 308E 308F 3090 3091 3092 3093 30A1 30A2 30A3 30A4 30A5 30A6 30A7 30A8 30A9 30AA 30AB 30AC 30AD 30AE 30AF 30B0 30B1 30B2 30B3 30B4 30B5 30B6 30B7 30B8 30B9 30BA 30BB 30BC 30BD 30BE 30BF 30C0 30C1 30C2 30C3 30C4 30C5 30C6 30C7 30C8 30C9 30CA 30CB 30CC 30CD 30CE 30CF 30D0 30D1 30D2 30D3 30D4 30D5 30D6 30D7 30D8 30D9 30DA 30DB 30DC 30DD 30DE 30DF 30E0 30E1 30E2 30E3 30E4 30E5 30E6 30E7 30E8 30E9 30EA 30EB 30EC 30ED 30EE 30EF 30F0 30F1 30F2 30F3 30F4 30F5 30F6").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" ")},_assignHTMLObjects:function(b){b=a.$(b)||document,this.elDropdownLayer=a("DIV.xpress_xeditor_sCharacter_layer",b).get(0),this.oTextField=a("INPUT",this.elDropdownLayer).get(0),this.oInsertButton=a("+ BUTTON",this.oTextField).get(0),this.aCloseButton=a("BUTTON.close",this.elDropdownLayer).get(),this.aSCharList=a(".list",this.elDropdownLayer).get();var c=a(">UL",this.elDropdownLayer).get(0);this.aLabelA=a("A",c).get()},$ON_MSG_APP_READY:function(){var b=a.fnBind(this.oApp.exec,this.oApp,"INSERT_SCHARACTERS",[this.oTextField.value]);a(this.oInsertButton).click(b),this.oApp.exec("SET_SCHARACTER_LIST",[this.charSet]);for(var c=0;cd;d++)c[d]=document.createElement("LI"),c[d].innerHTML='",this.aSCharList[a].appendChild(c[d])}},_stopBrowserEvent:function(b,c){a(b).bind(c,function(a){a.stopPropagation(),a.preventDefault()})}}),xe.XE_UndoRedo=a.Class({name:"XE_UndoRedo",actionHistory:null,oCurStateIdx:null,iMinimumSizeChange:10,sBlankContentsForFF:"
",$init:function(){this.aUndoHistory=[],this.oCurStateIdx={nIdx:0,nStep:0}},$PRECONDITION:function(a){if(a.match(/_DO_RECORD_UNDO_HISTORY_AT$/))return!0;try{if("WYSIWYG"!=this.oApp.getEditingMode())return!1}catch(b){return!1}return!0},$BEFORE_MSG_APP_READY:function(){this.oApp.exec("DO_RECORD_UNDO_HISTORY_AT",[this.oCurStateIdx,"","",null])},$ON_MSG_APP_READY:function(){this.bFF=a.browser.mozilla,this.oApp.exec("ADD_APP_PROPERTY",["getUndoHistory",a.fnBind(this.getUndoHistory,this)]),this.oApp.exec("ADD_APP_PROPERTY",["getUndoStateIdx",a.fnBind(this.getUndoStateIdx,this)]),this.oApp.exec("REGISTER_UI_EVENT",["undo","click","UNDO"]),this.oApp.exec("REGISTER_UI_EVENT",["redo","click","REDO"]),this.oApp.exec("REGISTER_HOTKEY",["ctrl+z","UNDO"]),this.oApp.exec("REGISTER_HOTKEY",["ctrl+y","REDO"])},$ON_UNDO:function(){if(this.oApp.exec("DO_RECORD_UNDO_HISTORY",["KEYPRESS",!1,!1,1]),0!=this.oCurStateIdx.nIdx){if(this.oCurStateIdx.nStep>0)this.oCurStateIdx.nStep--;else{var a=this.aUndoHistory[this.oCurStateIdx.nIdx];this.oCurStateIdx.nIdx--,a.nTotalSteps>1?this.oCurStateIdx.nStep=0:(a=this.aUndoHistory[this.oCurStateIdx.nIdx],this.oCurStateIdx.nStep=a.nTotalSteps-1)}this.oApp.exec("RESTORE_UNDO_HISTORY",[this.oCurStateIdx.nIdx,this.oCurStateIdx.nStep]),this.oApp.exec("CHECK_STYLE_CHANGE",[])}},$ON_REDO:function(){if(!(this.oCurStateIdx.nIdx>=this.aUndoHistory.length)){var a=this.aUndoHistory[this.oCurStateIdx.nIdx];this.oCurStateIdx.nIdx==this.aUndoHistory.length-1&&this.oCurStateIdx.nStep>=a.nTotalSteps-1||(this.oCurStateIdx.nStep"+b+"";this.oSelection.pasteHTML(e)}else{var f=Math.ceil(1e4*Math.random()),g=this.sATagMarker+f,h=""==b?["unlink"]:["createLink",!1,g+b];this.oApp.exec("EXECCOMMAND",h);try{this.oSelection.setFromSelection()}catch(i){}var j=this.oApp.getWYSIWYGDocument();a(j.body.getElementsByTagName("A")).filter('[href^="'+g+'"]').attr("href",function(){var b=new RegExp("^"+g.replace(/([\.\\])/g,"\\$1"),"i");return d?a(this).attr("target",d):a(this).removeAttr("target"),this.href.replace(b,"")})}this.oApp.exec("HIDE_ACTIVE_LAYER"),setTimeout(a.fnBind(function(){try{this.oSelection.select()}catch(a){}},this),0)},_validateURL:function(a){return/^(http|https|ftp|mailto):(?:\/\/)?((\w|-)+(?:[\.:@](\w|-))+)(?:\/|@)?([^"\?]*?)(?:\?([^\?"]*?))?$/.test(a)},$ON_EVENT_XE_HYPERLINK_KEYDOWN:function(a){13==a.keyCode&&(this.oApp.exec("XE_APPLY_HYPERLINK"),a.preventDefault(),a.stopPropagation())}}),xe.XE_Table=a.Class({name:"XE_Table",iMinRows:1,iMaxRows:20,iMinColumns:1,iMaxColumns:10,iMinBorderWidth:1,iMaxBorderWidth:10,oSelection:null,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){var c=null;this.elDropdownLayer=a("DIV.xpress_xeditor_table_layer",b).get(0),this.welDropdownLayer=a(this.elDropdownLayer),c=a("INPUT",this.elDropdownLayer).get(),this.oRowInput=c[0],this.oColumnInput=c[1],this.oBorderWidthInput=c[2],this.oBorderColorInput=c[3],this.oBGColorInput=c[4],c=a("BUTTON",this.elDropdownLayer).get(),this.oButton_AddRow=c[0],this.oButton_RemoveRow=c[1],this.oButton_AddColumn=c[2],this.oButton_RemoveColumn=c[3],this.oButton_IncBorderWidth=c[4],this.oButton_DecBorderWidth=c[5],this.oButton_BorderColorPreview=c[6],this.oButton_BorderColor=c[7],this.oButton_BGColorPreview=c[8],this.oButton_BGColor=c[9],this.oButton_Insert=c[10],this.oButton_Cancel=c[11],this.oSampleTable=a("TABLE",this.elDropdownLayer).get(0)},$ON_MSG_APP_READY:function(){this.oApp.exec("REGISTER_UI_EVENT",["table","click","ST_TOGGLE_TOOLBAR_LAYER"]),this.oApp.registerBrowserEvent(this.oRowInput,"change","ST_SET_ROW_NUM",[null,0]),this.oApp.registerBrowserEvent(this.oColumnInput,"change","ST_SET_COLUMN_NUM",[null,0]),this.oApp.registerBrowserEvent(this.oBorderWidthInput,"change","ST_SET_BORDER_WIDTH",[null,0]),this.oApp.registerBrowserEvent(this.oButton_AddRow,"click","ST_ADD_ROW"),this.oApp.registerBrowserEvent(this.oButton_RemoveRow,"click","ST_REMOVE_ROW"),this.oApp.registerBrowserEvent(this.oButton_AddColumn,"click","ST_ADD_COLUMN"),this.oApp.registerBrowserEvent(this.oButton_RemoveColumn,"click","ST_REMOVE_COLUMN"),this.oApp.registerBrowserEvent(this.oButton_IncBorderWidth,"click","ST_INC_BORDER_WIDTH"),this.oApp.registerBrowserEvent(this.oButton_DecBorderWidth,"click","ST_DEC_BORDER_WIDTH"),this.oApp.registerBrowserEvent(this.oButton_BorderColorPreview,"click","ST_TOGGLE_BORDER_COLOR_LAYER"),this.oApp.registerBrowserEvent(this.oButton_BGColorPreview,"click","ST_TOGGLE_BGCOLOR_LAYER"),this.oApp.registerBrowserEvent(this.oButton_BorderColor,"click","ST_TOGGLE_BORDER_COLOR_LAYER"),this.oApp.registerBrowserEvent(this.oButton_BGColor,"click","ST_TOGGLE_BGCOLOR_LAYER"),this.oApp.registerBrowserEvent(this.oButton_Insert,"click","ST_INSERT_TABLE"),this.oApp.registerBrowserEvent(this.oButton_Cancel,"click","ST_CLOSE"),this.oApp.exec("ST_SET_BORDER_COLOR",["#CCCCCC"]),this.oApp.exec("ST_SET_BGCOLOR",["#FFFFFF"])},$ON_ST_TOGGLE_TOOLBAR_LAYER:function(){this.oApp.exec("RECORD_UNDO_ACTION_FORCED",["KEYPRESS"]),this._showNewTable(),this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer])},$ON_ST_ADD_ROW:function(){this.oApp.exec("ST_SET_ROW_NUM",[null,1])},$ON_ST_REMOVE_ROW:function(){this.oApp.exec("ST_SET_ROW_NUM",[null,-1])},$ON_ST_ADD_COLUMN:function(){this.oApp.exec("ST_SET_COLUMN_NUM",[null,1])},$ON_ST_REMOVE_COLUMN:function(){this.oApp.exec("ST_SET_COLUMN_NUM",[null,-1])},$ON_ST_SET_ROW_NUM:function(a,b){a=a||parseInt(this.oRowInput.value),b=b||0,a+=b,athis.iMaxRows&&(a=this.iMaxRows),this.oRowInput.value=a,this._showNewTable()},$ON_ST_SET_COLUMN_NUM:function(a,b){a=a||parseInt(this.oColumnInput.value),b=b||0,a+=b,athis.iMaxColumns&&(a=this.iMaxColumns),this.oColumnInput.value=a,this._showNewTable()},$ON_ST_INSERT_TABLE:function(){var a=this._getTableString();this.oApp.exec("PASTE_HTML",[a]),this.oApp.exec("ST_CLOSE",[])},$ON_ST_CLOSE:function(){this.oApp.exec("HIDE_ACTIVE_LAYER",[])},$ON_ST_SET_BORDER_WIDTH:function(a,b){a=a||parseInt(this.oBorderWidthInput.value),b=b||0,a+=b,athis.iMaxBorderWidth&&(a=this.iMaxBorderWidth),this.oBorderWidthInput.value=a,this._showNewTable()},$ON_ST_INC_BORDER_WIDTH:function(){this.oApp.exec("ST_SET_BORDER_WIDTH",[null,1])},$ON_ST_DEC_BORDER_WIDTH:function(){this.oApp.exec("ST_SET_BORDER_WIDTH",[null,-1])},$ON_ST_TOGGLE_BORDER_COLOR_LAYER:function(){this.welDropdownLayer.hasClass("p1")?this.oApp.exec("ST_HIDE_BORDER_COLOR_LAYER",[]):this.oApp.exec("ST_SHOW_BORDER_COLOR_LAYER",[])},$ON_ST_SHOW_BORDER_COLOR_LAYER:function(){this.welDropdownLayer.addClass("p1"),this.welDropdownLayer.removeClass("p2"),this.oApp.exec("SHOW_COLOR_PALETTE",["ST_SET_BORDER_COLOR_FROM_PALETTE",this.elDropdownLayer])},$ON_ST_HIDE_BORDER_COLOR_LAYER:function(){this.welDropdownLayer.removeClass("p1"),this.oApp.exec("HIDE_COLOR_PALETTE",[])},$ON_ST_TOGGLE_BGCOLOR_LAYER:function(){this.welDropdownLayer.hasClass("p2")?this.oApp.exec("ST_HIDE_BGCOLOR_LAYER",[]):this.oApp.exec("ST_SHOW_BGCOLOR_LAYER",[])},$ON_ST_SHOW_BGCOLOR_LAYER:function(){this.welDropdownLayer.removeClass("p1"),this.welDropdownLayer.addClass("p2"),this.oApp.exec("SHOW_COLOR_PALETTE",["ST_SET_BGCOLOR_FROM_PALETTE",this.elDropdownLayer])},$ON_ST_HIDE_BGCOLOR_LAYER:function(){this.welDropdownLayer.removeClass("p2"),this.oApp.exec("HIDE_COLOR_PALETTE",[])},$ON_ST_SET_BORDER_COLOR_FROM_PALETTE:function(a){this.oApp.exec("ST_SET_BORDER_COLOR",[a]),this.oApp.exec("ST_HIDE_BORDER_COLOR_LAYER",[])},$ON_ST_SET_BORDER_COLOR:function(a){this.oBorderColorInput.value=a,this.oButton_BorderColorPreview.style.backgroundColor=a,this._showNewTable()},$ON_ST_SET_BGCOLOR_FROM_PALETTE:function(a){this.oApp.exec("ST_SET_BGCOLOR",[a]),this.oApp.exec("ST_HIDE_BGCOLOR_LAYER",[])},$ON_ST_SET_BGCOLOR:function(a){this.oBGColorInput.value=a,this.oButton_BGColorPreview.style.backgroundColor=a,this._showNewTable()},_showNewTable:function(){var a=document.createElement("DIV");a.innerHTML=this._getTableString();var b=a.firstChild;this.oSampleTable.parentNode.insertBefore(b,this.oSampleTable),this.oSampleTable.parentNode.removeChild(this.oSampleTable),this.oSampleTable=b},_getTableString:function(){var b=this.oBorderColorInput.value,c=this.oBGColorInput.value,d=this.oBorderWidthInput.value,e="";e=a.browser.msie?"

":a.browser.firefox?"


":"

 

";for(var f='',g='',h=this.oColumnInput.value,i=0;h>i;i++)g+=e;g+="\n";var j=this.oRowInput.value;f+="";for(var i=0;j>i;i++)f+=g;return f+="",f+="
"}}),xe.XE_EditingModeToggler=a.Class({name:"XE_EditingModeToggler",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){b=a.$(b)||document,this.elModeToggleButton=a("BUTTON.xpress_xeditor_mode_toggle_button",b).get(0),this.welModeToggleButton=a(this.elModeToggleButton)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elModeToggleButton,"click","EVENT_TOGGLE_EDITING_MODE",[])},$ON_EVENT_TOGGLE_EDITING_MODE:function(){"WYSIWYG"==this.oApp.getEditingMode()?this.oApp.exec("CHANGE_EDITING_MODE",["HTMLSrc"]):this.oApp.exec("CHANGE_EDITING_MODE",["WYSIWYG"])},$ON_CHANGE_EDITING_MODE:function(a){"HTMLSrc"==a?(this.welModeToggleButton.addClass("active").parent("span").addClass("active"),this.oApp.exec("DISABLE_ALL_UI",[])):(this.welModeToggleButton.removeClass("active").parent("span").removeClass("active"),this.oApp.exec("ENABLE_ALL_UI",[])) +}}),xe.XE_Editorresize=a.Class({name:"XE_Editorresize",$init:function(b,c){this.inputArea=a(".xpress_xeditor_editing_area_container",b).get(0),this.oVerticalResizer=a(".xpress_xeditor_editingArea_verticalResizer",b).get(0),this.oCheckBox=a("#editorresize",b).get(0),this.oIframe=c;var d=this;a(c).load(function(){d.oIframeBody=a(c).contents().find("body")})},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.oCheckBox,"change","XE_TOGGLE_EDITOR_RESIZE")},$ON_XE_TOGGLE_EDITOR_RESIZE:function(){1==this.oCheckBox.checked?(void 0==this._prevHeight&&(this._prevHeight=this.inputArea.style.height),this.oVerticalResizer.style.display="none",this.oApp.registerBrowserEvent(this.oIframeBody,"keydown","XE_EDITOR_RESIZE"),this.inputArea.style.height=this.oIframe.style.height=this.oIframeBody[0].scrollHeight+"px"):(a(this.oIframeBody).unbind("keydown"),this.oVerticalResizer.style.display="block",this.inputArea.style.height=this._prevHeight,this.oIframe.style.height=this._prevHeight)},$ON_XE_EDITOR_RESIZE:function(){var a=this;setTimeout(function(){a.inputArea.style.height=a.oIframe.style.height=a.oIframeBody[0].scrollHeight+"px"},0)}});var d={"XE_EditingAreaManager.onExit":"%uB0B4%uC6A9%uC774%20%uBCC0%uACBD%uB418%uC5C8%uC2B5%uB2C8%uB2E4.","XE_FontColor.invalidColorCode":"%uC0C9%uC0C1%20%uCF54%uB4DC%uB97C%20%uC62C%uBC14%uB974%uAC8C%20%uC785%uB825%uD558%uC5EC%20%uC8FC%uC2DC%uAE30%20%uBC14%uB78D%uB2C8%uB2E4.\n\n%uC608%29%20%23000000%2C%20%23FF0000%2C%20%23FFFFFF%2C%20%23ffffff%2C%20ffffff","XE_BGColor.invalidColorCode":"%uC0C9%uC0C1%20%uCF54%uB4DC%uB97C%20%uC62C%uBC14%uB974%uAC8C%20%uC785%uB825%uD558%uC5EC%20%uC8FC%uC2DC%uAE30%20%uBC14%uB78D%uB2C8%uB2E4.\n\n%uC608%29%20%23000000%2C%20%23FF0000%2C%20%23FFFFFF%2C%20%23ffffff%2C%20ffffff","XE_Hyperlink.invalidURL":"%uC785%uB825%uD558%uC2E0%20URL%uC774%20%uC62C%uBC14%uB974%uC9C0%20%uC54A%uC2B5%uB2C8%uB2E4."};xe.XpressCore.oMessageMap=d;regex_handler=/<(.*?)\s+on[a-z]+\s*=(?:\s*".*?"|\s*'.*?'|[^\s>]+)(.*?)>/gi,regex_font_color=/color\s*=(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_face=/face\s*=(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_size=/size\s*=(?:\s*"(\d+)"|\s*'(\d+)'|(\d+))/i,regex_style=/style\s*=\s*(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_weight=/font-weight\s*:\s*([a-z]+);?/i,regex_font_style=/font-style\s*:\s*italic;?/i,regex_font_decoration=/text-decoration\s*:\s*([a-z -]+);?/i,regex_jquery=/jQuery\d+\s*=(\s*"\d+"|\d+)/gi,regex_quote_attr=/([\w-]+\s*=(?:\s*"[^"]+"|\s*'[^']+'))|([\w-]+)=([^\s]+)/g;var e=("a,abbr,acronym,address,area,blockquote,br,caption,center,cite,code,col,colgroup,dd,del,dfn,div,dl,dt,em,embed,h1,h2,h3,h4,h5,h6,hr,img,ins,kbd,li,map,object,ol,p,param,pre,q,samp,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,tt,u,ul,var,iframe,object,param,style".split(","),"area,br,col,embed,hr,img,input,param,base,meta,link,basefont,isindex".split(","));xe.XE_XHTMLFormatter=a.Class({name:"XE_XHTMLFormatter",$ON_MSG_APP_READY:function(){this.oApp.addConverter("WYSIWYG_TO_IR",this.TO_IR),this.oApp.addConverter("HTMLSrc_TO_IR",this.TO_IR),this.oApp.addConverter("IR_TO_HTMLSrc",this.IR_TO),this.oApp.addConverter("IR_TO_WYSIWYG",this.IR_TO)},TO_IR:function(b){var c=[];if(a.browser.msie&&(b=b.replace(regex_jquery,""),b=b.replace(/<(\w+) ([^>]+)>/g,function(a,b,c){return"<"+b+" "+c.replace(regex_quote_attr,function(a,b,c,d){return b?b:/^"/.test(d)||/"$/.test(d)?c+"="+d:c+'="'+(d||c)+'"'})+">"})),regex=/<(\/)?([:\w\/-]+)(.*?)>/gi,b=b.replace(regex,function(b,d,f,g){var h="";if(d=d||"",f=f.toLowerCase(),g=a.trim(g||""),d){var i=[],j="";if(a.inArray(f,e)>=0)return"";if(!c.length)return"";do j=c.pop(),j.tag==f&&"deleted"!=j.state&&i.push("");while(c.length&&j.tag!=f);return i.join("")}if(a.inArray(f,e)>=0){var k=g.length;return"br"==f&&(g=""),g&&"/"==g.substring(k-1,k)||(g+=" /"),"<"+f+" "+a.trim(g)+">"}return c.push({tag:f,state:h}),"<"+d+f+(g?" "+g:"")+">"}),c.length){var d="";do d=c.pop(),"deleted"!=d.state&&(b+="");while(c.length)}return regex=/<\/p>[ \t]*(\n)?/gi,b=b.replace(regex,"

\n")},IR_TO:function(a){return a}}),xe.XE_Extension=a.Class({name:"XE_Extension",seq:"",last_doc:"",$init:function(a,b){this.seq=b,this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_extension_layer",b).get(0)},_removeAttrs:function(a){return a},_addEvent:function(){if("WYSIWYG"==this.oApp.getEditingMode()){var b=this.oApp.getWYSIWYGDocument(),c=this.seq,d=function(){var b=a(this),d=b.attr("editor_component");d&&a.isFunction(openComponent)&&(editorPrevNode=b.get(0),openComponent(d,c))};a(b).find("img,div[editor_component]").each(function(){var c=a(this);"IMG"!=this.nodeName||c.attr("editor_component")||c.attr("widget")||c.attr("editor_component","image_link"),this.last_doc!=b&&(c.unbind("dblclick.widget").bind("dblclick.widget",d),this.last_doc=b)})}},$ON_MSG_APP_READY:function(){var b=this.oApp;b.exec("REGISTER_UI_EVENT",["extension","click","TOGGLE_EXTENSION_LAYER"]);var c=function(){b.exec("HIDE_ACTIVE_LAYER",[])};a("a",this.elDropdownLayer).each(function(){var b=a(this);b.attr("component_onclick_event_added")||(b.click(c),b.attr("component_onclick_event_added","Y"))})},$ON_TOGGLE_EXTENSION_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer])},$ON_CHANGE_EDITING_MODE:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_PASTE_HTML:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_LOAD_IR_FIELD:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_SET_IR:function(){var a=this;setTimeout(function(){a._addEvent()},100)}}),xe.XE_AutoSave=a.Class({name:"XE_AutoSave",form:null,textarea:null,$init:function(a,b){this.form=a.form,this.textarea=a,this._assignHTMLObjects(b)},_assignHTMLObjects:function(){this.welMessageBox=a("autosave_message")},$ON_MSG_APP_READY:function(){var b=a(this.form._saved_doc_title),c=a(this.form._saved_doc_content),d=a(this.form._saved_doc_document_srl),e=a.trim(b.val()),f=a.trim(c.val()),g=a.trim(d.val());(e||f||g)&&(confirm(this.form._saved_doc_message.value)?(a(this.form.title).val(e),this.oApp.setIR(f),"function"==typeof editorGetAutoSavedDoc&&editorGetAutoSavedDoc(this.form)):editorRemoveSavedDoc()),editorEnableAutoSave(this.form,a(this.form).attr("editor_sequence")),this.oApp.exec("REGISTER_HOTKEY",["ctrl+shift+s","AUTO_SAVE"])},$ON_AUTO_SAVE:function(){_editorAutoSave()}}),xe.XE_FormatWithSelectUI=a.Class({name:"XE_FormatWithSelectUI",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elFormatSelect=a("SELECT.xpress_xeditor_ui_format_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elFormatSelect,"change","SET_FORMAT_FROM_SELECT_UI"),this.elFormatSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(){var b=this.oApp.getWYSIWYGDocument().queryCommandValue("FormatBlock");return b?(a.browser.msie&&/([0-9])/.test(b)&&(b="h"+RegExp.$1),this.elFormatSelect.value=b.toLowerCase(),this.elFormatSelect.selectedIndex<0&&(this.elFormatSelect.selectedIndex=0),void(this.elFormatSelect.value!=b.toLowerCase()&&(this.elFormatSelect.selectedIndex=0))):this.elFormatSelect.selectedIndex=0},$ON_SET_FORMAT_FROM_SELECT_UI:function(){var b=this.elFormatSelect.value;b&&(a.browser.msie&&(b="<"+b+">"),this.oApp.exec("EXECCOMMAND",["FormatBlock",!1,b]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}),xe.XE_Table=a.Class({_startSel:null,_endSel:null,$ON_MSG_APP_READY:function(){this._doc=a(this.oApp.getWYSIWYGDocument()),this.$FnMouseDown=a.fnBind(this._mousedown,this),this.$FnMouseUp=a.fnBind(this._mouseup,this),this.$FnMouseMove=a.fnBind(this._mousemove,this),this._doc.mousedown(this.$FnMouseDown),this._startSel=null,this._endSel=null,this.oApp.exec("REGISTER_UI_EVENT",["merge_cells","click","MERGE_CELLS"]),this.oApp.exec("REGISTER_UI_EVENT",["split_col","click","CELL_SPLIT_BY_COL"]),this.oApp.exec("REGISTER_UI_EVENT",["split_row","click","CELL_SPLIT_BY_ROW"]),this.oApp.exec("REGISTER_HOTKEY",["ctrl+alt+m","MERGE_CELLS"]),this.$super.$ON_MSG_APP_READY()},$ON_MERGE_CELLS:function(){var b="",c=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),d=this;if(c.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Merge"]),c.each(function(){b+=a(this).html()}).eq(0).html(b);var e=0;c.eq(0).nextAll("td,th").andSelf().filter(".xe_selected_cell").each(function(){e+=d._getSpan(this,"col")});var f=(this._getRect(c.eq(0)),c.eq(0).parent("tr")),g=c.eq(c.length-1).parent("tr"),h=c.parents("table").eq(0).find("tr"),i=h.index(g.get(0))-h.index(f.get(0))+this._getSpan(c.eq(c.length-1),"row");c.eq(0).attr("colSpan",e).attr("rowSpan",i),c.slice(1).remove()}},$ON_CELL_SPLIT_BY_ROW:function(){var b=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),c=b.parents("table").eq(0),d=this;if(b.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Split By Row"]);var e=this._getRect(b.eq(0)).top,f=this._getRect(b.eq(b.length-1)).bottom;(b=c.find("td,th").filter(function(){var b=d._getRect(a(this));return!(b.bottom<=e||b.top>=f)})).filter(".xe_selected_cell").each(function(){var c=a(this),e=c.parent("tr"),f=d._getSpan(c,"row"),g=d._getRect(c),h=[],i=c.clone().html("
"),j=1,k=1;f>1?(j=Math.ceil(f/2),k=f-j,h.push(function(){c.attr("rowSpan",j)}),i.attr("rowSpan",k)):(b.filter(function(){if(c.get(0)==this)return!1;var b=a(this),e=d._getRect(b);return e.bottom<=g.top||e.top>=g.bottom?!1:!0}).each(function(){var b=a(this),c=d._getSpan(b,"row")+1;h.push(function(){b.attr("rowSpan",c)})}),e.after(a.browser.msie?e.clone().empty().get(0).outerHTML:e.clone().empty()));var l=e.nextAll("tr");if(l.length){var m=l.eq(j-1).children("td,th").filter(function(){return d._getRect(a(this)).left>g.left});a.browser.msie?m.length?m.eq(0).before(i.get(0).outerHTML):l.eq(j-1).append(i.get(0).outerHTML):m.length?m.slice(0,1).before(i):l.slice(j-1,1).append(i)}else e.after(e.clone().empty().append(i));a.each(h,function(){this()})})}},$ON_CELL_SPLIT_BY_COL:function(){{var b=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),c=b.parents("table").slice(0,1),d=this;(new Date).getTime()}if(b.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Split By Column"]);var e=b.eq(0).parent("tr"),f=this._getRect(e.find(".xe_selected_cell:first")).left,g=this._getRect(e.find(".xe_selected_cell:last")).right;(b=c.find("td,th").filter(function(){var b=d._getRect(a(this));return!(b.right<=f||b.left>=g)})).filter(".xe_selected_cell").each(function(){var c=a(this),e=d._getSpan(c,"col"),f=c.clone().html("
");if(e>1){var g=Math.ceil(e/2),h=e-g;c.attr("colSpan",g),f.attr("colSpan",h)}else{var i=d._getRect(c);b.filter(function(){if(c.get(0)==this)return!1;var b=a(this),e=d._getRect(b);return e.right<=i.left||e.left>=i.right?!1:!0}).each(function(){var b=a(this);b.attr("colSpan",d._getSpan(b,"col")+1)}),f.attr("colSpan",1)}c.after(a.browser.msie?f.get(0).outerHTML:f)})}},$ON_CHECK_STYLE_CHANGE:function(){var b=["merge_cells","split_col","split_row"],c=this.oApp,d=this._startSel&&this._startSel.is(".xe_selected_cell")?"ENABLE_UI":"DISABLE_UI";a.each(b,function(){c.exec(d,[this])})},_mousedown:function(b){function c(){return e=f.getSelection().cloneRange(),e.collapseToStart(),e=a(e.startContainer).parents().andSelf().filter("td,th").eq(0),e.length?(g._getRect(g._startSel=e),g._doc.bind("mousemove",g.$FnMouseMove),void g._doc.bind("mouseup",g.$FnMouseUp)):g._removeAllListener()||!0}var d=a(b.target),e=d.parents().andSelf().filter("td,th,table"),f=this.oApp,g=this;a("td.xe_selected_cell",this.oApp.getWYSIWYGDocument()).removeClass("xe_selected_cell"),this._startSel=null,this._endSel=null,e.length&&this._isLeftClicked(b.button)&&setTimeout(c,0)},_mouseup:function(){this._removeAllListener(),this._startSel=this._endSel=null},_mousemove:function(b){function c(){var a=f.oApp.getSelection();f._startSel&&(f._startSel.get(0).firstChild||f._startSel.text(" "),a.selectNode(f._startSel.get(0).firstChild),a.collapseToStart(),a.select())}var d=a(b.target),e=d.parents().andSelf().filter("td,th").eq(0),f=this;if(e.length&&this._isLeftClicked(b.button)&&!(!this._endSel&&e.get(0)==this._startSel.get(0)||this._endSel&&e.get(0)==this._endSel.get(0))){this._getRect(this._endSel=e);var g=Math.min(this._startSel.rect.top,this._endSel.rect.top),h=Math.min(this._startSel.rect.left,this._endSel.rect.left),i=Math.max(this._startSel.rect.bottom,this._endSel.rect.bottom),j=Math.max(this._startSel.rect.right,this._endSel.rect.right),k=e.parents("table"),l=k.find("td,th").removeClass("xe_selected_cell"),m=a();do m.each(function(){var b=f._getRect(a(this));b.right>j&&(j=b.right),b.lefti&&(i=b.bottom)}),l=l.filter(":not(.xe_selected_cell)"),m=l.filter(function(){var b=f._getRect(a(this));return b.right<=h||b.left>=j||b.bottom<=g||b.top>=i?!1:!0}).addClass("xe_selected_cell");while(m.length);return a.browser.mozilla||setTimeout(c,0),!1}},_removeAllListener:function(){this._doc.unbind("mousemove",this.$FnMouseMove),this._doc.unbind("mouseup",this.$FnMouseUp)},_isLeftClicked:function(b){return a.browser.msie?!!(1&b):0==b},_getRect:function(a){var b=a.get(0);return a.rect={},a.rect.top=b.offsetTop,a.rect.left=b.offsetLeft,a.rect.bottom=a.rect.top+b.offsetHeight,a.rect.right=a.rect.left+b.offsetWidth,a.rect},_getSpan:function(b,c){var d=parseInt(a(b).attr(c+"span"));return isNaN(d)?1:d}}).extend(xe.XE_Table)}(jQuery),window.xe||(xe={}),xe.Editors=[],xe.XE_GET_WYSYWYG_MODE=jQuery.Class({name:"XE_GET_WYSYWYG_MODE",$init:function(a){this.editor_sequence=a},$ON_CHANGE_EDITING_MODE:function(a){editorMode[this.editor_sequence]="HTMLSrc"==a?"html":"wysiwyg"}}),xe.XE_PreservTemplate=jQuery.Class({name:"XE_PreservTemplate",isRun:!1,$BEFORE_SET_IR:function(a){return this.isRun||a?void 0:(this.isRun=!0,!1)}}),xe.XE_Preview=jQuery.Class({name:"XE_Preview",elPreviewButton:null,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(a){this.elPreviewButton=jQuery("BUTTON.xpress_xeditor_preview_button",a)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elPreviewButton.get(0),"click","EVENT_PREVIEW",[])},$ON_EVENT_PREVIEW:function(){}}); \ No newline at end of file diff --git a/modules/editor/tpl/js/editor.min.js b/modules/editor/tpl/js/editor.min.js index 46653619b9..c0c1c8cde6 100644 --- a/modules/editor/tpl/js/editor.min.js +++ b/modules/editor/tpl/js/editor.min.js @@ -1 +1 @@ -function editorGetTextArea(a){return jQuery("#editor_textarea_"+a)[0]}function editorGetPreviewArea(a){return jQuery("#editor_preview_"+a)[0]}function editorGetForm(a){var b=editorGetIFrame(a);if(b){for(var c=b.parentNode;"FORM"!=c.nodeName;)c=c.parentNode;return"FORM"==c.nodeName?c:void 0}}function editorGetContent_xe(a){var b="";if("html"==editorMode[a]){var c=editorGetTextArea(a);if(!c)return"";b=c.value}else{var d=editorGetIFrame(a);if(!d)return"";b=jQuery(d.contentWindow.document.body).html().replace(/^]*)>$/i,"")}return b}function editorGetSelectedNode(a){var b,c,d=editorGetIFrame(a);return b=d.contentWindow,b.document.selection?(c=b.document.selection.createRange(),jQuery("
").html(c.htmlText)[0].firstChild):(c=b.getSelection().getRangeAt(0),jQuery("
").append(c.cloneContents())[0].firstChild)}function editorStart(a,b,c,d,e){"undefined"==typeof e&&(e="#000"),_editorFontColor[a]=e;var f=editorGetIFrame(a);if(f){jQuery(f).css("width","100%").parent().css("width","100%");var g=editorGetForm(a);if(g){if(g.setAttribute("editor_sequence",a),editorRelKeys[a]=[],editorRelKeys[a].primary=g[b],editorRelKeys[a].content=g[c],editorRelKeys[a].func=editorGetContent_xe,"undefined"!=typeof g._saved_doc_title){var h=g._saved_doc_title.value,i=g._saved_doc_content.value;if(h||i)if(confirm(g._saved_doc_message.value)){"undefined"!=typeof g.title&&(g.title.value=h),editorRelKeys[a].content.value=i;var j=[];j.editor_sequence=a,j.primary_key=b,j.mid=current_mid;var k=new Array("error","message","editor_sequence","key","title","content","document_srl");exec_xml("editor","procEditorLoadSavedDocument",j,getAutoSavedSrl,k)}else editorRemoveSavedDoc()}var l=editorRelKeys[a].content.value;l||xIE4Up||(l="
");var m=xGetElementById("for_ie_help_"+a);xIE4Up&&m&&(m.style.display="block"),editor_path=editor_path.replace(/^\.\//gi,"");var n=''+l+"";f.contentWindow.document.open("text/html","replace"),f.contentWindow.document.write(n),f.contentWindow.document.close(),editorMode[a]=null;try{f.contentWindow.document.designMode="On"}catch(o){}try{f.contentWindow.document.execCommand("undo",!1,null),f.contentWindow.document.execCommand("useCSS",!1,!0)}catch(o){}try{jQuery(f.contentWindow.document).unbind("dblclick.widget").bind("dblclick.widget",editorSearchComponent)}catch(o){}try{xIE4Up?xAddEventListener(f.contentWindow.document,"keydown",editorKeyPress):xAddEventListener(f.contentWindow.document,"keypress",editorKeyPress)}catch(o){}"undefined"!=typeof g._saved_doc_title&&editorEnableAutoSave(g,a),"html"==xGetCookie("editor_mode")&&(f=editorGetIFrame(a),xGetElementById("fileUploader_"+a)&&(xGetElementById("fileUploader_"+a).style.display="block"),textarea_obj=editorGetTextArea(a),textarea_obj.value=l,xWidth(textarea_obj,xWidth(f.parentNode)),xHeight(textarea_obj,xHeight(f.parentNode)),editorMode[a]="html",xGetElementById("xeEditor_"+a)&&(xGetElementById("xeEditor_"+a).className="xeEditor html",xGetElementById("use_rich_"+a).className="",xGetElementById("preview_html_"+a).className="",xGetElementById("use_html_"+a).className="active"))}}}function editorKeyPress(a){var b=new xEvent(a),c=b.target,d=null;if(d="BODY"==c.nodeName?c:c.firstChild.nextSibling){var e=d.getAttribute("editor_sequence");if(e){if(xIE4Up&&!b.ctrlKey&&!b.shiftKey&&13==b.keyCode&&!editorMode[e]){var f=editorGetIFrame(e);if(!f)return;c=g.selection.createRange();var g=f.contentWindow.document,h=c.parentElement().tagName.toLowerCase();switch(h){case"li":return;default:c.pasteHTML("
")}return c.select(),a.cancelBubble=!0,a.returnValue=!1,void 0}if(115==b.keyCode&&(b.altKey||b.ctrlKey)){if(!editorGetIFrame(e))return;var i=editorGetForm(e);if(!i)return;return editorRelKeys[e].content.value=editorGetContent(e),i.onsubmit&&i.onsubmit(),a.cancelBubble=!0,a.returnValue=!1,xPreventDefault(a),xStopPropagation(a),void 0}if(b.ctrlKey){if(!editorGetIFrame(e))return;if(editorMode[e])return a.cancelBubble=!0,a.returnValue=!1,xPreventDefault(a),xStopPropagation(a),void 0;switch(b.keyCode){case 49:case 50:case 51:case 52:case 53:case 54:editorDo("formatblock","",b.target),xPreventDefault(a),xStopPropagation(a);break;case 55:editorDo("formatblock","

",b.target),xPreventDefault(a),xStopPropagation(a);break;case 13:if(xIE4Up){if("On"!=b.target.parentElement.document.designMode)return;return c=b.target.parentElement.document.selection.createRange(),c.pasteHTML("

"),c.select(),a.cancelBubble=!0,a.returnValue=!1,void 0}break;case 98:editorDo("Bold",null,b.target),xPreventDefault(a),xStopPropagation(a);break;case 105:editorDo("Italic",null,b.target),xPreventDefault(a),xStopPropagation(a);break;case 117:editorDo("Underline",null,b.target),xPreventDefault(a),xStopPropagation(a);break;case 100:editorDo("RemoveFormat",null,b.target),xPreventDefault(a),xStopPropagation(a)}}}}}function editorDo(a,b,c){var d=null;if("object"==typeof c)d=xIE4Up?c.parentElement.document:c.parentNode;else{var e=editorGetIFrame(c);d=e.contentWindow.document}var f=d.body.getAttribute("editor_sequence");editorMode[f]||("object"==typeof c?c.focus():editorFocus(c),d.execCommand(a,!1,b),"object"==typeof c?c.focus():editorFocus(c))}function editorChangeFontName(a,b){var c=a.options[a.selectedIndex].value;c&&(editorDo("FontName",c,b),a.selectedIndex=0)}function editorChangeFontSize(a,b){var c=a.options[a.selectedIndex].value;c&&(editorDo("FontSize",c,b),a.selectedIndex=0)}function editorUnDo(a,b){editorDo("undo","",b),a.selectedIndex=0}function editorReDo(a,b){editorDo("redo","",b),a.selectedIndex=0}function editorChangeHeader(a,b){var c=a.options[a.selectedIndex].value;c&&(c="<"+c+">",editorDo("formatblock",c,b),a.selectedIndex=0)}function editorChangeMode(a,b){if("html"==a||""==a){var c=new Date;c.setTime(c.getTime()+6048e8),xSetCookie("editor_mode",a,c)}var d=editorGetIFrame(b);if(d){var e=editorGetTextArea(b),f=editorGetPreviewArea(b),g=d.contentWindow.document,h=null;if("html"==editorMode[b]?(h=e.value,g.body.innerHTML=e.value):"preview"==editorMode[b]?(h=e.value,f.contentWindow.document.body.innerHTML=""):(h=g.body.innerHTML,e.value=h,h=h.replace(/
/gi,"
\n"),h=h.replace(/
\n\n/gi,"
\n")),"html"==a&&e)f.style.display="none",xGetElementById("fileUploader_"+b)&&(xGetElementById("fileUploader_"+b).style.display="block"),e.value=h,xWidth(e,xWidth(d.parentNode)),xHeight(e,xHeight(d.parentNode)),editorMode[b]="html",xGetElementById("xeEditor_"+b)&&(xGetElementById("xeEditor_"+b).className="xeEditor html",xGetElementById("use_rich_"+b).className="",xGetElementById("preview_html_"+b).className="",xGetElementById("use_html_"+b).className="active");else if("preview"==a&&f){f.style.display="",xGetElementById("fileUploader_"+b)&&(xGetElementById("fileUploader_"+b).style.display="none");var i=xGetElementById("preview_form");i||(i=xCreateElement("form"),i.id="preview_form",i.method="post",i.action=request_uri,i.target="editor_preview_"+b,xInnerHtml(i,''),document.body.appendChild(i)),i.content.value=h,i.submit(),xWidth(f,xWidth(d.parentNode)),editorMode[b]="preview",xGetElementById("xeEditor_"+b)&&(xGetElementById("xeEditor_"+b).className="xeEditor preview",xGetElementById("use_rich_"+b).className="",xGetElementById("preview_html_"+b).className="active",xGetElementById("use_html_"+b)&&(xGetElementById("use_html_"+b).className=""))}else f.style.display="none",xGetElementById("fileUploader_"+b)&&(xGetElementById("fileUploader_"+b).style.display="block"),g.body.innerHTML=h,editorMode[b]=null,xGetElementById("xeEditor_"+b)&&(xGetElementById("xeEditor_"+b).className="xeEditor rich",xGetElementById("use_rich_"+b).className="active",xGetElementById("preview_html_"+b).className="",xGetElementById("use_html_"+b)&&(xGetElementById("use_html_"+b).className=""))}}function closeEditorInfo(a){xGetElementById("editorInfo_"+a).style.display="none";var b=new Date;b.setTime(b.getTime()+6048e8),xSetCookie("EditorInfo","1",b)}function showEditorHelp(a,b){jQuery("#helpList_"+b).toggleClass("open")}function showEditorExtension(a,b){var c="#editorExtension_"+b,d=new xEvent(a);jQuery(c).hasClass("extension2")?(jQuery(c).addClass("open"),d.pageX<=xWidth("editor_component_"+b)?jQuery("#editor_component_"+b).css("right","auto").css("left",0):jQuery("#editor_component_"+b).css("right",0).css("left","auto")):jQuery(c).attr("class","extension2")}function showPreviewContent(a){if("undefined"!=typeof a&&"undefined"!=typeof _editorFontColor[a]){var b=editorGetPreviewArea(a);b.contentWindow.document.body.style.color=_editorFontColor[a]}}function setPreviewHeight(a){var b=xGetElementById("editor_preview_"+a).contentWindow.document.body.scrollHeight;400>b&&(b=400),xHeight("editor_preview_"+a,b+20)}function getAutoSavedSrl(a){var b=a.editor_sequence,c=a.key,d=editorGetForm(b);d[c].value=a.document_srl,uploadSettingObj[b]&&editorUploadInit(uploadSettingObj[b],!0)}var _editorFontColor=[]; \ No newline at end of file +function editorGetTextArea(a){return jQuery("#editor_textarea_"+a)[0]}function editorGetPreviewArea(a){return jQuery("#editor_preview_"+a)[0]}function editorGetForm(a){var b=editorGetIFrame(a);if(b){for(var c=b.parentNode;"FORM"!=c.nodeName;)c=c.parentNode;return"FORM"==c.nodeName?c:void 0}}function editorGetContent_xe(a){var b="";if("html"==editorMode[a]){var c=editorGetTextArea(a);if(!c)return"";b=c.value}else{var d=editorGetIFrame(a);if(!d)return"";b=jQuery(d.contentWindow.document.body).html().replace(/^]*)>$/i,"")}return b}function editorGetSelectedNode(a){var b,c,d=editorGetIFrame(a);return b=d.contentWindow,b.document.selection?(c=b.document.selection.createRange(),jQuery("

").html(c.htmlText)[0].firstChild):(c=b.getSelection().getRangeAt(0),jQuery("
").append(c.cloneContents())[0].firstChild)}function editorStart(a,b,c,d,e){"undefined"==typeof e&&(e="#000"),_editorFontColor[a]=e;var f=editorGetIFrame(a);if(f){jQuery(f).css("width","100%").parent().css("width","100%");var g=editorGetForm(a);if(g){if(g.setAttribute("editor_sequence",a),editorRelKeys[a]=[],editorRelKeys[a].primary=g[b],editorRelKeys[a].content=g[c],editorRelKeys[a].func=editorGetContent_xe,"undefined"!=typeof g._saved_doc_title){var h=g._saved_doc_title.value,i=g._saved_doc_content.value;if(h||i)if(confirm(g._saved_doc_message.value)){"undefined"!=typeof g.title&&(g.title.value=h),editorRelKeys[a].content.value=i;var j=[];j.editor_sequence=a,j.primary_key=b,j.mid=current_mid;var k=new Array("error","message","editor_sequence","key","title","content","document_srl");exec_xml("editor","procEditorLoadSavedDocument",j,getAutoSavedSrl,k)}else editorRemoveSavedDoc()}var l=editorRelKeys[a].content.value;l||xIE4Up||(l="
");var m=xGetElementById("for_ie_help_"+a);xIE4Up&&m&&(m.style.display="block"),editor_path=editor_path.replace(/^\.\//gi,"");var n=''+l+"";f.contentWindow.document.open("text/html","replace"),f.contentWindow.document.write(n),f.contentWindow.document.close(),editorMode[a]=null;try{f.contentWindow.document.designMode="On"}catch(o){}try{f.contentWindow.document.execCommand("undo",!1,null),f.contentWindow.document.execCommand("useCSS",!1,!0)}catch(o){}try{jQuery(f.contentWindow.document).unbind("dblclick.widget").bind("dblclick.widget",editorSearchComponent)}catch(o){}try{xIE4Up?xAddEventListener(f.contentWindow.document,"keydown",editorKeyPress):xAddEventListener(f.contentWindow.document,"keypress",editorKeyPress)}catch(o){}"undefined"!=typeof g._saved_doc_title&&editorEnableAutoSave(g,a),"html"==xGetCookie("editor_mode")&&(f=editorGetIFrame(a),xGetElementById("fileUploader_"+a)&&(xGetElementById("fileUploader_"+a).style.display="block"),textarea_obj=editorGetTextArea(a),textarea_obj.value=l,xWidth(textarea_obj,xWidth(f.parentNode)),xHeight(textarea_obj,xHeight(f.parentNode)),editorMode[a]="html",xGetElementById("xeEditor_"+a)&&(xGetElementById("xeEditor_"+a).className="xeEditor html",xGetElementById("use_rich_"+a).className="",xGetElementById("preview_html_"+a).className="",xGetElementById("use_html_"+a).className="active"))}}}function editorKeyPress(a){var b=new xEvent(a),c=b.target,d=null;if(d="BODY"==c.nodeName?c:c.firstChild.nextSibling){var e=d.getAttribute("editor_sequence");if(e){if(xIE4Up&&!b.ctrlKey&&!b.shiftKey&&13==b.keyCode&&!editorMode[e]){var f=editorGetIFrame(e);if(!f)return;c=g.selection.createRange();var g=f.contentWindow.document,h=c.parentElement().tagName.toLowerCase();switch(h){case"li":return;default:c.pasteHTML("
")}return c.select(),a.cancelBubble=!0,void(a.returnValue=!1)}if(115==b.keyCode&&(b.altKey||b.ctrlKey)){if(!editorGetIFrame(e))return;var i=editorGetForm(e);if(!i)return;return editorRelKeys[e].content.value=editorGetContent(e),i.onsubmit&&i.onsubmit(),a.cancelBubble=!0,a.returnValue=!1,xPreventDefault(a),void xStopPropagation(a)}if(b.ctrlKey){if(!editorGetIFrame(e))return;if(editorMode[e])return a.cancelBubble=!0,a.returnValue=!1,xPreventDefault(a),void xStopPropagation(a);switch(b.keyCode){case 49:case 50:case 51:case 52:case 53:case 54:editorDo("formatblock","",b.target),xPreventDefault(a),xStopPropagation(a);break;case 55:editorDo("formatblock","

",b.target),xPreventDefault(a),xStopPropagation(a);break;case 13:if(xIE4Up){if("On"!=b.target.parentElement.document.designMode)return;return c=b.target.parentElement.document.selection.createRange(),c.pasteHTML("

"),c.select(),a.cancelBubble=!0,void(a.returnValue=!1)}break;case 98:editorDo("Bold",null,b.target),xPreventDefault(a),xStopPropagation(a);break;case 105:editorDo("Italic",null,b.target),xPreventDefault(a),xStopPropagation(a);break;case 117:editorDo("Underline",null,b.target),xPreventDefault(a),xStopPropagation(a);break;case 100:editorDo("RemoveFormat",null,b.target),xPreventDefault(a),xStopPropagation(a)}}}}}function editorDo(a,b,c){var d=null;if("object"==typeof c)d=xIE4Up?c.parentElement.document:c.parentNode;else{var e=editorGetIFrame(c);d=e.contentWindow.document}var f=d.body.getAttribute("editor_sequence");editorMode[f]||("object"==typeof c?c.focus():editorFocus(c),d.execCommand(a,!1,b),"object"==typeof c?c.focus():editorFocus(c))}function editorChangeFontName(a,b){var c=a.options[a.selectedIndex].value;c&&(editorDo("FontName",c,b),a.selectedIndex=0)}function editorChangeFontSize(a,b){var c=a.options[a.selectedIndex].value;c&&(editorDo("FontSize",c,b),a.selectedIndex=0)}function editorUnDo(a,b){editorDo("undo","",b),a.selectedIndex=0}function editorReDo(a,b){editorDo("redo","",b),a.selectedIndex=0}function editorChangeHeader(a,b){var c=a.options[a.selectedIndex].value;c&&(c="<"+c+">",editorDo("formatblock",c,b),a.selectedIndex=0)}function editorChangeMode(a,b){if("html"==a||""==a){var c=new Date;c.setTime(c.getTime()+6048e8),xSetCookie("editor_mode",a,c)}var d=editorGetIFrame(b);if(d){var e=editorGetTextArea(b),f=editorGetPreviewArea(b),g=d.contentWindow.document,h=null;if("html"==editorMode[b]?(h=e.value,g.body.innerHTML=e.value):"preview"==editorMode[b]?(h=e.value,f.contentWindow.document.body.innerHTML=""):(h=g.body.innerHTML,e.value=h,h=h.replace(/
/gi,"
\n"),h=h.replace(/
\n\n/gi,"
\n")),"html"==a&&e)f.style.display="none",xGetElementById("fileUploader_"+b)&&(xGetElementById("fileUploader_"+b).style.display="block"),e.value=h,xWidth(e,xWidth(d.parentNode)),xHeight(e,xHeight(d.parentNode)),editorMode[b]="html",xGetElementById("xeEditor_"+b)&&(xGetElementById("xeEditor_"+b).className="xeEditor html",xGetElementById("use_rich_"+b).className="",xGetElementById("preview_html_"+b).className="",xGetElementById("use_html_"+b).className="active");else if("preview"==a&&f){f.style.display="",xGetElementById("fileUploader_"+b)&&(xGetElementById("fileUploader_"+b).style.display="none");var i=xGetElementById("preview_form");i||(i=xCreateElement("form"),i.id="preview_form",i.method="post",i.action=request_uri,i.target="editor_preview_"+b,xInnerHtml(i,''),document.body.appendChild(i)),i.content.value=h,i.submit(),xWidth(f,xWidth(d.parentNode)),editorMode[b]="preview",xGetElementById("xeEditor_"+b)&&(xGetElementById("xeEditor_"+b).className="xeEditor preview",xGetElementById("use_rich_"+b).className="",xGetElementById("preview_html_"+b).className="active",xGetElementById("use_html_"+b)&&(xGetElementById("use_html_"+b).className=""))}else f.style.display="none",xGetElementById("fileUploader_"+b)&&(xGetElementById("fileUploader_"+b).style.display="block"),g.body.innerHTML=h,editorMode[b]=null,xGetElementById("xeEditor_"+b)&&(xGetElementById("xeEditor_"+b).className="xeEditor rich",xGetElementById("use_rich_"+b).className="active",xGetElementById("preview_html_"+b).className="",xGetElementById("use_html_"+b)&&(xGetElementById("use_html_"+b).className=""))}}function closeEditorInfo(a){xGetElementById("editorInfo_"+a).style.display="none";var b=new Date;b.setTime(b.getTime()+6048e8),xSetCookie("EditorInfo","1",b)}function showEditorHelp(a,b){jQuery("#helpList_"+b).toggleClass("open")}function showEditorExtension(a,b){var c="#editorExtension_"+b,d=new xEvent(a);jQuery(c).hasClass("extension2")?(jQuery(c).addClass("open"),d.pageX<=xWidth("editor_component_"+b)?jQuery("#editor_component_"+b).css("right","auto").css("left",0):jQuery("#editor_component_"+b).css("right",0).css("left","auto")):jQuery(c).attr("class","extension2")}function showPreviewContent(a){if("undefined"!=typeof a&&"undefined"!=typeof _editorFontColor[a]){var b=editorGetPreviewArea(a);b.contentWindow.document.body.style.color=_editorFontColor[a]}}function setPreviewHeight(a){var b=xGetElementById("editor_preview_"+a).contentWindow.document.body.scrollHeight;400>b&&(b=400),xHeight("editor_preview_"+a,b+20)}function getAutoSavedSrl(a){var b=a.editor_sequence,c=a.key,d=editorGetForm(b);d[c].value=a.document_srl,uploadSettingObj[b]&&editorUploadInit(uploadSettingObj[b],!0)}var _editorFontColor=[]; \ No newline at end of file diff --git a/modules/editor/tpl/js/editor_common.min.js b/modules/editor/tpl/js/editor_common.min.js index 56fc16bbdc..0cef2d042c 100644 --- a/modules/editor/tpl/js/editor_common.min.js +++ b/modules/editor/tpl/js/editor_common.min.js @@ -1 +1 @@ -function editorGetContent(a){var b=editorRelKeys[a].func(a),c=new RegExp(request_uri.replace(/\//g,"\\/")+"(files|common|modules|layouts|widgets)","ig");return b.replace(c,"$1")}function editorFocus(a){try{var b=editorGetIFrame(a);jQuery.isFunction(b.setFocus)?b.setFocus():b.contentWindow.focus()}catch(c){}}function editorEnableAutoSave(a,b,c){var d=a.title.value,e=editorRelKeys[b].content.value;editorAutoSaveObj={fo_obj:a,editor_sequence:b,title:d,content:e,locked:!1},clearTimeout(editorEnableAutoSave.timer),editorEnableAutoSave.timer=setTimeout(function(){_editorAutoSave(!1,c)},5e4)}function _editorAutoSave(a,b){var c=editorAutoSaveObj.fo_obj,d=editorAutoSaveObj.editor_sequence;if(a||(clearTimeout(editorEnableAutoSave.timer),editorEnableAutoSave.timer=setTimeout(function(){_editorAutoSave(a,b)},5e4)),editorAutoSaveObj.locked!==!0&&c&&"undefined"!=typeof c.title&&d){var e=c.title.value,f="";try{f=editorGetContent(d)}catch(g){}if(e!=editorAutoSaveObj.title||f!=editorAutoSaveObj.content||a){var h,i=new Date;h={title:e,content:f,mid:current_mid,document_srl:editorRelKeys[d].primary.value},editorAutoSaveObj.title=e,editorAutoSaveObj.content=f,jQuery("#editor_autosaved_message_"+d).text(i.getHours()+":"+i.getMinutes()+" "+auto_saved_msg).show(300),editorAutoSaveObj.locked=!0,show_waiting_message=!1,exec_xml("editor","procEditorSaveDoc",h,function(){var a=jQuery.extend({},h,{auto_saved_msg:auto_saved_msg});editorAutoSaveObj.locked=!1,jQuery.isFunction(b)&&b(a)}),show_waiting_message=!0}}}function editorRemoveSavedDoc(){var a=[];a.mid=current_mid,exec_xml("editor","procEditorRemoveSavedDoc",a)}function editorGetIFrame(a){return void 0!==editorRelKeys&&void 0!==editorRelKeys[a]&&void 0!==editorRelKeys[a].editor?editorRelKeys[a].editor.getFrame(a):document.getElementById("editor_iframe_"+a)}function editorGetTextarea(a){return document.getElementById("editor_textarea_"+a)}function eOptionOver(a){a.style.marginTop="-21px",a.style.zIndex="99"}function eOptionOut(a){a.style.marginTop="0",a.style.zIndex="1"}function eOptionClick(a){a.style.marginTop="-42px",a.style.zIndex="99"}function editorEventCheck(a){editorPrevNode=null;var b=a.target.id;if(b){var c=b.split("_");if("component"==c[0]){var d=c[1],e=b.replace(/^component_[0-9]+_/,"");if(d&&e&&"html"!=editorMode[d])switch(e){case"Bold":case"Italic":case"Underline":case"StrikeThrough":case"undo":case"redo":case"JustifyLeft":case"JustifyCenter":case"JustifyRight":case"JustifyFull":case"Indent":case"Outdent":case"InsertOrderedList":case"InsertUnorderedList":case"SaveAs":case"Print":case"Copy":case"Cut":case"Paste":case"RemoveFormat":case"Subscript":case"Superscript":editorDo(e,"",d);break;default:return openComponent(e,d),!1}}}}function openComponent(a,b,c){if(editorPrevSrl=b,"html"!=editorMode[b]){var d=request_uri+"?module=editor&act=dispEditorPopup&editor_sequence="+b+"&component="+a;"undefined"!=typeof c&&c&&(d+="&manual_url="+escape(c)),popopen(d,"editorComponent")}}function editorSearchComponent(a){var b=new xEvent(a);editorPrevNode=null;var c,d=b.target,e=d;if(d.getAttribute("widget")){for(;e&&"BODY"!=e.nodeName;)e=xParent(e);if(!e||"BODY"!=e.nodeName||!e.getAttribute("editor_sequence"))return editorPrevNode=null,void 0;c=e.getAttribute("editor_sequence");var f=d.getAttribute("widget");if(editorPrevNode=d,"html"==editorMode[c])return;return popopen(request_uri+"?module=widget&act=dispWidgetGenerateCodeInPage&selected_widget="+f+"&module_srl="+c,"GenerateCodeInPage"),void 0}if(!d.getAttribute("editor_component"))for(;d&&!d.getAttribute("editor_component");)d=d.parentElement?d.parentElement:xParent(d);d||(d=b.target);var g=d.getAttribute("editor_component");if(g?editorPrevNode=d:"IMG"!=d.nodeName||d.getAttribute("widget")||(g="image_link",editorPrevNode=d),!g)return editorPrevNode=null,void 0;for(e=d;e&&"BODY"!=e.nodeName;)e=xParent(e);return e&&"BODY"==e.nodeName&&e.getAttribute("editor_sequence")?(c=e.getAttribute("editor_sequence"),openComponent(g,c),void 0):(editorPrevNode=null,void 0)}function editorReplaceHTML(a,b){var c,d=/src=("|\'){1}(\.\/)?(files\/attach|files\/cache|files\/faceOff|files\/member_extra_info|modules|common|widgets|widgetstyle|layouts|addons)\/([^"\']+)\.(jpg|jpeg|png|gif)("|\'){1}/g;b=b.replace(d,'src="'+request_uri+'$3/$4.$5"');var e=/href=("|\'){1}(\.\/)?\?([^"\']+)("|\'){1}/g;b=b.replace(e,'href="'+request_uri+'?$3"');a.editor_sequence||a.contentWindow.document.body.getAttribute("editor_sequence");try{a.contentWindow.focus()}catch(f){}if(jQuery.isFunction(a.replaceHTML))a.replaceHTML(b);else if(xIE4Up)c=a.contentWindow.document.selection.createRange(),c.pasteHTML?c.pasteHTML(b):editorPrevNode&&(editorPrevNode.outerHTML=b);else try{"HTML"==a.contentWindow.getSelection().focusNode.tagName?(c=a.contentDocument.createRange(),c.setStart(a.contentDocument.body,0),c.setEnd(a.contentDocument.body,0),c.insertNode(c.createContextualFragment(b))):(c=a.contentWindow.getSelection().getRangeAt(0),c.deleteContents(),c.insertNode(c.createContextualFragment(b)))}catch(f){xInnerHtml(a.contentWindow.document.body,b+xInnerHtml(a.contentWindow.document.body))}}function editorGetSelectedHtml(a){var b,c,d,e=editorGetIFrame(a);return jQuery.isFunction(e.getSelectedHTML)?e.getSelectedHTML():xIE4Up?(b=e.contentWindow.document.selection.createRange(),c=b.htmlText):(b=e.contentWindow.getSelection().getRangeAt(0),d=xCreateElement("div"),d.appendChild(b.cloneContents()),c=xInnerHtml(d))}var editorMode=[],editorAutoSaveObj={fo_obj:null,editor_sequence:0,title:"",content:"",locked:!1},editorRelKeys=[],editorDragObj={isDrag:!1,y:0,obj:null,id:"",det:0,source_height:0};editorEnableAutoSave.timer=null;var editorPrevSrl=null;jQuery(document).click(editorEventCheck);var editorPrevNode=null;!function(a){}(jQuery); \ No newline at end of file +function editorGetContent(a){var b=editorRelKeys[a].func(a),c=new RegExp(request_uri.replace(/\//g,"\\/")+"(files|common|modules|layouts|widgets)","ig");return b.replace(c,"$1")}function editorFocus(a){try{var b=editorGetIFrame(a);jQuery.isFunction(b.setFocus)?b.setFocus():b.contentWindow.focus()}catch(c){}}function editorEnableAutoSave(a,b,c){var d=a.title.value,e=editorRelKeys[b].content.value;editorAutoSaveObj={fo_obj:a,editor_sequence:b,title:d,content:e,locked:!1},clearTimeout(editorEnableAutoSave.timer),editorEnableAutoSave.timer=setTimeout(function(){_editorAutoSave(!1,c)},5e4)}function _editorAutoSave(a,b){var c=editorAutoSaveObj.fo_obj,d=editorAutoSaveObj.editor_sequence;if(a||(clearTimeout(editorEnableAutoSave.timer),editorEnableAutoSave.timer=setTimeout(function(){_editorAutoSave(a,b)},5e4)),editorAutoSaveObj.locked!==!0&&c&&"undefined"!=typeof c.title&&d){var e=c.title.value,f="";try{f=editorGetContent(d)}catch(g){}if(e!=editorAutoSaveObj.title||f!=editorAutoSaveObj.content||a){var h,i=new Date;h={title:e,content:f,mid:current_mid,document_srl:editorRelKeys[d].primary.value},editorAutoSaveObj.title=e,editorAutoSaveObj.content=f,jQuery("#editor_autosaved_message_"+d).text(i.getHours()+":"+i.getMinutes()+" "+auto_saved_msg).show(300),editorAutoSaveObj.locked=!0,show_waiting_message=!1,exec_xml("editor","procEditorSaveDoc",h,function(){var a=jQuery.extend({},h,{auto_saved_msg:auto_saved_msg});editorAutoSaveObj.locked=!1,jQuery.isFunction(b)&&b(a)}),show_waiting_message=!0}}}function editorRemoveSavedDoc(){var a=[];a.mid=current_mid,exec_xml("editor","procEditorRemoveSavedDoc",a)}function editorGetIFrame(a){return void 0!==editorRelKeys&&void 0!==editorRelKeys[a]&&void 0!==editorRelKeys[a].editor?editorRelKeys[a].editor.getFrame(a):document.getElementById("editor_iframe_"+a)}function editorGetTextarea(a){return document.getElementById("editor_textarea_"+a)}function eOptionOver(a){a.style.marginTop="-21px",a.style.zIndex="99"}function eOptionOut(a){a.style.marginTop="0",a.style.zIndex="1"}function eOptionClick(a){a.style.marginTop="-42px",a.style.zIndex="99"}function editorEventCheck(a){editorPrevNode=null;var b=a.target.id;if(b){var c=b.split("_");if("component"==c[0]){var d=c[1],e=b.replace(/^component_[0-9]+_/,"");if(d&&e&&"html"!=editorMode[d])switch(e){case"Bold":case"Italic":case"Underline":case"StrikeThrough":case"undo":case"redo":case"JustifyLeft":case"JustifyCenter":case"JustifyRight":case"JustifyFull":case"Indent":case"Outdent":case"InsertOrderedList":case"InsertUnorderedList":case"SaveAs":case"Print":case"Copy":case"Cut":case"Paste":case"RemoveFormat":case"Subscript":case"Superscript":editorDo(e,"",d);break;default:return openComponent(e,d),!1}}}}function openComponent(a,b,c){if(editorPrevSrl=b,"html"!=editorMode[b]){var d=request_uri+"?module=editor&act=dispEditorPopup&editor_sequence="+b+"&component="+a;"undefined"!=typeof c&&c&&(d+="&manual_url="+escape(c)),popopen(d,"editorComponent")}}function editorSearchComponent(a){var b=new xEvent(a);editorPrevNode=null;var c,d=b.target,e=d;if(d.getAttribute("widget")){for(;e&&"BODY"!=e.nodeName;)e=xParent(e);if(!e||"BODY"!=e.nodeName||!e.getAttribute("editor_sequence"))return void(editorPrevNode=null);c=e.getAttribute("editor_sequence");var f=d.getAttribute("widget");if(editorPrevNode=d,"html"==editorMode[c])return;return void popopen(request_uri+"?module=widget&act=dispWidgetGenerateCodeInPage&selected_widget="+f+"&module_srl="+c,"GenerateCodeInPage")}if(!d.getAttribute("editor_component"))for(;d&&!d.getAttribute("editor_component");)d=d.parentElement?d.parentElement:xParent(d);d||(d=b.target);var g=d.getAttribute("editor_component");if(g?editorPrevNode=d:"IMG"!=d.nodeName||d.getAttribute("widget")||(g="image_link",editorPrevNode=d),!g)return void(editorPrevNode=null);for(e=d;e&&"BODY"!=e.nodeName;)e=xParent(e);return e&&"BODY"==e.nodeName&&e.getAttribute("editor_sequence")?(c=e.getAttribute("editor_sequence"),void openComponent(g,c)):void(editorPrevNode=null)}function editorReplaceHTML(a,b){var c,d=/src=("|\'){1}(\.\/)?(files\/attach|files\/cache|files\/faceOff|files\/member_extra_info|modules|common|widgets|widgetstyle|layouts|addons)\/([^"\']+)\.(jpg|jpeg|png|gif)("|\'){1}/g;b=b.replace(d,'src="'+request_uri+'$3/$4.$5"');var e=/href=("|\'){1}(\.\/)?\?([^"\']+)("|\'){1}/g;b=b.replace(e,'href="'+request_uri+'?$3"');a.editor_sequence||a.contentWindow.document.body.getAttribute("editor_sequence");try{a.contentWindow.focus()}catch(f){}if(jQuery.isFunction(a.replaceHTML))a.replaceHTML(b);else if(xIE4Up)c=a.contentWindow.document.selection.createRange(),c.pasteHTML?c.pasteHTML(b):editorPrevNode&&(editorPrevNode.outerHTML=b);else try{"HTML"==a.contentWindow.getSelection().focusNode.tagName?(c=a.contentDocument.createRange(),c.setStart(a.contentDocument.body,0),c.setEnd(a.contentDocument.body,0),c.insertNode(c.createContextualFragment(b))):(c=a.contentWindow.getSelection().getRangeAt(0),c.deleteContents(),c.insertNode(c.createContextualFragment(b)))}catch(f){xInnerHtml(a.contentWindow.document.body,b+xInnerHtml(a.contentWindow.document.body))}}function editorGetSelectedHtml(a){var b,c,d,e=editorGetIFrame(a);return jQuery.isFunction(e.getSelectedHTML)?e.getSelectedHTML():xIE4Up?(b=e.contentWindow.document.selection.createRange(),c=b.htmlText):(b=e.contentWindow.getSelection().getRangeAt(0),d=xCreateElement("div"),d.appendChild(b.cloneContents()),c=xInnerHtml(d))}var editorMode=[],editorAutoSaveObj={fo_obj:null,editor_sequence:0,title:"",content:"",locked:!1},editorRelKeys=[],editorDragObj={isDrag:!1,y:0,obj:null,id:"",det:0,source_height:0};editorEnableAutoSave.timer=null;var editorPrevSrl=null;jQuery(document).click(editorEventCheck);var editorPrevNode=null;!function(a){}(jQuery); \ No newline at end of file diff --git a/modules/editor/tpl/js/editor_module_config.min.js b/modules/editor/tpl/js/editor_module_config.min.js index 674245c8a7..95a907c5c1 100644 --- a/modules/editor/tpl/js/editor_module_config.min.js +++ b/modules/editor/tpl/js/editor_module_config.min.js @@ -1 +1 @@ -function getEditorSkinColorList(a,b,c,d){if(a.length>0){c=c||"document";var e=new Array("error","message","colorset");exec_xml("editor","dispEditorSkinColorset",{skin:a},resultGetEditorSkinColorList,e,{selected_colorset:b,type:c,testid:d})}}function resultGetEditorSkinColorList(a,b,c){var d=null;jQuery(function(b){if(d=c.testid?b("#"+c.testid).next("label").children("select"):"document"==c.type?b("select[name=sel_editor_colorset]"):b("select[name=sel_comment_editor_colorset]"),d.html(""),"document"==c.type?(b("select[name=sel_editor_colorset]").hide().removeAttr("name"),d.attr("name","sel_editor_colorset")):(b("select[name=sel_comment_editor_colorset]").hide().removeAttr("name"),d.attr("name","sel_comment_editor_colorset")),0==a.error&&a.colorset){var e=[],f=a.colorset.item;"undefined"==typeof f[0]?e[0]=f:e=f;for(var g=0;g'+e[g].title+"");c.selected_colorset==e[g].name&&h.attr("selected","selected"),d.append(h)}d.show()}else d.hide(),d.html("")})} \ No newline at end of file +function getEditorSkinColorList(a,b,c,d){if(a.length>0){c=c||"document";var e=new Array("error","message","colorset");exec_xml("editor","dispEditorSkinColorset",{skin:a},resultGetEditorSkinColorList,e,{selected_colorset:b,type:c,testid:d})}}function resultGetEditorSkinColorList(a,b,c){var d=null;jQuery(function(b){if(d=c.testid?b("#"+c.testid).next("label").children("select"):b("document"==c.type?"select[name=sel_editor_colorset]":"select[name=sel_comment_editor_colorset]"),d.html(""),"document"==c.type?(b("select[name=sel_editor_colorset]").hide().removeAttr("name"),d.attr("name","sel_editor_colorset")):(b("select[name=sel_comment_editor_colorset]").hide().removeAttr("name"),d.attr("name","sel_comment_editor_colorset")),0==a.error&&a.colorset){var e=[],f=a.colorset.item;"undefined"==typeof f[0]?e[0]=f:e=f;for(var g=0;g'+e[g].title+"");c.selected_colorset==e[g].name&&h.attr("selected","selected"),d.append(h)}d.show()}else d.hide(),d.html("")})} \ No newline at end of file diff --git a/modules/editor/tpl/js/swfupload.min.js b/modules/editor/tpl/js/swfupload.min.js index 42a0f13cf5..2700239713 100644 --- a/modules/editor/tpl/js/swfupload.min.js +++ b/modules/editor/tpl/js/swfupload.min.js @@ -1 +1 @@ -var SWFUpload;void 0==SWFUpload&&(SWFUpload=function(a){this.initSWFUpload(a)}),SWFUpload.prototype.initSWFUpload=function(a){try{this.customSettings={},this.settings=a,this.eventQueue=[],this.movieName="SWFUpload_"+SWFUpload.movieCount++,this.movieElement=null,SWFUpload.instances[this.movieName]=this,this.initSettings(),this.loadFlash(),this.displayDebugInfo()}catch(b){throw delete SWFUpload.instances[this.movieName],b}},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"},SWFUpload.completeURL=function(a){if("string"!=typeof a||a.match(/^https?:\/\//i)||a.match(/^\//))return a;var b=(window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:""),window.location.pathname.lastIndexOf("/"));return path=0>=b?"/":window.location.pathname.substr(0,b)+"/",path+a},SWFUpload.prototype.initSettings=function(){this.ensureDefault=function(a,b){this.settings[a]=void 0==this.settings[a]?b:this.settings[a]},this.ensureDefault("upload_url",""),this.ensureDefault("preserve_relative_urls",!1),this.ensureDefault("file_post_name","Filedata"),this.ensureDefault("post_params",{}),this.ensureDefault("use_query_string",!1),this.ensureDefault("requeue_on_error",!1),this.ensureDefault("http_success",[]),this.ensureDefault("assume_success_timeout",0),this.ensureDefault("file_types","*.*"),this.ensureDefault("file_types_description","All Files"),this.ensureDefault("file_size_limit",0),this.ensureDefault("file_upload_limit",0),this.ensureDefault("file_queue_limit",0),this.ensureDefault("flash_url","swfupload.swf"),this.ensureDefault("prevent_swf_caching",!0),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",!1),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),this.ensureDefault("debug",!1),this.settings.debug_enabled=this.settings.debug,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",{}),this.customSettings=this.settings.custom_settings,this.settings.prevent_swf_caching&&(this.settings.flash_url=this.settings.flash_url+(this.settings.flash_url.indexOf("?")<0?"?":"&")+"preventswfcaching="+(new Date).getTime()),this.settings.preserve_relative_urls||(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},SWFUpload.prototype.loadFlash=function(){var a,b;if(null!==document.getElementById(this.movieName))throw"ID "+this.movieName+" is already in use. The Flash Object could not be added";if(a=document.getElementById(this.settings.button_placeholder_id)||this.settings.button_placeholder,void 0==a)throw"Could not find the placeholder element: "+this.settings.button_placeholder_id;b=document.createElement("div"),b.innerHTML=this.getFlashHTML(),a.parentNode.replaceChild(b.firstChild,a),void 0==window[this.movieName]&&(window[this.movieName]=this.getMovieElement())},SWFUpload.prototype.getFlashHTML=function(){return['','','','','','','',""].join("")},SWFUpload.prototype.getFlashVars=function(){var a=this.buildParamString(),b=this.settings.http_success.join(",");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(b),"&assumeSuccessTimeout=",encodeURIComponent(this.settings.assume_success_timeout),"&params=",encodeURIComponent(a),"&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("")},SWFUpload.prototype.getMovieElement=function(){if(void 0==this.movieElement&&(this.movieElement=document.getElementById(this.movieName)),null===this.movieElement)throw"Could not find Flash element";return this.movieElement},SWFUpload.prototype.buildParamString=function(){var a=this.settings.post_params,b=[];if("object"==typeof a)for(var c in a)a.hasOwnProperty(c)&&b.push(encodeURIComponent(c.toString())+"="+encodeURIComponent(a[c].toString()));return b.join("&")},SWFUpload.prototype.destroy=function(){try{this.cancelUpload(null,!1);var a=null;if(a=this.getMovieElement(),a&&"unknown"==typeof a.CallFunction){for(var b in a)try{"function"==typeof a[b]&&(a[b]=null)}catch(c){}try{a.parentNode.removeChild(a)}catch(d){}}return window[this.movieName]=null,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,!0}catch(e){return!1}},SWFUpload.prototype.displayDebugInfo=function(){this.debug(["---SWFUpload Instance Info---\n","Version: ",SWFUpload.version,"\n","Movie Name: ",this.movieName,"\n","Settings:\n"," ","upload_url: ",this.settings.upload_url,"\n"," ","flash_url: ",this.settings.flash_url,"\n"," ","use_query_string: ",this.settings.use_query_string.toString(),"\n"," ","requeue_on_error: ",this.settings.requeue_on_error.toString(),"\n"," ","http_success: ",this.settings.http_success.join(", "),"\n"," ","assume_success_timeout: ",this.settings.assume_success_timeout,"\n"," ","file_post_name: ",this.settings.file_post_name,"\n"," ","post_params: ",this.settings.post_params.toString(),"\n"," ","file_types: ",this.settings.file_types,"\n"," ","file_types_description: ",this.settings.file_types_description,"\n"," ","file_size_limit: ",this.settings.file_size_limit,"\n"," ","file_upload_limit: ",this.settings.file_upload_limit,"\n"," ","file_queue_limit: ",this.settings.file_queue_limit,"\n"," ","debug: ",this.settings.debug.toString(),"\n"," ","prevent_swf_caching: ",this.settings.prevent_swf_caching.toString(),"\n"," ","button_placeholder_id: ",this.settings.button_placeholder_id.toString(),"\n"," ","button_placeholder: ",this.settings.button_placeholder?"Set":"Not Set","\n"," ","button_image_url: ",this.settings.button_image_url.toString(),"\n"," ","button_width: ",this.settings.button_width.toString(),"\n"," ","button_height: ",this.settings.button_height.toString(),"\n"," ","button_text: ",this.settings.button_text.toString(),"\n"," ","button_text_style: ",this.settings.button_text_style.toString(),"\n"," ","button_text_top_padding: ",this.settings.button_text_top_padding.toString(),"\n"," ","button_text_left_padding: ",this.settings.button_text_left_padding.toString(),"\n"," ","button_action: ",this.settings.button_action.toString(),"\n"," ","button_disabled: ",this.settings.button_disabled.toString(),"\n"," ","custom_settings: ",this.settings.custom_settings.toString(),"\n","Event Handlers:\n"," ","swfupload_loaded_handler assigned: ",("function"==typeof this.settings.swfupload_loaded_handler).toString(),"\n"," ","file_dialog_start_handler assigned: ",("function"==typeof this.settings.file_dialog_start_handler).toString(),"\n"," ","file_queued_handler assigned: ",("function"==typeof this.settings.file_queued_handler).toString(),"\n"," ","file_queue_error_handler assigned: ",("function"==typeof this.settings.file_queue_error_handler).toString(),"\n"," ","upload_start_handler assigned: ",("function"==typeof this.settings.upload_start_handler).toString(),"\n"," ","upload_progress_handler assigned: ",("function"==typeof this.settings.upload_progress_handler).toString(),"\n"," ","upload_error_handler assigned: ",("function"==typeof this.settings.upload_error_handler).toString(),"\n"," ","upload_success_handler assigned: ",("function"==typeof this.settings.upload_success_handler).toString(),"\n"," ","upload_complete_handler assigned: ",("function"==typeof this.settings.upload_complete_handler).toString(),"\n"," ","debug_handler assigned: ",("function"==typeof this.settings.debug_handler).toString(),"\n"].join(""))},SWFUpload.prototype.addSetting=function(a,b,c){return this.settings[a]=void 0==b?c:b},SWFUpload.prototype.getSetting=function(a){return void 0!=this.settings[a]?this.settings[a]:""},SWFUpload.prototype.callFlash=function(functionName,argumentArray){argumentArray=argumentArray||[];var movieElement=this.getMovieElement(),returnValue,returnString;try{returnString=movieElement.CallFunction(''+__flash__argumentsToXML(argumentArray,0)+""),returnValue=eval(returnString)}catch(ex){throw"Call to "+functionName+" failed"}return void 0!=returnValue&&"object"==typeof returnValue.post&&(returnValue=this.unescapeFilePostParams(returnValue)),returnValue},SWFUpload.prototype.selectFile=function(){this.callFlash("SelectFile")},SWFUpload.prototype.selectFiles=function(){this.callFlash("SelectFiles")},SWFUpload.prototype.startUpload=function(a){this.callFlash("StartUpload",[a])},SWFUpload.prototype.cancelUpload=function(a,b){b!==!1&&(b=!0),this.callFlash("CancelUpload",[a,b])},SWFUpload.prototype.stopUpload=function(){this.callFlash("StopUpload")},SWFUpload.prototype.getStats=function(){return this.callFlash("GetStats")},SWFUpload.prototype.setStats=function(a){this.callFlash("SetStats",[a])},SWFUpload.prototype.getFile=function(a){return"number"==typeof a?this.callFlash("GetFileByIndex",[a]):this.callFlash("GetFile",[a])},SWFUpload.prototype.addFileParam=function(a,b,c){return this.callFlash("AddFileParam",[a,b,c])},SWFUpload.prototype.removeFileParam=function(a,b){this.callFlash("RemoveFileParam",[a,b])},SWFUpload.prototype.setUploadURL=function(a){this.settings.upload_url=a.toString(),this.callFlash("SetUploadURL",[a])},SWFUpload.prototype.setPostParams=function(a){this.settings.post_params=a,this.callFlash("SetPostParams",[a])},SWFUpload.prototype.addPostParam=function(a,b){this.settings.post_params[a]=b,this.callFlash("SetPostParams",[this.settings.post_params])},SWFUpload.prototype.removePostParam=function(a){delete this.settings.post_params[a],this.callFlash("SetPostParams",[this.settings.post_params])},SWFUpload.prototype.setFileTypes=function(a,b){this.settings.file_types=a,this.settings.file_types_description=b,this.callFlash("SetFileTypes",[a,b])},SWFUpload.prototype.setFileSizeLimit=function(a){this.settings.file_size_limit=a,this.callFlash("SetFileSizeLimit",[a])},SWFUpload.prototype.setFileUploadLimit=function(a){this.settings.file_upload_limit=a,this.callFlash("SetFileUploadLimit",[a])},SWFUpload.prototype.setFileQueueLimit=function(a){this.settings.file_queue_limit=a,this.callFlash("SetFileQueueLimit",[a])},SWFUpload.prototype.setFilePostName=function(a){this.settings.file_post_name=a,this.callFlash("SetFilePostName",[a])},SWFUpload.prototype.setUseQueryString=function(a){this.settings.use_query_string=a,this.callFlash("SetUseQueryString",[a])},SWFUpload.prototype.setRequeueOnError=function(a){this.settings.requeue_on_error=a,this.callFlash("SetRequeueOnError",[a])},SWFUpload.prototype.setHTTPSuccess=function(a){"string"==typeof a&&(a=a.replace(" ","").split(",")),this.settings.http_success=a,this.callFlash("SetHTTPSuccess",[a])},SWFUpload.prototype.setAssumeSuccessTimeout=function(a){this.settings.assume_success_timeout=a,this.callFlash("SetAssumeSuccessTimeout",[a])},SWFUpload.prototype.setDebugEnabled=function(a){this.settings.debug_enabled=a,this.callFlash("SetDebugEnabled",[a])},SWFUpload.prototype.setButtonImageURL=function(a){void 0==a&&(a=""),this.settings.button_image_url=a,this.callFlash("SetButtonImageURL",[a])},SWFUpload.prototype.setButtonDimensions=function(a,b){this.settings.button_width=a,this.settings.button_height=b;var c=this.getMovieElement();void 0!=c&&(c.style.width=a+"px",c.style.height=b+"px"),this.callFlash("SetButtonDimensions",[a,b])},SWFUpload.prototype.setButtonText=function(a){this.settings.button_text=a,this.callFlash("SetButtonText",[a])},SWFUpload.prototype.setButtonTextPadding=function(a,b){this.settings.button_text_top_padding=b,this.settings.button_text_left_padding=a,this.callFlash("SetButtonTextPadding",[a,b])},SWFUpload.prototype.setButtonTextStyle=function(a){this.settings.button_text_style=a,this.callFlash("SetButtonTextStyle",[a])},SWFUpload.prototype.setButtonDisabled=function(a){this.settings.button_disabled=a,this.callFlash("SetButtonDisabled",[a])},SWFUpload.prototype.setButtonAction=function(a){this.settings.button_action=a,this.callFlash("SetButtonAction",[a])},SWFUpload.prototype.setButtonCursor=function(a){this.settings.button_cursor=a,this.callFlash("SetButtonCursor",[a])},SWFUpload.prototype.queueEvent=function(a,b){void 0==b?b=[]:b instanceof Array||(b=[b]);var c=this;if("function"==typeof this.settings[a])this.eventQueue.push(function(){this.settings[a].apply(this,b)}),setTimeout(function(){c.executeNextEvent()},0);else if(null!==this.settings[a])throw"Event handler "+a+" is unknown or is not a function"},SWFUpload.prototype.executeNextEvent=function(){var a=this.eventQueue?this.eventQueue.shift():null;"function"==typeof a&&a.apply(this)},SWFUpload.prototype.unescapeFilePostParams=function(a){var b,c=/[$]([0-9a-f]{4})/i,d={};if(void 0!=a){for(var e in a.post)if(a.post.hasOwnProperty(e)){b=e;for(var f;null!==(f=c.exec(b));)b=b.replace(f[0],String.fromCharCode(parseInt("0x"+f[1],16)));d[b]=a.post[e]}a.post=d}return a},SWFUpload.prototype.testExternalInterface=function(){try{return this.callFlash("TestExternalInterface")}catch(a){return!1}},SWFUpload.prototype.flashReady=function(){var a=this.getMovieElement();return a?(this.cleanUp(a),this.queueEvent("swfupload_loaded_handler"),void 0):(this.debug("Flash called back ready but the flash movie can't be found."),void 0)},SWFUpload.prototype.cleanUp=function(a){try{if(this.movieElement&&"unknown"==typeof a.CallFunction){this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)");for(var b in a)try{"function"==typeof a[b]&&(a[b]=null)}catch(c){}}}catch(d){}window.__flash__removeCallback=function(a,b){try{a&&(a[b]=null)}catch(c){}}},SWFUpload.prototype.fileDialogStart=function(){this.queueEvent("file_dialog_start_handler")},SWFUpload.prototype.fileQueued=function(a){a=this.unescapeFilePostParams(a),this.queueEvent("file_queued_handler",a)},SWFUpload.prototype.fileQueueError=function(a,b,c){a=this.unescapeFilePostParams(a),this.queueEvent("file_queue_error_handler",[a,b,c])},SWFUpload.prototype.fileDialogComplete=function(a,b,c){this.queueEvent("file_dialog_complete_handler",[a,b,c])},SWFUpload.prototype.uploadStart=function(a){a=this.unescapeFilePostParams(a),this.queueEvent("return_upload_start_handler",a)},SWFUpload.prototype.returnUploadStart=function(a){var b;if("function"==typeof this.settings.upload_start_handler)a=this.unescapeFilePostParams(a),b=this.settings.upload_start_handler.call(this,a);else if(void 0!=this.settings.upload_start_handler)throw"upload_start_handler must be a function";void 0===b&&(b=!0),b=!!b,this.callFlash("ReturnUploadStart",[b])},SWFUpload.prototype.uploadProgress=function(a,b,c){a=this.unescapeFilePostParams(a),this.queueEvent("upload_progress_handler",[a,b,c])},SWFUpload.prototype.uploadError=function(a,b,c){a=this.unescapeFilePostParams(a),this.queueEvent("upload_error_handler",[a,b,c])},SWFUpload.prototype.uploadSuccess=function(a,b,c){a=this.unescapeFilePostParams(a),this.queueEvent("upload_success_handler",[a,b,c])},SWFUpload.prototype.uploadComplete=function(a){a=this.unescapeFilePostParams(a),this.queueEvent("upload_complete_handler",a)},SWFUpload.prototype.debug=function(a){this.queueEvent("debug_handler",a)},SWFUpload.prototype.debugMessage=function(a){if(this.settings.debug){var b,c=[];if("object"==typeof a&&"string"==typeof a.name&&"string"==typeof a.message){for(var d in a)a.hasOwnProperty(d)&&c.push(d+": "+a[d]);b=c.join("\n")||"",c=b.split("\n"),b="EXCEPTION: "+c.join("\nEXCEPTION: "),SWFUpload.Console.writeLine(b)}else SWFUpload.Console.writeLine(a)}},SWFUpload.Console={},SWFUpload.Console.writeLine=function(a){var b,c;try{b=document.getElementById("SWFUpload_Console"),b||(c=document.createElement("form"),document.getElementsByTagName("body")[0].appendChild(c),b=document.createElement("textarea"),b.id="SWFUpload_Console",b.style.fontFamily="monospace",b.setAttribute("wrap","off"),b.wrap="off",b.style.overflow="auto",b.style.width="700px",b.style.height="350px",b.style.margin="5px",c.appendChild(b)),b.value+=a+"\n",b.scrollTop=b.scrollHeight-b.clientHeight}catch(d){alert("Exception: "+d.name+" Message: "+d.message)}}; \ No newline at end of file +var SWFUpload;void 0==SWFUpload&&(SWFUpload=function(a){this.initSWFUpload(a)}),SWFUpload.prototype.initSWFUpload=function(a){try{this.customSettings={},this.settings=a,this.eventQueue=[],this.movieName="SWFUpload_"+SWFUpload.movieCount++,this.movieElement=null,SWFUpload.instances[this.movieName]=this,this.initSettings(),this.loadFlash(),this.displayDebugInfo()}catch(b){throw delete SWFUpload.instances[this.movieName],b}},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"},SWFUpload.completeURL=function(a){if("string"!=typeof a||a.match(/^https?:\/\//i)||a.match(/^\//))return a;var b=(window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:""),window.location.pathname.lastIndexOf("/"));return path=0>=b?"/":window.location.pathname.substr(0,b)+"/",path+a},SWFUpload.prototype.initSettings=function(){this.ensureDefault=function(a,b){this.settings[a]=void 0==this.settings[a]?b:this.settings[a]},this.ensureDefault("upload_url",""),this.ensureDefault("preserve_relative_urls",!1),this.ensureDefault("file_post_name","Filedata"),this.ensureDefault("post_params",{}),this.ensureDefault("use_query_string",!1),this.ensureDefault("requeue_on_error",!1),this.ensureDefault("http_success",[]),this.ensureDefault("assume_success_timeout",0),this.ensureDefault("file_types","*.*"),this.ensureDefault("file_types_description","All Files"),this.ensureDefault("file_size_limit",0),this.ensureDefault("file_upload_limit",0),this.ensureDefault("file_queue_limit",0),this.ensureDefault("flash_url","swfupload.swf"),this.ensureDefault("prevent_swf_caching",!0),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",!1),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),this.ensureDefault("debug",!1),this.settings.debug_enabled=this.settings.debug,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",{}),this.customSettings=this.settings.custom_settings,this.settings.prevent_swf_caching&&(this.settings.flash_url=this.settings.flash_url+(this.settings.flash_url.indexOf("?")<0?"?":"&")+"preventswfcaching="+(new Date).getTime()),this.settings.preserve_relative_urls||(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},SWFUpload.prototype.loadFlash=function(){var a,b;if(null!==document.getElementById(this.movieName))throw"ID "+this.movieName+" is already in use. The Flash Object could not be added";if(a=document.getElementById(this.settings.button_placeholder_id)||this.settings.button_placeholder,void 0==a)throw"Could not find the placeholder element: "+this.settings.button_placeholder_id;b=document.createElement("div"),b.innerHTML=this.getFlashHTML(),a.parentNode.replaceChild(b.firstChild,a),void 0==window[this.movieName]&&(window[this.movieName]=this.getMovieElement())},SWFUpload.prototype.getFlashHTML=function(){return['','','','','','','',""].join("")},SWFUpload.prototype.getFlashVars=function(){var a=this.buildParamString(),b=this.settings.http_success.join(",");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(b),"&assumeSuccessTimeout=",encodeURIComponent(this.settings.assume_success_timeout),"&params=",encodeURIComponent(a),"&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("")},SWFUpload.prototype.getMovieElement=function(){if(void 0==this.movieElement&&(this.movieElement=document.getElementById(this.movieName)),null===this.movieElement)throw"Could not find Flash element";return this.movieElement},SWFUpload.prototype.buildParamString=function(){var a=this.settings.post_params,b=[];if("object"==typeof a)for(var c in a)a.hasOwnProperty(c)&&b.push(encodeURIComponent(c.toString())+"="+encodeURIComponent(a[c].toString()));return b.join("&")},SWFUpload.prototype.destroy=function(){try{this.cancelUpload(null,!1);var a=null;if(a=this.getMovieElement(),a&&"unknown"==typeof a.CallFunction){for(var b in a)try{"function"==typeof a[b]&&(a[b]=null)}catch(c){}try{a.parentNode.removeChild(a)}catch(d){}}return window[this.movieName]=null,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,!0}catch(e){return!1}},SWFUpload.prototype.displayDebugInfo=function(){this.debug(["---SWFUpload Instance Info---\n","Version: ",SWFUpload.version,"\n","Movie Name: ",this.movieName,"\n","Settings:\n"," ","upload_url: ",this.settings.upload_url,"\n"," ","flash_url: ",this.settings.flash_url,"\n"," ","use_query_string: ",this.settings.use_query_string.toString(),"\n"," ","requeue_on_error: ",this.settings.requeue_on_error.toString(),"\n"," ","http_success: ",this.settings.http_success.join(", "),"\n"," ","assume_success_timeout: ",this.settings.assume_success_timeout,"\n"," ","file_post_name: ",this.settings.file_post_name,"\n"," ","post_params: ",this.settings.post_params.toString(),"\n"," ","file_types: ",this.settings.file_types,"\n"," ","file_types_description: ",this.settings.file_types_description,"\n"," ","file_size_limit: ",this.settings.file_size_limit,"\n"," ","file_upload_limit: ",this.settings.file_upload_limit,"\n"," ","file_queue_limit: ",this.settings.file_queue_limit,"\n"," ","debug: ",this.settings.debug.toString(),"\n"," ","prevent_swf_caching: ",this.settings.prevent_swf_caching.toString(),"\n"," ","button_placeholder_id: ",this.settings.button_placeholder_id.toString(),"\n"," ","button_placeholder: ",this.settings.button_placeholder?"Set":"Not Set","\n"," ","button_image_url: ",this.settings.button_image_url.toString(),"\n"," ","button_width: ",this.settings.button_width.toString(),"\n"," ","button_height: ",this.settings.button_height.toString(),"\n"," ","button_text: ",this.settings.button_text.toString(),"\n"," ","button_text_style: ",this.settings.button_text_style.toString(),"\n"," ","button_text_top_padding: ",this.settings.button_text_top_padding.toString(),"\n"," ","button_text_left_padding: ",this.settings.button_text_left_padding.toString(),"\n"," ","button_action: ",this.settings.button_action.toString(),"\n"," ","button_disabled: ",this.settings.button_disabled.toString(),"\n"," ","custom_settings: ",this.settings.custom_settings.toString(),"\n","Event Handlers:\n"," ","swfupload_loaded_handler assigned: ",("function"==typeof this.settings.swfupload_loaded_handler).toString(),"\n"," ","file_dialog_start_handler assigned: ",("function"==typeof this.settings.file_dialog_start_handler).toString(),"\n"," ","file_queued_handler assigned: ",("function"==typeof this.settings.file_queued_handler).toString(),"\n"," ","file_queue_error_handler assigned: ",("function"==typeof this.settings.file_queue_error_handler).toString(),"\n"," ","upload_start_handler assigned: ",("function"==typeof this.settings.upload_start_handler).toString(),"\n"," ","upload_progress_handler assigned: ",("function"==typeof this.settings.upload_progress_handler).toString(),"\n"," ","upload_error_handler assigned: ",("function"==typeof this.settings.upload_error_handler).toString(),"\n"," ","upload_success_handler assigned: ",("function"==typeof this.settings.upload_success_handler).toString(),"\n"," ","upload_complete_handler assigned: ",("function"==typeof this.settings.upload_complete_handler).toString(),"\n"," ","debug_handler assigned: ",("function"==typeof this.settings.debug_handler).toString(),"\n"].join(""))},SWFUpload.prototype.addSetting=function(a,b,c){return this.settings[a]=void 0==b?c:b},SWFUpload.prototype.getSetting=function(a){return void 0!=this.settings[a]?this.settings[a]:""},SWFUpload.prototype.callFlash=function(functionName,argumentArray){argumentArray=argumentArray||[];var movieElement=this.getMovieElement(),returnValue,returnString;try{returnString=movieElement.CallFunction(''+__flash__argumentsToXML(argumentArray,0)+""),returnValue=eval(returnString)}catch(ex){throw"Call to "+functionName+" failed"}return void 0!=returnValue&&"object"==typeof returnValue.post&&(returnValue=this.unescapeFilePostParams(returnValue)),returnValue},SWFUpload.prototype.selectFile=function(){this.callFlash("SelectFile")},SWFUpload.prototype.selectFiles=function(){this.callFlash("SelectFiles")},SWFUpload.prototype.startUpload=function(a){this.callFlash("StartUpload",[a])},SWFUpload.prototype.cancelUpload=function(a,b){b!==!1&&(b=!0),this.callFlash("CancelUpload",[a,b])},SWFUpload.prototype.stopUpload=function(){this.callFlash("StopUpload")},SWFUpload.prototype.getStats=function(){return this.callFlash("GetStats")},SWFUpload.prototype.setStats=function(a){this.callFlash("SetStats",[a])},SWFUpload.prototype.getFile=function(a){return"number"==typeof a?this.callFlash("GetFileByIndex",[a]):this.callFlash("GetFile",[a])},SWFUpload.prototype.addFileParam=function(a,b,c){return this.callFlash("AddFileParam",[a,b,c])},SWFUpload.prototype.removeFileParam=function(a,b){this.callFlash("RemoveFileParam",[a,b])},SWFUpload.prototype.setUploadURL=function(a){this.settings.upload_url=a.toString(),this.callFlash("SetUploadURL",[a])},SWFUpload.prototype.setPostParams=function(a){this.settings.post_params=a,this.callFlash("SetPostParams",[a])},SWFUpload.prototype.addPostParam=function(a,b){this.settings.post_params[a]=b,this.callFlash("SetPostParams",[this.settings.post_params])},SWFUpload.prototype.removePostParam=function(a){delete this.settings.post_params[a],this.callFlash("SetPostParams",[this.settings.post_params])},SWFUpload.prototype.setFileTypes=function(a,b){this.settings.file_types=a,this.settings.file_types_description=b,this.callFlash("SetFileTypes",[a,b])},SWFUpload.prototype.setFileSizeLimit=function(a){this.settings.file_size_limit=a,this.callFlash("SetFileSizeLimit",[a])},SWFUpload.prototype.setFileUploadLimit=function(a){this.settings.file_upload_limit=a,this.callFlash("SetFileUploadLimit",[a])},SWFUpload.prototype.setFileQueueLimit=function(a){this.settings.file_queue_limit=a,this.callFlash("SetFileQueueLimit",[a])},SWFUpload.prototype.setFilePostName=function(a){this.settings.file_post_name=a,this.callFlash("SetFilePostName",[a])},SWFUpload.prototype.setUseQueryString=function(a){this.settings.use_query_string=a,this.callFlash("SetUseQueryString",[a])},SWFUpload.prototype.setRequeueOnError=function(a){this.settings.requeue_on_error=a,this.callFlash("SetRequeueOnError",[a])},SWFUpload.prototype.setHTTPSuccess=function(a){"string"==typeof a&&(a=a.replace(" ","").split(",")),this.settings.http_success=a,this.callFlash("SetHTTPSuccess",[a])},SWFUpload.prototype.setAssumeSuccessTimeout=function(a){this.settings.assume_success_timeout=a,this.callFlash("SetAssumeSuccessTimeout",[a])},SWFUpload.prototype.setDebugEnabled=function(a){this.settings.debug_enabled=a,this.callFlash("SetDebugEnabled",[a])},SWFUpload.prototype.setButtonImageURL=function(a){void 0==a&&(a=""),this.settings.button_image_url=a,this.callFlash("SetButtonImageURL",[a])},SWFUpload.prototype.setButtonDimensions=function(a,b){this.settings.button_width=a,this.settings.button_height=b;var c=this.getMovieElement();void 0!=c&&(c.style.width=a+"px",c.style.height=b+"px"),this.callFlash("SetButtonDimensions",[a,b])},SWFUpload.prototype.setButtonText=function(a){this.settings.button_text=a,this.callFlash("SetButtonText",[a])},SWFUpload.prototype.setButtonTextPadding=function(a,b){this.settings.button_text_top_padding=b,this.settings.button_text_left_padding=a,this.callFlash("SetButtonTextPadding",[a,b])},SWFUpload.prototype.setButtonTextStyle=function(a){this.settings.button_text_style=a,this.callFlash("SetButtonTextStyle",[a])},SWFUpload.prototype.setButtonDisabled=function(a){this.settings.button_disabled=a,this.callFlash("SetButtonDisabled",[a])},SWFUpload.prototype.setButtonAction=function(a){this.settings.button_action=a,this.callFlash("SetButtonAction",[a])},SWFUpload.prototype.setButtonCursor=function(a){this.settings.button_cursor=a,this.callFlash("SetButtonCursor",[a])},SWFUpload.prototype.queueEvent=function(a,b){void 0==b?b=[]:b instanceof Array||(b=[b]);var c=this;if("function"==typeof this.settings[a])this.eventQueue.push(function(){this.settings[a].apply(this,b)}),setTimeout(function(){c.executeNextEvent()},0);else if(null!==this.settings[a])throw"Event handler "+a+" is unknown or is not a function"},SWFUpload.prototype.executeNextEvent=function(){var a=this.eventQueue?this.eventQueue.shift():null;"function"==typeof a&&a.apply(this)},SWFUpload.prototype.unescapeFilePostParams=function(a){var b,c=/[$]([0-9a-f]{4})/i,d={};if(void 0!=a){for(var e in a.post)if(a.post.hasOwnProperty(e)){b=e;for(var f;null!==(f=c.exec(b));)b=b.replace(f[0],String.fromCharCode(parseInt("0x"+f[1],16)));d[b]=a.post[e]}a.post=d}return a},SWFUpload.prototype.testExternalInterface=function(){try{return this.callFlash("TestExternalInterface")}catch(a){return!1}},SWFUpload.prototype.flashReady=function(){var a=this.getMovieElement();return a?(this.cleanUp(a),void this.queueEvent("swfupload_loaded_handler")):void this.debug("Flash called back ready but the flash movie can't be found.")},SWFUpload.prototype.cleanUp=function(a){try{if(this.movieElement&&"unknown"==typeof a.CallFunction){this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)");for(var b in a)try{"function"==typeof a[b]&&(a[b]=null)}catch(c){}}}catch(d){}window.__flash__removeCallback=function(a,b){try{a&&(a[b]=null)}catch(c){}}},SWFUpload.prototype.fileDialogStart=function(){this.queueEvent("file_dialog_start_handler")},SWFUpload.prototype.fileQueued=function(a){a=this.unescapeFilePostParams(a),this.queueEvent("file_queued_handler",a)},SWFUpload.prototype.fileQueueError=function(a,b,c){a=this.unescapeFilePostParams(a),this.queueEvent("file_queue_error_handler",[a,b,c])},SWFUpload.prototype.fileDialogComplete=function(a,b,c){this.queueEvent("file_dialog_complete_handler",[a,b,c])},SWFUpload.prototype.uploadStart=function(a){a=this.unescapeFilePostParams(a),this.queueEvent("return_upload_start_handler",a)},SWFUpload.prototype.returnUploadStart=function(a){var b;if("function"==typeof this.settings.upload_start_handler)a=this.unescapeFilePostParams(a),b=this.settings.upload_start_handler.call(this,a);else if(void 0!=this.settings.upload_start_handler)throw"upload_start_handler must be a function";void 0===b&&(b=!0),b=!!b,this.callFlash("ReturnUploadStart",[b])},SWFUpload.prototype.uploadProgress=function(a,b,c){a=this.unescapeFilePostParams(a),this.queueEvent("upload_progress_handler",[a,b,c])},SWFUpload.prototype.uploadError=function(a,b,c){a=this.unescapeFilePostParams(a),this.queueEvent("upload_error_handler",[a,b,c])},SWFUpload.prototype.uploadSuccess=function(a,b,c){a=this.unescapeFilePostParams(a),this.queueEvent("upload_success_handler",[a,b,c])},SWFUpload.prototype.uploadComplete=function(a){a=this.unescapeFilePostParams(a),this.queueEvent("upload_complete_handler",a)},SWFUpload.prototype.debug=function(a){this.queueEvent("debug_handler",a)},SWFUpload.prototype.debugMessage=function(a){if(this.settings.debug){var b,c=[];if("object"==typeof a&&"string"==typeof a.name&&"string"==typeof a.message){for(var d in a)a.hasOwnProperty(d)&&c.push(d+": "+a[d]);b=c.join("\n")||"",c=b.split("\n"),b="EXCEPTION: "+c.join("\nEXCEPTION: "),SWFUpload.Console.writeLine(b)}else SWFUpload.Console.writeLine(a)}},SWFUpload.Console={},SWFUpload.Console.writeLine=function(a){var b,c;try{b=document.getElementById("SWFUpload_Console"),b||(c=document.createElement("form"),document.getElementsByTagName("body")[0].appendChild(c),b=document.createElement("textarea"),b.id="SWFUpload_Console",b.style.fontFamily="monospace",b.setAttribute("wrap","off"),b.wrap="off",b.style.overflow="auto",b.style.width="700px",b.style.height="350px",b.style.margin="5px",c.appendChild(b)),b.value+=a+"\n",b.scrollTop=b.scrollHeight-b.clientHeight}catch(d){alert("Exception: "+d.name+" Message: "+d.message)}}; \ No newline at end of file diff --git a/modules/importer/tpl/js/importer_admin.min.js b/modules/importer/tpl/js/importer_admin.min.js index cc1a117226..8da95b749f 100644 --- a/modules/importer/tpl/js/importer_admin.min.js +++ b/modules/importer/tpl/js/importer_admin.min.js @@ -1 +1 @@ -function doSync(){return exec_xml("importer","procImporterAdminSync",[],function(a){alert(a.message),location.href=location.href}),!1}function doPreProcessing(a,b){function c(a){var c,d,e,g,i,j,k;if(h=!0,-1==a.status)return alert(a.message);for(c=get_by_id("fo_process"),d=c.elements,e=0,g=f.length;g>e;e++)i=f[e],d[i]?d[i].value=a[i]:0;if(k=get_by_id(b))for(j=["target_module","guestbook_target_module","user_id","unit_count"],e=0,g=j.length;g>e;e++)i=j[e],k.elements[i]&&(c.elements[i].value=k.elements[i].value);jQuery("#preProgressMsg").hide(),jQuery("#progressMsg").show(),doImport(b)}var d,e,f,g,h=!1,i=jQuery;return d=a.elements.xml_file.value,e=a.elements.type.value,d?(g=i("#process"),i("body").children(".x_modal-backdrop").length||i("body").append('

'),i('a[href="#process"].modalAnchor').trigger("open.mw"),exec_xml("importer","procImporterAdminPreProcessing",{type:e,xml_file:d},c,f=["error","message","type","total","cur","key","status"]),!1):!1}function doImport(a){function b(b){function c(){alert(b.message),jQuery('a[href="#process"].modalAnchor').unbind("before-close.mw").trigger("close.mw").find("#progressBar").width(1).end().find("#progressPercent").html("0%").end();try{f.reset(),get_by_id(a).reset()}catch(c){}jQuery("span.btn > input[type=submit]").attr("disabled","disabled")}var d,i,j,k;for(d=0,i=e.length;i>d;d++)j=e[d],g[j]?g[j].value=b[j]:0;b.total=parseInt(b.total,10)||0,b.cur=parseInt(b.cur,10)||0,percent=parseInt(b.cur/b.total*100),jQuery("#totalCount").text(b.total),jQuery("#completeCount").text(b.cur),jQuery("#progressBar").width(percent+"%"),jQuery("#progressPercent").html(percent+"%"),b.total>b.cur?doImport(a):(k=get_by_id(a),null!=k&&k.isSync.checked?exec_xml("importer","procImporterAdminSync",h,function(a){!a||a.error&&"0"!=a.error||c()},e=["error","message"]):c())}var c,d,e,f=get_by_id("fo_process"),g=f.elements,h={};for(c=0,d=g.length;d>c;c++)h[g[c].name]=g[c].value;return show_waiting_message=!1,exec_xml("importer","procImporterAdminImport",h,b,e=["error","message","type","total","cur","key"]),show_waiting_message=!0,!1}function displayProgress(a,b){var c,d;c=Math.max(a?Math.round(b/a*100):100,1),d=jQuery("#status"),d.find("div.progress1").length||d.html('
'),d.find("div.progress1").html(c+" ").css("width",c+"%").end().find("div.progress2").text(b+"/"+a)}jQuery(function(a){a(".checkxml").find("input:text").change(function(){a(this).closest(".checkxml").find(".x_help-inline").hide()}).end().find("button").click(function(){function b(a){var b,e;return e=g.find(">.xml"),b=g.find(">.ttxml"),$message.text(a.result_message),a.error||"true"!=a.exists?($message.attr("class","x_help-inline").fadeIn(300),b=b.filter(":visible"),b.eq(-1).slideUp(100,function(){b=b.slice(0,-1).eq(-1).slideUp(100,arguments.callee)}),g.find(":submit").attr("disabled","disabled"),c()):($message.attr("class","x_help-inline").fadeIn(300),g.find(":submit").removeAttr("disabled"),h=g.find(".syncmember:hidden"),f.prop("disabled",!1).removeClass("loading"),d.prop("disabled",!1),"XML"==a.type?e.not(":visible").add(h).slideDown(300):"TTXML"==a.type&&(b.not(":visible").add(h).slideDown(300),g.find("input[name=type]").val("ttxml")),void 0)}function c(){return f.prop("disabled",!1).removeClass("loading"),d.prop("disabled",!1),g.find(".syncmember:visible").slideUp(100),!1}var d,e,f,g,h;d=a(this).prop("disabled",!0),g=d.closest("form"),e=d.closest(".checkxml"),f=e.find("input").prop("disabled",!0).addClass("loading"),$message=e.find(".x_help-inline").hide(),show_waiting_message=!1,a.exec_json("importer.procImporterAdminCheckXmlFile",{filename:a.trim(f.val())},b)}).end().find(".x_help-inline").hide().end().closest("form").find(">.ttxml").hide().end().end().closest("form").find(":submit").attr("disabled","disabled"),a(".syncmember").hide()}); \ No newline at end of file +function doSync(){return exec_xml("importer","procImporterAdminSync",[],function(a){alert(a.message),location.href=location.href}),!1}function doPreProcessing(a,b){function c(a){var c,d,e,g,i,j,k;if(h=!0,-1==a.status)return alert(a.message);for(c=get_by_id("fo_process"),d=c.elements,e=0,g=f.length;g>e;e++)i=f[e],d[i]?d[i].value=a[i]:0;if(k=get_by_id(b))for(j=["target_module","guestbook_target_module","user_id","unit_count"],e=0,g=j.length;g>e;e++)i=j[e],k.elements[i]&&(c.elements[i].value=k.elements[i].value);jQuery("#preProgressMsg").hide(),jQuery("#progressMsg").show(),doImport(b)}var d,e,f,g,h=!1,i=jQuery;return d=a.elements.xml_file.value,e=a.elements.type.value,d?(g=i("#process"),i("body").children(".x_modal-backdrop").length||i("body").append('
'),i('a[href="#process"].modalAnchor').trigger("open.mw"),exec_xml("importer","procImporterAdminPreProcessing",{type:e,xml_file:d},c,f=["error","message","type","total","cur","key","status"]),!1):!1}function doImport(a){function b(b){function c(){alert(b.message),jQuery('a[href="#process"].modalAnchor').unbind("before-close.mw").trigger("close.mw").find("#progressBar").width(1).end().find("#progressPercent").html("0%").end();try{f.reset(),get_by_id(a).reset()}catch(c){}jQuery("span.btn > input[type=submit]").attr("disabled","disabled")}var d,i,j,k;for(d=0,i=e.length;i>d;d++)j=e[d],g[j]?g[j].value=b[j]:0;b.total=parseInt(b.total,10)||0,b.cur=parseInt(b.cur,10)||0,percent=parseInt(b.cur/b.total*100),jQuery("#totalCount").text(b.total),jQuery("#completeCount").text(b.cur),jQuery("#progressBar").width(percent+"%"),jQuery("#progressPercent").html(percent+"%"),b.total>b.cur?doImport(a):(k=get_by_id(a),null!=k&&k.isSync.checked?exec_xml("importer","procImporterAdminSync",h,function(a){!a||a.error&&"0"!=a.error||c()},e=["error","message"]):c())}var c,d,e,f=get_by_id("fo_process"),g=f.elements,h={};for(c=0,d=g.length;d>c;c++)h[g[c].name]=g[c].value;return show_waiting_message=!1,exec_xml("importer","procImporterAdminImport",h,b,e=["error","message","type","total","cur","key"]),show_waiting_message=!0,!1}function displayProgress(a,b){var c,d;c=Math.max(a?Math.round(b/a*100):100,1),d=jQuery("#status"),d.find("div.progress1").length||d.html('
'),d.find("div.progress1").html(c+" ").css("width",c+"%").end().find("div.progress2").text(b+"/"+a)}jQuery(function(a){a(".checkxml").find("input:text").change(function(){a(this).closest(".checkxml").find(".x_help-inline").hide()}).end().find("button").click(function(){function b(a){var b,e;return e=g.find(">.xml"),b=g.find(">.ttxml"),$message.text(a.result_message),a.error||"true"!=a.exists?($message.attr("class","x_help-inline").fadeIn(300),b=b.filter(":visible"),b.eq(-1).slideUp(100,function(){b=b.slice(0,-1).eq(-1).slideUp(100,arguments.callee)}),g.find(":submit").attr("disabled","disabled"),c()):($message.attr("class","x_help-inline").fadeIn(300),g.find(":submit").removeAttr("disabled"),h=g.find(".syncmember:hidden"),f.prop("disabled",!1).removeClass("loading"),d.prop("disabled",!1),void("XML"==a.type?e.not(":visible").add(h).slideDown(300):"TTXML"==a.type&&(b.not(":visible").add(h).slideDown(300),g.find("input[name=type]").val("ttxml"))))}function c(){return f.prop("disabled",!1).removeClass("loading"),d.prop("disabled",!1),g.find(".syncmember:visible").slideUp(100),!1}var d,e,f,g,h;d=a(this).prop("disabled",!0),g=d.closest("form"),e=d.closest(".checkxml"),f=e.find("input").prop("disabled",!0).addClass("loading"),$message=e.find(".x_help-inline").hide(),show_waiting_message=!1,a.exec_json("importer.procImporterAdminCheckXmlFile",{filename:a.trim(f.val())},b)}).end().find(".x_help-inline").hide().end().closest("form").find(">.ttxml").hide().end().end().closest("form").find(":submit").attr("disabled","disabled"),a(".syncmember").hide()}); \ No newline at end of file diff --git a/modules/widget/tpl/js/generate_code.min.js b/modules/widget/tpl/js/generate_code.min.js index 1e09bee4eb..ab5c79efd5 100644 --- a/modules/widget/tpl/js/generate_code.min.js +++ b/modules/widget/tpl/js/generate_code.min.js @@ -1 +1 @@ -function doDisplaySkinColorset(a){function b(b){for(var c=jQuery("select[name=colorset]").get(0),d=c.options.length,e=a,f=0;d>f;f++)c.remove(0);if(b.colorset_list){for(var g=b.colorset_list.split("\n"),h=0,f=0;f0||!i||0===h.indexOf("sizcache")||jQuery.inArray(h,g)>-1)){jQuery('').val(i).appendTo("#fo_widget").get(0)}}var j=[];jQuery("input,select,textarea","#fo_widget").each(function(){j.push(this)});for(var k=0;k0?n=l[0].type:m=0;var h=l.name;switch(n){case"hidden":case"text":case"textarea":var o=selected_node.getAttribute(h);if(!o)continue;var p=unescape(o);l.value=p?p:o,jQuery("#"+h).val(l.value);break;case"radio":case"checkbox":if(selected_node.getAttribute(h)){var o=selected_node.getAttribute(h).split(",");if(e[h].length){for(var q=0;q ",0===d)$(this).siblings("input").val(b[d].id);else{var e=$(this).siblings("input").val();$(this).siblings("input").val(e+","+b[d].id)}else if(b[d])if(c+=' ",0===d)$(this).siblings("input").val(b[d]);else{var e=$(this).siblings("input").val();$(this).siblings("input").val(e+","+b[d])}}else c=' ",$(this).siblings("input").val(b);$(this).before(c),$(".filebox_del").bind("click",function(){for(var a=$(this).prev("img").attr("src"),b=$(this).siblings("input").val().split(","),c="",d=0;df;f++)c.remove(0);if(b.colorset_list){for(var g=b.colorset_list.split("\n"),h=0,f=0;f0||!i||0===h.indexOf("sizcache")||jQuery.inArray(h,g)>-1)){jQuery('').val(i).appendTo("#fo_widget").get(0)}}var j=[];jQuery("input,select,textarea","#fo_widget").each(function(){j.push(this)});for(var k=0;k0?n=l[0].type:m=0;var h=l.name;switch(n){case"hidden":case"text":case"textarea":var o=selected_node.getAttribute(h);if(!o)continue;var p=unescape(o);l.value=p?p:o,jQuery("#"+h).val(l.value);break;case"radio":case"checkbox":if(selected_node.getAttribute(h)){var o=selected_node.getAttribute(h).split(",");if(e[h].length){for(var q=0;q ",0===d)$(this).siblings("input").val(b[d].id);else{var e=$(this).siblings("input").val();$(this).siblings("input").val(e+","+b[d].id)}else if(b[d])if(c+=' ",0===d)$(this).siblings("input").val(b[d]);else{var e=$(this).siblings("input").val();$(this).siblings("input").val(e+","+b[d])}}else c=' ",$(this).siblings("input").val(b);$(this).before(c),$(".filebox_del").bind("click",function(){for(var a=$(this).prev("img").attr("src"),b=$(this).siblings("input").val().split(","),c="",d=0;d').find(">form").submit(function(){return doApplyWidgetSize(this),!1}),xAddEventListener(document.getElementById("zonePageContent"),"click",doCheckWidget),xAddEventListener(document.getElementById("zonePageContent"),"mousedown",doCheckWidgetDrag),xAddEventListener(document.getElementById("zonePageContent"),"mouseover",widgetSetup)}function removeAllWidget(){confirm(confirm_delete_msg)&&(restoreWidgetButtons(),jQuery(zonePageObj).html(""))}function getWidgetContent(a){var b="";"undefined"!=typeof a&&a||(a=zonePageObj);var c=null;return jQuery("div.widgetOutput",a).each(function(){if(jQuery(this).parent().get(0)==a)switch(c=jQuery(this).attr("widget")){case"widgetBox":b+=getWidgetBoxCode(this,c);break;case"widgetContent":b+=getContentWidgetCode(this,c);break;default:b+=getWidgetCode(this,c)}}),b}function getContentWidgetCode(a){var b,c=(a.firstChild,jQuery("div.widgetContent",a)),d="",e="",f=0,g="contenteditable,id,style,src,widget,body,class,widget_width,widget_width_type,xdpx,xdpy,height,document_srl,widget_padding_left,widget_padding_right,widget_padding_top,widget_padding_bottom,hascontent";if(c.size()>0){f=jQuery(a).attr("document_srl"),d=f>0?"":c.html();for(var h,i=new RegExp("^("+g.replace(/,/g,"|")+")$","i"),j=0;j"}return""}function getWidgetBoxCode(a){for(var b="",c=0;c0?(f=jQuery(".widget_inner",a),f=f.get(0)):f=jQuery(".nullWidget",a).get(0);var g=getWidgetContent(f);return'
"+g+"
"}function getWidgetCode(a,b){for(var c="",d=0;d"}function doAddContent(a){var b=request_uri.setQuery("module","widget").setQuery("act","dispWidgetAdminAddContent").setQuery("module_srl",zoneModuleSrl).setQuery("mid",a);popopen(b,"addContent")}function doSyncPageContent(){if(opener&&opener.selectedWidget){var a=get_by_id("content_fo"),b=opener.selectedWidget;a.style.value=getStyle(opener.selectedWidget),a.widget_padding_left.value=getPadding(b,"left"),a.widget_padding_right.value=getPadding(b,"right"),a.widget_padding_bottom.value=getPadding(b,"bottom"),a.widget_padding_top.value=getPadding(b,"top");for(var c=b.firstChild;c&&"widgetContent"!=c.className;)c=c.nextSibling;if(c&&"widgetContent"==c.className&&(!a.document_srl||"0"==a.document_srl.value))try{var d=Base64.decode(xInnerHtml(c));d=editorReplacePath(d),get_by_id("content_fo").content.value=d,xe.Editors["1"].exec("SET_IR",[d])}catch(e){}}"undefined"!=typeof editorStart&&editorStart(1,"module_srl","content",!1,400)}function addContentWidget(a){var b=a.getAttribute("editor_sequence"),c=(a.mid.value,a.module_srl.value),d=a.document_srl.value,e=editorGetContent(b),f={editor_sequence:b,content:e,module_srl:c,document_srl:d};if(/^\s*

.*<\/p>\s*$/i.test(f.content)){var g=f.content.toLowerCase(),h=g.indexOf("

"),i=g.lastIndexOf("

");h>0&&i>0&&h==i&&(f.content=e=f.content.replace(/^\s*

|<\/p>\s*$/gi,""))}return exec_xml("widget","procWidgetInsertDocument",f,function(b){if(b&&"0"==b.error){var c=b.document_srl,d=opener.jQuery("div.widgetOutput[widget=widgetContent][document_srl="+c+"]"),f=[];d.size()>0&&(f=d.get(0).attributes);for(var g='

'+e+'
',h=jQuery(g),i=0,j=f.length;j>i;i++)h.attr(f[i].name)||h.attr(f[i].name,f[i].value);g=jQuery("
").append(h).html(),opener.doAddWidgetCode(g),window.close()}},"document_srl".split(",")),!1}function doAddWidgetBox(){var a='
';zonePageObj.innerHTML+=a}function doAddWidget(a){var b=a.widget_list,c=b.selectedIndex,d=b.options[c].value,e=a.module_srl.value,f=request_uri.setQuery("module","widget").setQuery("act","dispWidgetGenerateCodeInPage").setQuery("selected_widget",d).setQuery("module_srl",e);popopen(f,"GenerateWidgetCode")}function doAddWidgetCode(widget_code){restoreWidgetButtons();for(var tmp=widget_code;tmp.indexOf(""),cssfile=tmp.substr(10,eos-10);if(cssfile.indexOf(".js")>-1)tmp=tmp.substr(eos);else{if(!cssfile)break;if(tmp=tmp.substr(eos),cssfile=request_uri+cssfile,"undefined"==typeof document.createStyleSheet){var css='',dummy=xCreateElement("DIV");xInnerHtml(dummy,css),document.body.appendChild(dummy)}else document.createStyleSheet(cssfile,0)}}for(checkDocumentWrite=!0,tmp=widget_code.toLowerCase();tmp.indexOf("-1;){var pos=tmp.indexOf("")+9,script=widget_code.substr(pos,length);script=script.replace(/^]*)>/i,"").replace(/<\/script>$/i,""),writedText=null;try{eval(script)}catch(e){}widget_code=widget_code.substr(0,pos)+writedText+widget_code.substr(pos+length),tmp=widget_code.toLowerCase()}var dummy=xCreateElement("div");xInnerHtml(dummy,widget_code);var obj=dummy.childNodes[0];if(selectedWidget&&selectedWidget.getAttribute("widget")){var o=jQuery("div.widget_inner",selectedWidget),n=jQuery("div.widget_inner",obj);0===n.size()&&(n=jQuery("div.nullWidget",obj)),0===o.size()&&(o=jQuery("div.nullWidget",selectedWidget)),n.html(o.html()),selectedWidget.parentNode.insertBefore(obj,selectedWidget),selectedWidget.parentNode.removeChild(selectedWidget)}else get_by_id("zonePageContent").appendChild(obj);checkDocumentWrite=!1,selectedWidget=null}function doCheckWidget(a){var b=new xEvent(a);if(b.target){var c=b.target;selectedWidget=null;for(var d=c.parentNode;d;){if("pageSizeLayer"==d.id)return;d=d.parentNode}if(doHideWidgetSizeSetup(),"widgetSetup"==c.className){var e=c.parentNode.parentNode,f=e.getAttribute("widget");if(!f)return;return selectedWidget=e,"widgetContent"==f?popopen(request_uri+"?module=widget&act=dispWidgetAdminAddContent&module_srl="+zoneModuleSrl+"&document_srl="+e.getAttribute("document_srl"),"addContent"):popopen(request_uri+"?module=widget&act=dispWidgetGenerateCodeInPage&selected_widget="+f+"&widgetstyle="+g,"GenerateCodeInPage"),void 0}if("widgetStyle"==c.className){var e=c.parentNode.parentNode,f=e.getAttribute("widget"),g=e.getAttribute("widgetstyle");if(!f)return;return selectedWidget=e,popopen(request_uri+"?module=widget&act=dispWidgetStyleGenerateCodeInPage&selected_widget="+f+"&widgetstyle="+g,"GenerateCodeInPage"),void 0}if("widgetCopy"==c.className&&"widgetOutput"==c.parentNode.parentNode.className){var e=c.parentNode.parentNode;if(restoreWidgetButtons(),"widgetContent"==e.getAttribute("widget")&&e.getAttribute("document_srl")){var h=new Array("error","message","document_srl"),i=[];return i.document_srl=e.getAttribute("document_srl"),exec_xml("widget","procWidgetCopyDocument",i,completeCopyWidgetContent,h,i,e),void 0}var j=xCreateElement("DIV");xInnerHtml(j,xInnerHtml(e)),j.widget_sequence="",j.className="widgetOutput";for(var k=0;k0)&&(doHideWidgetSizeSetup(),"widgetSetup"!=c.className&&"widgetStyle"!=c.className&&"widgetCopy"!=c.className&&"widgetBoxCopy"!=c.className&&"widgetSize"!=c.className&&"widgetBoxSize"!=c.className&&"widgetRemove"!=c.className&&"widgetBoxRemove"!=c.className))for(p_obj=c;p_obj;){if("widgetOutput"==p_obj.className||"widgetResize"==p_obj.className||"widgetResizeLeft"==p_obj.className||"widgetBoxResize"==p_obj.className||"widgetBoxResizeLeft"==p_obj.className)return widgetDragEnable(p_obj,widgetDragStart,widgetDrag,widgetDragEnd),widgetMouseDown(a),void 0;p_obj=p_obj.parentNode}}}function _getInt(a){return a&&"null"!=a?isNaN(parseInt(a,10))?0:parseInt(a,10):0}function doShowWidgetSizeSetup(a,b,c){var d=jQuery("#pageSizeLayer"),e=d.find(">form:first"),c=jQuery(c);if(e.length){selectedSizeWidget=c[0];var f={widget_align:c.css("float"),width:c[0].style.width,height:c[0].style.height,padding_left:_getInt(c.attr("widget_padding_left")),padding_right:_getInt(c.attr("widget_padding_right")),padding_top:_getInt(c.attr("widget_padding_top")),padding_bottom:_getInt(c.attr("widget_padding_bottom")),margin_left:_getInt(c[0].style.marginLeft),margin_right:_getInt(c[0].style.marginRight),margin_top:_getInt(c[0].style.marginTop),margin_bottom:_getInt(c[0].style.marginBottom),border_top_color:transRGB2Hex(c[0].style.borderTopColor),border_top_thick:c[0].style.borderTopWidth.replace(/px$/i,""),border_top_type:c[0].style.borderTopStyle,border_bottom_color:transRGB2Hex(c[0].style.borderBottomColor),border_bottom_thick:c[0].style.borderBottomWidth.replace(/px$/i,""),border_bottom_type:c[0].style.borderBottomStyle,border_right_color:transRGB2Hex(c[0].style.borderRightColor),border_right_thick:c[0].style.borderRightWidth.replace(/px$/i,""),border_right_type:c[0].style.borderRightStyle,border_left_color:transRGB2Hex(c[0].style.borderLeftColor),border_left_thick:c[0].style.borderLeftWidth.replace(/px$/i,""),border_left_type:c[0].style.borderLeftStyle,background_color:transRGB2Hex(c[0].style.backgroundColor),background_image_url:c[0].style.backgroundImage.replace(/^url\(/i,"").replace(/\)$/i,""),background_x:0,background_y:0,background_repeat:c[0].style.backgroundRepeat},g=c[0].style.backgroundPosition;g&&(g=g.split(" "),2==g.length&&(f.background_x=g[0],f.background_y=g[1])),d.show(),jQuery(function(a){var b=a("#pageSizeLayer"),c=a(".x_modal-backdrop"),d=a(window).width(),e=a(window).height(),f=b.width(),g=b.height();d>f&&e>g?(c.show(),b.css({position:"fixed",top:e/2-g/2+"px",left:d/2-f/2+"px",width:"700px"})):(c.hide(),b.css({position:"static",top:"auto",left:"auto",width:"auto"}))}),jQuery.each(f,function(a,b){var c=e[0].elements[a];c&&(c.value=b,c.className.match(/\bcolor-indicator\b/)&&(c.style.background=c.value="#"+c.value)),"select"==c.tagName.toLowerCase()&&-1==c.selectedIndex&&(c.selectedIndex=0)});try{e[0].elements[0].focus()}catch(h){}}}function doHideWidgetSizeSetup(){jQuery("#pageSizeLayer, .x_modal-backdrop, .jPicker.Container").hide()}function _getSize(a){if(!a)return 0;var b="px";a.lastIndexOf("%")>=0&&(b="%");var c=parseInt(a,10);return 1>c?0:("%"==b&&c>100&&(c=100),""+c+b)}function _getBorderStyle(a,b,c){var d=a.value;d=d.replace(/^#/,""),d=d?"#"+d:"#FFFFFF";var e=b.value;e=e?parseInt(e,10)+"px":"0px";var f=c.options[c.selectedIndex].value;f||(f="solid");var g=d+" "+e+" "+f;return g}function _getBGColorStyle(a){var b=a.replace(/^#/,"");return b=b?"#"+b:"#FFFFFF"}function doApplyWidgetSize(a){if(selectedSizeWidget){1==a.widget_align.selectedIndex?setFloat(selectedSizeWidget,"right"):setFloat(selectedSizeWidget,"left");var b=_getSize(a.width.value);b&&(selectedSizeWidget.style.width=b);var c=_getSize(a.height.value);if(c&&"100%"!=c)selectedSizeWidget.style.height=c;else{selectedSizeWidget.style.height="";for(var d=xGetElementsByClassName("widgetBorder",selectedSizeWidget),e=0;e0||jQuery(c).is(".buttonBox")||jQuery(c).parents(".buttonBox").size()>0)){var d=jQuery(c).parents(".widgetOutput");if(0===d.size())return restoreWidgetButtons(),void 0;c=d.get(0);var e=d.attr("widget");if(e)if("widgetBox"==e)restoreWidgetButtons(),showWidgetButton("widgetBoxButton",c);else{restoreWidgetButtons(),showWidgetButton("widgetButton",c);var f=c.parentNode;if(f)for(;f;){if("DIV"==f.nodeName&&"widgetBox"==f.getAttribute("widget")){showWidgetButton("widgetBoxButton",f);break}f=f.parentNode}}}}function widgetCreateTmpObject(a){var b=a.getAttribute("id");return tmpObj=xCreateElement("DIV"),tmpObj.id=b+"_tmp",tmpObj.className=a.className,tmpObj.style.overflow="hidden",tmpObj.style.margin="0px",tmpObj.style.padding="0px",tmpObj.style.width=a.style.width,tmpObj.style.display="none",tmpObj.style.position="absolute",tmpObj.style.opacity=1,tmpObj.style.filter="alpha(opacity=100)",xLeft(tmpObj,xPageX(a)),xTop(tmpObj,xPageY(a)),document.body.appendChild(tmpObj),widgetTmpObject[a.id]=tmpObj,tmpObj}function widgetGetTmpObject(a){a.id||(a.id="widget_"+idStep++);var b=widgetTmpObject[a.id];return b||(b=widgetCreateTmpObject(a)),b}function widgetDragEnable(a,b,c,d){a.draggable=!0,a.dragStart=b,a.drag=c,a.dragEnd=d,widgetDragManager.isDrag||(widgetDragManager.isDrag=!0,xAddEventListener(document,"mousemove",widgetDragMouseMove,!1))}function widgetDragStart(a){if("widgetResize"!=a.className&&"widgetResizeLeft"!=a.className&&"widgetBoxResize"!=a.className&&"widgetBoxResizeLeft"!=a.className){var b=widgetGetTmpObject(a);xInnerHtml(b,xInnerHtml(a)),xLeft(b,xPageX(a)),xTop(b,xPageY(a)),xWidth(b,xWidth(a)),xHeight(b,xHeight(a)),xDisplay(b,"block")}}function widgetDrag(a,b,c){var d=40,e=10,f=xPageX(a.parentNode),g=xPageY(a.parentNode),h=a.xDPX,i=a.xDPY,j=xWidth(zonePageObj),k=xPageX(zonePageObj),l=k+j,m=xWidth(a.parentNode),n=getFloat(a.parentNode);if(n||(n="left"),"widgetResize"==a.className||"widgetBoxResize"==a.className){f+d>h&&(h=f+d),h>l&&(h=l),"right"==n&&(h=f+m);var o=h-f;d>o&&(o=d);var p=i-g;e>p&&(p=e),f+o>l&&(o=l-f),xWidth(a.parentNode,o),xHeight(a.parentNode,p)}else if("widgetResizeLeft"==a.className||"widgetBoxResizeLeft"==a.className){k>h&&(h=k),"left"==n&&(h=f);var o=m+(f-h);d>o&&(o=d);var p=i-g;e>p&&(p=e),xWidth(a.parentNode,o),xHeight(a.parentNode,p)}else{var q=widgetGetTmpObject(a);if(xLeft(q,parseInt(xPageX(q),10)+parseInt(b,10)),xTop(q,parseInt(xPageY(q),10)+parseInt(c,10)),a.parentNode!=zonePageObj){for(var r=xGetElementsByClassName("widgetOutput",a.parentNode),s=0;s=u&&a.xDPX<=w&&a.xDPY>=v&&a.xDPY<=x&&a.parentNode==t.parentNode){var y=t.nextSibling;y||(y=xCreateElement("DIV"),t.parentNode.appendChild(y));var z=a.nextSibling;return z||(z=xCreateElement("DIV"),a.parentNode.appendChild(z)),y&&y.parentNode.insertBefore(a,y),z&&z.parentNode.insertBefore(t,z),r=null,void 0}}r=null;var A=jQuery(a).parents("div.nullWidget").get(0),u=xPageX(A),v=xPageY(A),w=parseInt(u,10)+parseInt(xWidth(A),10),x=parseInt(v,10)+parseInt(xHeight(A),10);if(a.xDPXw||a.xDPYx)return zonePageObj.insertBefore(a,jQuery(a).parents("div.widgetOutput[widget=widgetBox]").get(0)),void 0}else{if("widgetBox"!=a.getAttribute("widget")){for(var B=xGetElementsByClassName("nullWidget",zonePageObj),s=0;s=u&&a.xDPX<=w&&a.xDPY>=v&&a.xDPY<=x&&"nullWidget"==t.className){var C=jQuery("div.widget_inner",jQuery(t));return 0===C.size()?t.appendChild(a):C.get(0).appendChild(a),widgetManualEnd(),B=null,void 0}}B=null}for(var r=xGetElementsByClassName("widgetOutput",zonePageObj),s=0;s=u&&a.xDPX<=w&&a.xDPY>=v&&a.xDPY<=x&&a.parentNode==t.parentNode){var y=t.nextSibling;y||(y=t.parentNode.lastChild),y||(y=xCreateElement("DIV"),t.parentNode.appendChild(y));var z=a.nextSibling;return z||(z=xCreateElement("DIV"),a.parentNode.appendChild(z)),y&&y.parentNode.insertBefore(a,y),z&&z.parentNode.insertBefore(t,z),r=null,void 0}}}r=null}}}function widgetDragEnd(a){var b=widgetGetTmpObject(a);widgetDisapear=widgetDisapearObject(b,a),widgetDragDisable(a.getAttribute("id"))}function widgetDisapearObject(a,b){xInnerHtml(b,xInnerHtml(a)),xInnerHtml(a,""),xDisplay(a,"none"),a.parentNode.removeChild(a),widgetTmpObject[b.id]=null}function widgetMouseDown(a){for(var b=new xEvent(a),c=b.target;c&&!c.draggable;)c=xParent(c,!0);c&&(xPreventDefault(a),c.xDPX=b.pageX,c.xDPY=b.pageY,widgetDragManager.obj=c,xAddEventListener(document,"mouseup",widgetMouseUp,!1),c.dragStart&&c.dragStart(c,b.pageX,b.pageY))}function widgetMouseUp(a){if(widgetDragManager.obj){if(xPreventDefault(a),xRemoveEventListener(document,"mouseup",widgetMouseUp,!1),widgetDragManager.obj.dragEnd){var b=new xEvent(a);widgetDragManager.obj.dragEnd(widgetDragManager.obj,b.pageX,b.pageY)}widgetDragManager.obj=null,widgetDragManager.isDrag=!1}}function widgetDragMouseMove(a){var b=new xEvent(a);if(widgetDragManager.obj){xPreventDefault(a);var c=widgetDragManager.obj,d=b.pageX-c.xDPX,e=b.pageY-c.xDPY;c.xDPX=b.pageX,c.xDPY=b.pageY,c.drag?c.drag(c,d,e):xMoveTo(c,xLeft(c)+d,xTop(c)+e)}}function widgetDragDisable(a){if(widgetDragManager){var b=get_by_id(a);b.draggable=!1,b.dragStart=null,b.drag=null,b.dragEnd=null,xRemoveEventListener(b,"mousedown",widgetMouseDown,!1)}}function widgetManualEnd(){var a=widgetDragManager.obj;if(a){xRemoveEventListener(document,"mouseup",widgetMouseUp,!1),xAddEventListener(document,"mousemove",widgetDragMouseMove,!1);var b=widgetGetTmpObject(a);widgetDisapear=widgetDisapearObject(b,a),widgetDragDisable(a.getAttribute("id")),widgetDragManager.obj=null,widgetDragManager.isDrag=!1}}var zonePageObj=null,zoneModuleSrl=0,selectedWidget=null,writedText=null,checkDocumentWrite=!1;window.document.write=window.document.writeln=function(a){if(checkDocumentWrite)return writedText=a,void 0;if(!a.match(/^<\//)){window.opera||(a=a.replace(/&(?![#a-z0-9]+;)/g,"&")),a=a.replace(/(<[a-z]+)/g,"$1 xmlns='http://www.w3.org/1999/xhtml'");var b,c=jQuery("
").html(a)[0];b=document.getElementsByTagName("*"),b=b[b.length-1];for(var d=c.childNodes;d.length;)b.parentNode.appendChild(d[0])}};var selectedSizeWidget=null;jQuery(function(a){a(document).keydown(function(b){var c=a(".jPicker.Container:visible");return 27!=b.which||c.length?27==b.which&&c.length?(c.hide(),!1):!0:(doHideWidgetSizeSetup(),!1)})});var hideElements=[],widgetDragManager={obj:null,isDrag:!1},widgetTmpObject=[],widgetDisappear=0,idStep=0; \ No newline at end of file +function getStyle(a){var b=a.getAttribute("style");return b||(b=a.style),"object"==typeof b&&(b=b.cssText),b=b.replace(/\burl\s*\(\s*"(.*?)"\s*\)/i,"url('$1')")}function getFloat(a){return jQuery(a).css("float")}function setFloat(a,b){jQuery(a).css("float",b)}function getPadding(a,b){var c=a.getAttribute("widget_padding_"+b);return c&&null!==c||(c=0),c}function doStartPageModify(a,b){zonePageObj=get_by_id(a),zoneModuleSrl=b,jQuery("#tmpPageSizeLayer").appendTo("body").hide().attr("id","pageSizeLayer").css({position:"fixed"}).before('
').find(">form").submit(function(){return doApplyWidgetSize(this),!1}),xAddEventListener(document.getElementById("zonePageContent"),"click",doCheckWidget),xAddEventListener(document.getElementById("zonePageContent"),"mousedown",doCheckWidgetDrag),xAddEventListener(document.getElementById("zonePageContent"),"mouseover",widgetSetup)}function removeAllWidget(){confirm(confirm_delete_msg)&&(restoreWidgetButtons(),jQuery(zonePageObj).html(""))}function getWidgetContent(a){var b="";"undefined"!=typeof a&&a||(a=zonePageObj);var c=null;return jQuery("div.widgetOutput",a).each(function(){if(jQuery(this).parent().get(0)==a)switch(c=jQuery(this).attr("widget")){case"widgetBox":b+=getWidgetBoxCode(this,c);break;case"widgetContent":b+=getContentWidgetCode(this,c);break;default:b+=getWidgetCode(this,c)}}),b}function getContentWidgetCode(a){var b,c=(a.firstChild,jQuery("div.widgetContent",a)),d="",e="",f=0,g="contenteditable,id,style,src,widget,body,class,widget_width,widget_width_type,xdpx,xdpy,height,document_srl,widget_padding_left,widget_padding_right,widget_padding_top,widget_padding_bottom,hascontent";if(c.size()>0){f=jQuery(a).attr("document_srl"),d=f>0?"":c.html();for(var h,i=new RegExp("^("+g.replace(/,/g,"|")+")$","i"),j=0;j"}return""}function getWidgetBoxCode(a){for(var b="",c=0;c0?(f=jQuery(".widget_inner",a),f=f.get(0)):f=jQuery(".nullWidget",a).get(0);var g=getWidgetContent(f);return'
"+g+"
"}function getWidgetCode(a,b){for(var c="",d=0;d"}function doAddContent(a){var b=request_uri.setQuery("module","widget").setQuery("act","dispWidgetAdminAddContent").setQuery("module_srl",zoneModuleSrl).setQuery("mid",a);popopen(b,"addContent")}function doSyncPageContent(){if(opener&&opener.selectedWidget){var a=get_by_id("content_fo"),b=opener.selectedWidget;a.style.value=getStyle(opener.selectedWidget),a.widget_padding_left.value=getPadding(b,"left"),a.widget_padding_right.value=getPadding(b,"right"),a.widget_padding_bottom.value=getPadding(b,"bottom"),a.widget_padding_top.value=getPadding(b,"top");for(var c=b.firstChild;c&&"widgetContent"!=c.className;)c=c.nextSibling;if(c&&"widgetContent"==c.className&&(!a.document_srl||"0"==a.document_srl.value))try{var d=Base64.decode(xInnerHtml(c));d=editorReplacePath(d),get_by_id("content_fo").content.value=d,xe.Editors[1].exec("SET_IR",[d])}catch(e){}}"undefined"!=typeof editorStart&&editorStart(1,"module_srl","content",!1,400)}function addContentWidget(a){var b=a.getAttribute("editor_sequence"),c=(a.mid.value,a.module_srl.value),d=a.document_srl.value,e=editorGetContent(b),f={editor_sequence:b,content:e,module_srl:c,document_srl:d};if(/^\s*

.*<\/p>\s*$/i.test(f.content)){var g=f.content.toLowerCase(),h=g.indexOf("

"),i=g.lastIndexOf("

");h>0&&i>0&&h==i&&(f.content=e=f.content.replace(/^\s*

|<\/p>\s*$/gi,""))}return exec_xml("widget","procWidgetInsertDocument",f,function(b){if(b&&"0"==b.error){var c=b.document_srl,d=opener.jQuery("div.widgetOutput[widget=widgetContent][document_srl="+c+"]"),f=[];d.size()>0&&(f=d.get(0).attributes);for(var g='

'+e+'
',h=jQuery(g),i=0,j=f.length;j>i;i++)h.attr(f[i].name)||h.attr(f[i].name,f[i].value);g=jQuery("
").append(h).html(),opener.doAddWidgetCode(g),window.close()}},"document_srl".split(",")),!1}function doAddWidgetBox(){var a='
';zonePageObj.innerHTML+=a}function doAddWidget(a){var b=a.widget_list,c=b.selectedIndex,d=b.options[c].value,e=a.module_srl.value,f=request_uri.setQuery("module","widget").setQuery("act","dispWidgetGenerateCodeInPage").setQuery("selected_widget",d).setQuery("module_srl",e);popopen(f,"GenerateWidgetCode")}function doAddWidgetCode(widget_code){restoreWidgetButtons();for(var tmp=widget_code;tmp.indexOf(""),cssfile=tmp.substr(10,eos-10);if(cssfile.indexOf(".js")>-1)tmp=tmp.substr(eos);else{if(!cssfile)break;if(tmp=tmp.substr(eos),cssfile=request_uri+cssfile,"undefined"==typeof document.createStyleSheet){var css='',dummy=xCreateElement("DIV");xInnerHtml(dummy,css),document.body.appendChild(dummy)}else document.createStyleSheet(cssfile,0)}}for(checkDocumentWrite=!0,tmp=widget_code.toLowerCase();tmp.indexOf("-1;){var pos=tmp.indexOf("")+9,script=widget_code.substr(pos,length);script=script.replace(/^]*)>/i,"").replace(/<\/script>$/i,""),writedText=null;try{eval(script)}catch(e){}widget_code=widget_code.substr(0,pos)+writedText+widget_code.substr(pos+length),tmp=widget_code.toLowerCase()}var dummy=xCreateElement("div");xInnerHtml(dummy,widget_code);var obj=dummy.childNodes[0];if(selectedWidget&&selectedWidget.getAttribute("widget")){var o=jQuery("div.widget_inner",selectedWidget),n=jQuery("div.widget_inner",obj);0===n.size()&&(n=jQuery("div.nullWidget",obj)),0===o.size()&&(o=jQuery("div.nullWidget",selectedWidget)),n.html(o.html()),selectedWidget.parentNode.insertBefore(obj,selectedWidget),selectedWidget.parentNode.removeChild(selectedWidget)}else get_by_id("zonePageContent").appendChild(obj);checkDocumentWrite=!1,selectedWidget=null}function doCheckWidget(a){var b=new xEvent(a);if(b.target){var c=b.target;selectedWidget=null;for(var d=c.parentNode;d;){if("pageSizeLayer"==d.id)return;d=d.parentNode}if(doHideWidgetSizeSetup(),"widgetSetup"==c.className){var e=c.parentNode.parentNode,f=e.getAttribute("widget");if(!f)return;return selectedWidget=e,void("widgetContent"==f?popopen(request_uri+"?module=widget&act=dispWidgetAdminAddContent&module_srl="+zoneModuleSrl+"&document_srl="+e.getAttribute("document_srl"),"addContent"):popopen(request_uri+"?module=widget&act=dispWidgetGenerateCodeInPage&selected_widget="+f+"&widgetstyle="+g,"GenerateCodeInPage"))}if("widgetStyle"==c.className){var e=c.parentNode.parentNode,f=e.getAttribute("widget"),g=e.getAttribute("widgetstyle");if(!f)return;return selectedWidget=e,void popopen(request_uri+"?module=widget&act=dispWidgetStyleGenerateCodeInPage&selected_widget="+f+"&widgetstyle="+g,"GenerateCodeInPage")}if("widgetCopy"==c.className&&"widgetOutput"==c.parentNode.parentNode.className){var e=c.parentNode.parentNode;if(restoreWidgetButtons(),"widgetContent"==e.getAttribute("widget")&&e.getAttribute("document_srl")){var h=new Array("error","message","document_srl"),i=[];return i.document_srl=e.getAttribute("document_srl"),void exec_xml("widget","procWidgetCopyDocument",i,completeCopyWidgetContent,h,i,e)}var j=xCreateElement("DIV");xInnerHtml(j,xInnerHtml(e)),j.widget_sequence="",j.className="widgetOutput";for(var k=0;k0)&&(doHideWidgetSizeSetup(),"widgetSetup"!=c.className&&"widgetStyle"!=c.className&&"widgetCopy"!=c.className&&"widgetBoxCopy"!=c.className&&"widgetSize"!=c.className&&"widgetBoxSize"!=c.className&&"widgetRemove"!=c.className&&"widgetBoxRemove"!=c.className))for(p_obj=c;p_obj;){if("widgetOutput"==p_obj.className||"widgetResize"==p_obj.className||"widgetResizeLeft"==p_obj.className||"widgetBoxResize"==p_obj.className||"widgetBoxResizeLeft"==p_obj.className)return widgetDragEnable(p_obj,widgetDragStart,widgetDrag,widgetDragEnd),void widgetMouseDown(a);p_obj=p_obj.parentNode}}}function _getInt(a){return a&&"null"!=a?isNaN(parseInt(a,10))?0:parseInt(a,10):0}function doShowWidgetSizeSetup(a,b,c){var d=jQuery("#pageSizeLayer"),e=d.find(">form:first"),c=jQuery(c);if(e.length){selectedSizeWidget=c[0];var f={widget_align:c.css("float"),width:c[0].style.width,height:c[0].style.height,padding_left:_getInt(c.attr("widget_padding_left")),padding_right:_getInt(c.attr("widget_padding_right")),padding_top:_getInt(c.attr("widget_padding_top")),padding_bottom:_getInt(c.attr("widget_padding_bottom")),margin_left:_getInt(c[0].style.marginLeft),margin_right:_getInt(c[0].style.marginRight),margin_top:_getInt(c[0].style.marginTop),margin_bottom:_getInt(c[0].style.marginBottom),border_top_color:transRGB2Hex(c[0].style.borderTopColor),border_top_thick:c[0].style.borderTopWidth.replace(/px$/i,""),border_top_type:c[0].style.borderTopStyle,border_bottom_color:transRGB2Hex(c[0].style.borderBottomColor),border_bottom_thick:c[0].style.borderBottomWidth.replace(/px$/i,""),border_bottom_type:c[0].style.borderBottomStyle,border_right_color:transRGB2Hex(c[0].style.borderRightColor),border_right_thick:c[0].style.borderRightWidth.replace(/px$/i,""),border_right_type:c[0].style.borderRightStyle,border_left_color:transRGB2Hex(c[0].style.borderLeftColor),border_left_thick:c[0].style.borderLeftWidth.replace(/px$/i,""),border_left_type:c[0].style.borderLeftStyle,background_color:transRGB2Hex(c[0].style.backgroundColor),background_image_url:c[0].style.backgroundImage.replace(/^url\(/i,"").replace(/\)$/i,""),background_x:0,background_y:0,background_repeat:c[0].style.backgroundRepeat},g=c[0].style.backgroundPosition;g&&(g=g.split(" "),2==g.length&&(f.background_x=g[0],f.background_y=g[1])),d.show(),jQuery(function(a){var b=a("#pageSizeLayer"),c=a(".x_modal-backdrop"),d=a(window).width(),e=a(window).height(),f=b.width(),g=b.height();d>f&&e>g?(c.show(),b.css({position:"fixed",top:e/2-g/2+"px",left:d/2-f/2+"px",width:"700px"})):(c.hide(),b.css({position:"static",top:"auto",left:"auto",width:"auto"}))}),jQuery.each(f,function(a,b){var c=e[0].elements[a];c&&(c.value=b,c.className.match(/\bcolor-indicator\b/)&&(c.style.background=c.value="#"+c.value)),"select"==c.tagName.toLowerCase()&&-1==c.selectedIndex&&(c.selectedIndex=0)});try{e[0].elements[0].focus()}catch(h){}}}function doHideWidgetSizeSetup(){jQuery("#pageSizeLayer, .x_modal-backdrop, .jPicker.Container").hide()}function _getSize(a){if(!a)return 0;var b="px";a.lastIndexOf("%")>=0&&(b="%");var c=parseInt(a,10);return 1>c?0:("%"==b&&c>100&&(c=100),""+c+b)}function _getBorderStyle(a,b,c){var d=a.value;d=d.replace(/^#/,""),d=d?"#"+d:"#FFFFFF";var e=b.value;e=e?parseInt(e,10)+"px":"0px";var f=c.options[c.selectedIndex].value;f||(f="solid");var g=d+" "+e+" "+f;return g}function _getBGColorStyle(a){var b=a.replace(/^#/,"");return b=b?"#"+b:"#FFFFFF"}function doApplyWidgetSize(a){if(selectedSizeWidget){1==a.widget_align.selectedIndex?setFloat(selectedSizeWidget,"right"):setFloat(selectedSizeWidget,"left");var b=_getSize(a.width.value);b&&(selectedSizeWidget.style.width=b);var c=_getSize(a.height.value);if(c&&"100%"!=c)selectedSizeWidget.style.height=c;else{selectedSizeWidget.style.height="";for(var d=xGetElementsByClassName("widgetBorder",selectedSizeWidget),e=0;e0||jQuery(c).is(".buttonBox")||jQuery(c).parents(".buttonBox").size()>0)){var d=jQuery(c).parents(".widgetOutput");if(0===d.size())return void restoreWidgetButtons();c=d.get(0);var e=d.attr("widget");if(e)if("widgetBox"==e)restoreWidgetButtons(),showWidgetButton("widgetBoxButton",c);else{restoreWidgetButtons(),showWidgetButton("widgetButton",c);var f=c.parentNode;if(f)for(;f;){if("DIV"==f.nodeName&&"widgetBox"==f.getAttribute("widget")){showWidgetButton("widgetBoxButton",f);break}f=f.parentNode}}}}function widgetCreateTmpObject(a){var b=a.getAttribute("id");return tmpObj=xCreateElement("DIV"),tmpObj.id=b+"_tmp",tmpObj.className=a.className,tmpObj.style.overflow="hidden",tmpObj.style.margin="0px",tmpObj.style.padding="0px",tmpObj.style.width=a.style.width,tmpObj.style.display="none",tmpObj.style.position="absolute",tmpObj.style.opacity=1,tmpObj.style.filter="alpha(opacity=100)",xLeft(tmpObj,xPageX(a)),xTop(tmpObj,xPageY(a)),document.body.appendChild(tmpObj),widgetTmpObject[a.id]=tmpObj,tmpObj}function widgetGetTmpObject(a){a.id||(a.id="widget_"+idStep++);var b=widgetTmpObject[a.id];return b||(b=widgetCreateTmpObject(a)),b}function widgetDragEnable(a,b,c,d){a.draggable=!0,a.dragStart=b,a.drag=c,a.dragEnd=d,widgetDragManager.isDrag||(widgetDragManager.isDrag=!0,xAddEventListener(document,"mousemove",widgetDragMouseMove,!1))}function widgetDragStart(a){if("widgetResize"!=a.className&&"widgetResizeLeft"!=a.className&&"widgetBoxResize"!=a.className&&"widgetBoxResizeLeft"!=a.className){var b=widgetGetTmpObject(a);xInnerHtml(b,xInnerHtml(a)),xLeft(b,xPageX(a)),xTop(b,xPageY(a)),xWidth(b,xWidth(a)),xHeight(b,xHeight(a)),xDisplay(b,"block")}}function widgetDrag(a,b,c){var d=40,e=10,f=xPageX(a.parentNode),g=xPageY(a.parentNode),h=a.xDPX,i=a.xDPY,j=xWidth(zonePageObj),k=xPageX(zonePageObj),l=k+j,m=xWidth(a.parentNode),n=getFloat(a.parentNode);if(n||(n="left"),"widgetResize"==a.className||"widgetBoxResize"==a.className){f+d>h&&(h=f+d),h>l&&(h=l),"right"==n&&(h=f+m);var o=h-f;d>o&&(o=d);var p=i-g;e>p&&(p=e),f+o>l&&(o=l-f),xWidth(a.parentNode,o),xHeight(a.parentNode,p)}else if("widgetResizeLeft"==a.className||"widgetBoxResizeLeft"==a.className){k>h&&(h=k),"left"==n&&(h=f);var o=m+(f-h);d>o&&(o=d);var p=i-g;e>p&&(p=e),xWidth(a.parentNode,o),xHeight(a.parentNode,p)}else{var q=widgetGetTmpObject(a);if(xLeft(q,parseInt(xPageX(q),10)+parseInt(b,10)),xTop(q,parseInt(xPageY(q),10)+parseInt(c,10)),a.parentNode!=zonePageObj){for(var r=xGetElementsByClassName("widgetOutput",a.parentNode),s=0;s=u&&a.xDPX<=w&&a.xDPY>=v&&a.xDPY<=x&&a.parentNode==t.parentNode){var y=t.nextSibling;y||(y=xCreateElement("DIV"),t.parentNode.appendChild(y));var z=a.nextSibling;return z||(z=xCreateElement("DIV"),a.parentNode.appendChild(z)),y&&y.parentNode.insertBefore(a,y),z&&z.parentNode.insertBefore(t,z),void(r=null)}}r=null;var A=jQuery(a).parents("div.nullWidget").get(0),u=xPageX(A),v=xPageY(A),w=parseInt(u,10)+parseInt(xWidth(A),10),x=parseInt(v,10)+parseInt(xHeight(A),10);if(a.xDPXw||a.xDPYx)return void zonePageObj.insertBefore(a,jQuery(a).parents("div.widgetOutput[widget=widgetBox]").get(0))}else{if("widgetBox"!=a.getAttribute("widget")){for(var B=xGetElementsByClassName("nullWidget",zonePageObj),s=0;s=u&&a.xDPX<=w&&a.xDPY>=v&&a.xDPY<=x&&"nullWidget"==t.className){var C=jQuery("div.widget_inner",jQuery(t));return 0===C.size()?t.appendChild(a):C.get(0).appendChild(a),widgetManualEnd(),void(B=null)}}B=null}for(var r=xGetElementsByClassName("widgetOutput",zonePageObj),s=0;s=u&&a.xDPX<=w&&a.xDPY>=v&&a.xDPY<=x&&a.parentNode==t.parentNode){var y=t.nextSibling;y||(y=t.parentNode.lastChild),y||(y=xCreateElement("DIV"),t.parentNode.appendChild(y));var z=a.nextSibling;return z||(z=xCreateElement("DIV"),a.parentNode.appendChild(z)),y&&y.parentNode.insertBefore(a,y),z&&z.parentNode.insertBefore(t,z),void(r=null)}}}r=null}}}function widgetDragEnd(a){var b=widgetGetTmpObject(a);widgetDisapear=widgetDisapearObject(b,a),widgetDragDisable(a.getAttribute("id"))}function widgetDisapearObject(a,b){xInnerHtml(b,xInnerHtml(a)),xInnerHtml(a,""),xDisplay(a,"none"),a.parentNode.removeChild(a),widgetTmpObject[b.id]=null}function widgetMouseDown(a){for(var b=new xEvent(a),c=b.target;c&&!c.draggable;)c=xParent(c,!0);c&&(xPreventDefault(a),c.xDPX=b.pageX,c.xDPY=b.pageY,widgetDragManager.obj=c,xAddEventListener(document,"mouseup",widgetMouseUp,!1),c.dragStart&&c.dragStart(c,b.pageX,b.pageY))}function widgetMouseUp(a){if(widgetDragManager.obj){if(xPreventDefault(a),xRemoveEventListener(document,"mouseup",widgetMouseUp,!1),widgetDragManager.obj.dragEnd){var b=new xEvent(a);widgetDragManager.obj.dragEnd(widgetDragManager.obj,b.pageX,b.pageY)}widgetDragManager.obj=null,widgetDragManager.isDrag=!1}}function widgetDragMouseMove(a){var b=new xEvent(a);if(widgetDragManager.obj){xPreventDefault(a);var c=widgetDragManager.obj,d=b.pageX-c.xDPX,e=b.pageY-c.xDPY;c.xDPX=b.pageX,c.xDPY=b.pageY,c.drag?c.drag(c,d,e):xMoveTo(c,xLeft(c)+d,xTop(c)+e)}}function widgetDragDisable(a){if(widgetDragManager){var b=get_by_id(a);b.draggable=!1,b.dragStart=null,b.drag=null,b.dragEnd=null,xRemoveEventListener(b,"mousedown",widgetMouseDown,!1)}}function widgetManualEnd(){var a=widgetDragManager.obj;if(a){xRemoveEventListener(document,"mouseup",widgetMouseUp,!1),xAddEventListener(document,"mousemove",widgetDragMouseMove,!1);var b=widgetGetTmpObject(a);widgetDisapear=widgetDisapearObject(b,a),widgetDragDisable(a.getAttribute("id")),widgetDragManager.obj=null,widgetDragManager.isDrag=!1}}var zonePageObj=null,zoneModuleSrl=0,selectedWidget=null,writedText=null,checkDocumentWrite=!1;window.document.write=window.document.writeln=function(a){if(checkDocumentWrite)return void(writedText=a);if(!a.match(/^<\//)){window.opera||(a=a.replace(/&(?![#a-z0-9]+;)/g,"&")),a=a.replace(/(<[a-z]+)/g,"$1 xmlns='http://www.w3.org/1999/xhtml'");var b,c=jQuery("
").html(a)[0];b=document.getElementsByTagName("*"),b=b[b.length-1];for(var d=c.childNodes;d.length;)b.parentNode.appendChild(d[0])}};var selectedSizeWidget=null;jQuery(function(a){a(document).keydown(function(b){var c=a(".jPicker.Container:visible");return 27!=b.which||c.length?27==b.which&&c.length?(c.hide(),!1):!0:(doHideWidgetSizeSetup(),!1)})});var hideElements=[],widgetDragManager={obj:null,isDrag:!1},widgetTmpObject=[],widgetDisappear=0,idStep=0; \ No newline at end of file diff --git a/modules/widget/tpl/js/widget_admin.min.js b/modules/widget/tpl/js/widget_admin.min.js index 35a0da0f14..c4ca9ff4f3 100644 --- a/modules/widget/tpl/js/widget_admin.min.js +++ b/modules/widget/tpl/js/widget_admin.min.js @@ -1 +1 @@ -function completeGenerateCode(a){var b=a.widget_code;b=b.replace(/&/g,"&"),b=b.replace(/\'/g,"'");var c=get_by_id("widget_code");c.value=b}function completeGenerateCodeInPage(a){var b=a.widget_code;return opener&&b?(opener.doAddWidgetCode(b),window.close(),void 0):(window.close(),void 0)}function doDisplaySkinColorset(a,b){var c=a.options[a.selectedIndex].value;if(!c)return get_by_id("colorset_area").style.display="none",setFixedPopupSize(),void 0;var d=[];d.selected_widget=get_by_id("fo_widget").selected_widget.value,d.skin=c,d.colorset=b;var e=new Array("error","message","colorset_list");exec_xml("widget","procWidgetGetColorsetList",d,completeGetSkinColorset,e,d)}function completeGetSkinColorset(a,b,c){for(var d=jQuery("#fo_widget")[0].widget_colorset,e=d.options.length,f=c.colorset,g=0;e>g;g++)d.remove(0);if(a.colorset_list){for(var h=a.colorset_list.split("\n"),i=0,g=0;g0)&&h&&"style"!=g){jQuery('').val(h).appendTo("#fo_widget").get(0)}}var i=[];jQuery("input,select,textarea","#fo_widget").each(function(){i.push(this)});for(var j=0;j0?m=k[0].type:l=0;var g=k.name;switch(m){case"hidden":case"text":case"textarea":var n=selected_node.getAttribute(g);if(!n)continue;var o=unescape(n);k.value=o?o:n;break;case"checkbox":if(selected_node.getAttribute(g)){var n=selected_node.getAttribute(g).split(",");if(e[g].length){for(var p=0;p100&&(c.widget_width.value=100)}}function insertSelectedModule(a,b,c,d){var e=get_by_id("_"+a),f=get_by_id(a);f.value=b,e.value=d+" ("+c+")"}function insertSelectedModules(a,b,c,d){for(var e=jQuery("#_"+a)[0],f=0;f8&&(e.size=e.options.length),syncMid(a)}function midMoveUp(a){var b=get_by_id("_"+a);if(!(b.selectedIndex<0)){var c=b.selectedIndex;if(!(1>c)){var d=b.options[c],e=b.options[c-1],f=d.value,g=d.text;d.value=e.value,d.text=e.text,e.value=f,e.text=g,b.selectedIndex=c-1,syncMid(a)}}}function midMoveDown(a){var b=get_by_id("_"+a);if(!(b.selectedIndex<0)){var c=b.selectedIndex;if(c!=b.options.length-1){var d=b.options[c],e=b.options[c+1],f=d.value,g=d.text;d.value=e.value,d.text=e.text,e.value=f,e.text=g,b.selectedIndex=c+1,syncMid(a)}}}function midRemove(a){var b=get_by_id("_"+a);if(!(b.selectedIndex<0)){var c=b.selectedIndex;b.remove(c),c-=1,0>c&&(c=0),b.options.length&&(b.selectedIndex=c),syncMid(a)}}function syncMid(a){for(var b=jQuery("#_"+a)[0],c=[],d=0;dd)){for(i=0;i-1)return;b.remove(d),d-=1,0>d&&(d=0),b.options.length&&(b.selectedIndex=d),MultiOrderSet(a)}}function MultiOrderUp(a){var b=jQuery("[name='selected_"+a+"']").get(0);if(!(b.selectedIndex<0)){var c=b.selectedIndex;if(!(1>c)){var d=b.options[c],e=b.options[c-1],f=d.value,g=d.text;d.value=e.value,d.text=e.text,e.value=f,e.text=g,b.selectedIndex=c-1,MultiOrderSet(a)}}}function MultiOrderDown(a){var b=jQuery("[name='selected_"+a+"']").get(0);if(!(b.selectedIndex<0)){var c=b.selectedIndex;if(c!=b.options.length-1){var d=b.options[c],e=b.options[c+1],f=d.value,g=d.text;d.value=e.value,d.text=e.text,e.value=f,e.text=g,b.selectedIndex=c+1,MultiOrderSet(a)}}}function initMultiOrder(a){var b=jQuery("[name='selected_"+a+"']").get(0),c=jQuery("[name='init_"+a+"']").val(),d=jQuery("[name='"+a+"']").val();if(d){var e=d.split(",");for(i=0;i0){var f=new Option(e[i],e[i]);b.options.add(f)}}else{var g=c.split(",");for(i=0;i0){var f=new Option(g[i],g[i]);b.options.add(f)}}MultiOrderSet(a)}var selected_node=null,windowLoadEventLoader=[];jQuery(window).load(excuteWindowLoadEvent); \ No newline at end of file +function completeGenerateCode(a){var b=a.widget_code;b=b.replace(/&/g,"&"),b=b.replace(/\'/g,"'");var c=get_by_id("widget_code");c.value=b}function completeGenerateCodeInPage(a){var b=a.widget_code;return opener&&b?(opener.doAddWidgetCode(b),void window.close()):void window.close()}function doDisplaySkinColorset(a,b){var c=a.options[a.selectedIndex].value;if(!c)return get_by_id("colorset_area").style.display="none",void setFixedPopupSize();var d=[];d.selected_widget=get_by_id("fo_widget").selected_widget.value,d.skin=c,d.colorset=b;var e=new Array("error","message","colorset_list");exec_xml("widget","procWidgetGetColorsetList",d,completeGetSkinColorset,e,d)}function completeGetSkinColorset(a,b,c){for(var d=jQuery("#fo_widget")[0].widget_colorset,e=d.options.length,f=c.colorset,g=0;e>g;g++)d.remove(0);if(a.colorset_list){for(var h=a.colorset_list.split("\n"),i=0,g=0;g0)&&h&&"style"!=g){jQuery('').val(h).appendTo("#fo_widget").get(0)}}var i=[];jQuery("input,select,textarea","#fo_widget").each(function(){i.push(this)});for(var j=0;j0?m=k[0].type:l=0;var g=k.name;switch(m){case"hidden":case"text":case"textarea":var n=selected_node.getAttribute(g);if(!n)continue;var o=unescape(n);k.value=o?o:n;break;case"checkbox":if(selected_node.getAttribute(g)){var n=selected_node.getAttribute(g).split(",");if(e[g].length){for(var p=0;p100&&(c.widget_width.value=100)}}function insertSelectedModule(a,b,c,d){var e=get_by_id("_"+a),f=get_by_id(a);f.value=b,e.value=d+" ("+c+")"}function insertSelectedModules(a,b,c,d){for(var e=jQuery("#_"+a)[0],f=0;f8&&(e.size=e.options.length),syncMid(a)}function midMoveUp(a){var b=get_by_id("_"+a);if(!(b.selectedIndex<0)){var c=b.selectedIndex;if(!(1>c)){var d=b.options[c],e=b.options[c-1],f=d.value,g=d.text;d.value=e.value,d.text=e.text,e.value=f,e.text=g,b.selectedIndex=c-1,syncMid(a)}}}function midMoveDown(a){var b=get_by_id("_"+a);if(!(b.selectedIndex<0)){var c=b.selectedIndex;if(c!=b.options.length-1){var d=b.options[c],e=b.options[c+1],f=d.value,g=d.text;d.value=e.value,d.text=e.text,e.value=f,e.text=g,b.selectedIndex=c+1,syncMid(a)}}}function midRemove(a){var b=get_by_id("_"+a);if(!(b.selectedIndex<0)){var c=b.selectedIndex;b.remove(c),c-=1,0>c&&(c=0),b.options.length&&(b.selectedIndex=c),syncMid(a)}}function syncMid(a){for(var b=jQuery("#_"+a)[0],c=[],d=0;dd)){for(i=0;i-1)return;b.remove(d),d-=1,0>d&&(d=0),b.options.length&&(b.selectedIndex=d),MultiOrderSet(a)}}function MultiOrderUp(a){var b=jQuery("[name='selected_"+a+"']").get(0);if(!(b.selectedIndex<0)){var c=b.selectedIndex;if(!(1>c)){var d=b.options[c],e=b.options[c-1],f=d.value,g=d.text;d.value=e.value,d.text=e.text,e.value=f,e.text=g,b.selectedIndex=c-1,MultiOrderSet(a)}}}function MultiOrderDown(a){var b=jQuery("[name='selected_"+a+"']").get(0);if(!(b.selectedIndex<0)){var c=b.selectedIndex;if(c!=b.options.length-1){var d=b.options[c],e=b.options[c+1],f=d.value,g=d.text;d.value=e.value,d.text=e.text,e.value=f,e.text=g,b.selectedIndex=c+1,MultiOrderSet(a)}}}function initMultiOrder(a){var b=jQuery("[name='selected_"+a+"']").get(0),c=jQuery("[name='init_"+a+"']").val(),d=jQuery("[name='"+a+"']").val();if(d){var e=d.split(",");for(i=0;i0){var f=new Option(e[i],e[i]);b.options.add(f)}}else{var g=c.split(",");for(i=0;i0){var f=new Option(g[i],g[i]);b.options.add(f)}}MultiOrderSet(a)}var selected_node=null,windowLoadEventLoader=[];jQuery(window).load(excuteWindowLoadEvent); \ No newline at end of file diff --git a/tests/logs/junit.xml b/tests/logs/junit.xml new file mode 100644 index 0000000000..e69de29bb2 From 6e4ba618cfd894976dbaefd983f7aa97d54e511f Mon Sep 17 00:00:00 2001 From: bnu Date: Sat, 25 Jan 2014 20:11:46 +0900 Subject: [PATCH 063/549] =?UTF-8?q?#245=20=E2=80=98rv=E2=80=99=EB=A5=BC=20?= =?UTF-8?q?=E2=80=98rv:=E2=80=99=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/file/file.controller.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/file/file.controller.php b/modules/file/file.controller.php index 6c4c38a8ed..1fc017e6b0 100644 --- a/modules/file/file.controller.php +++ b/modules/file/file.controller.php @@ -302,7 +302,7 @@ public function procFileOutput() $file_size = $file_obj->file_size; $filename = $file_obj->source_filename; - if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE || (strpos($_SERVER['HTTP_USER_AGENT'], 'Windows') !== FALSE && strpos($_SERVER['HTTP_USER_AGENT'], 'Trident') !== FALSE && strpos($_SERVER['HTTP_USER_AGENT'], 'rv') !== FALSE)) + if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE || (strpos($_SERVER['HTTP_USER_AGENT'], 'Windows') !== FALSE && strpos($_SERVER['HTTP_USER_AGENT'], 'Trident') !== FALSE && strpos($_SERVER['HTTP_USER_AGENT'], 'rv:') !== FALSE)) { $filename = rawurlencode($filename); $filename = preg_replace('/\./', '%2e', $filename, substr_count($filename, '.') - 1); From 4b45f211ad69a7eec9ca2532d61fca8ea85f425e Mon Sep 17 00:00:00 2001 From: akasima Date: Mon, 27 Jan 2014 02:31:22 +0900 Subject: [PATCH 064/549] =?UTF-8?q?NOISSUE=20=EC=84=A4=EC=B9=98=EC=8B=9C?= =?UTF-8?q?=20=EA=B0=92=EC=9D=B4=20=EC=97=86=EB=8A=94=20=EB=AC=B8=EC=A0=9C?= =?UTF-8?q?=EB=A1=9C=20=EC=98=A4=EB=A5=98=20=EB=B0=9C=EC=83=9D=EC=8B=9C?= =?UTF-8?q?=ED=82=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/module/module.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/module/module.class.php b/modules/module/module.class.php index 20172e1b72..5e3fcc1634 100644 --- a/modules/module/module.class.php +++ b/modules/module/module.class.php @@ -482,7 +482,7 @@ private function linkAllModuleInstancesToSitemap() $temp_menus = executeQueryArray('menu.getMenuByTitle', $args); $args = new stdClass(); - foreach($temp_menus->data as $menu) + if($temp_menus->data) foreach($temp_menus->data as $menu) { $args->current_menu_srl = $menu->menu_srl; $args->menu_srl = $moduleConfig->unlinked_menu_srl; From 60c5b17e70914d551910db7a550b881cd90e9f5f Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 27 Jan 2014 10:20:39 +0900 Subject: [PATCH 065/549] update authors list --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bf0d9ed52c..d82a721cea 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # XpressEngine ## Authors -adrian.vasile.constantin, aerofleet, @akasima, @andreimarin, araste, @bnu, bradly1, buffkj, c2joy, @canto, cbrghost, @ccata17, @ChanMyeong, chinaskyking, chschy, clench, @devjin, @dionirom, @dorami, @dragan-dan, ducduydaovn, duvent, @Eundong, @florinutz, @flourscent, @flyskyko, @ForPeople, FruitsHake, guny, @haneul, hankm2004, haojilin, heemin, ikko, johnsonshu, juanlee0, k10206, kagami, @khongchi, @largeden, liahona, lickawtl, mayoojin, mglclub, @misol, mmx900, mooo, mosmartin, @nagoon97, @ngleader, nicetwo, ovclas, @qw5414, @Rayyin, risapapa, rokmcssu, royallin, rubyeye, ryin005, sanghunjun, @sejin7940, @SMaker, @solidh, sspa3141, supershop, @taggon, @ucorina, unryong, venister, wdlee91, welcomeju, @YJSoft, ysnglee2000, zero +adrian.vasile.constantin, aerofleet, @akasima, @andreimarin, araste, @bnu, bradly1, buffkj, c2joy, @canto, cbrghost, @ccata17, @ChanMyeong, chinaskyking, chschy, clench, @devjin, @dionisrom, @dorami, @dragan-dan, ducduydaovn, duvent, @Eundong, @florinutz, @flourscent, @flyskyko, @ForPeople, FruitsHake, guny, @haneul, hankm2004, haojilin, heemin, ikko, johnsonshu, juanlee0, k10206, kagami, @khongchi, @lansi951, @largeden, liahona, lickawtl, mayoojin, mglclub, @misol, mmx900, mooo, mosmartin, @nagoon97, @ngleader, nicetwo, ovclas, risapapa, rokmcssu, royallin, rubyeye, ryin005, sanghunjun, @sejin7940, @SMaker, sspa3141, @stellar12, supershop, @taggon, @ucorina, unryong, venister, wdlee91, welcomeju, @YJSoft, ysnglee2000, zero ## License Copyright (C) NAVER From 6949fe2d4149c01c758be7ff164bca974626411d Mon Sep 17 00:00:00 2001 From: akasima Date: Mon, 27 Jan 2014 14:44:10 +0900 Subject: [PATCH 066/549] NOISSUE check rewrite module usable --- modules/install/install.controller.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/install/install.controller.php b/modules/install/install.controller.php index f2b1361fb5..5c2143df91 100644 --- a/modules/install/install.controller.php +++ b/modules/install/install.controller.php @@ -386,11 +386,11 @@ function checkRewriteUsable() { $hostname = $_SERVER['SERVER_NAME']; $port = $_SERVER['SERVER_PORT']; $query = "/JUST/CHECK/REWRITE/" . $checkFilePath; - $currentPath = str_replace( $_SERVER['DOCUMENT_ROOT'], "", realpath(_XE_PATH_) ); + $currentPath = str_replace($_SERVER['DOCUMENT_ROOT'], "", _XE_PATH_); if($currentPath != "") $query = $currentPath . $query; - $fp = @fsockopen($hostname, $port, $errno, $errstr); + $fp = @fsockopen($hostname, $port, $errno, $errstr, 5); if(!$fp) return false; fputs($fp, "GET {$query} HTTP/1.0\r\n"); From 5a6558dfdc542d87dd455b098e562689a0536eda Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 27 Jan 2014 15:20:50 +0900 Subject: [PATCH 067/549] =?UTF-8?q?NOISSUE=20windows=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=84=A4=EC=B9=98=20=EC=8B=9C=20=EB=AC=B8=EC=A0=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/file/FileHandler.class.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/classes/file/FileHandler.class.php b/classes/file/FileHandler.class.php index f055575239..eeda383dfb 100644 --- a/classes/file/FileHandler.class.php +++ b/classes/file/FileHandler.class.php @@ -230,9 +230,9 @@ function readDir($path, $filter = '', $to_lower = FALSE, $concat_prefix = FALSE) $path = self::getRealPath($path); $output = array(); - if(substr($path, -1) != DIRECTORY_SEPARATOR) + if(substr($path, -1) != '/') { - $path .= DIRECTORY_SEPARATOR; + $path .= '/'; } if(!is_dir($path)) @@ -263,7 +263,7 @@ function readDir($path, $filter = '', $to_lower = FALSE, $concat_prefix = FALSE) $file = sprintf('%s%s', str_replace(_XE_PATH_, '', $path), $file); } - $output[] = str_replace(array('/\\', '//'), DIRECTORY_SEPARATOR, $file); + $output[] = str_replace(array('/\\', '//'), '/', $file); } return $output; From d44a302ec9108922a2144e1af67b2837fbe38309 Mon Sep 17 00:00:00 2001 From: akasima Date: Mon, 27 Jan 2014 16:19:10 +0900 Subject: [PATCH 068/549] NOISSUE query error --- modules/member/queries/getMemberListWithinGroup.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/member/queries/getMemberListWithinGroup.xml b/modules/member/queries/getMemberListWithinGroup.xml index 2930d88bfd..517dbb9004 100644 --- a/modules/member/queries/getMemberListWithinGroup.xml +++ b/modules/member/queries/getMemberListWithinGroup.xml @@ -4,8 +4,9 @@ - + + From 5ce854e6e7d0276a77b8c0aae75558d966ed2fc4 Mon Sep 17 00:00:00 2001 From: akasima Date: Mon, 27 Jan 2014 16:30:32 +0900 Subject: [PATCH 069/549] NOISSUE admin member_list search error --- modules/member/member.admin.model.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/member/member.admin.model.php b/modules/member/member.admin.model.php index 4482a4f909..872c1ae214 100644 --- a/modules/member/member.admin.model.php +++ b/modules/member/member.admin.model.php @@ -89,7 +89,8 @@ function getMemberList() $args->s_regdate_less = substr(preg_replace("/[^0-9]/","",$search_keyword) . '00000000000000',0,14); break; case 'last_login' : - $args->s_last_login = $search_keyword; + $args->s_last_login = preg_replace("/[^0-9]/","",$search_keyword); + //$args->s_last_login = $search_keyword; break; case 'last_login_more' : $args->s_last_login_more = substr(preg_replace("/[^0-9]/","",$search_keyword) . '00000000000000',0,14); From c249d187a4d8f9afab5834812f602c35ef7c17c9 Mon Sep 17 00:00:00 2001 From: khongchi Date: Mon, 27 Jan 2014 16:50:22 +0900 Subject: [PATCH 070/549] =?UTF-8?q?#372=20=EC=84=A4=EC=B9=98=EC=8B=9C=20me?= =?UTF-8?q?nu=EB=AA=A8=EB=93=88=EC=9D=B4=20=EC=84=A4=EC=B9=98=EB=90=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EC=9D=80=20=EC=83=81=ED=83=9C=EC=97=90?= =?UTF-8?q?=EC=84=9C=20'unlinked'=EB=A9=94=EB=89=B4=20=EC=84=A4=EC=A0=95?= =?UTF-8?q?=EC=9D=B4=20=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/module/module.class.php | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/modules/module/module.class.php b/modules/module/module.class.php index 5e3fcc1634..ab1d556ad0 100644 --- a/modules/module/module.class.php +++ b/modules/module/module.class.php @@ -437,8 +437,11 @@ function moduleUpdate() } // menu(sitemap)에 링크되지 않은 모듈인스턴스 링크 - $output1 = $this->linkAllModuleInstancesToSitemap(); - if(!$output1->toBool()) return $output1; + if(Context::isInstalled()) + { + $output1 = $this->linkAllModuleInstancesToSitemap(); + if(!$output1->toBool()) return $output1; + } return new Object(0, 'success_updated'); } @@ -482,20 +485,23 @@ private function linkAllModuleInstancesToSitemap() $temp_menus = executeQueryArray('menu.getMenuByTitle', $args); $args = new stdClass(); - if($temp_menus->data) foreach($temp_menus->data as $menu) + if($temp_menus->toBool()) { - $args->current_menu_srl = $menu->menu_srl; - $args->menu_srl = $moduleConfig->unlinked_menu_srl; - $output3 = executeQuery('menu.updateMenuItems', $args); - - if($output3->toBool()) + foreach($temp_menus->data as $menu) { - // delete - $oMenuAdminController = getAdminController('menu'); - $oMenuAdminController->deleteMenu($menu->menu_srl); + $args->current_menu_srl = $menu->menu_srl; + $args->menu_srl = $moduleConfig->unlinked_menu_srl; + $output3 = executeQuery('menu.updateMenuItems', $args); + + if($output3->toBool()) + { + // delete + $oMenuAdminController = getAdminController('menu'); + $oMenuAdminController->deleteMenu($menu->menu_srl); + } } } - + // menu_srl이 지정되지 않은 mmodule instance가 있는지 검사 $args = new stdClass; $args->site_srl = 0; From 91323bcb25b4d3b85c8e9c09f8b5fd6941f48082 Mon Sep 17 00:00:00 2001 From: khongchi Date: Mon, 27 Jan 2014 16:57:47 +0900 Subject: [PATCH 071/549] =?UTF-8?q?#373=20'=EC=84=A4=EC=B9=98=EC=8B=9C=20?= =?UTF-8?q?=EB=B9=84=EB=B0=80=EB=B2=88=ED=98=B8=20=EB=B3=B4=EC=95=88?= =?UTF-8?q?=EC=88=98=EC=A4=80'=20=EC=84=A4=EC=A0=95=EC=9D=B4=20'=EB=B3=B4?= =?UTF-8?q?=ED=86=B5'=EC=9C=BC=EB=A1=9C=20=EC=A7=80=EC=A0=95=EB=90=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/member/member.class.php | 53 ++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/modules/member/member.class.php b/modules/member/member.class.php index 5eb5263302..2c092458ee 100644 --- a/modules/member/member.class.php +++ b/modules/member/member.class.php @@ -47,47 +47,52 @@ function moduleInstall() $oDB->addIndex("member_group","idx_site_title", array("site_srl","title"),true); $oModuleModel = getModel('module'); - $args = $oModuleModel->getModuleConfig('member'); + $config = $oModuleModel->getModuleConfig('member'); - $isNotInstall = empty($args); + if(empty($config)) + { + $isNotInstall = true; + $config = new stdClass; + } // Set the basic information - $args = new stdClass; - $args->enable_join = 'Y'; - $args->enable_openid = 'N'; - if(!$args->enable_auth_mail) $args->enable_auth_mail = 'N'; - if(!$args->image_name) $args->image_name = 'Y'; - if(!$args->image_mark) $args->image_mark = 'Y'; - if(!$args->profile_image) $args->profile_image = 'Y'; - if(!$args->image_name_max_width) $args->image_name_max_width = '90'; - if(!$args->image_name_max_height) $args->image_name_max_height = '20'; - if(!$args->image_mark_max_width) $args->image_mark_max_width = '20'; - if(!$args->image_mark_max_height) $args->image_mark_max_height = '20'; - if(!$args->profile_image_max_width) $args->profile_image_max_width = '80'; - if(!$args->profile_image_max_height) $args->profile_image_max_height = '80'; - if($args->group_image_mark!='Y') $args->group_image_mark = 'N'; - + $config->enable_join = 'Y'; + $config->enable_openid = 'N'; + if(!$config->enable_auth_mail) $config->enable_auth_mail = 'N'; + if(!$config->image_name) $config->image_name = 'Y'; + if(!$config->image_mark) $config->image_mark = 'Y'; + if(!$config->profile_image) $config->profile_image = 'Y'; + if(!$config->image_name_max_width) $config->image_name_max_width = '90'; + if(!$config->image_name_max_height) $config->image_name_max_height = '20'; + if(!$config->image_mark_max_width) $config->image_mark_max_width = '20'; + if(!$config->image_mark_max_height) $config->image_mark_max_height = '20'; + if(!$config->profile_image_max_width) $config->profile_image_max_width = '80'; + if(!$config->profile_image_max_height) $config->profile_image_max_height = '80'; + if($config->group_image_mark!='Y') $config->group_image_mark = 'N'; + if(!$config->password_strength) $config->password_strength = 'normal'; + global $lang; $oMemberModel = getModel('member'); // Create a member controller object $oMemberController = getController('member'); $oMemberAdminController = getAdminController('member'); - if(!$args->signupForm || !is_array($args->signupForm)) + if(!$config->signupForm || !is_array($config->signupForm)) { $identifier = $isNotInstall ? 'email_address' : 'user_id'; - $args->signupForm = $oMemberAdminController->createSignupForm($identifier); - $args->identifier = $identifier; + $config->signupForm = $oMemberAdminController->createSignupForm($identifier); + $config->identifier = $identifier; - $oModuleController->insertModuleConfig('member',$args); // Create Ruleset File FileHandler::makeDir('./files/ruleset'); - $oMemberAdminController->_createSignupRuleset($args->signupForm); - $oMemberAdminController->_createLoginRuleset($args->identifier); - $oMemberAdminController->_createFindAccountByQuestion($args->identifier); + $oMemberAdminController->_createSignupRuleset($config->signupForm); + $oMemberAdminController->_createLoginRuleset($config->identifier); + $oMemberAdminController->_createFindAccountByQuestion($config->identifier); } + + $oModuleController->insertModuleConfig('member',$config); $groups = $oMemberModel->getGroups(); if(!count($groups)) From 670509b54e5366d71b034fb005f82eb1ee03161d Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 27 Jan 2014 19:54:13 +0900 Subject: [PATCH 072/549] =?UTF-8?q?NOISSUE=20oEmbed=20=EC=95=A0=EB=93=9C?= =?UTF-8?q?=EC=98=A8=EC=9D=98=20=ED=99=94=EC=82=B4=ED=91=9C=20=ED=91=9C?= =?UTF-8?q?=EC=8B=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/oembed/jquery.oembed.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/oembed/jquery.oembed.css b/addons/oembed/jquery.oembed.css index e5ea4c3ab7..de0cfd511f 100755 --- a/addons/oembed/jquery.oembed.css +++ b/addons/oembed/jquery.oembed.css @@ -101,10 +101,11 @@ div.oembedall-githubrepos ul.oembedall-repo-stats li.oembedall-forks a { span.oembedall-closehide{ - background-color: #aaa; + background-color: #EEE; border-radius: 2px; cursor: pointer; margin-right: 3px; + padding: 0 3px; } div.oembedall-container { From 3377a3971781c66181e1f89221dea61dcffb910f Mon Sep 17 00:00:00 2001 From: canto87-mac Date: Mon, 27 Jan 2014 23:25:16 +0900 Subject: [PATCH 073/549] =?UTF-8?q?#368=20member=20=EB=AA=A8=EB=93=88?= =?UTF-8?q?=EC=9D=98=20=EC=9D=BC=EB=B3=B8=EC=96=B4=20=EB=B2=88=EC=97=AD(?= =?UTF-8?q?=20=EC=A1=B4=EA=B2=BD=EC=96=B4=20=ED=91=9C=ED=98=84=20)=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/member/lang/lang.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/member/lang/lang.xml b/modules/member/lang/lang.xml index bfd0e0d8dc..dbd2fdccc2 100644 --- a/modules/member/lang/lang.xml +++ b/modules/member/lang/lang.xml @@ -1708,12 +1708,12 @@ - + - + From 0f35c43ca46d481c2e5bd8dfd294dc4aacc189f7 Mon Sep 17 00:00:00 2001 From: khongchi Date: Tue, 28 Jan 2014 00:55:50 +0900 Subject: [PATCH 074/549] =?UTF-8?q?#377=20=EC=A0=88=EB=8C=80=EA=B2=BD?= =?UTF-8?q?=EB=A1=9C=EB=A1=9C=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=EC=97=85?= =?UTF-8?q?=EB=A1=9C=EB=93=9C=20=EC=9D=B4=EB=AF=B8=EC=A7=80=EA=B0=80=20?= =?UTF-8?q?=EC=B6=9C=EB=A0=A5=EB=90=98=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/layout/layout.admin.model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/layout/layout.admin.model.php b/modules/layout/layout.admin.model.php index a33caca1ee..195d7e5f6d 100644 --- a/modules/layout/layout.admin.model.php +++ b/modules/layout/layout.admin.model.php @@ -141,7 +141,7 @@ public function getLayoutAdminSetHTMLCSS() $layout_image_list = $oLayoutModel->getUserLayoutImageList($layout_info->layout_srl); Context::set('layout_image_list', $layout_image_list); - $layout_image_path = $oLayoutModel->getUserLayoutImagePath($layout_info->layout_srl); + $layout_image_path = sprintf("./files/faceOff/%s/images/", getNumberingPath($layout_info->layout_srl,3)); Context::set('layout_image_path', $layout_image_path); // Set widget list $oWidgetModel = getModel('widget'); From d4e706fe4023db1220ff13b34e826aac84461366 Mon Sep 17 00:00:00 2001 From: SMaker Date: Tue, 28 Jan 2014 10:09:53 +0900 Subject: [PATCH 075/549] =?UTF-8?q?PHP=205.4=EC=97=90=EC=84=9C=20=EB=B0=9C?= =?UTF-8?q?=EC=83=9D=ED=95=98=EB=8A=94=20=ED=98=B8=ED=99=98=EC=84=B1=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Warning: Creating default object from empty value in /home2/xxxxxxxx/public_html/modules/widget/widget.controller.php on line 675 --- modules/widget/widget.controller.php | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/widget/widget.controller.php b/modules/widget/widget.controller.php index 5fd8ecc5d7..2fd0fdeeb9 100644 --- a/modules/widget/widget.controller.php +++ b/modules/widget/widget.controller.php @@ -667,6 +667,7 @@ function compileWidgetStyle($widgetStyle,$widget,$widget_content_body, $args, $j $widgetstyle_info = $oWidgetModel->getWidgetStyleInfo($widgetStyle); if(!$widgetstyle_info) return $widget_content_body; + $widgetstyle_extra_var = new stdClass(); $widgetstyle_extra_var_key = get_object_vars($widgetstyle_info); if(count($widgetstyle_extra_var_key['extra_var'])) { From c97b01ea43a15128fc9fd1e16b10b924c76f09cb Mon Sep 17 00:00:00 2001 From: SMaker Date: Tue, 28 Jan 2014 10:24:21 +0900 Subject: [PATCH 076/549] =?UTF-8?q?member=20=EB=AA=A8=EB=93=88=20=EC=98=A4?= =?UTF-8?q?=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Warning: Creating default object from empty value in /home2/smaker24/xxx/modules/member/member.model.php on line 895 --- modules/member/member.model.php | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/member/member.model.php b/modules/member/member.model.php index 1f4cf42ec2..cb4a1156b4 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -892,6 +892,7 @@ function getImageName($member_srl) if(file_exists($image_name_file)) { list($width, $height, $type, $attrs) = getimagesize($image_name_file); + $info = new stdClass; $info->width = $width; $info->height = $height; $info->src = Context::getRequestUri().$image_name_file; From 20915fd6dcd3be87b9d1de7c3ead903b72ad9f3a Mon Sep 17 00:00:00 2001 From: SMaker Date: Tue, 28 Jan 2014 11:04:25 +0900 Subject: [PATCH 077/549] =?UTF-8?q?menu=20=EB=AA=A8=EB=93=88=20=EC=98=A4?= =?UTF-8?q?=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/menu/menu.mobile.php | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/menu/menu.mobile.php b/modules/menu/menu.mobile.php index 7e9bf7fb72..c57832185d 100644 --- a/modules/menu/menu.mobile.php +++ b/modules/menu/menu.mobile.php @@ -23,6 +23,7 @@ class menuMobile extends moduleObject function straightenMenu($menu_item, $depth) { if(!$menu_item['link']) return; + $obj = new stdClass; $obj->href = $menu_item['href']; $obj->depth = $depth; $obj->text = $menu_item['text']; From cc57c76866ed40c2b958d3533dccd6621efb07c8 Mon Sep 17 00:00:00 2001 From: SMaker Date: Tue, 28 Jan 2014 11:04:34 +0900 Subject: [PATCH 078/549] =?UTF-8?q?addon=20=EB=AA=A8=EB=93=88=20=EC=98=A4?= =?UTF-8?q?=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/addon/addon.admin.model.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/addon/addon.admin.model.php b/modules/addon/addon.admin.model.php index dfb923e754..5c700b2f48 100644 --- a/modules/addon/addon.admin.model.php +++ b/modules/addon/addon.admin.model.php @@ -256,6 +256,14 @@ function getAddonInfoXml($addon, $site_srl = 0, $gtype = 'site') foreach($extra_vars as $key => $val) { $obj = new stdClass(); + if(!$val) + { + $val = new stdClass(); + } + if(!$val->attrs) + { + $val->attrs = new stdClass(); + } if(!$val->attrs->type) { $val->attrs->type = 'text'; From 3d9f4557f640fe7af85bd475ef346f1f040ddb32 Mon Sep 17 00:00:00 2001 From: SMaker Date: Tue, 28 Jan 2014 11:07:35 +0900 Subject: [PATCH 079/549] =?UTF-8?q?install=20=EB=AA=A8=EB=93=88=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/install/install.admin.controller.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/install/install.admin.controller.php b/modules/install/install.admin.controller.php index 6757aba78b..8da431aea7 100644 --- a/modules/install/install.admin.controller.php +++ b/modules/install/install.admin.controller.php @@ -196,7 +196,7 @@ function procInstallAdminSaveFTPInfo() $ftp_info->ftp_password = Context::get('ftp_password'); } - $buff = ' $val) { if(!$val) continue; From 6731d13691c119088ec2376e3c0cefa5fe7bac89 Mon Sep 17 00:00:00 2001 From: khongchi Date: Tue, 28 Jan 2014 11:07:36 +0900 Subject: [PATCH 080/549] =?UTF-8?q?#135=20=ED=8A=B8=EB=9E=99=EB=B0=B1?= =?UTF-8?q?=EB=AA=A8=EB=93=88=20=EA=B4=80=EB=A0=A8=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/admin/admin.class.php | 38 +++++++++++++++-------------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/modules/admin/admin.class.php b/modules/admin/admin.class.php index 0bbb60e9ab..bb24db1e8c 100644 --- a/modules/admin/admin.class.php +++ b/modules/admin/admin.class.php @@ -182,74 +182,70 @@ public function createXeAdminMenu() 'subMenu' => array('comment'), ), 4 => array( - 'module' => 'trackback', - 'subMenu' => array('trackback'), - ), - 5 => array( 'module' => 'file', 'subMenu' => array('file'), ), - 6 => array( + 5 => array( 'module' => 'poll', 'subMenu' => array('poll'), ), - 7 => array( + 6 => array( 'module' => 'rss', 'subMenu' => array('rss'), ), - 8 => array( + 7 => array( 'module' => 'module', 'subMenu' => array('multilingual'), ), - 9 => array( + 8 => array( 'module' => 'importer', 'subMenu' => array('importer'), ), - 10 => array( + 9 => array( 'module' => 'trash', 'subMenu' => array('trash'), ), - 11 => array( + 10 => array( 'module' => 'autoinstall', 'subMenu' => array('easyInstall'), ), - 12 => array( + 11 => array( 'module' => 'layout', 'subMenu' => array('installedLayout'), ), - 13 => array( + 12 => array( 'module' => 'module', 'subMenu' => array('installedModule'), ), - 14 => array( + 13 => array( 'module' => 'widget', 'subMenu' => array('installedWidget'), ), - 15 => array( + 14 => array( 'module' => 'addon', 'subMenu' => array('installedAddon'), ), - 16 => array( + 15 => array( 'module' => 'editor', 'subMenu' => array('editor'), ), - 17 => array( + 16 => array( 'module' => 'spamfilter', 'subMenu' => array('spamFilter'), ), - 18 => array( + 17 => array( 'module' => 'admin', 'subMenu' => array('adminConfigurationGeneral', 'adminConfigurationFtp', 'adminMenuSetup'), ), - 19 => array( + 18 => array( 'module' => 'file', 'subMenu' => array('fileUpload'), ), - 20 => array( + 19 => array( 'module' => 'module', 'subMenu' => array('filebox'), ), - 21 => array( + 20 => array( 'module' => 'point', 'subMenu' => array('point') ), @@ -319,7 +315,6 @@ function _getGnbKey($menuName) break; case 'document': case 'comment': - case 'trackback': case 'file': case 'poll': case 'rss': @@ -368,7 +363,6 @@ function _getOldGnbKey($menuName) break; case 'document': case 'comment': - case 'trackback': case 'file': case 'poll': case 'rss': From 78914cc5dcb8b0219d69e1f5f9c4c81bfe968230 Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 28 Jan 2014 12:52:13 +0900 Subject: [PATCH 081/549] NOISSUE procInsertMember() upload images --- modules/member/member.controller.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 5f136bbe2e..ce068301ca 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -321,6 +321,24 @@ function procMemberInsert() if(!$output->toBool()) return $output; // insert ProfileImage, ImageName, ImageMark + $profile_image = $_FILES['profile_image']; + if(is_uploaded_file($profile_image['tmp_name'])) + { + $this->insertProfileImage($args->member_srl, $profile_image['tmp_name']); + } + + $image_mark = $_FILES['image_mark']; + if(is_uploaded_file($image_mark['tmp_name'])) + { + $this->insertImageMark($args->member_srl, $image_mark['tmp_name']); + } + + $image_name = $_FILES['image_name']; + if(is_uploaded_file($image_name['tmp_name'])) + { + $this->insertImageName($args->member_srl, $image_name['tmp_name']); + } + // If a virtual site, join the site $site_module_info = Context::get('site_module_info'); if($site_module_info->site_srl > 0) From 10b16077d13fd52d9ebd57dc057abf25ea2e549b Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 28 Jan 2014 12:56:56 +0900 Subject: [PATCH 082/549] NOISSUE procInsertMember() upload images --- modules/member/member.controller.php | 599 +++++++-------------------- 1 file changed, 151 insertions(+), 448 deletions(-) diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 55321d6d92..ce068301ca 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -1,8 +1,7 @@ */ /** * @class memberController - * @author NAVER (developers@xpressengine.com) + * @author NHN (developers@xpressengine.com) * Controller class of member module */ class memberController extends member @@ -55,7 +54,7 @@ function procMemberLogin($user_id = null, $password = null, $keep_signed = null) $output = $this->doLogin($user_id, $password, $keep_signed=='Y'?true:false); if (!$output->toBool()) return $output; - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $config = $oModuleModel->getModuleConfig('member'); // Check change_password_date @@ -64,7 +63,7 @@ function procMemberLogin($user_id = null, $password = null, $keep_signed = null) // Check if change_password_date is set if($limit_date > 0) { - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); if($this->memberInfo->change_password_date < date ('YmdHis', strtotime ('-' . $limit_date . ' day'))) { $this->setRedirectUrl(getNotEncodedUrl('','vid',Context::get('vid'),'mid',Context::get('mid'),'act','dispMemberModifyPassword')); @@ -102,19 +101,17 @@ function procMemberLogout() $output = new Object(); - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $config = $oModuleModel->getModuleConfig('member'); if($config->after_logout_url) $output->redirect_url = $config->after_logout_url; - $this->_clearMemberCache($logged_info->member_srl); - return $output; } /** * Scrap document - * + * * @return void|Object (void : success, Object : fail) */ function procMemberScrapDocument() @@ -127,7 +124,7 @@ function procMemberScrapDocument() if(!$document_srl) $document_srl = (int)Context::get('target_srl'); if(!$document_srl) return new Object(-1,'msg_invalid_request'); // Get document - $oDocumentModel = getModel('document'); + $oDocumentModel = &getModel('document'); $oDocument = $oDocumentModel->getDocument($document_srl); // Variables $args = new stdClass(); @@ -151,7 +148,7 @@ function procMemberScrapDocument() /** * Delete a scrap - * + * * @return void|Object (void : success, Object : fail) */ function procMemberDeleteScrap() @@ -163,7 +160,6 @@ function procMemberDeleteScrap() $document_srl = (int)Context::get('document_srl'); if(!$document_srl) return new Object(-1,'msg_invalid_request'); // Variables - $args = new stdClass; $args->member_srl = $logged_info->member_srl; $args->document_srl = $document_srl; return executeQuery('member.deleteScrapDocument', $args); @@ -181,7 +177,7 @@ function procMemberSaveDocument() /** * Delete the post - * + * * @return void|Object (void : success, Object : fail) */ function procMemberDeleteSavedDocument() @@ -193,13 +189,13 @@ function procMemberDeleteSavedDocument() $document_srl = (int)Context::get('document_srl'); if(!$document_srl) return new Object(-1,'msg_invalid_request'); // Variables - $oDocumentController = getController('document'); + $oDocumentController = &getController('document'); $oDocumentController->deleteDocument($document_srl, true); } /** * Check values when member joining - * + * * @return void|Object (void : success, Object : fail) */ function procMemberCheckValue() @@ -208,7 +204,7 @@ function procMemberCheckValue() $value = Context::get('value'); if(!$value) return; - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); // Check if logged-in $logged_info = Context::get('logged_info'); @@ -243,14 +239,14 @@ function procMemberCheckValue() /** * Join Membership - * + * * @return void|Object (void : success, Object : fail) */ function procMemberInsert() { if (Context::getRequestMethod () == "GET") return new Object (-1, "msg_invalid_request"); $oMemberModel = &getModel ('member'); - $config = $oMemberModel->getMemberConfig(); + $config = $oMemberModel->getMemberConfig (); // call a trigger (before) $trigger_output = ModuleHandler::triggerCall ('member.procMemberInsert', 'before', $config); @@ -272,8 +268,6 @@ function procMemberInsert() } } } - - $args = new stdClass; foreach($getVars as $val) { $args->{$val} = Context::get($val); @@ -288,13 +282,6 @@ function procMemberInsert() if($args->password1) $args->password = $args->password1; - // check password strength - if(!$oMemberModel->checkPasswordStrength($args->password, $config->password_strength)) - { - $message = Context::getLang('about_password_strength'); - return new Object(-1, $message[$config->password_strength]); - } - // Remove some unnecessary variables from all the vars $all_args = Context::getRequestVars(); unset($all_args->module); @@ -334,6 +321,24 @@ function procMemberInsert() if(!$output->toBool()) return $output; // insert ProfileImage, ImageName, ImageMark + $profile_image = $_FILES['profile_image']; + if(is_uploaded_file($profile_image['tmp_name'])) + { + $this->insertProfileImage($args->member_srl, $profile_image['tmp_name']); + } + + $image_mark = $_FILES['image_mark']; + if(is_uploaded_file($image_mark['tmp_name'])) + { + $this->insertImageMark($args->member_srl, $image_mark['tmp_name']); + } + + $image_name = $_FILES['image_name']; + if(is_uploaded_file($image_name['tmp_name'])) + { + $this->insertImageName($args->member_srl, $image_name['tmp_name']); + } + // If a virtual site, join the site $site_module_info = Context::get('site_module_info'); if($site_module_info->site_srl > 0) @@ -389,8 +394,6 @@ function procMemberInsert() } } - $this->_clearMemberCache($args->member_srl); - $this->setRedirectUrl($returnUrl); } @@ -413,7 +416,7 @@ function procMemberModifyInfoBefore() return $this->stop('msg_invalid_request'); } - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); if(!$this->memberInfo->password) { @@ -429,16 +432,16 @@ function procMemberModifyInfoBefore() $_SESSION['rechecked_password_step'] = 'VALIDATE_PASSWORD'; - $redirectUrl = getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispMemberModifyInfo'); + $redirectUrl = getNotEncodedUrl('', 'act', 'dispMemberModifyInfo'); $this->setRedirectUrl($redirectUrl); } /** * Edit member profile - * + * * @return void|Object (void : success, Object : fail) */ - function procMemberModifyInfo() + function procMemberModifyInfo() { if(!Context::get('is_logged')) { @@ -465,8 +468,6 @@ function procMemberModifyInfo() } } } - - $args = new stdClass; foreach($getVars as $val) { $args->{$val} = Context::get($val); @@ -534,12 +535,8 @@ function procMemberModifyInfo() // Save Signature $signature = Context::get('signature'); $this->putSignature($args->member_srl, $signature); - // Get user_id information $this->memberInfo = $oMemberModel->getMemberInfoByMemberSrl($args->member_srl); - - $this->_clearMemberCache($args->member_srl); - // Call a trigger after successfully log-in (after) $trigger_output = ModuleHandler::triggerCall('member.procMemberModifyInfo', 'after', $this->memberInfo); if(!$trigger_output->toBool()) return $trigger_output; @@ -549,15 +546,13 @@ function procMemberModifyInfo() $this->add('member_srl', $args->member_srl); $this->setMessage('success_updated'); - $this->_clearMemberCache($args->member_srl); - $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispMemberInfo'); $this->setRedirectUrl($returnUrl); } /** * Change the user password - * + * * @return void|Object (void : success, Object : fail) */ function procMemberModifyPassword() @@ -570,10 +565,9 @@ function procMemberModifyPassword() $logged_info = Context::get('logged_info'); $member_srl = $logged_info->member_srl; // Create a member model object - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); // Get information of member_srl $columnList = array('member_srl', 'password'); - $member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl, 0, $columnList); // Verify the cuttent password if(!$oMemberModel->isValidPassword($member_info->password, $current_password, $member_srl)) return new Object(-1, 'invalid_password'); @@ -582,7 +576,6 @@ function procMemberModifyPassword() if($current_password == $password) return new Object(-1, 'invalid_new_password'); // Execute insert or update depending on the value of member_srl - $args = new stdClass; $args->member_srl = $member_srl; $args->password = $password; $output = $this->updateMemberPassword($args); @@ -597,7 +590,7 @@ function procMemberModifyPassword() /** * Membership withdrawal - * + * * @return void|Object (void : success, Object : fail) */ function procMemberLeave() @@ -609,7 +602,7 @@ function procMemberLeave() $logged_info = Context::get('logged_info'); $member_srl = $logged_info->member_srl; // Create a member model object - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); // Get information of member_srl if(!$this->memberInfo->password) { @@ -627,15 +620,13 @@ function procMemberLeave() // Return success message $this->setMessage('success_leaved'); - $this->_clearMemberCache($member_srl); - $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', ''); $this->setRedirectUrl($returnUrl); } /** * Add a profile image - * + * * @return void|Object (void : success, Object : fail) */ function procMemberInsertProfileImage() @@ -650,7 +641,7 @@ function procMemberInsertProfileImage() $logged_info = Context::get('logged_info'); if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_srl) return $this->stop('msg_not_uploaded_profile_image'); // Return if member module is set not to use an image name or the user is not an administrator ; - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $config = $oModuleModel->getModuleConfig('member'); if($logged_info->is_admin != 'Y' && $config->profile_image != 'Y') return $this->stop('msg_not_uploaded_profile_image'); @@ -664,7 +655,7 @@ function procMemberInsertProfileImage() /** * Insert a profile image - * + * * @param int $member_srl * @param object $target_file * @@ -672,11 +663,7 @@ function procMemberInsertProfileImage() */ function insertProfileImage($member_srl, $target_file) { - - // Check uploaded file - if(!checkUploadedFile($target_file)) return; - - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $config = $oModuleModel->getModuleConfig('member'); // Get an image size $max_width = $config->profile_image_max_width; @@ -700,7 +687,7 @@ function insertProfileImage($member_srl, $target_file) /** * Add an image name - * + * * @return void|Object (void : success, Object : fail) */ function procMemberInsertImageName() @@ -715,7 +702,7 @@ function procMemberInsertImageName() $logged_info = Context::get('logged_info'); if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_srl) return $this->stop('msg_not_uploaded_image_name'); // Return if member module is set not to use an image name or the user is not an administrator ; - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $config = $oModuleModel->getModuleConfig('member'); if($logged_info->is_admin != 'Y' && $config->image_name != 'Y') return $this->stop('msg_not_uploaded_image_name'); @@ -729,7 +716,7 @@ function procMemberInsertImageName() /** * Insert a image name - * + * * @param int $member_srl * @param object $target_file * @@ -737,10 +724,7 @@ function procMemberInsertImageName() */ function insertImageName($member_srl, $target_file) { - // Check uploaded file - if(!checkUploadedFile($target_file)) return; - - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $config = $oModuleModel->getModuleConfig('member'); // Get an image size $max_width = $config->image_name_max_width; @@ -776,7 +760,7 @@ function procMemberDeleteProfileImage($_memberSrl = 0) if($logged_info && ($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl)) { - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); $profile_image = $oMemberModel->getProfileImage($member_srl); FileHandler::removeFile($profile_image->file); } @@ -798,9 +782,9 @@ function procMemberDeleteImageName($_memberSrl = 0) $logged_info = Context::get('logged_info'); - if($logged_info && ($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl)) + if($logged_info && ($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl)) { - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); $image_name = $oMemberModel->getImageName($member_srl); FileHandler::removeFile($image_name->file); } @@ -824,7 +808,7 @@ function procMemberInsertImageMark() $logged_info = Context::get('logged_info'); if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_srl) return $this->stop('msg_not_uploaded_image_mark'); // Membership in the images mark the module using the ban was set by an administrator or return; - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $config = $oModuleModel->getModuleConfig('member'); if($logged_info->is_admin != 'Y' && $config->image_mark != 'Y') return $this->stop('msg_not_uploaded_image_mark'); @@ -838,7 +822,7 @@ function procMemberInsertImageMark() /** * Insert a image mark - * + * * @param int $member_srl * @param object $target_file * @@ -846,10 +830,7 @@ function procMemberInsertImageMark() */ function insertImageMark($member_srl, $target_file) { - // Check uploaded file - if(!checkUploadedFile($target_file)) return; - - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $config = $oModuleModel->getModuleConfig('member'); // Get an image size $max_width = $config->image_mark_max_width; @@ -873,7 +854,7 @@ function insertImageMark($member_srl, $target_file) * * @return Object */ - function procMemberDeleteImageMark($_memberSrl = 0) + function procMemberDeleteImageMark($_memberSrl = 0) { $member_srl = ($_memberSrl) ? $_memberSrl : Context::get('member_srl'); if(!$member_srl) @@ -883,9 +864,9 @@ function procMemberDeleteImageMark($_memberSrl = 0) $logged_info = Context::get('logged_info'); - if($logged_info && ($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl)) + if($logged_info && ($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl)) { - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); $image_mark = $oMemberModel->getImageMark($member_srl); FileHandler::removeFile($image_mark->file); } @@ -902,26 +883,21 @@ function procMemberFindAccount() $email_address = Context::get('email_address'); if(!$email_address) return new Object(-1, 'msg_invalid_request'); - $oMemberModel = getModel('member'); - $oModuleModel = getModel('module'); - + $oMemberModel = &getModel('member'); + $oModuleModel = &getModel('module'); // Check if a member having the same email address exists $member_srl = $oMemberModel->getMemberSrlByEmailAddress($email_address); if(!$member_srl) return new Object(-1, 'msg_email_not_exists'); - // Get information of the member $columnList = array('denied', 'member_srl', 'user_id', 'user_name', 'email_address', 'nick_name'); $member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl, 0, $columnList); - // Check if possible to find member's ID and password if($member_info->denied == 'Y') { - $chk_args = new stdClass; $chk_args->member_srl = $member_info->member_srl; $output = executeQuery('member.chkAuthMail', $chk_args); if($output->toBool() && $output->data->count != '0') return new Object(-1, 'msg_user_not_confirmed'); } - // Insert data into the authentication DB $args = new stdClass(); $args->user_id = $member_info->user_id; @@ -936,7 +912,6 @@ function procMemberFindAccount() Context::set('auth_args', $args); $member_config = $oModuleModel->getModuleConfig('member'); - $memberInfo = array(); global $lang; if(is_array($member_config->signupForm)) { @@ -972,7 +947,7 @@ function procMemberFindAccount() $oTemplate = &TemplateHandler::getInstance(); $content = $oTemplate->compile($tpl_path, 'find_member_account_mail'); // Get information of the Webmaster - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $member_config = $oModuleModel->getModuleConfig('member'); // Send a mail $oMail = new Mail(); @@ -985,8 +960,8 @@ function procMemberFindAccount() $msg = sprintf(Context::getLang('msg_auth_mail_sent'), $member_info->email_address); if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) { - $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispMemberFindAccount'); - $this->setRedirectUrl($returnUrl); + $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', ''); + $this->setRedirectUrl($returnUrl.'&user_id='.$user_id); } return new Object(0,$msg); } @@ -998,7 +973,7 @@ function procMemberFindAccount() */ function procMemberFindAccountByQuestion() { - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); $config = $oMemberModel->getMemberConfig(); $email_address = Context::get('email_address'); @@ -1008,7 +983,7 @@ function procMemberFindAccountByQuestion() if(($config->identifier == 'user_id' && !$user_id) || !$email_address || !$find_account_question || !$find_account_answer) return new Object(-1, 'msg_invalid_request'); - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); // Check if a member having the same email address exists $member_srl = $oMemberModel->getMemberSrlByEmailAddress($email_address); if(!$member_srl) return new Object(-1, 'msg_email_not_exists'); @@ -1027,7 +1002,6 @@ function procMemberFindAccountByQuestion() } // Update to a temporary password and set change_password_date to 1 - $args = new stdClass; $args->member_srl = $member_srl; list($usec, $sec) = explode(" ", microtime()); $temp_password = substr(md5($user_id . $member_info->find_account_answer. $usec . $sec),0,15); @@ -1058,7 +1032,6 @@ function procMemberAuthAccount() $auth_key = Context::get('auth_key'); if(!$member_srl || !$auth_key) return $this->stop('msg_invalid_request'); // Test logs for finding password by user_id and authkey - $args = new stdClass; $args->member_srl = $member_srl; $args->auth_key = $auth_key; $output = executeQuery('member.getAuthMail', $args); @@ -1081,9 +1054,6 @@ function procMemberAuthAccount() if(!$output->toBool()) return $this->stop($output->getMessage()); // Remove all values having the member_srl from authentication table executeQuery('member.deleteAuthMail',$args); - - $this->_clearMemberCache($args->member_srl); - // Notify the result Context::set('is_register', $is_register); $this->setTemplatePath($this->module_path.'tpl'); @@ -1101,19 +1071,17 @@ function procMemberUpdateAuthMail() $member_srl = Context::get('member_srl'); if(!$member_srl) return new Object(-1, 'msg_invalid_request'); - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); // Get information of the member $member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl); // Check if the member is set to allow a request to re-send an authentication mail if($member_info->denied != 'Y') return new Object(-1, 'msg_invalid_request'); - $chk_args = new stdClass; $chk_args->member_srl = $member_srl; $output = executeQuery('member.chkAuthMail', $chk_args); if($output->toBool() && $output->data->count == '0') return new Object(-1, 'msg_invalid_request'); // Insert data into the authentication DB - $auth_args = new stdClass; $auth_args->member_srl = $member_srl; $auth_args->auth_key = md5(rand(0, 999999)); @@ -1127,7 +1095,7 @@ function procMemberUpdateAuthMail() Context::set('auth_args', $auth_args); Context::set('memberInfo', $member_info); - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $member_config = $oModuleModel->getModuleConfig('member'); if(!$member_config->skin) $member_config->skin = "default"; if(!$member_config->colorset) $member_config->colorset = "white"; @@ -1143,7 +1111,7 @@ function procMemberUpdateAuthMail() $oTemplate = &TemplateHandler::getInstance(); $content = $oTemplate->compile($tpl_path, 'confirm_member_account_mail'); // Get information of the Webmaster - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $member_config = $oModuleModel->getModuleConfig('member'); // Send a mail $oMail = new Mail(); @@ -1166,33 +1134,29 @@ function procMemberResendAuthMail() { // Get an email_address $email_address = Context::get('email_address'); - if(!$email_address) return new Object(-1, 'msg_invalid_request'); + if(!$email_address) return $this->stop('msg_invalid_request'); // Log test by using email_address - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); - $args = new stdClass; $args->email_address = $email_address; $memberSrl = $oMemberModel->getMemberSrlByEmailAddress($email_address); - if(!$memberSrl) return new Object(-1, 'msg_not_exists_member'); + if(!$memberSrl) return $this->stop('msg_not_exists_member'); $columnList = array('member_srl', 'user_id', 'user_name', 'nick_name', 'email_address'); $memberInfo = $oMemberModel->getMemberInfoByMemberSrl($memberSrl, 0, $columnList); // Check if a authentication mail has been sent previously - $chk_args = new stdClass; $chk_args->member_srl = $memberInfo->member_srl; $output = executeQuery('member.chkAuthMail', $chk_args); if($output->toBool() && $output->data->count == '0') return new Object(-1, 'msg_invalid_request'); - $auth_args = new stdClass; $auth_args->member_srl = $memberInfo->member_srl; $output = executeQueryArray('member.getAuthMailInfo', $auth_args); if(!$output->data || !$output->data[0]->auth_key) return new Object(-1, 'msg_invalid_request'); $auth_info = $output->data[0]; - // Get content of the email to send a member Context::set('memberInfo', $memberInfo); - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $member_config = $oModuleModel->getModuleConfig('member'); if(!$member_config->skin) $member_config->skin = "default"; if(!$member_config->colorset) $member_config->colorset = "white"; @@ -1208,7 +1172,7 @@ function procMemberResendAuthMail() $oTemplate = &TemplateHandler::getInstance(); $content = $oTemplate->compile($tpl_path, 'confirm_member_account_mail'); // Get information of the Webmaster - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $member_config = $oModuleModel->getModuleConfig('member'); // Send a mail $oMail = new Mail(); @@ -1242,7 +1206,7 @@ function procMemberResetAuthMail() return $this->stop('msg_invalid_request'); } - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); $member_srl = $oMemberModel->getMemberSrlByEmailAddress($newEmail); if($member_srl) { @@ -1250,11 +1214,10 @@ function procMemberResetAuthMail() } // remove all key by member_srl - $args = new stdClass; $args->member_srl = $memberInfo->member_srl; $output = executeQuery('member.deleteAuthMail', $args); - if(!$output->toBool()) + if(!$output->toBool()) { return $output; } @@ -1264,16 +1227,12 @@ function procMemberResetAuthMail() list($args->email_id, $args->email_host) = explode('@', $newEmail); $output = executeQuery('member.updateMemberEmailAddress', $args); - $this->_clearMemberCache($args->member_srl); - if(!$output->toBool()) + if(!$output->toBool()) { return $this->stop($output->getMessage()); } - $this->_clearMemberCache($args->member_srl); - // generate new auth key - $auth_args = new stdClass; $auth_args->user_id = $memberInfo->user_id; $auth_args->member_srl = $memberInfo->member_srl; $auth_args->new_password = $memberInfo->password; @@ -1297,7 +1256,7 @@ function procMemberResetAuthMail() function _sendAuthMail($auth_args, $member_info) { - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); $member_config = $oMemberModel->getMemberConfig(); // Get content of the email to send a member Context::set('auth_args', $auth_args); @@ -1358,7 +1317,7 @@ function procMemberSiteSignUp() $logged_info = Context::get('logged_info'); if(!$site_module_info->site_srl || !Context::get('is_logged') || count($logged_info->group_srl_list) ) return new Object(-1,'msg_invalid_request'); - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); $columnList = array('site_srl', 'group_srl', 'title'); $default_group = $oMemberModel->getDefaultGroup($site_module_info->site_srl, $columnList); $this->addMemberToGroup($logged_info->member_srl, $default_group->group_srl, $site_module_info->site_srl); @@ -1377,13 +1336,11 @@ function procMemberSiteLeave() $logged_info = Context::get('logged_info'); if(!$site_module_info->site_srl || !Context::get('is_logged') || count($logged_info->group_srl_list) ) return new Object(-1,'msg_invalid_request'); - $args = new stdClass; $args->site_srl= $site_module_info->site_srl; $args->member_srl = $logged_info->member_srl; $output = executeQuery('member.deleteMembersGroup', $args); if(!$output->toBool()) return $output; $this->setMessage('success_deleted'); - $this->_clearMemberCache($args->member_srl); } /** @@ -1411,7 +1368,7 @@ function setMemberConfig($args) $agreement = trim($args->agreement); unset($args->agreement); - $oModuleController = getController('module'); + $oModuleController = &getController('module'); $output = $oModuleController->insertModuleConfig('member',$args); if(!$output->toBool()) return $output; @@ -1467,18 +1424,27 @@ function delSignature($member_srl) * * @return Object */ - function addMemberToGroup($member_srl, $group_srl, $site_srl=0) + function addMemberToGroup($member_srl,$group_srl,$site_srl=0) { $args = new stdClass(); $args->member_srl = $member_srl; $args->group_srl = $group_srl; if($site_srl) $args->site_srl = $site_srl; + $oModel =& getModel('member'); + $groups = $oModel->getMemberGroups($member_srl, $site_srl, true); + if($groups[$group_srl]) return new Object(); + // Add $output = executeQuery('member.addMemberToGroup',$args); $output2 = ModuleHandler::triggerCall('member.addMemberToGroup', 'after', $args); - $this->_clearMemberCache($member_srl); + $oCacheHandler = &CacheHandler::getInstance('object'); + if($oCacheHandler->isSupport()) + { + $cache_key = 'object_member_groups:'.$member_srl.'_'.$site_srl; + $oCacheHandler->delete($cache_key); + } return $output; } @@ -1493,7 +1459,6 @@ function addMemberToGroup($member_srl, $group_srl, $site_srl=0) */ function replaceMemberGroup($args) { - $obj = new stdClass; $obj->site_srl = $args->site_srl; $obj->member_srl = implode(',',$args->member_srl); @@ -1510,15 +1475,19 @@ function replaceMemberGroup($args) $inserted_members[$val] = true; unset($obj); - $obj = new stdClass; $obj->member_srl = $val; $obj->group_srl = $args->group_srl; $obj->site_srl = $args->site_srl; $obj->regdate = $date[$obj->member_srl]; $output = executeQuery('member.addMemberToGroup', $obj); if(!$output->toBool()) return $output; + } - $this->_clearMemberCache($obj->member_srl); + $oCacheHandler = &CacheHandler::getInstance('object'); + if($oCacheHandler->isSupport()) + { + $cache_key = 'object_member_groups:'.$member_srl.'_'.$site_srl; + $oCacheHandler->delete($cache_key); } return new Object(); @@ -1533,18 +1502,17 @@ function replaceMemberGroup($args) function doAutologin() { // Get a key value of auto log-in - $args = new stdClass; $args->autologin_key = $_COOKIE['xeak']; // Get information of the key $output = executeQuery('member.getAutologin', $args); // If no information exists, delete a cookie if(!$output->toBool() || !$output->data) { - setCookie('xeak',null,$_SERVER['REQUEST_TIME']+60*60*24*365, '/'); + setCookie('xeak',null,time()+60*60*24*365, '/'); return; } - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); $config = $oMemberModel->getMemberConfig(); $user_id = ($config->identifier == 'user_id') ? $output->data->user_id : $output->data->email_address; @@ -1552,7 +1520,7 @@ function doAutologin() if(!$user_id || !$password) { - setCookie('xeak',null,$_SERVER['REQUEST_TIME']+60*60*24*365, '/'); + setCookie('xeak',null,time()+60*60*24*365, '/'); return; } @@ -1564,14 +1532,14 @@ function doAutologin() if($key == $args->autologin_key) { // Check change_password_date - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $member_config = $oModuleModel->getModuleConfig('member'); $limit_date = $member_config->change_password_date; // Check if change_password_date is set if($limit_date > 0) { - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); $columnList = array('member_srl', 'change_password_date'); if($config->identifier == 'user_id') @@ -1601,7 +1569,7 @@ function doAutologin() else { executeQuery('member.deleteAutologin', $args); - setCookie('xeak',null,$_SERVER['REQUEST_TIME']+60*60*24*365, '/'); + setCookie('xeak',null,time()+60*60*24*365, '/'); } } @@ -1625,7 +1593,7 @@ function doLogin($user_id, $password = '', $keep_signed = false) $trigger_output = ModuleHandler::triggerCall('member.doLogin', 'before', $trigger_obj); if(!$trigger_output->toBool()) return $trigger_output; // Create a member model object - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); // check IP access count. $config = $oMemberModel->getMemberConfig(); @@ -1654,7 +1622,7 @@ function doLogin($user_id, $password = '', $keep_signed = false) if($errorCount >= $config->max_error_count) { $last_update = strtotime($output->data->last_update); - $term = intval($_SERVER['REQUEST_TIME']-$last_update); + $term = intval(time()-$last_update); if($term < $config->max_error_count_time) { $term = $config->max_error_count_time - $term; @@ -1679,11 +1647,11 @@ function doLogin($user_id, $password = '', $keep_signed = false) } // If denied == 'Y', notify - if($this->memberInfo->denied == 'Y') + if($this->memberInfo->denied == 'Y') { $args->member_srl = $this->memberInfo->member_srl; $output = executeQuery('member.chkAuthMail', $args); - if ($output->toBool() && $output->data->count != '0') + if ($output->toBool() && $output->data->count != '0') { $_SESSION['auth_member_srl'] = $this->memberInfo->member_srl; $redirectUrl = getUrl('', 'act', 'dispMemberResendAuthMail'); @@ -1697,8 +1665,6 @@ function doLogin($user_id, $password = '', $keep_signed = false) $args->member_srl = $this->memberInfo->member_srl; $output = executeQuery('member.updateLastLogin', $args); - $this->_clearMemberCache($args->member_srl); - // Check if there is recoding table. $oDB = &DB::getInstance(); if($oDB->isTableExists('member_count_history') && $config->enable_login_fail_report != 'N') @@ -1720,7 +1686,7 @@ function doLogin($user_id, $password = '', $keep_signed = false) $content = sprintf(Context::getLang('login_fail_report_contents'),$message,date('Y-m-d h:i:sa')); //send message - $oCommunicationController = getController('communication'); + $oCommunicationController = &getController('communication'); $oCommunicationController->sendMessage($args->member_srl, $args->member_srl, $title, $content, true); if($this->memberInfo->email_address && $this->memberInfo->allow_mailing == 'Y') @@ -1745,16 +1711,15 @@ function doLogin($user_id, $password = '', $keep_signed = false) if($keep_signed) { // Key generate for auto login - $autologin_args = new stdClass; $autologin_args->autologin_key = md5(strtolower($user_id).$this->memberInfo->password.$_SERVER['HTTP_USER_AGENT']); $autologin_args->member_srl = $this->memberInfo->member_srl; executeQuery('member.deleteAutologin', $autologin_args); $autologin_output = executeQuery('member.insertAutologin', $autologin_args); - if($autologin_output->toBool()) setCookie('xeak',$autologin_args->autologin_key, $_SERVER['REQUEST_TIME']+31536000, '/'); + if($autologin_output->toBool()) setCookie('xeak',$autologin_args->autologin_key, time()+31536000, '/'); } if($this->memberInfo->is_admin == 'Y') { - $oMemberAdminModel = getAdminModel('member'); + $oMemberAdminModel = &getAdminModel('member'); if(!$oMemberAdminModel->getMemberAdminIPCheck()) { $_SESSION['denied_admin'] = 'Y'; @@ -1771,7 +1736,7 @@ function doLogin($user_id, $password = '', $keep_signed = false) */ function setSessionInfo() { - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); // If your information came through the current session information to extract information from the users if(!$this->memberInfo && $_SESSION['member_srl'] && $oMemberModel->isLogged() ) { @@ -1802,7 +1767,7 @@ function setSessionInfo() $group_srl_list = array_keys($this->memberInfo->group_list); $_SESSION['group_srls'] = $group_srl_list; // If the group is designated as an administrator administrator - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); $admin_group = $oMemberModel->getAdminGroup(); if($admin_group->group_srl && in_array($admin_group->group_srl, $group_srl_list)) $_SESSION['is_admin'] = 'Y'; } @@ -1840,7 +1805,6 @@ function addMemberPopupMenu($url, $str, $icon = '', $target = 'self') $member_popup_menu_list = Context::get('member_popup_menu_list'); if(!is_array($member_popup_menu_list)) $member_popup_menu_list = array(); - $obj = new stdClass; $obj->url = $url; $obj->str = $str; $obj->icon = $icon; @@ -1859,12 +1823,12 @@ function insertMember(&$args, $password_is_hashed = false) $output = ModuleHandler::triggerCall('member.insertMember', 'before', $args); if(!$output->toBool()) return $output; // Terms and Conditions portion of the information set up by members reaffirmed - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $config = $oModuleModel->getModuleConfig('member'); $logged_info = Context::get('logged_info'); // If the date of the temporary restrictions limit further information on the date of - if($config->limit_day) $args->limit_date = date("YmdHis", $_SERVER['REQUEST_TIME']+$config->limit_day*60*60*24); + if($config->limit_day) $args->limit_date = date("YmdHis", time()+$config->limit_day*60*60*24); $args->member_srl = getNextSequence(); $args->list_order = -1 * $args->member_srl; @@ -1895,20 +1859,8 @@ function insertMember(&$args, $password_is_hashed = false) if($args->homepage && !preg_match("/^[a-z]+:\/\//i",$args->homepage)) $args->homepage = 'http://'.$args->homepage; if($args->blog && !preg_match("/^[a-z]+:\/\//i",$args->blog)) $args->blog = 'http://'.$args->blog; // Create a model object - $oMemberModel = getModel('member'); - + $oMemberModel = &getModel('member'); // ID check is prohibited - if($args->password && !$password_is_hashed) - { - // check password strength - if(!$oMemberModel->checkPasswordStrength($args->password, $config->password_strength)) - { - $message = Context::getLang('about_password_strength'); - return new Object(-1, $message[$config->password_strength]); - } - $args->password = md5($args->password); - } - elseif(!$args->password) unset($args->password); if($oMemberModel->isDeniedID($args->user_id)) return new Object(-1,'denied_user_id'); // ID, nickname, email address of the redundancy check $member_srl = $oMemberModel->getMemberSrlByUserID($args->user_id); @@ -1925,19 +1877,20 @@ function insertMember(&$args, $password_is_hashed = false) $member_srl = $oMemberModel->getMemberSrlByEmailAddress($args->email_address); if($member_srl) return new Object(-1,'msg_exists_email_address'); + $oDB = &DB::getInstance(); + $oDB->begin(); // Insert data into the DB $args->list_order = -1 * $args->member_srl; - $args->nick_name = htmlspecialchars($args->nick_name, ENT_COMPAT | ENT_HTML401, 'UTF-8', false); - $args->homepage = htmlspecialchars($args->homepage, ENT_COMPAT | ENT_HTML401, 'UTF-8', false); - $args->blog = htmlspecialchars($args->blog, ENT_COMPAT | ENT_HTML401, 'UTF-8', false); + $args->nick_name = htmlspecialchars($args->nick_name); + $args->homepage = htmlspecialchars($args->homepage); + $args->blog = htmlspecialchars($args->blog); + if($args->password && !$password_is_hashed) $args->password = md5($args->password); + elseif(!$args->password) unset($args->password); if(!$args->user_id) $args->user_id = 't'.$args->member_srl; if(!$args->user_name) $args->user_name = $args->member_srl; - $oDB = &DB::getInstance(); - $oDB->begin(); - $output = executeQuery('member.insertMember', $args); if(!$output->toBool()) { @@ -1956,7 +1909,7 @@ function insertMember(&$args, $password_is_hashed = false) { // Add to the default group $output = $this->addMemberToGroup($args->member_srl,$default_group->group_srl); - if(!$output->toBool()) + if(!$output->toBool()) { $oDB->rollback(); return $output; @@ -1983,7 +1936,6 @@ function insertMember(&$args, $password_is_hashed = false) if($args->denied == 'Y') { // Insert data into the authentication DB - $auth_args = new stdClass; $auth_args->user_id = $args->user_id; $auth_args->member_srl = $args->member_srl; $auth_args->new_password = $args->password; @@ -2017,16 +1969,14 @@ function insertMember(&$args, $password_is_hashed = false) /** * Modify member information - * - * @param bool $is_admin , modified 2013-11-22 */ - function updateMember($args, $is_admin = FALSE) + function updateMember($args) { // Call a trigger (before) $output = ModuleHandler::triggerCall('member.updateMember', 'before', $args); if(!$output->toBool()) return $output; // Create a model object - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); $logged_info = Context::get('logged_info'); // Get what you want to modify the original information @@ -2043,9 +1993,8 @@ function updateMember($args, $is_admin = FALSE) else { unset($args->is_admin); - if($is_admin == false) - unset($args->denied); - if($logged_info->member_srl != $args->member_srl && $is_admin == false) + unset($args->denied); + if($logged_info->member_srl != $args->member_srl) { return $this->stop('msg_invalid_request'); } @@ -2087,17 +2036,7 @@ function updateMember($args, $is_admin = FALSE) $oDB->begin(); // DB in the update - if($args->password) - { - // check password strength - if(!$oMemberModel->checkPasswordStrength($args->password, $config->password_strength)) - { - $message = Context::getLang('about_password_strength'); - return new Object(-1, $message[$config->password_strength]); - } - - $args->password = md5($args->password); - } + if($args->password) $args->password = md5($args->password); else $args->password = $orgMemberInfo->password; if(!$args->user_name) $args->user_name = $orgMemberInfo->user_name; if(!$args->user_id) $args->user_id = $orgMemberInfo->user_id; @@ -2106,7 +2045,6 @@ function updateMember($args, $is_admin = FALSE) if(!$args->birthday) $args->birthday = ''; $output = executeQuery('member.updateMember', $args); - if(!$output->toBool()) { $oDB->rollback(); @@ -2154,12 +2092,15 @@ function updateMember($args, $is_admin = FALSE) } $oDB->commit(); - - //remove from cache - $this->_clearMemberCache($args->member_srl); - // Save Session if(!$this->memberInfo) $this->memberInfo = $oMemberModel->getMemberInfoByMemberSrl($args->member_srl); + //remove from cache + $oCacheHandler = &CacheHandler::getInstance('object'); + if($oCacheHandler->isSupport()) + { + $cache_key = 'object:'.$args->member_srl; + $oCacheHandler->delete($cache_key); + } $logged_info = Context::get('logged_info'); $output->add('member_srl', $args->member_srl); @@ -2172,21 +2113,17 @@ function updateMember($args, $is_admin = FALSE) function updateMemberPassword($args) { $output = executeQuery('member.updateChangePasswordDate', $args); + //remove from cache + $oCacheHandler = &CacheHandler::getInstance('object'); + if($oCacheHandler->isSupport()) + { + $cache_key = 'object:'.$args->member_srl; + $oCacheHandler->delete($cache_key); + } if($args->password) { - - // check password strength - $oMemberModel = getModel('member'); - $config = $oMemberModel->getMemberConfig(); - - if(!$oMemberModel->checkPasswordStrength($args->password, $config->password_strength)) - { - $message = Context::getLang('about_password_strength'); - return new Object(-1, $message[$config->password_strength]); - } - - if($this->useSha1) + if($this->useSha1 && function_exists('sha1')) { $args->password = md5(sha1(md5($args->password))); } @@ -2200,11 +2137,7 @@ function updateMemberPassword($args) $args->password = $args->hashed_password; } - $output = executeQuery('member.updateMemberPassword', $args);; - - $this->_clearMemberCache($args->member_srl); - - return $output; + return executeQuery('member.updateMemberPassword', $args); } /** @@ -2213,12 +2146,12 @@ function updateMemberPassword($args) function deleteMember($member_srl) { // Call a trigger (before) - $trigger_obj = new stdClass(); + $tirgger_obj = new stdClass(); $trigger_obj->member_srl = $member_srl; $output = ModuleHandler::triggerCall('member.deleteMember', 'before', $trigger_obj); if(!$output->toBool()) return $output; // Create a model object - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); // Bringing the user's information if(!$this->memberInfo) { @@ -2281,8 +2214,6 @@ function deleteMember($member_srl) $this->procMemberDeleteProfileImage($member_srl); $this->delSignature($member_srl); - $this->_clearMemberCache($member_srl); - return $output; } @@ -2301,9 +2232,9 @@ function destroySessionInfo() $_SESSION[$key] = ''; } session_destroy(); - setcookie(session_name(), '', $_SERVER['REQUEST_TIME']-42000, '/'); - setcookie('sso','',$_SERVER['REQUEST_TIME']-42000, '/'); - setcookie('xeak','',$_SERVER['REQUEST_TIME']-42000, '/'); + setcookie(session_name(), '', time()-42000, '/'); + setcookie('sso','',time()-42000, '/'); + setcookie('xeak','',time()-42000, '/'); if($memberSrl || $_COOKIE['xeak']) { @@ -2316,7 +2247,7 @@ function destroySessionInfo() function _updatePointByGroup($memberSrl, $groupSrlList) { - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $pointModuleConfig = $oModuleModel->getModuleConfig('point'); $pointGroup = $pointModuleConfig->point_group; @@ -2333,12 +2264,12 @@ function _updatePointByGroup($memberSrl, $groupSrlList) if($maxLevel > 0) { - $oPointModel = getModel('point'); + $oPointModel = &getModel('point'); $originPoint = $oPointModel->getPoint($memberSrl); if($pointModuleConfig->level_step[$maxLevel] > $originPoint) { - $oPointController = getController('point'); + $oPointController = &getController('point'); $oPointController->setPoint($memberSrl, $pointModuleConfig->level_step[$maxLevel], 'update'); } } @@ -2353,11 +2284,10 @@ function procMemberModifyEmailAddress() if(!$newEmail) return $this->stop('msg_invalid_request'); - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); $member_srl = $oMemberModel->getMemberSrlByEmailAddress($newEmail); if($member_srl) return new Object(-1,'msg_exists_email_address'); - $auth_args = new stdClass; $auth_args->user_id = $newEmail; $auth_args->member_srl = $member_info->member_srl; $auth_args->auth_key = md5(rand(0, 999999)); @@ -2370,7 +2300,7 @@ function procMemberModifyEmailAddress() return $output; } - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $member_config = $oModuleModel->getModuleConfig('member'); $tpl_path = sprintf('%sskins/%s', $this->module_path, $member_config->skin); @@ -2378,7 +2308,6 @@ function procMemberModifyEmailAddress() global $lang; - $memberInfo = array(); $memberInfo[$lang->email_address] = $member_info->email_address; $memberInfo[$lang->nick_name] = $member_info->nick_name; @@ -2413,7 +2342,6 @@ function procMemberAuthEmailAddress() if(!$member_srl || !$auth_key) return $this->stop('msg_invalid_request'); // Test logs for finding password by user_id and authkey - $args = new stdClass; $args->member_srl = $member_srl; $args->auth_key = $auth_key; $output = executeQuery('member.getAuthMail', $args); @@ -2429,235 +2357,10 @@ function procMemberAuthEmailAddress() // Remove all values having the member_srl and new_password equal to 'XE_change_emaill_address' from authentication table executeQuery('member.deleteAuthChangeEmailAddress',$args); - $this->_clearMemberCache($args->member_srl); - // Notify the result $this->setTemplatePath($this->module_path.'tpl'); $this->setTemplateFile('msg_success_modify_email_address'); } - - /** - * trigger for document.getDocumentMenu. Append to popup menu a button for procMemberSpammerManage() - * - * @param array &$menu_list - * - * @return object - **/ - function triggerGetDocumentMenu(&$menu_list) - { - if(!Context::get('is_logged')) return new Object(); - - $logged_info = Context::get('logged_info'); - $document_srl = Context::get('target_srl'); - - $oDocumentModel = getModel('document'); - $columnList = array('document_srl', 'module_srl', 'member_srl', 'ipaddress'); - $oDocument = $oDocumentModel->getDocument($document_srl, false, false, $columnList); - $member_srl = $oDocument->get('member_srl'); - $module_srl = $oDocument->get('module_srl'); - - if(!$member_srl) return new Object(); - if($oDocumentModel->grant->manager != 1 || $member_srl==$logged_info->member_srl) return new Object(); - - $oDocumentController = getController('document'); - $url = getUrl('','module','member','act','dispMemberSpammer','member_srl',$member_srl,'module_srl',$module_srl); - $oDocumentController->addDocumentPopupMenu($url,'cmd_spammer','','popup'); - - return new Object(); - } - - /** - * trigger for comment.getCommentMenu. Append to popup menu a button for procMemberSpammerManage() - * - * @param array &$menu_list - * - * @return object - **/ - function triggerGetCommentMenu(&$menu_list) - { - if(!Context::get('is_logged')) return new Object(); - - $logged_info = Context::get('logged_info'); - $comment_srl = Context::get('target_srl'); - - $oCommentModel = getModel('comment'); - $columnList = array('comment_srl', 'module_srl', 'member_srl', 'ipaddress'); - $oComment = $oCommentModel->getComment($comment_srl, FALSE, $columnList); - $module_srl = $oComment->get('module_srl'); - $member_srl = $oComment->get('member_srl'); - - if(!$member_srl) return new Object(); - if($oCommentModel->grant->manager != 1 || $member_srl==$logged_info->member_srl) return new Object(); - - $oCommentController = getController('comment'); - $url = getUrl('','module','member','act','dispMemberSpammer','member_srl',$member_srl,'module_srl',$module_srl); - $oCommentController->addCommentPopupMenu($url,'cmd_spammer','','popup'); - - return new Object(); - } - - /** - * Spammer manage. Denied user login. And delete or trash all documents. Response Ajax string - * - * @return object - **/ - function procMemberSpammerManage() - { - if(!Context::get('is_logged')) return new Object(-1,'msg_not_permitted'); - - $logged_info = Context::get('logged_info'); - $member_srl = Context::get('member_srl'); - $module_srl = Context::get('module_srl'); - $cnt_loop = Context::get('cnt_loop'); - $proc_type = Context::get('proc_type'); - $isMoveToTrash = true; - if($proc_type == "delete") - $isMoveToTrash = false; - - // check grant - $oModuleModel = getModel('module'); - $columnList = array('module_srl', 'module'); - $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl, $columnList); - $grant = $oModuleModel->getGrant($module_info, $logged_info); - - if(!$grant->manager) return new Object(-1,'msg_not_permitted'); - - $proc_msg = ""; - - $oDocumentModel = getModel('document'); - $oCommentModel = getModel('comment'); - - // delete or trash destination - // proc member - if($cnt_loop == 1) - $this->_spammerMember($member_srl); - // proc document and comment - elseif($cnt_loop>1) - $this->_spammerDocuments($member_srl, $isMoveToTrash); - - // get destination count - $cnt_document = $oDocumentModel->getDocumentCountByMemberSrl($member_srl); - $cnt_comment = $oCommentModel->getCommentCountByMemberSrl($member_srl); - - $total_count = Context::get('total_count'); - $remain_count = $cnt_document + $cnt_comment; - if($cnt_loop == 1) $total_count = $remain_count; - - // get progress percent - if($total_count > 0) - $progress = intval( ( ( $total_count - $remain_count ) / $total_count ) * 100 ); - else - $progress = 100; - - $this->add('total_count', $total_count); - $this->add('remain_count', $remain_count); - $this->add('progress', $progress); - $this->add('member_srl', $member_srl); - $this->add('module_srl', $module_srl); - $this->add('cnt_loop', ++$cnt_loop); - $this->add('proc_type', $proc_type); - - return new Object(0); - } - - /** - * Denied user login and write description - * - * @param int $member_srl - * - * @return object - **/ - private function _spammerMember($member_srl) { - $logged_info = Context::get('logged_info'); - $spam_description = trim( Context::get('spam_description') ); - - $oMemberModel = getModel('member'); - $columnList = array('member_srl', 'description'); - // get member current infomation - $member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl, 0, $columnList); - - $oDocumentModel = getModel('document'); - $oCommentModel = getModel('comment'); - $cnt_comment = $oCommentModel->getCommentCountByMemberSrl($member_srl); - $cnt_document = $oDocumentModel->getDocumentCountByMemberSrl($member_srl); - $total_count = $cnt_comment + $cnt_document; - - $args = new stdClass(); - $args->member_srl= $member_info->member_srl; - $args->denied = "Y"; - $args->description = trim( $member_info->description ); - if( $args->description != "" ) $args->description .= "\n"; // add new line - - $args->description .= Context::getLang('cmd_spammer') . "[" . date("Y-m-d H:i:s") . " from:" . $logged_info->user_id . " info:" . $spam_description . " docuemnts count:" . $total_count . "]"; - - $output = $this->updateMember($args, true); - - $this->_clearMemberCache($args->member_srl); - - return $output; - } - - /** - * Delete or trash all documents - * - * @param int $member_srl - * @param bool $isMoveToTrash - * - * @return object - **/ - private function _spammerDocuments($member_srl, $isMoveToTrash) { - $oDocumentController = getController('document'); - $oDocumentModel = getModel('document'); - $oCommentController = getController('comment'); - $oCommentModel = getModel('comment'); - - // delete count by one request - $getContentsCount = 10; - - // 1. proc comment, 2. proc document - $cnt_comment = $oCommentModel->getCommentCountByMemberSrl($member_srl); - $cnt_document = $oDocumentModel->getDocumentCountByMemberSrl($member_srl); - if($cnt_comment > 0) - { - $columnList = array(); - $commentList = $oCommentModel->getCommentListByMemberSrl($member_srl, $columnList, 0, false, $getContentsCount); - if($commentList) { - foreach($commentList as $v) { - $oCommentController->deleteComment($v->comment_srl, true, $isMoveToTrash); - } - } - } elseif($cnt_document > 0) { - $columnList = array(); - $documentList = $oDocumentModel->getDocumentListByMemberSrl($member_srl, $columnList, 0, false, $getContentsCount); - if($documentList) { - foreach($documentList as $v) { - if($isMoveToTrash) $oDocumentController->moveDocumentToTrash($v); - else $oDocumentController->deleteDocument($v->document_srl); - } - } - } - - return array(); - } - - function _clearMemberCache($member_srl, $site_srl = 0) - { - $oCacheHandler = CacheHandler::getInstance('object', NULL, TRUE); - if($oCacheHandler->isSupport()) - { - $object_key = 'member_groups:' . getNumberingPath($member_srl) . $member_srl . '_' . $site_srl; - $cache_key = $oCacheHandler->getGroupKey('member', $object_key); - $oCacheHandler->delete($cache_key); - } - - $oCacheHandler = CacheHandler::getInstance('object'); - if($oCacheHandler->isSupport()) - { - $object_key = 'member_info:' . getNumberingPath($member_srl) . $member_srl; - $cache_key = $oCacheHandler->getGroupKey('member', $object_key); - $oCacheHandler->delete($cache_key); - } - } } /* End of file member.controller.php */ /* Location: ./modules/member/member.controller.php */ From 0ff1bdae3e254ac32c258dd6d7925948e23434ac Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 28 Jan 2014 12:59:05 +0900 Subject: [PATCH 083/549] NOISSUE procInsertMember() upload images --- modules/member/member.controller.php | 615 ++++++++++++++++++++------- 1 file changed, 465 insertions(+), 150 deletions(-) diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index ce068301ca..860aef260f 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -1,7 +1,8 @@ */ /** * @class memberController - * @author NHN (developers@xpressengine.com) + * @author NAVER (developers@xpressengine.com) * Controller class of member module */ class memberController extends member @@ -54,7 +55,7 @@ function procMemberLogin($user_id = null, $password = null, $keep_signed = null) $output = $this->doLogin($user_id, $password, $keep_signed=='Y'?true:false); if (!$output->toBool()) return $output; - $oModuleModel = &getModel('module'); + $oModuleModel = getModel('module'); $config = $oModuleModel->getModuleConfig('member'); // Check change_password_date @@ -63,7 +64,7 @@ function procMemberLogin($user_id = null, $password = null, $keep_signed = null) // Check if change_password_date is set if($limit_date > 0) { - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); if($this->memberInfo->change_password_date < date ('YmdHis', strtotime ('-' . $limit_date . ' day'))) { $this->setRedirectUrl(getNotEncodedUrl('','vid',Context::get('vid'),'mid',Context::get('mid'),'act','dispMemberModifyPassword')); @@ -101,17 +102,19 @@ function procMemberLogout() $output = new Object(); - $oModuleModel = &getModel('module'); + $oModuleModel = getModel('module'); $config = $oModuleModel->getModuleConfig('member'); if($config->after_logout_url) $output->redirect_url = $config->after_logout_url; + $this->_clearMemberCache($logged_info->member_srl); + return $output; } /** * Scrap document - * + * * @return void|Object (void : success, Object : fail) */ function procMemberScrapDocument() @@ -124,7 +127,7 @@ function procMemberScrapDocument() if(!$document_srl) $document_srl = (int)Context::get('target_srl'); if(!$document_srl) return new Object(-1,'msg_invalid_request'); // Get document - $oDocumentModel = &getModel('document'); + $oDocumentModel = getModel('document'); $oDocument = $oDocumentModel->getDocument($document_srl); // Variables $args = new stdClass(); @@ -148,7 +151,7 @@ function procMemberScrapDocument() /** * Delete a scrap - * + * * @return void|Object (void : success, Object : fail) */ function procMemberDeleteScrap() @@ -160,6 +163,7 @@ function procMemberDeleteScrap() $document_srl = (int)Context::get('document_srl'); if(!$document_srl) return new Object(-1,'msg_invalid_request'); // Variables + $args = new stdClass; $args->member_srl = $logged_info->member_srl; $args->document_srl = $document_srl; return executeQuery('member.deleteScrapDocument', $args); @@ -177,7 +181,7 @@ function procMemberSaveDocument() /** * Delete the post - * + * * @return void|Object (void : success, Object : fail) */ function procMemberDeleteSavedDocument() @@ -189,13 +193,13 @@ function procMemberDeleteSavedDocument() $document_srl = (int)Context::get('document_srl'); if(!$document_srl) return new Object(-1,'msg_invalid_request'); // Variables - $oDocumentController = &getController('document'); + $oDocumentController = getController('document'); $oDocumentController->deleteDocument($document_srl, true); } /** * Check values when member joining - * + * * @return void|Object (void : success, Object : fail) */ function procMemberCheckValue() @@ -204,7 +208,7 @@ function procMemberCheckValue() $value = Context::get('value'); if(!$value) return; - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); // Check if logged-in $logged_info = Context::get('logged_info'); @@ -239,14 +243,14 @@ function procMemberCheckValue() /** * Join Membership - * + * * @return void|Object (void : success, Object : fail) */ function procMemberInsert() { if (Context::getRequestMethod () == "GET") return new Object (-1, "msg_invalid_request"); $oMemberModel = &getModel ('member'); - $config = $oMemberModel->getMemberConfig (); + $config = $oMemberModel->getMemberConfig(); // call a trigger (before) $trigger_output = ModuleHandler::triggerCall ('member.procMemberInsert', 'before', $config); @@ -268,6 +272,8 @@ function procMemberInsert() } } } + + $args = new stdClass; foreach($getVars as $val) { $args->{$val} = Context::get($val); @@ -282,6 +288,13 @@ function procMemberInsert() if($args->password1) $args->password = $args->password1; + // check password strength + if(!$oMemberModel->checkPasswordStrength($args->password, $config->password_strength)) + { + $message = Context::getLang('about_password_strength'); + return new Object(-1, $message[$config->password_strength]); + } + // Remove some unnecessary variables from all the vars $all_args = Context::getRequestVars(); unset($all_args->module); @@ -321,23 +334,23 @@ function procMemberInsert() if(!$output->toBool()) return $output; // insert ProfileImage, ImageName, ImageMark - $profile_image = $_FILES['profile_image']; - if(is_uploaded_file($profile_image['tmp_name'])) - { - $this->insertProfileImage($args->member_srl, $profile_image['tmp_name']); - } - - $image_mark = $_FILES['image_mark']; - if(is_uploaded_file($image_mark['tmp_name'])) - { - $this->insertImageMark($args->member_srl, $image_mark['tmp_name']); - } - - $image_name = $_FILES['image_name']; - if(is_uploaded_file($image_name['tmp_name'])) - { - $this->insertImageName($args->member_srl, $image_name['tmp_name']); - } + $profile_image = $_FILES['profile_image']; + if(is_uploaded_file($profile_image['tmp_name'])) + { + $this->insertProfileImage($args->member_srl, $profile_image['tmp_name']); + } + + $image_mark = $_FILES['image_mark']; + if(is_uploaded_file($image_mark['tmp_name'])) + { + $this->insertImageMark($args->member_srl, $image_mark['tmp_name']); + } + + $image_name = $_FILES['image_name']; + if(is_uploaded_file($image_name['tmp_name'])) + { + $this->insertImageName($args->member_srl, $image_name['tmp_name']); + } // If a virtual site, join the site $site_module_info = Context::get('site_module_info'); @@ -394,6 +407,8 @@ function procMemberInsert() } } + $this->_clearMemberCache($args->member_srl); + $this->setRedirectUrl($returnUrl); } @@ -416,7 +431,7 @@ function procMemberModifyInfoBefore() return $this->stop('msg_invalid_request'); } - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); if(!$this->memberInfo->password) { @@ -432,16 +447,16 @@ function procMemberModifyInfoBefore() $_SESSION['rechecked_password_step'] = 'VALIDATE_PASSWORD'; - $redirectUrl = getNotEncodedUrl('', 'act', 'dispMemberModifyInfo'); + $redirectUrl = getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispMemberModifyInfo'); $this->setRedirectUrl($redirectUrl); } /** * Edit member profile - * + * * @return void|Object (void : success, Object : fail) */ - function procMemberModifyInfo() + function procMemberModifyInfo() { if(!Context::get('is_logged')) { @@ -468,6 +483,8 @@ function procMemberModifyInfo() } } } + + $args = new stdClass; foreach($getVars as $val) { $args->{$val} = Context::get($val); @@ -535,8 +552,12 @@ function procMemberModifyInfo() // Save Signature $signature = Context::get('signature'); $this->putSignature($args->member_srl, $signature); + // Get user_id information $this->memberInfo = $oMemberModel->getMemberInfoByMemberSrl($args->member_srl); + + $this->_clearMemberCache($args->member_srl); + // Call a trigger after successfully log-in (after) $trigger_output = ModuleHandler::triggerCall('member.procMemberModifyInfo', 'after', $this->memberInfo); if(!$trigger_output->toBool()) return $trigger_output; @@ -546,13 +567,15 @@ function procMemberModifyInfo() $this->add('member_srl', $args->member_srl); $this->setMessage('success_updated'); + $this->_clearMemberCache($args->member_srl); + $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispMemberInfo'); $this->setRedirectUrl($returnUrl); } /** * Change the user password - * + * * @return void|Object (void : success, Object : fail) */ function procMemberModifyPassword() @@ -565,9 +588,10 @@ function procMemberModifyPassword() $logged_info = Context::get('logged_info'); $member_srl = $logged_info->member_srl; // Create a member model object - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); // Get information of member_srl $columnList = array('member_srl', 'password'); + $member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl, 0, $columnList); // Verify the cuttent password if(!$oMemberModel->isValidPassword($member_info->password, $current_password, $member_srl)) return new Object(-1, 'invalid_password'); @@ -576,6 +600,7 @@ function procMemberModifyPassword() if($current_password == $password) return new Object(-1, 'invalid_new_password'); // Execute insert or update depending on the value of member_srl + $args = new stdClass; $args->member_srl = $member_srl; $args->password = $password; $output = $this->updateMemberPassword($args); @@ -590,7 +615,7 @@ function procMemberModifyPassword() /** * Membership withdrawal - * + * * @return void|Object (void : success, Object : fail) */ function procMemberLeave() @@ -602,7 +627,7 @@ function procMemberLeave() $logged_info = Context::get('logged_info'); $member_srl = $logged_info->member_srl; // Create a member model object - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); // Get information of member_srl if(!$this->memberInfo->password) { @@ -620,13 +645,15 @@ function procMemberLeave() // Return success message $this->setMessage('success_leaved'); + $this->_clearMemberCache($member_srl); + $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', ''); $this->setRedirectUrl($returnUrl); } /** * Add a profile image - * + * * @return void|Object (void : success, Object : fail) */ function procMemberInsertProfileImage() @@ -641,7 +668,7 @@ function procMemberInsertProfileImage() $logged_info = Context::get('logged_info'); if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_srl) return $this->stop('msg_not_uploaded_profile_image'); // Return if member module is set not to use an image name or the user is not an administrator ; - $oModuleModel = &getModel('module'); + $oModuleModel = getModel('module'); $config = $oModuleModel->getModuleConfig('member'); if($logged_info->is_admin != 'Y' && $config->profile_image != 'Y') return $this->stop('msg_not_uploaded_profile_image'); @@ -655,7 +682,7 @@ function procMemberInsertProfileImage() /** * Insert a profile image - * + * * @param int $member_srl * @param object $target_file * @@ -663,7 +690,11 @@ function procMemberInsertProfileImage() */ function insertProfileImage($member_srl, $target_file) { - $oModuleModel = &getModel('module'); + + // Check uploaded file + if(!checkUploadedFile($target_file)) return; + + $oModuleModel = getModel('module'); $config = $oModuleModel->getModuleConfig('member'); // Get an image size $max_width = $config->profile_image_max_width; @@ -687,7 +718,7 @@ function insertProfileImage($member_srl, $target_file) /** * Add an image name - * + * * @return void|Object (void : success, Object : fail) */ function procMemberInsertImageName() @@ -702,7 +733,7 @@ function procMemberInsertImageName() $logged_info = Context::get('logged_info'); if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_srl) return $this->stop('msg_not_uploaded_image_name'); // Return if member module is set not to use an image name or the user is not an administrator ; - $oModuleModel = &getModel('module'); + $oModuleModel = getModel('module'); $config = $oModuleModel->getModuleConfig('member'); if($logged_info->is_admin != 'Y' && $config->image_name != 'Y') return $this->stop('msg_not_uploaded_image_name'); @@ -716,7 +747,7 @@ function procMemberInsertImageName() /** * Insert a image name - * + * * @param int $member_srl * @param object $target_file * @@ -724,7 +755,10 @@ function procMemberInsertImageName() */ function insertImageName($member_srl, $target_file) { - $oModuleModel = &getModel('module'); + // Check uploaded file + if(!checkUploadedFile($target_file)) return; + + $oModuleModel = getModel('module'); $config = $oModuleModel->getModuleConfig('member'); // Get an image size $max_width = $config->image_name_max_width; @@ -760,7 +794,7 @@ function procMemberDeleteProfileImage($_memberSrl = 0) if($logged_info && ($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl)) { - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); $profile_image = $oMemberModel->getProfileImage($member_srl); FileHandler::removeFile($profile_image->file); } @@ -782,9 +816,9 @@ function procMemberDeleteImageName($_memberSrl = 0) $logged_info = Context::get('logged_info'); - if($logged_info && ($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl)) + if($logged_info && ($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl)) { - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); $image_name = $oMemberModel->getImageName($member_srl); FileHandler::removeFile($image_name->file); } @@ -808,7 +842,7 @@ function procMemberInsertImageMark() $logged_info = Context::get('logged_info'); if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_srl) return $this->stop('msg_not_uploaded_image_mark'); // Membership in the images mark the module using the ban was set by an administrator or return; - $oModuleModel = &getModel('module'); + $oModuleModel = getModel('module'); $config = $oModuleModel->getModuleConfig('member'); if($logged_info->is_admin != 'Y' && $config->image_mark != 'Y') return $this->stop('msg_not_uploaded_image_mark'); @@ -822,7 +856,7 @@ function procMemberInsertImageMark() /** * Insert a image mark - * + * * @param int $member_srl * @param object $target_file * @@ -830,7 +864,10 @@ function procMemberInsertImageMark() */ function insertImageMark($member_srl, $target_file) { - $oModuleModel = &getModel('module'); + // Check uploaded file + if(!checkUploadedFile($target_file)) return; + + $oModuleModel = getModel('module'); $config = $oModuleModel->getModuleConfig('member'); // Get an image size $max_width = $config->image_mark_max_width; @@ -854,7 +891,7 @@ function insertImageMark($member_srl, $target_file) * * @return Object */ - function procMemberDeleteImageMark($_memberSrl = 0) + function procMemberDeleteImageMark($_memberSrl = 0) { $member_srl = ($_memberSrl) ? $_memberSrl : Context::get('member_srl'); if(!$member_srl) @@ -864,9 +901,9 @@ function procMemberDeleteImageMark($_memberSrl = 0) $logged_info = Context::get('logged_info'); - if($logged_info && ($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl)) + if($logged_info && ($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl)) { - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); $image_mark = $oMemberModel->getImageMark($member_srl); FileHandler::removeFile($image_mark->file); } @@ -883,21 +920,26 @@ function procMemberFindAccount() $email_address = Context::get('email_address'); if(!$email_address) return new Object(-1, 'msg_invalid_request'); - $oMemberModel = &getModel('member'); - $oModuleModel = &getModel('module'); + $oMemberModel = getModel('member'); + $oModuleModel = getModel('module'); + // Check if a member having the same email address exists $member_srl = $oMemberModel->getMemberSrlByEmailAddress($email_address); if(!$member_srl) return new Object(-1, 'msg_email_not_exists'); + // Get information of the member $columnList = array('denied', 'member_srl', 'user_id', 'user_name', 'email_address', 'nick_name'); $member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl, 0, $columnList); + // Check if possible to find member's ID and password if($member_info->denied == 'Y') { + $chk_args = new stdClass; $chk_args->member_srl = $member_info->member_srl; $output = executeQuery('member.chkAuthMail', $chk_args); if($output->toBool() && $output->data->count != '0') return new Object(-1, 'msg_user_not_confirmed'); } + // Insert data into the authentication DB $args = new stdClass(); $args->user_id = $member_info->user_id; @@ -912,6 +954,7 @@ function procMemberFindAccount() Context::set('auth_args', $args); $member_config = $oModuleModel->getModuleConfig('member'); + $memberInfo = array(); global $lang; if(is_array($member_config->signupForm)) { @@ -947,7 +990,7 @@ function procMemberFindAccount() $oTemplate = &TemplateHandler::getInstance(); $content = $oTemplate->compile($tpl_path, 'find_member_account_mail'); // Get information of the Webmaster - $oModuleModel = &getModel('module'); + $oModuleModel = getModel('module'); $member_config = $oModuleModel->getModuleConfig('member'); // Send a mail $oMail = new Mail(); @@ -960,8 +1003,8 @@ function procMemberFindAccount() $msg = sprintf(Context::getLang('msg_auth_mail_sent'), $member_info->email_address); if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) { - $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', ''); - $this->setRedirectUrl($returnUrl.'&user_id='.$user_id); + $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispMemberFindAccount'); + $this->setRedirectUrl($returnUrl); } return new Object(0,$msg); } @@ -973,7 +1016,7 @@ function procMemberFindAccount() */ function procMemberFindAccountByQuestion() { - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); $config = $oMemberModel->getMemberConfig(); $email_address = Context::get('email_address'); @@ -983,7 +1026,7 @@ function procMemberFindAccountByQuestion() if(($config->identifier == 'user_id' && !$user_id) || !$email_address || !$find_account_question || !$find_account_answer) return new Object(-1, 'msg_invalid_request'); - $oModuleModel = &getModel('module'); + $oModuleModel = getModel('module'); // Check if a member having the same email address exists $member_srl = $oMemberModel->getMemberSrlByEmailAddress($email_address); if(!$member_srl) return new Object(-1, 'msg_email_not_exists'); @@ -1002,6 +1045,7 @@ function procMemberFindAccountByQuestion() } // Update to a temporary password and set change_password_date to 1 + $args = new stdClass; $args->member_srl = $member_srl; list($usec, $sec) = explode(" ", microtime()); $temp_password = substr(md5($user_id . $member_info->find_account_answer. $usec . $sec),0,15); @@ -1032,6 +1076,7 @@ function procMemberAuthAccount() $auth_key = Context::get('auth_key'); if(!$member_srl || !$auth_key) return $this->stop('msg_invalid_request'); // Test logs for finding password by user_id and authkey + $args = new stdClass; $args->member_srl = $member_srl; $args->auth_key = $auth_key; $output = executeQuery('member.getAuthMail', $args); @@ -1054,6 +1099,9 @@ function procMemberAuthAccount() if(!$output->toBool()) return $this->stop($output->getMessage()); // Remove all values having the member_srl from authentication table executeQuery('member.deleteAuthMail',$args); + + $this->_clearMemberCache($args->member_srl); + // Notify the result Context::set('is_register', $is_register); $this->setTemplatePath($this->module_path.'tpl'); @@ -1071,17 +1119,19 @@ function procMemberUpdateAuthMail() $member_srl = Context::get('member_srl'); if(!$member_srl) return new Object(-1, 'msg_invalid_request'); - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); // Get information of the member $member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl); // Check if the member is set to allow a request to re-send an authentication mail if($member_info->denied != 'Y') return new Object(-1, 'msg_invalid_request'); + $chk_args = new stdClass; $chk_args->member_srl = $member_srl; $output = executeQuery('member.chkAuthMail', $chk_args); if($output->toBool() && $output->data->count == '0') return new Object(-1, 'msg_invalid_request'); // Insert data into the authentication DB + $auth_args = new stdClass; $auth_args->member_srl = $member_srl; $auth_args->auth_key = md5(rand(0, 999999)); @@ -1095,7 +1145,7 @@ function procMemberUpdateAuthMail() Context::set('auth_args', $auth_args); Context::set('memberInfo', $member_info); - $oModuleModel = &getModel('module'); + $oModuleModel = getModel('module'); $member_config = $oModuleModel->getModuleConfig('member'); if(!$member_config->skin) $member_config->skin = "default"; if(!$member_config->colorset) $member_config->colorset = "white"; @@ -1111,7 +1161,7 @@ function procMemberUpdateAuthMail() $oTemplate = &TemplateHandler::getInstance(); $content = $oTemplate->compile($tpl_path, 'confirm_member_account_mail'); // Get information of the Webmaster - $oModuleModel = &getModel('module'); + $oModuleModel = getModel('module'); $member_config = $oModuleModel->getModuleConfig('member'); // Send a mail $oMail = new Mail(); @@ -1134,29 +1184,33 @@ function procMemberResendAuthMail() { // Get an email_address $email_address = Context::get('email_address'); - if(!$email_address) return $this->stop('msg_invalid_request'); + if(!$email_address) return new Object(-1, 'msg_invalid_request'); // Log test by using email_address - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); + $args = new stdClass; $args->email_address = $email_address; $memberSrl = $oMemberModel->getMemberSrlByEmailAddress($email_address); - if(!$memberSrl) return $this->stop('msg_not_exists_member'); + if(!$memberSrl) return new Object(-1, 'msg_not_exists_member'); $columnList = array('member_srl', 'user_id', 'user_name', 'nick_name', 'email_address'); $memberInfo = $oMemberModel->getMemberInfoByMemberSrl($memberSrl, 0, $columnList); // Check if a authentication mail has been sent previously + $chk_args = new stdClass; $chk_args->member_srl = $memberInfo->member_srl; $output = executeQuery('member.chkAuthMail', $chk_args); if($output->toBool() && $output->data->count == '0') return new Object(-1, 'msg_invalid_request'); + $auth_args = new stdClass; $auth_args->member_srl = $memberInfo->member_srl; $output = executeQueryArray('member.getAuthMailInfo', $auth_args); if(!$output->data || !$output->data[0]->auth_key) return new Object(-1, 'msg_invalid_request'); $auth_info = $output->data[0]; + // Get content of the email to send a member Context::set('memberInfo', $memberInfo); - $oModuleModel = &getModel('module'); + $oModuleModel = getModel('module'); $member_config = $oModuleModel->getModuleConfig('member'); if(!$member_config->skin) $member_config->skin = "default"; if(!$member_config->colorset) $member_config->colorset = "white"; @@ -1172,7 +1226,7 @@ function procMemberResendAuthMail() $oTemplate = &TemplateHandler::getInstance(); $content = $oTemplate->compile($tpl_path, 'confirm_member_account_mail'); // Get information of the Webmaster - $oModuleModel = &getModel('module'); + $oModuleModel = getModel('module'); $member_config = $oModuleModel->getModuleConfig('member'); // Send a mail $oMail = new Mail(); @@ -1206,7 +1260,7 @@ function procMemberResetAuthMail() return $this->stop('msg_invalid_request'); } - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); $member_srl = $oMemberModel->getMemberSrlByEmailAddress($newEmail); if($member_srl) { @@ -1214,10 +1268,11 @@ function procMemberResetAuthMail() } // remove all key by member_srl + $args = new stdClass; $args->member_srl = $memberInfo->member_srl; $output = executeQuery('member.deleteAuthMail', $args); - if(!$output->toBool()) + if(!$output->toBool()) { return $output; } @@ -1227,12 +1282,16 @@ function procMemberResetAuthMail() list($args->email_id, $args->email_host) = explode('@', $newEmail); $output = executeQuery('member.updateMemberEmailAddress', $args); - if(!$output->toBool()) + $this->_clearMemberCache($args->member_srl); + if(!$output->toBool()) { return $this->stop($output->getMessage()); } + $this->_clearMemberCache($args->member_srl); + // generate new auth key + $auth_args = new stdClass; $auth_args->user_id = $memberInfo->user_id; $auth_args->member_srl = $memberInfo->member_srl; $auth_args->new_password = $memberInfo->password; @@ -1256,7 +1315,7 @@ function procMemberResetAuthMail() function _sendAuthMail($auth_args, $member_info) { - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); $member_config = $oMemberModel->getMemberConfig(); // Get content of the email to send a member Context::set('auth_args', $auth_args); @@ -1317,7 +1376,7 @@ function procMemberSiteSignUp() $logged_info = Context::get('logged_info'); if(!$site_module_info->site_srl || !Context::get('is_logged') || count($logged_info->group_srl_list) ) return new Object(-1,'msg_invalid_request'); - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); $columnList = array('site_srl', 'group_srl', 'title'); $default_group = $oMemberModel->getDefaultGroup($site_module_info->site_srl, $columnList); $this->addMemberToGroup($logged_info->member_srl, $default_group->group_srl, $site_module_info->site_srl); @@ -1336,11 +1395,13 @@ function procMemberSiteLeave() $logged_info = Context::get('logged_info'); if(!$site_module_info->site_srl || !Context::get('is_logged') || count($logged_info->group_srl_list) ) return new Object(-1,'msg_invalid_request'); + $args = new stdClass; $args->site_srl= $site_module_info->site_srl; $args->member_srl = $logged_info->member_srl; $output = executeQuery('member.deleteMembersGroup', $args); if(!$output->toBool()) return $output; $this->setMessage('success_deleted'); + $this->_clearMemberCache($args->member_srl); } /** @@ -1368,7 +1429,7 @@ function setMemberConfig($args) $agreement = trim($args->agreement); unset($args->agreement); - $oModuleController = &getController('module'); + $oModuleController = getController('module'); $output = $oModuleController->insertModuleConfig('member',$args); if(!$output->toBool()) return $output; @@ -1424,27 +1485,18 @@ function delSignature($member_srl) * * @return Object */ - function addMemberToGroup($member_srl,$group_srl,$site_srl=0) + function addMemberToGroup($member_srl, $group_srl, $site_srl=0) { $args = new stdClass(); $args->member_srl = $member_srl; $args->group_srl = $group_srl; if($site_srl) $args->site_srl = $site_srl; - $oModel =& getModel('member'); - $groups = $oModel->getMemberGroups($member_srl, $site_srl, true); - if($groups[$group_srl]) return new Object(); - // Add $output = executeQuery('member.addMemberToGroup',$args); $output2 = ModuleHandler::triggerCall('member.addMemberToGroup', 'after', $args); - $oCacheHandler = &CacheHandler::getInstance('object'); - if($oCacheHandler->isSupport()) - { - $cache_key = 'object_member_groups:'.$member_srl.'_'.$site_srl; - $oCacheHandler->delete($cache_key); - } + $this->_clearMemberCache($member_srl); return $output; } @@ -1459,6 +1511,7 @@ function addMemberToGroup($member_srl,$group_srl,$site_srl=0) */ function replaceMemberGroup($args) { + $obj = new stdClass; $obj->site_srl = $args->site_srl; $obj->member_srl = implode(',',$args->member_srl); @@ -1475,19 +1528,15 @@ function replaceMemberGroup($args) $inserted_members[$val] = true; unset($obj); + $obj = new stdClass; $obj->member_srl = $val; $obj->group_srl = $args->group_srl; $obj->site_srl = $args->site_srl; $obj->regdate = $date[$obj->member_srl]; $output = executeQuery('member.addMemberToGroup', $obj); if(!$output->toBool()) return $output; - } - $oCacheHandler = &CacheHandler::getInstance('object'); - if($oCacheHandler->isSupport()) - { - $cache_key = 'object_member_groups:'.$member_srl.'_'.$site_srl; - $oCacheHandler->delete($cache_key); + $this->_clearMemberCache($obj->member_srl); } return new Object(); @@ -1502,17 +1551,18 @@ function replaceMemberGroup($args) function doAutologin() { // Get a key value of auto log-in + $args = new stdClass; $args->autologin_key = $_COOKIE['xeak']; // Get information of the key $output = executeQuery('member.getAutologin', $args); // If no information exists, delete a cookie if(!$output->toBool() || !$output->data) { - setCookie('xeak',null,time()+60*60*24*365, '/'); + setCookie('xeak',null,$_SERVER['REQUEST_TIME']+60*60*24*365, '/'); return; } - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); $config = $oMemberModel->getMemberConfig(); $user_id = ($config->identifier == 'user_id') ? $output->data->user_id : $output->data->email_address; @@ -1520,7 +1570,7 @@ function doAutologin() if(!$user_id || !$password) { - setCookie('xeak',null,time()+60*60*24*365, '/'); + setCookie('xeak',null,$_SERVER['REQUEST_TIME']+60*60*24*365, '/'); return; } @@ -1532,14 +1582,14 @@ function doAutologin() if($key == $args->autologin_key) { // Check change_password_date - $oModuleModel = &getModel('module'); + $oModuleModel = getModel('module'); $member_config = $oModuleModel->getModuleConfig('member'); $limit_date = $member_config->change_password_date; // Check if change_password_date is set if($limit_date > 0) { - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); $columnList = array('member_srl', 'change_password_date'); if($config->identifier == 'user_id') @@ -1569,7 +1619,7 @@ function doAutologin() else { executeQuery('member.deleteAutologin', $args); - setCookie('xeak',null,time()+60*60*24*365, '/'); + setCookie('xeak',null,$_SERVER['REQUEST_TIME']+60*60*24*365, '/'); } } @@ -1593,7 +1643,7 @@ function doLogin($user_id, $password = '', $keep_signed = false) $trigger_output = ModuleHandler::triggerCall('member.doLogin', 'before', $trigger_obj); if(!$trigger_output->toBool()) return $trigger_output; // Create a member model object - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); // check IP access count. $config = $oMemberModel->getMemberConfig(); @@ -1622,7 +1672,7 @@ function doLogin($user_id, $password = '', $keep_signed = false) if($errorCount >= $config->max_error_count) { $last_update = strtotime($output->data->last_update); - $term = intval(time()-$last_update); + $term = intval($_SERVER['REQUEST_TIME']-$last_update); if($term < $config->max_error_count_time) { $term = $config->max_error_count_time - $term; @@ -1647,11 +1697,11 @@ function doLogin($user_id, $password = '', $keep_signed = false) } // If denied == 'Y', notify - if($this->memberInfo->denied == 'Y') + if($this->memberInfo->denied == 'Y') { $args->member_srl = $this->memberInfo->member_srl; $output = executeQuery('member.chkAuthMail', $args); - if ($output->toBool() && $output->data->count != '0') + if ($output->toBool() && $output->data->count != '0') { $_SESSION['auth_member_srl'] = $this->memberInfo->member_srl; $redirectUrl = getUrl('', 'act', 'dispMemberResendAuthMail'); @@ -1665,6 +1715,8 @@ function doLogin($user_id, $password = '', $keep_signed = false) $args->member_srl = $this->memberInfo->member_srl; $output = executeQuery('member.updateLastLogin', $args); + $this->_clearMemberCache($args->member_srl); + // Check if there is recoding table. $oDB = &DB::getInstance(); if($oDB->isTableExists('member_count_history') && $config->enable_login_fail_report != 'N') @@ -1686,7 +1738,7 @@ function doLogin($user_id, $password = '', $keep_signed = false) $content = sprintf(Context::getLang('login_fail_report_contents'),$message,date('Y-m-d h:i:sa')); //send message - $oCommunicationController = &getController('communication'); + $oCommunicationController = getController('communication'); $oCommunicationController->sendMessage($args->member_srl, $args->member_srl, $title, $content, true); if($this->memberInfo->email_address && $this->memberInfo->allow_mailing == 'Y') @@ -1711,15 +1763,16 @@ function doLogin($user_id, $password = '', $keep_signed = false) if($keep_signed) { // Key generate for auto login + $autologin_args = new stdClass; $autologin_args->autologin_key = md5(strtolower($user_id).$this->memberInfo->password.$_SERVER['HTTP_USER_AGENT']); $autologin_args->member_srl = $this->memberInfo->member_srl; executeQuery('member.deleteAutologin', $autologin_args); $autologin_output = executeQuery('member.insertAutologin', $autologin_args); - if($autologin_output->toBool()) setCookie('xeak',$autologin_args->autologin_key, time()+31536000, '/'); + if($autologin_output->toBool()) setCookie('xeak',$autologin_args->autologin_key, $_SERVER['REQUEST_TIME']+31536000, '/'); } if($this->memberInfo->is_admin == 'Y') { - $oMemberAdminModel = &getAdminModel('member'); + $oMemberAdminModel = getAdminModel('member'); if(!$oMemberAdminModel->getMemberAdminIPCheck()) { $_SESSION['denied_admin'] = 'Y'; @@ -1736,7 +1789,7 @@ function doLogin($user_id, $password = '', $keep_signed = false) */ function setSessionInfo() { - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); // If your information came through the current session information to extract information from the users if(!$this->memberInfo && $_SESSION['member_srl'] && $oMemberModel->isLogged() ) { @@ -1767,7 +1820,7 @@ function setSessionInfo() $group_srl_list = array_keys($this->memberInfo->group_list); $_SESSION['group_srls'] = $group_srl_list; // If the group is designated as an administrator administrator - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); $admin_group = $oMemberModel->getAdminGroup(); if($admin_group->group_srl && in_array($admin_group->group_srl, $group_srl_list)) $_SESSION['is_admin'] = 'Y'; } @@ -1805,6 +1858,7 @@ function addMemberPopupMenu($url, $str, $icon = '', $target = 'self') $member_popup_menu_list = Context::get('member_popup_menu_list'); if(!is_array($member_popup_menu_list)) $member_popup_menu_list = array(); + $obj = new stdClass; $obj->url = $url; $obj->str = $str; $obj->icon = $icon; @@ -1823,12 +1877,12 @@ function insertMember(&$args, $password_is_hashed = false) $output = ModuleHandler::triggerCall('member.insertMember', 'before', $args); if(!$output->toBool()) return $output; // Terms and Conditions portion of the information set up by members reaffirmed - $oModuleModel = &getModel('module'); + $oModuleModel = getModel('module'); $config = $oModuleModel->getModuleConfig('member'); $logged_info = Context::get('logged_info'); // If the date of the temporary restrictions limit further information on the date of - if($config->limit_day) $args->limit_date = date("YmdHis", time()+$config->limit_day*60*60*24); + if($config->limit_day) $args->limit_date = date("YmdHis", $_SERVER['REQUEST_TIME']+$config->limit_day*60*60*24); $args->member_srl = getNextSequence(); $args->list_order = -1 * $args->member_srl; @@ -1859,8 +1913,20 @@ function insertMember(&$args, $password_is_hashed = false) if($args->homepage && !preg_match("/^[a-z]+:\/\//i",$args->homepage)) $args->homepage = 'http://'.$args->homepage; if($args->blog && !preg_match("/^[a-z]+:\/\//i",$args->blog)) $args->blog = 'http://'.$args->blog; // Create a model object - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); + // ID check is prohibited + if($args->password && !$password_is_hashed) + { + // check password strength + if(!$oMemberModel->checkPasswordStrength($args->password, $config->password_strength)) + { + $message = Context::getLang('about_password_strength'); + return new Object(-1, $message[$config->password_strength]); + } + $args->password = md5($args->password); + } + elseif(!$args->password) unset($args->password); if($oMemberModel->isDeniedID($args->user_id)) return new Object(-1,'denied_user_id'); // ID, nickname, email address of the redundancy check $member_srl = $oMemberModel->getMemberSrlByUserID($args->user_id); @@ -1877,20 +1943,19 @@ function insertMember(&$args, $password_is_hashed = false) $member_srl = $oMemberModel->getMemberSrlByEmailAddress($args->email_address); if($member_srl) return new Object(-1,'msg_exists_email_address'); - $oDB = &DB::getInstance(); - $oDB->begin(); // Insert data into the DB $args->list_order = -1 * $args->member_srl; - $args->nick_name = htmlspecialchars($args->nick_name); - $args->homepage = htmlspecialchars($args->homepage); - $args->blog = htmlspecialchars($args->blog); + $args->nick_name = htmlspecialchars($args->nick_name, ENT_COMPAT | ENT_HTML401, 'UTF-8', false); + $args->homepage = htmlspecialchars($args->homepage, ENT_COMPAT | ENT_HTML401, 'UTF-8', false); + $args->blog = htmlspecialchars($args->blog, ENT_COMPAT | ENT_HTML401, 'UTF-8', false); - if($args->password && !$password_is_hashed) $args->password = md5($args->password); - elseif(!$args->password) unset($args->password); if(!$args->user_id) $args->user_id = 't'.$args->member_srl; if(!$args->user_name) $args->user_name = $args->member_srl; + $oDB = &DB::getInstance(); + $oDB->begin(); + $output = executeQuery('member.insertMember', $args); if(!$output->toBool()) { @@ -1909,7 +1974,7 @@ function insertMember(&$args, $password_is_hashed = false) { // Add to the default group $output = $this->addMemberToGroup($args->member_srl,$default_group->group_srl); - if(!$output->toBool()) + if(!$output->toBool()) { $oDB->rollback(); return $output; @@ -1936,6 +2001,7 @@ function insertMember(&$args, $password_is_hashed = false) if($args->denied == 'Y') { // Insert data into the authentication DB + $auth_args = new stdClass; $auth_args->user_id = $args->user_id; $auth_args->member_srl = $args->member_srl; $auth_args->new_password = $args->password; @@ -1969,14 +2035,16 @@ function insertMember(&$args, $password_is_hashed = false) /** * Modify member information + * + * @param bool $is_admin , modified 2013-11-22 */ - function updateMember($args) + function updateMember($args, $is_admin = FALSE) { // Call a trigger (before) $output = ModuleHandler::triggerCall('member.updateMember', 'before', $args); if(!$output->toBool()) return $output; // Create a model object - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); $logged_info = Context::get('logged_info'); // Get what you want to modify the original information @@ -1993,8 +2061,9 @@ function updateMember($args) else { unset($args->is_admin); - unset($args->denied); - if($logged_info->member_srl != $args->member_srl) + if($is_admin == false) + unset($args->denied); + if($logged_info->member_srl != $args->member_srl && $is_admin == false) { return $this->stop('msg_invalid_request'); } @@ -2036,7 +2105,17 @@ function updateMember($args) $oDB->begin(); // DB in the update - if($args->password) $args->password = md5($args->password); + if($args->password) + { + // check password strength + if(!$oMemberModel->checkPasswordStrength($args->password, $config->password_strength)) + { + $message = Context::getLang('about_password_strength'); + return new Object(-1, $message[$config->password_strength]); + } + + $args->password = md5($args->password); + } else $args->password = $orgMemberInfo->password; if(!$args->user_name) $args->user_name = $orgMemberInfo->user_name; if(!$args->user_id) $args->user_id = $orgMemberInfo->user_id; @@ -2045,6 +2124,7 @@ function updateMember($args) if(!$args->birthday) $args->birthday = ''; $output = executeQuery('member.updateMember', $args); + if(!$output->toBool()) { $oDB->rollback(); @@ -2092,15 +2172,12 @@ function updateMember($args) } $oDB->commit(); + + //remove from cache + $this->_clearMemberCache($args->member_srl); + // Save Session if(!$this->memberInfo) $this->memberInfo = $oMemberModel->getMemberInfoByMemberSrl($args->member_srl); - //remove from cache - $oCacheHandler = &CacheHandler::getInstance('object'); - if($oCacheHandler->isSupport()) - { - $cache_key = 'object:'.$args->member_srl; - $oCacheHandler->delete($cache_key); - } $logged_info = Context::get('logged_info'); $output->add('member_srl', $args->member_srl); @@ -2113,17 +2190,21 @@ function updateMember($args) function updateMemberPassword($args) { $output = executeQuery('member.updateChangePasswordDate', $args); - //remove from cache - $oCacheHandler = &CacheHandler::getInstance('object'); - if($oCacheHandler->isSupport()) - { - $cache_key = 'object:'.$args->member_srl; - $oCacheHandler->delete($cache_key); - } if($args->password) { - if($this->useSha1 && function_exists('sha1')) + + // check password strength + $oMemberModel = getModel('member'); + $config = $oMemberModel->getMemberConfig(); + + if(!$oMemberModel->checkPasswordStrength($args->password, $config->password_strength)) + { + $message = Context::getLang('about_password_strength'); + return new Object(-1, $message[$config->password_strength]); + } + + if($this->useSha1) { $args->password = md5(sha1(md5($args->password))); } @@ -2137,7 +2218,11 @@ function updateMemberPassword($args) $args->password = $args->hashed_password; } - return executeQuery('member.updateMemberPassword', $args); + $output = executeQuery('member.updateMemberPassword', $args);; + + $this->_clearMemberCache($args->member_srl); + + return $output; } /** @@ -2146,12 +2231,12 @@ function updateMemberPassword($args) function deleteMember($member_srl) { // Call a trigger (before) - $tirgger_obj = new stdClass(); + $trigger_obj = new stdClass(); $trigger_obj->member_srl = $member_srl; $output = ModuleHandler::triggerCall('member.deleteMember', 'before', $trigger_obj); if(!$output->toBool()) return $output; // Create a model object - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); // Bringing the user's information if(!$this->memberInfo) { @@ -2214,6 +2299,8 @@ function deleteMember($member_srl) $this->procMemberDeleteProfileImage($member_srl); $this->delSignature($member_srl); + $this->_clearMemberCache($member_srl); + return $output; } @@ -2232,9 +2319,9 @@ function destroySessionInfo() $_SESSION[$key] = ''; } session_destroy(); - setcookie(session_name(), '', time()-42000, '/'); - setcookie('sso','',time()-42000, '/'); - setcookie('xeak','',time()-42000, '/'); + setcookie(session_name(), '', $_SERVER['REQUEST_TIME']-42000, '/'); + setcookie('sso','',$_SERVER['REQUEST_TIME']-42000, '/'); + setcookie('xeak','',$_SERVER['REQUEST_TIME']-42000, '/'); if($memberSrl || $_COOKIE['xeak']) { @@ -2247,7 +2334,7 @@ function destroySessionInfo() function _updatePointByGroup($memberSrl, $groupSrlList) { - $oModuleModel = &getModel('module'); + $oModuleModel = getModel('module'); $pointModuleConfig = $oModuleModel->getModuleConfig('point'); $pointGroup = $pointModuleConfig->point_group; @@ -2264,12 +2351,12 @@ function _updatePointByGroup($memberSrl, $groupSrlList) if($maxLevel > 0) { - $oPointModel = &getModel('point'); + $oPointModel = getModel('point'); $originPoint = $oPointModel->getPoint($memberSrl); if($pointModuleConfig->level_step[$maxLevel] > $originPoint) { - $oPointController = &getController('point'); + $oPointController = getController('point'); $oPointController->setPoint($memberSrl, $pointModuleConfig->level_step[$maxLevel], 'update'); } } @@ -2284,10 +2371,11 @@ function procMemberModifyEmailAddress() if(!$newEmail) return $this->stop('msg_invalid_request'); - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); $member_srl = $oMemberModel->getMemberSrlByEmailAddress($newEmail); if($member_srl) return new Object(-1,'msg_exists_email_address'); + $auth_args = new stdClass; $auth_args->user_id = $newEmail; $auth_args->member_srl = $member_info->member_srl; $auth_args->auth_key = md5(rand(0, 999999)); @@ -2300,7 +2388,7 @@ function procMemberModifyEmailAddress() return $output; } - $oModuleModel = &getModel('module'); + $oModuleModel = getModel('module'); $member_config = $oModuleModel->getModuleConfig('member'); $tpl_path = sprintf('%sskins/%s', $this->module_path, $member_config->skin); @@ -2308,6 +2396,7 @@ function procMemberModifyEmailAddress() global $lang; + $memberInfo = array(); $memberInfo[$lang->email_address] = $member_info->email_address; $memberInfo[$lang->nick_name] = $member_info->nick_name; @@ -2342,6 +2431,7 @@ function procMemberAuthEmailAddress() if(!$member_srl || !$auth_key) return $this->stop('msg_invalid_request'); // Test logs for finding password by user_id and authkey + $args = new stdClass; $args->member_srl = $member_srl; $args->auth_key = $auth_key; $output = executeQuery('member.getAuthMail', $args); @@ -2357,10 +2447,235 @@ function procMemberAuthEmailAddress() // Remove all values having the member_srl and new_password equal to 'XE_change_emaill_address' from authentication table executeQuery('member.deleteAuthChangeEmailAddress',$args); + $this->_clearMemberCache($args->member_srl); + // Notify the result $this->setTemplatePath($this->module_path.'tpl'); $this->setTemplateFile('msg_success_modify_email_address'); } + + /** + * trigger for document.getDocumentMenu. Append to popup menu a button for procMemberSpammerManage() + * + * @param array &$menu_list + * + * @return object + **/ + function triggerGetDocumentMenu(&$menu_list) + { + if(!Context::get('is_logged')) return new Object(); + + $logged_info = Context::get('logged_info'); + $document_srl = Context::get('target_srl'); + + $oDocumentModel = getModel('document'); + $columnList = array('document_srl', 'module_srl', 'member_srl', 'ipaddress'); + $oDocument = $oDocumentModel->getDocument($document_srl, false, false, $columnList); + $member_srl = $oDocument->get('member_srl'); + $module_srl = $oDocument->get('module_srl'); + + if(!$member_srl) return new Object(); + if($oDocumentModel->grant->manager != 1 || $member_srl==$logged_info->member_srl) return new Object(); + + $oDocumentController = getController('document'); + $url = getUrl('','module','member','act','dispMemberSpammer','member_srl',$member_srl,'module_srl',$module_srl); + $oDocumentController->addDocumentPopupMenu($url,'cmd_spammer','','popup'); + + return new Object(); + } + + /** + * trigger for comment.getCommentMenu. Append to popup menu a button for procMemberSpammerManage() + * + * @param array &$menu_list + * + * @return object + **/ + function triggerGetCommentMenu(&$menu_list) + { + if(!Context::get('is_logged')) return new Object(); + + $logged_info = Context::get('logged_info'); + $comment_srl = Context::get('target_srl'); + + $oCommentModel = getModel('comment'); + $columnList = array('comment_srl', 'module_srl', 'member_srl', 'ipaddress'); + $oComment = $oCommentModel->getComment($comment_srl, FALSE, $columnList); + $module_srl = $oComment->get('module_srl'); + $member_srl = $oComment->get('member_srl'); + + if(!$member_srl) return new Object(); + if($oCommentModel->grant->manager != 1 || $member_srl==$logged_info->member_srl) return new Object(); + + $oCommentController = getController('comment'); + $url = getUrl('','module','member','act','dispMemberSpammer','member_srl',$member_srl,'module_srl',$module_srl); + $oCommentController->addCommentPopupMenu($url,'cmd_spammer','','popup'); + + return new Object(); + } + + /** + * Spammer manage. Denied user login. And delete or trash all documents. Response Ajax string + * + * @return object + **/ + function procMemberSpammerManage() + { + if(!Context::get('is_logged')) return new Object(-1,'msg_not_permitted'); + + $logged_info = Context::get('logged_info'); + $member_srl = Context::get('member_srl'); + $module_srl = Context::get('module_srl'); + $cnt_loop = Context::get('cnt_loop'); + $proc_type = Context::get('proc_type'); + $isMoveToTrash = true; + if($proc_type == "delete") + $isMoveToTrash = false; + + // check grant + $oModuleModel = getModel('module'); + $columnList = array('module_srl', 'module'); + $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl, $columnList); + $grant = $oModuleModel->getGrant($module_info, $logged_info); + + if(!$grant->manager) return new Object(-1,'msg_not_permitted'); + + $proc_msg = ""; + + $oDocumentModel = getModel('document'); + $oCommentModel = getModel('comment'); + + // delete or trash destination + // proc member + if($cnt_loop == 1) + $this->_spammerMember($member_srl); + // proc document and comment + elseif($cnt_loop>1) + $this->_spammerDocuments($member_srl, $isMoveToTrash); + + // get destination count + $cnt_document = $oDocumentModel->getDocumentCountByMemberSrl($member_srl); + $cnt_comment = $oCommentModel->getCommentCountByMemberSrl($member_srl); + + $total_count = Context::get('total_count'); + $remain_count = $cnt_document + $cnt_comment; + if($cnt_loop == 1) $total_count = $remain_count; + + // get progress percent + if($total_count > 0) + $progress = intval( ( ( $total_count - $remain_count ) / $total_count ) * 100 ); + else + $progress = 100; + + $this->add('total_count', $total_count); + $this->add('remain_count', $remain_count); + $this->add('progress', $progress); + $this->add('member_srl', $member_srl); + $this->add('module_srl', $module_srl); + $this->add('cnt_loop', ++$cnt_loop); + $this->add('proc_type', $proc_type); + + return new Object(0); + } + + /** + * Denied user login and write description + * + * @param int $member_srl + * + * @return object + **/ + private function _spammerMember($member_srl) { + $logged_info = Context::get('logged_info'); + $spam_description = trim( Context::get('spam_description') ); + + $oMemberModel = getModel('member'); + $columnList = array('member_srl', 'description'); + // get member current infomation + $member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl, 0, $columnList); + + $oDocumentModel = getModel('document'); + $oCommentModel = getModel('comment'); + $cnt_comment = $oCommentModel->getCommentCountByMemberSrl($member_srl); + $cnt_document = $oDocumentModel->getDocumentCountByMemberSrl($member_srl); + $total_count = $cnt_comment + $cnt_document; + + $args = new stdClass(); + $args->member_srl= $member_info->member_srl; + $args->denied = "Y"; + $args->description = trim( $member_info->description ); + if( $args->description != "" ) $args->description .= "\n"; // add new line + + $args->description .= Context::getLang('cmd_spammer') . "[" . date("Y-m-d H:i:s") . " from:" . $logged_info->user_id . " info:" . $spam_description . " docuemnts count:" . $total_count . "]"; + + $output = $this->updateMember($args, true); + + $this->_clearMemberCache($args->member_srl); + + return $output; + } + + /** + * Delete or trash all documents + * + * @param int $member_srl + * @param bool $isMoveToTrash + * + * @return object + **/ + private function _spammerDocuments($member_srl, $isMoveToTrash) { + $oDocumentController = getController('document'); + $oDocumentModel = getModel('document'); + $oCommentController = getController('comment'); + $oCommentModel = getModel('comment'); + + // delete count by one request + $getContentsCount = 10; + + // 1. proc comment, 2. proc document + $cnt_comment = $oCommentModel->getCommentCountByMemberSrl($member_srl); + $cnt_document = $oDocumentModel->getDocumentCountByMemberSrl($member_srl); + if($cnt_comment > 0) + { + $columnList = array(); + $commentList = $oCommentModel->getCommentListByMemberSrl($member_srl, $columnList, 0, false, $getContentsCount); + if($commentList) { + foreach($commentList as $v) { + $oCommentController->deleteComment($v->comment_srl, true, $isMoveToTrash); + } + } + } elseif($cnt_document > 0) { + $columnList = array(); + $documentList = $oDocumentModel->getDocumentListByMemberSrl($member_srl, $columnList, 0, false, $getContentsCount); + if($documentList) { + foreach($documentList as $v) { + if($isMoveToTrash) $oDocumentController->moveDocumentToTrash($v); + else $oDocumentController->deleteDocument($v->document_srl); + } + } + } + + return array(); + } + + function _clearMemberCache($member_srl, $site_srl = 0) + { + $oCacheHandler = CacheHandler::getInstance('object', NULL, TRUE); + if($oCacheHandler->isSupport()) + { + $object_key = 'member_groups:' . getNumberingPath($member_srl) . $member_srl . '_' . $site_srl; + $cache_key = $oCacheHandler->getGroupKey('member', $object_key); + $oCacheHandler->delete($cache_key); + } + + $oCacheHandler = CacheHandler::getInstance('object'); + if($oCacheHandler->isSupport()) + { + $object_key = 'member_info:' . getNumberingPath($member_srl) . $member_srl; + $cache_key = $oCacheHandler->getGroupKey('member', $object_key); + $oCacheHandler->delete($cache_key); + } + } } /* End of file member.controller.php */ /* Location: ./modules/member/member.controller.php */ From 5f2e9b5fcba6b89d1258b5b301c9625efea35ace Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 28 Jan 2014 14:03:56 +0900 Subject: [PATCH 084/549] =?UTF-8?q?NOISSUE=20=EB=A0=88=EC=9D=B4=EC=95=84?= =?UTF-8?q?=EC=9B=83=20=EB=B3=B5=EC=82=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/layout/layout.admin.controller.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/layout/layout.admin.controller.php b/modules/layout/layout.admin.controller.php index b04d0ea45e..c935fec20b 100644 --- a/modules/layout/layout.admin.controller.php +++ b/modules/layout/layout.admin.controller.php @@ -757,7 +757,7 @@ function procLayoutAdminCopyLayout() if($layout->extra_var_count) { $reg = "/^.\/files\/attach\/images\/([0-9]+)\/(.*)/"; - foreach($extra_vars as $key => $val) { + if($extra_vars) foreach($extra_vars as $key => $val) { if($layout->extra_var->{$key}->type == 'image') { if(!preg_match($reg,$val,$matches)) continue; $image_list[$key]->filename = $matches[2]; From 8880f81463495ef4a8ef849288047a6b60aca799 Mon Sep 17 00:00:00 2001 From: khongchi Date: Tue, 28 Jan 2014 14:35:13 +0900 Subject: [PATCH 085/549] =?UTF-8?q?#377=20=EC=A0=88=EB=8C=80=EA=B2=BD?= =?UTF-8?q?=EB=A1=9C=EB=A1=9C=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=EC=97=85?= =?UTF-8?q?=EB=A1=9C=EB=93=9C=20=EC=9D=B4=EB=AF=B8=EC=A7=80=EA=B0=80=20?= =?UTF-8?q?=EC=B6=9C=EB=A0=A5=EB=90=98=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/layout/layout.admin.model.php | 2 +- modules/layout/layout.model.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/layout/layout.admin.model.php b/modules/layout/layout.admin.model.php index 195d7e5f6d..a33caca1ee 100644 --- a/modules/layout/layout.admin.model.php +++ b/modules/layout/layout.admin.model.php @@ -141,7 +141,7 @@ public function getLayoutAdminSetHTMLCSS() $layout_image_list = $oLayoutModel->getUserLayoutImageList($layout_info->layout_srl); Context::set('layout_image_list', $layout_image_list); - $layout_image_path = sprintf("./files/faceOff/%s/images/", getNumberingPath($layout_info->layout_srl,3)); + $layout_image_path = $oLayoutModel->getUserLayoutImagePath($layout_info->layout_srl); Context::set('layout_image_path', $layout_image_path); // Set widget list $oWidgetModel = getModel('widget'); diff --git a/modules/layout/layout.model.php b/modules/layout/layout.model.php index 19e192d5d0..e45cb59226 100644 --- a/modules/layout/layout.model.php +++ b/modules/layout/layout.model.php @@ -782,7 +782,7 @@ function getUserLayoutIniConfig($layout_srl, $layout_name=null) */ function getUserLayoutPath($layout_srl) { - return sprintf("%sfiles/faceOff/%s", _XE_PATH_, getNumberingPath($layout_srl,3)); + return sprintf("./files/faceOff/%s", getNumberingPath($layout_srl,3)); } /** From 39bc0a914ee355f08ed545a6ce88ed4310599b85 Mon Sep 17 00:00:00 2001 From: SMaker Date: Tue, 28 Jan 2014 16:19:48 +0900 Subject: [PATCH 086/549] =?UTF-8?q?$val=EC=9D=B4=20=EC=97=86=EC=9D=84=20?= =?UTF-8?q?=EA=B2=BD=EC=9A=B0=20=EA=B7=B8=EB=83=A5=20continue=20=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/addon/addon.admin.model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/addon/addon.admin.model.php b/modules/addon/addon.admin.model.php index 5c700b2f48..664c22e4fb 100644 --- a/modules/addon/addon.admin.model.php +++ b/modules/addon/addon.admin.model.php @@ -258,7 +258,7 @@ function getAddonInfoXml($addon, $site_srl = 0, $gtype = 'site') $obj = new stdClass(); if(!$val) { - $val = new stdClass(); + continue; } if(!$val->attrs) { From b5e656acb771f7fcd32dd9701185a8c3a4d77799 Mon Sep 17 00:00:00 2001 From: SMaker Date: Tue, 28 Jan 2014 17:05:47 +0900 Subject: [PATCH 087/549] =?UTF-8?q?addon=20format=200.1=EC=97=90=20?= =?UTF-8?q?=EB=8C=80=ED=95=B4=EC=84=9C=EB=8F=84=20=EB=8C=80=EC=9D=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/addon/addon.admin.model.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/addon/addon.admin.model.php b/modules/addon/addon.admin.model.php index 664c22e4fb..5e1425fc59 100644 --- a/modules/addon/addon.admin.model.php +++ b/modules/addon/addon.admin.model.php @@ -255,11 +255,12 @@ function getAddonInfoXml($addon, $site_srl = 0, $gtype = 'site') foreach($extra_vars as $key => $val) { - $obj = new stdClass(); if(!$val) { continue; } + + $obj = new stdClass(); if(!$val->attrs) { $val->attrs = new stdClass(); @@ -349,6 +350,11 @@ function getAddonInfoXml($addon, $site_srl = 0, $gtype = 'site') $addon_info->extra_vars = array(); foreach($extra_vars as $key => $val) { + if(!$val) + { + continue; + } + $obj = new stdClass(); $obj->group = $group->title->body; From ce26e38de0112107d3ec46fc74b7417800107213 Mon Sep 17 00:00:00 2001 From: bnu Date: Tue, 28 Jan 2014 18:49:32 +0900 Subject: [PATCH 088/549] MINIFY --- addons/oembed/jquery.oembed.min.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/oembed/jquery.oembed.min.css b/addons/oembed/jquery.oembed.min.css index f1f5c13ff6..14849c7b98 100644 --- a/addons/oembed/jquery.oembed.min.css +++ b/addons/oembed/jquery.oembed.min.css @@ -1 +1 @@ -div.oembedall-githubrepos{border:1px solid #DDD;border-radius:4px;list-style-type:none;margin:0 0 10px;padding:8px 10px 0;font:13.34px/1.4 helvetica,arial,freesans,clean,sans-serif;width:452px;background-color:#fff}div.oembedall-githubrepos .oembedall-body{background:-moz-linear-gradient(center top,#FAFAFA,#EFEFEF) repeat scroll 0 0 transparent;background:-webkit-gradient(linear,left top,left bottom,from(#FAFAFA),to(#EFEFEF));border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-top:1px solid #EEE;margin-left:-10px;margin-top:8px;padding:5px 10px;width:100%}div.oembedall-githubrepos h3{font-size:14px;margin:0;padding-left:18px;white-space:nowrap}div.oembedall-githubrepos p.oembedall-description{color:#444;font-size:12px;margin:0 0 3px}div.oembedall-githubrepos p.oembedall-updated-at{color:#888;font-size:11px;margin:0}div.oembedall-githubrepos ul.oembedall-repo-stats{border:medium none;float:right;font-size:11px;font-weight:700;padding-left:15px;position:relative;z-index:5;margin:0}div.oembedall-githubrepos ul.oembedall-repo-stats li{border:medium none;color:#666;display:inline-block;list-style-type:none;margin:0!important}div.oembedall-githubrepos ul.oembedall-repo-stats li a{background-color:transparent;border:medium none;color:#666!important;background-position:5px -2px;background-repeat:no-repeat;border-left:1px solid #DDD;display:inline-block;height:21px;line-height:21px;padding:0 5px 0 23px}div.oembedall-githubrepos ul.oembedall-repo-stats li:first-child a{border-left:medium none;margin-right:-3px}div.oembedall-githubrepos ul.oembedall-repo-stats li a:hover{background:none no-repeat scroll 5px -27px #4183C4;color:#FFF!important;text-decoration:none}div.oembedall-githubrepos ul.oembedall-repo-stats li:first-child a:hover{border-bottom-left-radius:3px;border-top-left-radius:3px}ul.oembedall-repo-stats li:last-child a:hover{border-bottom-right-radius:3px;border-top-right-radius:3px}span.oembedall-closehide{background-color:#aaa;border-radius:2px;cursor:pointer;margin-right:3px}div.oembedall-container{margin-top:5px;text-align:left}.oembedall-ljuser{font-weight:700}.oembedall-ljuser img{vertical-align:bottom;border:0;padding-right:1px}.oembedall-stoqembed{border-bottom:1px dotted #999;float:left;overflow:hidden;width:730px;line-height:1;background:none repeat scroll 0 0 #FFF;color:#000;font-family:Arial,Liberation Sans,DejaVu Sans,sans-serif;font-size:80%;text-align:left;margin:0;padding:0}.oembedall-stoqembed a{color:#07C;text-decoration:none;margin:0;padding:0}.oembedall-stoqembed a:hover{text-decoration:underline}.oembedall-stoqembed a:visited{color:#4A6B82}.oembedall-stoqembed h3{font-family:Trebuchet MS,Liberation Sans,DejaVu Sans,sans-serif;font-size:130%;font-weight:700;margin:0;padding:0}.oembedall-stoqembed .oembedall-reputation-score{color:#444;font-size:120%;font-weight:700;margin-right:2px}.oembedall-stoqembed .oembedall-user-info{height:35px;width:185px}.oembedall-stoqembed .oembedall-user-info .oembedall-user-gravatar32{float:left;height:32px;width:32px}.oembedall-stoqembed .oembedall-user-info .oembedall-user-details{float:left;margin-left:5px;overflow:hidden;white-space:nowrap;width:145px}.oembedall-stoqembed .oembedall-question-hyperlink{font-weight:700}.oembedall-stoqembed .oembedall-stats{background:none repeat scroll 0 0 #EEE;margin:0 0 0 7px;padding:4px 7px 6px;width:58px}.oembedall-stoqembed .oembedall-statscontainer{float:left;margin-right:8px;width:86px}.oembedall-stoqembed .oembedall-votes{color:#555;padding:0 0 7px;text-align:center}.oembedall-stoqembed .oembedall-vote-count-post{font-size:240%;color:#808185;display:block;font-weight:700}.oembedall-stoqembed .oembedall-views{color:#999;padding-top:4px;text-align:center}.oembedall-stoqembed .oembedall-status{margin-top:-3px;padding:4px 0;text-align:center;background:none repeat scroll 0 0 #75845C;color:#FFF}.oembedall-stoqembed .oembedall-status strong{color:#FFF;display:block;font-size:140%}.oembedall-stoqembed .oembedall-summary{float:left;width:635px}.oembedall-stoqembed .oembedall-excerpt{line-height:1.2;margin:0;padding:0 0 5px}.oembedall-stoqembed .oembedall-tags{float:left;line-height:18px}.oembedall-stoqembed .oembedall-tags a:hover{text-decoration:none}.oembedall-stoqembed .oembedall-post-tag{background-color:#E0EAF1;border-bottom:1px solid #3E6D8E;border-right:1px solid #7F9FB6;color:#3E6D8E;font-size:90%;line-height:2.4;margin:2px 2px 2px 0;padding:3px 4px;text-decoration:none;white-space:nowrap}.oembedall-stoqembed .oembedall-post-tag:hover{background-color:#3E6D8E;border-bottom:1px solid #37607D;border-right:1px solid #37607D;color:#E0EAF1}.oembedall-stoqembed .oembedall-fr{float:right}.oembedall-stoqembed .oembedall-statsarrow{background-image:url(http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=3);background-repeat:no-repeat;overflow:hidden;background-position:0 -435px;float:right;height:13px;margin-top:12px;width:7px}.oembedall-facebook1{border:#1A3C6C solid 1px;padding:0;font:13.34px/1.4 verdana;width:500px}.oembedall-facebook2{background-color:#627add}.oembedall-facebook2 a{color:#e8e8e8;text-decoration:none}.oembedall-facebookBody{background-color:#fff;vertical-align:top;padding:5px}.oembedall-facebookBody .contents{display:inline-block;width:100%}.oembedall-facebookBody div img{float:left;margin-right:5px}div.oembedall-lanyard{-webkit-box-shadow:none;-webkit-transition-delay:0s;-webkit-transition-duration:.4000000059604645s;-webkit-transition-property:width;-webkit-transition-timing-function:cubic-bezier(0.42,0,.58,1);background-attachment:scroll;background-clip:border-box;background-color:transparent;background-image:none;background-origin:padding-box;border-bottom-width:0;border-left-width:0;border-right-width:0;border-top-width:0;box-shadow:none;color:#112644;display:block;float:left;font-family:'Trebuchet MS',Trebuchet,sans-serif;font-size:16px;height:253px;line-height:19px;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;max-width:none;min-height:0;outline-color:#112644;outline-style:none;outline-width:0;overflow-x:visible;overflow-y:visible;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;position:relative;text-align:left;vertical-align:baseline;width:804px}div.oembedall-lanyard .tagline{font-size:1.5em}div.oembedall-lanyard .wrapper{overflow:hidden;clear:both}div.oembedall-lanyard .split{float:left;display:inline}div.oembedall-lanyard .prominent-place .flag:active,div.oembedall-lanyard .prominent-place .flag:focus,div.oembedall-lanyard .prominent-place .flag:hover,div.oembedall-lanyard .prominent-place .flag:link,div.oembedall-lanyard .prominent-place .flag:visited{float:left;display:block;width:48px;height:48px;position:relative;top:-5px;margin-right:10px}div.oembedall-lanyard .place-context{font-size:.889em}div.oembedall-lanyard .prominent-place .sub-place{display:block}div.oembedall-lanyard .prominent-place{font-size:1.125em;line-height:1.1em;font-weight:400}div.oembedall-lanyard .main-date{color:#8CB4E0;font-weight:700;line-height:1.1}div.oembedall-lanyard .first{width:48.57%;margin:0 0 0 2.857%} \ No newline at end of file +div.oembedall-githubrepos{border:1px solid #DDD;border-radius:4px;list-style-type:none;margin:0 0 10px;padding:8px 10px 0;font:13.34px/1.4 helvetica,arial,freesans,clean,sans-serif;width:452px;background-color:#fff}div.oembedall-githubrepos .oembedall-body{background:-moz-linear-gradient(center top,#FAFAFA,#EFEFEF) repeat scroll 0 0 transparent;background:-webkit-gradient(linear,left top,left bottom,from(#FAFAFA),to(#EFEFEF));border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-top:1px solid #EEE;margin-left:-10px;margin-top:8px;padding:5px 10px;width:100%}div.oembedall-githubrepos h3{font-size:14px;margin:0;padding-left:18px;white-space:nowrap}div.oembedall-githubrepos p.oembedall-description{color:#444;font-size:12px;margin:0 0 3px}div.oembedall-githubrepos p.oembedall-updated-at{color:#888;font-size:11px;margin:0}div.oembedall-githubrepos ul.oembedall-repo-stats{border:medium none;float:right;font-size:11px;font-weight:700;padding-left:15px;position:relative;z-index:5;margin:0}div.oembedall-githubrepos ul.oembedall-repo-stats li{border:medium none;color:#666;display:inline-block;list-style-type:none;margin:0!important}div.oembedall-githubrepos ul.oembedall-repo-stats li a{background-color:transparent;border:medium none;color:#666!important;background-position:5px -2px;background-repeat:no-repeat;border-left:1px solid #DDD;display:inline-block;height:21px;line-height:21px;padding:0 5px 0 23px}div.oembedall-githubrepos ul.oembedall-repo-stats li:first-child a{border-left:medium none;margin-right:-3px}div.oembedall-githubrepos ul.oembedall-repo-stats li a:hover{background:none no-repeat scroll 5px -27px #4183C4;color:#FFF!important;text-decoration:none}div.oembedall-githubrepos ul.oembedall-repo-stats li:first-child a:hover{border-bottom-left-radius:3px;border-top-left-radius:3px}ul.oembedall-repo-stats li:last-child a:hover{border-bottom-right-radius:3px;border-top-right-radius:3px}span.oembedall-closehide{background-color:#EEE;border-radius:2px;cursor:pointer;margin-right:3px;padding:0 3px}div.oembedall-container{margin-top:5px;text-align:left}.oembedall-ljuser{font-weight:700}.oembedall-ljuser img{vertical-align:bottom;border:0;padding-right:1px}.oembedall-stoqembed{border-bottom:1px dotted #999;float:left;overflow:hidden;width:730px;line-height:1;background:none repeat scroll 0 0 #FFF;color:#000;font-family:Arial,Liberation Sans,DejaVu Sans,sans-serif;font-size:80%;text-align:left;margin:0;padding:0}.oembedall-stoqembed a{color:#07C;text-decoration:none;margin:0;padding:0}.oembedall-stoqembed a:hover{text-decoration:underline}.oembedall-stoqembed a:visited{color:#4A6B82}.oembedall-stoqembed h3{font-family:Trebuchet MS,Liberation Sans,DejaVu Sans,sans-serif;font-size:130%;font-weight:700;margin:0;padding:0}.oembedall-stoqembed .oembedall-reputation-score{color:#444;font-size:120%;font-weight:700;margin-right:2px}.oembedall-stoqembed .oembedall-user-info{height:35px;width:185px}.oembedall-stoqembed .oembedall-user-info .oembedall-user-gravatar32{float:left;height:32px;width:32px}.oembedall-stoqembed .oembedall-user-info .oembedall-user-details{float:left;margin-left:5px;overflow:hidden;white-space:nowrap;width:145px}.oembedall-stoqembed .oembedall-question-hyperlink{font-weight:700}.oembedall-stoqembed .oembedall-stats{background:none repeat scroll 0 0 #EEE;margin:0 0 0 7px;padding:4px 7px 6px;width:58px}.oembedall-stoqembed .oembedall-statscontainer{float:left;margin-right:8px;width:86px}.oembedall-stoqembed .oembedall-votes{color:#555;padding:0 0 7px;text-align:center}.oembedall-stoqembed .oembedall-vote-count-post{font-size:240%;color:#808185;display:block;font-weight:700}.oembedall-stoqembed .oembedall-views{color:#999;padding-top:4px;text-align:center}.oembedall-stoqembed .oembedall-status{margin-top:-3px;padding:4px 0;text-align:center;background:none repeat scroll 0 0 #75845C;color:#FFF}.oembedall-stoqembed .oembedall-status strong{color:#FFF;display:block;font-size:140%}.oembedall-stoqembed .oembedall-summary{float:left;width:635px}.oembedall-stoqembed .oembedall-excerpt{line-height:1.2;margin:0;padding:0 0 5px}.oembedall-stoqembed .oembedall-tags{float:left;line-height:18px}.oembedall-stoqembed .oembedall-tags a:hover{text-decoration:none}.oembedall-stoqembed .oembedall-post-tag{background-color:#E0EAF1;border-bottom:1px solid #3E6D8E;border-right:1px solid #7F9FB6;color:#3E6D8E;font-size:90%;line-height:2.4;margin:2px 2px 2px 0;padding:3px 4px;text-decoration:none;white-space:nowrap}.oembedall-stoqembed .oembedall-post-tag:hover{background-color:#3E6D8E;border-bottom:1px solid #37607D;border-right:1px solid #37607D;color:#E0EAF1}.oembedall-stoqembed .oembedall-fr{float:right}.oembedall-stoqembed .oembedall-statsarrow{background-image:url(http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=3);background-repeat:no-repeat;overflow:hidden;background-position:0 -435px;float:right;height:13px;margin-top:12px;width:7px}.oembedall-facebook1{border:#1A3C6C solid 1px;padding:0;font:13.34px/1.4 verdana;width:500px}.oembedall-facebook2{background-color:#627add}.oembedall-facebook2 a{color:#e8e8e8;text-decoration:none}.oembedall-facebookBody{background-color:#fff;vertical-align:top;padding:5px}.oembedall-facebookBody .contents{display:inline-block;width:100%}.oembedall-facebookBody div img{float:left;margin-right:5px}div.oembedall-lanyard{-webkit-box-shadow:none;-webkit-transition-delay:0s;-webkit-transition-duration:.4000000059604645s;-webkit-transition-property:width;-webkit-transition-timing-function:cubic-bezier(0.42,0,.58,1);background-attachment:scroll;background-clip:border-box;background-color:transparent;background-image:none;background-origin:padding-box;border-bottom-width:0;border-left-width:0;border-right-width:0;border-top-width:0;box-shadow:none;color:#112644;display:block;float:left;font-family:'Trebuchet MS',Trebuchet,sans-serif;font-size:16px;height:253px;line-height:19px;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;max-width:none;min-height:0;outline-color:#112644;outline-style:none;outline-width:0;overflow-x:visible;overflow-y:visible;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;position:relative;text-align:left;vertical-align:baseline;width:804px}div.oembedall-lanyard .tagline{font-size:1.5em}div.oembedall-lanyard .wrapper{overflow:hidden;clear:both}div.oembedall-lanyard .split{float:left;display:inline}div.oembedall-lanyard .prominent-place .flag:active,div.oembedall-lanyard .prominent-place .flag:focus,div.oembedall-lanyard .prominent-place .flag:hover,div.oembedall-lanyard .prominent-place .flag:link,div.oembedall-lanyard .prominent-place .flag:visited{float:left;display:block;width:48px;height:48px;position:relative;top:-5px;margin-right:10px}div.oembedall-lanyard .place-context{font-size:.889em}div.oembedall-lanyard .prominent-place .sub-place{display:block}div.oembedall-lanyard .prominent-place{font-size:1.125em;line-height:1.1em;font-weight:400}div.oembedall-lanyard .main-date{color:#8CB4E0;font-weight:700;line-height:1.1}div.oembedall-lanyard .first{width:48.57%;margin:0 0 0 2.857%} \ No newline at end of file From 4427326065b2d9e972a08c344512c4c9c3ba8f5a Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 28 Jan 2014 20:06:26 +0900 Subject: [PATCH 089/549] =?UTF-8?q?=EC=82=AC=EC=9D=B4=ED=8A=B8=20=EB=94=94?= =?UTF-8?q?=EC=9E=90=EC=9D=B8=20=EC=84=A4=EC=A0=95=EC=8B=9C=20=EC=98=A4?= =?UTF-8?q?=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/module/module.model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/module/module.model.php b/modules/module/module.model.php index cdbe27bdc4..12da26c886 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -1830,7 +1830,7 @@ function getModuleDefaultSkin($module_name, $skin_type = 'P', $site_srl = 0, $up if($updateCache && $skinName) { - $designInfo->module->{$module_name} = new stdClass(); + if(!isset($designInfo->module->{$module_name})) $designInfo->module->{$module_name} = new stdClass(); $designInfo->module->{$module_name}->{$target} = $skinName; $oAdminController = getAdminController('admin'); From dc307cb7d69d71f84cafb3784100d84344eef946 Mon Sep 17 00:00:00 2001 From: largeden Date: Tue, 28 Jan 2014 20:08:20 +0900 Subject: [PATCH 090/549] =?UTF-8?q?#375=20=EA=B2=8C=EC=8B=9C=ED=8C=90=20?= =?UTF-8?q?=EC=A0=95=EB=A0=AC=20=EA=B8=B0=EC=A4=80=20=EC=BB=AC=EB=9F=BC=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20regdate=20->=20list=5Forder=20-=20?= =?UTF-8?q?=EA=B2=8C=EC=8B=9C=ED=8C=90=EB=AA=A8=EB=93=88=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=EC=97=90=EC=84=9C=20=EB=AC=B8=EC=84=9C=EB=B2=88?= =?UTF-8?q?=ED=98=B8=20=EC=A0=95=EB=A0=AC(list=5Forder)=EC=9D=84=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=EC=9D=BC=20=EC=A0=95=EB=A0=AC=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD(=EB=AC=B8=EC=84=9C=EB=B2=88=ED=98=B8=20?= =?UTF-8?q?=ED=91=9C=EA=B8=B0=EB=8A=94=20=EC=82=AD=EC=A0=9C)=20-=20default?= =?UTF-8?q?=20=EC=8A=A4=ED=82=A8=EC=97=90=EC=84=9C=20sort=5Findex=EC=9D=98?= =?UTF-8?q?=20regdate,=20last=5Fupdate=20=EA=B0=92=EC=9D=84=20list=5Forder?= =?UTF-8?q?,=20update=5Forder=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/board/board.admin.view.php | 2 +- modules/board/board.class.php | 2 +- modules/board/skins/default/list.html | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/board/board.admin.view.php b/modules/board/board.admin.view.php index 3f53e5e7dd..90cfbee547 100644 --- a/modules/board/board.admin.view.php +++ b/modules/board/board.admin.view.php @@ -55,7 +55,7 @@ function init() { // install order (sorting) options foreach($this->order_target as $key) $order_target[$key] = Context::getLang($key); - $order_target['list_order'] = Context::getLang('document_srl'); + $order_target['list_order'] = Context::getLang('regdate'); $order_target['update_order'] = Context::getLang('last_update'); Context::set('order_target', $order_target); } diff --git a/modules/board/board.class.php b/modules/board/board.class.php index d3adbd4713..cb81e10f70 100644 --- a/modules/board/board.class.php +++ b/modules/board/board.class.php @@ -11,7 +11,7 @@ class board extends ModuleObject { var $search_option = array('title','content','title_content','comment','user_name','nick_name','user_id','tag'); ///< 검색 옵션 - var $order_target = array('list_order', 'update_order', 'regdate', 'voted_count', 'blamed_count', 'readed_count', 'comment_count', 'title'); // 정렬 옵션 + var $order_target = array('list_order', 'update_order', 'voted_count', 'blamed_count', 'readed_count', 'comment_count', 'title'); // 정렬 옵션 var $skin = "default"; ///< skin name var $list_count = 20; ///< the number of documents displayed in a page diff --git a/modules/board/skins/default/list.html b/modules/board/skins/default/list.html index bd58261a44..b5b06ed55a 100644 --- a/modules/board/skins/default/list.html +++ b/modules/board/skins/default/list.html @@ -11,9 +11,9 @@ - - - + + + From 7813cb00a3b92d2680d0fd5e9df9e68bba55729b Mon Sep 17 00:00:00 2001 From: khongchi Date: Wed, 29 Jan 2014 01:08:49 +0900 Subject: [PATCH 091/549] =?UTF-8?q?#381=20php=205.4=20=20=ED=98=B8?= =?UTF-8?q?=ED=99=98=EC=84=B1=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/addon/addon.admin.model.php | 3 ++- modules/document/document.admin.controller.php | 1 + modules/document/document.view.php | 1 + modules/file/file.admin.controller.php | 1 + modules/menu/menu.admin.controller.php | 4 +++- widgets/content/content.class.php | 1 + 6 files changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/addon/addon.admin.model.php b/modules/addon/addon.admin.model.php index dfb923e754..b9c9ff6e59 100644 --- a/modules/addon/addon.admin.model.php +++ b/modules/addon/addon.admin.model.php @@ -98,8 +98,9 @@ function getAddonList($site_srl = 0, $gtype = 'site') // Add the path (files/addons precedence) $path = $this->getAddonPath($addon_name); // Wanted information on the add-on - unset($info); $info = $this->getAddonInfoXml($addon_name, $site_srl, $gtype); + + if(!$info) $info = new stdClass(); $info->addon = $addon_name; $info->path = $path; diff --git a/modules/document/document.admin.controller.php b/modules/document/document.admin.controller.php index 7527ec21b1..7d185dc2b1 100644 --- a/modules/document/document.admin.controller.php +++ b/modules/document/document.admin.controller.php @@ -797,6 +797,7 @@ function restoreTrash($originObject) // If the post was not temorarily saved, set the attachment's status to be valid if($oDocument->hasUploadedFiles() && $originObject->member_srl != $originObject->module_srl) { + $args = new stdClass(); $args->upload_target_srl = $oDocument->document_srl; $args->isvalid = 'Y'; $output = executeQuery('file.updateFileValid', $args); diff --git a/modules/document/document.view.php b/modules/document/document.view.php index a070f51141..3fa97cea50 100644 --- a/modules/document/document.view.php +++ b/modules/document/document.view.php @@ -160,6 +160,7 @@ function dispTempSavedList() if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged'); // Get the saved document (module_srl is set to member_srl instead) $logged_info = Context::get('logged_info'); + $args = new stdClass(); $args->member_srl = $logged_info->member_srl; $args->statusList = array($this->getConfigStatus('temp')); $args->page = (int)Context::get('page'); diff --git a/modules/file/file.admin.controller.php b/modules/file/file.admin.controller.php index ecf244c5b4..a3f4604898 100644 --- a/modules/file/file.admin.controller.php +++ b/modules/file/file.admin.controller.php @@ -92,6 +92,7 @@ function procFileAdminDeleteChecked() function procFileAdminInsertConfig() { // Get configurations (using module model object) + $config = new stdClass(); $config->allowed_filesize = Context::get('allowed_filesize'); $config->allowed_attach_size = Context::get('allowed_attach_size'); $config->allowed_filetypes = str_replace(' ', '', Context::get('allowed_filetypes')); diff --git a/modules/menu/menu.admin.controller.php b/modules/menu/menu.admin.controller.php index e88063e90a..e3d47e2ea3 100644 --- a/modules/menu/menu.admin.controller.php +++ b/modules/menu/menu.admin.controller.php @@ -337,6 +337,7 @@ private function _insertShortcut(&$request) if(strncasecmp('http', $request->shortcut_target, 4) === 0 || preg_match('/^(\.\/|\.\.\/|\/).*$/', $request->shortcut_target)) { // set menu variable + $args = new stdClass(); $args->menu_srl = $request->menu_srl; $args->parent_srl = $request->parent_srl; $args->open_window = $request->menu_open_window; @@ -951,7 +952,7 @@ private function _recursiveUpdateMenuItem($node, $menu_srl) { foreach($node AS $key=>$node) { - unset($args); + $args = new stdClass(); $args->menu_srl = $menu_srl; $args->menu_item_srl = $node['node_srl']; $output = executeQuery('menu.updateMenuItemNode', $args); @@ -1460,6 +1461,7 @@ function procMenuAdminInsertItemForAdminMenu() if(empty($url)) $url = getNotEncodedFullUrl('', 'module', 'admin'); $dbInfo = Context::getDBInfo(); + $args = new stdClass(); $args->menu_item_srl = (!$requestArgs->menu_item_srl) ? getNextSequence() : $requestArgs->menu_item_srl; $args->parent_srl = $requestArgs->parent_srl; $args->menu_srl = $requestArgs->menu_srl; diff --git a/widgets/content/content.class.php b/widgets/content/content.class.php index 37011e3865..f91968b55d 100644 --- a/widgets/content/content.class.php +++ b/widgets/content/content.class.php @@ -185,6 +185,7 @@ function proc($args) function _getCommentItems($args) { // List variables to use CommentModel::getCommentList() + $obj = new stdClass(); $obj->module_srl = $args->module_srl; $obj->sort_index = $args->order_target; $obj->list_count = $args->list_count * $args->page_count; From 58e141c48a6159ddddcab3c207d9974c20b59843 Mon Sep 17 00:00:00 2001 From: khongchi Date: Wed, 29 Jan 2014 11:49:47 +0900 Subject: [PATCH 092/549] =?UTF-8?q?#380=20rss=EC=97=90=EC=84=9C=20html?= =?UTF-8?q?=EC=9D=84=20=EC=A0=9C=EB=8C=80=EB=A1=9C=20=EC=B6=9C=EB=A0=A5?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/rss/tpl/atom10.html | 6 +++--- modules/rss/tpl/rss10.html | 6 +++--- modules/rss/tpl/rss20.html | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/rss/tpl/atom10.html b/modules/rss/tpl/atom10.html index a68e2b3d3b..e7b8bebaea 100644 --- a/modules/rss/tpl/atom10.html +++ b/modules/rss/tpl/atom10.html @@ -11,7 +11,7 @@ XpressEngine - <![CDATA[{str_replace('\'', ''', htmlspecialchars($oDocument->getTitleText(), ENT_COMPAT | ENT_HTML401, 'UTF-8', false))}]]> + <![CDATA[{$oDocument->getTitleText()}]]> {$oDocument->getPermanentUrl()} {$oDocument->getRegdate('Y-m-d\TH:i:sP')} {zdate($oDocument->get('last_update'),'Y-m-d\TH:i:sP')} @@ -24,9 +24,9 @@ - getTransContent(false,false,true), ENT_COMPAT | ENT_HTML401, 'UTF-8', false))}]]> + getTransContent(false,false,true)}]]> - getContentText(100), ENT_COMPAT | ENT_HTML401, 'UTF-8', false))}]]> + getContentText(100)}]]> diff --git a/modules/rss/tpl/rss10.html b/modules/rss/tpl/rss10.html index d5de2ff957..4fd85fedbd 100644 --- a/modules/rss/tpl/rss10.html +++ b/modules/rss/tpl/rss10.html @@ -4,7 +4,7 @@ <![CDATA[{$info->title}]]> {$info->link} - {str_replace('\'', ''', htmlspecialchars($info->description, ENT_COMPAT | ENT_HTML401, 'UTF-8', false))} + description} @@ -17,9 +17,9 @@ - <![CDATA[{str_replace('\'', ''',htmlspecialchars($oDocument->getTitleText(), ENT_COMPAT | ENT_HTML401, 'UTF-8', false))}]]> + <![CDATA[{$oDocument->getTitleText()}]]> {$oDocument->getPermanentUrl()} - getContentText(200), ENT_COMPAT | ENT_HTML401, 'UTF-8', false))}]]> + getContentText(200)}]]> {$oDocument->getRegdate('Y-m-d\TH:i:sP')} diff --git a/modules/rss/tpl/rss20.html b/modules/rss/tpl/rss20.html index 42d052a64c..1f8537e984 100644 --- a/modules/rss/tpl/rss20.html +++ b/modules/rss/tpl/rss20.html @@ -29,9 +29,9 @@ {$oDocument->getPermanentUrl()}#comment - getTransContent(false,false,true), ENT_COMPAT | ENT_HTML401, 'UTF-8', false))}]]> + getTransContent(false,false,true)}]]> - getContentText(100), ENT_COMPAT | ENT_HTML401, 'UTF-8', false))}]]> + getContentText(100)}]]> {$oDocument->getRegdateGM()} From d48d9d80a75e9fd1134591e1101658e159ed8356 Mon Sep 17 00:00:00 2001 From: bnu Date: Wed, 29 Jan 2014 14:30:32 +0900 Subject: [PATCH 093/549] =?UTF-8?q?fix=20#385=20object=20cache=20=EC=A0=95?= =?UTF-8?q?=EB=A6=AC=20=EB=B0=8F=20=EC=98=A4=EB=A5=98=EA=B0=80=20=EB=B0=9C?= =?UTF-8?q?=EC=83=9D=ED=95=A0=20=EC=88=98=20=EB=8A=94=20=EB=AC=B8=EC=A0=9C?= =?UTF-8?q?=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/cache/CacheApc.class.php | 9 ++- classes/cache/CacheFile.class.php | 21 ++++-- classes/cache/CacheMemcache.class.php | 4 +- classes/cache/CacheWincache.class.php | 8 ++- classes/template/TemplateHandler.class.php | 4 +- modules/comment/comment.model.php | 3 +- modules/counter/counter.model.php | 51 +++++++------- modules/document/document.item.php | 20 +++--- modules/document/document.model.php | 8 ++- modules/layout/layout.model.php | 4 +- modules/member/member.model.php | 19 ++++-- modules/module/module.model.php | 77 ++++++++++++++-------- modules/session/session.controller.php | 71 ++++---------------- modules/session/session.model.php | 39 +++++------ 14 files changed, 173 insertions(+), 165 deletions(-) diff --git a/classes/cache/CacheApc.class.php b/classes/cache/CacheApc.class.php index acc2cb45a6..a416b1270d 100644 --- a/classes/cache/CacheApc.class.php +++ b/classes/cache/CacheApc.class.php @@ -8,6 +8,8 @@ * */ class CacheApc extends CacheBase { + public static $isSupport = false; + /** * Get instance of CacheApc * @@ -30,7 +32,6 @@ function getInstance($opt = null) */ function CacheApc() { - } /** @@ -40,7 +41,7 @@ function CacheApc() */ function isSupport() { - return function_exists('apc_add'); + return self::$isSupport; } /** @@ -148,6 +149,10 @@ function truncate() return apc_clear_cache('user'); } + } + +CacheApc::$isSupport = function_exists('apc_add'); + /* End of file CacheApc.class.php */ /* Location: ./classes/cache/CacheApc.class.php */ diff --git a/classes/cache/CacheFile.class.php b/classes/cache/CacheFile.class.php index 85210a4ff6..f837fd5fab 100644 --- a/classes/cache/CacheFile.class.php +++ b/classes/cache/CacheFile.class.php @@ -6,7 +6,7 @@ * * Filedisk Cache Handler * - * @author Arnia Software (xe_dev@arnia.ro) + * @author NAVER (developers@xpressengine.com) */ class CacheFile extends CacheBase { @@ -90,8 +90,15 @@ function put($key, $obj, $valid_time = 0) function isValid($key, $modified_time = 0) { $cache_file = $this->getCacheFileName($key); + if(file_exists($cache_file)) { + if($modified_time > 0 && filemtime($cache_file) < $modified_timed) + { + FileHandler::removeFile($cache_file); + return false; + } + return true; } @@ -107,15 +114,19 @@ function isValid($key, $modified_time = 0) */ function get($key, $modified_time = 0) { - $cache_file = FileHandler::exists($this->getCacheFileName($key)); + if(!$cache_file = FileHandler::exists($this->getCacheFileName($key))) + { + return false; + } - if($cache_file) $content = include($cache_file); - - if(!$content) + if($modified_time > 0 && filemtime($cache_file) < $modified_timed) { + FileHandler::removeFile($cache_file); return false; } + $content = include($cache_file); + return unserialize(stripslashes($content)); } diff --git a/classes/cache/CacheMemcache.class.php b/classes/cache/CacheMemcache.class.php index c5d72efba3..6869ff8388 100644 --- a/classes/cache/CacheMemcache.class.php +++ b/classes/cache/CacheMemcache.class.php @@ -56,10 +56,11 @@ function CacheMemcache($url) */ function isSupport() { - if($GLOBALS['XE_MEMCACHE_SUPPORT']) + if(isset($GLOBALS['XE_MEMCACHE_SUPPORT'])) { return true; } + if($this->Memcache->set('xe', 'xe', MEMCACHE_COMPRESSED, 1)) { $GLOBALS['XE_MEMCACHE_SUPPORT'] = true; @@ -68,6 +69,7 @@ function isSupport() { $GLOBALS['XE_MEMCACHE_SUPPORT'] = false; } + return $GLOBALS['XE_MEMCACHE_SUPPORT']; } diff --git a/classes/cache/CacheWincache.class.php b/classes/cache/CacheWincache.class.php index 1b393a5040..072f968d45 100644 --- a/classes/cache/CacheWincache.class.php +++ b/classes/cache/CacheWincache.class.php @@ -10,6 +10,8 @@ */ class CacheWincache extends CacheBase { + public static $isSupport = false; + /** * Get instance of CacheWincache * @@ -32,7 +34,6 @@ function getInstance($opt = null) */ function CacheWincache() { - } /** @@ -42,7 +43,7 @@ function CacheWincache() */ function isSupport() { - return function_exists('wincache_ucache_set'); + return self::$isSupport; } /** @@ -150,7 +151,8 @@ function truncate() { return wincache_ucache_clear(); } - } + +CacheWincache::$isSupport = function_exists('wincache_ucache_set'); /* End of file CacheWincache.class.php */ /* Location: ./classes/cache/CacheWincache.class.php */ diff --git a/classes/template/TemplateHandler.class.php b/classes/template/TemplateHandler.class.php index ee9370891a..3a9d72b66a 100644 --- a/classes/template/TemplateHandler.class.php +++ b/classes/template/TemplateHandler.class.php @@ -116,7 +116,7 @@ private function init($tpl_path, $tpl_filename, $tpl_file = '') */ public function compile($tpl_path, $tpl_filename, $tpl_file = '') { - $buff = ''; + $buff = false; // store the starting time for debug information if(__DEBUG__ == 3) @@ -159,7 +159,7 @@ public function compile($tpl_path, $tpl_filename, $tpl_file = '') } } - if(!$buff) + if($buff === FALSE) { $buff = $this->parse(); if($oCacheHandler->isSupport()) diff --git a/modules/comment/comment.model.php b/modules/comment/comment.model.php index 4c772ed393..d5f5356347 100644 --- a/modules/comment/comment.model.php +++ b/modules/comment/comment.model.php @@ -442,6 +442,7 @@ function getCommentList($document_srl, $page = 0, $is_admin = FALSE, $count = 0) } // cache controll + $output = false; $oCacheHandler = CacheHandler::getInstance('object'); if($oCacheHandler->isSupport()) { @@ -450,7 +451,7 @@ function getCommentList($document_srl, $page = 0, $is_admin = FALSE, $count = 0) $output = $oCacheHandler->get($cache_key); } - if(!$output) + if($output === FALSE) { // get the number of comments on the document module $oDocumentModel = getModel('document'); diff --git a/modules/counter/counter.model.php b/modules/counter/counter.model.php index 28610f7bd3..06e90f1902 100644 --- a/modules/counter/counter.model.php +++ b/modules/counter/counter.model.php @@ -8,7 +8,6 @@ */ class counterModel extends counter { - /** * Initialization * @@ -16,7 +15,6 @@ class counterModel extends counter */ function init() { - } /** @@ -32,26 +30,27 @@ function isLogged($site_srl = 0) $args->ipaddress = $_SERVER['REMOTE_ADDR']; $args->site_srl = $site_srl; + $iplogged = false; $oCacheHandler = CacheHandler::getInstance('object'); if($oCacheHandler->isSupport()) { $object_key = 'counter:' . $site_srl . '_' . str_replace(array('.', ':'), '-', $args->ipaddress); $cache_key = $oCacheHandler->getGroupKey('counterIpLogged_' . $args->regdate, $object_key); - if($oCacheHandler->isValid($cache_key)) - { - return $oCacheHandler->get($cache_key); - } + $iplogged = $oCacheHandler->get($cache_key); } - $output = executeQuery('counter.getCounterLog', $args); + if($iplogged === false) + { + $output = executeQuery('counter.getCounterLog', $args); + if($output->data->count) $iplogged = TRUE; + } - $result = $output->data->count ? TRUE : FALSE; - if($result && $oCacheHandler->isSupport()) + if($iplogged && $oCacheHandler->isSupport()) { - $oCacheHandler->put($cache_key, TRUE); + $oCacheHandler->put($cache_key, $iplogged); } - return $result; + return $iplogged; } /** @@ -65,35 +64,37 @@ function isInsertedTodayStatus($site_srl = 0) $args = new stdClass; $args->regdate = date('Ymd'); + $insertedTodayStatus = false; $oCacheHandler = CacheHandler::getInstance('object', NULL, TRUE); if($oCacheHandler->isSupport()) { $cache_key = 'counter:insertedTodayStatus:' . $site_srl . '_' . $args->regdate; - if($oCacheHandler->isValid($cache_key)) - { - return $oCacheHandler->get($cache_key); - } + $insertedTodayStatus = $oCacheHandler->get($cache_key); } - if($site_srl) + if($insertedTodayStatus === false) { - $args->site_srl = $site_srl; - $output = executeQuery('counter.getSiteTodayStatus', $args); - } - else - { - $output = executeQuery('counter.getTodayStatus', $args); + if($site_srl) + { + $args->site_srl = $site_srl; + $output = executeQuery('counter.getSiteTodayStatus', $args); + } + else + { + $output = executeQuery('counter.getTodayStatus', $args); + } + + $insertedTodayStatus = !!$output->data->count; } - $result = $output->data->count ? TRUE : FALSE; - if($result && $oCacheHandler->isSupport()) + if($insertedTodayStatus && $oCacheHandler->isSupport()) { $oCacheHandler->put($cache_key, TRUE); $_old_date = date('Ymd', strtotime('-1 day')); $oCacheHandler->delete('counter:insertedTodayStatus:' . $site_srl . '_' . $_old_date); } - return $result; + return $insertedTodayStatus; } /** diff --git a/modules/document/document.item.php b/modules/document/document.item.php index f6a7ec3a0a..dba7f97fd2 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -58,7 +58,8 @@ function documentItem($document_srl = 0, $load_extra_vars = true, $columnList = $this->document_srl = $document_srl; $this->columnList = $columnList; - $this->_loadFromDB($load_extra_vars); + $oDocumentModel = getModel('document'); + if($load_extra_vars === true) $oDocumentModel->getDocumentExtraVarsFromDB($document_srl); } function setDocument($document_srl, $load_extra_vars = true) @@ -76,13 +77,15 @@ function _loadFromDB($load_extra_vars = true) { if(!$this->document_srl) return; + $document_item = false; // cache controll $oCacheHandler = CacheHandler::getInstance('object'); if($oCacheHandler->isSupport()) { $cache_key = 'document_item:' . $this->document_srl; $document_item = $oCacheHandler->get($cache_key); - if($document_item) + + if($document_item !== false) { $document_item = (object)$document_item->getVariables(); $this->columnList = array('readed_count', 'voted_count', 'blamed_count', 'comment_count', 'trackback_count'); @@ -97,9 +100,10 @@ function _loadFromDB($load_extra_vars = true) $args->document_srl = $this->document_srl; $output = executeQuery('document.getDocument', $args, $this->columnList); - if(!$document_item) + if($document_item === false) { - $document_item = $output->data; + if(!is_object($output->data)) $document_item = new stdClass; + else $document_item = $output->data; } else { @@ -139,13 +143,13 @@ function setAttribute($attribute, $load_extra_vars=true) } $oDocumentModel = getModel('document'); - $GLOBALS['XE_DOCUMENT_LIST'][$this->document_srl] = $this; if($load_extra_vars) { - $oDocumentModel->setToAllDocumentExtraVars(); - $this->add('title', $GLOBALS['XE_DOCUMENT_LIST'][$this->document_srl]->get('title')); - $this->add('content', $GLOBALS['XE_DOCUMENT_LIST'][$this->document_srl]->get('content')); + $oDocumentModel->getDocumentExtraVarsFromDB($this->document_srl); + $this->add('title', $this->get('title')); + $this->add('content', $this->get('content')); } + $GLOBALS['XE_DOCUMENT_LIST'][$this->document_srl] = $this; } function isExists() diff --git a/modules/document/document.model.php b/modules/document/document.model.php index eee8774a79..c570830f8b 100644 --- a/modules/document/document.model.php +++ b/modules/document/document.model.php @@ -361,8 +361,9 @@ function getNoticeList($obj, $columnList = array()) */ function getExtraKeys($module_srl) { - if(is_null($GLOBALS['XE_EXTRA_KEYS'][$module_srl])) + if($GLOBALS['XE_EXTRA_KEYS'][$module_srl] === NULL) { + $keys = false; $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) { @@ -371,8 +372,9 @@ function getExtraKeys($module_srl) $keys = $oCacheHandler->get($cache_key); } - $oExtraVar = &ExtraVar::getInstance($module_srl); - if(!$keys) + $oExtraVar = ExtraVar::getInstance($module_srl); + + if($keys === false) { $obj = new stdClass(); $obj->module_srl = $module_srl; diff --git a/modules/layout/layout.model.php b/modules/layout/layout.model.php index e45cb59226..85e38441aa 100644 --- a/modules/layout/layout.model.php +++ b/modules/layout/layout.model.php @@ -258,6 +258,8 @@ function isExistsLayoutFile($layout, $layoutType) */ function getLayout($layout_srl) { + $layout_info = false; + // cache controll $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) @@ -267,7 +269,7 @@ function getLayout($layout_srl) $layout_info = $oCacheHandler->get($cache_key); } - if(!$layout_info) + if($layout_info === false) { // Get information from the DB $args = new stdClass(); diff --git a/modules/member/member.model.php b/modules/member/member.model.php index cb4a1156b4..ff543158c9 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -295,6 +295,8 @@ function getMemberInfoByMemberSrl($member_srl, $site_srl = 0, $columnList = arra //columnList size zero... get full member info if(!$GLOBALS['__member_info__'][$member_srl] || count($columnList) == 0) { + $GLOBALS['__member_info__'][$member_srl] = false; + $oCacheHandler = CacheHandler::getInstance('object'); if($oCacheHandler->isSupport()) { @@ -304,7 +306,7 @@ function getMemberInfoByMemberSrl($member_srl, $site_srl = 0, $columnList = arra $GLOBALS['__member_info__'][$member_srl] = $oCacheHandler->get($cache_key); } - if(!$GLOBALS['__member_info__'][$member_srl]) + if($GLOBALS['__member_info__'][$member_srl] === false) { $args = new stdClass(); $args->member_srl = $member_srl; @@ -458,7 +460,10 @@ function getLoggedUserID() */ function getMemberGroups($member_srl, $site_srl = 0, $force_reload = false) { + static $member_groups = array(); + // cache controll + $group_list = false; $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) { @@ -467,11 +472,9 @@ function getMemberGroups($member_srl, $site_srl = 0, $force_reload = false) $group_list = $oCacheHandler->get($cache_key); } - static $member_groups = array(); - if(!$member_groups[$member_srl][$site_srl] || $force_reload) { - if(!$group_list && !is_array($group_list)) + if($group_list === false) { $args = new stdClass(); $args->member_srl = $member_srl; @@ -516,6 +519,7 @@ function getMembersGroups($member_srls, $site_srl = 0) */ function getDefaultGroup($site_srl = 0, $columnList = array()) { + $default_group = false; $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) { @@ -525,7 +529,7 @@ function getDefaultGroup($site_srl = 0, $columnList = array()) $default_group = $oCacheHandler->get($cache_key); } - if(!$default_group) + if($default_group === false) { $args = new stdClass(); $args->site_srl = $site_srl; @@ -574,6 +578,7 @@ function getGroups($site_srl = 0) $site_srl = 0; } + $group_list = false; $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) { @@ -581,9 +586,9 @@ function getGroups($site_srl = 0) $cache_key = $oCacheHandler->getGroupKey('member', $object_key); $group_list = $oCacheHandler->get($cache_key); } - if(!$group_list) - { + if($group_list === false) + { $args = new stdClass(); $args->site_srl = $site_srl; $args->sort_index = 'list_order'; diff --git a/modules/module/module.model.php b/modules/module/module.model.php index 12da26c886..64f088e582 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -118,6 +118,7 @@ function getDefaultMid() // If domain is set, look for subsite if($domain !== '') { + $site_info = false; if($oCacheHandler->isSupport()) { $object_key = 'site_info:' . md5($domain); @@ -125,12 +126,13 @@ function getDefaultMid() $site_info = $oCacheHandler->get($domain_cache_key); } - if(!$site_info) + if($site_info === false) { $args = new stdClass(); $args->domain = $domain; $output = executeQuery('module.getSiteInfoByDomain', $args); $site_info = $output->data; + if($oCacheHandler->isSupport()) $oCacheHandler->put($domain_cache_key, $site_info); } @@ -145,14 +147,15 @@ function getDefaultMid() // If no virtual website was found, get default website if($domain === '') { + $site_info = false; if($oCacheHandler->isSupport()) { $object_key = 'default_site'; $default_site_cache_key = $oCacheHandler->getGroupKey('site_and_module', $object_key); - $module_info = $oCacheHandler->get($default_site_cache_key); + $site_info = $oCacheHandler->get($default_site_cache_key); } - if(!$site_info) + if($site_info === false) { $args = new stdClass(); $args->site_srl = 0; @@ -212,6 +215,10 @@ function getModuleInfoByMid($mid, $site_srl = 0, $columnList = array()) $args = new stdClass(); $args->mid = $mid; $args->site_srl = (int)$site_srl; + + $module_srl = false; + $module_info = false; + $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) { @@ -226,7 +233,7 @@ function getModuleInfoByMid($mid, $site_srl = 0, $columnList = array()) } } - if(!$module_info && !is_array($module_info)) + if($module_info === false) { $output = executeQuery('module.getMidInfo', $args); $module_info = $output->data; @@ -310,6 +317,9 @@ public function getModuleInfoByMenuItemSrl($menu_item_srl = 0) $moduleInfo->designSettings->skin->mobileIsDefault = $moduleInfo->is_mskin_fix == 'N' ? 1 : 0; $moduleInfo->designSettings->skin->mobile = $skinInfoMobile->title; + $module_srl = false; + $mid_info = false; + $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) { @@ -320,10 +330,10 @@ public function getModuleInfoByMenuItemSrl($menu_item_srl = 0) { $object_key = 'mid_info:' . $module_srl; $module_info_cache_key = $oCacheHandler->getGroupKey('site_and_module', $object_key); - $coutput = $oCacheHandler->get($module_info_cache_key); + $mid_info = $oCacheHandler->get($module_info_cache_key); } - if(!$coutput) + if($mid_info === false) { $oCacheHandler->put($module_srl_cache_key, $output->data->module_srl); @@ -333,8 +343,8 @@ public function getModuleInfoByMenuItemSrl($menu_item_srl = 0) } else { - $coutput->designSettings = $moduleInfo->designSettings; - $moduleInfo = $coutput; + $mid_info->designSettings = $moduleInfo->designSettings; + $moduleInfo = $mid_info; } } @@ -356,9 +366,8 @@ public function getModuleInfoByMenuItemSrl($menu_item_srl = 0) */ function getModuleInfoByModuleSrl($module_srl, $columnList = array()) { - // Get data - $args = new stdClass(); - $args->module_srl = $module_srl; + $mid_info = false; + $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) { @@ -367,8 +376,11 @@ function getModuleInfoByModuleSrl($module_srl, $columnList = array()) $mid_info = $oCacheHandler->get($cache_key); } - if(!$mid_info && !is_array($mid_info)) + if($mid_info === false) { + // Get data + $args = new stdClass(); + $args->module_srl = $module_srl; $output = executeQuery('module.getMidInfo', $args); if(!$output->toBool()) return; @@ -482,6 +494,7 @@ function addModuleExtraVars($module_info) */ function getMidList($args = null, $columnList = array()) { + $list = false; $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) { @@ -493,7 +506,7 @@ function getMidList($args = null, $columnList = array()) } } - if(!$list) + if($list === false) { if($oCacheHandler->isSupport() && count($args) === 1 && isset($args->site_srl)) { @@ -517,6 +530,7 @@ function getMidList($args = null, $columnList = array()) { $mid_list[$val->mid] = $val; } + return $mid_list; } @@ -567,6 +581,7 @@ function getModuleSrlByMid($mid) */ function getActionForward($act) { + $action_forward = false; // cache controll $oCacheHandler = CacheHandler::getInstance('object', NULL, TRUE); if($oCacheHandler->isSupport()) @@ -576,7 +591,7 @@ function getActionForward($act) } // retrieve and caching all registered action_forward - if(!$action_forward) + if($action_forward === false) { $args = new stdClass(); $output = executeQueryArray('module.getActionForward',$args); @@ -589,20 +604,19 @@ function getActionForward($act) $action_forward[$item->act] = $item; } - if($oCacheHandler->isSupport()) { $oCacheHandler->put($cache_key, $action_forward); } } - + if($action_forward[$act]) { return $action_forward[$act]; } else { - return new stdClass(); + return new stdClass(); } } @@ -611,6 +625,7 @@ function getActionForward($act) */ function getTriggers($trigger_name, $called_position) { + $triggers = false; // cache controll $oCacheHandler = CacheHandler::getInstance('object', NULL, TRUE); if($oCacheHandler->isSupport()) @@ -620,7 +635,7 @@ function getTriggers($trigger_name, $called_position) $triggers = $oCacheHandler->get($cache_key); } - if(!$triggers && !is_array($triggers)) + if($triggers === false) { $args = new stdClass(); $args->trigger_name = $trigger_name; @@ -1336,6 +1351,7 @@ function getModuleCount($site_srl, $module = null) */ function getModuleConfig($module, $site_srl = 0) { + $config = false; // cache controll $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) @@ -1344,15 +1360,17 @@ function getModuleConfig($module, $site_srl = 0) $cache_key = $oCacheHandler->getGroupKey('site_and_module', $object_key); $config = $oCacheHandler->get($cache_key); } - if(!$config) + + if($config === false) { - if(!$GLOBALS['__ModuleConfig__'][$site_srl][$module]) + if(!isset($GLOBALS['__ModuleConfig__'][$site_srl][$module])) { $args = new stdClass(); $args->module = $module; $args->site_srl = $site_srl; $output = executeQuery('module.getModuleConfig', $args); $config = unserialize($output->data->config); + if(!$config) $config = new stdClass; //insert in cache if($oCacheHandler->isSupport()) @@ -1373,6 +1391,7 @@ function getModuleConfig($module, $site_srl = 0) */ function getModulePartConfig($module, $module_srl) { + $config = false; // cache controll $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) @@ -1381,15 +1400,17 @@ function getModulePartConfig($module, $module_srl) $cache_key = $oCacheHandler->getGroupKey('site_and_module', $object_key); $config = $oCacheHandler->get($cache_key); } - if(!$config) + + if($config === false) { - if(!$GLOBALS['__ModulePartConfig__'][$module][$module_srl]) + if(!isset($GLOBALS['__ModulePartConfig__'][$module][$module_srl])) { $args = new stdClass(); $args->module = $module; $args->module_srl = $module_srl; $output = executeQuery('module.getModulePartConfig', $args); $config = unserialize($output->data->config); + if(!$config) $config = new stdClass; //insert in cache if($oCacheHandler->isSupport()) @@ -1690,6 +1711,7 @@ function getModuleExtraVars($list_module_srl) $get_module_srls = array(); if(!is_array($list_module_srl)) $list_module_srl = array($list_module_srl); + $vars = false; // cache controll $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) @@ -1715,7 +1737,7 @@ function getModuleExtraVars($list_module_srl) $get_module_srls = $list_module_srl; } - if(count($get_module_srls)) + if($vars === false || count($get_module_srls) > 0) { $args = new stdClass(); $args->module_srl = implode(',', $get_module_srls); @@ -1760,6 +1782,7 @@ function getModuleExtraVars($list_module_srl) */ function getModuleSkinVars($module_srl) { + $skin_vars = false; $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) { @@ -1768,7 +1791,7 @@ function getModuleSkinVars($module_srl) $skin_vars = $oCacheHandler->get($cache_key); } - if(!$skin_vars) + if($skin_vars === false) { $args = new stdClass(); $args->module_srl = $module_srl; @@ -1874,6 +1897,7 @@ function syncSkinInfoToModuleInfo(&$module_info) */ function getModuleMobileSkinVars($module_srl) { + $skin_vars = false; $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) { @@ -1882,7 +1906,7 @@ function getModuleMobileSkinVars($module_srl) $skin_vars = $oCacheHandler->get($cache_key); } - if(!$skin_vars) + if($skin_vars === false) { $args = new stdClass(); $args->module_srl = $module_srl; @@ -1908,6 +1932,7 @@ function getModuleMobileSkinVars($module_srl) function syncMobileSkinInfoToModuleInfo(&$module_info) { if(!$module_info->module_srl) return; + $skin_vars = false; // cache controll $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) @@ -1916,7 +1941,7 @@ function syncMobileSkinInfoToModuleInfo(&$module_info) $cache_key = $oCacheHandler->getGroupKey('site_and_module', $object_key); $skin_vars = $oCacheHandler->get($cache_key); } - if(!$skin_vars) + if($skin_vars === false) { $args = new stdClass; $args->module_srl = $module_info->module_srl; diff --git a/modules/session/session.controller.php b/modules/session/session.controller.php index 1a5bd6e14b..2015ac6882 100644 --- a/modules/session/session.controller.php +++ b/modules/session/session.controller.php @@ -27,32 +27,22 @@ function close() function write($session_key, $val) { if(!$session_key || !$this->session_started) return; - $oCacheHandler = CacheHandler::getInstance('object'); - if($oCacheHandler->isSupport()) - { - $cache_key = 'session:'.$session_key; - $cache_vars = $oCacheHandler->get($cache_key); - } - $args = new stdClass(); - $args->session_key = $session_key; - if($cache_vars) $session_info = $cache_vars; - else - { - $output = executeQuery('session.getSession', $args); - $session_info = $output->data; - } - //if ip has changed delete the session from cache and db + $output = executeQuery('session.getSession', $args); + $session_info = $output->data; + + //if ip has changed delete the session from db if($session_info->session_key == $session_key && $session_info->ipaddress != $_SERVER['REMOTE_ADDR']) { - if($oCacheHandler->isSupport()) $oCacheHandler->delete($cache_key); executeQuery('session.deleteSession', $args); + return true; } - $args->expired = date("YmdHis", $_SERVER['REQUEST_TIME']+$this->lifetime); + $args->expired = date("YmdHis", $_SERVER['REQUEST_TIME'] + $this->lifetime); $args->val = $val; $args->cur_mid = Context::get('mid'); + if(!$args->cur_mid) { $module_info = Context::get('current_module_info'); @@ -70,43 +60,15 @@ function write($session_key, $val) } $args->ipaddress = $_SERVER['REMOTE_ADDR']; $args->last_update = date("YmdHis", $_SERVER['REQUEST_TIME']); - $diff = $args->last_update - $cache_vars->last_update; - //verify if session values have changed - if($val == $cache_vars->val) + + //put session into db + if($session_info->session_key) { - // if more than 5 minutes passed than modify the db session also - if($diff > 300) - { - //put session into cache - if($oCacheHandler->isSupport()) - { - $cache_key = 'session:'.$session_key; - $oCacheHandler->put($cache_key,$args,$this->lifetime); - } - //put session into db - if($session_info->session_key) $output = executeQuery('session.updateSession', $args); - } - else - { - //put session into cache - if($oCacheHandler->isSupport()) - { - $cache_key = 'session:'.$session_key; - $oCacheHandler->put($cache_key,$args,$this->lifetime); - } - } + $output = executeQuery('session.updateSession', $args); } else { - //put session into cache - if($oCacheHandler->isSupport()) - { - $cache_key = 'session:'.$session_key; - $oCacheHandler->put($cache_key,$args,$this->lifetime); - } - //put session into db - if($session_info->session_key) $output = executeQuery('session.updateSession', $args); - else $output = executeQuery('session.insertSession', $args); + $output = executeQuery('session.insertSession', $args); } return true; @@ -115,17 +77,12 @@ function write($session_key, $val) function destroy($session_key) { if(!$session_key || !$this->session_started) return; - //remove session from cache - $oCacheHandler = CacheHandler::getInstance('object'); - if($oCacheHandler->isSupport()) - { - $cache_key = 'session:'.$session_key; - $oCacheHandler->delete($cache_key); - } + //remove session from db $args = new stdClass(); $args->session_key = $session_key; executeQuery('session.deleteSession', $args); + return true; } diff --git a/modules/session/session.model.php b/modules/session/session.model.php index ee5a2936af..694f3bc52f 100644 --- a/modules/session/session.model.php +++ b/modules/session/session.model.php @@ -23,36 +23,27 @@ function read($session_key) { if(!$session_key || !$this->session_started) return; - $output = new Object(); + $args = new stdClass(); + $args->session_key = $session_key; + $columnList = array('session_key', 'cur_mid', 'val'); + $output = executeQuery('session.getSession', $args, $columnList); - $oCacheHandler = CacheHandler::getInstance('object'); - if($oCacheHandler->isSupport()) + // Confirm there is a table created if read error occurs + if(!$output->toBool()) { - $cache_key = 'session:'.$session_key; - $output->data = $oCacheHandler->get($cache_key); + $oDB = DB::getInstance(); + if(!$oDB->isTableExists('session')) $oDB->createTableByXmlFile($this->module_path.'schemas/session.xml'); + if(!$oDB->isColumnExists("session", "cur_mid")) $oDB->addColumn('session',"cur_mid","varchar",128); + $output = executeQuery('session.getSession', $args); } - if(!$output->data) + // Check if there is a table created in case there is no "cur_mid" value in the sessions information + if(!isset($output->data->cur_mid)) { - $args = new stdClass(); - $args->session_key = $session_key; - $columnList = array('session_key', 'cur_mid', 'val'); - $output = executeQuery('session.getSession', $args, $columnList); - // Confirm there is a table created if read error occurs - if(!$output->toBool()) - { - $oDB = &DB::getInstance(); - if(!$oDB->isTableExists('session')) $oDB->createTableByXmlFile($this->module_path.'schemas/session.xml'); - if(!$oDB->isColumnExists("session","cur_mid")) $oDB->addColumn('session',"cur_mid","varchar",128); - $output = executeQuery('session.getSession', $args); - } - // Check if there is a table created in case there is no "cur_mid" value in the sessions information - if(!isset($output->data->cur_mid)) - { - $oDB = &DB::getInstance(); - if(!$oDB->isColumnExists("session","cur_mid")) $oDB->addColumn('session',"cur_mid","varchar",128); - } + $oDB = DB::getInstance(); + if(!$oDB->isColumnExists("session", "cur_mid")) $oDB->addColumn('session',"cur_mid","varchar",128); } + return $output->data->val; } From cf09c05f8ad0ccc6db9e3aa29f52120b0b4d7b84 Mon Sep 17 00:00:00 2001 From: khongchi Date: Wed, 29 Jan 2014 14:45:07 +0900 Subject: [PATCH 094/549] =?UTF-8?q?#225=20module=20update=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=B2=98=EB=A6=AC=ED=95=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EA=B3=A0,=20=EB=A9=94=EB=89=B4=20=EC=82=AC=EC=9D=B4=ED=8A=B8?= =?UTF-8?q?=EB=A7=B5=20=EA=B4=80=EB=A6=AC=20=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EC=A0=91=EA=B7=BC=EC=8B=9C=20=EC=9E=91=EB=8F=99=EB=90=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/menu/menu.admin.controller.php | 143 ++++++++++++++++++++++ modules/menu/menu.admin.view.php | 8 ++ modules/module/module.class.php | 163 ------------------------- modules/module/module.controller.php | 32 +---- 4 files changed, 154 insertions(+), 192 deletions(-) diff --git a/modules/menu/menu.admin.controller.php b/modules/menu/menu.admin.controller.php index e3d47e2ea3..a804655af4 100644 --- a/modules/menu/menu.admin.controller.php +++ b/modules/menu/menu.admin.controller.php @@ -103,6 +103,149 @@ public function addMenu($title, $siteSrl = 0) $output->add('menuSrl', $args->menu_srl); return $output; } + + function linkAllModuleInstancesToSitemap() + { + $unlinked_modules = false; + $args = new stdClass; + $args->site_srl = 0; + $output = executeQueryArray('module.getNotLinkedModuleBySiteSrl',$args); + if($output->toBool() && $output->data && count($output->data) > 0) + { + $unlinked_modules = $output->data; + } + + if($unlinked_modules) + { + $unlinked_menu_srl = $this->getUnlinkedMenu(); + $output = $this->updateLinkModule($unlinked_modules, $unlinked_menu_srl); + } + + +/* // for 1.7.4 update, 기존에 생성된 Temporary menu 항목 정리 + $oMenuAdminModel = getAdminModel('menu'); + $args = new stdClass(); + $args->title = array("Temporary menu"); + $temp_menus = executeQueryArray('menu.getMenuByTitle', $args); + + $args = new stdClass(); + if($temp_menus->toBool()) + { + foreach($temp_menus->data as $menu) + { + $args->current_menu_srl = $menu->menu_srl; + $args->menu_srl = $moduleConfig->unlinked_menu_srl; + $output3 = executeQuery('menu.updateMenuItems', $args); + + if($output3->toBool()) + { + // delete + $oMenuAdminController = getAdminController('menu'); + $oMenuAdminController->deleteMenu($menu->menu_srl); + } + } + } +*/ + } + + function getUnlinkedMenu() + { + // 'unlinked' menu 존재여부 확인 + $oModuleModel = getModel('module'); + $moduleConfig = $oModuleModel->getModuleConfig('menu'); + + if($moduleConfig->unlinked_menu_srl) + { + $menuArgs = new stdClass; + $menuArgs->menu_srl = $moduleConfig->unlinked_menu_srl; + $menuOutput = executeQuery('menu.getMenu', $menuArgs); + if(!$menuOutput->data) + { + unset($moduleConfig->unlinked_menu_srl); + } + } + + if(!$moduleConfig->unlinked_menu_srl) + { + $output = $this->addMenu('unlinked', 0); + if($output->toBool()) + { + $moduleConfig->unlinked_menu_srl = $output->get('menuSrl'); + $oModuleController = getController('module'); + $oModuleController->updateModuleConfig('menu', $moduleConfig); + } + else + { + return false; + } + } + + return $moduleConfig->unlinked_menu_srl; + } + + /** + * insert menu when not linked module. + * + * @param array $moduleInfos + * @param int $menuSrl + * + * @return Object + */ + function updateLinkModule($moduleInfos, $menuSrl) + { + if(!$moduleInfos || !is_array($moduleInfos) || count($moduleInfos) == 0 || $menuSrl == 0) + { + return new Object(-1, 'msg_invalid_request'); + } + + foreach($moduleInfos as $moduleInfo) + { + // search menu. + $args = new stdClass; + $args->url = $moduleInfo->mid; + $args->site_srl = $moduleInfo->site_srl; + $args->is_shortcut = 'N'; + + $output = executeQuery('menu.getMenuItemByUrl', $args); + + if($output->toBool() && $output->data) + { + $moduleInfo->menu_srl = $output->data->menu_srl; + } + else + { + // create menu item. + $item_args->menu_srl = $menuSrl; + $item_args->url = $moduleInfo->mid; + $item_args->name = $moduleInfo->mid; + $item_args->menu_item_srl = getNextSequence(); + $item_args->listorder = -1*$item_args->menu_item_srl; + + $output = executeQuery('menu.insertMenuItem', $item_args); + if(!$output->toBool()) + { + return $output; + } + $moduleInfo->menu_srl = $menuSrl; + } + + $output = executeQuery('module.updateModule', $moduleInfo); + + $oCacheHandler = CacheHandler::getInstance('object', null, true); + if($oCacheHandler->isSupport()) + { + $oCacheHandler->invalidateGroupKey('site_and_module'); + } + return $output; + } + + $oMenuAdminController = getAdminController('menu'); + $oMenuAdminController->makeXmlFile($menuSrl); + + return new Object(); + } + + /** * Change the menu title diff --git a/modules/menu/menu.admin.view.php b/modules/menu/menu.admin.view.php index 32e72b8b55..4b3a2bf368 100644 --- a/modules/menu/menu.admin.view.php +++ b/modules/menu/menu.admin.view.php @@ -21,6 +21,7 @@ function init() $this->setTemplatePath($this->module_path.'tpl'); } + /** * Site map admin menu index page * @return void @@ -39,6 +40,13 @@ function dispMenuAdminSiteMap() else $site_srl = (int)$site_module_info->site_srl; } + // process for unlinked modules + if($site_srl == 0) + { + $oMenuController = getAdminController('menu'); + $oMenuController->linkAllModuleInstancesToSitemap(); + } + $oAdmin = getClass('admin'); $oMenuAdminModel = getAdminModel('menu'); diff --git a/modules/module/module.class.php b/modules/module/module.class.php index ab1d556ad0..232a83205e 100644 --- a/modules/module/module.class.php +++ b/modules/module/module.class.php @@ -108,26 +108,6 @@ function checkUpdate() $oModuleModel = getModel('module'); $moduleConfig = $oModuleModel->getModuleConfig('module'); if(!$moduleConfig->isUpdateFixedValue) return true; - - // 'unlinked' menu 존재여부 확인 - if(!$moduleConfig->unlinked_menu_srl) return true; - else - { - $menuArgs = new stdClass; - $menuArgs->menu_srl = $moduleConfig->unlinked_menu_srl; - $menuOutput = executeQuery('menu.getMenu', $menuArgs); - if(!$menuOutput->data) return true; - } - - // menu_srl이 등록되지 않은 mid가 있는지 검사(지정된 menu_srl이 있을 경우, 지정된 menu_item도 있다고 가정) - $args = new stdClass; - $args->site_srl = 0; - $output = executeQueryArray('module.getNotLinkedModuleBySiteSrl',$args); - if($output->toBool() && $output->data && count($output->data) > 0) - { - return true; - } - } /** @@ -436,152 +416,9 @@ function moduleUpdate() $output = $oModuleController->updateModuleConfig('module', $moduleConfig); } - // menu(sitemap)에 링크되지 않은 모듈인스턴스 링크 - if(Context::isInstalled()) - { - $output1 = $this->linkAllModuleInstancesToSitemap(); - if(!$output1->toBool()) return $output1; - } - return new Object(0, 'success_updated'); } - private function linkAllModuleInstancesToSitemap() - { - // 'unlinked' menu가 지정돼 있는지 검사 - $oModuleController = getController('module'); - $oModuleModel = getModel('module'); - $moduleConfig = $oModuleModel->getModuleConfig('module'); - - // 지정돼 있지 않다면 'unlinked' menu 생성 - $created_menu_srl = 0; - if(!$moduleConfig->unlinked_menu_srl) - { - $created_menu_srl = $oModuleController->makeUnlinkedMenu(); - } - // 지정돼 있지만 실제로 없다면 생성 - else - { - $menuArgs = new stdClass; - $menuArgs->menu_srl = $moduleConfig->unlinked_menu_srl; - $menuOutput = executeQuery('menu.getMenu', $menuArgs); - if(!$menuOutput->data) - { - $created_menu_srl = $oModuleController->makeUnlinkedMenu(); - } - } - - // 'unlinked' menu가 새로 생성되었다면 module config에 저장 - if($created_menu_srl) - { - $moduleConfig->unlinked_menu_srl = $created_menu_srl; - $oModuleController->updateModuleConfig('module', $moduleConfig); - } - - // for 1.7.4 update, 기존에 생성된 Temporary menu 항목 정리 - $oMenuAdminModel = getAdminModel('menu'); - $args = new stdClass(); - $args->title = array("Temporary menu"); - $temp_menus = executeQueryArray('menu.getMenuByTitle', $args); - - $args = new stdClass(); - if($temp_menus->toBool()) - { - foreach($temp_menus->data as $menu) - { - $args->current_menu_srl = $menu->menu_srl; - $args->menu_srl = $moduleConfig->unlinked_menu_srl; - $output3 = executeQuery('menu.updateMenuItems', $args); - - if($output3->toBool()) - { - // delete - $oMenuAdminController = getAdminController('menu'); - $oMenuAdminController->deleteMenu($menu->menu_srl); - } - } - } - - // menu_srl이 지정되지 않은 mmodule instance가 있는지 검사 - $args = new stdClass; - $args->site_srl = 0; - $output1 = executeQueryArray('module.getNotLinkedModuleBySiteSrl',$args); - if($output1->toBool() && $output1->data && count($output1->data) > 0) - { - $output2 = $this->updateLinkModule($output1->data, $moduleConfig->unlinked_menu_srl); - if(!$output2->toBool()) - { - return $output2; - } - } - - return new Object(0,'success'); - } - - /** - * insert menu when not linked module. - * - * @param array $moduleInfos - * @param int $menuSrl - * - * @return Object - */ - private function updateLinkModule($moduleInfos, $menuSrl) - { - if(!$moduleInfos || !is_array($moduleInfos) || count($moduleInfos) == 0 || $menuSrl == 0) - { - return new Object(-1, 'msg_invalid_request'); - } - - foreach($moduleInfos as $moduleInfo) - { - // search menu. - $args = new stdClass; - $args->url = $moduleInfo->mid; - $args->site_srl = $moduleInfo->site_srl; - $args->is_shortcut = 'N'; - - $output = executeQuery('menu.getMenuItemByUrl', $args); - - if($output->toBool() && $output->data) - { - $moduleInfo->menu_srl = $output->data->menu_srl; - } - else - { - // create menu item. - $item_args->menu_srl = $menuSrl; - $item_args->url = $moduleInfo->mid; - $item_args->name = $moduleInfo->mid; - $item_args->menu_item_srl = getNextSequence(); - $item_args->listorder = -1*$item_args->menu_item_srl; - - $output = executeQuery('menu.insertMenuItem', $item_args); - if(!$output->toBool()) - { - return $output; - } - $moduleInfo->menu_srl = $menuSrl; - } - - $output = executeQuery('module.updateModule', $moduleInfo); - if(!$output->toBool()) - { - $oCacheHandler = CacheHandler::getInstance('object', null, true); - if($oCacheHandler->isSupport()) - { - $oCacheHandler->invalidateGroupKey('site_and_module'); - } - return $output; - } - } - - $oMenuAdminController = getAdminController('menu'); - $oMenuAdminController->makeXmlFile($menuSrl); - - return new Object(); - } - function updateForUniqueSiteDomain() { $output = executeQueryArray("module.getNonuniqueDomains"); diff --git a/modules/module/module.controller.php b/modules/module/module.controller.php index b53b20d483..3f29f532e1 100644 --- a/modules/module/module.controller.php +++ b/modules/module/module.controller.php @@ -423,20 +423,11 @@ function insertModule($args) // if menu is not created, create menu also. and does not supported that in virtual site. if(!$menuOutput->data && !$args->site_srl) { + debugPrint($args->menu_srl); $oMenuAdminModel = getAdminModel('menu'); - $oModuleModel = getModel('module'); - $moduleConfig = $oModuleModel->getModuleConfig('module'); - - $menuSrl = $moduleConfig->unlinked_menu_srl; - if(!$menuSrl) - { - $menuSrl = $this->makeUnlinkedMenu(); - - // 'unlinked' menu를 module config에 저장 - $moduleConfig->unlinked_menu_srl = $menuSrl; - $this->updateModuleConfig('module', $moduleConfig); - } + $oMenuAdminController = getAdminController('menu'); + $menuSrl = $oMenuAdminController->getUnlinkedMenu(); $menuArgs->menu_srl = $menuSrl; $menuArgs->menu_item_srl = getNextSequence(); @@ -455,7 +446,6 @@ function insertModule($args) return $menuItemOutput; } - $oMenuAdminController = getAdminController('menu'); $oMenuAdminController->makeXmlFile($menuSrl); } } @@ -484,22 +474,6 @@ function insertModule($args) return $output; } - function makeUnlinkedMenu() - { - $args = new stdClass(); - $args->title = 'unlinked'; - $menuSrl = $args->menu_srl = getNextSequence(); - $args->listorder = $args->menu_srl * -1; - - $output = executeQuery('menu.insertMenu', $args); - if($output->toBool()) - { - return $menuSrl; - } - - return false; - } - /** * @brief Modify module information */ From b758cf93dd48d8ab422b342ca702f74806fa45d6 Mon Sep 17 00:00:00 2001 From: bnu Date: Wed, 29 Jan 2014 14:54:30 +0900 Subject: [PATCH 095/549] #358 fix error d48d9d8 --- modules/document/document.item.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/document/document.item.php b/modules/document/document.item.php index dba7f97fd2..ac3559bea6 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -58,8 +58,7 @@ function documentItem($document_srl = 0, $load_extra_vars = true, $columnList = $this->document_srl = $document_srl; $this->columnList = $columnList; - $oDocumentModel = getModel('document'); - if($load_extra_vars === true) $oDocumentModel->getDocumentExtraVarsFromDB($document_srl); + $this->_loadFromDB($load_extra_vars); } function setDocument($document_srl, $load_extra_vars = true) From bd4372aff9c37fecdbe123562f9c1a58cf4a27ab Mon Sep 17 00:00:00 2001 From: bnu Date: Wed, 29 Jan 2014 14:59:04 +0900 Subject: [PATCH 096/549] NOISSUE cleanup --- modules/board/board.model.php | 2 +- modules/document/document.model.php | 20 +++++++++++--------- modules/module/module.controller.php | 7 +++---- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/modules/board/board.model.php b/modules/board/board.model.php index 6eda8b015b..3fbf2b053b 100644 --- a/modules/board/board.model.php +++ b/modules/board/board.model.php @@ -25,7 +25,7 @@ function getListConfig($module_srl) // get the list config value, if it is not exitsted then setup the default value $list_config = $oModuleModel->getModulePartConfig('board', $module_srl); - if(!$list_config || !count($list_config)) + if(!$list_config || count($list_config) <= 0) { $list_config = array( 'no', 'title', 'nick_name','regdate','readed_count'); } diff --git a/modules/document/document.model.php b/modules/document/document.model.php index c570830f8b..8d58efaa9a 100644 --- a/modules/document/document.model.php +++ b/modules/document/document.model.php @@ -53,11 +53,14 @@ function getDocumentExtraVarsFromDB($documentSrls) function setToAllDocumentExtraVars() { static $checked_documents = array(); + $_document_list = &$GLOBALS['XE_DOCUMENT_LIST']; + // XE XE_DOCUMENT_LIST all documents that the object referred to the global variable settings - if(!count($GLOBALS['XE_DOCUMENT_LIST'])) return; + if(count($_document_list) <= 0) return; + // Find all called the document object variable has been set extension $document_srls = array(); - foreach($GLOBALS['XE_DOCUMENT_LIST'] as $key => $val) + foreach($_document_list as $key => $val) { if(!$val->document_srl || $checked_documents[$val->document_srl]) continue; $checked_documents[$val->document_srl] = true; @@ -84,12 +87,11 @@ function setToAllDocumentExtraVars() $document_srl = $document_srls[$i]; unset($vars); - if(!$GLOBALS['XE_DOCUMENT_LIST'][$document_srl] || !is_object($GLOBALS['XE_DOCUMENT_LIST'][$document_srl]) || !$GLOBALS['XE_DOCUMENT_LIST'][$document_srl]->isExists()) continue; - - $module_srl = $GLOBALS['XE_DOCUMENT_LIST'][$document_srl]->get('module_srl'); + if(!$_document_list[$document_srl] || !is_object($_document_list[$document_srl]) || !$_document_list[$document_srl]->isExists()) continue; + $module_srl = $_document_list[$document_srl]->get('module_srl'); $extra_keys = $this->getExtraKeys($module_srl); $vars = $extra_vars[$document_srl]; - $document_lang_code = $GLOBALS['XE_DOCUMENT_LIST'][$document_srl]->get('lang_code'); + $document_lang_code = $_document_list[$document_srl]->get('lang_code'); // Expand the variable processing if(count($extra_keys)) { @@ -109,9 +111,9 @@ function setToAllDocumentExtraVars() $evars = new ExtraVar($module_srl); $evars->setExtraVarKeys($extra_keys); // Title Processing - if($vars[-1][$user_lang_code]) $GLOBALS['XE_DOCUMENT_LIST'][$document_srl]->add('title',$vars[-1][$user_lang_code]); + if($vars[-1][$user_lang_code]) $_document_list[$document_srl]->add('title',$vars[-1][$user_lang_code]); // Information processing - if($vars[-2][$user_lang_code]) $GLOBALS['XE_DOCUMENT_LIST'][$document_srl]->add('content',$vars[-2][$user_lang_code]); + if($vars[-2][$user_lang_code]) $_document_list[$document_srl]->add('content',$vars[-2][$user_lang_code]); if($vars[-1][$user_lang_code] || $vars[-2][$user_lang_code]) { @@ -361,7 +363,7 @@ function getNoticeList($obj, $columnList = array()) */ function getExtraKeys($module_srl) { - if($GLOBALS['XE_EXTRA_KEYS'][$module_srl] === NULL) + if(!isset($GLOBALS['XE_EXTRA_KEYS'][$module_srl])) { $keys = false; $oCacheHandler = CacheHandler::getInstance('object', null, true); diff --git a/modules/module/module.controller.php b/modules/module/module.controller.php index 3f29f532e1..e7e67f4249 100644 --- a/modules/module/module.controller.php +++ b/modules/module/module.controller.php @@ -418,16 +418,15 @@ function insertModule($args) { $menuArgs = new stdClass; $menuArgs->menu_srl = $args->menu_srl; - $menuOutput = executeQuery('menu.getMenu', $menuArgs); + $menuOutput = executeQuery('menu.getMenu', $menuArgs); // if menu is not created, create menu also. and does not supported that in virtual site. if(!$menuOutput->data && !$args->site_srl) { - debugPrint($args->menu_srl); $oMenuAdminModel = getAdminModel('menu'); - + $oMenuAdminController = getAdminController('menu'); - $menuSrl = $oMenuAdminController->getUnlinkedMenu(); + $menuSrl = $oMenuAdminController->getUnlinkedMenu(); $menuArgs->menu_srl = $menuSrl; $menuArgs->menu_item_srl = getNextSequence(); From 5b063c10ad045d11d095a8b807108c92ce03e219 Mon Sep 17 00:00:00 2001 From: khongchi Date: Wed, 29 Jan 2014 15:12:10 +0900 Subject: [PATCH 097/549] =?UTF-8?q?#225=20temporary=20menu=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/menu/menu.admin.controller.php | 38 +++++--------------------- modules/menu/menu.class.php | 36 ++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 31 deletions(-) diff --git a/modules/menu/menu.admin.controller.php b/modules/menu/menu.admin.controller.php index a804655af4..c2d43ce786 100644 --- a/modules/menu/menu.admin.controller.php +++ b/modules/menu/menu.admin.controller.php @@ -120,32 +120,7 @@ function linkAllModuleInstancesToSitemap() $unlinked_menu_srl = $this->getUnlinkedMenu(); $output = $this->updateLinkModule($unlinked_modules, $unlinked_menu_srl); } - -/* // for 1.7.4 update, 기존에 생성된 Temporary menu 항목 정리 - $oMenuAdminModel = getAdminModel('menu'); - $args = new stdClass(); - $args->title = array("Temporary menu"); - $temp_menus = executeQueryArray('menu.getMenuByTitle', $args); - - $args = new stdClass(); - if($temp_menus->toBool()) - { - foreach($temp_menus->data as $menu) - { - $args->current_menu_srl = $menu->menu_srl; - $args->menu_srl = $moduleConfig->unlinked_menu_srl; - $output3 = executeQuery('menu.updateMenuItems', $args); - - if($output3->toBool()) - { - // delete - $oMenuAdminController = getAdminController('menu'); - $oMenuAdminController->deleteMenu($menu->menu_srl); - } - } - } -*/ } function getUnlinkedMenu() @@ -231,14 +206,15 @@ function updateLinkModule($moduleInfos, $menuSrl) $output = executeQuery('module.updateModule', $moduleInfo); - $oCacheHandler = CacheHandler::getInstance('object', null, true); - if($oCacheHandler->isSupport()) - { - $oCacheHandler->invalidateGroupKey('site_and_module'); - } return $output; } - + + $oCacheHandler = CacheHandler::getInstance('object', null, true); + if($oCacheHandler->isSupport()) + { + $oCacheHandler->invalidateGroupKey('site_and_module'); + } + $oMenuAdminController = getAdminController('menu'); $oMenuAdminController->makeXmlFile($menuSrl); diff --git a/modules/menu/menu.class.php b/modules/menu/menu.class.php index 22fb0f5d2a..f56e107c1c 100644 --- a/modules/menu/menu.class.php +++ b/modules/menu/menu.class.php @@ -39,6 +39,15 @@ function checkUpdate() { return TRUE; } + + + $oMenuAdminModel = getAdminModel('menu'); + $args = new stdClass(); + $args->title = array("Temporary menu"); + $temp_menus = executeQueryArray('menu.getMenuByTitle', $args); + if($temp_menus->toBool() && count($temp_menus->data)) return true; + + return false; } @@ -135,6 +144,33 @@ function moduleUpdate() { $this->recompileCache(); } + + // for 1.7.4 update, 기존에 생성된 Temporary menu 항목 정리 + $oMenuAdminModel = getAdminModel('menu'); + $args = new stdClass(); + $args->title = array("Temporary menu"); + $temp_menus = executeQueryArray('menu.getMenuByTitle', $args); + + $args = new stdClass(); + if($temp_menus->toBool() && count($temp_menus->data)) + { + + $oMenuAdminController = getAdminController('menu'); + foreach($temp_menus->data as $menu) + { + $args->current_menu_srl = $menu->menu_srl; + $args->menu_srl = $oMenuAdminController->getUnlinkedMenu(); + $output3 = executeQuery('menu.updateMenuItems', $args); + + if($output3->toBool()) + { + // delete + $oMenuAdminController->deleteMenu($menu->menu_srl); + } + } + + $this->recompileCache(); + } return new Object(0, 'success_updated'); } From 65f59c1e1b6f8382d496ea186aa95abbbee2c6db Mon Sep 17 00:00:00 2001 From: bnu Date: Wed, 29 Jan 2014 16:29:55 +0900 Subject: [PATCH 098/549] #358 fix error d48d9d8 --- modules/module/module.model.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/module/module.model.php b/modules/module/module.model.php index 64f088e582..938afc833f 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -1363,14 +1363,13 @@ function getModuleConfig($module, $site_srl = 0) if($config === false) { - if(!isset($GLOBALS['__ModuleConfig__'][$site_srl][$module])) + if(!$GLOBALS['__ModuleConfig__'][$site_srl][$module]) { $args = new stdClass(); $args->module = $module; $args->site_srl = $site_srl; $output = executeQuery('module.getModuleConfig', $args); $config = unserialize($output->data->config); - if(!$config) $config = new stdClass; //insert in cache if($oCacheHandler->isSupport()) @@ -1410,7 +1409,6 @@ function getModulePartConfig($module, $module_srl) $args->module_srl = $module_srl; $output = executeQuery('module.getModulePartConfig', $args); $config = unserialize($output->data->config); - if(!$config) $config = new stdClass; //insert in cache if($oCacheHandler->isSupport()) From 6e478dc8d76568115d193114292f2bf91e6ea29c Mon Sep 17 00:00:00 2001 From: khongchi Date: Wed, 29 Jan 2014 16:59:41 +0900 Subject: [PATCH 099/549] =?UTF-8?q?#211=20module=5Fsrl=20=EC=B2=B4?= =?UTF-8?q?=ED=81=AC=20=EC=A0=9C=EA=B1=B0(=EC=9C=84=EC=A0=AF=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20=EB=82=B4=EB=B6=80=20=EB=AC=B8=EC=84=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=EB=B6=88=EA=B0=80=20=EB=AC=B8=EC=A0=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/module/ModuleHandler.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index 74b7d28684..5e564aea04 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -155,10 +155,10 @@ function init() { // If it exists, compare mid based on the module information // if mids are not matching, set it as the document's mid - if(!$this->mid || ($this->mid && $this->mid != $module_info->mid) || ($this->module_srl && $this->module_srl != $module_info->module_srl)) + if(!$this->mid || ($this->mid && $this->mid != $module_info->mid)) { $this->mid = $module_info->mid; - header('location:' . getNotEncodedSiteUrl($site_info->domain, 'mid', $this->mid, 'document_srl', $this->document_srl, 'module_srl','')); + header('location:' . getNotEncodedSiteUrl($site_info->domain, 'mid', $this->mid, 'document_srl', $this->document_srl)); return FALSE; } From c83f6d96dd134978cbc77ee37f1c15bb4a15de43 Mon Sep 17 00:00:00 2001 From: bnu Date: Wed, 29 Jan 2014 23:24:55 +0900 Subject: [PATCH 100/549] #358 fix error d48d9d8 --- modules/module/module.model.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/module/module.model.php b/modules/module/module.model.php index 938afc833f..e7c2db7fbb 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -1408,7 +1408,8 @@ function getModulePartConfig($module, $module_srl) $args->module = $module; $args->module_srl = $module_srl; $output = executeQuery('module.getModulePartConfig', $args); - $config = unserialize($output->data->config); + if($output->data->config) $config = unserialize($output->data->config); + else $config = new stdClass; //insert in cache if($oCacheHandler->isSupport()) @@ -1735,7 +1736,7 @@ function getModuleExtraVars($list_module_srl) $get_module_srls = $list_module_srl; } - if($vars === false || count($get_module_srls) > 0) + if(count($get_module_srls) > 0) { $args = new stdClass(); $args->module_srl = implode(',', $get_module_srls); From 3052a858d80d7d0f7ebc5df81e73e85c0e242b1a Mon Sep 17 00:00:00 2001 From: bnu Date: Wed, 29 Jan 2014 23:25:21 +0900 Subject: [PATCH 101/549] =?UTF-8?q?NOISSUE=20=EC=82=AC=EC=9A=A9=EB=90=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8A=94=20=EB=8D=B0=EC=9D=B4=ED=84=B0?= =?UTF-8?q?=EB=A5=BC=20=EB=A1=9C=EB=93=9C=ED=95=98=EB=8A=94=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/comment/comment.admin.view.php | 7 +++---- modules/comment/comment.model.php | 4 ++++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/modules/comment/comment.admin.view.php b/modules/comment/comment.admin.view.php index f79c89abb5..989007633f 100644 --- a/modules/comment/comment.admin.view.php +++ b/modules/comment/comment.admin.view.php @@ -55,16 +55,15 @@ function dispCommentAdminList() $columnList = array('comment_srl', 'document_srl', 'is_secret', 'status', 'content', 'comments.member_srl', 'comments.nick_name', 'comments.regdate', 'ipaddress', 'voted_count', 'blamed_count'); $output = $oCommentModel->getTotalCommentList($args, $columnList); - $oCommentModel = getModel("comment"); - $modules = $oCommentModel->getDistinctModules(); - $modules_list = $modules; + // $modules = $oCommentModel->getDistinctModules(); + // $modules_list = $modules; // set values in the return object of comment_model:: getTotalCommentList() in order to use a template. Context::set('total_count', $output->total_count); Context::set('total_page', $output->total_page); Context::set('page', $output->page); Context::set('comment_list', $output->data); - Context::set('modules_list', $modules_list); + // Context::set('modules_list', $modules_list); Context::set('page_navigation', $output->page_navigation); Context::set('secret_name_list', $secretNameList); // set the template diff --git a/modules/comment/comment.model.php b/modules/comment/comment.model.php index d5f5356347..a551e76e31 100644 --- a/modules/comment/comment.model.php +++ b/modules/comment/comment.model.php @@ -326,6 +326,9 @@ function getCommentAllCount($module_srl, $published = null) */ function getDistinctModules() { + return array(); + + /* $output = executeQueryArray('comment.getDistinctModules'); $module_srls = $output->data; $oModuleModel = getModel('module'); @@ -339,6 +342,7 @@ function getDistinctModules() } } return $result; + */ } /** From fff3e03ea7aed7120c4b1ac1c7ab97682b1e91a6 Mon Sep 17 00:00:00 2001 From: bnu Date: Thu, 30 Jan 2014 00:38:40 +0900 Subject: [PATCH 102/549] =?UTF-8?q?#385=20=EC=9E=98=EB=AA=BB=EB=90=9C=20mi?= =?UTF-8?q?d=EB=A1=9C=20=EC=9D=B8=ED=95=9C=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/module/module.model.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/module/module.model.php b/modules/module/module.model.php index e7c2db7fbb..ec938d8d3d 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -207,7 +207,7 @@ function getDefaultMid() */ function getModuleInfoByMid($mid, $site_srl = 0, $columnList = array()) { - if(!$mid) + if(!$mid || ($mid && !preg_match("/^[a-z][a-z0-9_]+$/i", $mid))) { return; } @@ -1369,7 +1369,8 @@ function getModuleConfig($module, $site_srl = 0) $args->module = $module; $args->site_srl = $site_srl; $output = executeQuery('module.getModuleConfig', $args); - $config = unserialize($output->data->config); + if($output->data->config) $config = unserialize($output->data->config); + else $config = new stdClass; //insert in cache if($oCacheHandler->isSupport()) From 3cdeeabdc6b593afba6c88b5f894699c7a1df473 Mon Sep 17 00:00:00 2001 From: bnu Date: Thu, 30 Jan 2014 00:39:42 +0900 Subject: [PATCH 103/549] =?UTF-8?q?#385=20=E2=80=98counter:insertedTodaySt?= =?UTF-8?q?atus=E2=80=99=20cache=EA=B0=80=20=EC=A0=9C=EB=8C=80=EB=A1=9C=20?= =?UTF-8?q?=EC=9E=91=EB=8F=99=ED=95=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/counter/counter.model.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/counter/counter.model.php b/modules/counter/counter.model.php index 06e90f1902..fac25cd59a 100644 --- a/modules/counter/counter.model.php +++ b/modules/counter/counter.model.php @@ -85,13 +85,13 @@ function isInsertedTodayStatus($site_srl = 0) } $insertedTodayStatus = !!$output->data->count; - } - if($insertedTodayStatus && $oCacheHandler->isSupport()) - { - $oCacheHandler->put($cache_key, TRUE); - $_old_date = date('Ymd', strtotime('-1 day')); - $oCacheHandler->delete('counter:insertedTodayStatus:' . $site_srl . '_' . $_old_date); + if($insertedTodayStatus && $oCacheHandler->isSupport()) + { + $oCacheHandler->put($cache_key, TRUE); + $_old_date = date('Ymd', strtotime('-1 day')); + $oCacheHandler->delete('counter:insertedTodayStatus:' . $site_srl . '_' . $_old_date); + } } return $insertedTodayStatus; From 7d16d9d37f85d370f314d26fb8ce22ce9637e18f Mon Sep 17 00:00:00 2001 From: bnu Date: Thu, 30 Jan 2014 00:40:42 +0900 Subject: [PATCH 104/549] =?UTF-8?q?NOISSUE=20=EC=82=AC=EC=9D=B4=ED=8A=B8?= =?UTF-8?q?=EB=A7=B5=20=ED=8E=98=EC=9D=B4=EC=A7=80=EC=97=90=EC=84=9C=20men?= =?UTF-8?q?u=20type=20=EB=AA=A9=EB=A1=9D=EC=9D=84=20=EA=B0=80=EC=A0=B8?= =?UTF-8?q?=EC=98=AC=20=EB=95=8C=20=EB=AA=A8=EB=93=88=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8=20=EC=B2=B4=ED=81=AC=20=EB=93=B1=20=EB=B6=88?= =?UTF-8?q?=ED=95=84=EC=9A=94=ED=95=9C=20=EB=8F=99=EC=9E=91=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/menu/menu.admin.model.php | 50 +++++++++++++++++-------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/modules/menu/menu.admin.model.php b/modules/menu/menu.admin.model.php index 7c72a4eb80..08af452f10 100644 --- a/modules/menu/menu.admin.model.php +++ b/modules/menu/menu.admin.model.php @@ -339,38 +339,42 @@ function getMenuAdminInstalledMenuType() $oAutoinstallModel = getModel('autoinstall'); $this->add('menu_types', $this->getModuleListInSitemap(0)); - $_allModules = $oModuleModel->getModuleList(); + $_allModules = FileHandler::readDir('./modules', '/^([a-zA-Z0-9_-]+)$/'); + sort($_allModules); + $allModules = array(); Context::loadLang('modules/page/lang'); - foreach($_allModules as $value) + + foreach($_allModules as $module_name) { - //$moduleInfo = $oModuleModel->getModuleInfoXml($value->module); - $defaultSkin = $oModuleModel->getModuleDefaultSkin($value->module, 'P'); - $defaultMobileSkin = $oModuleModel->getModuleDefaultSkin($value->module, 'M'); - $skinInfo = $oModuleModel->loadSkinInfo(ModuleHandler::getModulePath($value->module), $defaultSkin); - $mobileSkinInfo = $oModuleModel->loadSkinInfo(ModuleHandler::getModulePath($value->module), $defaultMobileSkin, 'm.skins'); - $value->defaultSkin = new stdClass(); - $value->defaultSkin->skin = $defaultSkin; - $value->defaultSkin->title = $skinInfo->title ? $skinInfo->title : $defaultSkin; - $value->defaultMobileSkin = new stdClass(); - $value->defaultMobileSkin->skin = $defaultMobileSkin; - $value->defaultMobileSkin->title = $mobileSkinInfo->title ? $mobileSkinInfo->title : $defaultMobileSkin; - - $value->package_srl = $oAutoinstallModel->getPackageSrlByPath('./modules/' . $value->module); - $value->url = _XE_LOCATION_SITE_ . '?mid=download&package_srl=' . $value->package_srl; - - if($value->module == 'page') + $module = new stdClass; + //$moduleInfo = $oModuleModel->getModuleInfoXml($module->module); + $defaultSkin = $oModuleModel->getModuleDefaultSkin($module_name, 'P'); + $defaultMobileSkin = $oModuleModel->getModuleDefaultSkin($module_name, 'M'); + $skinInfo = $oModuleModel->loadSkinInfo(ModuleHandler::getModulePath($module_name), $defaultSkin); + $mobileSkinInfo = $oModuleModel->loadSkinInfo(ModuleHandler::getModulePath($module_name), $defaultMobileSkin, 'm.skins'); + $module->defaultSkin = new stdClass(); + $module->defaultSkin->skin = $defaultSkin; + $module->defaultSkin->title = $skinInfo->title ? $skinInfo->title : $defaultSkin; + $module->defaultMobileSkin = new stdClass(); + $module->defaultMobileSkin->skin = $defaultMobileSkin; + $module->defaultMobileSkin->title = $mobileSkinInfo->title ? $mobileSkinInfo->title : $defaultMobileSkin; + + $module->package_srl = $oAutoinstallModel->getPackageSrlByPath('./modules/' . $module_name); + $module->url = _XE_LOCATION_SITE_ . '?mid=download&package_srl=' . $module->package_srl; + + if($module_name == 'page') { $pageTypeName = Context::getLang('page_type_name'); - $value->title = $pageTypeName['ARTICLE']; - $allModules['ARTICLE'] = $value; - $wModuleInfo = clone $value; + $module->title = $pageTypeName['ARTICLE']; + $allModules['ARTICLE'] = $module; + $wModuleInfo = clone $module; unset($wModuleInfo->default_skin, $wModuleInfo->default_mskin); $wModuleInfo->title = $pageTypeName['WIDGET']; $wModuleInfo->no_skin = 'Y'; $allModules['WIDGET'] = $wModuleInfo; - $oModuleInfo = clone $value; + $oModuleInfo = clone $module; unset($oModuleInfo->default_skin, $oModuleInfo->default_mskin); $oModuleInfo->title = $pageTypeName['OUTSIDE']; $oModuleInfo->no_skin = 'Y'; @@ -378,7 +382,7 @@ function getMenuAdminInstalledMenuType() } else { - $allModules[$value->module] = $value; + $allModules[$module_name] = $module; } } From 7074da575187acedc636c356015dc43cbbee5d72 Mon Sep 17 00:00:00 2001 From: SMaker Date: Thu, 30 Jan 2014 14:53:20 +0900 Subject: [PATCH 105/549] =?UTF-8?q?editor=20=EB=AA=A8=EB=93=88=20=EC=98=A4?= =?UTF-8?q?=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/editor/editor.model.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/editor/editor.model.php b/modules/editor/editor.model.php index 246c092861..10c5e7b93d 100644 --- a/modules/editor/editor.model.php +++ b/modules/editor/editor.model.php @@ -718,6 +718,7 @@ function getComponentXmlInfo($component) $buff .= sprintf('$xml_info->homepage = "%s";', $component_info->homepage); $buff .= sprintf('$xml_info->license = "%s";', $component_info->license); $buff .= sprintf('$xml_info->license_link = "%s";', $component_info->license_link); + $buff .= '$xml_info->author = array();'; // Author information if(!is_array($xml_doc->component->author)) $author_list[] = $xml_doc->component->author; else $author_list = $xml_doc->component->author; @@ -751,6 +752,8 @@ function getComponentXmlInfo($component) $buff .= sprintf('$xml_info->description = "%s";', $xml_info->description); $buff .= sprintf('$xml_info->version = "%s";', $xml_info->version); $buff .= sprintf('$xml_info->date = "%s";', $xml_info->date); + $buff .= '$xml_info->author = array()'; + $buff .= '$xml_info->author[0] = new stdClass();'; $buff .= sprintf('$xml_info->author[0]->name = "%s";', $xml_info->author->name); $buff .= sprintf('$xml_info->author[0]->email_address = "%s";', $xml_info->author->email_address); $buff .= sprintf('$xml_info->author[0]->homepage = "%s";', $xml_info->author->homepage); @@ -760,14 +763,15 @@ function getComponentXmlInfo($component) if($extra_vars) { if(!is_array($extra_vars)) $extra_vars = array($extra_vars); + + $buff .= '$xml_info->extra_vars = new stdClass();'; + foreach($extra_vars as $key => $val) { unset($obj); $key = $val->attrs->name; $title = $val->title->body; $description = $val->description->body; - $xml_info->extra_vars->{$key}->title = $title; - $xml_info->extra_vars->{$key}->description = $description; $buff .= sprintf('$xml_info->extra_vars->%s = new stdClass();', $key); $buff .= sprintf('$xml_info->extra_vars->%s->%s = "%s";', $key, 'title', $title); From 2f469bb8503620b883246f11072be51300544854 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 31 Jan 2014 01:43:23 +0900 Subject: [PATCH 106/549] =?UTF-8?q?#385=20`document=5Fitem`=20object=20cac?= =?UTF-8?q?he=EA=B0=80=20=EB=A7=A4=EB=B2=88=20=EA=B0=B1=EC=8B=A0=EB=90=98?= =?UTF-8?q?=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/document/document.item.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/document/document.item.php b/modules/document/document.item.php index ac3559bea6..7290e92205 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -77,6 +77,7 @@ function _loadFromDB($load_extra_vars = true) if(!$this->document_srl) return; $document_item = false; + $cache_put = false; // cache controll $oCacheHandler = CacheHandler::getInstance('object'); if($oCacheHandler->isSupport()) @@ -101,6 +102,7 @@ function _loadFromDB($load_extra_vars = true) if($document_item === false) { + $cache_put = true; if(!is_object($output->data)) $document_item = new stdClass; else $document_item = $output->data; } @@ -116,7 +118,7 @@ function _loadFromDB($load_extra_vars = true) $this->setAttribute($document_item, $load_extra_vars); //insert in cache - if($this->document_srl && $oCacheHandler->isSupport()) + if($cache_put && $oCacheHandler->isSupport()) { $oCacheHandler->put($cache_key, $this); } From aa0d6e7cd80795b48e861295fe2b5a6abdfbcfa1 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 31 Jan 2014 02:02:20 +0900 Subject: [PATCH 107/549] =?UTF-8?q?#385=20`commentList=5F{document=5Fsrl}`?= =?UTF-8?q?=20object=20cache=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/comment/comment.controller.php | 36 ----- modules/comment/comment.model.php | 127 ++++++++---------- .../document/document.admin.controller.php | 1 - 3 files changed, 54 insertions(+), 110 deletions(-) diff --git a/modules/comment/comment.controller.php b/modules/comment/comment.controller.php index a9e9189296..18e86394c8 100644 --- a/modules/comment/comment.controller.php +++ b/modules/comment/comment.controller.php @@ -469,16 +469,6 @@ function insertComment($obj, $manual_inserted = FALSE) $output->add('comment_srl', $obj->comment_srl); - //remove from cache - $oCacheHandler = CacheHandler::getInstance('object'); - if($oCacheHandler->isSupport()) - { - $oCacheHandler->invalidateGroupKey('commentList_' . $document_srl); - $oCacheHandler->invalidateGroupKey('newestCommentsList'); - - $oCacheHandler->delete('object:' . $document_srl); - } - return $output; } @@ -736,14 +726,6 @@ function updateComment($obj, $is_admin = FALSE) $output->add('comment_srl', $obj->comment_srl); - //remove from cache - $oCacheHandler = CacheHandler::getInstance('object'); - if($oCacheHandler->isSupport()) - { - $oCacheHandler->invalidateGroupKey('commentList_' . $obj->document_srl); - $oCacheHandler->invalidateGroupKey('newestCommentsList'); - } - return $output; } @@ -872,16 +854,6 @@ function deleteComment($comment_srl, $is_admin = FALSE, $isMoveToTrash = FALSE) $output->add('document_srl', $document_srl); - //remove from cache - $oCacheHandler = CacheHandler::getInstance('object'); - if($oCacheHandler->isSupport()) - { - $oCacheHandler->invalidateGroupKey('commentList_' . $document_srl); - $oCacheHandler->invalidateGroupKey('newestCommentsList'); - - $oCacheHandler->delete('object:' . $document_srl); - } - return $output; } @@ -970,14 +942,6 @@ function deleteComments($document_srl, $obj = NULL) $this->_deleteVotedComments($args); } - //remove from cache - $oCacheHandler = CacheHandler::getInstance('object'); - if($oCacheHandler->isSupport()) - { - $oCacheHandler->invalidateGroupKey('commentList_' . $document_srl); - $oCacheHandler->invalidateGroupKey('newestCommentsList'); - } - return $output; } diff --git a/modules/comment/comment.model.php b/modules/comment/comment.model.php index a551e76e31..9d5439a134 100644 --- a/modules/comment/comment.model.php +++ b/modules/comment/comment.model.php @@ -445,97 +445,78 @@ function getCommentList($document_srl, $page = 0, $is_admin = FALSE, $count = 0) return; } - // cache controll - $output = false; - $oCacheHandler = CacheHandler::getInstance('object'); - if($oCacheHandler->isSupport()) + // get the number of comments on the document module + $oDocumentModel = getModel('document'); + $columnList = array('document_srl', 'module_srl', 'comment_count'); + $oDocument = $oDocumentModel->getDocument($document_srl, FALSE, TRUE, $columnList); + + // return if no doc exists. + if(!$oDocument->isExists()) { - $object_key = 'object:' . $document_srl . '_' . $page . '_' . ($is_admin ? 'Y' : 'N') . '_' . $count; - $cache_key = $oCacheHandler->getGroupKey('commentList_' . $document_srl, $object_key); - $output = $oCacheHandler->get($cache_key); + return; } - if($output === FALSE) + // return if no comment exists + if($oDocument->getCommentCount() < 1) { - // get the number of comments on the document module - $oDocumentModel = getModel('document'); - $columnList = array('document_srl', 'module_srl', 'comment_count'); - $oDocument = $oDocumentModel->getDocument($document_srl, FALSE, TRUE, $columnList); + return; + } - // return if no doc exists. - if(!$oDocument->isExists()) - { - return; - } + // get a list of comments + $module_srl = $oDocument->get('module_srl'); - // return if no comment exists - if($oDocument->getCommentCount() < 1) + if(!$count) + { + $comment_config = $this->getCommentConfig($module_srl); + $comment_count = $comment_config->comment_count; + if(!$comment_count) { - return; + $comment_count = 50; } + } + else + { + $comment_count = $count; + } - // get a list of comments - $module_srl = $oDocument->get('module_srl'); + // get a very last page if no page exists + if(!$page) + { + $page = (int) ( ($oDocument->getCommentCount() - 1) / $comment_count) + 1; + } - if(!$count) - { - $comment_config = $this->getCommentConfig($module_srl); - $comment_count = $comment_config->comment_count; - if(!$comment_count) - { - $comment_count = 50; - } - } - else - { - $comment_count = $count; - } + // get a list of comments + $args = new stdClass(); + $args->document_srl = $document_srl; + $args->list_count = $comment_count; + $args->page = $page; + $args->page_count = 10; - // get a very last page if no page exists - if(!$page) - { - $page = (int) ( ($oDocument->getCommentCount() - 1) / $comment_count) + 1; - } + //check if module is using validation system + $oCommentController = getController('comment'); + $using_validation = $oCommentController->isModuleUsingPublishValidation($module_srl); + if($using_validation) + { + $args->status = 1; + } - // get a list of comments - $args = new stdClass(); - $args->document_srl = $document_srl; - $args->list_count = $comment_count; - $args->page = $page; - $args->page_count = 10; - - //check if module is using validation system - $oCommentController = getController('comment'); - $using_validation = $oCommentController->isModuleUsingPublishValidation($module_srl); - if($using_validation) - { - $args->status = 1; - } + $output = executeQueryArray('comment.getCommentPageList', $args); - $output = executeQueryArray('comment.getCommentPageList', $args); + // return if an error occurs in the query results + if(!$output->toBool()) + { + return; + } - // return if an error occurs in the query results + // insert data into CommentPageList table if the number of results is different from stored comments + if(!$output->data) + { + $this->fixCommentList($oDocument->get('module_srl'), $document_srl); + $output = executeQueryArray('comment.getCommentPageList', $args); if(!$output->toBool()) { return; } - - // insert data into CommentPageList table if the number of results is different from stored comments - if(!$output->data) - { - $this->fixCommentList($oDocument->get('module_srl'), $document_srl); - $output = executeQueryArray('comment.getCommentPageList', $args); - if(!$output->toBool()) - { - return; - } - } - - //insert in cache - if($oCacheHandler->isSupport()) - { - $oCacheHandler->put($cache_key, $output); - } } return $output; diff --git a/modules/document/document.admin.controller.php b/modules/document/document.admin.controller.php index 7d185dc2b1..922d944f8d 100644 --- a/modules/document/document.admin.controller.php +++ b/modules/document/document.admin.controller.php @@ -453,7 +453,6 @@ function deleteModuleDocument($module_srl) { $cache_key_item = 'document_item:'.$document_srl; $oCacheHandler->delete($cache_key_item); - $oCacheHandler->invalidateGroupKey('commentList_' . $document_srl); } } } From 5809256d3277006c8ed5b95ccf0bf5b87fb65e00 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 31 Jan 2014 02:06:38 +0900 Subject: [PATCH 108/549] =?UTF-8?q?#385=20`member=5Fgroups`,=20`member=5Fi?= =?UTF-8?q?nfo`=20cache=EB=A5=BC=20point=EB=AA=A8=EB=93=88=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EB=B6=88=ED=95=84=EC=9A=94=ED=95=98=EA=B2=8C=20?= =?UTF-8?q?=EA=B0=B1=EC=8B=A0=ED=95=98=EC=A7=80=20=EC=95=8A=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/point/point.controller.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/point/point.controller.php b/modules/point/point.controller.php index 2f58e4adf0..7f848f64b0 100644 --- a/modules/point/point.controller.php +++ b/modules/point/point.controller.php @@ -642,7 +642,7 @@ function setPoint($member_srl, $point, $mode = null) FileHandler::writeFile($cache_filename, $point); $oCacheHandler = CacheHandler::getInstance('object', null, true); - if($oCacheHandler->isSupport()) + if($new_group_list && $del_group_list && $oCacheHandler->isSupport()) { $object_key = 'member_groups:' . getNumberingPath($member_srl) . $member_srl . '_0'; $cache_key = $oCacheHandler->getGroupKey('member', $object_key); @@ -650,7 +650,7 @@ function setPoint($member_srl, $point, $mode = null) } $oCacheHandler = CacheHandler::getInstance('object'); - if($oCacheHandler->isSupport()) + if($new_group_list && $del_group_list && $oCacheHandler->isSupport()) { $object_key = 'member_info:' . getNumberingPath($member_srl) . $member_srl; $cache_key = $oCacheHandler->getGroupKey('member', $object_key); From 92b4dee94668cf95bcaa76aac75a909a1a5743a8 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 31 Jan 2014 03:25:08 +0900 Subject: [PATCH 109/549] =?UTF-8?q?NOISSUE=20pointModel::isExistsPoint()?= =?UTF-8?q?=EC=97=90=EC=84=9C=20point=20=ED=8C=8C=EC=9D=BC=20=EC=BA=90?= =?UTF-8?q?=EC=8B=9C=EB=A5=BC=20=EC=83=9D=EC=84=B1=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/point/point.model.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/point/point.model.php b/modules/point/point.model.php index 2245674019..5f3a802af9 100644 --- a/modules/point/point.model.php +++ b/modules/point/point.model.php @@ -27,7 +27,7 @@ function isExistsPoint($member_srl) if($this->pointList[$member_srl]) return true; // Get from file cache - $path = sprintf('./files/member_extra_info/point/%s',getNumberingPath($member_srl)); + $path = sprintf(_XE_PATH_ . 'files/member_extra_info/point/%s',getNumberingPath($member_srl)); $cache_filename = sprintf('%s%d.cache.txt', $path, $member_srl); if(file_exists($cache_filename)) { @@ -42,7 +42,11 @@ function isExistsPoint($member_srl) if($output->data->member_srl == $member_srl) { if(!$this->pointList[$member_srl]) + { $this->pointList[$member_srl] = (int)$output->data->point; + FileHandler::makeDir($path); + FileHandler::writeFile($cache_filename, (int)$output->data->point); + } return true; } return false; @@ -59,7 +63,7 @@ function getPoint($member_srl, $from_db = false) if(!$from_db && $this->pointList[$member_srl]) return $this->pointList[$member_srl]; // Get from file cache - $path = sprintf('./files/member_extra_info/point/%s',getNumberingPath($member_srl)); + $path = sprintf(_XE_PATH_ . 'files/member_extra_info/point/%s',getNumberingPath($member_srl)); $cache_filename = sprintf('%s%d.cache.txt', $path, $member_srl); if(!$from_db && file_exists($cache_filename)) From c640bf64ee82649db4aadc155f08869e70af0861 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 31 Jan 2014 04:23:00 +0900 Subject: [PATCH 110/549] =?UTF-8?q?#385=20module=5Fconfig=20=EC=98=A4?= =?UTF-8?q?=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/module/module.model.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/module/module.model.php b/modules/module/module.model.php index ec938d8d3d..9ad09f7334 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -1370,7 +1370,7 @@ function getModuleConfig($module, $site_srl = 0) $args->site_srl = $site_srl; $output = executeQuery('module.getModuleConfig', $args); if($output->data->config) $config = unserialize($output->data->config); - else $config = new stdClass; + else $config = null; //insert in cache if($oCacheHandler->isSupport()) @@ -1410,7 +1410,7 @@ function getModulePartConfig($module, $module_srl) $args->module_srl = $module_srl; $output = executeQuery('module.getModulePartConfig', $args); if($output->data->config) $config = unserialize($output->data->config); - else $config = new stdClass; + else $config = null; //insert in cache if($oCacheHandler->isSupport()) From e2836ca339cb7617dd75a67fe58f48114e4a3485 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 31 Jan 2014 04:23:28 +0900 Subject: [PATCH 111/549] =?UTF-8?q?NOISSUE=20=EA=B2=8C=EC=8B=9C=ED=8C=90?= =?UTF-8?q?=20=EB=AA=A9=EB=A1=9D=20=EC=84=A4=EC=A0=95=EC=9D=B4=20=EC=97=86?= =?UTF-8?q?=EC=9D=84=20=EB=96=84=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/board/board.view.php | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/board/board.view.php b/modules/board/board.view.php index 0cb7265770..bc5634ab96 100644 --- a/modules/board/board.view.php +++ b/modules/board/board.view.php @@ -184,6 +184,7 @@ function dispBoardContent() // list config, columnList setting $oBoardModel = getModel('board'); $this->listConfig = $oBoardModel->getListConfig($this->module_info->module_srl); + if(!$this->listConfig) $this->listConfig = array(); $this->_makeListColumnList(); // display the notice list From fa4800403176d8fc53cbf94e1f5ec07c5c76b767 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 31 Jan 2014 04:30:39 +0900 Subject: [PATCH 112/549] =?UTF-8?q?fix=20#382=20admin=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=EC=97=90=EC=84=9C=20=EC=9B=B9=ED=8F=B0=ED=8A=B8=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/admin/tpl/css/admin_en.css | 3 +-- modules/admin/tpl/css/admin_ko.css | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/admin/tpl/css/admin_en.css b/modules/admin/tpl/css/admin_en.css index 97b5532f8a..6cbb6efe09 100644 --- a/modules/admin/tpl/css/admin_en.css +++ b/modules/admin/tpl/css/admin_en.css @@ -1,6 +1,5 @@ @charset "utf-8"; -@font-face{font-family:NG;src:url(https://themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-Regular.eot);src:local(※),url(https://themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-Regular.woff) format('woff')} -body>.x,.x table,.x input,.x textarea,.x select,.x button{font-family:나눔고딕,NanumGothic,NG,돋움,Dotum,Arial,Helvetica,sans-serif} +body>.x,.x table,.x input,.x textarea,.x select,.x button{font-family:Arial,Helvetica,sans-serif} @media all and (max-width:980px){ body>.x,.x table,.x input,.x textarea,.x select,.x button{font-family:sans-serif} } \ No newline at end of file diff --git a/modules/admin/tpl/css/admin_ko.css b/modules/admin/tpl/css/admin_ko.css index 97b5532f8a..d16de3ca58 100644 --- a/modules/admin/tpl/css/admin_ko.css +++ b/modules/admin/tpl/css/admin_ko.css @@ -1,6 +1,5 @@ @charset "utf-8"; -@font-face{font-family:NG;src:url(https://themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-Regular.eot);src:local(※),url(https://themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-Regular.woff) format('woff')} -body>.x,.x table,.x input,.x textarea,.x select,.x button{font-family:나눔고딕,NanumGothic,NG,돋움,Dotum,Arial,Helvetica,sans-serif} +body>.x,.x table,.x input,.x textarea,.x select,.x button{font-family:나눔고딕,NanumGothic,돋움,Dotum,Arial,Helvetica,sans-serif} @media all and (max-width:980px){ body>.x,.x table,.x input,.x textarea,.x select,.x button{font-family:sans-serif} } \ No newline at end of file From bc3cf3f199f6c371768c468636f6e8522d9b1a36 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 31 Jan 2014 18:45:02 +0900 Subject: [PATCH 113/549] =?UTF-8?q?#385=20`document=5Fitem`=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../document/document.admin.controller.php | 4 +-- modules/document/document.controller.php | 4 +-- modules/document/document.item.php | 31 ++++++++----------- modules/document/document.model.php | 3 +- 4 files changed, 18 insertions(+), 24 deletions(-) diff --git a/modules/document/document.admin.controller.php b/modules/document/document.admin.controller.php index 922d944f8d..8734251066 100644 --- a/modules/document/document.admin.controller.php +++ b/modules/document/document.admin.controller.php @@ -195,7 +195,7 @@ function moveDocumentModule($document_srl_list, $module_srl, $category_srl) { foreach($document_srl_list as $document_srl) { - $cache_key_item = 'document_item:'.$document_srl; + $cache_key_item = 'document_item:'. getNumberingPath($document_srl) . $document_srl; $oCacheHandler->delete($cache_key_item); } } @@ -451,7 +451,7 @@ function deleteModuleDocument($module_srl) { foreach($document_srl_list as $document_srl) { - $cache_key_item = 'document_item:'.$document_srl; + $cache_key_item = 'document_item:'. getNumberingPath($document_srl) . $document_srl; $oCacheHandler->delete($cache_key_item); } } diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index 5546c82760..87220649cc 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -555,7 +555,7 @@ function updateDocument($source_obj, $obj, $manual_updated = FALSE) if($oCacheHandler->isSupport()) { //remove document item from cache - $cache_key = 'document_item:'.$obj->document_srl; + $cache_key = 'document_item:'. getNumberingPath($obj->document_srl) . $obj->document_srl; $oCacheHandler->delete($cache_key); } @@ -646,7 +646,7 @@ function deleteDocument($document_srl, $is_admin = false, $isEmptyTrash = false, $oCacheHandler = CacheHandler::getInstance('object'); if($oCacheHandler->isSupport()) { - $cache_key = 'document_item:'.$document_srl; + $cache_key = 'document_item:'. getNumberingPath($document_srl) . $document_srl; $oCacheHandler->delete($cache_key); } diff --git a/modules/document/document.item.php b/modules/document/document.item.php index 7290e92205..bbb944f0be 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -78,33 +78,34 @@ function _loadFromDB($load_extra_vars = true) $document_item = false; $cache_put = false; + $columnList = array(); + $this->columnList = array(); + // cache controll $oCacheHandler = CacheHandler::getInstance('object'); if($oCacheHandler->isSupport()) { - $cache_key = 'document_item:' . $this->document_srl; + $cache_key = 'document_item:' . getNumberingPath($this->document_srl) . $this->document_srl; $document_item = $oCacheHandler->get($cache_key); - if($document_item !== false) { - $document_item = (object)$document_item->getVariables(); - $this->columnList = array('readed_count', 'voted_count', 'blamed_count', 'comment_count', 'trackback_count'); - } - else - { - $this->columnList = array(); + $columnList = array('readed_count', 'voted_count', 'blamed_count', 'comment_count', 'trackback_count'); } } $args = new stdClass(); $args->document_srl = $this->document_srl; - $output = executeQuery('document.getDocument', $args, $this->columnList); + $output = executeQuery('document.getDocument', $args, $columnList); if($document_item === false) { - $cache_put = true; - if(!is_object($output->data)) $document_item = new stdClass; - else $document_item = $output->data; + $document_item = $output->data; + + //insert in cache + if($document_item && $oCacheHandler->isSupport()) + { + $oCacheHandler->put($cache_key, $document_item); + } } else { @@ -116,12 +117,6 @@ function _loadFromDB($load_extra_vars = true) } $this->setAttribute($document_item, $load_extra_vars); - - //insert in cache - if($cache_put && $oCacheHandler->isSupport()) - { - $oCacheHandler->put($cache_key, $this); - } } function setAttribute($attribute, $load_extra_vars=true) diff --git a/modules/document/document.model.php b/modules/document/document.model.php index 8d58efaa9a..c51c18de93 100644 --- a/modules/document/document.model.php +++ b/modules/document/document.model.php @@ -136,12 +136,11 @@ function getDocument($document_srl=0, $is_admin = false, $load_extra_vars=true, { if(!$document_srl) return new documentItem(); - if(!isset($GLOBALS['XE_DOCUMENT_LIST'][$document_srl]) || $GLOBALS['XE_DOCUMENT_LIST'][$document_srl]->columnListKey != serialize($columnList)) + if(!$GLOBALS['XE_DOCUMENT_LIST'][$document_srl]) { $oDocument = new documentItem($document_srl, $load_extra_vars, $columnList); $GLOBALS['XE_DOCUMENT_LIST'][$document_srl] = $oDocument; if($load_extra_vars) $this->setToAllDocumentExtraVars(); - $GLOBALS['XE_DOCUMENT_LIST'][$document_srl]->columnListKey = serialize($columnList); } if($is_admin) $GLOBALS['XE_DOCUMENT_LIST'][$document_srl]->setGrant(); From ac24592624efdd8f7bbfa908b693ac53ac1a6f6f Mon Sep 17 00:00:00 2001 From: bnu Date: Sat, 1 Feb 2014 19:54:21 +0900 Subject: [PATCH 114/549] =?UTF-8?q?NOISSUE=20editor=20component=20cache=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EC=83=9D=EC=84=B1=20=EC=8B=9C=20var=5Fexp?= =?UTF-8?q?ort=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/editor/editor.model.php | 110 +++++++++++++------------------- 1 file changed, 46 insertions(+), 64 deletions(-) diff --git a/modules/editor/editor.model.php b/modules/editor/editor.model.php index 10c5e7b93d..c070fb8faa 100644 --- a/modules/editor/editor.model.php +++ b/modules/editor/editor.model.php @@ -681,111 +681,93 @@ function getComponent($component_name, $site_srl = 0) function getComponentXmlInfo($component) { $lang_type = Context::getLangType(); + // Get xml file path of the requested components $component_path = sprintf('%s/components/%s/', $this->module_path, $component); $xml_file = sprintf('%sinfo.xml', $component_path); $cache_file = sprintf('./files/cache/editor/%s.%s.php', $component, $lang_type); + // Include and return xml file information if cached file exists if(file_exists($cache_file) && file_exists($xml_file) && filemtime($cache_file) > filemtime($xml_file)) { include($cache_file); + return $xml_info; } - // Parse, cache and then return if the cached file doesn't exist + $oParser = new XmlParser(); $xml_doc = $oParser->loadXmlFile($xml_file); + // Component information listed - if($xml_doc->component->version && $xml_doc->component->attrs->version == '0.2') + $component_info = new stdClass; + $component_info->author = array(); + $component_info->extra_vars = new stdClass; + $component_info->component_name = $component; + $component_info->title = $xml_doc->component->title->body; + + if($xml_doc->component->version) { - $component_info = new stdClass(); - $component_info->component_name = $component; - $component_info->title = $xml_doc->component->title->body; $component_info->description = str_replace('\n', "\n", $xml_doc->component->description->body); $component_info->version = $xml_doc->component->version->body; $component_info->date = $xml_doc->component->date->body; $component_info->homepage = $xml_doc->component->link->body; $component_info->license = $xml_doc->component->license->body; $component_info->license_link = $xml_doc->component->license->attrs->link; - - $buff = 'component_name = "%s";', $component_info->component_name); - $buff .= sprintf('$xml_info->title = "%s";', $component_info->title); - $buff .= sprintf('$xml_info->description = "%s";', $component_info->description); - $buff .= sprintf('$xml_info->version = "%s";', $component_info->version); - $buff .= sprintf('$xml_info->date = "%s";', $component_info->date); - $buff .= sprintf('$xml_info->homepage = "%s";', $component_info->homepage); - $buff .= sprintf('$xml_info->license = "%s";', $component_info->license); - $buff .= sprintf('$xml_info->license_link = "%s";', $component_info->license_link); - $buff .= '$xml_info->author = array();'; - // Author information - if(!is_array($xml_doc->component->author)) $author_list[] = $xml_doc->component->author; - else $author_list = $xml_doc->component->author; - - for($i=0; $i < count($author_list); $i++) - { - $buff .= '$xml_info->author[' . $i .']= new stdClass();'; - $buff .= sprintf('$xml_info->author['.$i.']->name = "%s";', $author_list[$i]->name->body); - $buff .= sprintf('$xml_info->author['.$i.']->email_address = "%s";', $author_list[$i]->attrs->email_address); - $buff .= sprintf('$xml_info->author['.$i.']->homepage = "%s";', $author_list[$i]->attrs->link); - } } else { sscanf($xml_doc->component->author->attrs->date, '%d. %d. %d', $date_obj->y, $date_obj->m, $date_obj->d); $date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d); - $xml_info = new stdClass(); - $xml_info->component_name = $component; - $xml_info->title = $xml_doc->component->title->body; - $xml_info->description = str_replace('\n', "\n", $xml_doc->component->author->description->body); - $xml_info->version = $xml_doc->component->attrs->version; - $xml_info->date = $date; - $xml_info->author->name = $xml_doc->component->author->name->body; - $xml_info->author->email_address = $xml_doc->component->author->attrs->email_address; - $xml_info->author->homepage = $xml_doc->component->author->attrs->link; - - $buff = 'component_name = "%s";', $xml_info->component_name); - $buff .= sprintf('$xml_info->title = "%s";', $xml_info->title); - $buff .= sprintf('$xml_info->description = "%s";', $xml_info->description); - $buff .= sprintf('$xml_info->version = "%s";', $xml_info->version); - $buff .= sprintf('$xml_info->date = "%s";', $xml_info->date); - $buff .= '$xml_info->author = array()'; - $buff .= '$xml_info->author[0] = new stdClass();'; - $buff .= sprintf('$xml_info->author[0]->name = "%s";', $xml_info->author->name); - $buff .= sprintf('$xml_info->author[0]->email_address = "%s";', $xml_info->author->email_address); - $buff .= sprintf('$xml_info->author[0]->homepage = "%s";', $xml_info->author->homepage); + + $component_info->description = str_replace('\n', "\n", $xml_doc->component->author->description->body); + $component_info->version = $xml_doc->component->attrs->version; + $component_info->date = $date; + + $component_info->author = array(); + $component_info->author[0]->name = $xml_doc->component->author->name->body; + $component_info->author[0]->email_address = $xml_doc->component->author->attrs->email_address; + $component_info->author[0]->homepage = $xml_doc->component->author->attrs->link; } + + // Author information + $author_list = array(); + if(!is_array($xml_doc->component->author)) $author_list[] = $xml_doc->component->author; + else $author_list = $xml_doc->component->author; + + for($i = 0; $i < count($author_list); $i++) + { + $author = new stdClass; + $author->name = $author_list[$i]->name->body; + $author->email_address = $author_list[$i]->attrs->email_address; + $author->homepage = $author_list[$i]->attrs->link; + $component_info->author[] = $author; + } + // List extra variables (text type only for editor component) $extra_vars = $xml_doc->component->extra_vars->var; if($extra_vars) { if(!is_array($extra_vars)) $extra_vars = array($extra_vars); - $buff .= '$xml_info->extra_vars = new stdClass();'; - foreach($extra_vars as $key => $val) { - unset($obj); $key = $val->attrs->name; - $title = $val->title->body; - $description = $val->description->body; - - $buff .= sprintf('$xml_info->extra_vars->%s = new stdClass();', $key); - $buff .= sprintf('$xml_info->extra_vars->%s->%s = "%s";', $key, 'title', $title); - $buff .= sprintf('$xml_info->extra_vars->%s->%s = "%s";', $key, 'description', $description); + $extra_var = new stdClass; + $extra_var->title = $val->title->body; + $extra_var->description = $val->description->body; + $component_info->extra_vars->{$key} = $extra_var; } } - $buff .= ' ?>'; + $buff = array(); + $buff[] = ' Date: Sun, 2 Feb 2014 23:18:25 +0900 Subject: [PATCH 115/549] =?UTF-8?q?noissue=20GRUNT=20component-multimedia-?= =?UTF-8?q?link=20=EC=A0=9C=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gruntfile.js | 7 ------- 1 file changed, 7 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 0c85634b7c..9d16eb00bb 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -75,8 +75,6 @@ module.exports = function(grunt) { 'modules/board/skins/default/board.default.min.js': ['modules/board/skins/default/board.default.js'], 'modules/board/m.skins/default/js/mboard.min.js': ['modules/board/m.skins/default/js/mboard.js'], 'modules/board/m.skins/simpleGray/js/mboard.min.js': ['modules/board/m.skins/simpleGray/js/mboard.js'], - // editor-component-multimedia-link - 'modules/editor/components/multimedia_link/tpl/popup.min.js': ['modules/editor/components/multimedia_link/tpl/popup.js'], // editor-component-image-gallery 'modules/editor/components/image_gallery/tpl/gallery.min.js' : ['modules/editor/components/image_gallery/tpl/gallery.js'], 'modules/editor/components/image_gallery/tpl/list_gallery.min.js' : ['modules/editor/components/image_gallery/tpl/list_gallery.js'], @@ -114,11 +112,6 @@ module.exports = function(grunt) { 'modules/editor/components/image_gallery/tpl/slide_gallery.min.css': ['modules/editor/components/image_gallery/tpl/slide_gallery.css'], } }, - 'editor-component-multimedia-link': { - files: { - 'modules/editor/components/multimedia_link/tpl/popup.min.css': ['modules/editor/components/multimedia_link/tpl/popup.css'], - } - }, 'moudle-widget-tpl': { files: { 'modules/widget/tpl/css/widget.min.css': ['modules/widget/tpl/css/widget.css'], From b72b6344c67865ac3ccbbd50ea44791ca9bd4015 Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 3 Feb 2014 11:08:03 +0900 Subject: [PATCH 116/549] =?UTF-8?q?#3=20IE=209=EB=AF=B8=EB=A7=8C=EC=97=90?= =?UTF-8?q?=EC=84=9C=20jQuery=EB=A5=BC=20=EB=A1=9C=EB=93=9C=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EB=AA=BB=ED=95=98=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/display/HTMLDisplayHandler.php | 8 ++++---- common/tpl/common_layout.html | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/classes/display/HTMLDisplayHandler.php b/classes/display/HTMLDisplayHandler.php index 20240d657d..54e02568a2 100644 --- a/classes/display/HTMLDisplayHandler.php +++ b/classes/display/HTMLDisplayHandler.php @@ -396,8 +396,8 @@ function _loadJSCSS() // add common JS/CSS files if(__DEBUG__) { - $oContext->loadFile(array('./common/js/jquery.js', 'head', '', -110000), true); - $oContext->loadFile(array('./common/js/jquery-1.x.js', 'head', 'lt IE 9', -109000), true); + $oContext->loadFile(array('./common/js/jquery-1.x.js', 'head', 'lt IE 9', -111000), true); + $oContext->loadFile(array('./common/js/jquery.js', 'head', 'gte IE 9', -110000), true); $oContext->loadFile(array('./common/js/x.js', 'head', '', -100000), true); $oContext->loadFile(array('./common/js/common.js', 'head', '', -100000), true); $oContext->loadFile(array('./common/js/js_app.js', 'head', '', -100000), true); @@ -407,8 +407,8 @@ function _loadJSCSS() } else { - $oContext->loadFile(array('./common/js/jquery.min.js', 'head', '', -110000), true); - $oContext->loadFile(array('./common/js/jquery-1.x.min.js', 'head', 'lt IE 9', -109000), true); + $oContext->loadFile(array('./common/js/jquery-1.x.min.js', 'head', 'lt IE 9', -111000), true); + $oContext->loadFile(array('./common/js/jquery.min.js', 'head', 'gte IE 9', -110000), true); $oContext->loadFile(array('./common/js/x.min.js', 'head', '', -100000), true); $oContext->loadFile(array('./common/js/xe.min.js', 'head', '', -100000), true); $oContext->loadFile(array('./common/css/xe.min.css', '', '', -1000000), true); diff --git a/common/tpl/common_layout.html b/common/tpl/common_layout.html index e2aee37818..b4488b786e 100644 --- a/common/tpl/common_layout.html +++ b/common/tpl/common_layout.html @@ -25,7 +25,7 @@ - From b05afbb2fd8a73e19eaa92dd8907811bea5c1506 Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 3 Feb 2014 12:48:40 +0900 Subject: [PATCH 117/549] fix error 7d16d9d --- modules/menu/menu.admin.model.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/menu/menu.admin.model.php b/modules/menu/menu.admin.model.php index 08af452f10..c270781c37 100644 --- a/modules/menu/menu.admin.model.php +++ b/modules/menu/menu.admin.model.php @@ -348,8 +348,7 @@ function getMenuAdminInstalledMenuType() foreach($_allModules as $module_name) { - $module = new stdClass; - //$moduleInfo = $oModuleModel->getModuleInfoXml($module->module); + $module = $oModuleModel->getModuleInfoXml($module_name); $defaultSkin = $oModuleModel->getModuleDefaultSkin($module_name, 'P'); $defaultMobileSkin = $oModuleModel->getModuleDefaultSkin($module_name, 'M'); $skinInfo = $oModuleModel->loadSkinInfo(ModuleHandler::getModulePath($module_name), $defaultSkin); From e77251379aba431c05728b505a49b99b25238500 Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 3 Feb 2014 13:26:32 +0900 Subject: [PATCH 118/549] Revert "NOISSUE, Getting a real ip of client, when the server is under a proxy." This reverts commit d49b2307e76e29a357b448728b798f2ea17b3f15. --- config/config.inc.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/config/config.inc.php b/config/config.inc.php index 0d806ae645..48e01ff778 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -45,11 +45,6 @@ // Set can use other method instead cookie to store session id(for file upload) ini_set('session.use_only_cookies', 0); -// Set Real IP Address of Client. -if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) -{ - $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR']; -} if(file_exists(_XE_PATH_ . 'config/package.inc.php')) { From c73aa9bb76b7088c8d55cbaaaedce54473e25b88 Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 3 Feb 2014 13:40:27 +0900 Subject: [PATCH 119/549] =?UTF-8?q?#43=20=EC=82=AC=EC=9D=B4=ED=8A=B8=20?= =?UTF-8?q?=EC=9E=A0=EA=B8=88=20=EC=84=A4=EC=A0=95=20=EC=8B=9C=20=EC=A0=91?= =?UTF-8?q?=EC=86=8D=EC=9E=90=EC=9D=98=20IP=EA=B0=80=20=EB=B0=98=EB=93=9C?= =?UTF-8?q?=EC=8B=9C=20=EC=B6=94=EA=B0=80=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/help/index.html | 2 +- modules/admin/admin.admin.controller.php | 2 +- modules/admin/admin.admin.view.php | 4 +++- modules/admin/lang/lang.xml | 4 ++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/admin/help/index.html b/admin/help/index.html index a97e714c12..c052aced84 100644 --- a/admin/help/index.html +++ b/admin/help/index.html @@ -420,7 +420,7 @@

설정

  • 인증 세션 DB 사용: 인증 시 사용되는 PHP 세션을 DB로 사용하는 기능입니다. 웹서버의 사용률이 낮은 사이트에서는 비활성화시 사이트 응답 속도가 향상될 수 있습니다. 단, 현재 접속자를 구할 수 없어 관련된 기능을 사용할 수 없게 됩니다.
  • Qmail 호환: Qmail등 CRLF를 줄 구분자로 인식하지 못하는 MTA에서 메일이 발송되도록 합니다.
  • 사이트 잠금: 지정한 IP 외 접근을 차단할 수 있습니다.
  • -
  • 접근 허용 IP: 이곳에 관리자의 IP가 반드시 포함되어야 합니다. 만약 접근이 차단된 경우 './files/config/db.config.php' 파일에서 `$db_info->use_sitelock`를 'N'으로 변경하여 차단을 해제할 수 있습니다.
  • +
  • 접근 허용 IP: 이곳에 관리자의 IP가 반드시 포함되어야 합니다. 만약 접근이 차단된 경우 './files/config/db.config.php' 파일에서 `'use_sitelock' => 'Y'`를 `'use_sitelock' => 'N'`으로 변경하여 차단을 해제할 수 있습니다.
  • FTP 설정
    diff --git a/modules/admin/admin.admin.controller.php b/modules/admin/admin.admin.controller.php index cd03fe6e1e..6e1d09f3b6 100644 --- a/modules/admin/admin.admin.controller.php +++ b/modules/admin/admin.admin.controller.php @@ -498,7 +498,7 @@ function procAdminUpdateSitelock() { $whitelist = ''; } - $whitelist .= ',127.0.0.1'; + $whitelist .= ',127.0.0.1,' . $_SERVER['REMOTE_ADDR']; $whitelist = explode(',',trim($whitelist, ',')); $whitelist = array_unique($whitelist); diff --git a/modules/admin/admin.admin.view.php b/modules/admin/admin.admin.view.php index 97a14c6de9..de2d4da52b 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -413,8 +413,11 @@ function dispAdminConfigGeneral() Context::set('langs', Context::loadLangSupported()); // site lock + Context::set('IP', $_SERVER['REMOTE_ADDR']); if(!$db_info->sitelock_title) $db_info->sitelock_title = 'Maintenance in progress...'; if(!in_array('127.0.0.1', $db_info->sitelock_whitelist)) $db_info->sitelock_whitelist[] = '127.0.0.1'; + if(!in_array($_SERVER['REMOTE_ADDR'], $db_info->sitelock_whitelist)) $db_info->sitelock_whitelist[] = $_SERVER['REMOTE_ADDR']; + $db_info->sitelock_whitelist = array_unique($db_info->sitelock_whitelist); Context::set('remote_addr', $_SERVER['REMOTE_ADDR']); Context::set('use_sitelock', $db_info->use_sitelock); Context::set('sitelock_title', $db_info->sitelock_title); @@ -439,7 +442,6 @@ function dispAdminConfigGeneral() $config = $oDocumentModel->getDocumentConfig(); Context::set('thumbnail_type', $config->thumbnail_type); - Context::set('IP', $_SERVER['REMOTE_ADDR']); $oModuleModel = getModel('module'); $config = $oModuleModel->getModuleConfig('module'); diff --git a/modules/admin/lang/lang.xml b/modules/admin/lang/lang.xml index 2bde3ddbd9..3fc63c16bd 100644 --- a/modules/admin/lang/lang.xml +++ b/modules/admin/lang/lang.xml @@ -1590,8 +1590,8 @@ - 만약 접근이 차단된 경우 './files/config/db.config.php' 파일에서 `$db_info->use_sitelock`를 'N'으로 변경하여 차단을 해제할 수 있습니다.]]> - もし接近が遮断された場合、'./files/config/db.config.php' ファイルから `$db_info->use_sitelock`を 'N'へ変更すれば遮断が解除できます。]]> + 만약 접근이 차단된 경우 './files/config/db.config.php' 파일에서 `'use_sitelock' => 'Y'`를 `'use_sitelock' => 'N'`으로 변경하여 차단을 해제할 수 있습니다.]]> + もし接近が遮断された場合、'./files/config/db.config.php' ファイルから `'use_sitelock' => 'Y'`を `'use_sitelock' => 'N'`へ変更すれば遮断が解除できます。]]> From 0eab5285b0643a5e9c500dc189517bef619dbb89 Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 3 Feb 2014 13:45:29 +0900 Subject: [PATCH 120/549] =?UTF-8?q?NOISSUE=20=EA=B4=80=EB=A6=AC=EC=9E=90?= =?UTF-8?q?=20IP=20=EB=8C=80=EC=97=AD=20=EC=9E=85=EB=A0=A5=20=EC=8B=9C=20?= =?UTF-8?q?=EC=A0=91=EC=86=8D=EC=9E=90=EC=9D=98=20IP=EB=A5=BC=20=EB=B0=98?= =?UTF-8?q?=EB=93=9C=EC=8B=9C=20=EC=B6=94=EA=B0=80=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/admin/admin.admin.view.php | 3 +++ modules/install/install.admin.controller.php | 1 + 2 files changed, 4 insertions(+) diff --git a/modules/admin/admin.admin.view.php b/modules/admin/admin.admin.view.php index de2d4da52b..4ed0fb1be5 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -426,6 +426,9 @@ function dispAdminConfigGeneral() $whitelist = implode("\r\n", $db_info->sitelock_whitelist); Context::set('sitelock_whitelist', $whitelist); + if(!in_array('127.0.0.1', $db_info->admin_ip_list)) $db_info->admin_ip_list[] = '127.0.0.1'; + if(!in_array($_SERVER['REMOTE_ADDR'], $db_info->admin_ip_list)) $db_info->admin_ip_list[] = $_SERVER['REMOTE_ADDR']; + if($db_info->admin_ip_list) $admin_ip_list = implode("\r\n", $db_info->admin_ip_list); else $admin_ip_list = ''; Context::set('admin_ip_list', $admin_ip_list); diff --git a/modules/install/install.admin.controller.php b/modules/install/install.admin.controller.php index 8da431aea7..cb0a03ee80 100644 --- a/modules/install/install.admin.controller.php +++ b/modules/install/install.admin.controller.php @@ -61,6 +61,7 @@ function procInstallAdminSaveTimeZone() { $admin_ip_list = ''; } + $admin_ip_list .= ',127.0.0.1,' . $_SERVER['REMOTE_ADDR']; $admin_ip_list = explode(',',trim($admin_ip_list, ',')); $admin_ip_list = array_unique($admin_ip_list); if(!IpFilter::validate($admin_ip_list)) { From e705c3b17c3748d2c3d9c14cad523eacf0cc42c3 Mon Sep 17 00:00:00 2001 From: khongchi Date: Mon, 3 Feb 2014 13:44:52 +0900 Subject: [PATCH 121/549] =?UTF-8?q?#211=20post=20=EC=9A=94=EC=B2=AD?= =?UTF-8?q?=EC=9D=BC=20=EA=B2=BD=EC=9A=B0=20redirect=20=EB=B0=B0=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/module/ModuleHandler.class.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index 5e564aea04..802a751264 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -155,13 +155,22 @@ function init() { // If it exists, compare mid based on the module information // if mids are not matching, set it as the document's mid - if(!$this->mid || ($this->mid && $this->mid != $module_info->mid)) + if(!$this->mid || ($this->mid != $module_info->mid)) { - $this->mid = $module_info->mid; - header('location:' . getNotEncodedSiteUrl($site_info->domain, 'mid', $this->mid, 'document_srl', $this->document_srl)); - return FALSE; + + if(Context::getRequestMethod() == 'GET') + { + $this->mid = $module_info->mid; + header('location:' . getNotEncodedSiteUrl($site_info->domain, 'mid', $this->mid, 'document_srl', $this->document_srl)); + return FALSE; + } + else + { + $this->mid = $module_info->mid; + Context::set('mid', $this->mid); + } + } - // if requested module is different from one of the document, remove the module information retrieved based on the document number if($this->module && $module_info->module != $this->module) { From c88d99aaef13f84801cbe0ae52d2ba02062eb37e Mon Sep 17 00:00:00 2001 From: akasima Date: Mon, 3 Feb 2014 14:16:02 +0900 Subject: [PATCH 122/549] =?UTF-8?q?db=5Finfo->admin=5Fip=5Flist=20?= =?UTF-8?q?=EC=97=86=EC=9D=84=20=EB=95=8C=20=EC=98=A4=EB=A5=98=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/admin/admin.admin.view.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/admin/admin.admin.view.php b/modules/admin/admin.admin.view.php index 4ed0fb1be5..c01e9e1814 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -426,6 +426,8 @@ function dispAdminConfigGeneral() $whitelist = implode("\r\n", $db_info->sitelock_whitelist); Context::set('sitelock_whitelist', $whitelist); + if(gettype($db_info->admin_ip_list)!="array") + $db_info->admin_ip_list = array(); if(!in_array('127.0.0.1', $db_info->admin_ip_list)) $db_info->admin_ip_list[] = '127.0.0.1'; if(!in_array($_SERVER['REMOTE_ADDR'], $db_info->admin_ip_list)) $db_info->admin_ip_list[] = $_SERVER['REMOTE_ADDR']; From 8f0a2a80c5e3c37dc4ef9c157b04d7934529e163 Mon Sep 17 00:00:00 2001 From: khongchi Date: Mon, 3 Feb 2014 17:37:01 +0900 Subject: [PATCH 123/549] =?UTF-8?q?#398=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EC=BD=94=EB=93=9C=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/admin/admin.admin.view.php | 62 +++++++++--------------------- 1 file changed, 19 insertions(+), 43 deletions(-) diff --git a/modules/admin/admin.admin.view.php b/modules/admin/admin.admin.view.php index c01e9e1814..bbf1768fd3 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -138,19 +138,15 @@ function makeGnbUrl($module = 'admin') $lang->menu_gnb_sub = $oAdminAdminModel->getAdminMenuLang(); $result = $oAdminAdminModel->checkAdminMenu(); - if(!$result->php_file) - { - header('Location: ' . getNotEncodedUrl('', 'module', 'admin')); - Context::close(); - exit; - } include $result->php_file; $oModuleModel = getModel('module'); - $moduleActionInfo = $oModuleModel->getModuleActionXml($module); + // get current menu's subMenuTitle + $moduleActionInfo = $oModuleModel->getModuleActionXml($module); $currentAct = Context::get('act'); $subMenuTitle = ''; + foreach((array) $moduleActionInfo->menu as $key => $value) { if(isset($value->acts) && is_array($value->acts) && in_array($currentAct, $value->acts)) @@ -159,50 +155,30 @@ function makeGnbUrl($module = 'admin') break; } } - + // get current menu's srl(=parentSrl) $parentSrl = 0; $oMenuAdminConroller = getAdminController('menu'); - if(!$_SESSION['isMakeXml']) + foreach((array) $menu->list as $parentKey => $parentMenu) { - foreach((array) $menu->list as $parentKey => $parentMenu) + if(!is_array($parentMenu['list']) || !count($parentMenu['list'])) { - if(!$parentMenu['text']) - { - $oMenuAdminConroller->makeXmlFile($result->menu_srl); - $_SESSION['isMakeXml'] = true; - header('Location: ' . getNotEncodedUrl('', 'module', 'admin')); - Context::close(); - exit; - } - - if(!is_array($parentMenu['list']) || !count($parentMenu['list'])) - { - continue; - } - if($parentMenu['href'] == '#' && count($parentMenu['list'])) - { - $firstChild = current($parentMenu['list']); - $menu->list[$parentKey]['href'] = $firstChild['href']; - } + continue; + } + if($parentMenu['href'] == '#' && count($parentMenu['list'])) + { + $firstChild = current($parentMenu['list']); + $menu->list[$parentKey]['href'] = $firstChild['href']; + } - foreach($parentMenu['list'] as $childKey => $childMenu) + foreach($parentMenu['list'] as $childKey => $childMenu) + { + if($subMenuTitle == $childMenu['text']) { - if(!$childMenu['text']) - { - $oMenuAdminConroller->makeXmlFile($result->menu_srl); - $_SESSION['isMakeXml'] = true; - header('Location: ' . getNotEncodedUrl('', 'module', 'admin')); - Context::close(); - exit; - } - - if($subMenuTitle == $childMenu['text']) - { - $parentSrl = $childMenu['parent_srl']; - break; - } + $parentSrl = $childMenu['parent_srl']; + break; } } + if($parentSrl) break; } // Admin logo, title setup From fab3608588c9a917881f556bc5b229fa4cc7cdee Mon Sep 17 00:00:00 2001 From: khongchi Date: Mon, 3 Feb 2014 22:16:01 +0900 Subject: [PATCH 124/549] =?UTF-8?q?#398=20=EC=84=A4=EC=B9=98=ED=9B=84=20?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EC=B5=9C=EC=B4=88=EC=A0=91=EA=B7=BC=EC=8B=9C=20admin=20menu?= =?UTF-8?q?=EA=B0=80=20=EC=84=A4=EC=A0=95=EB=90=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8A=94=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/admin/admin.class.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/admin/admin.class.php b/modules/admin/admin.class.php index bb24db1e8c..f467daec0e 100644 --- a/modules/admin/admin.class.php +++ b/modules/admin/admin.class.php @@ -91,8 +91,8 @@ public function checkAdminMenu() if(!$output->menu_srl) { - $oAdminClass = getClass('admin'); - $oAdminClass->createXeAdminMenu(); + $this->createXeAdminMenu(); + $output = $oMenuAdminModel->getMenuByTitle($this->adminMenuName); } else { @@ -123,10 +123,9 @@ public function createXeAdminMenu() //insert menu $args = new stdClass(); $args->title = $this->adminMenuName; - $args->menu_srl = getNextSequence(); + $menuSrl = $args->menu_srl = getNextSequence(); $args->listorder = $args->menu_srl * -1; $output = executeQuery('menu.insertMenu', $args); - $menuSrl = $args->menu_srl; Context::set('admin_menu_srl', $menuSrl); unset($args); From 3490eb75b22d732c0bfc4d662b98ff0ef4c8528d Mon Sep 17 00:00:00 2001 From: khongchi Date: Tue, 4 Feb 2014 10:20:37 +0900 Subject: [PATCH 125/549] =?UTF-8?q?#135=20=EB=AC=B8=EC=84=9C=20=EC=9D=B4?= =?UTF-8?q?=EB=8F=99=EC=8B=9C=20=ED=8A=B8=EB=9E=99=EB=B0=B1=20=EC=98=88?= =?UTF-8?q?=EC=99=B8=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/document/document.admin.controller.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/modules/document/document.admin.controller.php b/modules/document/document.admin.controller.php index 8734251066..c3e84ffa46 100644 --- a/modules/document/document.admin.controller.php +++ b/modules/document/document.admin.controller.php @@ -140,7 +140,6 @@ function moveDocumentModule($document_srl_list, $module_srl, $category_srl) $oDB->rollback(); return $output; } - // Set 0 if a new category doesn't exist after catergory change if($source_category_srl != $category_srl) { @@ -166,13 +165,18 @@ function moveDocumentModule($document_srl_list, $module_srl, $category_srl) $oDB->rollback(); return $output; } + // move the trackback - $output = executeQuery('trackback.updateTrackbackModule', $args); - if(!$output->toBool()) + if(getClass('trackback')) { - $oDB->rollback(); - return $output; + $output = executeQuery('trackback.updateTrackbackModule', $args); + if(!$output->toBool()) + { + $oDB->rollback(); + return $output; + } } + // Tags $output = executeQuery('tag.updateTagModule', $args); if(!$output->toBool()) From 795ed8c635fc5ade5c7b260cf77d8c3cada0e653 Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 4 Feb 2014 11:25:17 +0900 Subject: [PATCH 126/549] NOISSUE use db session --- modules/session/session.controller.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/session/session.controller.php b/modules/session/session.controller.php index 2015ac6882..f77638e27b 100644 --- a/modules/session/session.controller.php +++ b/modules/session/session.controller.php @@ -28,6 +28,9 @@ function write($session_key, $val) { if(!$session_key || !$this->session_started) return; + $args = new stdClass; + $args->session_key = $session_key; + $output = executeQuery('session.getSession', $args); $session_info = $output->data; From 841374a27f29b52121443e49afaf049d9ff97b6e Mon Sep 17 00:00:00 2001 From: khongchi Date: Tue, 4 Feb 2014 12:58:23 +0900 Subject: [PATCH 127/549] =?UTF-8?q?#401=20=ED=8E=98=EC=9D=B4=EC=A7=80>?= =?UTF-8?q?=EC=B6=94=EA=B0=80=EC=84=A4=EC=A0=95=20=EC=B2=98=EB=A6=AC?= =?UTF-8?q?=EA=B2=B0=EA=B3=BC=20=EB=A9=94=EC=8B=9C=EC=A7=80=20=EC=B6=9C?= =?UTF-8?q?=EB=A0=A5=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/editor/tpl/editor_module_config.html | 2 ++ modules/page/tpl/addition_setup.html | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/editor/tpl/editor_module_config.html b/modules/editor/tpl/editor_module_config.html index 0061f0a619..0544039259 100644 --- a/modules/editor/tpl/editor_module_config.html +++ b/modules/editor/tpl/editor_module_config.html @@ -1,10 +1,12 @@ +
    +

    {$lang->editor}

    {$lang->writer} {$lang->user_id} {$lang->user_name}{$lang->date}{$lang->last_update}{$lang->last_post}{$lang->date}{$lang->last_update}{$lang->last_post} {$lang->readed_count} {$lang->voted_count} {$lang->blamed_count}
    diff --git a/modules/page/tpl/addition_setup.html b/modules/page/tpl/addition_setup.html index 944e5adb13..344cf5e520 100644 --- a/modules/page/tpl/addition_setup.html +++ b/modules/page/tpl/addition_setup.html @@ -1,3 +1,5 @@ - +
    +

    {$XE_VALIDATOR_MESSAGE}

    +
    {$setup_content} From 4ffe6a09fa74d2bac8e49f256125cdd99e02f624 Mon Sep 17 00:00:00 2001 From: khongchi Date: Tue, 4 Feb 2014 13:09:49 +0900 Subject: [PATCH 128/549] =?UTF-8?q?#401=20=ED=9C=B4=EC=A7=80=ED=86=B5=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=20=EC=B2=98=EB=A6=AC=EA=B2=B0=EA=B3=BC=20?= =?UTF-8?q?=EB=A9=94=EC=8B=9C=EC=A7=80=20=EC=B6=9C=EB=A0=A5=20=EC=A0=95?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/trash/trash.admin.controller.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/trash/trash.admin.controller.php b/modules/trash/trash.admin.controller.php index 8b1be688a8..ea37bf41dd 100644 --- a/modules/trash/trash.admin.controller.php +++ b/modules/trash/trash.admin.controller.php @@ -64,7 +64,7 @@ function procTrashAdminEmptyTrash() $this->setMessage('success_deleted', 'info'); $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispTrashAdminList', 'origin_module', $originModule); - return $this->setRedirectUrl($returnUrl, $output); + $this->setRedirectUrl($returnUrl, $output); } /** From fb2fa027e5c905cb3bbf3f6aa6ecb6bbba088d8f Mon Sep 17 00:00:00 2001 From: bnu Date: Tue, 4 Feb 2014 14:53:39 +0900 Subject: [PATCH 129/549] =?UTF-8?q?fix=20#403=20=ED=9A=8C=EC=9B=90?= =?UTF-8?q?=EC=84=A4=EC=A0=95=EC=97=90=EC=84=9C=20=EA=B8=88=EC=A7=80=20?= =?UTF-8?q?=EB=8B=89=EB=84=A4=EC=9E=84/=EC=95=84=EC=9D=B4=EB=94=94=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=8B=9C=20=EB=B9=88=20=EA=B0=92=EC=9D=B4?= =?UTF-8?q?=20=EC=82=BD=EC=9E=85=EB=90=98=EB=8A=94=20=EB=AC=B8=EC=A0=9C?= =?UTF-8?q?=EC=99=80=20=ED=95=B4=EB=8B=B9=20=ED=95=AD=EB=AA=A9=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=20=EC=8B=9C=20=EC=A0=84=EC=B2=B4=20=ED=95=AD=EB=AA=A9?= =?UTF-8?q?=EC=9D=B4=20=EC=82=AD=EC=A0=9C=EB=90=98=EB=8A=94=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/member/member.admin.controller.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/member/member.admin.controller.php b/modules/member/member.admin.controller.php index 0b88e7a8ca..70202c1aae 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -976,6 +976,9 @@ function procMemberAdminInsertDeniedID() foreach($user_ids as $val) { + $val = trim($val); + if(!$val) continue; + $output = $this->insertDeniedID($val, ''); if($output->toBool()) $success_ids[] = $val; } @@ -1014,6 +1017,9 @@ function procMemberAdminUpdateDeniedNickName() foreach($nick_names as $val) { + $val = trim($val); + if(!$val) continue; + $output = $this->insertDeniedNickName($val, ''); if($output->toBool()) $success_nick_names[] = $val; } @@ -1289,6 +1295,8 @@ function insertDeniedNickName($nick_name, $description = '') */ function deleteDeniedID($user_id) { + if(!$user_id) unset($user_id); + $args = new stdClass; $args->user_id = $user_id; return executeQuery('member.deleteDeniedID', $args); @@ -1301,6 +1309,8 @@ function deleteDeniedID($user_id) */ function deleteDeniedNickName($nick_name) { + if(!$nick_name) unset($nick_name); + $args = new stdClass; $args->nick_name = $nick_name; return executeQuery('member.deleteDeniedNickName', $args); From 7e2e93262c5bde1c6b68f1d5f09ffd5f8e77ed72 Mon Sep 17 00:00:00 2001 From: khongchi Date: Tue, 4 Feb 2014 14:55:20 +0900 Subject: [PATCH 130/549] =?UTF-8?q?#135=20trackback=20=EB=AA=A8=EB=93=88?= =?UTF-8?q?=EC=9D=B4=20=EC=97=86=EC=9D=84=20=EA=B2=BD=EC=9A=B0=20documenti?= =?UTF-8?q?tem=20allowTrackback=EC=9D=80=20=EB=AC=B4=EC=A1=B0=EA=B1=B4=20f?= =?UTF-8?q?alse=EB=A5=BC=20=EB=A6=AC=ED=84=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/document/document.item.php | 35 ++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/modules/document/document.item.php b/modules/document/document.item.php index bbb944f0be..ed1a913a61 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -194,22 +194,33 @@ function allowTrackback() static $allow_trackback_status = null; if(is_null($allow_trackback_status)) { - // If the trackback module is configured to be disabled, do not allow. Otherwise, check the setting of each module. - $oModuleModel = getModel('module'); - $trackback_config = $oModuleModel->getModuleConfig('trackback'); - if(!$trackback_config) + + // Check the tarckback module exist + if(!getClass('trackback')) { - $trackback_config = new stdClass(); + $allow_trackback_status = false; } - if(!isset($trackback_config->enable_trackback)) $trackback_config->enable_trackback = 'Y'; - if($trackback_config->enable_trackback != 'Y') $allow_trackback_status = false; else { - $module_srl = $this->get('module_srl'); - // Check settings of each module - $module_config = $oModuleModel->getModulePartConfig('trackback', $module_srl); - if($module_config->enable_trackback == 'N') $allow_trackback_status = false; - else if($this->get('allow_trackback')=='Y' || !$this->isExists()) $allow_trackback_status = true; + // If the trackback module is configured to be disabled, do not allow. Otherwise, check the setting of each module. + $oModuleModel = getModel('module'); + $trackback_config = $oModuleModel->getModuleConfig('trackback'); + + if(!$trackback_config) + { + $trackback_config = new stdClass(); + } + + if(!isset($trackback_config->enable_trackback)) $trackback_config->enable_trackback = 'Y'; + if($trackback_config->enable_trackback != 'Y') $allow_trackback_status = false; + else + { + $module_srl = $this->get('module_srl'); + // Check settings of each module + $module_config = $oModuleModel->getModulePartConfig('trackback', $module_srl); + if($module_config->enable_trackback == 'N') $allow_trackback_status = false; + else if($this->get('allow_trackback')=='Y' || !$this->isExists()) $allow_trackback_status = true; + } } } return $allow_trackback_status; From 742d9ba4789faba09aa8c6887ceaffa177fece7c Mon Sep 17 00:00:00 2001 From: khongchi Date: Tue, 4 Feb 2014 15:28:38 +0900 Subject: [PATCH 131/549] =?UTF-8?q?#405=20ui=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/message/skins/default/system_message.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/message/skins/default/system_message.html b/modules/message/skins/default/system_message.html index 91de142d4b..602c444670 100644 --- a/modules/message/skins/default/system_message.html +++ b/modules/message/skins/default/system_message.html @@ -26,7 +26,7 @@

    {$system_message}

    {$lang->about_keep_warning}

    From 30b958dead836df4b173f58ce618744c6740c149 Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 4 Feb 2014 16:09:28 +0900 Subject: [PATCH 132/549] =?UTF-8?q?#406=20=EB=A9=94=EB=89=B4=20=EB=B3=B5?= =?UTF-8?q?=EC=82=AC=EC=8B=9C=20=EB=A7=81=ED=81=AC=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=EB=A5=BC=20=EB=B3=B5=EC=82=AC=ED=95=B4=EC=84=9C=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/menu/menu.admin.controller.php | 32 +++++++++++++++++++++----- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/modules/menu/menu.admin.controller.php b/modules/menu/menu.admin.controller.php index c2d43ce786..be2ddcd61b 100644 --- a/modules/menu/menu.admin.controller.php +++ b/modules/menu/menu.admin.controller.php @@ -1228,7 +1228,17 @@ private function _copyMenu($menuSrl, $parentSrl, &$originMenu) $insertedMenuItemSrl = $this->get('menu_item_srl'); if($menuItemInfo->normal_btn || $menuItemInfo->hover_btn || $menuItemInfo->active_btn) { - $this->_copyButton($insertedMenuItemSrl, $menuItemInfo); + // copy & upate + $update_item_info = $oMenuAdminModel->getMenuItemInfo($insertedMenuItemSrl); + $copied_info = $this->_copyButton($insertedMenuItemSrl,$update_item_info->menu_srl, $menuItemInfo); + if(count($update_item_info->group_srls) == 0) + { + unset($update_item_info->group_srls); + } + $update_item_info->normal_btn = $copied_info['normal_btn']; + $update_item_info->hover_btn = $copied_info['hover_btn']; + $update_item_info->active_btn = $copied_info['active_btn']; + executeQuery('menu.updateMenuItem', $update_item_info); } $this->insertedMenuItemSrlList[] = $insertedMenuItemSrl; } @@ -2155,34 +2165,43 @@ function _uploadButton($args) * When copy a menu, button copied also. * @param $args menuItemInfo with button values */ - private function _copyButton($insertedMenuItemSrl, &$menuItemInfo) + private function _copyButton($insertedMenuItemSrl, $insertedMenuSrl, &$menuItemInfo) { + $copied_info = array( + "normal_btn"=>"", + "hover_btn"=>"", + "active_btn"=>"", + ); //normal_btn if($menuItemInfo->normal_btn) { $originFile = FileHandler::getRealPath($menuItemInfo->normal_btn); - $targetFile = $this->_changeMenuItemSrlInButtonPath($menuItemInfo->normal_btn, $menuItemInfo->menu_srl, $insertedMenuItemSrl, 'normal'); + $targetFile = $this->_changeMenuItemSrlInButtonPath($menuItemInfo->normal_btn, $insertedMenuSrl, $insertedMenuItemSrl, 'normal'); FileHandler::copyFile($originFile, $targetFile); + $copied_info['normal_btn'] = $targetFile; } //hover_btn if($menuItemInfo->hover_btn) { $originFile = FileHandler::getRealPath($menuItemInfo->hover_btn); - $targetFile = $this->_changeMenuItemSrlInButtonPath($menuItemInfo->hover_btn, $menuItemInfo->menu_srl, $insertedMenuItemSrl, 'hover'); + $targetFile = $this->_changeMenuItemSrlInButtonPath($menuItemInfo->hover_btn, $insertedMenuSrl, $insertedMenuItemSrl, 'hover'); FileHandler::copyFile($originFile, $targetFile); + $copied_info['hover_btn'] = $targetFile; } //active_btn if($menuItemInfo->active_btn) { $originFile = FileHandler::getRealPath($menuItemInfo->active_btn); - $targetFile = $this->_changeMenuItemSrlInButtonPath($menuItemInfo->active_btn, $menuItemInfo->menu_srl, $insertedMenuItemSrl, 'active'); + $targetFile = $this->_changeMenuItemSrlInButtonPath($menuItemInfo->active_btn, $insertedMenuSrl, $insertedMenuItemSrl, 'active'); FileHandler::copyFile($originFile, $targetFile); + $copied_info['active_btn'] = $targetFile; } + return $copied_info; } private function _changeMenuItemSrlInButtonPath($buttonPath, $menuSrl, $menuItemSrl, $mode) @@ -2190,7 +2209,8 @@ private function _changeMenuItemSrlInButtonPath($buttonPath, $menuSrl, $menuItem $path = sprintf('./files/attach/menu_button/%d/', $menuSrl); $tmp_arr = explode('.', $buttonPath); $ext = $tmp_arr[count($tmp_arr)-1]; - return sprintf('%s%d.%s.%s', $path, $menuItemSrl, 'menu_'.$mode.'_btn', $ext); + $date = date("YmdHis"); + return sprintf('%s%d.%s.%s.%s', $path, $menuItemSrl,$date,'menu_'.$mode.'_btn', $ext); } public function makeHomemenuCacheFile($menuSrl) From 4f310f9194df25edadce0473b4a69096290175a8 Mon Sep 17 00:00:00 2001 From: khongchi Date: Tue, 4 Feb 2014 16:59:01 +0900 Subject: [PATCH 133/549] Version update: 1.7.4 --- config/config.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.inc.php b/config/config.inc.php index 48e01ff778..19e086d61a 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -29,7 +29,7 @@ /** * Display XE's full version. */ -define('__XE_VERSION__', '1.7.4-beta.6'); +define('__XE_VERSION__', '1.7.4'); /** * @deprecated __ZBXE_VERSION__ will be removed. Use __XE_VERSION__ instead. From 9d44a692122b46116f70aec3d6cb6386abad893f Mon Sep 17 00:00:00 2001 From: bnu Date: Sat, 8 Feb 2014 12:26:34 +0900 Subject: [PATCH 134/549] =?UTF-8?q?fix=20#443=20=EA=B4=80=EB=A6=AC?= =?UTF-8?q?=EC=9E=90=20IP=20=EB=8C=80=EC=97=AD=EC=9D=B4=20=ED=95=AD?= =?UTF-8?q?=EC=83=81=20=EC=A0=80=EC=9E=A5=EB=90=98=EC=96=B4=20=EC=9D=B4?= =?UTF-8?q?=EB=8F=99=20=EC=8B=9C=20=EA=B4=80=EB=A6=AC=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EC=A0=91=EA=B7=BC=20=EB=AC=B8=EC=A0=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/admin/admin.admin.view.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/modules/admin/admin.admin.view.php b/modules/admin/admin.admin.view.php index bbf1768fd3..571dadec70 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -402,10 +402,6 @@ function dispAdminConfigGeneral() $whitelist = implode("\r\n", $db_info->sitelock_whitelist); Context::set('sitelock_whitelist', $whitelist); - if(gettype($db_info->admin_ip_list)!="array") - $db_info->admin_ip_list = array(); - if(!in_array('127.0.0.1', $db_info->admin_ip_list)) $db_info->admin_ip_list[] = '127.0.0.1'; - if(!in_array($_SERVER['REMOTE_ADDR'], $db_info->admin_ip_list)) $db_info->admin_ip_list[] = $_SERVER['REMOTE_ADDR']; if($db_info->admin_ip_list) $admin_ip_list = implode("\r\n", $db_info->admin_ip_list); else $admin_ip_list = ''; From 9af3c9efc1ac717325c6ad7930746ac8fe006da1 Mon Sep 17 00:00:00 2001 From: bnu Date: Sat, 8 Feb 2014 12:31:03 +0900 Subject: [PATCH 135/549] =?UTF-8?q?fix=20#416=20PHP=205.3.6=20=EC=9D=B4?= =?UTF-8?q?=EC=83=81=EC=97=90=EC=84=9C=EB=A7=8C=20=EC=82=AC=EC=9A=A9=20?= =?UTF-8?q?=EA=B0=80=EB=8A=A5=ED=95=9C=20=EC=83=81=EC=88=98=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/db/DB.class.php | 2 +- config/func.inc.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/db/DB.class.php b/classes/db/DB.class.php index f23320576b..25a7cdb102 100644 --- a/classes/db/DB.class.php +++ b/classes/db/DB.class.php @@ -447,7 +447,7 @@ function actFinish() $log['act'] = Context::get('act'); $log['time'] = date('Y-m-d H:i:s'); - $bt = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); + $bt = debug_backtrace(); foreach($bt as $no => $call) { if($call['function'] == 'executeQuery' || $call['function'] == 'executeQueryArray') diff --git a/config/func.inc.php b/config/func.inc.php index a3fe25156b..a2c4c4d075 100644 --- a/config/func.inc.php +++ b/config/func.inc.php @@ -758,7 +758,7 @@ function debugPrint($debug_output = NULL, $display_option = TRUE, $file = '_debu } static $firephp; - $bt = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); + $bt = debug_backtrace(); if(is_array($bt)) { $bt_debug_print = array_shift($bt); From ad0144b4e1330916dd67808422b39f85f69dfa02 Mon Sep 17 00:00:00 2001 From: bnu Date: Sat, 8 Feb 2014 13:58:52 +0900 Subject: [PATCH 136/549] =?UTF-8?q?fix=20#445=20APC=EC=97=90=EC=84=9C=20de?= =?UTF-8?q?lete()=EA=B0=80=20null=EC=9D=84=20=EC=82=BD=EC=9E=85=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/cache/CacheApc.class.php | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/classes/cache/CacheApc.class.php b/classes/cache/CacheApc.class.php index a416b1270d..73abeb0b36 100644 --- a/classes/cache/CacheApc.class.php +++ b/classes/cache/CacheApc.class.php @@ -84,7 +84,7 @@ function isValid($key, $modified_time = 0) if($modified_time > 0 && $modified_time > $obj[0]) { - $this->_delete($_key); + $this->delete($_key); return false; } @@ -110,24 +110,13 @@ function get($key, $modified_time = 0) if($modified_time > 0 && $modified_time > $obj[0]) { - $this->_delete($_key); + $this->delete($_key); return false; } return $obj[1]; } - /** - * Delete variable from the cache(private) - * - * @param string $_key Used to store the value. - * @return void - */ - function _delete($_key) - { - $this->put($_key, null, 1); - } - /** * Delete variable from the cache * @@ -136,7 +125,7 @@ function _delete($_key) */ function delete($key) { - $this->_delete($key); + return apc_delete($key); } /** @@ -149,7 +138,13 @@ function truncate() return apc_clear_cache('user'); } - + /** + * @DEPRECATED + */ + function _delete($key) + { + return $this->delete($key); + } } CacheApc::$isSupport = function_exists('apc_add'); From c6eae3ba10394c8248029fcb7afd8f058728f35e Mon Sep 17 00:00:00 2001 From: sejin7940 Date: Sat, 8 Feb 2014 16:09:57 +0900 Subject: [PATCH 137/549] Update trash.admin.view.php --- modules/trash/trash.admin.view.php | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/modules/trash/trash.admin.view.php b/modules/trash/trash.admin.view.php index c68635aadf..a2b9fc0b60 100644 --- a/modules/trash/trash.admin.view.php +++ b/modules/trash/trash.admin.view.php @@ -51,6 +51,33 @@ function dispTrashAdminList() // 템플릿 파일 지정 $this->setTemplateFile('trash_list'); } + + + + // Trash View - sejin7940 + function dispTrashAdminView() + { + $trash_srl = Context::get('trash_srl'); + + $oTrashModel = getModel('trash'); + $output = $oTrashModel->getTrash($trash_srl); + if(!$output->data->trash_srl) return new Object(-1, 'msg_invalid_request'); + + $originObject = unserialize($output->data->getSerializedObject()); + if(is_array($originObject)) $originObject = (object)$originObject; + + Context::set('oTrashVO',$output->data); + Context::set('oOrigin',$originObject); + + if($originObject) { + $args_extra->module_srl = $originObject->module_srl; + $args_extra->document_srl = $originObject->document_srl; + $output_extra = executeQueryArray('trash.getDocumentExtraVars', $args_extra); + Context::set('oOriginExtraVars',$output_extra->data); + } + $this->setTemplateFile('trash_view'); + } + } /* End of file trash.admin.view.php */ /* Location: ./modules/trash/trash.admin.view.php */ From 9177c5ee960a6f5dcdf7c0eb2bf0dd3491eb9030 Mon Sep 17 00:00:00 2001 From: sejin7940 Date: Sat, 8 Feb 2014 16:11:00 +0900 Subject: [PATCH 138/549] Update module.xml --- modules/trash/conf/module.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/trash/conf/module.xml b/modules/trash/conf/module.xml index e6225c9f29..5ffec0ed92 100644 --- a/modules/trash/conf/module.xml +++ b/modules/trash/conf/module.xml @@ -11,6 +11,8 @@ + + From 1153f7256e8c8bd91ea4ec382bd4e404c6d0026e Mon Sep 17 00:00:00 2001 From: sejin7940 Date: Sat, 8 Feb 2014 16:11:57 +0900 Subject: [PATCH 139/549] Create getDocumentExtraVars.xml --- .../trash/queries/getDocumentExtraVars.xml | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 modules/trash/queries/getDocumentExtraVars.xml diff --git a/modules/trash/queries/getDocumentExtraVars.xml b/modules/trash/queries/getDocumentExtraVars.xml new file mode 100644 index 0000000000..c02dd3fad6 --- /dev/null +++ b/modules/trash/queries/getDocumentExtraVars.xml @@ -0,0 +1,32 @@ + + +
    +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + From b7de4d34a0b5b03cdfe09d7ef3d4819b6617bd2e Mon Sep 17 00:00:00 2001 From: sejin7940 Date: Sat, 8 Feb 2014 16:14:40 +0900 Subject: [PATCH 140/549] Update trash.admin.view.php --- modules/trash/trash.admin.view.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/trash/trash.admin.view.php b/modules/trash/trash.admin.view.php index a2b9fc0b60..a6415305e2 100644 --- a/modules/trash/trash.admin.view.php +++ b/modules/trash/trash.admin.view.php @@ -61,7 +61,7 @@ function dispTrashAdminView() $oTrashModel = getModel('trash'); $output = $oTrashModel->getTrash($trash_srl); - if(!$output->data->trash_srl) return new Object(-1, 'msg_invalid_request'); + if(!$output->data->getTrashSrl()) return new Object(-1, 'msg_invalid_request'); $originObject = unserialize($output->data->getSerializedObject()); if(is_array($originObject)) $originObject = (object)$originObject; From f43bd0141089681c851785f9e97ebdda01da0e13 Mon Sep 17 00:00:00 2001 From: sejin7940 Date: Sat, 8 Feb 2014 16:25:10 +0900 Subject: [PATCH 141/549] Create trash_view.html --- modules/trash/tpl/trash_view.html | 71 +++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 modules/trash/tpl/trash_view.html diff --git a/modules/trash/tpl/trash_view.html b/modules/trash/tpl/trash_view.html new file mode 100644 index 0000000000..b9a92489fc --- /dev/null +++ b/modules/trash/tpl/trash_view.html @@ -0,0 +1,71 @@ +
    +

    {$lang->cmd_trash} {$lang->trash_description}

    +
    +

    삭제 정보

    + + + + + + + + + + + + + + +
    {$lang->trasher} + {@ + $oMemberModel = &getModel('member'); + $remover_info = $oMemberModel->getMemberInfoByMemberSrl($oTrashVO->getRemoverSrl()); + } + {htmlspecialchars($remover_info->nick_name)} [{$remover_info->user_id}] +
    {$lang->trash_date}{zdate($oTrashVO->getRegdate(), "Y-m-d H:i:s")}
    {$lang->trash_description}{$oTrashVO->getDescription()}
    +
    +

    원문 정보

    + + + + + + + + + + + + + + + + + + + + + + + + +
    {$lang->title}{$oOrigin->title}
    {$lang->writer}{htmlspecialchars($oOrigin->nick_name)} [{$oOrigin->user_id}]
    {$lang->regdate}{zdate($oOrigin->regdate,'Y.m.d H:i:s')}
    {$val->name}{$val->value}
    {$lang->content}{$oOrigin->content}
    + + + + + + + + + + + +
    + +
    + + +
    + + From e7d7132b67d328b4650c1a8de844d261213d17b9 Mon Sep 17 00:00:00 2001 From: sejin7940 Date: Sat, 8 Feb 2014 16:43:24 +0900 Subject: [PATCH 142/549] Update lang.xml --- modules/trash/lang/lang.xml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/modules/trash/lang/lang.xml b/modules/trash/lang/lang.xml index 9c72e44eee..124126edc9 100644 --- a/modules/trash/lang/lang.xml +++ b/modules/trash/lang/lang.xml @@ -83,4 +83,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + From 8ebfd26545de484533ac2fab7f398b909620396d Mon Sep 17 00:00:00 2001 From: sejin7940 Date: Sat, 8 Feb 2014 16:44:06 +0900 Subject: [PATCH 143/549] Update trash_view.html --- modules/trash/tpl/trash_view.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/trash/tpl/trash_view.html b/modules/trash/tpl/trash_view.html index b9a92489fc..298d1e4283 100644 --- a/modules/trash/tpl/trash_view.html +++ b/modules/trash/tpl/trash_view.html @@ -1,7 +1,7 @@

    {$lang->cmd_trash} {$lang->trash_description}

    -

    삭제 정보

    +

    {$lang->delete_info}

    @@ -24,7 +24,7 @@

    삭제 정보


    -

    원문 정보

    +

    {$lang->origin_info}

    From 36c4b5b279340fb9b755542447ccaf6c3e6b00c8 Mon Sep 17 00:00:00 2001 From: sejin7940 Date: Sat, 8 Feb 2014 16:56:19 +0900 Subject: [PATCH 144/549] Update trash_list.html --- modules/trash/tpl/trash_list.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/trash/tpl/trash_list.html b/modules/trash/tpl/trash_list.html index 8f08c3e823..add8cec8a4 100644 --- a/modules/trash/tpl/trash_list.html +++ b/modules/trash/tpl/trash_list.html @@ -41,7 +41,7 @@

    {$lang->trash} $no, $oTrashVO">

    From b8f9a7d24e68105f832704af3b1bab1588b74c40 Mon Sep 17 00:00:00 2001 From: sejin7940 Date: Sat, 8 Feb 2014 17:39:13 +0900 Subject: [PATCH 145/549] Update lang.xml --- modules/trash/lang/lang.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/trash/lang/lang.xml b/modules/trash/lang/lang.xml index 124126edc9..f53058eab5 100644 --- a/modules/trash/lang/lang.xml +++ b/modules/trash/lang/lang.xml @@ -109,4 +109,10 @@ + + + + + + From b04a737b7353f89ec1be12cd98656e242e0b8f83 Mon Sep 17 00:00:00 2001 From: sejin7940 Date: Sat, 8 Feb 2014 17:45:16 +0900 Subject: [PATCH 146/549] Update trash_view.html --- modules/trash/tpl/trash_view.html | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/trash/tpl/trash_view.html b/modules/trash/tpl/trash_view.html index 298d1e4283..d40f6096d3 100644 --- a/modules/trash/tpl/trash_view.html +++ b/modules/trash/tpl/trash_view.html @@ -27,6 +27,16 @@

    {$lang->delete_info}

    {$lang->origin_info}

    {$lang->no_text_comment} - {$oTrashVO->getTitle()} + {$oTrashVO->getTitle()} {$lang->document}{$lang->comment} {$oTrashVO->getNickName()}
    + + + + From 3cdb9ff3c57133c50ffd66e81861b5826ee9fd46 Mon Sep 17 00:00:00 2001 From: Han Gyeongsu Date: Sun, 9 Feb 2014 10:07:56 +0900 Subject: [PATCH 147/549] =?UTF-8?q?.gitignore=20=EC=98=A4=ED=83=80=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 83b06d623d..ea34c6950e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,5 @@ config.user.inc.php /files/ /build/ /node_modules/ -.DS_Srore +.DS_Store Thumbs.db From 1a361bb958f1078bcbef3ba542876a56149fcdc2 Mon Sep 17 00:00:00 2001 From: bnu Date: Sun, 9 Feb 2014 15:25:17 +0900 Subject: [PATCH 148/549] =?UTF-8?q?warning=20=EB=A9=94=EC=8B=9C=EC=A7=80?= =?UTF-8?q?=EB=A5=BC=20=ED=91=9C=EC=8B=9C=ED=95=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/config.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.inc.php b/config/config.inc.php index 19e086d61a..fc4bcaeba2 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -9,11 +9,11 @@ */ if(version_compare(PHP_VERSION, '5.4.0', '<')) { - @error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED); + @error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED ^ E_WARNING); } else { - @error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED ^ E_STRICT); + @error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED ^ E_WARNING ^ E_STRICT); } if(!defined('__XE__')) From bbdd1874de7796a9e09ed036212f8fc0046d8f69 Mon Sep 17 00:00:00 2001 From: SMaker Date: Sun, 9 Feb 2014 23:45:34 +0900 Subject: [PATCH 149/549] =?UTF-8?q?Router=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .htaccess | 36 +---- classes/context/Context.class.php | 12 +- classes/router/Router.class.php | 240 ++++++++++++++++++++++++++++++ config/config.inc.php | 1 + 4 files changed, 255 insertions(+), 34 deletions(-) create mode 100644 classes/router/Router.class.php diff --git a/.htaccess b/.htaccess index 89ecf951f9..43536f5e95 100644 --- a/.htaccess +++ b/.htaccess @@ -15,37 +15,7 @@ RewriteRule ^(.+)/files/(member_extra_info|attach|cache|faceOff)/(.*) ./files/$2 RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^(.+)/(files|modules|widgets|widgetstyles|layouts|m.layouts|addons)/(.*) ./$2/$3 [L] -# rss , blogAPI -RewriteRule ^(rss|atom)$ ./index.php?module=rss&act=$1 [L] -RewriteRule ^([a-zA-Z0-9_]+)/(rss|atom|api)$ ./index.php?mid=$1&act=$2 [L] -RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/(rss|atom|api)$ ./index.php?vid=$1&mid=$2&act=$3 [L] - -# trackback -RewriteRule ^([0-9]+)/(.+)/trackback$ ./index.php?document_srl=$1&key=$2&act=trackback [L] -RewriteRule ^([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$ ./index.php?mid=$1&document_srl=$2&key=$3&act=trackback [L] -RewriteRule ^([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$ ./index.php?vid=$1&document_srl=$2&key=$3&act=trackback [L] -RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$ ./index.php?vid=$1&mid=$2&document_srl=$3&key=$4&act=trackback [L] - -# document permanent link -RewriteRule ^([0-9]+)$ ./index.php?document_srl=$1 [L,QSA] - -# mid link -RewriteCond %{SCRIPT_FILENAME} !-d -RewriteRule ^([a-zA-Z0-9_]+)/?$ ./index.php?mid=$1 [L,QSA] -# mid + document link -RewriteRule ^([a-zA-Z0-9_]+)/([0-9]+)$ ./index.php?mid=$1&document_srl=$2 [L,QSA] - -# vid + mid link -RewriteCond %{SCRIPT_FILENAME} !-d -RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/?$ ./index.php?vid=$1&mid=$2 [L,QSA] -# vid + mid + document link -RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)$ ./index.php?vid=$1&mid=$2&document_srl=$3 [L,QSA] - -# mid + entry title -RewriteRule ^([a-zA-Z0-9_]+)/entry/(.+)$ ./index.php?mid=$1&entry=$2 [L,QSA] -# vid + mid + entry title -RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/(.+)$ ./index.php?vid=$1&mid=$2&entry=$3 [L,QSA] - -#shop / vid / [category|product] / identifier +# router RewriteCond %{SCRIPT_FILENAME} !-f -RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_\.-]+)$ ./index.php?act=route&vid=$1&type=$2&identifier=$3 [L,QSA] +RewriteCond %{SCRIPT_FILENAME} !-d +RewriteRule ^(.*)$ ./index.php [L] diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index 4b69ac9ff6..866f553644 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -358,6 +358,13 @@ function init() // check if using rewrite module $this->allow_rewrite = ($this->db_info->use_rewrite == 'Y' ? TRUE : FALSE); + // If using rewrite module, initializes router + if($this->allow_rewrite) + { + $oRouter = Router::getInstance(); + $oRouter->proc(); + } + // set locations for javascript use if($_SERVER['REQUEST_METHOD'] == 'GET') { @@ -1535,7 +1542,10 @@ function getUrl($num_args = 0, $args_list = array(), $domain = null, $encode = T 'act.document_srl.key.mid.vid' => ($act == 'trackback') ? "$vid/$mid/$srl/$key/$act" : '' ); - $query = $target_map[$target]; + $oRouter = Router::getInstance(); + $oRouter->setMap($target_map); + + $query = $oRouter->makePrettyUrl($target); } if(!$query) diff --git a/classes/router/Router.class.php b/classes/router/Router.class.php new file mode 100644 index 0000000000..d71a238545 --- /dev/null +++ b/classes/router/Router.class.php @@ -0,0 +1,240 @@ + 0) + { + self::$segments = explode('/', $path); + + // Remove the meanless segment + unset(self::$segments[0]); + } + + $self = Router::getInstance(); + + // Set default routes + $self->routes = array( + // rss , blogAPI + '(rss|atom)' => array('module' => 'rss', 'act' => '$1'), + '([a-zA-Z0-9_]+)/(rss|atom|api)' => array('mid' => '$1', 'act' => '$2'), + '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/(rss|atom|api)' => array('vid' => '$1', 'mid' => '$2', 'act' => '$3'), + // trackback + '([0-9]+)/(.+)/trackback' => array('document_srl' => '$1', 'key' => '$2', 'act' => 'trackback'), + '([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback' => array('mid' => '$1', 'document_srl' => '$2', 'key' => '$3', 'act' => 'trackback'), + '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback' => array('vid' => '$1', 'mid' => '$2', 'document_srl' => '$3' , 'key' => '$4', 'act' => 'trackback'), + // mid + '([a-zA-Z0-9_]+)/?' => array('mid' => '$1'), + // mid + document_srl + '([a-zA-Z0-9_]+)/([0-9]+)' => array('mid' => '$1', 'document_srl' => '$2'), + // vid + mid + '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/' => array('vid' => '$1', 'mid' => '$2'), + // vid + mid + document_srl + '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)?' => array('vid' => '$1', 'mid' => '$2', 'document_srl' => '$3'), + // document_srl + '([0-9]+)' => array('document_srl' => '$1'), + // mid + entry title + '([a-zA-Z0-9_]+)/entry/(.+)' => array('mid' => '$1', 'entry' => '$2'), + // vid + mid + entry title + '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/(.+)' => array('vid' => '$1', 'mid' => '$2', 'entry' => '$3'), + // shop / vid / [category|product] / identifier + '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_\.-]+)' => array('act' => 'route', 'vid' => '$1', 'type' => '$2', 'identifier'=> '$3'), + ); + + if(isset($self->routes[$path])) + { + foreach($self->routes[$path] as $key => $val) + { + $val = preg_replace('#^\$([0-9]+)$#e', '\$matches[$1]', $val); + + Context::set($key, $val, TRUE); + } + + return; + } + + // Apply routes + foreach($self->routes as $regex => $query) + { + if(preg_match('#^' . $regex . '$#', $path, $matches)) + { + foreach($query as $key => $val) + { + $val = preg_replace('#^\$([0-9]+)$#e', '\$matches[$1]', $val); + + Context::set($key, $val, TRUE); + } + } + } + } + + /** + * @brief Add a rewrite map(s) + * @param array $map + * @return void + */ + public function setMap($map) + { + $self = Router::getInstance(); + $self->rewrite_map = array_merge($self->rewrite_map, $map); + } + + /** + * @brief Add a route + * @param string $target + * @param array $query + * @return void + */ + public function add($target, $query) + { + $self = Router::getInstance(); + $self->routes[$target] = $query; + } + + /** + * @brief Add multiple routes + * @param array $routes + * @return void + */ + public function adds($routes) + { + $self = Router::getInstance(); + $self->routes = array_merge($self->routes, $routes); + } + + /** + * @brief Get segment from request uri + * @param int $index + * @return string + */ + public function getSegment($index) + { + $self = Router::getInstance(); + return $self->segments[$index]; + } + + + /** + * @brief Get segment from request uri + * @param int $index + * @return string + */ + public function getSegments() + { + $self = Router::getInstance(); + return $self->segments; + } + + /** + * @brief Get route info + * @param string $regex + * @return array + */ + public function getRoute($regex) + { + $self = Router::getInstance(); + return $self->routes[$regex]; + } + + /** + * @brief Get routes list + * @return array + */ + public function getRoutes() + { + $self = Router::getInstance(); + return $self->routes; + } + + /** + * @brief Get routes list + * @param string $regex + * @return boolean + */ + public function isExistsRoute($regex) + { + $self = Router::getInstance(); + return isset($self->routes[$regex]); + } + + /** + * @brief Makes shortten url + * @param string $regex + * @return string + */ + public function makePrettyUrl($regex) + { + $self = Router::getInstance(); + return $self->rewrite_map[$regex]; + } +} \ No newline at end of file diff --git a/config/config.inc.php b/config/config.inc.php index 19e086d61a..d9b4cccade 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -250,6 +250,7 @@ require(_XE_PATH_ . 'classes/xml/XmlJsFilter.class.php'); require(_XE_PATH_ . 'classes/xml/XmlLangParser.class.php'); require(_XE_PATH_ . 'classes/cache/CacheHandler.class.php'); + require(_XE_PATH_ . 'classes/router/Router.class.php'); require(_XE_PATH_ . 'classes/context/Context.class.php'); require(_XE_PATH_ . 'classes/db/DB.class.php'); require(_XE_PATH_ . 'classes/file/FileHandler.class.php'); From 6024868c602b157c6f03a182e0f000da348ed3ba Mon Sep 17 00:00:00 2001 From: akasima Date: Mon, 10 Feb 2014 10:34:50 +0900 Subject: [PATCH 150/549] =?UTF-8?q?#451=20getEnv=20=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EB=B3=80=EC=88=98=EC=B2=B4=ED=81=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/admin/admin.admin.model.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/admin/admin.admin.model.php b/modules/admin/admin.admin.model.php index 5e544903a7..600a74fad8 100644 --- a/modules/admin/admin.admin.model.php +++ b/modules/admin/admin.admin.model.php @@ -350,7 +350,7 @@ function getEnv($type = 'WORKING') $info['module'] = ''; $oModuleModel = getModel('module'); $module_list = $oModuleModel->getModuleList(); - foreach($module_list as $module) + if($module_list) foreach($module_list as $module) { if(in_array($module->module, $skip['module'])) { @@ -363,7 +363,7 @@ function getEnv($type = 'WORKING') $info['addon'] = ''; $oAddonAdminModel = getAdminModel('addon'); $addon_list = $oAddonAdminModel->getAddonList(); - foreach($addon_list as $addon) + if($addon_list) foreach($addon_list as $addon) { if(in_array($addon->addon, $skip['addon'])) { @@ -376,7 +376,7 @@ function getEnv($type = 'WORKING') $info['layout'] = ""; $oLayoutModel = getModel('layout'); $layout_list = $oLayoutModel->getDownloadedLayoutList(); - foreach($layout_list as $layout) + if($layout_list) foreach($layout_list as $layout) { if(in_array($layout->layout, $skip['layout'])) { @@ -389,7 +389,8 @@ function getEnv($type = 'WORKING') $info['widget'] = ""; $oWidgetModel = getModel('widget'); $widget_list = $oWidgetModel->getDownloadedWidgetList(); - foreach($widget_list as $widget) + $widget_list = NULL; + if($widget_list) foreach($widget_list as $widget) { if(in_array($widget->widget, $skip['widget'])) { @@ -402,7 +403,7 @@ function getEnv($type = 'WORKING') $info['widgetstyle'] = ""; $oWidgetModel = getModel('widget'); $widgetstyle_list = $oWidgetModel->getDownloadedWidgetStyleList(); - foreach($widgetstyle_list as $widgetstyle) + if($widgetstyle_list) foreach($widgetstyle_list as $widgetstyle) { if(in_array($widgetstyle->widgetStyle, $skip['widgetstyle'])) { From d9f393d556138e09f7d7f15b64da60c86b8bda3a Mon Sep 17 00:00:00 2001 From: akasima Date: Mon, 10 Feb 2014 10:40:21 +0900 Subject: [PATCH 151/549] =?UTF-8?q?#451=20getEnv=20=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EB=B3=80=EC=88=98=EC=B2=B4=ED=81=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/admin/admin.admin.model.php | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/admin/admin.admin.model.php b/modules/admin/admin.admin.model.php index 600a74fad8..d0c69a80df 100644 --- a/modules/admin/admin.admin.model.php +++ b/modules/admin/admin.admin.model.php @@ -389,7 +389,6 @@ function getEnv($type = 'WORKING') $info['widget'] = ""; $oWidgetModel = getModel('widget'); $widget_list = $oWidgetModel->getDownloadedWidgetList(); - $widget_list = NULL; if($widget_list) foreach($widget_list as $widget) { if(in_array($widget->widget, $skip['widget'])) From 98b8296be0ba1c52c4c6cb696cec209cb672454b Mon Sep 17 00:00:00 2001 From: akasima Date: Mon, 10 Feb 2014 15:54:04 +0900 Subject: [PATCH 152/549] =?UTF-8?q?#458=20extra=5Fvars=EC=97=90=20?= =?UTF-8?q?=EB=B9=84=EB=B0=80=EB=B2=88=ED=98=B8=20=EC=9E=85=EB=A0=A5?= =?UTF-8?q?=EB=90=A8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/member/member.admin.controller.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/member/member.admin.controller.php b/modules/member/member.admin.controller.php index 70202c1aae..9305d6ae08 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -61,6 +61,9 @@ function procMemberAdminInsert() unset($all_args->success_return_url); unset($all_args->ruleset); if(!isset($args->limit_date)) $args->limit_date = ""; + unset($all_args->password); + unset($all_args->password2); + unset($all_args->reset_password); // Add extra vars after excluding necessary information from all the requested arguments $extra_vars = delObjectVars($all_args, $args); $args->extra_vars = serialize($extra_vars); From 22f1019abe96e8da980d36f0a4bb25a1a90d38fb Mon Sep 17 00:00:00 2001 From: akasima Date: Mon, 10 Feb 2014 16:12:47 +0900 Subject: [PATCH 153/549] =?UTF-8?q?#446=20author=20=EA=B0=80=20=EB=91=90?= =?UTF-8?q?=EB=AA=85=20=EC=9D=B4=EC=83=81=EC=9D=B8=20=EA=B2=BD=EC=9A=B0=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/module/module.model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/module/module.model.php b/modules/module/module.model.php index 9ad09f7334..f2c42543e4 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -746,7 +746,6 @@ function getModuleInfoXml($module) // Module Information $module_info = new stdClass(); - $author_obj = new stdClass(); if($xml_obj->version && $xml_obj->attrs->version == '0.2') { // module format 0.2 @@ -766,6 +765,7 @@ function getModuleInfoXml($module) foreach($author_list as $author) { + $author_obj = new stdClass(); $author_obj->name = $author->name->body; $author_obj->email_address = $author->attrs->email_address; $author_obj->homepage = $author->attrs->link; From 15175a73048216b5ba1cf1922ae8ba253e285440 Mon Sep 17 00:00:00 2001 From: SMaker Date: Tue, 11 Feb 2014 18:04:33 +0900 Subject: [PATCH 154/549] =?UTF-8?q?=ED=99=95=EC=9E=A5=EB=B3=80=EC=88=98=20?= =?UTF-8?q?=EA=B2=80=EC=83=89=20=EC=8B=9C=20=EC=83=81=EB=8B=B4=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=EC=9D=B4=20=EC=9E=91=EB=8F=99=ED=95=98=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EB=8A=94=20=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/document/queries/getDocumentListWithExtraVars.xml | 2 ++ modules/document/queries/getDocumentListWithExtraVarsPage.xml | 1 + 2 files changed, 3 insertions(+) diff --git a/modules/document/queries/getDocumentListWithExtraVars.xml b/modules/document/queries/getDocumentListWithExtraVars.xml index 7e0f5fdfcb..51f0c60e01 100644 --- a/modules/document/queries/getDocumentListWithExtraVars.xml +++ b/modules/document/queries/getDocumentListWithExtraVars.xml @@ -9,11 +9,13 @@ + + diff --git a/modules/document/queries/getDocumentListWithExtraVarsPage.xml b/modules/document/queries/getDocumentListWithExtraVarsPage.xml index 0b1239d36e..2d8d6d17f8 100644 --- a/modules/document/queries/getDocumentListWithExtraVarsPage.xml +++ b/modules/document/queries/getDocumentListWithExtraVarsPage.xml @@ -9,6 +9,7 @@ + From 37f5b93e40faa4644dffcc03d803207128730742 Mon Sep 17 00:00:00 2001 From: akasima Date: Thu, 13 Feb 2014 11:39:51 +0900 Subject: [PATCH 155/549] =?UTF-8?q?#471=20checkbox=20=EB=8B=A4=EC=A4=91?= =?UTF-8?q?=EC=84=A0=ED=83=9D=EC=8B=9C=20=EB=AC=B8=EC=A0=9C=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/js/common.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/js/common.js b/common/js/common.js index 20a65bdaa9..00fbe2bd28 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -59,9 +59,9 @@ if(jQuery) jQuery.noConflict(); if(typeof(options.wrap) == "string") options.wrap ='#'+options.wrap; if(options.wrap) { - obj = $(options.wrap).find('input[name='+itemName+']:checkbox'); + obj = $(options.wrap).find('input[name="'+itemName+'"]:checkbox'); } else { - obj = $('input[name='+itemName+']:checkbox'); + obj = $('input[name="'+itemName+'"]:checkbox'); } if(options.checked == 'toggle') { From 9cbad3147b772f4bc3658235e26869f15f06204d Mon Sep 17 00:00:00 2001 From: SMaker Date: Thu, 13 Feb 2014 12:23:01 +0900 Subject: [PATCH 156/549] =?UTF-8?q?singleton=20=EA=B0=9D=EC=B2=B4=EB=A5=BC?= =?UTF-8?q?=20=EC=82=AC=EC=9A=A9=ED=95=98=EB=8A=94=20=EB=8C=80=EC=8B=A0?= =?UTF-8?q?=EC=97=90=20static=20method=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/context/Context.class.php | 8 +- classes/router/Router.class.php | 131 +++++++++++------------------- 2 files changed, 51 insertions(+), 88 deletions(-) diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index 866f553644..2c4b8d2334 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -361,8 +361,7 @@ function init() // If using rewrite module, initializes router if($this->allow_rewrite) { - $oRouter = Router::getInstance(); - $oRouter->proc(); + Router::proc(); } // set locations for javascript use @@ -1542,10 +1541,9 @@ function getUrl($num_args = 0, $args_list = array(), $domain = null, $encode = T 'act.document_srl.key.mid.vid' => ($act == 'trackback') ? "$vid/$mid/$srl/$key/$act" : '' ); - $oRouter = Router::getInstance(); - $oRouter->setMap($target_map); + Router::setMap($target_map); - $query = $oRouter->makePrettyUrl($target); + $query = Router::makePrettyUrl($target); } if(!$query) diff --git a/classes/router/Router.class.php b/classes/router/Router.class.php index d71a238545..94de130b36 100644 --- a/classes/router/Router.class.php +++ b/classes/router/Router.class.php @@ -6,12 +6,6 @@ */ class Router { - /** - * Singleton - * @var object - */ - private static $theInstance = null; - /** * URI Segments * @var array @@ -22,35 +16,45 @@ class Router * Routes * @var array */ - private $routes = array(); + private static $routes = array( + // rss , blogAPI + '(rss|atom)' => array('module' => 'rss', 'act' => '$1'), + '([a-zA-Z0-9_]+)/(rss|atom|api)' => array('mid' => '$1', 'act' => '$2'), + '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/(rss|atom|api)' => array('vid' => '$1', 'mid' => '$2', 'act' => '$3'), + // trackback + '([0-9]+)/(.+)/trackback' => array('document_srl' => '$1', 'key' => '$2', 'act' => 'trackback'), + '([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback' => array('mid' => '$1', 'document_srl' => '$2', 'key' => '$3', 'act' => 'trackback'), + '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback' => array('vid' => '$1', 'mid' => '$2', 'document_srl' => '$3' , 'key' => '$4', 'act' => 'trackback'), + // mid + '([a-zA-Z0-9_]+)/?' => array('mid' => '$1'), + // mid + document_srl + '([a-zA-Z0-9_]+)/([0-9]+)' => array('mid' => '$1', 'document_srl' => '$2'), + // vid + mid + '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/' => array('vid' => '$1', 'mid' => '$2'), + // vid + mid + document_srl + '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)?' => array('vid' => '$1', 'mid' => '$2', 'document_srl' => '$3'), + // document_srl + '([0-9]+)' => array('document_srl' => '$1'), + // mid + entry title + '([a-zA-Z0-9_]+)/entry/(.+)' => array('mid' => '$1', 'entry' => '$2'), + // vid + mid + entry title + '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/(.+)' => array('vid' => '$1', 'mid' => '$2', 'entry' => '$3'), + // shop / vid / [category|product] / identifier + '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_\.-]+)' => array('act' => 'route', 'vid' => '$1', 'type' => '$2', 'identifier'=> '$3') + ); /** * Rewrite map * @var array */ - private $rewrite_map = array(); - - /** - * @brief returns static context object (Singleton). It's to use Router without declaration of an object - * @return object Instance - */ - public static function getInstance() - { - if(!isset(self::$theInstance)) - { - self::$theInstance = new Router(); - } - - return self::$theInstance; - } - + private static $rewrite_map = array(); /** * @brief Applys routes. * @see This function should be called only once * @return void */ - public function proc() + public static function proc() { $uri = $_SERVER['REQUEST_URI']; @@ -81,39 +85,9 @@ public function proc() unset(self::$segments[0]); } - $self = Router::getInstance(); - - // Set default routes - $self->routes = array( - // rss , blogAPI - '(rss|atom)' => array('module' => 'rss', 'act' => '$1'), - '([a-zA-Z0-9_]+)/(rss|atom|api)' => array('mid' => '$1', 'act' => '$2'), - '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/(rss|atom|api)' => array('vid' => '$1', 'mid' => '$2', 'act' => '$3'), - // trackback - '([0-9]+)/(.+)/trackback' => array('document_srl' => '$1', 'key' => '$2', 'act' => 'trackback'), - '([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback' => array('mid' => '$1', 'document_srl' => '$2', 'key' => '$3', 'act' => 'trackback'), - '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback' => array('vid' => '$1', 'mid' => '$2', 'document_srl' => '$3' , 'key' => '$4', 'act' => 'trackback'), - // mid - '([a-zA-Z0-9_]+)/?' => array('mid' => '$1'), - // mid + document_srl - '([a-zA-Z0-9_]+)/([0-9]+)' => array('mid' => '$1', 'document_srl' => '$2'), - // vid + mid - '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/' => array('vid' => '$1', 'mid' => '$2'), - // vid + mid + document_srl - '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)?' => array('vid' => '$1', 'mid' => '$2', 'document_srl' => '$3'), - // document_srl - '([0-9]+)' => array('document_srl' => '$1'), - // mid + entry title - '([a-zA-Z0-9_]+)/entry/(.+)' => array('mid' => '$1', 'entry' => '$2'), - // vid + mid + entry title - '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/(.+)' => array('vid' => '$1', 'mid' => '$2', 'entry' => '$3'), - // shop / vid / [category|product] / identifier - '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_\.-]+)' => array('act' => 'route', 'vid' => '$1', 'type' => '$2', 'identifier'=> '$3'), - ); - - if(isset($self->routes[$path])) + if(isset(self::$routes[$path])) { - foreach($self->routes[$path] as $key => $val) + foreach(self::$routes[$path] as $key => $val) { $val = preg_replace('#^\$([0-9]+)$#e', '\$matches[$1]', $val); @@ -124,7 +98,7 @@ public function proc() } // Apply routes - foreach($self->routes as $regex => $query) + foreach(self::$routes as $regex => $query) { if(preg_match('#^' . $regex . '$#', $path, $matches)) { @@ -143,10 +117,9 @@ public function proc() * @param array $map * @return void */ - public function setMap($map) + public static function setMap($map) { - $self = Router::getInstance(); - $self->rewrite_map = array_merge($self->rewrite_map, $map); + self::$rewrite_map = array_merge(self::$rewrite_map, $map); } /** @@ -155,10 +128,9 @@ public function setMap($map) * @param array $query * @return void */ - public function add($target, $query) + public static function add($target, $query) { - $self = Router::getInstance(); - $self->routes[$target] = $query; + self::$routes[$target] = $query; } /** @@ -168,8 +140,7 @@ public function add($target, $query) */ public function adds($routes) { - $self = Router::getInstance(); - $self->routes = array_merge($self->routes, $routes); + self::$routes = array_merge(self::$routes, $routes); } /** @@ -177,10 +148,9 @@ public function adds($routes) * @param int $index * @return string */ - public function getSegment($index) + public static function getSegment($index) { - $self = Router::getInstance(); - return $self->segments[$index]; + return self::$segments[$index]; } @@ -189,10 +159,9 @@ public function getSegment($index) * @param int $index * @return string */ - public function getSegments() + public static function getSegments() { - $self = Router::getInstance(); - return $self->segments; + return self::$segments; } /** @@ -200,20 +169,18 @@ public function getSegments() * @param string $regex * @return array */ - public function getRoute($regex) + public static function getRoute($regex) { - $self = Router::getInstance(); - return $self->routes[$regex]; + return self::$routes[$regex]; } /** * @brief Get routes list * @return array */ - public function getRoutes() + public static function getRoutes() { - $self = Router::getInstance(); - return $self->routes; + return self::$routes; } /** @@ -221,10 +188,9 @@ public function getRoutes() * @param string $regex * @return boolean */ - public function isExistsRoute($regex) + public static function isExistsRoute($regex) { - $self = Router::getInstance(); - return isset($self->routes[$regex]); + return isset(self::$routes[$regex]); } /** @@ -232,9 +198,8 @@ public function isExistsRoute($regex) * @param string $regex * @return string */ - public function makePrettyUrl($regex) + public static function makePrettyUrl($regex) { - $self = Router::getInstance(); - return $self->rewrite_map[$regex]; + return self::$rewrite_map[$regex]; } } \ No newline at end of file From caec71ed91a1475a1fea7b0044bad2990d38cc54 Mon Sep 17 00:00:00 2001 From: akasima Date: Thu, 13 Feb 2014 16:38:26 +0900 Subject: [PATCH 157/549] #471 xe.min.js --- common/js/xe.js | 4 ++-- common/js/xe.min.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/common/js/xe.js b/common/js/xe.js index 160085ef7b..cd0e0aed2c 100644 --- a/common/js/xe.js +++ b/common/js/xe.js @@ -58,9 +58,9 @@ if(jQuery) jQuery.noConflict(); if(typeof(options.wrap) == "string") options.wrap ='#'+options.wrap; if(options.wrap) { - obj = $(options.wrap).find('input[name='+itemName+']:checkbox'); + obj = $(options.wrap).find('input[name="'+itemName+'"]:checkbox'); } else { - obj = $('input[name='+itemName+']:checkbox'); + obj = $('input[name="'+itemName+'"]:checkbox'); } if(options.checked == 'toggle') { diff --git a/common/js/xe.min.js b/common/js/xe.min.js index ebda8e306d..39036c86a2 100644 --- a/common/js/xe.min.js +++ b/common/js/xe.min.js @@ -3,4 +3,4 @@ * @file common.js + js_app.js + xml_handler.js + xml_js_filter.js * @brief XE Common JavaScript **/ -function xSleep(a){a/=1e3;for(var b=new Date,c=new Date;c.getTime()-b.getTime()-1&&!a.getQuery("vid")&&(a=a.setQuery("vid",xeVid));try{"_blank"!=b&&winopen_list[b]&&(winopen_list[b].close(),winopen_list[b]=null)}catch(d){}"undefined"==typeof b&&(b="_blank"),"undefined"==typeof c&&(c="");var e=window.open(a,b,c);e.focus(),"_blank"!=b&&(winopen_list[b]=e)}function popopen(a,b){"undefined"==typeof b&&(b="_blank"),"undefined"!=typeof xeVid&&a.indexOf(request_uri)>-1&&!a.getQuery("vid")&&(a=a.setQuery("vid",xeVid)),winopen(a,b,"width=800,height=600,scrollbars=yes,resizable=yes,toolbars=no")}function sendMailTo(a){location.href="mailto:"+a}function move_url(a,b){return a?("undefined"==typeof b&&(b="N"),b="N"==b?!1:!0,/^\./.test(a)&&(a=request_uri+a),b?winopen(a):location.href=a,!1):!1}function displayMultimedia(a,b,c,d){var e=_displayMultimedia(a,b,c,d);e&&document.writeln(e)}function _displayMultimedia(a,b,c,d){0===a.indexOf("files")&&(a=request_uri+a);var e={wmode:"transparent",allowScriptAccess:"never",quality:"high",flashvars:"",autostart:!1},f=jQuery.extend(e,d||{}),g=f.autostart&&"false"!=f.autostart?"true":"false";delete f.autostart;var h="",i="",j="";if(/\.(gif|jpg|jpeg|bmp|png)$/i.test(a))j='';else if(/\.flv$/i.test(a)||/\.mov$/i.test(a)||/\.moov$/i.test(a)||/\.m4v$/i.test(a))j='';else if(/\.swf/i.test(a)){h="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",i="undefined"!=typeof enforce_ssl&&enforce_ssl?"https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0":"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0",j='',j+='';for(var k in f)"undefined"!=f[k]&&""!==f[k]&&(j+='');j+=''}else(jQuery.browser.mozilla||jQuery.browser.opera)&&(g=f.autostart&&"false"!=f.autostart?"1":"0"),j='.popup");e=h.css({overflow:"scroll"}).offset(),a=h.width(10).height(1e4).get(0).scrollWidth+2*e.left,b=h.height(10).width(1e4).get(0).scrollHeight+2*e.top,800>a&&(a=800+2*e.left),c=g.width(),d=g.height(),a!=c&&window.resizeBy(a-c,0),b!=d&&window.resizeBy(0,b-d),h.width(a-2*e.left).css({overflow:"",height:""})}function doCallModuleAction(a,b,c){var d={target_srl:c,cur_mid:current_mid,mid:current_mid};exec_xml(a,b,d,completeCallModuleAction)}function completeCallModuleAction(a){"success"!=a.message&&alert(a.message),location.reload()}function completeMessage(a){alert(a.message),location.reload()}function doChangeLangType(a){if("string"==typeof a)setLangType(a);else{var b=a.options[a.selectedIndex].value;setLangType(b)}location.href=location.href.setQuery("l","")}function setLangType(a){var b=new Date;b.setTime(b.getTime()+6048e8),setCookie("lang_type",a,b,"/")}function doDocumentPreview(a){for(var b=a;"FORM"!=b.nodeName;)b=b.parentNode;if("FORM"==b.nodeName){var c=b.getAttribute("editor_sequence"),d=editorGetContent(c),e=(window.open("","previewDocument","toolbars=no,width=700px;height=800px,scrollbars=yes,resizable=yes"),jQuery("#previewDocument"));e.length?e=e[0]:(jQuery('
    ').appendTo(document.body),e=jQuery("#previewDocument")[0]),e&&(e.content.value=d,e.submit())}}function doDocumentSave(a){var b=a.form.getAttribute("editor_sequence"),c=editorRelKeys[b].content.value;if("undefined"!=typeof b&&b&&"undefined"!=typeof editorRelKeys&&"function"==typeof editorGetContent){var d=editorGetContent(b);editorRelKeys[b].content.value=d}var e={},f=["error","message","document_srl"],g=(a.form.elements,jQuery(a.form).serializeArray());return jQuery.each(g,function(a,b){var c=jQuery.trim(b.value);return c?(/\[\]$/.test(b.name)&&(b.name=b.name.replace(/\[\]$/,"")),void(e[b.name]?e[b.name]+="|@|"+c:e[b.name]=b.value)):!0}),exec_xml("document","procDocumentTempSave",e,completeDocumentSave,f,e,a.form),editorRelKeys[b].content.value=c,!1}function completeDocumentSave(a){jQuery("input[name=document_srl]").eq(0).val(a.document_srl),alert(a.message)}function doDocumentLoad(a){objForSavedDoc=a.form,popopen(request_uri.setQuery("module","document").setQuery("act","dispTempSavedList"))}function doDocumentSelect(a){return opener&&opener.objForSavedDoc?(opener.location.href=opener.current_url.setQuery("document_srl",a).setQuery("act","dispBoardWrite"),void window.close()):void window.close()}function viewSkinInfo(a,b){popopen("./?module=module&act=dispModuleSkinInfo&selected_module="+a+"&skin="+b,"SkinInfo")}function doAddDocumentCart(a){var b=a.value;addedDocument[addedDocument.length]=b,setTimeout(function(){callAddDocumentCart(addedDocument.length)},100)}function callAddDocumentCart(a){if(!(addedDocument.length<1||a!=addedDocument.length)){var b=[];b.srls=addedDocument.join(","),exec_xml("document","procDocumentAddCart",b,null),addedDocument=[]}}function transRGB2Hex(a){if(!a)return a;if(a.indexOf("#")>-1)return a.replace(/^#/,"");if(a.toLowerCase().indexOf("rgb")<0)return a;a=a.replace(/^rgb\(/i,"").replace(/\)$/,""),value_list=a.split(",");for(var b="",c=0;cf&&2>g){d.removeWhite(a);for(var j=a.firstChild;j;j=j.nextSibling)3==j.nodeType?b=d.escape(j.nodeValue):4==j.nodeType?b=d.escape(j.nodeValue):b[j.nodeName]?b[j.nodeName]instanceof Array?b[j.nodeName][b[j.nodeName].length]=d.toObj(j):b[j.nodeName]=[b[j.nodeName],d.toObj(j)]:b[j.nodeName]=d.toObj(j)}else a.attributes.length?b["#text"]=d.escape(d.innerXml(a)):b=d.escape(d.innerXml(a));else if(f)a.attributes.length?b["#text"]=d.escape(d.innerXml(a)):b=d.escape(d.innerXml(a));else if(g)if(g>1)b=d.escape(d.innerXml(a));else for(var k=a.firstChild;k;k=k.nextSibling)b=d.escape(k.nodeValue)}a.attributes.length||a.firstChild||(b=null)}else 9==a.nodeType?b=d.toObj(a.documentElement):alert("unhandled node type: "+a.nodeType);return b},toJson:function(a,b,c){var e=b?'"'+b+'"':"";if(a instanceof Array){for(var f=0,g=a.length;g>f;f++)a[f]=d.toJson(a[f],"",c+" ");e+=(b?":[":"[")+(a.length>1?"\n"+c+" "+a.join(",\n"+c+" ")+"\n"+c:a.join(""))+"]"}else if(null===a)e+=(b&&":")+"null";else if("object"==typeof a){var h=[];for(var i in a)h[h.length]=d.toJson(a[i],i,c+" ");e+=(b?":{":"{")+(h.length>1?"\n"+c+" "+h.join(",\n"+c+" ")+"\n"+c:h.join(""))+"}"}else e+="string"==typeof a?(b&&":")+'"'+a.toString()+'"':(b&&":")+a.toString();return e},innerXml:function(a){var b="";if("innerHTML"in a)b=a.innerHTML;else for(var c=function(a){var b="";if(1==a.nodeType){b+="<"+a.nodeName;for(var d=0;d"}else b+="/>"}else 3==a.nodeType?b+=a.nodeValue:4==a.nodeType&&(b+="");return b},d=a.firstChild;d;d=d.nextSibling)b+=c(d);return b},escape:function(a){return a.replace(/[\\]/g,"\\\\").replace(/[\"]/g,'\\"').replace(/[\n]/g,"\\n").replace(/[\r]/g,"\\r")},removeWhite:function(a){a.normalize();for(var b=a.firstChild;b;)if(3==b.nodeType)if(b.nodeValue.match(/[^ \f\n\r\t\v]/))b=b.nextSibling;else{var c=b.nextSibling;a.removeChild(b),b=c}else 1==b.nodeType?(d.removeWhite(b),b=b.nextSibling):b=b.nextSibling;return a}};9==a.nodeType&&(a=a.documentElement);var e,f=d.toObj(d.removeWhite(a));return e=d.toJson(f,a.nodeName,""),"{"+(b?e.replace(/\t/g,b):e.replace(/\t|\n/g,""))+"}"}function filterAlertMessage(a){var b=(a.error,a.message),c=a.act,d=a.redirect_url,e=location.href;"undefined"!=typeof b&&b&&"success"!=b&&alert(b),"undefined"!=typeof c&&c?e=current_url.setQuery("act",c):"undefined"!=typeof d&&d&&(e=d),e==location.href&&(e=e.replace(/#(.*)$/,"")),location.href=e}function procFilter(a,b){return b(a),!1}function legacy_filter(a,b,c,d,e,f,g,h){var i=xe.getApp("Validator")[0],j=jQuery,k=[];return i?(b.elements._filter||j(b).prepend(''),b.elements._filter.value=a,k[0]=a,k[1]=function(a){var i={},k=(a.elements,j(a).serializeArray());return j.each(k,function(a,b){var c=j.trim(b.value),d=b.name;return c&&d?(h[d]&&(d=h[d]),/\[\]$/.test(d)&&(d=d.replace(/\[\]$/,"")),void(i[d]?i[d]+="|@|"+c:i[d]=b.value)):!0}),g&&!confirm(g)?!1:void exec_xml(c,d,i,e,f,i,b)},i.cast("ADD_CALLBACK",k),i.cast("VALIDATE",[b,a]),!1):!1}jQuery&&jQuery.noConflict(),function(a){var b=navigator.userAgent.toLowerCase();a.os={Linux:/linux/.test(b),Unix:/x11/.test(b),Mac:/mac/.test(b),Windows:/win/.test(b)},a.os.name=a.os.Windows?"Windows":a.os.Linux?"Linux":a.os.Unix?"Unix":a.os.Mac?"Mac":"",window.XE={loaded_popup_menus:[],addedDocument:[],checkboxToggleAll:function(b){is_def(b)||(b="cart");var c,d={wrap:null,checked:"toggle",doClick:!1};switch(arguments.length){case 1:"string"==typeof arguments[0]?b=arguments[0]:(a.extend(d,arguments[0]||{}),b="cart");break;case 2:b=arguments[0],a.extend(d,arguments[1]||{})}d.doClick===!0&&(d.checked=null),"string"==typeof d.wrap&&(d.wrap="#"+d.wrap),c=d.wrap?a(d.wrap).find("input[name="+b+"]:checkbox"):a("input[name="+b+"]:checkbox"),"toggle"==d.checked?c.each(function(){a(this).attr("checked",a(this).attr("checked")?!1:!0)}):d.doClick===!0?c.click():c.attr("checked",d.checked)},displayPopupMenu:function(b,c,d){var e=(d.target_srl,d.menu_id),f=b.menus,g="";if(this.loaded_popup_menus[e])g=this.loaded_popup_menus[e];else{if(f){var h=f.item;if(("undefined"==typeof h.length||h.length<1)&&(h=new Array(h)),h.length)for(var i=0;i
    "+k+" "}}this.loaded_popup_menus[e]=g}if(g){var o=a("#popup_menu_area").html("
      "+g+"
    "),p={top:d.page_y,left:d.page_x};o.outerHeight()+p.top>a(window).height()+a(window).scrollTop()&&(p.top=a(window).height()-o.outerHeight()+a(window).scrollTop()),o.outerWidth()+p.left>a(window).width()+a(window).scrollLeft()&&(p.left=a(window).width()-o.outerWidth()+a(window).scrollLeft()),o.css({top:p.top,left:p.left}).show().focus()}}}}(jQuery),jQuery(function(a){a.browser.msie&&a("select").each(function(a,b){for(var c=!1,d=[],e=0;e-1?d[a]:e;c&&(b.oldonchange=b.onchange,b.onchange=function(){this.options[this.selectedIndex].disabled?this.selectedIndex=d[a]:this.oldonchange&&this.oldonchange()},b.selectedIndex>=0&&b.options[b.selectedIndex].disabled&&b.onchange())});var b=a(".xe_content .fold_button");if(b.size()){var c=a("div.fold_container",b);a("button.more",b).click(function(){a(this).hide().next("button").show().parent().next(c).show()}),a("button.less",b).click(function(){a(this).hide().prev("button").show().parent().next(c).hide()})}jQuery('input[type="submit"],button[type="submit"]').click(function(a){var b=jQuery(a.currentTarget);setTimeout(function(){return function(){b.attr("disabled","disabled")}}(),0),setTimeout(function(){return function(){b.removeAttr("disabled")}}(),3e3)})}),function(){function a(a,b){return a.replace(/#.*$/,"")===b.replace(/#.*$/,"")}var b=Array.isArray||function(a){return"[object Array]"==Object.prototype.toString.call(a)};String.prototype.getQuery=function(b){var c=a(this,window.location.href)?current_url:this,d=c.indexOf("?");if(-1==d)return null;var e=c.substr(d+1,this.length),f={};e.replace(/([^=]+)=([^&]*)(&|$)/g,function(){f[arguments[1]]=arguments[2]});var g=f[b];return"undefined"==typeof g&&(g=""),g},String.prototype.setQuery=function(c,d){var e,f,g,h,i=a(this,window.location.href)?current_url:this,j=i.indexOf("?"),k=i.replace(/#$/,"");if("undefined"==typeof d&&(d=""),-1!=j){var l=k.substr(j+1,i.length),m={},n=[];k=i.substr(0,j),l.replace(/([^=]+)=([^&]*)(&|$)/g,function(a,b,c){m[b]=c}),m[c]=d;for(var o in m)m.hasOwnProperty(o)&&(g=String(m[o]).trim())&&n.push(o+"="+decodeURI(g));l=n.join("&"),k+=l?"?"+l:""}else String(d).trim()&&(k=k+"?"+c+"="+d);f=/^https:\/\/([^:\/]+)(:\d+|)/i,f.test(k)&&(h="http://"+RegExp.$1,window.http_port&&80!=http_port&&(h+=":"+http_port),k=k.replace(f,h));var p=!!window.enforce_ssl;if(!p&&b(window.ssl_actions)&&(e=k.getQuery("act")))for(var q=0,r=ssl_actions.length;r>q;q++)if(ssl_actions[q]===e){p=!0;break}return f=/http:\/\/([^:\/]+)(:\d+|)/i,p&&f.test(k)&&(h="https://"+RegExp.$1,window.https_port&&443!=https_port&&(h+=":"+https_port),k=k.replace(f,h)),k=k.replace(/\/(index\.php)?\?/,"/index.php?"),encodeURI(k)},String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g,"")}}();var winopen_list=[],objForSavedDoc=null,addedDocument=[],Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(a){var b,c,d,e,f,g,h,i="",j=0;for(a=Base64._utf8_encode(a);j>2,f=(3&b)<<4|c>>4,g=(15&c)<<2|d>>6,h=63&d,isNaN(c)?g=h=64:isNaN(d)&&(h=64),i=i+this._keyStr.charAt(e)+this._keyStr.charAt(f)+this._keyStr.charAt(g)+this._keyStr.charAt(h);return i},decode:function(a){var b,c,d,e,f,g,h,i="",j=0;for(a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");j>4,c=(15&f)<<4|g>>2,d=(3&g)<<6|h,i+=String.fromCharCode(b),64!=g&&(i+=String.fromCharCode(c)),64!=h&&(i+=String.fromCharCode(d));return i=Base64._utf8_decode(i)},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;cd?b+=String.fromCharCode(d):d>127&&2048>d?(b+=String.fromCharCode(d>>6|192),b+=String.fromCharCode(63&d|128)):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128),b+=String.fromCharCode(63&d|128))}return b},_utf8_decode:function(a){for(var b="",c=0,d=0,e=0,f=0;cd?(b+=String.fromCharCode(d),c++):d>191&&224>d?(e=a.charCodeAt(c+1),b+=String.fromCharCode((31&d)<<6|63&e),c+=2):(e=a.charCodeAt(c+1),f=a.charCodeAt(c+2),b+=String.fromCharCode((15&d)<<12|(63&e)<<6|63&f),c+=3);return b}};"undefined"==typeof resizeImageContents&&(window.resizeImageContents=function(){}),"undefined"==typeof activateOptionDisabled&&(window.activateOptionDisabled=function(){}),objectExtend=jQuery.extend;var loaded_popup_menus=XE.loaded_popup_menus;jQuery(function(a){a(document).click(function(b){var c=a("#popup_menu_area");c.length||(c=a('
    {$lang->module} + {@ + $oModuleModel = &getModel('module'); + $module_info = $oModuleModel->getModuleInfoByModuleSrl($oOrigin->module_srl); + } + {$module_info->browser_title} ({$module_info->mid}) +
    {$lang->title} {$oOrigin->title}
    +
    From 062457415cd485f8521852177d87b489f6858495 Mon Sep 17 00:00:00 2001 From: bnu Date: Thu, 27 Feb 2014 10:13:09 +0900 Subject: [PATCH 178/549] =?UTF-8?q?fix=20#480=20class=5Fexists()=EC=9D=98?= =?UTF-8?q?=20autoload=20=EB=B9=84=ED=99=9C=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/captcha/captcha.addon.php | 2 +- addons/captcha_member/captcha_member.addon.php | 2 +- classes/module/ModuleHandler.class.php | 4 ++-- classes/validator/Validator.class.php | 4 ++-- modules/widget/widget.controller.php | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/captcha/captcha.addon.php b/addons/captcha/captcha.addon.php index 433adf5274..a03a9d8475 100644 --- a/addons/captcha/captcha.addon.php +++ b/addons/captcha/captcha.addon.php @@ -9,7 +9,7 @@ * @brief Captcha for a particular action * English alphabets and voice verification added * */ -if(!class_exists('AddonCaptcha')) +if(!class_exists('AddonCaptcha', false)) { // On the mobile mode, XE Core does not load jquery and xe.js as normal. Context::loadFile(array('./common/js/jquery.min.js', 'head', NULL, -100000), true); diff --git a/addons/captcha_member/captcha_member.addon.php b/addons/captcha_member/captcha_member.addon.php index ac1e57c5fe..211fd86872 100644 --- a/addons/captcha_member/captcha_member.addon.php +++ b/addons/captcha_member/captcha_member.addon.php @@ -9,7 +9,7 @@ * @brief Captcha for a particular action * English alphabets and voice verification added * */ -if(!class_exists('AddonMemberCaptcha')) +if(!class_exists('AddonMemberCaptcha', false)) { // On the mobile mode, XE Core does not load jquery and xe.js as normal. Context::loadFile(array('./common/js/jquery.min.js', 'head', NULL, -100000), true); diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index 6bfc5e5561..569997d253 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -1025,7 +1025,7 @@ function &getModuleInstance($module, $type = 'view', $kind = '') } // Get base class name and load the file contains it - if(!class_exists($module)) + if(!class_exists($module, false)) { $high_class_file = sprintf('%s%s%s.class.php', _XE_PATH_, $class_path, $module); if(!file_exists($high_class_file)) @@ -1043,7 +1043,7 @@ function &getModuleInstance($module, $type = 'view', $kind = '') // Create an instance with eval function require_once($class_file); - if(!class_exists($instance_name)) + if(!class_exists($instance_name, false)) { return NULL; } diff --git a/classes/validator/Validator.class.php b/classes/validator/Validator.class.php index 11762da504..8ad9d4f138 100644 --- a/classes/validator/Validator.class.php +++ b/classes/validator/Validator.class.php @@ -667,7 +667,7 @@ function getJsPath() } // current language - $lang_type = class_exists('Context') ? Context::getLangType() : 'en'; + $lang_type = class_exists('Context', false) ? Context::getLangType() : 'en'; // check the file $filepath = $dir . '/' . md5($this->_version . ' ' . $this->_xml_path) . ".{$lang_type}.js"; @@ -706,7 +706,7 @@ function _compile2js() list($ruleset) = explode('.', $ruleset); // current language - $lang_type = class_exists('Context') ? Context::getLangType() : 'en'; + $lang_type = class_exists('Context', false) ? Context::getLangType() : 'en'; // custom rulesets $addrules = array(); diff --git a/modules/widget/widget.controller.php b/modules/widget/widget.controller.php index 2fd0fdeeb9..f807593cc8 100644 --- a/modules/widget/widget.controller.php +++ b/modules/widget/widget.controller.php @@ -641,7 +641,7 @@ function getWidgetObject($widget) require_once($class_file); // Creating Objects - if(!class_exists($widget)) + if(!class_exists($widget, false)) { return sprintf(Context::getLang('msg_widget_object_is_null'), $widget); } From 41d5f97028798e2a03c7ce6a2fde821f4b8f875b Mon Sep 17 00:00:00 2001 From: akasima Date: Thu, 27 Feb 2014 14:31:41 +0900 Subject: [PATCH 179/549] =?UTF-8?q?#379=20=EA=B4=80=EB=A6=AC=EC=9E=90=20?= =?UTF-8?q?=EB=A9=94=EB=89=B4=20=ED=8E=BC=EC=B9=A8=20=EC=98=A4=EB=A5=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/admin/admin.admin.view.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/admin/admin.admin.view.php b/modules/admin/admin.admin.view.php index 571dadec70..4817c90b31 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -172,13 +172,11 @@ function makeGnbUrl($module = 'admin') foreach($parentMenu['list'] as $childKey => $childMenu) { - if($subMenuTitle == $childMenu['text']) + if($subMenuTitle == $childMenu['text'] && $parentSrl == 0) { $parentSrl = $childMenu['parent_srl']; - break; } } - if($parentSrl) break; } // Admin logo, title setup From 4c1e85fb0cdb8ecedd132a13476df36b5e4e7e39 Mon Sep 17 00:00:00 2001 From: BJRambo Date: Fri, 28 Feb 2014 12:45:45 +0900 Subject: [PATCH 180/549] =?UTF-8?q?#542=20=EB=A0=88=EC=9D=B4=EC=95=84?= =?UTF-8?q?=EC=9B=83=EC=97=90=EC=84=9C=20=EC=82=AC=EC=9A=A9=EC=9E=90=20?= =?UTF-8?q?=EC=A0=95=EC=9D=98=20=ED=99=95=EC=9E=A5=EB=B3=80=EC=88=98?= =?UTF-8?q?=EB=A5=BC=20=EC=84=A0=ED=83=9D=ED=95=B4=EB=8F=84=20=EB=B0=98?= =?UTF-8?q?=EC=9D=91=EC=9D=B4=20=EC=97=86=EB=8D=98=20=EB=AC=B8=EC=A0=9C?= =?UTF-8?q?=EC=A0=90=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/layout/tpl/layout_info_view.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/layout/tpl/layout_info_view.html b/modules/layout/tpl/layout_info_view.html index 43cef668c1..e270feccc1 100644 --- a/modules/layout/tpl/layout_info_view.html +++ b/modules/layout/tpl/layout_info_view.html @@ -61,7 +61,6 @@

    {$lang->extra_vars}

    - {@$group = ''} {@$cnt = 1} @@ -137,7 +136,7 @@

    {$lang->extra_vars}

    - +

    {$lang->menu}

    From 0821e47ba8bcf9de659bef979822c9d6830b9d8d Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 28 Feb 2014 23:42:42 +0900 Subject: [PATCH 181/549] =?UTF-8?q?fix=20#540=20=ED=9C=B4=EC=A7=80?= =?UTF-8?q?=ED=86=B5=EC=9C=BC=EB=A1=9C=20=EC=9D=B4=EB=8F=99=ED=95=9C=20?= =?UTF-8?q?=EA=B8=80=EC=9D=98=20cache=EB=A5=BC=20=EC=82=AD=EC=A0=9C?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=B0=94=EB=A1=9C=20=EC=9E=A1?= =?UTF-8?q?=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/document/document.controller.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index 709099db8b..7e3f9e74a7 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -793,6 +793,8 @@ function moveDocumentToTrash($obj) $oCacheHandler = CacheHandler::getInstance('object'); if($oCacheHandler->isSupport()) { + $cache_key = 'document_item:'. getNumberingPath($oDocument->document_srl) . $oDocument->document_srl; + $oCacheHandler->delete($cache_key); } return $output; From 08f80e42ab29f7aa29ea25b1fcbdc884af4079cb Mon Sep 17 00:00:00 2001 From: akasima Date: Mon, 3 Mar 2014 09:33:09 +0900 Subject: [PATCH 182/549] =?UTF-8?q?#38=20=EC=AA=BD=EC=A7=80=20=EB=B0=9C?= =?UTF-8?q?=EC=86=A1=20=EA=B6=8C=ED=95=9C=20=EC=84=A4=EC=A0=95=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../communication.admin.controller.php | 7 +- .../communication.admin.view.php | 4 + .../communication.controller.php | 6 ++ modules/communication/communication.model.php | 92 +++++++++++++++++++ modules/communication/lang/lang.xml | 8 ++ modules/communication/tpl/index.html | 21 +++++ 6 files changed, 137 insertions(+), 1 deletion(-) diff --git a/modules/communication/communication.admin.controller.php b/modules/communication/communication.admin.controller.php index be289821f4..1f9e8b0281 100644 --- a/modules/communication/communication.admin.controller.php +++ b/modules/communication/communication.admin.controller.php @@ -24,7 +24,7 @@ function init() function procCommunicationAdminInsertConfig() { // get the default information - $args = Context::gets('skin', 'colorset', 'editor_skin', 'sel_editor_colorset', 'mskin', 'mcolorset', 'layout_srl', 'mlayout_srl'); + $args = Context::gets('skin', 'colorset', 'editor_skin', 'sel_editor_colorset', 'mskin', 'mcolorset', 'layout_srl', 'mlayout_srl', 'grant_write_default','grant_write_group'); $args->editor_colorset = $args->sel_editor_colorset; unset($args->sel_editor_colorset); @@ -53,6 +53,11 @@ function procCommunicationAdminInsertConfig() $args->layout_srl = NULL; } + $oCommunicationModel = getModel('communication'); + $args->grant_write = $oCommunicationModel->getGrantArray($args->grant_write_default, $args->grant_write_group); + unset($args->grant_write_default); + unset($args->grant_write_group); + // create the module module Controller object $oModuleController = getController('module'); $output = $oModuleController->insertModuleConfig('communication', $args); diff --git a/modules/communication/communication.admin.view.php b/modules/communication/communication.admin.view.php index 039a33c998..264161bfe2 100644 --- a/modules/communication/communication.admin.view.php +++ b/modules/communication/communication.admin.view.php @@ -58,6 +58,10 @@ function dispCommunicationAdminConfig() $security->encodeHTML('communication_skin_list..title'); $security->encodeHTML('communication_mobile_skin_list..title'); + $oMemberModel = getModel('member'); + $group_list = $oMemberModel->getGroups($this->site_srl); + Context::set('group_list', $group_list); + // specify a template $this->setTemplatePath($this->module_path . 'tpl'); $this->setTemplateFile('index'); diff --git a/modules/communication/communication.controller.php b/modules/communication/communication.controller.php index c16f4457f0..cbda510a2c 100644 --- a/modules/communication/communication.controller.php +++ b/modules/communication/communication.controller.php @@ -88,6 +88,12 @@ function procCommunicationSendMessage() // Check if there is a member to receive a message $oMemberModel = getModel('member'); $oCommunicationModel = getModel('communication'); + $config = $oCommunicationModel->getConfig(); + + if(!$oCommunicationModel->checkGrant($config->grant_write)) + { + return new Object(-1, 'msg_not_permitted'); + } $receiver_member_info = $oMemberModel->getMemberInfoByMemberSrl($receiver_srl); if($receiver_member_info->member_srl != $receiver_srl) diff --git a/modules/communication/communication.model.php b/modules/communication/communication.model.php index d5a0f88e3d..46e262fd3d 100644 --- a/modules/communication/communication.model.php +++ b/modules/communication/communication.model.php @@ -51,10 +51,102 @@ function getConfig() { $communication_config->mskin = 'default'; } + + if(!$communication_config->grant_write) + { + $communication_config->grant_write = array('default_grant'=>'member'); + } return $communication_config; } + /** + * @brief get grant array for insert to database. table module_config's config field + * @param string $default + * @param array $group + * @return array + */ + function getGrantArray($default, $group) + { + $grant = array(); + if($default!="") + { + switch($default) + { + case "-2": + $grant = array("default_grant"=>"site"); + break; + case "-3": + $grant = array("default_grant"=>"manager"); + break; + default : + $grant = array("default_grant"=>"member"); + break; + } + } + else if(is_array($group)) + { + $oMemberModel = getModel('member'); + $group_list = $oMemberModel->getGroups($this->site_srl); + + $group_grant = array(); + foreach($group as $group_srl) + { + $group_grant[$group_srl] = $group_list[$group_srl]->title; + } + $grant = array('group_grant'=>$group_grant); + } + return $grant; + } + + /** + * @brief check member's grant + * @param object $member_info + * @param array $arrGrant + * @return boolean + */ + function checkGrant($arrGrant) + { + if(!$arrGrant) + return false; + + $logged_info = Context::get('logged_info'); + if(!$logged_info) + return false; + + if($logged_info->is_admin == "Y") + return true; + + if($arrGrant['default_grant']) + { + if($arrGrant['default_grant'] == "member" && $logged_info) + return true; + + if($arrGrant['default_grant'] == "site" && $this->site_srl == $logged_info->site_srl) + return true; + + if($arrGrant['default_grant'] == "manager" && $logged_info->is_admin == "Y") + return true; + } + + if($arrGrant['group_grant']) + { + $group_grant = $arrGrant['group_grant']; + if(!is_array($group_grant)) + return false; + + foreach($logged_info->group_list as $group_srl=>$title) + { + if(isset($group_grant[$group_srl])&&$group_grant[$group_srl]==$title) + return true; + } + + } + + return false; + + } + /** * get the message contents * @param int $message_srl diff --git a/modules/communication/lang/lang.xml b/modules/communication/lang/lang.xml index 6f31a0b9c0..d4bac684f3 100644 --- a/modules/communication/lang/lang.xml +++ b/modules/communication/lang/lang.xml @@ -376,4 +376,12 @@ + + + + + + + + diff --git a/modules/communication/tpl/index.html b/modules/communication/tpl/index.html index e099a2f38d..7f21fa105c 100644 --- a/modules/communication/tpl/index.html +++ b/modules/communication/tpl/index.html @@ -1,4 +1,5 @@ +
    @@ -81,6 +82,24 @@

    +
    + +
    + + +
    +
    +
    @@ -89,5 +108,7 @@

    jQuery(function() { doGetSkinColorset("{$communication_config->skin}", 'P'); doGetSkinColorset("{$communication_config->mskin}", 'M'); + jQuery('.grant_default').change( function(event) { doShowGrantZone(); } ); + doShowGrantZone() }); From 4deb4f7fa060eced266e0b74855ed3015f71bac0 Mon Sep 17 00:00:00 2001 From: akasima Date: Mon, 3 Mar 2014 09:48:12 +0900 Subject: [PATCH 183/549] =?UTF-8?q?#547=20=ED=81=90=EB=B8=8C=EB=A6=AC?= =?UTF-8?q?=EB=93=9C=20=EB=A9=94=EB=89=B4=EC=96=BC=20=EB=A7=81=ED=81=AC=20?= =?UTF-8?q?=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/install/lang/lang.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/install/lang/lang.xml b/modules/install/lang/lang.xml index 12fdf353ee..75d4b81bed 100644 --- a/modules/install/lang/lang.xml +++ b/modules/install/lang/lang.xml @@ -405,7 +405,7 @@ innodb để sử dụng MySql Database.
    Giao dịch được kích hoạt cho innodb]]>
    - Manual]]> + Manual]]> Manual for more info]]> Manual]]> Manual]]> From 04832f9ec3fdc5597a3cd961da39e9b21d234449 Mon Sep 17 00:00:00 2001 From: akasima Date: Mon, 3 Mar 2014 14:19:30 +0900 Subject: [PATCH 184/549] =?UTF-8?q?#477=20=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20>=20=EC=BD=94=EB=93=9C=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=EC=97=90=EC=84=9C=20input=20type=3Dnumber=EC=97=90=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/widget/tpl/js/generate_code.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/widget/tpl/js/generate_code.js b/modules/widget/tpl/js/generate_code.js index 87eb393f60..7d905fc23b 100644 --- a/modules/widget/tpl/js/generate_code.js +++ b/modules/widget/tpl/js/generate_code.js @@ -133,6 +133,7 @@ function doFillWidgetVars() { switch(type) { case "hidden" : + case "number" : case "text" : case "textarea" : var val = selected_node.getAttribute(name); From 61eccc05920e2a30cd164d3aa3a8d6b617cc34ef Mon Sep 17 00:00:00 2001 From: akasima Date: Mon, 3 Mar 2014 15:01:49 +0900 Subject: [PATCH 185/549] =?UTF-8?q?#449=20code=20review=EC=97=90=20?= =?UTF-8?q?=EB=94=B0=EB=A5=B8=20=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/trash/tpl/trash_view.html | 8 -------- modules/trash/trash.admin.view.php | 8 ++++++++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/trash/tpl/trash_view.html b/modules/trash/tpl/trash_view.html index d40f6096d3..8cb422f085 100644 --- a/modules/trash/tpl/trash_view.html +++ b/modules/trash/tpl/trash_view.html @@ -7,10 +7,6 @@

    {$lang->delete_info}

    @@ -30,10 +26,6 @@

    {$lang->origin_info}

    diff --git a/modules/trash/trash.admin.view.php b/modules/trash/trash.admin.view.php index a6415305e2..cb5d2b7663 100644 --- a/modules/trash/trash.admin.view.php +++ b/modules/trash/trash.admin.view.php @@ -69,6 +69,14 @@ function dispTrashAdminView() Context::set('oTrashVO',$output->data); Context::set('oOrigin',$originObject); + $oMemberModel = &getModel('member'); + $remover_info = $oMemberModel->getMemberInfoByMemberSrl($output->data->getRemoverSrl()); + Context::set('remover_info', $remover_info); + + $oModuleModel = &getModel('module'); + $module_info = $oModuleModel->getModuleInfoByModuleSrl($originObject->module_srl); + Context::set('module_info', $module_info); + if($originObject) { $args_extra->module_srl = $originObject->module_srl; $args_extra->document_srl = $originObject->document_srl; From 9e0e61fbce0c8cd109f387bc94d622a068347e60 Mon Sep 17 00:00:00 2001 From: akasima Date: Mon, 3 Mar 2014 15:29:20 +0900 Subject: [PATCH 186/549] =?UTF-8?q?#430=20=EC=82=AC=EC=9D=B4=ED=8A=B8=20?= =?UTF-8?q?=EC=9E=A0=EA=B8=88=20=EA=B4=80=EB=A6=AC=20=EB=AC=B8=EA=B5=AC=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/admin/lang/lang.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/admin/lang/lang.xml b/modules/admin/lang/lang.xml index 3fc63c16bd..e93335114c 100644 --- a/modules/admin/lang/lang.xml +++ b/modules/admin/lang/lang.xml @@ -1590,8 +1590,8 @@ - 만약 접근이 차단된 경우 './files/config/db.config.php' 파일에서 `'use_sitelock' => 'Y'`를 `'use_sitelock' => 'N'`으로 변경하여 차단을 해제할 수 있습니다.]]> - もし接近が遮断された場合、'./files/config/db.config.php' ファイルから `'use_sitelock' => 'Y'`を `'use_sitelock' => 'N'`へ変更すれば遮断が解除できます。]]> + 만약 접근이 차단된 경우 './files/config/db.config.php' 파일에서 `'use_sitelock' => 'Y'`를 `'use_sitelock' => 'N'`으로 변경하여 차단을 해제할 수 있습니다.
    사이트 잠금 디자인 파일의 위치는 './common/tpl/sitelock.html' 입니다.]]>
    + もし接近が遮断された場合、'./files/config/db.config.php' ファイルから `'use_sitelock' => 'Y'`を `'use_sitelock' => 'N'`へ変更すれば遮断が解除できます。
    サイトロックの設計ファイルの場所は、'./commo/tpl/sitelock.html' です。]]>
    From b7aa347bf90df9398a0797a195a79c4e3a53ff77 Mon Sep 17 00:00:00 2001 From: mog422 Date: Tue, 4 Mar 2014 21:29:48 +0900 Subject: [PATCH 187/549] =?UTF-8?q?fix=20#528=20mssql=20=ED=99=98=EA=B2=BD?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EC=9C=A0=EB=8B=88=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=ED=95=84=EB=93=9C=20=ED=83=80=EC=9E=85=20=EC=82=AC=EC=9A=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/db/DBMssql.class.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/classes/db/DBMssql.class.php b/classes/db/DBMssql.class.php index ec6e4d541e..f53b32ac47 100644 --- a/classes/db/DBMssql.class.php +++ b/classes/db/DBMssql.class.php @@ -30,11 +30,11 @@ class DBMssql extends DB var $column_type = array( 'bignumber' => 'bigint', 'number' => 'int', - 'varchar' => 'varchar', - 'char' => 'char', - 'text' => 'text', - 'bigtext' => 'text', - 'date' => 'varchar(14)', + 'varchar' => 'nvarchar', + 'char' => 'nchar', + 'text' => 'ntext', + 'bigtext' => 'ntext', + 'date' => 'nvarchar(14)', 'float' => 'float', ); From bee3e6296c7282ecf4740feaeb034b5ec28d41cb Mon Sep 17 00:00:00 2001 From: YJSoft Date: Thu, 6 Mar 2014 14:38:58 +0900 Subject: [PATCH 188/549] =?UTF-8?q?=EC=98=A4=ED=83=80=20=EC=88=98=EC=A0=95?= =?UTF-8?q?=20&=20updateMember=20function=EC=97=90=EC=84=9C=EB=8F=84=20?= =?UTF-8?q?=EB=8B=89=EB=84=A4=EC=9E=84=20=EA=B2=80=EC=82=AC=EB=A5=BC=20?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/member/member.controller.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 7a044c2710..598681eb88 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -230,7 +230,7 @@ function procMemberCheckValue() } // Check if duplicated $member_srl = $oMemberModel->getMemberSrlByNickName($value); - $member_srl = $oMemberModel->getMemberSrlByNickName(utf8_decode($value)); + $member_srl_by_decode = $oMemberModel->getMemberSrlByNickName(utf8_decode($value)); if(($member_srl && $logged_info->member_srl != $member_srl ) || ($member_srl_by_decode && $logged_info->member_srl != $member_srl_by_decode )) return new Object(0,'msg_exists_nick_name'); break; @@ -2115,6 +2115,10 @@ function updateMember($args, $is_admin = FALSE) { return new Object(-1, 'denied_nick_name'); } + + $member_srl = $oMemberModel->getMemberSrlByNickName($args->nick_name); + $member_srl_by_decode = $oMemberModel->getMemberSrlByNickName(utf8_decode($args->nick_name)); + if($member_srl || $member_srl_by_decode) return new Object(-1,'msg_exists_nick_name'); list($args->email_id, $args->email_host) = explode('@', $args->email_address); // Website, blog, checks the address From aab1c6a1e1cac061bc218f0cedec218299aec708 Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 10 Mar 2014 09:43:02 +0900 Subject: [PATCH 189/549] =?UTF-8?q?fix=20#489=20APC=20cache=EA=B0=80=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/cache/CacheApc.class.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/classes/cache/CacheApc.class.php b/classes/cache/CacheApc.class.php index 73abeb0b36..b8499d7a66 100644 --- a/classes/cache/CacheApc.class.php +++ b/classes/cache/CacheApc.class.php @@ -84,7 +84,7 @@ function isValid($key, $modified_time = 0) if($modified_time > 0 && $modified_time > $obj[0]) { - $this->delete($_key); + $this->delete($key); return false; } @@ -110,7 +110,7 @@ function get($key, $modified_time = 0) if($modified_time > 0 && $modified_time > $obj[0]) { - $this->delete($_key); + $this->delete($key); return false; } @@ -125,7 +125,8 @@ function get($key, $modified_time = 0) */ function delete($key) { - return apc_delete($key); + $_key = md5(_XE_PATH_ . $key); + return apc_delete($_key); } /** From 0db1e67a80794f9d4c59b1d704e9ac38e20df4ff Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 10 Mar 2014 11:22:38 +0900 Subject: [PATCH 190/549] =?UTF-8?q?fix=20#433=20rich=20type=20=EC=BD=98?= =?UTF-8?q?=ED=85=90=EC=B8=A0=20=EC=B6=9C=EB=A0=A5=20=EC=8B=9C=20=EC=9A=94?= =?UTF-8?q?=EC=95=BD=ED=95=98=EC=97=AC=20=EC=9D=BC=EB=B6=80=EB=A7=8C=20?= =?UTF-8?q?=EC=B6=9C=EB=A0=A5=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/oembed/jquery.oembed.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/oembed/jquery.oembed.js b/addons/oembed/jquery.oembed.js index 06ffa24947..2b78218363 100755 --- a/addons/oembed/jquery.oembed.js +++ b/addons/oembed/jquery.oembed.js @@ -389,8 +389,8 @@ $.fn.oembed.getGenericCode = function (url, oembedData) { var title = (oembedData.title !== null) ? oembedData.title : url, - code = '' + title + ''; - if(oembedData.html) code += "
    " + oembedData.html + "
    "; + code = ''; + if(oembedData.html) code += '
    ' + title + '
    ' + jQuery(oembedData.html).text().substring(0,200) + '... more
    '; return code; }; @@ -849,7 +849,7 @@ templateData: function (data) { if(!data.parse) return false; var text = data.parse['text']['*'].replace(/href="\/wiki/g, 'href="http://en.wikipedia.org/wiki'); - return ''; + return '
    ' + data.parse['displaytitle'] + '
    ' +jQuery(text).text().substring(0,200) + '...
    '; } }), new $.fn.oembed.OEmbedProvider("imdb", "rich", ["imdb.com/title/.+"], "http://www.imdbapi.com/?i=$1&callback=?", { From 5775f10eaa6394fe660035cad15d3497d1770009 Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 10 Mar 2014 13:05:53 +0900 Subject: [PATCH 191/549] =?UTF-8?q?oEmbed=20=EA=B2=B0=EA=B3=BC=EB=AC=BC?= =?UTF-8?q?=EC=9D=B4=20=EC=97=86=EC=9D=84=20=EB=95=8C=20=EB=B9=88=20?= =?UTF-8?q?=EA=B3=B5=EA=B0=84=EC=9D=84=20=EC=B6=9C=EB=A0=A5=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/oembed/jquery.oembed.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/oembed/jquery.oembed.js b/addons/oembed/jquery.oembed.js index 2b78218363..41f9d45096 100755 --- a/addons/oembed/jquery.oembed.js +++ b/addons/oembed/jquery.oembed.js @@ -261,7 +261,7 @@ success: function (data) { var oembedData = $.extend({}, data); oembedData.code = embedProvider.templateData(data); - success(oembedData, externalUrl, container); + if(oembedData.code) success(oembedData, externalUrl, container); }, error: settings.onError.call(container, externalUrl, embedProvider) }, settings.ajaxOptions || {}); From c40fda89513ffae3086fd55040bdee32dabd4d10 Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 10 Mar 2014 13:07:01 +0900 Subject: [PATCH 192/549] MINIFY --- addons/oembed/jquery.oembed.min.js | 2 +- modules/widget/tpl/js/generate_code.min.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/oembed/jquery.oembed.min.js b/addons/oembed/jquery.oembed.min.js index 9ae56c939b..037b76ba71 100644 --- a/addons/oembed/jquery.oembed.min.js +++ b/addons/oembed/jquery.oembed.min.js @@ -1,2 +1,2 @@ -!function(a){function b(a,c){return c=c?c:"",a?b(--a,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".charAt(Math.floor(60*Math.random()))+c):c}function c(a,b){var c,d=a.apiendpoint,e="";d+=d.indexOf("?")<=0?"?":"&",d=d.replace("#","%23"),null===a.maxWidth||"undefined"!=typeof a.params.maxwidth&&null!==a.params.maxwidth||(a.params.maxwidth=a.maxWidth),null===a.maxHeight||"undefined"!=typeof a.params.maxheight&&null!==a.params.maxheight||(a.params.maxheight=a.maxHeight);for(c in a.params)c!=a.callbackparameter&&null!==a.params[c]&&(e+="&"+escape(c)+"="+a.params[c]);return d+="format="+a.format+"&url="+escape(b)+e,"json"!=a.dataType&&(d+="&"+a.callbackparameter+"=?"),d}function d(b,c,d){a("#jqoembeddata").data(c,b.code),g.beforeEmbed.call(d,b),g.onEmbed.call(d,b),g.afterEmbed.call(d,b)}function e(e,f,h){if(void 0!=a("#jqoembeddata").data(f)&&"iframe"!=h.embedtag.tag){var i={code:a("#jqoembeddata").data(f)};d(i,f,e)}else if(h.yql){var j=h.yql.from||"htmlstring",k=h.yql.url?h.yql.url(f):f,l="SELECT * FROM "+j+' WHERE url="'+k+'" and '+(/html/.test(j)?"xpath":"itemPath")+"='"+(h.yql.xpath||"/")+"'";"html"==j&&(l+=" and compat='html5'");var m=a.extend({url:"http://query.yahooapis.com/v1/public/yql",dataType:"jsonp",data:{q:l,format:"json",env:"store://datatables.org/alltableswithkeys",callback:"?"},success:function(b){var c;if(h.yql.xpath&&"//meta|//title|//link"==h.yql.xpath){var g={};null==b.query.results&&(b.query.results={meta:[]});for(var i=0,j=b.query.results.meta.length;j>i;i++){var k=b.query.results.meta[i].name||b.query.results.meta[i].property||null;null!=k&&(g[k.toLowerCase()]=b.query.results.meta[i].content)}g.hasOwnProperty("title")&&g.hasOwnProperty("og:title")||null!=b.query.results.title&&(g.title=b.query.results.title),c=h.yql.datareturn(g)}else c=h.yql.datareturn?h.yql.datareturn(b.query.results):b.query.results.result;if(c!==!1){var l=a.extend({},c);l.code=c,d(l,f,e)}},error:g.onError.call(e,f,h)},g.ajaxOptions||{});a.ajax(m)}else if(h.templateRegex)if(""!==h.embedtag.tag){var n=h.embedtag.flashvars||"",o=h.embedtag.tag||"embed",p=h.embedtag.width||"auto",q=(h.embedtag.nocache||0,h.embedtag.height||"auto"),r=f.replace(h.templateRegex,h.apiendpoint);h.nocache||(r+="&jqoemcache="+b(5)),h.apikey&&(r=r.replace("_APIKEY_",g.apikeys[h.name]));var s=a("<"+o+"/>").attr("src",r).attr("width",p).attr("height",q).attr("allowfullscreen",h.embedtag.allowfullscreen||"true").attr("allowscriptaccess",h.embedtag.allowfullscreen||"always").css("max-height",g.maxHeight||"auto").css("max-width",g.maxWidth||"auto");"embed"==o&&s.attr("type",h.embedtag.type||"application/x-shockwave-flash").attr("flashvars",f.replace(h.templateRegex,n)),"iframe"==o&&s.attr("scrolling",h.embedtag.scrolling||"no").attr("frameborder",h.embedtag.frameborder||"0");var i={code:s};d(i,f,e)}else if(h.apiendpoint)h.apikey&&(h.apiendpoint=h.apiendpoint.replace("_APIKEY_",g.apikeys[h.name])),m=a.extend({url:f.replace(h.templateRegex,h.apiendpoint),dataType:"jsonp",success:function(b){var c=a.extend({},b);c.code=h.templateData(b),d(c,f,e)},error:g.onError.call(e,f,h)},g.ajaxOptions||{}),a.ajax(m);else{var i={code:f.replace(h.templateRegex,h.template)};d(i,f,e)}else{var t=c(h,f),m=a.extend({url:t,dataType:h.dataType||"jsonp",success:function(b){var c=a.extend({},b);switch(c.type){case"file":case"photo":c.code=a.fn.oembed.getPhotoCode(f,c);break;case"video":case"rich":c.code=a.fn.oembed.getRichCode(f,c);break;default:c.code=a.fn.oembed.getGenericCode(f,c)}d(c,f,e)},error:g.onError.call(e,f,h)},g.ajaxOptions||{});a.ajax(m)}}function f(a){if(null===a)return null;var b,c={};for(b in a)null!==b&&(c[b.toLowerCase()]=a[b]);return c}a.fn.oembed=function(b,c,d){g=a.extend(!0,a.fn.oembed.defaults,c);var h=["0rz.tw","1link.in","1url.com","2.gp","2big.at","2tu.us","3.ly","307.to","4ms.me","4sq.com","4url.cc","6url.com","7.ly","a.gg","a.nf","aa.cx","abcurl.net","ad.vu","adf.ly","adjix.com","afx.cc","all.fuseurl.com","alturl.com","amzn.to","ar.gy","arst.ch","atu.ca","azc.cc","b23.ru","b2l.me","bacn.me","bcool.bz","binged.it","bit.ly","bizj.us","bloat.me","bravo.ly","bsa.ly","budurl.com","canurl.com","chilp.it","chzb.gr","cl.lk","cl.ly","clck.ru","cli.gs","cliccami.info","clickthru.ca","clop.in","conta.cc","cort.as","cot.ag","crks.me","ctvr.us","cutt.us","dai.ly","decenturl.com","dfl8.me","digbig.com","http://digg.com/[^/]+$","disq.us","dld.bz","dlvr.it","do.my","doiop.com","dopen.us","easyuri.com","easyurl.net","eepurl.com","eweri.com","fa.by","fav.me","fb.me","fbshare.me","ff.im","fff.to","fire.to","firsturl.de","firsturl.net","flic.kr","flq.us","fly2.ws","fon.gs","freak.to","fuseurl.com","fuzzy.to","fwd4.me","fwib.net","g.ro.lt","gizmo.do","gl.am","go.9nl.com","go.ign.com","go.usa.gov","goo.gl","goshrink.com","gurl.es","hex.io","hiderefer.com","hmm.ph","href.in","hsblinks.com","htxt.it","huff.to","hulu.com","hurl.me","hurl.ws","icanhaz.com","idek.net","ilix.in","is.gd","its.my","ix.lt","j.mp","jijr.com","kl.am","klck.me","korta.nu","krunchd.com","l9k.net","lat.ms","liip.to","liltext.com","linkbee.com","linkbun.ch","liurl.cn","ln-s.net","ln-s.ru","lnk.gd","lnk.ms","lnkd.in","lnkurl.com","lru.jp","lt.tl","lurl.no","macte.ch","mash.to","merky.de","migre.me","miniurl.com","minurl.fr","mke.me","moby.to","moourl.com","mrte.ch","myloc.me","myurl.in","n.pr","nbc.co","nblo.gs","nn.nf","not.my","notlong.com","nsfw.in","nutshellurl.com","nxy.in","nyti.ms","o-x.fr","oc1.us","om.ly","omf.gd","omoikane.net","on.cnn.com","on.mktw.net","onforb.es","orz.se","ow.ly","ping.fm","pli.gs","pnt.me","politi.co","post.ly","pp.gg","profile.to","ptiturl.com","pub.vitrue.com","qlnk.net","qte.me","qu.tc","qy.fi","r.ebay.com","r.im","rb6.me","read.bi","readthis.ca","reallytinyurl.com","redir.ec","redirects.ca","redirx.com","retwt.me","ri.ms","rickroll.it","riz.gd","rt.nu","ru.ly","rubyurl.com","rurl.org","rww.tw","s4c.in","s7y.us","safe.mn","sameurl.com","sdut.us","shar.es","shink.de","shorl.com","short.ie","short.to","shortlinks.co.uk","shorturl.com","shout.to","show.my","shrinkify.com","shrinkr.com","shrt.fr","shrt.st","shrten.com","shrunkin.com","simurl.com","slate.me","smallr.com","smsh.me","smurl.name","sn.im","snipr.com","snipurl.com","snurl.com","sp2.ro","spedr.com","srnk.net","srs.li","starturl.com","stks.co","su.pr","surl.co.uk","surl.hu","t.cn","t.co","t.lh.com","ta.gd","tbd.ly","tcrn.ch","tgr.me","tgr.ph","tighturl.com","tiniuri.com","tiny.cc","tiny.ly","tiny.pl","tinylink.in","tinyuri.ca","tinyurl.com","tk.","tl.gd","tmi.me","tnij.org","tnw.to","tny.com","to.ly","togoto.us","totc.us","toysr.us","tpm.ly","tr.im","tra.kz","trunc.it","twhub.com","twirl.at","twitclicks.com","twitterurl.net","twitterurl.org","twiturl.de","twurl.cc","twurl.nl","u.mavrev.com","u.nu","u76.org","ub0.cc","ulu.lu","updating.me","ur1.ca","url.az","url.co.uk","url.ie","url360.me","url4.eu","urlborg.com","urlbrief.com","urlcover.com","urlcut.com","urlenco.de","urli.nl","urls.im","urlshorteningservicefortwitter.com","urlx.ie","urlzen.com","usat.ly","use.my","vb.ly","vevo.ly","vgn.am","vl.am","vm.lc","w55.de","wapo.st","wapurl.co.uk","wipi.es","wp.me","x.vu","xr.com","xrl.in","xrl.us","xurl.es","xurl.jp","y.ahoo.it","yatuc.com","ye.pe","yep.it","yfrog.com","yhoo.it","yiyd.com","youtu.be","yuarel.com","z0p.de","zi.ma","zi.mu","zipmyurl.com","zud.me","zurl.ws","zz.gd","zzang.kr","›.ws","✩.ws","✿.ws","❥.ws","➔.ws","➞.ws","➡.ws","➨.ws","➯.ws","➹.ws","➽.ws"];return 0===a("#jqoembeddata").length&&a('').appendTo("body"),this.each(function(){var c,i=a(this),j=!b||b.indexOf("http://")&&b.indexOf("https://")?i.attr("href"):b;if(d?g.onEmbed=d:g.onEmbed||(g.onEmbed=function(b){a.fn.oembed.insertCode(this,g.embedMethod,b)}),null!==j&&void 0!==j){for(var k=0,l=h.length;l>k;k++){var m=new RegExp("://"+h[k]+"/","i");if(null!==j.match(m)){var n=a.extend({url:"http://api.longurl.org/v2/expand",dataType:"jsonp",data:{url:j,format:"json"},success:function(b){j=b["long-url"],c=a.fn.oembed.getOEmbedProvider(b["long-url"]),null!==c?(c.params=f(g[c.name])||{},c.maxWidth=g.maxWidth,c.maxHeight=g.maxHeight,e(i,j,c)):g.onProviderNotFound.call(i,j)}},g.ajaxOptions||{});return a.ajax(n),i}}c=a.fn.oembed.getOEmbedProvider(j),null!==c?(c.params=f(g[c.name])||{},c.maxWidth=g.maxWidth,c.maxHeight=g.maxHeight,e(i,j,c)):g.onProviderNotFound.call(i,j)}return i})};var g;a.fn.oembed.defaults={maxWidth:null,maxHeight:null,includeHandle:!0,embedMethod:"auto",onProviderNotFound:function(){},beforeEmbed:function(){},afterEmbed:function(){},onEmbed:!1,onError:function(){},ajaxOptions:{}},a.fn.oembed.insertCode=function(b,c,d){if(null!==d)switch("auto"==c&&null!==b.attr("href")?c="append":"auto"==c&&(c="replace"),c){case"replace":b.replaceWith(d.code);break;case"fill":b.html(d.code);break;case"append":b.wrap('
    ');var e=b.parent();g.includeHandle&&a('').insertBefore(b).click(function(){var b=encodeURIComponent(a(this).text());a(this).html("%E2%86%91"==b?"↓":"↑"),a(this).parent().children().last().toggle()}),e.append("
    ");try{d.code.clone().appendTo(e)}catch(f){e.append(d.code)}if(g.maxWidth){var h=e.parent().width();if(h'+d+'';else if(b.thumbnail_url){var e=b.thumbnail_url.replace("_s","_b");c='
    '+d+'
    '}else c="
    Error loading this picture
    ";return b.html&&(c+="
    "+b.html+"
    "),c},a.fn.oembed.getRichCode=function(a,b){var c=b.html;return c},a.fn.oembed.getGenericCode=function(a,b){var c=null!==b.title?b.title:a,d=''+c+"";return b.html&&(d+="
    "+b.html+"
    "),d},a.fn.oembed.getOEmbedProvider=function(b){for(var c=0;cd;d++){var f=new RegExp(a.fn.oembed.providers[c].urlschemes[d],"i");if(null!==b.match(f))return a.fn.oembed.providers[c]}return null},a.fn.oembed.OEmbedProvider=function(a,b,c,d,e){this.name=a,this.type=b,this.urlschemes=c,this.apiendpoint=d,this.maxWidth=500,this.maxHeight=400,e=e||{},e.useYQL&&(e.yql="xml"==e.useYQL?{xpath:"//oembed/html",from:"xml",apiendpoint:this.apiendpoint,url:function(a){return this.apiendpoint+"?format=xml&url="+a},datareturn:function(a){return a.html.replace(/.*\[CDATA\[(.*)\]\]>$/,"$1")||""}}:{from:"json",apiendpoint:this.apiendpoint,url:function(a){return this.apiendpoint+"?format=json&url="+a},datareturn:function(a){return"video"!=a.json.type&&(a.json.url||a.json.thumbnail_url)?'':a.json.html||""}},this.apiendpoint=null);for(var f in e)this[f]=e[f];this.format=this.format||"json",this.callbackparameter=this.callbackparameter||"callback",this.embedtag=this.embedtag||{tag:""}},a.fn.updateOEmbedProvider=function(b,c,d,e,f){for(var g=0;g':!1}}}),new a.fn.oembed.OEmbedProvider("deviantart","photo",["deviantart.com/.+","fav.me/.+","deviantart.com/.+"],"http://backend.deviantart.com/oembed",{format:"jsonp"}),new a.fn.oembed.OEmbedProvider("skitch","photo",["skitch.com/.+"],null,{yql:{xpath:"json",from:"json",url:function(a){return"http://skitch.com/oembed/?format=json&url="+a},datareturn:function(b){return a.fn.oembed.getPhotoCode(b.json.url,b.json)}}}),new a.fn.oembed.OEmbedProvider("mobypicture","photo",["mobypicture.com/user/.+/view/.+","moby.to/.+"],"http://api.mobypicture.com/oEmbed"),new a.fn.oembed.OEmbedProvider("flickr","photo",["flickr\\.com/photos/.+"],"http://flickr.com/services/oembed",{callbackparameter:"jsoncallback"}),new a.fn.oembed.OEmbedProvider("photobucket","photo",["photobucket\\.com/(albums|groups)/.+"],"http://photobucket.com/oembed/"),new a.fn.oembed.OEmbedProvider("instagram","photo",["instagr\\.?am(\\.com)?/.+"],"http://api.instagram.com/oembed"),new a.fn.oembed.OEmbedProvider("SmugMug","photo",["smugmug.com/[-.\\w@]+/.+"],"http://api.smugmug.com/services/oembed/"),new a.fn.oembed.OEmbedProvider("dribbble","photo",["dribbble.com/shots/.+"],"http://api.dribbble.com/shots/$1?callback=?",{templateRegex:/.*shots\/([\d]+).*/,templateData:function(a){return a.image_teaser_url?'':!1}}),new a.fn.oembed.OEmbedProvider("chart.ly","photo",["chart\\.ly/[a-z0-9]{6,8}"],"http://chart.ly/uploads/large_$1.png",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new a.fn.oembed.OEmbedProvider("circuitlab","photo",["circuitlab.com/circuit/.+"],"https://www.circuitlab.com/circuit/$1/screenshot/540x405/",{templateRegex:/.*circuit\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new a.fn.oembed.OEmbedProvider("23hq","photo",["23hq.com/[-.\\w@]+/photo/.+"],"http://www.23hq.com/23/oembed",{useYQL:"json"}),new a.fn.oembed.OEmbedProvider("img.ly","photo",["img\\.ly/.+"],"http://img.ly/show/thumb/$1",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new a.fn.oembed.OEmbedProvider("twitgoo.com","photo",["twitgoo\\.com/.+"],"http://twitgoo.com/show/thumb/$1",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new a.fn.oembed.OEmbedProvider("imgur.com","photo",["imgur\\.com/gallery/.+"],"http://imgur.com/$1l.jpg",{templateRegex:/.*gallery\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new a.fn.oembed.OEmbedProvider("visual.ly","rich",["visual\\.ly/.+"],null,{yql:{xpath:"//a[@id=\\'gc_article_graphic_image\\']/img",from:"htmlstring"}}),new a.fn.oembed.OEmbedProvider("gravtar","photo",["mailto:.+"],null,{templateRegex:/mailto:([^\/]+).*/,template:function(a,b){return'on Gravtar'}}),new a.fn.oembed.OEmbedProvider("twitter","rich",["twitter.com/.+"],"https://api.twitter.com/1/statuses/oembed.json"),new a.fn.oembed.OEmbedProvider("gmep","rich",["gmep.imeducate.com/.*","gmep.org/.*"],"http://gmep.org/oembed.json"),new a.fn.oembed.OEmbedProvider("urtak","rich",["urtak.com/(u|clr)/.+"],"http://oembed.urtak.com/1/oembed"),new a.fn.oembed.OEmbedProvider("cacoo","rich",["cacoo.com/.+"],"http://cacoo.com/oembed.json"),new a.fn.oembed.OEmbedProvider("dailymile","rich",["dailymile.com/people/.*/entries/.*"],"http://api.dailymile.com/oembed"),new a.fn.oembed.OEmbedProvider("dipity","rich",["dipity.com/timeline/.+"],"http://www.dipity.com/oembed/timeline/",{useYQL:"json"}),new a.fn.oembed.OEmbedProvider("sketchfab","rich",["sketchfab.com/show/.+"],"http://sketchfab.com/oembed",{useYQL:"json"}),new a.fn.oembed.OEmbedProvider("speakerdeck","rich",["speakerdeck.com/.+"],"http://speakerdeck.com/oembed.json",{useYQL:"json"}),new a.fn.oembed.OEmbedProvider("popplet","rich",["popplet.com/app/.*"],"http://popplet.com/app/Popplet_Alpha.swf?page_id=$1&em=1",{templateRegex:/.*#\/([^\/]+).*/,embedtag:{width:460,height:460}}),new a.fn.oembed.OEmbedProvider("pearltrees","rich",["pearltrees.com/.*"],"http://cdn.pearltrees.com/s/embed/getApp?",{templateRegex:/.*N-f=1_(\d+).*N-p=(\d+).*/,embedtag:{width:460,height:460,flashvars:"lang=en_US&embedId=pt-embed-$1-693&treeId=$1&pearlId=$2&treeTitle=Diagrams%2FVisualization&site=www.pearltrees.com%2FF"}}),new a.fn.oembed.OEmbedProvider("prezi","rich",["prezi.com/.*"],"http://prezi.com/bin/preziloader.swf?",{templateRegex:/.*com\/([^\/]+)\/.*/,embedtag:{width:550,height:400,flashvars:"prezi_id=$1&lock_to_path=0&color=ffffff&autoplay=no&autohide_ctrls=0"}}),new a.fn.oembed.OEmbedProvider("tourwrist","rich",["tourwrist.com/tours/.+"],null,{templateRegex:/.*tours.([\d]+).*/,template:function(a,b){return setTimeout(function(){loadEmbeds&&loadEmbeds()},2e3),"
    "}}),new a.fn.oembed.OEmbedProvider("meetup","rich",["meetup\\.(com|ps)/.+"],"http://api.meetup.com/oembed"),new a.fn.oembed.OEmbedProvider("ebay","rich",["ebay\\.*"],"http://togo.ebay.com/togo/togo.swf?2008013100",{templateRegex:/.*\/([^\/]+)\/(\d{10,13}).*/,embedtag:{width:355,height:300,flashvars:"base=http://togo.ebay.com/togo/&lang=en-us&mode=normal&itemid=$2&query=$1"}}),new a.fn.oembed.OEmbedProvider("wikipedia","rich",["wikipedia.org/wiki/.+"],"http://$1.wikipedia.org/w/api.php?action=parse&page=$2&format=json§ion=0&callback=?",{templateRegex:/.*\/\/([\w]+).*\/wiki\/([^\/]+).*/,templateData:function(a){if(!a.parse)return!1;var b=a.parse.text["*"].replace(/href="\/wiki/g,'href="http://en.wikipedia.org/wiki');return'"}}),new a.fn.oembed.OEmbedProvider("imdb","rich",["imdb.com/title/.+"],"http://www.imdbapi.com/?i=$1&callback=?",{templateRegex:/.*\/title\/([^\/]+).*/,templateData:function(a){return a.Title?'

    '+a.Title+" ("+a.Year+")

    Rating: "+a.imdbRating+"
    Genre: "+a.Genre+"
    Starring: "+a.Actors+'

    '+a.Plot+"
    ":!1}}),new a.fn.oembed.OEmbedProvider("livejournal","rich",["livejournal.com/"],"http://ljpic.seacrow.com/json/$2$4?jsonp=?",{templateRegex:/(http:\/\/(((?!users).)+)\.livejournal\.com|.*users\.livejournal\.com\/([^\/]+)).*/,templateData:function(a){return a.username?'
    [info]'+a.username+"
    "+a.name+"
    ":!1}}),new a.fn.oembed.OEmbedProvider("circuitbee","rich",["circuitbee\\.com/circuit/view/.+"],"http://c.circuitbee.com/build/r/schematic-embed.html?id=$1",{templateRegex:/.*circuit\/view\/(\d+).*/,embedtag:{tag:"iframe",width:"500",height:"350"}}),new a.fn.oembed.OEmbedProvider("googlecalendar","rich",["www.google.com/calendar/embed?.+"],"$1",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"800",height:"600"}}),new a.fn.oembed.OEmbedProvider("jsfiddle","rich",["jsfiddle.net/[^/]+/?"],"http://jsfiddle.net/$1/embedded/result,js,resources,html,css/?",{templateRegex:/.*net\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"300"}}),new a.fn.oembed.OEmbedProvider("jsbin","rich",["jsbin.com/.+"],"http://jsbin.com/$1/?",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"300"}}),new a.fn.oembed.OEmbedProvider("jotform","rich",["form.jotform.co/form/.+"],"$1?",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"100%",height:"507"}}),new a.fn.oembed.OEmbedProvider("reelapp","rich",["reelapp\\.com/.+"],"http://www.reelapp.com/$1/embed",{templateRegex:/.*com\/(\S{6}).*/,embedtag:{tag:"iframe",width:"400",height:"338"}}),new a.fn.oembed.OEmbedProvider("linkedin","rich",["linkedin.com/pub/.+"],"https://www.linkedin.com/cws/member/public_profile?public_profile_url=$1&format=inline&isFramed=true",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"368px",height:"auto"}}),new a.fn.oembed.OEmbedProvider("timetoast","rich",["timetoast.com/timelines/[0-9]+"],"http://www.timetoast.com/flash/TimelineViewer.swf?passedTimelines=$1",{templateRegex:/.*timelines\/([0-9]*)/,embedtag:{width:550,height:400,nocache:1}}),new a.fn.oembed.OEmbedProvider("pastebin","rich",["pastebin\\.com/[\\S]{8}"],"http://pastebin.com/embed_iframe.php?i=$1",{templateRegex:/.*\/(\S{8}).*/,embedtag:{tag:"iframe",width:"100%",height:"auto"}}),new a.fn.oembed.OEmbedProvider("mixlr","rich",["mixlr.com/.+"],"http://mixlr.com/embed/$1?autoplay=ae",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"auto"}}),new a.fn.oembed.OEmbedProvider("pastie","rich",["pastie\\.org/pastes/.+"],null,{yql:{xpath:'//pre[@class="textmate-source"]'}}),new a.fn.oembed.OEmbedProvider("github","rich",["gist.github.com/.+"],"https://github.com/api/oembed"),new a.fn.oembed.OEmbedProvider("github","rich",["github.com/[-.\\w@]+/[-.\\w@]+"],"https://api.github.com/repos/$1/$2?callback=?",{templateRegex:/.*\/([^\/]+)\/([^\/]+).*/,templateData:function(a){return a.data.html_url?'

    '+a.data.name+'

    '+a.data.description+'

    Last updated: '+a.data.pushed_at+"

    ":!1}}),new a.fn.oembed.OEmbedProvider("facebook","rich",["facebook.com/(people/[^\\/]+/\\d+|[^\\/]+$)"],"https://graph.facebook.com/$2$3/?callback=?",{templateRegex:/.*facebook.com\/(people\/[^\/]+\/(\d+).*|([^\/]+$))/,templateData:function(a){if(!a.id)return!1;var b='
    facebook ';return b+=a.from?''+a.from.name+"":a.link?''+a.name+"":a.username?''+a.name+"":''+a.name+"",b+='
    ',b+=a.picture?'':'',a.from&&(b+=''+a.name+""),a.founded&&(b+="Founded: "+a.founded+"
    "),a.category&&(b+="Category: "+a.category+"
    "),a.website&&(b+='Website: '+a.website+"
    "),a.gender&&(b+="Gender: "+a.gender+"
    "),a.description&&(b+=a.description+"
    "),b+="
    "}}),new a.fn.oembed.OEmbedProvider("stackoverflow","rich",["stackoverflow.com/questions/[\\d]+"],"http://api.stackoverflow.com/1.1/questions/$1?body=true&jsonp=?",{templateRegex:/.*questions\/([\d]+).*/,templateData:function(b){if(!b.questions)return!1;var c=b.questions[0],d=a(c.body).text(),e='
    '+(c.up_vote_count-c.down_vote_count)+'
    vote(s)
    '+c.answer_count+'answer
    '+c.view_count+' view(s)

    '+c.title+'

    '+d.substring(0,100)+'...
    ';for(i in c.tags)e+='";return e+='
    " +!function(a){function b(a,c){return c=c?c:"",a?b(--a,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".charAt(Math.floor(60*Math.random()))+c):c}function c(a,b){var c,d=a.apiendpoint,e="";d+=d.indexOf("?")<=0?"?":"&",d=d.replace("#","%23"),null===a.maxWidth||"undefined"!=typeof a.params.maxwidth&&null!==a.params.maxwidth||(a.params.maxwidth=a.maxWidth),null===a.maxHeight||"undefined"!=typeof a.params.maxheight&&null!==a.params.maxheight||(a.params.maxheight=a.maxHeight);for(c in a.params)c!=a.callbackparameter&&null!==a.params[c]&&(e+="&"+escape(c)+"="+a.params[c]);return d+="format="+a.format+"&url="+escape(b)+e,"json"!=a.dataType&&(d+="&"+a.callbackparameter+"=?"),d}function d(b,c,d){a("#jqoembeddata").data(c,b.code),g.beforeEmbed.call(d,b),g.onEmbed.call(d,b),g.afterEmbed.call(d,b)}function e(e,f,h){if(void 0!=a("#jqoembeddata").data(f)&&"iframe"!=h.embedtag.tag){var i={code:a("#jqoembeddata").data(f)};d(i,f,e)}else if(h.yql){var j=h.yql.from||"htmlstring",k=h.yql.url?h.yql.url(f):f,l="SELECT * FROM "+j+' WHERE url="'+k+'" and '+(/html/.test(j)?"xpath":"itemPath")+"='"+(h.yql.xpath||"/")+"'";"html"==j&&(l+=" and compat='html5'");var m=a.extend({url:"http://query.yahooapis.com/v1/public/yql",dataType:"jsonp",data:{q:l,format:"json",env:"store://datatables.org/alltableswithkeys",callback:"?"},success:function(b){var c;if(h.yql.xpath&&"//meta|//title|//link"==h.yql.xpath){var g={};null==b.query.results&&(b.query.results={meta:[]});for(var i=0,j=b.query.results.meta.length;j>i;i++){var k=b.query.results.meta[i].name||b.query.results.meta[i].property||null;null!=k&&(g[k.toLowerCase()]=b.query.results.meta[i].content)}g.hasOwnProperty("title")&&g.hasOwnProperty("og:title")||null!=b.query.results.title&&(g.title=b.query.results.title),c=h.yql.datareturn(g)}else c=h.yql.datareturn?h.yql.datareturn(b.query.results):b.query.results.result;if(c!==!1){var l=a.extend({},c);l.code=c,d(l,f,e)}},error:g.onError.call(e,f,h)},g.ajaxOptions||{});a.ajax(m)}else if(h.templateRegex)if(""!==h.embedtag.tag){var n=h.embedtag.flashvars||"",o=h.embedtag.tag||"embed",p=h.embedtag.width||"auto",q=(h.embedtag.nocache||0,h.embedtag.height||"auto"),r=f.replace(h.templateRegex,h.apiendpoint);h.nocache||(r+="&jqoemcache="+b(5)),h.apikey&&(r=r.replace("_APIKEY_",g.apikeys[h.name]));var s=a("<"+o+"/>").attr("src",r).attr("width",p).attr("height",q).attr("allowfullscreen",h.embedtag.allowfullscreen||"true").attr("allowscriptaccess",h.embedtag.allowfullscreen||"always").css("max-height",g.maxHeight||"auto").css("max-width",g.maxWidth||"auto");"embed"==o&&s.attr("type",h.embedtag.type||"application/x-shockwave-flash").attr("flashvars",f.replace(h.templateRegex,n)),"iframe"==o&&s.attr("scrolling",h.embedtag.scrolling||"no").attr("frameborder",h.embedtag.frameborder||"0");var i={code:s};d(i,f,e)}else if(h.apiendpoint)h.apikey&&(h.apiendpoint=h.apiendpoint.replace("_APIKEY_",g.apikeys[h.name])),m=a.extend({url:f.replace(h.templateRegex,h.apiendpoint),dataType:"jsonp",success:function(b){var c=a.extend({},b);c.code=h.templateData(b),c.code&&d(c,f,e)},error:g.onError.call(e,f,h)},g.ajaxOptions||{}),a.ajax(m);else{var i={code:f.replace(h.templateRegex,h.template)};d(i,f,e)}else{var t=c(h,f),m=a.extend({url:t,dataType:h.dataType||"jsonp",success:function(b){var c=a.extend({},b);switch(c.type){case"file":case"photo":c.code=a.fn.oembed.getPhotoCode(f,c);break;case"video":case"rich":c.code=a.fn.oembed.getRichCode(f,c);break;default:c.code=a.fn.oembed.getGenericCode(f,c)}d(c,f,e)},error:g.onError.call(e,f,h)},g.ajaxOptions||{});a.ajax(m)}}function f(a){if(null===a)return null;var b,c={};for(b in a)null!==b&&(c[b.toLowerCase()]=a[b]);return c}a.fn.oembed=function(b,c,d){g=a.extend(!0,a.fn.oembed.defaults,c);var h=["0rz.tw","1link.in","1url.com","2.gp","2big.at","2tu.us","3.ly","307.to","4ms.me","4sq.com","4url.cc","6url.com","7.ly","a.gg","a.nf","aa.cx","abcurl.net","ad.vu","adf.ly","adjix.com","afx.cc","all.fuseurl.com","alturl.com","amzn.to","ar.gy","arst.ch","atu.ca","azc.cc","b23.ru","b2l.me","bacn.me","bcool.bz","binged.it","bit.ly","bizj.us","bloat.me","bravo.ly","bsa.ly","budurl.com","canurl.com","chilp.it","chzb.gr","cl.lk","cl.ly","clck.ru","cli.gs","cliccami.info","clickthru.ca","clop.in","conta.cc","cort.as","cot.ag","crks.me","ctvr.us","cutt.us","dai.ly","decenturl.com","dfl8.me","digbig.com","http://digg.com/[^/]+$","disq.us","dld.bz","dlvr.it","do.my","doiop.com","dopen.us","easyuri.com","easyurl.net","eepurl.com","eweri.com","fa.by","fav.me","fb.me","fbshare.me","ff.im","fff.to","fire.to","firsturl.de","firsturl.net","flic.kr","flq.us","fly2.ws","fon.gs","freak.to","fuseurl.com","fuzzy.to","fwd4.me","fwib.net","g.ro.lt","gizmo.do","gl.am","go.9nl.com","go.ign.com","go.usa.gov","goo.gl","goshrink.com","gurl.es","hex.io","hiderefer.com","hmm.ph","href.in","hsblinks.com","htxt.it","huff.to","hulu.com","hurl.me","hurl.ws","icanhaz.com","idek.net","ilix.in","is.gd","its.my","ix.lt","j.mp","jijr.com","kl.am","klck.me","korta.nu","krunchd.com","l9k.net","lat.ms","liip.to","liltext.com","linkbee.com","linkbun.ch","liurl.cn","ln-s.net","ln-s.ru","lnk.gd","lnk.ms","lnkd.in","lnkurl.com","lru.jp","lt.tl","lurl.no","macte.ch","mash.to","merky.de","migre.me","miniurl.com","minurl.fr","mke.me","moby.to","moourl.com","mrte.ch","myloc.me","myurl.in","n.pr","nbc.co","nblo.gs","nn.nf","not.my","notlong.com","nsfw.in","nutshellurl.com","nxy.in","nyti.ms","o-x.fr","oc1.us","om.ly","omf.gd","omoikane.net","on.cnn.com","on.mktw.net","onforb.es","orz.se","ow.ly","ping.fm","pli.gs","pnt.me","politi.co","post.ly","pp.gg","profile.to","ptiturl.com","pub.vitrue.com","qlnk.net","qte.me","qu.tc","qy.fi","r.ebay.com","r.im","rb6.me","read.bi","readthis.ca","reallytinyurl.com","redir.ec","redirects.ca","redirx.com","retwt.me","ri.ms","rickroll.it","riz.gd","rt.nu","ru.ly","rubyurl.com","rurl.org","rww.tw","s4c.in","s7y.us","safe.mn","sameurl.com","sdut.us","shar.es","shink.de","shorl.com","short.ie","short.to","shortlinks.co.uk","shorturl.com","shout.to","show.my","shrinkify.com","shrinkr.com","shrt.fr","shrt.st","shrten.com","shrunkin.com","simurl.com","slate.me","smallr.com","smsh.me","smurl.name","sn.im","snipr.com","snipurl.com","snurl.com","sp2.ro","spedr.com","srnk.net","srs.li","starturl.com","stks.co","su.pr","surl.co.uk","surl.hu","t.cn","t.co","t.lh.com","ta.gd","tbd.ly","tcrn.ch","tgr.me","tgr.ph","tighturl.com","tiniuri.com","tiny.cc","tiny.ly","tiny.pl","tinylink.in","tinyuri.ca","tinyurl.com","tk.","tl.gd","tmi.me","tnij.org","tnw.to","tny.com","to.ly","togoto.us","totc.us","toysr.us","tpm.ly","tr.im","tra.kz","trunc.it","twhub.com","twirl.at","twitclicks.com","twitterurl.net","twitterurl.org","twiturl.de","twurl.cc","twurl.nl","u.mavrev.com","u.nu","u76.org","ub0.cc","ulu.lu","updating.me","ur1.ca","url.az","url.co.uk","url.ie","url360.me","url4.eu","urlborg.com","urlbrief.com","urlcover.com","urlcut.com","urlenco.de","urli.nl","urls.im","urlshorteningservicefortwitter.com","urlx.ie","urlzen.com","usat.ly","use.my","vb.ly","vevo.ly","vgn.am","vl.am","vm.lc","w55.de","wapo.st","wapurl.co.uk","wipi.es","wp.me","x.vu","xr.com","xrl.in","xrl.us","xurl.es","xurl.jp","y.ahoo.it","yatuc.com","ye.pe","yep.it","yfrog.com","yhoo.it","yiyd.com","youtu.be","yuarel.com","z0p.de","zi.ma","zi.mu","zipmyurl.com","zud.me","zurl.ws","zz.gd","zzang.kr","›.ws","✩.ws","✿.ws","❥.ws","➔.ws","➞.ws","➡.ws","➨.ws","➯.ws","➹.ws","➽.ws"];return 0===a("#jqoembeddata").length&&a('').appendTo("body"),this.each(function(){var c,i=a(this),j=!b||b.indexOf("http://")&&b.indexOf("https://")?i.attr("href"):b;if(d?g.onEmbed=d:g.onEmbed||(g.onEmbed=function(b){a.fn.oembed.insertCode(this,g.embedMethod,b)}),null!==j&&void 0!==j){for(var k=0,l=h.length;l>k;k++){var m=new RegExp("://"+h[k]+"/","i");if(null!==j.match(m)){var n=a.extend({url:"http://api.longurl.org/v2/expand",dataType:"jsonp",data:{url:j,format:"json"},success:function(b){j=b["long-url"],c=a.fn.oembed.getOEmbedProvider(b["long-url"]),null!==c?(c.params=f(g[c.name])||{},c.maxWidth=g.maxWidth,c.maxHeight=g.maxHeight,e(i,j,c)):g.onProviderNotFound.call(i,j)}},g.ajaxOptions||{});return a.ajax(n),i}}c=a.fn.oembed.getOEmbedProvider(j),null!==c?(c.params=f(g[c.name])||{},c.maxWidth=g.maxWidth,c.maxHeight=g.maxHeight,e(i,j,c)):g.onProviderNotFound.call(i,j)}return i})};var g;a.fn.oembed.defaults={maxWidth:null,maxHeight:null,includeHandle:!0,embedMethod:"auto",onProviderNotFound:function(){},beforeEmbed:function(){},afterEmbed:function(){},onEmbed:!1,onError:function(){},ajaxOptions:{}},a.fn.oembed.insertCode=function(b,c,d){if(null!==d)switch("auto"==c&&null!==b.attr("href")?c="append":"auto"==c&&(c="replace"),c){case"replace":b.replaceWith(d.code);break;case"fill":b.html(d.code);break;case"append":b.wrap('
    ');var e=b.parent();g.includeHandle&&a('').insertBefore(b).click(function(){var b=encodeURIComponent(a(this).text());a(this).html("%E2%86%91"==b?"↓":"↑"),a(this).parent().children().last().toggle()}),e.append("
    ");try{d.code.clone().appendTo(e)}catch(f){e.append(d.code)}if(g.maxWidth){var h=e.parent().width();if(h'+d+'
    ';else if(b.thumbnail_url){var e=b.thumbnail_url.replace("_s","_b");c='
    '+d+'
    '}else c="
    Error loading this picture
    ";return b.html&&(c+="
    "+b.html+"
    "),c},a.fn.oembed.getRichCode=function(a,b){var c=b.html;return c},a.fn.oembed.getGenericCode=function(a,b){var c=null!==b.title?b.title:a,d="";return b.html&&(d+='
    '+c+"
    "+jQuery(b.html).text().substring(0,200)+'... more
    '),d},a.fn.oembed.getOEmbedProvider=function(b){for(var c=0;cd;d++){var f=new RegExp(a.fn.oembed.providers[c].urlschemes[d],"i");if(null!==b.match(f))return a.fn.oembed.providers[c]}return null},a.fn.oembed.OEmbedProvider=function(a,b,c,d,e){this.name=a,this.type=b,this.urlschemes=c,this.apiendpoint=d,this.maxWidth=500,this.maxHeight=400,e=e||{},e.useYQL&&(e.yql="xml"==e.useYQL?{xpath:"//oembed/html",from:"xml",apiendpoint:this.apiendpoint,url:function(a){return this.apiendpoint+"?format=xml&url="+a},datareturn:function(a){return a.html.replace(/.*\[CDATA\[(.*)\]\]>$/,"$1")||""}}:{from:"json",apiendpoint:this.apiendpoint,url:function(a){return this.apiendpoint+"?format=json&url="+a},datareturn:function(a){return"video"!=a.json.type&&(a.json.url||a.json.thumbnail_url)?'':a.json.html||""}},this.apiendpoint=null);for(var f in e)this[f]=e[f];this.format=this.format||"json",this.callbackparameter=this.callbackparameter||"callback",this.embedtag=this.embedtag||{tag:""}},a.fn.updateOEmbedProvider=function(b,c,d,e,f){for(var g=0;g':!1}}}),new a.fn.oembed.OEmbedProvider("deviantart","photo",["deviantart.com/.+","fav.me/.+","deviantart.com/.+"],"http://backend.deviantart.com/oembed",{format:"jsonp"}),new a.fn.oembed.OEmbedProvider("skitch","photo",["skitch.com/.+"],null,{yql:{xpath:"json",from:"json",url:function(a){return"http://skitch.com/oembed/?format=json&url="+a},datareturn:function(b){return a.fn.oembed.getPhotoCode(b.json.url,b.json)}}}),new a.fn.oembed.OEmbedProvider("mobypicture","photo",["mobypicture.com/user/.+/view/.+","moby.to/.+"],"http://api.mobypicture.com/oEmbed"),new a.fn.oembed.OEmbedProvider("flickr","photo",["flickr\\.com/photos/.+"],"http://flickr.com/services/oembed",{callbackparameter:"jsoncallback"}),new a.fn.oembed.OEmbedProvider("photobucket","photo",["photobucket\\.com/(albums|groups)/.+"],"http://photobucket.com/oembed/"),new a.fn.oembed.OEmbedProvider("instagram","photo",["instagr\\.?am(\\.com)?/.+"],"http://api.instagram.com/oembed"),new a.fn.oembed.OEmbedProvider("SmugMug","photo",["smugmug.com/[-.\\w@]+/.+"],"http://api.smugmug.com/services/oembed/"),new a.fn.oembed.OEmbedProvider("dribbble","photo",["dribbble.com/shots/.+"],"http://api.dribbble.com/shots/$1?callback=?",{templateRegex:/.*shots\/([\d]+).*/,templateData:function(a){return a.image_teaser_url?'':!1}}),new a.fn.oembed.OEmbedProvider("chart.ly","photo",["chart\\.ly/[a-z0-9]{6,8}"],"http://chart.ly/uploads/large_$1.png",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new a.fn.oembed.OEmbedProvider("circuitlab","photo",["circuitlab.com/circuit/.+"],"https://www.circuitlab.com/circuit/$1/screenshot/540x405/",{templateRegex:/.*circuit\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new a.fn.oembed.OEmbedProvider("23hq","photo",["23hq.com/[-.\\w@]+/photo/.+"],"http://www.23hq.com/23/oembed",{useYQL:"json"}),new a.fn.oembed.OEmbedProvider("img.ly","photo",["img\\.ly/.+"],"http://img.ly/show/thumb/$1",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new a.fn.oembed.OEmbedProvider("twitgoo.com","photo",["twitgoo\\.com/.+"],"http://twitgoo.com/show/thumb/$1",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new a.fn.oembed.OEmbedProvider("imgur.com","photo",["imgur\\.com/gallery/.+"],"http://imgur.com/$1l.jpg",{templateRegex:/.*gallery\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new a.fn.oembed.OEmbedProvider("visual.ly","rich",["visual\\.ly/.+"],null,{yql:{xpath:"//a[@id=\\'gc_article_graphic_image\\']/img",from:"htmlstring"}}),new a.fn.oembed.OEmbedProvider("gravtar","photo",["mailto:.+"],null,{templateRegex:/mailto:([^\/]+).*/,template:function(a,b){return'on Gravtar'}}),new a.fn.oembed.OEmbedProvider("twitter","rich",["twitter.com/.+"],"https://api.twitter.com/1/statuses/oembed.json"),new a.fn.oembed.OEmbedProvider("gmep","rich",["gmep.imeducate.com/.*","gmep.org/.*"],"http://gmep.org/oembed.json"),new a.fn.oembed.OEmbedProvider("urtak","rich",["urtak.com/(u|clr)/.+"],"http://oembed.urtak.com/1/oembed"),new a.fn.oembed.OEmbedProvider("cacoo","rich",["cacoo.com/.+"],"http://cacoo.com/oembed.json"),new a.fn.oembed.OEmbedProvider("dailymile","rich",["dailymile.com/people/.*/entries/.*"],"http://api.dailymile.com/oembed"),new a.fn.oembed.OEmbedProvider("dipity","rich",["dipity.com/timeline/.+"],"http://www.dipity.com/oembed/timeline/",{useYQL:"json"}),new a.fn.oembed.OEmbedProvider("sketchfab","rich",["sketchfab.com/show/.+"],"http://sketchfab.com/oembed",{useYQL:"json"}),new a.fn.oembed.OEmbedProvider("speakerdeck","rich",["speakerdeck.com/.+"],"http://speakerdeck.com/oembed.json",{useYQL:"json"}),new a.fn.oembed.OEmbedProvider("popplet","rich",["popplet.com/app/.*"],"http://popplet.com/app/Popplet_Alpha.swf?page_id=$1&em=1",{templateRegex:/.*#\/([^\/]+).*/,embedtag:{width:460,height:460}}),new a.fn.oembed.OEmbedProvider("pearltrees","rich",["pearltrees.com/.*"],"http://cdn.pearltrees.com/s/embed/getApp?",{templateRegex:/.*N-f=1_(\d+).*N-p=(\d+).*/,embedtag:{width:460,height:460,flashvars:"lang=en_US&embedId=pt-embed-$1-693&treeId=$1&pearlId=$2&treeTitle=Diagrams%2FVisualization&site=www.pearltrees.com%2FF"}}),new a.fn.oembed.OEmbedProvider("prezi","rich",["prezi.com/.*"],"http://prezi.com/bin/preziloader.swf?",{templateRegex:/.*com\/([^\/]+)\/.*/,embedtag:{width:550,height:400,flashvars:"prezi_id=$1&lock_to_path=0&color=ffffff&autoplay=no&autohide_ctrls=0"}}),new a.fn.oembed.OEmbedProvider("tourwrist","rich",["tourwrist.com/tours/.+"],null,{templateRegex:/.*tours.([\d]+).*/,template:function(a,b){return setTimeout(function(){loadEmbeds&&loadEmbeds()},2e3),"
    "}}),new a.fn.oembed.OEmbedProvider("meetup","rich",["meetup\\.(com|ps)/.+"],"http://api.meetup.com/oembed"),new a.fn.oembed.OEmbedProvider("ebay","rich",["ebay\\.*"],"http://togo.ebay.com/togo/togo.swf?2008013100",{templateRegex:/.*\/([^\/]+)\/(\d{10,13}).*/,embedtag:{width:355,height:300,flashvars:"base=http://togo.ebay.com/togo/&lang=en-us&mode=normal&itemid=$2&query=$1"}}),new a.fn.oembed.OEmbedProvider("wikipedia","rich",["wikipedia.org/wiki/.+"],"http://$1.wikipedia.org/w/api.php?action=parse&page=$2&format=json§ion=0&callback=?",{templateRegex:/.*\/\/([\w]+).*\/wiki\/([^\/]+).*/,templateData:function(a){if(!a.parse)return!1;var b=a.parse.text["*"].replace(/href="\/wiki/g,'href="http://en.wikipedia.org/wiki');return'
    '+a.parse.displaytitle+"
    "+jQuery(b).text().substring(0,200)+"...
    "}}),new a.fn.oembed.OEmbedProvider("imdb","rich",["imdb.com/title/.+"],"http://www.imdbapi.com/?i=$1&callback=?",{templateRegex:/.*\/title\/([^\/]+).*/,templateData:function(a){return a.Title?'

    '+a.Title+" ("+a.Year+")

    Rating: "+a.imdbRating+"
    Genre: "+a.Genre+"
    Starring: "+a.Actors+'

    '+a.Plot+"
    ":!1}}),new a.fn.oembed.OEmbedProvider("livejournal","rich",["livejournal.com/"],"http://ljpic.seacrow.com/json/$2$4?jsonp=?",{templateRegex:/(http:\/\/(((?!users).)+)\.livejournal\.com|.*users\.livejournal\.com\/([^\/]+)).*/,templateData:function(a){return a.username?'
    [info]'+a.username+"
    "+a.name+"
    ":!1}}),new a.fn.oembed.OEmbedProvider("circuitbee","rich",["circuitbee\\.com/circuit/view/.+"],"http://c.circuitbee.com/build/r/schematic-embed.html?id=$1",{templateRegex:/.*circuit\/view\/(\d+).*/,embedtag:{tag:"iframe",width:"500",height:"350"}}),new a.fn.oembed.OEmbedProvider("googlecalendar","rich",["www.google.com/calendar/embed?.+"],"$1",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"800",height:"600"}}),new a.fn.oembed.OEmbedProvider("jsfiddle","rich",["jsfiddle.net/[^/]+/?"],"http://jsfiddle.net/$1/embedded/result,js,resources,html,css/?",{templateRegex:/.*net\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"300"}}),new a.fn.oembed.OEmbedProvider("jsbin","rich",["jsbin.com/.+"],"http://jsbin.com/$1/?",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"300"}}),new a.fn.oembed.OEmbedProvider("jotform","rich",["form.jotform.co/form/.+"],"$1?",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"100%",height:"507"}}),new a.fn.oembed.OEmbedProvider("reelapp","rich",["reelapp\\.com/.+"],"http://www.reelapp.com/$1/embed",{templateRegex:/.*com\/(\S{6}).*/,embedtag:{tag:"iframe",width:"400",height:"338"}}),new a.fn.oembed.OEmbedProvider("linkedin","rich",["linkedin.com/pub/.+"],"https://www.linkedin.com/cws/member/public_profile?public_profile_url=$1&format=inline&isFramed=true",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"368px",height:"auto"}}),new a.fn.oembed.OEmbedProvider("timetoast","rich",["timetoast.com/timelines/[0-9]+"],"http://www.timetoast.com/flash/TimelineViewer.swf?passedTimelines=$1",{templateRegex:/.*timelines\/([0-9]*)/,embedtag:{width:550,height:400,nocache:1}}),new a.fn.oembed.OEmbedProvider("pastebin","rich",["pastebin\\.com/[\\S]{8}"],"http://pastebin.com/embed_iframe.php?i=$1",{templateRegex:/.*\/(\S{8}).*/,embedtag:{tag:"iframe",width:"100%",height:"auto"}}),new a.fn.oembed.OEmbedProvider("mixlr","rich",["mixlr.com/.+"],"http://mixlr.com/embed/$1?autoplay=ae",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"auto"}}),new a.fn.oembed.OEmbedProvider("pastie","rich",["pastie\\.org/pastes/.+"],null,{yql:{xpath:'//pre[@class="textmate-source"]'}}),new a.fn.oembed.OEmbedProvider("github","rich",["gist.github.com/.+"],"https://github.com/api/oembed"),new a.fn.oembed.OEmbedProvider("github","rich",["github.com/[-.\\w@]+/[-.\\w@]+"],"https://api.github.com/repos/$1/$2?callback=?",{templateRegex:/.*\/([^\/]+)\/([^\/]+).*/,templateData:function(a){return a.data.html_url?'

    '+a.data.name+'

    '+a.data.description+'

    Last updated: '+a.data.pushed_at+"

    ":!1}}),new a.fn.oembed.OEmbedProvider("facebook","rich",["facebook.com/(people/[^\\/]+/\\d+|[^\\/]+$)"],"https://graph.facebook.com/$2$3/?callback=?",{templateRegex:/.*facebook.com\/(people\/[^\/]+\/(\d+).*|([^\/]+$))/,templateData:function(a){if(!a.id)return!1;var b='
    facebook ';return b+=a.from?''+a.from.name+"":a.link?''+a.name+"":a.username?''+a.name+"":''+a.name+"",b+='
    ',b+=a.picture?'':'',a.from&&(b+=''+a.name+""),a.founded&&(b+="Founded: "+a.founded+"
    "),a.category&&(b+="Category: "+a.category+"
    "),a.website&&(b+='Website: '+a.website+"
    "),a.gender&&(b+="Gender: "+a.gender+"
    "),a.description&&(b+=a.description+"
    "),b+="
    "}}),new a.fn.oembed.OEmbedProvider("stackoverflow","rich",["stackoverflow.com/questions/[\\d]+"],"http://api.stackoverflow.com/1.1/questions/$1?body=true&jsonp=?",{templateRegex:/.*questions\/([\d]+).*/,templateData:function(b){if(!b.questions)return!1;var c=b.questions[0],d=a(c.body).text(),e='
    '+(c.up_vote_count-c.down_vote_count)+'
    vote(s)
    '+c.answer_count+'answer
    '+c.view_count+' view(s)

    '+c.title+'

    '+d.substring(0,100)+'...
    ';for(i in c.tags)e+='";return e+='
    " }}),new a.fn.oembed.OEmbedProvider("wordpress","rich",["wordpress\\.com/.+","blogs\\.cnn\\.com/.+","techcrunch\\.com/.+","wp\\.me/.+"],"http://public-api.wordpress.com/oembed/1.0/?for=jquery-oembed-all"),new a.fn.oembed.OEmbedProvider("screenr","rich",["screenr.com"],"http://www.screenr.com/embed/$1",{templateRegex:/.*\/([^\/]+).*/,embedtag:{tag:"iframe",width:"650",height:396}}),new a.fn.oembed.OEmbedProvider("gigpans","rich",["gigapan\\.org/[-.\\w@]+/\\d+"],"http://gigapan.org/gigapans/$1/options/nosnapshots/iframe/flash.html",{templateRegex:/.*\/(\d+)\/?.*/,embedtag:{tag:"iframe",width:"100%",height:400}}),new a.fn.oembed.OEmbedProvider("scribd","rich",["scribd\\.com/.+"],"http://www.scribd.com/embeds/$1/content?start_page=1&view_mode=list",{templateRegex:/.*doc\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:600}}),new a.fn.oembed.OEmbedProvider("kickstarter","rich",["kickstarter\\.com/projects/.+"],"$1/widget/card.html",{templateRegex:/([^\?]+).*/,embedtag:{tag:"iframe",width:"220",height:380}}),new a.fn.oembed.OEmbedProvider("amazon","rich",["amzn.com/B+","amazon.com.*/(B\\S+)($|\\/.*)"],"http://rcm.amazon.com/e/cm?t=_APIKEY_&o=1&p=8&l=as1&asins=$1&ref=qf_br_asin_til&fc1=000000&IS2=1<1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr",{apikey:!0,templateRegex:/.*\/(B[0-9A-Z]+)($|\/.*)/,embedtag:{tag:"iframe",width:"120px",height:"240px"}}),new a.fn.oembed.OEmbedProvider("slideshare","rich",["slideshare.net"],"http://www.slideshare.net/api/oembed/2",{format:"jsonp"}),new a.fn.oembed.OEmbedProvider("roomsharejp","rich",["roomshare\\.jp/(en/)?post/.*"],"http://roomshare.jp/oembed.json"),new a.fn.oembed.OEmbedProvider("lanyard","rich",["lanyrd.com/\\d+/.+"],null,{yql:{xpath:'(//div[@class="primary"])[1]',from:"htmlstring",datareturn:function(a){return a.result?'
    '+a.result+"
    ":!1}}}),new a.fn.oembed.OEmbedProvider("asciiartfarts","rich",["asciiartfarts.com/\\d+.html"],null,{yql:{xpath:"//pre/font",from:"htmlstring",datareturn:function(a){return a.result?'
    '+a.result+"
    ":!1}}})]}(jQuery),String.prototype.md5=function(){var a=function(a,b){var c=(65535&a)+(65535&b),d=(a>>16)+(b>>16)+(c>>16);return d<<16|65535&c},b=function(a,b){return a<>>32-b},c=function(c,d,e,f,g,h){return a(b(a(a(d,c),a(f,h)),g),e)},d=function(a,b,d,e,f,g,h){return c(b&d|~b&e,a,b,f,g,h)},e=function(a,b,d,e,f,g,h){return c(b&e|d&~e,a,b,f,g,h)},f=function(a,b,d,e,f,g,h){return c(b^d^e,a,b,f,g,h)},g=function(a,b,d,e,f,g,h){return c(d^(b|~e),a,b,f,g,h)},h=function(b){var c,h,i,j,k,l=b.length,m=1732584193,n=-271733879,o=-1732584194,p=271733878;for(k=0;l>k;k+=16)c=m,h=n,i=o,j=p,m=d(m,n,o,p,b[k+0],7,-680876936),p=d(p,m,n,o,b[k+1],12,-389564586),o=d(o,p,m,n,b[k+2],17,606105819),n=d(n,o,p,m,b[k+3],22,-1044525330),m=d(m,n,o,p,b[k+4],7,-176418897),p=d(p,m,n,o,b[k+5],12,1200080426),o=d(o,p,m,n,b[k+6],17,-1473231341),n=d(n,o,p,m,b[k+7],22,-45705983),m=d(m,n,o,p,b[k+8],7,1770035416),p=d(p,m,n,o,b[k+9],12,-1958414417),o=d(o,p,m,n,b[k+10],17,-42063),n=d(n,o,p,m,b[k+11],22,-1990404162),m=d(m,n,o,p,b[k+12],7,1804603682),p=d(p,m,n,o,b[k+13],12,-40341101),o=d(o,p,m,n,b[k+14],17,-1502002290),n=d(n,o,p,m,b[k+15],22,1236535329),m=e(m,n,o,p,b[k+1],5,-165796510),p=e(p,m,n,o,b[k+6],9,-1069501632),o=e(o,p,m,n,b[k+11],14,643717713),n=e(n,o,p,m,b[k+0],20,-373897302),m=e(m,n,o,p,b[k+5],5,-701558691),p=e(p,m,n,o,b[k+10],9,38016083),o=e(o,p,m,n,b[k+15],14,-660478335),n=e(n,o,p,m,b[k+4],20,-405537848),m=e(m,n,o,p,b[k+9],5,568446438),p=e(p,m,n,o,b[k+14],9,-1019803690),o=e(o,p,m,n,b[k+3],14,-187363961),n=e(n,o,p,m,b[k+8],20,1163531501),m=e(m,n,o,p,b[k+13],5,-1444681467),p=e(p,m,n,o,b[k+2],9,-51403784),o=e(o,p,m,n,b[k+7],14,1735328473),n=e(n,o,p,m,b[k+12],20,-1926607734),m=f(m,n,o,p,b[k+5],4,-378558),p=f(p,m,n,o,b[k+8],11,-2022574463),o=f(o,p,m,n,b[k+11],16,1839030562),n=f(n,o,p,m,b[k+14],23,-35309556),m=f(m,n,o,p,b[k+1],4,-1530992060),p=f(p,m,n,o,b[k+4],11,1272893353),o=f(o,p,m,n,b[k+7],16,-155497632),n=f(n,o,p,m,b[k+10],23,-1094730640),m=f(m,n,o,p,b[k+13],4,681279174),p=f(p,m,n,o,b[k+0],11,-358537222),o=f(o,p,m,n,b[k+3],16,-722521979),n=f(n,o,p,m,b[k+6],23,76029189),m=f(m,n,o,p,b[k+9],4,-640364487),p=f(p,m,n,o,b[k+12],11,-421815835),o=f(o,p,m,n,b[k+15],16,530742520),n=f(n,o,p,m,b[k+2],23,-995338651),m=g(m,n,o,p,b[k+0],6,-198630844),p=g(p,m,n,o,b[k+7],10,1126891415),o=g(o,p,m,n,b[k+14],15,-1416354905),n=g(n,o,p,m,b[k+5],21,-57434055),m=g(m,n,o,p,b[k+12],6,1700485571),p=g(p,m,n,o,b[k+3],10,-1894986606),o=g(o,p,m,n,b[k+10],15,-1051523),n=g(n,o,p,m,b[k+1],21,-2054922799),m=g(m,n,o,p,b[k+8],6,1873313359),p=g(p,m,n,o,b[k+15],10,-30611744),o=g(o,p,m,n,b[k+6],15,-1560198380),n=g(n,o,p,m,b[k+13],21,1309151649),m=g(m,n,o,p,b[k+4],6,-145523070),p=g(p,m,n,o,b[k+11],10,-1120210379),o=g(o,p,m,n,b[k+2],15,718787259),n=g(n,o,p,m,b[k+9],21,-343485551),m=a(m,c),n=a(n,h),o=a(o,i),p=a(p,j);return[m,n,o,p]},i=function(a){var b,c="0123456789abcdef",d="",e=4*a.length;for(b=0;e>b;b++)d+=c.charAt(a[b>>2]>>b%4*8+4&15)+c.charAt(a[b>>2]>>b%4*8&15);return d},j=function(a){var b,c,d=(a.length+8>>6)+1,e=[],f=16*d,g=a.length;for(b=0;f>b;b++)e.push(0);for(c=0;g>c;c++)e[c>>2]|=(255&a.charCodeAt(c))<>2]|=128<f;f++)c.remove(0);if(b.colorset_list){for(var g=b.colorset_list.split("\n"),h=0,f=0;f0||!i||0===h.indexOf("sizcache")||jQuery.inArray(h,g)>-1)){jQuery('').val(i).appendTo("#fo_widget").get(0)}}var j=[];jQuery("input,select,textarea","#fo_widget").each(function(){j.push(this)});for(var k=0;k0?n=l[0].type:m=0;var h=l.name;switch(n){case"hidden":case"text":case"textarea":var o=selected_node.getAttribute(h);if(!o)continue;var p=unescape(o);l.value=p?p:o,jQuery("#"+h).val(l.value);break;case"radio":case"checkbox":if(selected_node.getAttribute(h)){var o=selected_node.getAttribute(h).split(",");if(e[h].length){for(var q=0;q ",0===d)$(this).siblings("input").val(b[d].id);else{var e=$(this).siblings("input").val();$(this).siblings("input").val(e+","+b[d].id)}else if(b[d])if(c+=' ",0===d)$(this).siblings("input").val(b[d]);else{var e=$(this).siblings("input").val();$(this).siblings("input").val(e+","+b[d])}}else c=' ",$(this).siblings("input").val(b);$(this).before(c),$(".filebox_del").bind("click",function(){for(var a=$(this).prev("img").attr("src"),b=$(this).siblings("input").val().split(","),c="",d=0;df;f++)c.remove(0);if(b.colorset_list){for(var g=b.colorset_list.split("\n"),h=0,f=0;f0||!i||0===h.indexOf("sizcache")||jQuery.inArray(h,g)>-1)){jQuery('').val(i).appendTo("#fo_widget").get(0)}}var j=[];jQuery("input,select,textarea","#fo_widget").each(function(){j.push(this)});for(var k=0;k0?n=l[0].type:m=0;var h=l.name;switch(n){case"hidden":case"number":case"text":case"textarea":var o=selected_node.getAttribute(h);if(!o)continue;var p=unescape(o);l.value=p?p:o,jQuery("#"+h).val(l.value);break;case"radio":case"checkbox":if(selected_node.getAttribute(h)){var o=selected_node.getAttribute(h).split(",");if(e[h].length){for(var q=0;q ",0===d)$(this).siblings("input").val(b[d].id);else{var e=$(this).siblings("input").val();$(this).siblings("input").val(e+","+b[d].id)}else if(b[d])if(c+=' ",0===d)$(this).siblings("input").val(b[d]);else{var e=$(this).siblings("input").val();$(this).siblings("input").val(e+","+b[d])}}else c=' ",$(this).siblings("input").val(b);$(this).before(c),$(".filebox_del").bind("click",function(){for(var a=$(this).prev("img").attr("src"),b=$(this).siblings("input").val().split(","),c="",d=0;d Date: Mon, 10 Mar 2014 14:10:50 +0900 Subject: [PATCH 193/549] =?UTF-8?q?fix=20#424=20=EC=A4=91=EB=B3=B5=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=EB=90=9C=20cache=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/layout/layout.admin.controller.php | 18 ++----------- modules/layout/layout.class.php | 9 ------- modules/layout/layout.model.php | 30 +++++----------------- 3 files changed, 9 insertions(+), 48 deletions(-) diff --git a/modules/layout/layout.admin.controller.php b/modules/layout/layout.admin.controller.php index c935fec20b..459a2085b8 100644 --- a/modules/layout/layout.admin.controller.php +++ b/modules/layout/layout.admin.controller.php @@ -262,15 +262,8 @@ function updateLayout($args) { $oLayoutModel = getModel('layout'); $cache_file = $oLayoutModel->getUserLayoutCache($args->layout_srl, Context::getLangType()); FileHandler::removeFile($cache_file); - //remove from cache - $oCacheHandler = CacheHandler::getInstance('object', null, true); - if($oCacheHandler->isSupport()) - { - $object_key = 'layout:' . $args->layout_srl; - $cache_key = $oCacheHandler->getGroupKey('site_and_module', $object_key); - $oCacheHandler->delete($cache_key); - } } + return $output; } @@ -336,14 +329,7 @@ function deleteLayout($layout_srl, $force = FALSE) $args = new stdClass(); $args->layout_srl = $layout_srl; $output = executeQuery("layout.deleteLayout", $args); - //remove from cache - $oCacheHandler = CacheHandler::getInstance('object', null, true); - if($oCacheHandler->isSupport()) - { - $object_key = 'layout:'.$layout_srl; - $cache_key = $oCacheHandler->getGroupKey('site_and_module', $object_key); - $oCacheHandler->delete($cache_key); - } + if(!$output->toBool()) return $output; return new Object(0,'success_deleted'); diff --git a/modules/layout/layout.class.php b/modules/layout/layout.class.php index 1c6b06d720..9a8d75c34d 100644 --- a/modules/layout/layout.class.php +++ b/modules/layout/layout.class.php @@ -86,8 +86,6 @@ function moduleUpdate() $oDB->addColumn('layouts','layout_type','char',1,'P',true); } - $oCacheHandler = CacheHandler::getInstance('object', null, true); - $args->layout = '.'; $output = executeQueryArray('layout.getLayoutDotList', $args); if($output->data && count($output->data) > 0) @@ -101,13 +99,6 @@ function moduleUpdate() $args->layout = implode('|@|', $layout_path); $args->layout_srl = $layout->layout_srl; $output = executeQuery('layout.updateLayout', $args); - - if($oCacheHandler->isSupport()) - { - $object_key = 'layout:' . $args->layout_srl; - $cache_key = $oCacheHandler->getGroupKey('site_and_module', $object_key); - $oCacheHandler->delete($cache_key); - } } } } diff --git a/modules/layout/layout.model.php b/modules/layout/layout.model.php index 85e38441aa..d402b9c0ef 100644 --- a/modules/layout/layout.model.php +++ b/modules/layout/layout.model.php @@ -258,31 +258,15 @@ function isExistsLayoutFile($layout, $layoutType) */ function getLayout($layout_srl) { - $layout_info = false; - - // cache controll - $oCacheHandler = CacheHandler::getInstance('object', null, true); - if($oCacheHandler->isSupport()) - { - $object_key = 'layout:' . $layout_srl; - $cache_key = $oCacheHandler->getGroupKey('site_and_module', $object_key); - $layout_info = $oCacheHandler->get($cache_key); - } - - if($layout_info === false) - { - // Get information from the DB - $args = new stdClass(); - $args->layout_srl = $layout_srl; - $output = executeQuery('layout.getLayout', $args); - if(!$output->data) return; + // Get information from the DB + $args = new stdClass(); + $args->layout_srl = $layout_srl; + $output = executeQuery('layout.getLayout', $args); + if(!$output->data) return; - // Return xml file informaton after listing up the layout and extra_vars - $layout_info = $this->getLayoutInfo($layout, $output->data, $output->data->layout_type); + // Return xml file informaton after listing up the layout and extra_vars + $layout_info = $this->getLayoutInfo($layout, $output->data, $output->data->layout_type); - //insert in cache - if($oCacheHandler->isSupport()) $oCacheHandler->put($cache_key, $layout_info); - } return $layout_info; } From eaa7c774f58640d098f7cb981b2e360a3ed96eb5 Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 10 Mar 2014 14:41:33 +0900 Subject: [PATCH 194/549] =?UTF-8?q?fix=20#564=20=EB=AA=A8=EB=B0=94?= =?UTF-8?q?=EC=9D=BC=20member=20=EC=8A=A4=ED=82=A8=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EB=A7=88=EC=A7=80=EB=A7=89=20=EB=B9=84=EB=B0=80=EB=B2=88?= =?UTF-8?q?=ED=98=B8=20=EC=B0=BE=EA=B8=B0=20=EC=A7=88=EB=AC=B8=EC=9D=B4=20?= =?UTF-8?q?=ED=91=9C=EC=8B=9C=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/member/m.skins/default/find_member_account.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/member/m.skins/default/find_member_account.html b/modules/member/m.skins/default/find_member_account.html index 517d11bd0a..c8e22f827e 100644 --- a/modules/member/m.skins/default/find_member_account.html +++ b/modules/member/m.skins/default/find_member_account.html @@ -51,7 +51,7 @@
  • From 5ba90095eda5a233306bf5d57c9185e3cf03b791 Mon Sep 17 00:00:00 2001 From: Cheun Young Jin Date: Tue, 11 Mar 2014 09:41:18 +0900 Subject: [PATCH 195/549] Update member.controller.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit if($member_srl || $member_srl_by_decode) return new Object(-1,'msg_exists_nick_name'); 자기 자신 회원정보를 수정할 수 없음 아래로 교체함 if(($member_srl || $member_srl_by_decode) && $orgMemberInfo->nick_name != $args->nick_name) return new Object(-1,'msg_exists_nick_name'); 기존정보와 비교해서 같지 않아야만 이 검사가 진행됨 2121 --- modules/member/member.controller.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 598681eb88..68cc2bc810 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -2118,7 +2118,7 @@ function updateMember($args, $is_admin = FALSE) $member_srl = $oMemberModel->getMemberSrlByNickName($args->nick_name); $member_srl_by_decode = $oMemberModel->getMemberSrlByNickName(utf8_decode($args->nick_name)); - if($member_srl || $member_srl_by_decode) return new Object(-1,'msg_exists_nick_name'); + if(($member_srl || $member_srl_by_decode) && $orgMemberInfo->nick_name != $args->nick_name) return new Object(-1,'msg_exists_nick_name'); list($args->email_id, $args->email_host) = explode('@', $args->email_address); // Website, blog, checks the address From ecb5628725e52dc82bf33c6981dd845c47f27350 Mon Sep 17 00:00:00 2001 From: khongchi Date: Wed, 12 Mar 2014 13:41:49 +0900 Subject: [PATCH 196/549] =?UTF-8?q?#309=20SECISSUE=20homepage=ED=95=84?= =?UTF-8?q?=EB=93=9C=EB=A5=BC=20=EC=9D=B4=EC=9A=A9=ED=95=9C=20XSS=20?= =?UTF-8?q?=EA=B3=B5=EA=B2=A9=20=EB=B0=A9=EC=96=B4,=20=EB=8C=93=EA=B8=80?= =?UTF-8?q?=20=EC=9E=91=EC=84=B1=EC=8B=9C=EC=97=90=EB=8F=84=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/comment/comment.controller.php | 16 ++++++++++++---- modules/document/document.controller.php | 10 +++++++++- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/modules/comment/comment.controller.php b/modules/comment/comment.controller.php index 18e86394c8..0a64b1c06b 100644 --- a/modules/comment/comment.controller.php +++ b/modules/comment/comment.controller.php @@ -266,9 +266,13 @@ function insertComment($obj, $manual_inserted = FALSE) return new Object(-1, 'msg_invalid_request'); } - if($obj->homepage && !preg_match('/^[a-z]+:\/\//i', $obj->homepage)) + if($obj->homepage) { - $obj->homepage = 'http://' . $obj->homepage; + $obj->homepage = removeHackTag($obj->homepage); + if(!preg_match('/^[a-z]+:\/\//i',$obj->homepage)) + { + $obj->homepage = 'http://'.$obj->homepage; + } } // input the member's information if logged-in @@ -655,9 +659,13 @@ function updateComment($obj, $is_admin = FALSE) $obj->password = md5($obj->password); } - if($obj->homepage && !preg_match('/^[a-z]+:\/\//i', $obj->homepage)) + if($obj->homepage) { - $obj->homepage = 'http://' . $obj->homepage; + $obj->homepage = removeHackTag($obj->homepage); + if(!preg_match('/^[a-z]+:\/\//i',$obj->homepage)) + { + $obj->homepage = 'http://'.$obj->homepage; + } } // set modifier's information if logged-in and posting author and modifier are matched. diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index 87220649cc..338f082d44 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -398,7 +398,15 @@ function updateDocument($source_obj, $obj, $manual_updated = FALSE) if(!$obj->commentStatus) $obj->commentStatus = 'DENY'; if($obj->commentStatus == 'DENY') $this->_checkCommentStatusForOldVersion($obj); if($obj->allow_trackback!='Y') $obj->allow_trackback = 'N'; - if($obj->homepage && !preg_match('/^[a-z]+:\/\//i',$obj->homepage)) $obj->homepage = 'http://'.$obj->homepage; + if($obj->homepage) + { + $obj->homepage = removeHackTag($obj->homepage); + if(!preg_match('/^[a-z]+:\/\//i',$obj->homepage)) + { + $obj->homepage = 'http://'.$obj->homepage; + } + } + if($obj->notify_message != 'Y') $obj->notify_message = 'N'; // can modify regdate only manager From fc7673c787d2b0705c1b54e6cf80fdb871ec1aea Mon Sep 17 00:00:00 2001 From: khongchi Date: Wed, 12 Mar 2014 13:45:16 +0900 Subject: [PATCH 197/549] Version update: 1.7.4.1 --- config/config.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.inc.php b/config/config.inc.php index 19e086d61a..6304f6245f 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -29,7 +29,7 @@ /** * Display XE's full version. */ -define('__XE_VERSION__', '1.7.4'); +define('__XE_VERSION__', '1.7.4.1'); /** * @deprecated __ZBXE_VERSION__ will be removed. Use __XE_VERSION__ instead. From 34fca81212ff2b530a59b0f8dcb234de59424403 Mon Sep 17 00:00:00 2001 From: bnu Date: Sat, 8 Feb 2014 13:58:52 +0900 Subject: [PATCH 198/549] =?UTF-8?q?fix=20#445=20APC=EC=97=90=EC=84=9C=20de?= =?UTF-8?q?lete()=EA=B0=80=20null=EC=9D=84=20=EC=82=BD=EC=9E=85=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/cache/CacheApc.class.php | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/classes/cache/CacheApc.class.php b/classes/cache/CacheApc.class.php index a416b1270d..73abeb0b36 100644 --- a/classes/cache/CacheApc.class.php +++ b/classes/cache/CacheApc.class.php @@ -84,7 +84,7 @@ function isValid($key, $modified_time = 0) if($modified_time > 0 && $modified_time > $obj[0]) { - $this->_delete($_key); + $this->delete($_key); return false; } @@ -110,24 +110,13 @@ function get($key, $modified_time = 0) if($modified_time > 0 && $modified_time > $obj[0]) { - $this->_delete($_key); + $this->delete($_key); return false; } return $obj[1]; } - /** - * Delete variable from the cache(private) - * - * @param string $_key Used to store the value. - * @return void - */ - function _delete($_key) - { - $this->put($_key, null, 1); - } - /** * Delete variable from the cache * @@ -136,7 +125,7 @@ function _delete($_key) */ function delete($key) { - $this->_delete($key); + return apc_delete($key); } /** @@ -149,7 +138,13 @@ function truncate() return apc_clear_cache('user'); } - + /** + * @DEPRECATED + */ + function _delete($key) + { + return $this->delete($key); + } } CacheApc::$isSupport = function_exists('apc_add'); From d2d59fc36771488e846fe0b6071b50a5ecad99fb Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 10 Mar 2014 09:43:02 +0900 Subject: [PATCH 199/549] =?UTF-8?q?fix=20#489=20APC=20cache=EA=B0=80=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/cache/CacheApc.class.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/classes/cache/CacheApc.class.php b/classes/cache/CacheApc.class.php index 73abeb0b36..b8499d7a66 100644 --- a/classes/cache/CacheApc.class.php +++ b/classes/cache/CacheApc.class.php @@ -84,7 +84,7 @@ function isValid($key, $modified_time = 0) if($modified_time > 0 && $modified_time > $obj[0]) { - $this->delete($_key); + $this->delete($key); return false; } @@ -110,7 +110,7 @@ function get($key, $modified_time = 0) if($modified_time > 0 && $modified_time > $obj[0]) { - $this->delete($_key); + $this->delete($key); return false; } @@ -125,7 +125,8 @@ function get($key, $modified_time = 0) */ function delete($key) { - return apc_delete($key); + $_key = md5(_XE_PATH_ . $key); + return apc_delete($_key); } /** From d01d85946ab53914bd6fec8604426915485b4270 Mon Sep 17 00:00:00 2001 From: bnu Date: Thu, 27 Feb 2014 10:13:09 +0900 Subject: [PATCH 200/549] =?UTF-8?q?fix=20#480=20class=5Fexists()=EC=9D=98?= =?UTF-8?q?=20autoload=20=EB=B9=84=ED=99=9C=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/captcha/captcha.addon.php | 2 +- addons/captcha_member/captcha_member.addon.php | 2 +- classes/module/ModuleHandler.class.php | 4 ++-- classes/validator/Validator.class.php | 4 ++-- modules/widget/widget.controller.php | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/captcha/captcha.addon.php b/addons/captcha/captcha.addon.php index 433adf5274..a03a9d8475 100644 --- a/addons/captcha/captcha.addon.php +++ b/addons/captcha/captcha.addon.php @@ -9,7 +9,7 @@ * @brief Captcha for a particular action * English alphabets and voice verification added * */ -if(!class_exists('AddonCaptcha')) +if(!class_exists('AddonCaptcha', false)) { // On the mobile mode, XE Core does not load jquery and xe.js as normal. Context::loadFile(array('./common/js/jquery.min.js', 'head', NULL, -100000), true); diff --git a/addons/captcha_member/captcha_member.addon.php b/addons/captcha_member/captcha_member.addon.php index ac1e57c5fe..211fd86872 100644 --- a/addons/captcha_member/captcha_member.addon.php +++ b/addons/captcha_member/captcha_member.addon.php @@ -9,7 +9,7 @@ * @brief Captcha for a particular action * English alphabets and voice verification added * */ -if(!class_exists('AddonMemberCaptcha')) +if(!class_exists('AddonMemberCaptcha', false)) { // On the mobile mode, XE Core does not load jquery and xe.js as normal. Context::loadFile(array('./common/js/jquery.min.js', 'head', NULL, -100000), true); diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index 802a751264..3b20145e33 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -1021,7 +1021,7 @@ function &getModuleInstance($module, $type = 'view', $kind = '') } // Get base class name and load the file contains it - if(!class_exists($module)) + if(!class_exists($module, false)) { $high_class_file = sprintf('%s%s%s.class.php', _XE_PATH_, $class_path, $module); if(!file_exists($high_class_file)) @@ -1039,7 +1039,7 @@ function &getModuleInstance($module, $type = 'view', $kind = '') // Create an instance with eval function require_once($class_file); - if(!class_exists($instance_name)) + if(!class_exists($instance_name, false)) { return NULL; } diff --git a/classes/validator/Validator.class.php b/classes/validator/Validator.class.php index 11762da504..8ad9d4f138 100644 --- a/classes/validator/Validator.class.php +++ b/classes/validator/Validator.class.php @@ -667,7 +667,7 @@ function getJsPath() } // current language - $lang_type = class_exists('Context') ? Context::getLangType() : 'en'; + $lang_type = class_exists('Context', false) ? Context::getLangType() : 'en'; // check the file $filepath = $dir . '/' . md5($this->_version . ' ' . $this->_xml_path) . ".{$lang_type}.js"; @@ -706,7 +706,7 @@ function _compile2js() list($ruleset) = explode('.', $ruleset); // current language - $lang_type = class_exists('Context') ? Context::getLangType() : 'en'; + $lang_type = class_exists('Context', false) ? Context::getLangType() : 'en'; // custom rulesets $addrules = array(); diff --git a/modules/widget/widget.controller.php b/modules/widget/widget.controller.php index 2fd0fdeeb9..f807593cc8 100644 --- a/modules/widget/widget.controller.php +++ b/modules/widget/widget.controller.php @@ -641,7 +641,7 @@ function getWidgetObject($widget) require_once($class_file); // Creating Objects - if(!class_exists($widget)) + if(!class_exists($widget, false)) { return sprintf(Context::getLang('msg_widget_object_is_null'), $widget); } From 7aa70223f1061cdf1704e82168d7a22a278ecdc5 Mon Sep 17 00:00:00 2001 From: akasima Date: Wed, 19 Feb 2014 13:55:01 +0900 Subject: [PATCH 201/549] #498 document table's cache delete --- modules/document/document.controller.php | 56 ++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index 338f082d44..f02019eb22 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -840,6 +840,14 @@ function updateReadedCount(&$oDocument) $args->document_srl = $document_srl; $output = executeQuery('document.updateReadedCount', $args); + $oCacheHandler = CacheHandler::getInstance('object'); + if($oCacheHandler->isSupport()) + { + //remove document item from cache + $cache_key = 'document_item:'. getNumberingPath($document_srl) . $document_srl; + $oCacheHandler->delete($cache_key); + } + // Register session $_SESSION['readed_document'][$document_srl] = true; @@ -1105,6 +1113,14 @@ function updateVotedCount($document_srl, $point = 1) $oDB->commit(); + $oCacheHandler = CacheHandler::getInstance('object'); + if($oCacheHandler->isSupport()) + { + //remove document item from cache + $cache_key = 'document_item:'. getNumberingPath($document_srl) . $document_srl; + $oCacheHandler->delete($cache_key); + } + // Leave in the session information $_SESSION['voted_document'][$document_srl] = true; @@ -1246,6 +1262,14 @@ function updateCommentCount($document_srl, $comment_count, $last_updater, $comme { $args->update_order = -1*getNextSequence(); $args->last_updater = $last_updater; + + $oCacheHandler = CacheHandler::getInstance('object'); + if($oCacheHandler->isSupport()) + { + //remove document item from cache + $cache_key = 'document_item:'. getNumberingPath($document_srl) . $document_srl; + $oCacheHandler->delete($cache_key); + } } return executeQuery('document.updateCommentCount', $args); @@ -1263,6 +1287,14 @@ function updateTrackbackCount($document_srl, $trackback_count) $args->document_srl = $document_srl; $args->trackback_count = $trackback_count; + $oCacheHandler = CacheHandler::getInstance('object'); + if($oCacheHandler->isSupport()) + { + //remove document item from cache + $cache_key = 'document_item:'. getNumberingPath($document_srl) . $document_srl; + $oCacheHandler->delete($cache_key); + } + return executeQuery('document.updateTrackbackCount', $args); } @@ -1366,6 +1398,30 @@ function deleteCategory($category_srl) if(!$output->toBool()) return $output; $this->makeCategoryFile($category_info->module_srl); + // remvove cache + $oCacheHandler = CacheHandler::getInstance('object'); + if($oCacheHandler->isSupport()) + { + $page = 0; + while(true) { + $args = new stdClass(); + $args->category_srl = $category_srl; + $args->page = ++$page; + $output = executeQuery('document.getDocumentList', $args, array('document_srl')); + + if($output->data == array()) + break; + + foreach($output->data as $val) + { + $document_srl = $val->document_srl; + //remove document item from cache + $cache_key = 'document_item:'. getNumberingPath($document_srl) . $document_srl; + $oCacheHandler->delete($cache_key); + } + } + } + // Update category_srl of the documents in the same category to 0 $args = new stdClass(); $args->target_category_srl = 0; From d25cba6673d733bfaccfce359661c0329f3b1666 Mon Sep 17 00:00:00 2001 From: akasima Date: Wed, 19 Feb 2014 14:13:00 +0900 Subject: [PATCH 202/549] #498 document table's cache delete.. mod some code --- modules/document/document.controller.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index f02019eb22..5d56ca2c27 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -1406,6 +1406,7 @@ function deleteCategory($category_srl) while(true) { $args = new stdClass(); $args->category_srl = $category_srl; + $args->list_count = 100; $args->page = ++$page; $output = executeQuery('document.getDocumentList', $args, array('document_srl')); @@ -1414,9 +1415,8 @@ function deleteCategory($category_srl) foreach($output->data as $val) { - $document_srl = $val->document_srl; //remove document item from cache - $cache_key = 'document_item:'. getNumberingPath($document_srl) . $document_srl; + $cache_key = 'document_item:'. getNumberingPath($val->document_srl) . $val->document_srl; $oCacheHandler->delete($cache_key); } } From 46396284c48ce414f3735f5619a90845fbd49f7e Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 28 Feb 2014 23:42:42 +0900 Subject: [PATCH 203/549] =?UTF-8?q?fix=20#540=20=ED=9C=B4=EC=A7=80?= =?UTF-8?q?=ED=86=B5=EC=9C=BC=EB=A1=9C=20=EC=9D=B4=EB=8F=99=ED=95=9C=20?= =?UTF-8?q?=EA=B8=80=EC=9D=98=20cache=EB=A5=BC=20=EC=82=AD=EC=A0=9C?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=B0=94=EB=A1=9C=20=EC=9E=A1?= =?UTF-8?q?=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/document/document.controller.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index 5d56ca2c27..3c8f0e9dd6 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -801,6 +801,8 @@ function moveDocumentToTrash($obj) $oCacheHandler = CacheHandler::getInstance('object'); if($oCacheHandler->isSupport()) { + $cache_key = 'document_item:'. getNumberingPath($oDocument->document_srl) . $oDocument->document_srl; + $oCacheHandler->delete($cache_key); } return $output; From 0890387908ea48b6cfbaa0379e5918a889b3d79e Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 18 Feb 2014 18:18:23 +0900 Subject: [PATCH 204/549] =?UTF-8?q?#494=20=EB=B9=84=EB=B0=80=EB=B2=88?= =?UTF-8?q?=ED=98=B8=20=EC=B0=BE=EA=B8=B0=20=EC=A7=88=EB=AC=B8=ED=95=AD?= =?UTF-8?q?=EB=AA=A9=20=EB=AC=B8=EC=A0=9C=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/member/skins/default/find_member_account.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/member/skins/default/find_member_account.html b/modules/member/skins/default/find_member_account.html index 70c166b9bb..b80312c3ba 100644 --- a/modules/member/skins/default/find_member_account.html +++ b/modules/member/skins/default/find_member_account.html @@ -41,7 +41,7 @@

    {$lang->cmd_find_member_account_with_email_question}

    From c558dbc713deb4c5eaaced6fc3efe8025ac1005a Mon Sep 17 00:00:00 2001 From: bnu Date: Sun, 9 Feb 2014 15:25:17 +0900 Subject: [PATCH 205/549] =?UTF-8?q?warning=20=EB=A9=94=EC=8B=9C=EC=A7=80?= =?UTF-8?q?=EB=A5=BC=20=ED=91=9C=EC=8B=9C=ED=95=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/config.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.inc.php b/config/config.inc.php index 6304f6245f..72080042eb 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -9,11 +9,11 @@ */ if(version_compare(PHP_VERSION, '5.4.0', '<')) { - @error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED); + @error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED ^ E_WARNING); } else { - @error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED ^ E_STRICT); + @error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED ^ E_WARNING ^ E_STRICT); } if(!defined('__XE__')) From 809a52679759082082a74a207fe351a2ff6330bb Mon Sep 17 00:00:00 2001 From: bnu Date: Sat, 8 Feb 2014 12:31:03 +0900 Subject: [PATCH 206/549] =?UTF-8?q?fix=20#416=20PHP=205.3.6=20=EC=9D=B4?= =?UTF-8?q?=EC=83=81=EC=97=90=EC=84=9C=EB=A7=8C=20=EC=82=AC=EC=9A=A9=20?= =?UTF-8?q?=EA=B0=80=EB=8A=A5=ED=95=9C=20=EC=83=81=EC=88=98=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/db/DB.class.php | 2 +- config/func.inc.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/db/DB.class.php b/classes/db/DB.class.php index f23320576b..25a7cdb102 100644 --- a/classes/db/DB.class.php +++ b/classes/db/DB.class.php @@ -447,7 +447,7 @@ function actFinish() $log['act'] = Context::get('act'); $log['time'] = date('Y-m-d H:i:s'); - $bt = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); + $bt = debug_backtrace(); foreach($bt as $no => $call) { if($call['function'] == 'executeQuery' || $call['function'] == 'executeQueryArray') diff --git a/config/func.inc.php b/config/func.inc.php index a3fe25156b..a2c4c4d075 100644 --- a/config/func.inc.php +++ b/config/func.inc.php @@ -758,7 +758,7 @@ function debugPrint($debug_output = NULL, $display_option = TRUE, $file = '_debu } static $firephp; - $bt = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); + $bt = debug_backtrace(); if(is_array($bt)) { $bt_debug_print = array_shift($bt); From 30a216a044c35744b2c4400d946a41f5f4c89ec8 Mon Sep 17 00:00:00 2001 From: bnu Date: Thu, 13 Mar 2014 13:02:51 +0900 Subject: [PATCH 207/549] =?UTF-8?q?fix=20#571=20`document.updateReadedCoun?= =?UTF-8?q?t`=20=ED=8A=B8=EB=A6=AC=EA=B1=B0=EA=B0=80=20=EC=9E=98=EB=AA=BB?= =?UTF-8?q?=20=EC=84=A4=EC=A0=95=EB=90=9C=20=EB=AC=B8=EC=A0=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20-=20after=20=ED=8A=B8=EB=A6=AC=EA=B1=B0=EC=9D=98=20?= =?UTF-8?q?=EC=9C=84=EC=B9=98=20=EC=A1=B0=EC=A0=95=20=EB=B0=8F=20before=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20-=20=ED=8A=B8=EB=9E=9C=EC=9E=AD=EC=85=98?= =?UTF-8?q?=20=EC=B2=98=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/document/document.controller.php | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index 3c8f0e9dd6..6029c7fcf2 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -818,9 +818,10 @@ function updateReadedCount(&$oDocument) $document_srl = $oDocument->document_srl; $member_srl = $oDocument->get('member_srl'); $logged_info = Context::get('logged_info'); - // Call a trigger when the read count is updated (after) - $output = ModuleHandler::triggerCall('document.updateReadedCount', 'after', $oDocument); - if(!$output->toBool()) return $output; + + // Call a trigger when the read count is updated (before) + $trigger_output = ModuleHandler::triggerCall('document.updateReadedCount', 'before', $oDocument); + if(!$trigger_output->toBool()) return $trigger_output; // Pass if read count is increaded on the session information if($_SESSION['readed_document'][$document_srl]) return false; @@ -837,11 +838,25 @@ function updateReadedCount(&$oDocument) $_SESSION['readed_document'][$document_srl] = true; return false; } + + $oDB = DB::getInstance(); + $oDB->begin(); + // Update read counts $args = new stdClass; $args->document_srl = $document_srl; $output = executeQuery('document.updateReadedCount', $args); + // Call a trigger when the read count is updated (after) + $outptrigger_outputut = ModuleHandler::triggerCall('document.updateReadedCount', 'after', $oDocument); + if(!$trigger_output->toBool()) + { + $oDB->rollback(); + return $trigger_output; + } + + $oDB->commit(); + $oCacheHandler = CacheHandler::getInstance('object'); if($oCacheHandler->isSupport()) { From a95ada55b19065190f1d8b38e9c3566d7a1b89d2 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 14 Mar 2014 10:09:56 +0900 Subject: [PATCH 208/549] =?UTF-8?q?fix=20#572=20debugPrint()=20=EB=B0=8F?= =?UTF-8?q?=20=EB=A1=9C=EA=B7=B8(DEBUG=20&=202)=EC=97=90=20memory=5Fget=5F?= =?UTF-8?q?peak=5Fusage()=20=EA=B0=92=EC=9D=84=20=ED=91=9C=EC=8B=9C?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/display/DisplayHandler.class.php | 5 +++-- config/func.inc.php | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/classes/display/DisplayHandler.class.php b/classes/display/DisplayHandler.class.php index 5e91735487..a0559455e6 100644 --- a/classes/display/DisplayHandler.class.php +++ b/classes/display/DisplayHandler.class.php @@ -164,12 +164,13 @@ function _debugOutput() array( 'Request / Response info >>> ' . $_SERVER['REQUEST_METHOD'] . ' / ' . Context::getResponseMethod(), array( - array('Request URI', 'Request method', 'Response method', 'Response contents size'), + array('Request URI', 'Request method', 'Response method', 'Response contents size', 'Memory peak usage'), array( sprintf("%s:%s%s%s%s", $_SERVER['SERVER_NAME'], $_SERVER['SERVER_PORT'], $_SERVER['PHP_SELF'], $_SERVER['QUERY_STRING'] ? '?' : '', $_SERVER['QUERY_STRING']), $_SERVER['REQUEST_METHOD'], Context::getResponseMethod(), - $this->content_size . ' byte' + $this->content_size . ' byte', + FileHandler::filesize(memory_get_peak_usage()) ) ) ), diff --git a/config/func.inc.php b/config/func.inc.php index a2c4c4d075..6de5b1df7c 100644 --- a/config/func.inc.php +++ b/config/func.inc.php @@ -776,7 +776,7 @@ function debugPrint($debug_output = NULL, $display_option = TRUE, $file = '_debu } $type = FirePHP::INFO; - $label = sprintf('[%s:%d] %s() (m:%s)', $file_name, $line_num, $function, FileHandler::filesize(memory_get_usage())); + $label = sprintf('[%s:%d] %s() (Memory usage: current=%s, peak=%s)', $file_name, $line_num, $function, FileHandler::filesize(memory_get_usage()), FileHandler::filesize(memory_get_peak_usage())); // Check a FirePHP option if($display_option === 'TABLE') From 7ddc15ccb8263979d7e8237bbee9a68a0c690063 Mon Sep 17 00:00:00 2001 From: akasima Date: Fri, 14 Mar 2014 13:45:07 +0900 Subject: [PATCH 209/549] #573 fix resize_image addon --- addons/resize_image/resize_image.addon.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/resize_image/resize_image.addon.php b/addons/resize_image/resize_image.addon.php index 99c23ea56f..7ec0507bb0 100644 --- a/addons/resize_image/resize_image.addon.php +++ b/addons/resize_image/resize_image.addon.php @@ -9,7 +9,7 @@ * @author NAVER (developers@xpressengine.com) * @brief Add-on to resize images in the body */ -if($called_position == 'after_module_proc' && Context::getResponseMethod() == "HTML" || !isCrawler()) +if($called_position == 'after_module_proc' && (Context::getResponseMethod() == "HTML" || !isCrawler())) { if(Mobile::isFromMobilePhone()) { From 9bfa6a5a6e2e579bd8f025b621caddc41439cbf5 Mon Sep 17 00:00:00 2001 From: SMaker Date: Sat, 15 Mar 2014 23:12:27 +0900 Subject: [PATCH 210/549] =?UTF-8?q?=EC=B2=A8=EB=B6=80=20=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=20=EC=84=A4=EC=A0=95=20=EC=A0=80=EC=9E=A5=20=EC=8B=9C=20Warnin?= =?UTF-8?q?g=20=EC=97=90=EB=9F=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/file/file.admin.controller.php | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/file/file.admin.controller.php b/modules/file/file.admin.controller.php index a3f4604898..6f8dfe2cd5 100644 --- a/modules/file/file.admin.controller.php +++ b/modules/file/file.admin.controller.php @@ -122,6 +122,7 @@ function procFileAdminInsertModuleConfig() $download_grant = Context::get('download_grant'); + $file_config = new stdClass; $file_config->allow_outlink = Context::get('allow_outlink'); $file_config->allow_outlink_format = Context::get('allow_outlink_format'); $file_config->allow_outlink_site = Context::get('allow_outlink_site'); From 1729c87aa77967cd32a87d2ee21990004764547b Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 18 Mar 2014 14:04:42 +0900 Subject: [PATCH 211/549] =?UTF-8?q?#464=20=EA=B4=80=EB=A6=AC=EC=9E=90=20>?= =?UTF-8?q?=20=EC=9D=BC=EB=B0=98=20>=20=ED=99=88=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EB=8B=A4=EA=B5=AD=EC=96=B4=20=ED=91=9C=EC=8B=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/module/module.model.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/module/module.model.php b/modules/module/module.model.php index f2c42543e4..56f52caa59 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -402,6 +402,9 @@ function getModuleInfoByModuleSrl($module_srl, $columnList = array()) } else $module_info = $mid_info; + $oModuleController = getController('module'); + $oModuleController->replaceDefinedLangCode($module_info->browser_title); + return $this->addModuleExtraVars($module_info); } From 43fa3c0263c8481cb8a5f81a274634ebf91e5d13 Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 18 Mar 2014 17:06:11 +0900 Subject: [PATCH 212/549] =?UTF-8?q?#580=20=EA=B4=80=EB=A6=AC=EC=9E=90>?= =?UTF-8?q?=EC=BB=A8=ED=85=90=EC=B8=A0=EC=9D=98=20=EB=AC=B8=EC=84=9C/?= =?UTF-8?q?=EB=8C=93=EA=B8=80=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=EC=97=90=20?= =?UTF-8?q?=EB=AA=A8=EB=93=88=20=EC=A0=95=EB=B3=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/comment/comment.admin.view.php | 27 +++++++++++++++++++++++- modules/comment/tpl/comment_list.html | 7 +++++- modules/document/document.admin.view.php | 26 ++++++++++++++++++++++- modules/document/tpl/document_list.html | 6 +++++- 4 files changed, 62 insertions(+), 4 deletions(-) diff --git a/modules/comment/comment.admin.view.php b/modules/comment/comment.admin.view.php index 989007633f..3cb1659973 100644 --- a/modules/comment/comment.admin.view.php +++ b/modules/comment/comment.admin.view.php @@ -52,7 +52,7 @@ function dispCommentAdminList() // get a list by using comment->getCommentList. $oCommentModel = getModel('comment'); $secretNameList = $oCommentModel->getSecretNameList(); - $columnList = array('comment_srl', 'document_srl', 'is_secret', 'status', 'content', 'comments.member_srl', 'comments.nick_name', 'comments.regdate', 'ipaddress', 'voted_count', 'blamed_count'); + $columnList = array('comment_srl', 'document_srl','module_srl','is_secret', 'status', 'content', 'comments.member_srl', 'comments.nick_name', 'comments.regdate', 'ipaddress', 'voted_count', 'blamed_count'); $output = $oCommentModel->getTotalCommentList($args, $columnList); // $modules = $oCommentModel->getDistinctModules(); @@ -66,6 +66,31 @@ function dispCommentAdminList() // Context::set('modules_list', $modules_list); Context::set('page_navigation', $output->page_navigation); Context::set('secret_name_list', $secretNameList); + + $oModuleModel = getModel('module'); + $module_list = array(); + $mod_srls = array(); + foreach($output->data as $val) + { + $mod_srls[] = $val->module_srl; + } + $mod_srls = array_unique($mod_srls); + // Module List + $mod_srls_count = count($mod_srls); + if($mod_srls_count) + { + $columnList = array('module_srl', 'mid', 'browser_title'); + $module_output = $oModuleModel->getModulesInfo($mod_srls, $columnList); + if($module_output && is_array($module_output)) + { + foreach($module_output as $module) + { + $module_list[$module->module_srl] = $module; + } + } + } + Context::set('module_list', $module_list); + // set the template $this->setTemplatePath($this->module_path . 'tpl'); $this->setTemplateFile('comment_list'); diff --git a/modules/comment/tpl/comment_list.html b/modules/comment/tpl/comment_list.html index a4f8376198..40f8be1283 100644 --- a/modules/comment/tpl/comment_list.html +++ b/modules/comment/tpl/comment_list.html @@ -47,7 +47,12 @@
  • {@ $comment = $val->getContentText(200)} - + diff --git a/modules/document/document.admin.view.php b/modules/document/document.admin.view.php index 2397f2eb12..98547a8e61 100644 --- a/modules/document/document.admin.view.php +++ b/modules/document/document.admin.view.php @@ -50,7 +50,7 @@ function dispDocumentAdminList() // get a list $oDocumentModel = getModel('document'); - $columnList = array('document_srl', 'title', 'member_srl', 'nick_name', 'readed_count', 'voted_count', 'blamed_count', 'regdate', 'ipaddress', 'status'); + $columnList = array('document_srl', 'module_srl', 'title', 'member_srl', 'nick_name', 'readed_count', 'voted_count', 'blamed_count', 'regdate', 'ipaddress', 'status'); $output = $oDocumentModel->getDocumentList($args, false, true, $columnList); // get Status name list @@ -72,6 +72,30 @@ function dispDocumentAdminList() } Context::set('search_option', $search_option); + $oModuleModel = getModel('module'); + $module_list = array(); + $mod_srls = array(); + foreach($output->data as $oDocument) + { + $mod_srls[] = $oDocument->get('module_srl'); + } + $mod_srls = array_unique($mod_srls); + // Module List + $mod_srls_count = count($mod_srls); + if($mod_srls_count) + { + $columnList = array('module_srl', 'mid', 'browser_title'); + $module_output = $oModuleModel->getModulesInfo($mod_srls, $columnList); + if($module_output && is_array($module_output)) + { + foreach($module_output as $module) + { + $module_list[$module->module_srl] = $module; + } + } + } + Context::set('module_list', $module_list); + // Specify a template $this->setTemplatePath($this->module_path.'tpl'); $this->setTemplateFile('document_list'); diff --git a/modules/document/tpl/document_list.html b/modules/document/tpl/document_list.html index ba533796df..d9eca400eb 100644 --- a/modules/document/tpl/document_list.html +++ b/modules/document/tpl/document_list.html @@ -48,7 +48,11 @@

    {$lang->document} $no, $oDocument"> -

    + From 01edb968d123fd85f356d86fe4c975eee0137cf3 Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 18 Mar 2014 19:00:46 +0900 Subject: [PATCH 213/549] =?UTF-8?q?#495=20=EA=B2=8C=EC=8B=9C=ED=8C=90=20?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=EC=97=90=EA=B2=8C=20=EB=85=B8?= =?UTF-8?q?=EC=B6=9C=20=EB=90=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/document/document.model.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/modules/document/document.model.php b/modules/document/document.model.php index b379c1202a..faaa56606c 100644 --- a/modules/document/document.model.php +++ b/modules/document/document.model.php @@ -520,6 +520,13 @@ function getDocumentMenu() $oDocumentController->addDocumentPopupMenu($url,'cmd_print','','printDocument'); // Call a trigger (after) ModuleHandler::triggerCall('document.getDocumentMenu', 'after', $menu_list); + if($this->grant->manager) + { + $str_confirm = Context::getLang('cmd_document_do') . Context::getLang('confirm_delete'); + $url = sprintf("if(!confirm('%s')) return; var params = new Array(); params['document_srl']='%s'; params['mid']=current_mid;params['cur_url']=current_url; exec_xml('document', 'procDocumentAdminMoveToTrash', params)", $str_confirm, $document_srl); + $oDocumentController->addDocumentPopupMenu($url,'cmd_trash','','javascript'); + } + // If you are managing to find posts by ip if($logged_info->is_admin == 'Y') { @@ -528,10 +535,6 @@ function getDocumentMenu() if($oDocument->isExists()) { - $str_confirm = Context::getLang('cmd_document_do') . Context::getLang('confirm_delete'); - $url = sprintf("if(!confirm('%s')) return; var params = new Array(); params['document_srl']='%s'; params['mid']=current_mid;params['cur_url']=current_url; exec_xml('document', 'procDocumentAdminMoveToTrash', params)", $str_confirm, $document_srl); - $oDocumentController->addDocumentPopupMenu($url,'cmd_trash','','javascript'); - // Find a post equivalent to ip address $url = getUrl('','module','admin','act','dispDocumentAdminList','search_target','ipaddress','search_keyword',$oDocument->getIpAddress()); $oDocumentController->addDocumentPopupMenu($url,'cmd_search_by_ipaddress',$icon_path,'TraceByIpaddress'); From c05bceccf20383926e3e30c1a7afc8fedca882b4 Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 18 Mar 2014 19:10:27 +0900 Subject: [PATCH 214/549] =?UTF-8?q?#495=20confirm=20=EB=AC=B8=EA=B5=AC=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/document/document.model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/document/document.model.php b/modules/document/document.model.php index faaa56606c..8723577cd3 100644 --- a/modules/document/document.model.php +++ b/modules/document/document.model.php @@ -522,7 +522,7 @@ function getDocumentMenu() ModuleHandler::triggerCall('document.getDocumentMenu', 'after', $menu_list); if($this->grant->manager) { - $str_confirm = Context::getLang('cmd_document_do') . Context::getLang('confirm_delete'); + $str_confirm = Context::getLang('confirm_move'); $url = sprintf("if(!confirm('%s')) return; var params = new Array(); params['document_srl']='%s'; params['mid']=current_mid;params['cur_url']=current_url; exec_xml('document', 'procDocumentAdminMoveToTrash', params)", $str_confirm, $document_srl); $oDocumentController->addDocumentPopupMenu($url,'cmd_trash','','javascript'); } From 2e96c67571ae7f6277107de9883132684be23da5 Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 18 Mar 2014 21:46:42 +0900 Subject: [PATCH 215/549] =?UTF-8?q?#581=20=EB=8C=93=EA=B8=80=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=20'=ED=9C=B4=EC=A7=80=ED=86=B5'=20=EC=9D=B4=EB=8F=99?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/comment/comment.admin.controller.php | 29 ++++++++++++++++++++ modules/comment/comment.model.php | 7 +++++ modules/comment/conf/module.xml | 2 ++ 3 files changed, 38 insertions(+) diff --git a/modules/comment/comment.admin.controller.php b/modules/comment/comment.admin.controller.php index 7f67371329..019c6b52ae 100644 --- a/modules/comment/comment.admin.controller.php +++ b/modules/comment/comment.admin.controller.php @@ -340,6 +340,35 @@ function _moveCommentToTrash($commentSrlList, &$oCommentController, &$oDB, $mess } } + /** + * @fn procCommentAdminMoveToTrash + * @brief move a comment to trash + * @see commentModel::getCommentMenu + */ + function procCommentAdminMoveToTrash() + { + $oDB = DB::getInstance(); + $oDB->begin(); + + $comment_srl = Context::get('comment_srl'); + $oCommentModel = getModel('comment'); + $oCommentController = getController('comment'); + $oComment = $oCommentModel->getComment($comment_srl, false); + + if(!$oComment->isGranted()) return $this->stop('msg_not_permitted'); + + $message_content = ""; + $this->_moveCommentToTrash(array($comment_srl), $oCommentController, $oDB, $message_content); + + $isTrash = true; + $output = $oCommentController->deleteComment($comment_srl, TRUE, $isTrash); + + $oDB->commit(); + + $returnUrl = Context::get('cur_url'); + $this->add('redirect_url', $returnUrl); + } + /** * Cancel the blacklist of abused comments reported by other users * @return void|object diff --git a/modules/comment/comment.model.php b/modules/comment/comment.model.php index 9d5439a134..3dbb57a1a9 100644 --- a/modules/comment/comment.model.php +++ b/modules/comment/comment.model.php @@ -76,6 +76,13 @@ function getCommentMenu() // call a trigger (after) ModuleHandler::triggerCall('comment.getCommentMenu', 'after', $menu_list); + if($this->grant->manager){ + $str_confirm = Context::getLang('confirm_move'); + $url = sprintf("if(!confirm('%s')) return; var params = new Array(); params['comment_srl']='%s'; params['mid']=current_mid;params['cur_url']=current_url; exec_xml('comment', 'procCommentAdminMoveToTrash', params)", $str_confirm, $comment_srl); + $oCommentController->addCommentPopupMenu($url,'cmd_trash','','javascript'); + + } + // find a comment by IP matching if an administrator. if($logged_info->is_admin == 'Y') { diff --git a/modules/comment/conf/module.xml b/modules/comment/conf/module.xml index 83f3e20735..960344c373 100644 --- a/modules/comment/conf/module.xml +++ b/modules/comment/conf/module.xml @@ -4,6 +4,7 @@ + @@ -21,6 +22,7 @@ + From 5e8c58b3f09c7a3ee3802d9dbac8159002d6b77b Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 18 Mar 2014 22:12:11 +0900 Subject: [PATCH 216/549] =?UTF-8?q?#580=20=ED=9C=B4=EC=A7=80=ED=86=B5=20?= =?UTF-8?q?=EB=A6=AC=EC=8A=A4=ED=8A=B8=EC=97=90=20=EB=AA=A8=EB=93=88=20?= =?UTF-8?q?=EC=A0=95=EB=B3=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/trash/model/TrashVO.php | 9 +++++++++ modules/trash/tpl/trash_list.html | 7 ++++++- modules/trash/trash.admin.view.php | 25 +++++++++++++++++++++++++ modules/trash/trash.model.php | 1 + 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/modules/trash/model/TrashVO.php b/modules/trash/model/TrashVO.php index 98296387de..f7b62dbe79 100644 --- a/modules/trash/model/TrashVO.php +++ b/modules/trash/model/TrashVO.php @@ -6,6 +6,7 @@ class TrashVO var $title; var $originModule; var $serializedObject; + var $unserializedObject; var $description; var $ipaddress; var $removerSrl; @@ -47,6 +48,14 @@ function setSerializedObject($serializedObject) { $this->serializedObject = $serializedObject; } + function getUnserializedObject() + { + return $this->unserializedObject; + } + function setUnserializedObject($serializedObject) + { + $this->unserializedObject = unserialize($serializedObject); + } function getDescription() { return htmlspecialchars($this->description, ENT_COMPAT | ENT_HTML401, 'UTF-8', false); diff --git a/modules/trash/tpl/trash_list.html b/modules/trash/tpl/trash_list.html index add8cec8a4..64393fdb1f 100644 --- a/modules/trash/tpl/trash_list.html +++ b/modules/trash/tpl/trash_list.html @@ -41,7 +41,12 @@

    {$lang->trash} $no, $oTrashVO">

    diff --git a/modules/trash/trash.admin.view.php b/modules/trash/trash.admin.view.php index cb5d2b7663..459a24beab 100644 --- a/modules/trash/trash.admin.view.php +++ b/modules/trash/trash.admin.view.php @@ -48,6 +48,31 @@ function dispTrashAdminList() Context::set('page', $output->page); Context::set('page_navigation', $output->page_navigation); + $oModuleModel = getModel('module'); + $module_list = array(); + $mod_srls = array(); + foreach($output->data as $oTrashVO) + { + $mod_srls[] = $oTrashVO->unserializedObject['module_srl']; + } + $mod_srls = array_unique($mod_srls); + // Module List + $mod_srls_count = count($mod_srls); + if($mod_srls_count) + { + $columnList = array('module_srl', 'mid', 'browser_title'); + $module_output = $oModuleModel->getModulesInfo($mod_srls, $columnList); + if($module_output && is_array($module_output)) + { + foreach($module_output as $module) + { + $module_list[$module->module_srl] = $module; + } + } + } + + Context::set('module_list', $module_list); + // 템플릿 파일 지정 $this->setTemplateFile('trash_list'); } diff --git a/modules/trash/trash.model.php b/modules/trash/trash.model.php index 9185d0e514..c56a593495 100644 --- a/modules/trash/trash.model.php +++ b/modules/trash/trash.model.php @@ -87,6 +87,7 @@ function _setTrashObject(&$oTrashVO, $stdObject) $oTrashVO->setTitle($stdObject->title); $oTrashVO->setOriginModule($stdObject->origin_module); $oTrashVO->setSerializedObject($stdObject->serialized_object); + $oTrashVO->setUnserializedObject($stdObject->serialized_object); $oTrashVO->setDescription($stdObject->description); $oTrashVO->setIpaddress($stdObject->ipaddress); $oTrashVO->setRemoverSrl($stdObject->remover_srl); From 1309ad4807fe214a5aca24f1d3e90a8dd53737c4 Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 18 Mar 2014 22:53:16 +0900 Subject: [PATCH 217/549] =?UTF-8?q?#374=20=EB=8C=93=EA=B8=80=20=ED=9C=B4?= =?UTF-8?q?=EC=A7=80=ED=86=B5=20=EC=9D=B4=EB=8F=99=20=EC=8B=9C=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=82=AD=EC=A0=9C=20=EC=95=88=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/comment/comment.controller.php | 9 +++++++++ modules/file/file.controller.php | 2 ++ 2 files changed, 11 insertions(+) diff --git a/modules/comment/comment.controller.php b/modules/comment/comment.controller.php index 0a64b1c06b..e1021c0af3 100644 --- a/modules/comment/comment.controller.php +++ b/modules/comment/comment.controller.php @@ -843,18 +843,27 @@ function deleteComment($comment_srl, $is_admin = FALSE, $isMoveToTrash = FALSE) // call a trigger (after) if($output->toBool()) { + $comment->isMoveToTrash = $isMoveToTrash; $trigger_output = ModuleHandler::triggerCall('comment.deleteComment', 'after', $comment); if(!$trigger_output->toBool()) { $oDB->rollback(); return $trigger_output; } + unset($comment->isMoveToTrash); } if(!$isMoveToTrash) { $this->_deleteDeclaredComments($args); $this->_deleteVotedComments($args); + } + else + { + $args = new stdClass(); + $args->upload_target_srl = $comment_srl; + $args->isvalid = 'N'; + $output = executeQuery('file.updateFileValid', $args); } // commit diff --git a/modules/file/file.controller.php b/modules/file/file.controller.php index 1fc017e6b0..6c27cea0fa 100644 --- a/modules/file/file.controller.php +++ b/modules/file/file.controller.php @@ -518,6 +518,8 @@ function triggerCommentDeleteAttached(&$obj) $comment_srl = $obj->comment_srl; if(!$comment_srl) return new Object(); + if($obj->isMoveToTrash) return new Object(); + $output = $this->deleteFiles($comment_srl); return $output; } From a6915bbed8ff4f99503e81fe133c1ccc1f629674 Mon Sep 17 00:00:00 2001 From: sejin7940 Date: Wed, 19 Mar 2014 14:12:54 +0900 Subject: [PATCH 218/549] =?UTF-8?q?fix=20#551=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EB=AA=A8=EB=93=88=EC=97=90=EC=84=9C=20=EB=8B=A4?= =?UTF-8?q?=EA=B5=AD=EC=96=B4=20=EB=AC=B8=EC=84=9C=20=EC=A0=81=EC=9A=A9?= =?UTF-8?q?=EC=9D=B4=20=EC=95=88=20=EB=90=98=EB=8A=94=20=EB=AC=B8=EC=A0=9C?= =?UTF-8?q?=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/document/document.item.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/document/document.item.php b/modules/document/document.item.php index ed1a913a61..174c5fa5cc 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -139,13 +139,13 @@ function setAttribute($attribute, $load_extra_vars=true) } $oDocumentModel = getModel('document'); + $GLOBALS['XE_DOCUMENT_LIST'][$this->document_srl] = $this; if($load_extra_vars) { $oDocumentModel->getDocumentExtraVarsFromDB($this->document_srl); $this->add('title', $this->get('title')); $this->add('content', $this->get('content')); } - $GLOBALS['XE_DOCUMENT_LIST'][$this->document_srl] = $this; } function isExists() From 2013e4af35ef044084b616f9e1cdb6f55672ca9c Mon Sep 17 00:00:00 2001 From: bnu Date: Wed, 19 Mar 2014 14:57:58 +0900 Subject: [PATCH 219/549] =?UTF-8?q?fix=20#551=20#470=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EB=AA=A8=EB=93=88=EC=97=90=EC=84=9C=20=EB=8B=A4?= =?UTF-8?q?=EA=B5=AD=EC=96=B4=20=EB=AC=B8=EC=84=9C=20=EC=A0=81=EC=9A=A9?= =?UTF-8?q?=EC=9D=B4=20=EC=95=88=20=EB=90=98=EB=8A=94=20=EB=AC=B8=EC=A0=9C?= =?UTF-8?q?=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/document/document.item.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/document/document.item.php b/modules/document/document.item.php index 174c5fa5cc..379931909b 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -139,13 +139,12 @@ function setAttribute($attribute, $load_extra_vars=true) } $oDocumentModel = getModel('document'); - $GLOBALS['XE_DOCUMENT_LIST'][$this->document_srl] = $this; if($load_extra_vars) { - $oDocumentModel->getDocumentExtraVarsFromDB($this->document_srl); - $this->add('title', $this->get('title')); - $this->add('content', $this->get('content')); + $GLOBALS['XE_DOCUMENT_LIST'][$attribute->document_srl] = $this; + $oDocumentModel->setToAllDocumentExtraVars(); } + $GLOBALS['XE_DOCUMENT_LIST'][$this->document_srl] = $this; } function isExists() From 3af00e8f77793e246c521365e24cc21c39f85dc4 Mon Sep 17 00:00:00 2001 From: bnu Date: Wed, 19 Mar 2014 15:07:06 +0900 Subject: [PATCH 220/549] =?UTF-8?q?fix=20#587=20content=20=EC=9C=84?= =?UTF-8?q?=EC=A0=AF=EC=97=90=EC=84=9C=20colorset=EC=9D=84=20=EC=84=A0?= =?UTF-8?q?=ED=83=9D=ED=95=98=EC=A7=80=20=EC=95=8A=EC=95=98=EC=9D=84=20?= =?UTF-8?q?=EB=95=8C=20=EA=B8=B0=EB=B3=B8=20=EC=8A=A4=ED=83=80=EC=9D=BC?= =?UTF-8?q?=EC=9D=B4=20=EC=A0=81=EC=9A=A9=EB=90=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- widgets/content/skins/default/content.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/widgets/content/skins/default/content.html b/widgets/content/skins/default/content.html index 9285624a78..0a52b7cc63 100644 --- a/widgets/content/skins/default/content.html +++ b/widgets/content/skins/default/content.html @@ -1,7 +1,7 @@ - + -
    black"> +
    From 6bf0bdc1460d699d9a8984914ecf7e7c0ae8c12c Mon Sep 17 00:00:00 2001 From: akasima Date: Wed, 19 Mar 2014 16:15:05 +0900 Subject: [PATCH 221/549] =?UTF-8?q?#519=20ftp=EC=84=A4=EC=A0=95=EC=97=90?= =?UTF-8?q?=EC=84=9C=20passive=20=EB=AA=A8=EB=93=9C=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20=EB=AC=B8=EC=A0=9C=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/admin/admin.admin.model.php | 84 +++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/modules/admin/admin.admin.model.php b/modules/admin/admin.admin.model.php index d0c69a80df..1c863da8a0 100644 --- a/modules/admin/admin.admin.model.php +++ b/modules/admin/admin.admin.model.php @@ -95,6 +95,81 @@ function getSFTPPath() } } + function getFTPPath() + { + $ftp_info = Context::getRequestVars(); + + if(!$ftp_info->ftp_host) + { + $ftp_info->ftp_host = "127.0.0.1"; + } + + if(!$ftp_info->ftp_port || !is_numeric($ftp_info->ftp_port)) + { + $ftp_info->ftp_port = '22'; + } + + $connection = ftp_connect($ftp_info->ftp_host, $ftp_info->ftp_port); + if(!$connection) + { + return new Object(-1, sprintf(Context::getLang('msg_ftp_not_connected'), $ftp_host)); + } + + $login_result = @ftp_login($connection, $ftp_info->ftp_user, $ftp_info->ftp_password); + if(!$login_result) + { + ftp_close($connection); + return new Object(-1, 'msg_ftp_invalid_auth_info'); + } + + // create temp file + $pin = $_SERVER['REQUEST_TIME']; + FileHandler::writeFile('./files/cache/ftp_check', $pin); + + // create path candidate + $xe_path = _XE_PATH_; + $path_info = array_reverse(explode('/', _XE_PATH_)); + array_pop($path_info); // remove last '/' + $path_candidate = array(); + + $temp = ''; + foreach($path_info as $path) + { + $temp = '/' . $path . $temp; + $path_candidate[] = $temp; + } + + // try + foreach($path_candidate as $path) + { + // upload check file + if(!ftp_put($connection, $path . 'ftp_check.html', FileHandler::getRealPath('./files/cache/ftp_check'), FTP_BINARY)) + { + continue; + } + + // get check file + $result = FileHandler::getRemoteResource(getNotencodedFullUrl() . 'ftp_check.html'); + + // delete temp check file + ftp_delete($connection, $path . 'ftp_check.html'); + + // found + if($result == $pin) + { + $found_path = $path; + break; + } + } + + FileHandler::removeFile('./files/cache/ftp_check', $pin); + + if($found_path) + { + $this->add('found_path', $found_path); + } + } + /** * Find XE installed path on ftp */ @@ -130,6 +205,15 @@ function getAdminFTPPath() return $this->getSFTPPath(); } + if($ftp_info->ftp_pasv == 'N') + { + if(function_exists('ftp_connect')) + { + return $this->getFTPPath(); + } + $ftp_info->ftp_pasv = "Y"; + } + $oFTP = new ftp(); if(!$oFTP->ftp_connect($ftp_info->ftp_host, $ftp_info->ftp_port)) { From 041a28a0f851424e0e9eaf1aa98cc28ca0d0e7a6 Mon Sep 17 00:00:00 2001 From: khongchi Date: Wed, 19 Mar 2014 16:16:57 +0900 Subject: [PATCH 222/549] =?UTF-8?q?#461=20=EB=B0=B0=EC=97=B4=ED=83=80?= =?UTF-8?q?=EC=9E=85=EC=9D=98=20=ED=99=95=EC=9E=A5=EB=B3=80=EC=88=98?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EC=BD=A4=EB=A7=88(,)=EB=A5=BC=20=EA=B5=AC?= =?UTF-8?q?=EB=B6=84=EC=9E=90=EB=A1=9C=20=EC=9D=B8=EC=8B=9D=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/extravar/Extravar.class.php | 8 -------- 1 file changed, 8 deletions(-) diff --git a/classes/extravar/Extravar.class.php b/classes/extravar/Extravar.class.php index e56cc1517f..e7b40a2df4 100644 --- a/classes/extravar/Extravar.class.php +++ b/classes/extravar/Extravar.class.php @@ -238,10 +238,6 @@ function _getTypeValue($type, $value) { $values = explode('|@|', $value); } - elseif(strpos($value, ',') !== FALSE) - { - $values = explode(',', $value); - } else { $values = array($value); @@ -263,10 +259,6 @@ function _getTypeValue($type, $value) { $values = explode('|@|', $value); } - elseif(strpos($value, ',') !== false) - { - $values = explode(',', $value); - } else { $values = array($value); From 6e8c5bc3cada59079612d2cfcc10c340d7ddfe97 Mon Sep 17 00:00:00 2001 From: bnu Date: Wed, 19 Mar 2014 18:01:21 +0900 Subject: [PATCH 223/549] =?UTF-8?q?fix=20#78=20=EC=9C=84=EC=A0=AF=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=20=EC=8B=9C=20CSS=20class=20name=EC=9D=84=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=ED=95=A0=20=EC=88=98=20=EC=9E=88=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/css/xe.css | 4 + modules/page/tpl/js/page_admin.js | 116 +++++++++++++-------------- modules/widget/lang/lang.xml | 11 +++ modules/widget/tpl/js/widget.js | 45 +++++++---- modules/widget/tpl/widget_layer.html | 6 ++ modules/widget/widget.controller.php | 13 +-- 6 files changed, 115 insertions(+), 80 deletions(-) diff --git a/common/css/xe.css b/common/css/xe.css index c8c330fa6b..cdddb36052 100644 --- a/common/css/xe.css +++ b/common/css/xe.css @@ -45,6 +45,10 @@ a img { } } +.xe-widget-wrapper { + overflow: hidden; +} + /* Popup Menu Area */ #popup_menu_area { position: absolute; diff --git a/modules/page/tpl/js/page_admin.js b/modules/page/tpl/js/page_admin.js index 122544b664..218c141071 100644 --- a/modules/page/tpl/js/page_admin.js +++ b/modules/page/tpl/js/page_admin.js @@ -6,117 +6,117 @@ /* 모듈 생성 후 */ function completeInsertPage(ret_obj) { - var error = ret_obj['error']; - var message = ret_obj['message']; + var error = ret_obj['error']; + var message = ret_obj['message']; - var page = ret_obj['page']; - var module_srl = ret_obj['module_srl']; + var page = ret_obj['page']; + var module_srl = ret_obj['module_srl']; - alert(message); + alert(message); - var url = ''; - if(location.href.getQuery('module')=='admin') { - url = current_url.setQuery('module_srl',module_srl).setQuery('act','dispPageAdminInfo'); - if(page) url = url.setQuery('page',page); - } else { - url = current_url; - } + var url = ''; + if(location.href.getQuery('module')=='admin') { + url = current_url.setQuery('module_srl',module_srl).setQuery('act','dispPageAdminInfo'); + if(page) url = url.setQuery('page',page); + } else { + url = current_url; + } - location.href = url; + location.href = url; } function completeArticleDocumentInserted(ret_obj){ - var error = ret_obj['error']; - var message = ret_obj['message']; + var error = ret_obj['error']; + var message = ret_obj['message']; - var mid = ret_obj['mid']; + var mid = ret_obj['mid']; var is_mobile = ret_obj['is_mobile']; - alert(message); + alert(message); - var url = ''; + var url = ''; if(is_mobile == 'Y') - url = current_url.setQuery('act', 'dispPageAdminMobileContent').setQuery('mid', mid); + url = current_url.setQuery('act', 'dispPageAdminMobileContent').setQuery('mid', mid); else - url = current_url.setQuery('act', 'dispPageIndex').setQuery('mid', mid); + url = current_url.setQuery('act', 'dispPageIndex').setQuery('mid', mid); - location.href = url; + location.href = url; } /* 내용 저장 후 */ function completeInsertPageContent(ret_obj) { - var error = ret_obj['error']; - var message = ret_obj['message']; + var error = ret_obj['error']; + var message = ret_obj['message']; - var page = ret_obj['page']; - var module_srl = ret_obj['module_srl']; - var mid = ret_obj['mid']; + var page = ret_obj['page']; + var module_srl = ret_obj['module_srl']; + var mid = ret_obj['mid']; - location.href = current_url.setQuery('mid',mid).setQuery('act',''); + location.href = current_url.setQuery('mid',mid).setQuery('act',''); } function completeInsertMobilePageContent(ret_obj) { - var error = ret_obj['error']; - var message = ret_obj['message']; + var error = ret_obj['error']; + var message = ret_obj['message']; - var page = ret_obj['page']; - var module_srl = ret_obj['module_srl']; - var mid = ret_obj['mid']; + var page = ret_obj['page']; + var module_srl = ret_obj['module_srl']; + var mid = ret_obj['mid']; - location.href = current_url.setQuery('mid',mid).setQuery('act','dispPageAdminMobileContent'); + location.href = current_url.setQuery('mid',mid).setQuery('act','dispPageAdminMobileContent'); } /* 수정한 페이지 컨텐츠를 저장 */ function doSubmitPageContent(fo_obj) { - var html = getWidgetContent(); - fo_obj.content.value = html; - return procFilter(fo_obj, insert_page_content); + var html = getWidgetContent(); + fo_obj.content.value = html; + return procFilter(fo_obj, insert_page_content); } function doSubmitMPageContent(fo_obj) { - var html = getWidgetContent(); - fo_obj.content.value = html; - return procFilter(fo_obj, insert_mpage_content); + var html = getWidgetContent(); + fo_obj.content.value = html; + return procFilter(fo_obj, insert_mpage_content); } /* 모듈 삭제 후 */ function completeDeletePage(ret_obj) { - var error = ret_obj['error']; - var message = ret_obj['message']; - var page = ret_obj['page']; - alert(message); + var error = ret_obj['error']; + var message = ret_obj['message']; + var page = ret_obj['page']; + alert(message); - var url = current_url.setQuery('act','dispPageAdminContent').setQuery('module_srl',''); - if(page) url = url.setQuery('page',page); + var url = current_url.setQuery('act','dispPageAdminContent').setQuery('module_srl',''); + if(page) url = url.setQuery('page',page); - location.href = url; + location.href = url; } /* 위젯 재컴파일 */ function doRemoveWidgetCache(module_srl) { - var params = new Array(); - params["module_srl"] = module_srl; - exec_xml('page', 'procPageAdminRemoveWidgetCache', params, completeRemoveWidgetCache); + var params = new Array(); + params["module_srl"] = module_srl; + exec_xml('page', 'procPageAdminRemoveWidgetCache', params, completeRemoveWidgetCache); } function completeRemoveWidgetCache(ret_obj) { - var message = ret_obj['message']; - location.reload(); + var message = ret_obj['message']; + location.reload(); } /* 일괄 설정 */ function doCartSetup(url) { - var module_srl = new Array(); - jQuery('#fo_list input[name=cart]:checked').each(function() { - module_srl[module_srl.length] = jQuery(this).val(); - }); + var module_srl = new Array(); + jQuery('#fo_list input[name=cart]:checked').each(function() { + module_srl[module_srl.length] = jQuery(this).val(); + }); - if(module_srl.length<1) return; + if(module_srl.length<1) return; - url += "&module_srls="+module_srl.join(','); - popopen(url,'modulesSetup'); + url += "&module_srls="+module_srl.join(','); + popopen(url,'modulesSetup'); } jQuery(function($){ diff --git a/modules/widget/lang/lang.xml b/modules/widget/lang/lang.xml index c39fed2170..af32dbce10 100644 --- a/modules/widget/lang/lang.xml +++ b/modules/widget/lang/lang.xml @@ -443,6 +443,17 @@ Sin la necesidad de utilizar los módulos de página o del diseño de XE, Usted + + + + + + + + + + + diff --git a/modules/widget/tpl/js/widget.js b/modules/widget/tpl/js/widget.js index 8b2224d1e1..79b10bc6a3 100644 --- a/modules/widget/tpl/js/widget.js +++ b/modules/widget/tpl/js/widget.js @@ -193,9 +193,9 @@ function doSyncPageContent() { fo_obj.widget_padding_top.value = getPadding(sel_obj,'top'); var obj = sel_obj.firstChild; - while(obj && obj.className != "widgetContent") obj = obj.nextSibling; + while(obj && !jQuery(obj).hasClass("widgetContent")) obj = obj.nextSibling; - if(obj && obj.className == "widgetContent") { + if(obj && jQuery(obj).hasClass("widgetContent")) { if(!fo_obj.document_srl || fo_obj.document_srl.value == '0') { try { var content = Base64.decode(xInnerHtml(obj)); @@ -412,6 +412,7 @@ function doAddWidgetCode(widget_code) { function doCheckWidget(e) { var evt = new xEvent(e); if(!evt.target) return; var obj = evt.target; + var $obj = jQuery(obj); selectedWidget = null; @@ -423,7 +424,7 @@ function doCheckWidget(e) { doHideWidgetSizeSetup(); // 위젯 설정 - if(obj.className == 'widgetSetup') { + if($obj.hasClass('widgetSetup')) { var p_obj = obj.parentNode.parentNode; var widget = p_obj.getAttribute("widget"); if(!widget) return; @@ -433,7 +434,7 @@ function doCheckWidget(e) { return; // 위젯 스타일 - } else if(obj.className == 'widgetStyle') { + } else if($obj.hasClass('widgetStyle')) { /*jshint -W004*/ var p_obj = obj.parentNode.parentNode; var widget = p_obj.getAttribute("widget"); @@ -444,7 +445,7 @@ function doCheckWidget(e) { return; // 위젯 복사 - } else if(obj.className == 'widgetCopy' && obj.parentNode.parentNode.className == 'widgetOutput') { + } else if($obj.hasClass('widgetCopy') && jQuery(obj.parentNode.parentNode).hasClass('widgetOutput')) { /*jshint -W004*/ var p_obj = obj.parentNode.parentNode; restoreWidgetButtons(); @@ -460,7 +461,7 @@ function doCheckWidget(e) { xInnerHtml(dummy,xInnerHtml(p_obj)); dummy.widget_sequence = ''; - dummy.className = "widgetOutput"; + jQuery(dummy).hasClass("widgetOutput"); for(var i=0;i 0) return; doHideWidgetSizeSetup(); - if(obj.className == 'widgetSetup' || obj.className == 'widgetStyle' || obj.className == 'widgetCopy' || obj.className == 'widgetBoxCopy' || obj.className == 'widgetSize' || obj.className == 'widgetBoxSize' || obj.className == 'widgetRemove' || obj.className == 'widgetBoxRemove') return; + if($obj.hasClass('widgetSetup') || $obj.hasClass('widgetStyle') || $obj.hasClass('widgetCopy') || $obj.hasClass('widgetBoxCopy') || $obj.hasClass('widgetSize') || $obj.hasClass('widgetBoxSize') || $obj.hasClass('widgetRemove') || $obj.hasClass('widgetBoxRemove')) return; p_obj = obj; + var $p_obj = jQuery(obj); while(p_obj) { - if(p_obj.className == 'widgetOutput' || p_obj.className == 'widgetResize' || p_obj.className == 'widgetResizeLeft' || p_obj.className == 'widgetBoxResize' || p_obj.className == 'widgetBoxResizeLeft') { + if($p_obj.hasClass('widgetOutput') || $p_obj.hasClass('widgetResize') || $p_obj.hasClass('widgetResizeLeft') || $p_obj.hasClass('widgetBoxResize') || $p_obj.hasClass('widgetBoxResizeLeft')) { widgetDragEnable(p_obj, widgetDragStart, widgetDrag, widgetDragEnd); widgetMouseDown(e); return; @@ -585,12 +588,14 @@ function doShowWidgetSizeSetup(px, py, obj) { if (!form.length) return; selectedSizeWidget = obj[0]; + var $selectedSizeWidget = jQuery(selectedSizeWidget); var opts = { widget_align : obj.css('float'), - width : obj[0].style.width, - height : obj[0].style.height, + css_class : ($selectedSizeWidget.attr('css_class')) ? $selectedSizeWidget.attr('css_class') : '', + width : obj[0].style.width, + height : obj[0].style.height, padding_left : _getInt(obj.attr('widget_padding_left')), padding_right : _getInt(obj.attr('widget_padding_right')), @@ -740,6 +745,12 @@ function doApplyWidgetSize(fo_obj) { if(fo_obj.widget_align.selectedIndex == 1) setFloat(selectedSizeWidget, 'right'); else setFloat(selectedSizeWidget, 'left'); + var $form = jQuery(fo_obj); + var $selectedSizeWidget = jQuery(selectedSizeWidget); + + var css_class = $form.find('#css_class').val(); + if(css_class) $selectedSizeWidget.attr('css_class', css_class); + var width = _getSize(fo_obj.width.value); if(width) selectedSizeWidget.style.width = width; @@ -781,8 +792,9 @@ function doApplyWidgetSize(fo_obj) { selectedSizeWidget.style.backgroundPosition = fo_obj.background_x.value+' '+fo_obj.background_y.value; var borderObj = selectedSizeWidget.firstChild; + var $borderObj = jQuery(selectedSizeWidget.firstChild); while(borderObj) { - if(borderObj.nodeName == "DIV" && (borderObj.className == "widgetBorder" || borderObj.className == "widgetBoxBorder")) { + if(borderObj.nodeName == "DIV" && ($borderObj.hasClass("widgetBorder") || $borderObj.hasClass("widgetBoxBorder"))) { var contentObj = borderObj.firstChild; while(contentObj) { if(contentObj.nodeName == "DIV") { @@ -974,7 +986,8 @@ function widgetDragEnable(obj, funcDragStart, funcDrag, funcDragEnd) { // 드래그를 시작할때 호출되는 함수 (이동되는 형태를 보여주기 위한 작업을 함) function widgetDragStart(tobj, px, py) { - if(tobj.className == 'widgetResize' || tobj.className == 'widgetResizeLeft' || tobj.className == 'widgetBoxResize' || tobj.className == 'widgetBoxResizeLeft') return; + var $tobj = jQuery(tobj); + if($tobj.hasClass('widgetResize') || $tobj.hasClass('widgetResizeLeft') || $tobj.hasClass('widgetBoxResize') || $tobj.hasClass('widgetBoxResizeLeft')) return; var obj = widgetGetTmpObject(tobj); xInnerHtml(obj, xInnerHtml(tobj)); diff --git a/modules/widget/tpl/widget_layer.html b/modules/widget/tpl/widget_layer.html index 4089da89d5..9afbdd1be5 100644 --- a/modules/widget/tpl/widget_layer.html +++ b/modules/widget/tpl/widget_layer.html @@ -9,6 +9,12 @@

    {$lang->cmd_widget_size}

    + + + + - + diff --git a/widgets/content/skins/default/image_title_content.html b/widgets/content/skins/default/image_title_content.html index dd54b3e0c7..6fc83a5f36 100644 --- a/widgets/content/skins/default/image_title_content.html +++ b/widgets/content/skins/default/image_title_content.html @@ -59,7 +59,7 @@

    - {$item->getNickName()} + {$item->getNickName($widget_info->nickname_cut_size)} {$item->getRegdate("Y-m-d")} {$item->getRegdate("H:i")} diff --git a/widgets/content/skins/default/normal.html b/widgets/content/skins/default/normal.html index 0534423869..f472bb9c79 100644 --- a/widgets/content/skins/default/normal.html +++ b/widgets/content/skins/default/normal.html @@ -29,7 +29,7 @@ - getMemberSrl())-->href="#" onclick="return false;" class="author member_{$item->getMemberSrl()}"href="{$item->getAuthorSite()}" onclick="window.open(this.href); return false;" class="author member"href="#" onclick="return false;" class="author member" >{$item->getNickName()} + getMemberSrl())-->href="#" onclick="return false;" class="author member_{$item->getMemberSrl()}"href="{$item->getAuthorSite()}" onclick="window.open(this.href); return false;" class="author member"href="#" onclick="return false;" class="author member" >{$item->getNickName($widget_info->nickname_cut_size)} {$item->getRegdate("Y-m-d")} {$item->getRegdate("H:i")} @@ -81,7 +81,7 @@ -

    + From d1ebb3059159db5036dd75ef6c82360670b83cb7 Mon Sep 17 00:00:00 2001 From: akasima Date: Wed, 2 Apr 2014 11:31:17 +0900 Subject: [PATCH 241/549] =?UTF-8?q?#604=20=EC=B9=B4=EC=9A=B4=ED=84=B0=20?= =?UTF-8?q?=EC=95=A0=EB=93=9C=EC=98=A8=20=EC=82=AC=EC=9A=A9=EC=97=90=20?= =?UTF-8?q?=EB=94=B0=EB=A5=B8=20=EB=8C=80=EC=8B=9C=EB=B3=B4=EB=93=9C=20?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/admin/admin.admin.view.php | 15 ++ modules/admin/tpl/_dashboard_counter.html | 169 +++++++++++++++++++++ modules/admin/tpl/_dashboard_default.html | 66 +++++++++ modules/admin/tpl/css/admin.css | 29 ++++ modules/admin/tpl/index.html | 172 +--------------------- 5 files changed, 285 insertions(+), 166 deletions(-) create mode 100644 modules/admin/tpl/_dashboard_counter.html create mode 100644 modules/admin/tpl/_dashboard_default.html diff --git a/modules/admin/admin.admin.view.php b/modules/admin/admin.admin.view.php index 4817c90b31..fc50da38a1 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -348,11 +348,26 @@ function dispAdminIndex() } } + $site_module_info = Context::get('site_module_info'); + $oAddonAdminModel = getAdminModel('addon'); + $counterAddonActivated = $oAddonAdminModel->isActivatedAddon('counter', $site_module_info->site_srl ); + if(!$counterAddonActivated) + { + $columnList = array('member_srl', 'nick_name', 'user_name', 'user_id', 'email_address'); + $args = new stdClass; + $args->page = 1; + $args->list_count = 5; + $output = executeQuery('member.getMemberList', $args, $columnList); + Context::set('latestMemberList', $output->data); + unset($args, $output, $columnList); + } + Context::set('module_list', $module_list); Context::set('needUpdate', $isUpdated); Context::set('addTables', $addTables); Context::set('needUpdate', $needUpdate); Context::set('newVersionList', $needUpdateList); + Context::set('counterAddonActivated', $counterAddonActivated); $oSecurity = new Security(); $oSecurity->encodeHTML('module_list..', 'module_list..author..', 'newVersionList..'); diff --git a/modules/admin/tpl/_dashboard_counter.html b/modules/admin/tpl/_dashboard_counter.html new file mode 100644 index 0000000000..66d7f20021 --- /dev/null +++ b/modules/admin/tpl/_dashboard_counter.html @@ -0,0 +1,169 @@ +
    +
    +

    {$lang->uv}

    +
    + +
    +
    +

    {$lang->pv}

    +
    + +
    + +
    + +
    +
    +

    {$lang->latest_documents}

    + +

    {$lang->more}

    +
    +
    +

    {$lang->latest_comments}

    + +

    {$lang->more}

    +
    +
    + + diff --git a/modules/admin/tpl/_dashboard_default.html b/modules/admin/tpl/_dashboard_default.html new file mode 100644 index 0000000000..1028cc4680 --- /dev/null +++ b/modules/admin/tpl/_dashboard_default.html @@ -0,0 +1,66 @@ +
    +
    +

    {$lang->member}

    + + +
    +
    + +
    +
    +

    {$lang->latest_documents}

    + + +
    +
    +

    {$lang->latest_comments}

    + +

    {$lang->more}

    +
    +
    + diff --git a/modules/admin/tpl/css/admin.css b/modules/admin/tpl/css/admin.css index 03ca63172c..026d24cd93 100644 --- a/modules/admin/tpl/css/admin.css +++ b/modules/admin/tpl/css/admin.css @@ -1421,6 +1421,9 @@ body>.x, .x .dashboard>div>.status dl a { color: #767676; } +.x .dashboard>div>.member>h2:before { + background-position: -168px 0px; +} .x .dashboard>div>.document>h2:before { background-position: -264px -48px; } @@ -1439,6 +1442,32 @@ body>.x, .x .dashboard>div>section>.more i { font: 12px Tahoma, Geneva, sans-serif; } +.x .dashboard>div>section>.more dl { + color: #767676; + display: inline-block; + *display: inline; + zoom: 1; + margin: 0 8px 0 0; + padding: 1px 8px 0; + font: 11px/1 돋움, Dotum, Arial, Helvetica, sans-serif; + background: #fff; + box-shadow: 0 0 3px #999 inset; + border-radius: 3px; + min-width: 60px; + text-align: center; +} +.x .dashboard>div>section>.more dt { + display: inline; + font-weight: normal; +} +.x .dashboard>div>section>.more dd { + display: inline; + margin: 0; +} +.x .dashboard>div>section>.more dl a { + color: #767676; +} + .x .dashboard>div>section ul { list-style: none; margin: 10px; diff --git a/modules/admin/tpl/index.html b/modules/admin/tpl/index.html index c36e158820..7879670794 100644 --- a/modules/admin/tpl/index.html +++ b/modules/admin/tpl/index.html @@ -48,173 +48,13 @@

    {$lang->available_new_version}

    -
    -
    -

    {$lang->uv}

    -
    - -
    -
    -

    {$lang->pv}

    -
    - -
    - -
    -
    -
    -

    {$lang->latest_documents}

    - -

    {$lang->more}

    -
    -
    -

    {$lang->latest_comments}

    - -

    {$lang->more}

    -
    -
    + + + + + +
    - From 807b48a52cfce22908a77cfe3cbe8dff719da0a1 Mon Sep 17 00:00:00 2001 From: akasima Date: Wed, 2 Apr 2014 11:36:12 +0900 Subject: [PATCH 242/549] =?UTF-8?q?#605=20install=20=EC=8B=9C=20=EC=B9=B4?= =?UTF-8?q?=EC=9A=B4=ED=84=B0=20=EC=95=A0=EB=93=9C=EC=98=A8=20=ED=99=9C?= =?UTF-8?q?=EC=84=B1=ED=99=94=20=EC=BD=94=EB=93=9C=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/addon/addon.class.php | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/addon/addon.class.php b/modules/addon/addon.class.php index bf7e7ad1ce..99b73086ce 100644 --- a/modules/addon/addon.class.php +++ b/modules/addon/addon.class.php @@ -19,7 +19,6 @@ function moduleInstall() $oAddonController = getAdminController('addon'); $oAddonController->doInsert('autolink', 0, 'site', 'Y'); $oAddonController->doInsert('blogapi'); - $oAddonController->doInsert('counter', 0, 'site', 'Y'); $oAddonController->doInsert('member_communication', 0, 'site', 'Y'); $oAddonController->doInsert('member_extra_info', 0, 'site', 'Y'); $oAddonController->doInsert('mobile', 0, 'site', 'Y'); From b806b0bc9f3d0e19d6b02282c883aefeff5f5f2d Mon Sep 17 00:00:00 2001 From: bnu Date: Thu, 3 Apr 2014 13:43:15 +0900 Subject: [PATCH 243/549] MINIFY --- common/css/xe.min.css | 2 +- modules/admin/tpl/css/admin.min.css | 2 +- modules/editor/components/image_gallery/tpl/popup.min.css | 2 +- modules/widget/tpl/css/widget.min.css | 2 +- modules/widget/tpl/js/widget.min.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/common/css/xe.min.css b/common/css/xe.min.css index 8967495c03..e73141b50e 100644 --- a/common/css/xe.min.css +++ b/common/css/xe.min.css @@ -1 +1 @@ -@charset "utf-8";/*! Copyright (C) NAVER */body,button,input,select,table,textarea{font-family:Tahoma,Geneva,sans-serif;font-size:12px}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}body{position:relative;word-wrap:break-word}a img{border:0}[hidden]{display:none}.xe_content img{max-width:100%;height:auto}@media \0screen{img{max-width:none}}#popup_menu_area{position:absolute;margin:10px 0;padding:10px;border:1px solid #e9e9e9;border-radius:3px;font-size:12px;box-shadow:0 0 6px #666;filter:progid:DXImageTransform.Microsoft.Shadow(color=#999999, direction=135, strength=5);background:#fff}#popup_menu_area ul{margin:0;padding:0;list-style:none}#popup_menu_area li{margin:0;padding:0;line-height:1.25}#popup_menu_area a{display:block;padding:1px 3px;border-radius:2px;text-decoration:none;color:#333}#popup_menu_area a:active,#popup_menu_area a:focus,#popup_menu_area a:hover{color:#fff;background:#666}.message{position:relative;margin:1em 0;padding:0 1em;border:1px solid #ddd;border-radius:4px;line-height:1.4;font-size:13px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#f8f8f8}body>.message{margin:1em}.message p{margin:1em 0!important}.message.info{border-color:#BCE8F1;color:#3A87AD;background-color:#D9EDF7}.message.error{border-color:#EED3D7;color:#B94A48;background-color:#F2DEDE}.message.update{border-color:#D6E9C6;color:#468847;background-color:#DFF0D8}.wfsr{z-index:100;display:none;position:fixed;left:0;top:0;right:0;margin:0;padding:20px 0 0;border-bottom:1px solid #ccc;text-align:center;font:700 16px/60px "Helvetica Neue",Helvetica,Arial,돋움,Dotum,sans-serif;color:#fff;opacity:.8;filter:alpha(opacity=80);box-shadow:0 0 5px #000;background:#333 url(../../common/img/msg.loading.gif) no-repeat center 15px}#adminBar{z-index:9999;position:fixed;top:0;left:0;right:0;padding:0;width:100%;height:28px;border-top:1px solid #eee;border-bottom:1px solid #eee;font:12px/28px Arial,Helvetica,sans-serif;color:#fff;overflow:hidden;box-shadow:0 0 5px #333;background:#666}#adminBar>h1{float:left;margin:0 10px 0 0;padding:6px 0 0 10px;line-height:1;font-size:12px}#adminBar img{vertical-align:top}#adminBar>p{margin:0}#adminBar>.admin{float:left}#adminBar>.link{float:right;padding:0 10px 0 0}#adminBar a{text-decoration:none;color:#fff}#adminBar a:active,#adminBar a:focus,#adminBar a:hover{text-decoration:underline}.btnArea{clear:both;margin:10px 0;padding:0;text-align:right;zoom:1}.btnArea:after{clear:both;display:block;content:""}.btn{display:inline-block;*display:inline;margin:0;padding:0 12px!important;height:24px!important;overflow:visible;border:1px solid #bbb;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);border-bottom-color:#a2a2a2;border-radius:2px;text-decoration:none!important;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,.75);vertical-align:top;line-height:24px!important;font-family:inherit;font-size:12px;color:#333;*zoom:1;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(top,#fff,#e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}button.btn,input.btn{height:26px!important}.btn:active,.btn:hover,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn>a,.btn>button,.btn>input,.btn>span{display:inline-block;*zoom:1;margin:0 -12px!important;padding:0 12px!important;overflow:visible;width:auto;height:24px;border:0;vertical-align:top;text-decoration:none!important;line-height:24px;font-family:inherit;font-size:12px;color:#333;cursor:pointer;background:0 0}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;white-space:nowrap;vertical-align:middle;font-size:0;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.btn-group>.btn:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2} \ No newline at end of file +@charset "utf-8";/*! Copyright (C) NAVER */body,button,input,select,table,textarea{font-family:Tahoma,Geneva,sans-serif;font-size:12px}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}body{position:relative;word-wrap:break-word}a img{border:0}[hidden]{display:none}.xe_content img{max-width:100%;height:auto}@media \0screen{img{max-width:none}}.xe-widget-wrapper{overflow:hidden}#popup_menu_area{position:absolute;margin:10px 0;padding:10px;border:1px solid #e9e9e9;border-radius:3px;font-size:12px;box-shadow:0 0 6px #666;filter:progid:DXImageTransform.Microsoft.Shadow(color=#999999, direction=135, strength=5);background:#fff}#popup_menu_area ul{margin:0;padding:0;list-style:none}#popup_menu_area li{margin:0;padding:0;line-height:1.25}#popup_menu_area a{display:block;padding:1px 3px;border-radius:2px;text-decoration:none;color:#333}#popup_menu_area a:active,#popup_menu_area a:focus,#popup_menu_area a:hover{color:#fff;background:#666}.message{position:relative;margin:1em 0;padding:0 1em;border:1px solid #ddd;border-radius:4px;line-height:1.4;font-size:13px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#f8f8f8}body>.message{margin:1em}.message p{margin:1em 0!important}.message.info{border-color:#BCE8F1;color:#3A87AD;background-color:#D9EDF7}.message.error{border-color:#EED3D7;color:#B94A48;background-color:#F2DEDE}.message.update{border-color:#D6E9C6;color:#468847;background-color:#DFF0D8}.wfsr{z-index:100;display:none;position:fixed;left:0;top:0;right:0;margin:0;padding:20px 0 0;border-bottom:1px solid #ccc;text-align:center;font:700 16px/60px "Helvetica Neue",Helvetica,Arial,돋움,Dotum,sans-serif;color:#fff;opacity:.8;filter:alpha(opacity=80);box-shadow:0 0 5px #000;background:#333 url(../../common/img/msg.loading.gif) no-repeat center 15px}#adminBar{z-index:9999;position:fixed;top:0;left:0;right:0;padding:0;width:100%;height:28px;border-top:1px solid #eee;border-bottom:1px solid #eee;font:12px/28px Arial,Helvetica,sans-serif;color:#fff;overflow:hidden;box-shadow:0 0 5px #333;background:#666}#adminBar>h1{float:left;margin:0 10px 0 0;padding:6px 0 0 10px;line-height:1;font-size:12px}#adminBar img{vertical-align:top}#adminBar>p{margin:0}#adminBar>.admin{float:left}#adminBar>.link{float:right;padding:0 10px 0 0}#adminBar a{text-decoration:none;color:#fff}#adminBar a:active,#adminBar a:focus,#adminBar a:hover{text-decoration:underline}.btnArea{clear:both;margin:10px 0;padding:0;text-align:right;zoom:1}.btnArea:after{clear:both;display:block;content:""}.btn{display:inline-block;*display:inline;margin:0;padding:0 12px!important;height:24px!important;overflow:visible;border:1px solid #bbb;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);border-bottom-color:#a2a2a2;border-radius:2px;text-decoration:none!important;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,.75);vertical-align:top;line-height:24px!important;font-family:inherit;font-size:12px;color:#333;*zoom:1;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(top,#fff,#e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}button.btn,input.btn{height:26px!important}.btn:active,.btn:hover,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn>a,.btn>button,.btn>input,.btn>span{display:inline-block;*zoom:1;margin:0 -12px!important;padding:0 12px!important;overflow:visible;width:auto;height:24px;border:0;vertical-align:top;text-decoration:none!important;line-height:24px;font-family:inherit;font-size:12px;color:#333;cursor:pointer;background:0 0}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;white-space:nowrap;vertical-align:middle;font-size:0;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.btn-group>.btn:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2} \ No newline at end of file diff --git a/modules/admin/tpl/css/admin.min.css b/modules/admin/tpl/css/admin.min.css index 8918ecd32b..37f8649112 100644 --- a/modules/admin/tpl/css/admin.min.css +++ b/modules/admin/tpl/css/admin.min.css @@ -1 +1 @@ -@charset "utf-8";body,html{min-height:100%}body{-webkit-text-size-adjust:none}body>.x:first-child{min-width:300px;max-width:1240px;margin:0 auto}.x button,.x input,.x label,.x select,.x table,.x textarea,body>.x{font-size:13px}.x strong,.x th{font-weight:600}.x dfn,.x em{font-style:normal}.x [disabled]{cursor:not-allowed}.x [hidden]{display:none}.x a[target="_blank"]:after{content:"";display:inline-block;width:14px;height:14px;vertical-align:middle;margin:-2px 0 0 2px;background-position:-120px -72px;opacity:.3;filter:alpha(opacity=30)}.x a[target="_blank"]:focus:after,.x a[target="_blank"]:hover:after{opacity:.7;filter:alpha(opacity=70)}.x mark{background-color:#FF0;color:#000}.x .x_page-header{margin-top:10px;padding-bottom:0;border-bottom:2px solid #ddd}.x .x_page-header>h1{position:relative;margin-bottom:0;font-size:24px;color:#333}.x .x_page-header>h1>.x_icon-question-sign{margin:0}.x .x_page-header>h1>.path+.x_icon-question-sign{margin:4px 0 0}.x .x_icon-question-sign{vertical-align:middle}.x h1,.x h2,.x h3,.x h4,.x h5,.x h6{line-height:1.5;font-weight:600;color:#666;text-rendering:auto}.x h1{font-size:22px}.x h2{font-size:18px}.x h3{font-size:14px}.x h4,.x h5,.x h6{font-size:12px}.x [class*=" x_icon-"],.x [class^=x_icon-]{text-decoration:none;border:0;padding:0 0 0 14px;width:0;background-color:transparent;overflow:hidden;font-size:0}.x .x_close{width:32px;height:32px;font-size:17px;opacity:.5;filter:alpha(opacity=50)}.x .x_alert{position:relative}.x .x_alert>.x_close{position:absolute;top:0;right:0}.x .x_pagination{height:26px;margin:10px 0 0}.x .x_pagination ul>li>a,.x .x_pagination ul>li>span,.x .x_pagination ul>li>strong{line-height:24px;padding:0 8px}.x .x_pagination ul>.x_active>a,.x .x_pagination ul>.x_active>span,.x .x_pagination ul>.x_active>strong{line-height:26px;border:0;background-color:#333!important;color:#fff;font-weight:700;font-size:18px;font-family:Arial,Helvetica,sans-serif;border-radius:2px}.x .x_pagination [id^=goTo]{display:none;margin:0;padding:0}.x .x_pagination [id^=goTo]>*{border:0;border-radius:0}.x .x_pagination [id^=goTo]>[type=number]{height:16px;line-height:16px;width:50px;text-align:center}.x .x_pagination [id^=goTo]>[type=submit]{line-height:24px;height:24px;padding:0 6px}.x .btn{color:#333}.x .x_btn{border-radius:2px;overflow:visible;font-size:14px;line-height:18px;padding:3px 9px;text-decoration:none!important}.x .x_btn-large{font-size:16px;padding:9px 14px;font-weight:700}.x .x_btn-small{font-size:14px}.x .x_btn-mini{font-size:11px;padding:1px 6px;line-height:17px}.x .x_btn-link{padding:0;margin:0;overflow:visible;font-size:13px;border:0}.x .x_btn-group{zoom:1}.x .x_btn-group:after{content:"";display:block;clear:both}.x .x_btn-group>.x_btn{border-radius:0}.x .x_btn-group>.x_btn:last-child,.x .x_btn-group>.x_dropdown-toggle{border-top-right-radius:2px;border-bottom-right-radius:2px}.x .x_btn-group>.x_btn:first-child{border-bottom-left-radius:2px;border-top-left-radius:2px}.x .x_btn-group>.x_btn-inverse+.x_btn-inverse{border-left-color:#555}.x input[type=checkbox],.x input[type=radio]{margin:0}.x input[type=file]{height:auto}.x td input,.x td select,.x td textarea{margin-bottom:0}.x [class*=x_icon-]{opacity:.5;filter:alpha(opacity=50)}.x :focus>[class*=x_icon-],.x :hover>[class*=x_icon-],.x [class*=x_icon-]:focus,.x [class*=x_icon-]:hover{opacity:1;filter:alpha(opacity=100)}.x .x_nav-tabs>li>a{padding-top:6px;padding-bottom:6px;text-decoration:none!important}.x .x_nav-tabs>li.x_active>a{font-weight:700}.x .x_table{margin:10px 0;border-top:2px solid #ddd;border-bottom:1px solid #ddd}.x h1+.x_table{border-top:0;margin-top:-10px}.x .x_table>caption{text-align:left;padding:0 0 10px;line-height:26px}.x .x_table>caption>a,.x .x_table>caption>i,.x .x_table>caption>strong{position:relative;top:7px}.x .x_table thead th{vertical-align:top}.x .x_table input{margin:0}.x .x_inline{display:inline-block;*display:inline;*zoom:1}.x .x_page-header+.x_form-horizontal{margin-top:-20px}.x .x_controls:after{content:"";display:block;clear:both}.x .x_form-horizontal .x_control-label,.x input:checked+label,.x label.checked{font-weight:700;word-break:keep-all}.x .x_form-horizontal .x_control-label{width:180px}.x .x_form-horizontal .x_controls{margin-left:200px;*margin-left:0}.x .x_form-horizontal .x_controls label{padding:5px 0;margin-bottom:0}.x input[type=checkbox]+label,.x input[type=radio]+label{font-weight:400}.x label.x_inline{margin-right:16px}.x .x_input-append>*{vertical-align:top}.x .x_input-append a.x_add-on,.x .x_input-prepend a.x_add-on{height:16px;line-height:16px}.x .x_input-append button.x_add-on,.x .x_input-prepend button.x_add-on{height:24px;line-height:16px}.x .x_modal-header{padding:10px 15px;border-bottom:1px solid #aaa;background-color:#333;border-radius:5px 5px 0 0;background-image:-webkit-linear-gradient(top,#666,#333 50%,#000 50%,#333 100%);background-image:-moz-linear-gradient(top,#666,#333 50%,#000 50%,#333 100%);background-image:-o-linear-gradient(top,#666,#333 50%,#000 50%,#333 100%);background-image:linear-gradient(top,#666,#333 50%,#000 50%,#333 100%)}.x .x_modal-header>h1,.x .x_modal-header>h2,.x .x_modal-header>h3{font-size:16px;line-height:30px;margin:0;color:#fff;text-shadow:0 -1px 0 #000}.x .x_modal-body{overflow-y:visible;max-height:none}.x_modal,.x_modal-backdrop{display:none}.x_modal-backdrop{opacity:.6;filter:alpha(opacity=60)}.x_modal{padding:0;width:90%;margin:0 0 0 -45%;max-width:none;border-radius:6px}.x_modal>form{margin:0!important}.x_modal>.x_close{position:absolute;top:8px;right:10px;font-size:21px;color:#fff}.x_modal .x_modal-body{background:#fff;min-height:50px;overflow-y:auto;max-height:400px}.x_modal-body:after{content:"";display:block;clear:both}.x .x_control-group{padding-top:8px;border-top:1px dotted #ddd;clear:both}.x .x_control-group:before{content:"";display:block;clear:both}.x .x_control-group:first-child,.x .x_control-group:first-of-type{border-top:0;padding-top:0}.x .x_control-group select{width:auto;min-width:220px}.x .x_form-horizontal .x_control-group{margin-bottom:10px}.x input[type=color],.x input[type=date],.x input[type=datetime-local],.x input[type=datetime],.x input[type=email],.x input[type=month],.x input[type=number],.x input[type=password],.x input[type=search],.x input[type=tel],.x input[type=text],.x input[type=time],.x input[type=url],.x input[type=week]{height:16px;line-height:16px}.x input[type=number]{width:50px}.x select{padding:0;height:26px;line-height:26px}.x select[multiple]{height:auto}.x textarea{vertical-align:top}.x .x_tab-content{overflow:visible}.x .x_well>:first-child{margin-top:0}.x .x_well>:last-child{margin-bottom:0}.x legend{font-size:14px;font-weight:700;line-height:24px}.x label{font-weight:inherit}.x label:only-child,.x p:last-child,.x td p{margin-bottom:0}.x form{margin:0 0 10px}.x form .x_btn[type=submit]:only-child{min-width:120px}.x .x_help-inline{display:inline}.x .x_btn.x_disabled,.x .x_btn[disabled]{opacity:.5;filter:alpha(opacity=50);cursor:not-allowed}@media all and (max-width:980px){.x .x_form-horizontal .x_control-label{float:none;width:auto;text-align:left}.x .x_form-horizontal .x_controls{margin-left:0}}.x .section{margin:20px 0 40px}.x .section>h1{position:relative;border-bottom:1px solid #ddd;cursor:pointer}.x .section>h1>.snToggle{position:absolute;bottom:0;right:0;width:32px;height:32px;opacity:.5;filter:alpha(opacity=50)}.x .section>h1>.snToggle.x_icon-chevron-up{background-position:-279px -112px}.x .section>h1>.snToggle.x_icon-chevron-down{background-position:-303px -111px}.x .section>h2{position:relative;border-bottom:1px dotted #ddd}.x .section>h2+.x_control-group{border-top:0}.x .section.collapsed>*{display:none}.x .section.collapsed>h1{display:block}.x .center{text-align:center}.x .search{margin:10px 0 0}.x .search select{width:auto}.x .search>input[type=search]{height:16px;line-height:16px;width:120px}.x .vr{color:#ccc;font-style:normal}.x .nowr{white-space:nowrap}.x .btnArea{padding:10px 0;margin:10px 0;border-top:1px solid #ccc;text-align:right;zoom:1;clear:both}.x .btnArea:after{content:"";display:block;clear:both}.x a.active,.x li.active>a{color:#000;font-weight:700;text-decoration:none}.x .module_search+[readonly]{vertical-align:top;border-top-right-radius:0;border-bottom-right-radius:0}.x .module_search+[readonly]+a.x_btn{vertical-align:top;border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-5px}.x .fileBtn{position:relative;display:inline-block;overflow:hidden}.x .fileBtn>input[type=file]{position:absolute;top:0;right:0;margin:0;padding:0;border:0;outline:0;cursor:pointer;opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(4);-webkit-transform-origin:100% 0;-moz-transform:scale(4);-moz-transform-origin:100% 0;-o-transform:scale(4);-o-transform-origin:100% 0;transform:scale(4);transform-origin:100% 0}.x td>form,.x td>p:last-of-type,.x td>p:only-of-type{margin:0}.x [data-display=none]{display:none}.x .x_page-header .path{font-size:14px;display:inline-block}.x .x_page-header .path:first-letter{color:#ccc;font-weight:400}.x [data-toggle]+.x_help-block{margin-top:10px}.x input.switch{width:42px;height:16px;opacity:0;filter:alpha(opacity=0);position:relative;z-index:2}.x input.switch+i{position:relative!important;z-index:1;left:auto!important;top:auto!important;right:auto!important;bottom:auto!important;margin:0 0 0 -42px!important;opacity:1!important;filter:alpha(opacity=100)!important;padding:0;vertical-align:middle;display:inline-block;width:42px;height:16px;background-image:url(../../../../modules/admin/tpl/img/toggleSwitch.png)!important;background-repeat:no-repeat}.x input[checked].switch+i{background-position:0 -16px!important}.x_modal._common{width:600px;margin-left:-300px}.x_modal._common._small{width:400px;margin-left:-200px}@media all and (max-width:650px){.x_modal._common{width:90%;margin-left:-45%}}@media all and (max-width:450px){.x_modal._common._small{width:90%;margin-left:-45%}}.x_modal._common._nobody .x_modal-body,.x_modal._common._type_alert ._cancel,.x_modal._common._type_alert .x_modal-header{display:none}.x_modal._common._type_alert .x_modal-body{border-radius:6px 6px 0 0}.x_modal._common._nobody .x_modal-footer{border-top:0}.x_modal-body.showTree .moveList{float:left;width:60%}.x_modal-body.showTree .moveTree{display:block!important;float:right;width:38%}.x_modal-body.showTree .moveTree>h1{font-size:13px;color:#333;border-bottom:2px solid #ddd;padding:10px 0 7px}@media all and (max-width:960px){.x_modal-body.showTree .moveList,.x_modal-body.showTree .moveTree{float:none;width:auto}}.x .dashboard>div>section>h2:before,.x a[target="_blank"]:after,.x>.body>.gnb>ul>li>a>i{background-image:url(../img/glyphicons-halflings.png);background-repeat:no-repeat}.x>.body>.gnb>ul>li.active>a>i,.x>.body>.gnb>ul>li.open>a>i,.x_modal-body .tree .jstree-clicked>i,.x_modal-body .tree .jstree-hovered>i{background-image:url(../img/glyphicons-halflings-white.png);background-repeat:no-repeat}@media all and (max-width:800px){.x>.body>.gnb>ul>li:first-child>a>i{background-image:url(../img/glyphicons-halflings-white.png);background-repeat:no-repeat}}.x>.skipNav{margin:0}.x>.skipNav>a{display:block;height:1px;text-align:center;border-radius:4px;overflow:hidden;color:#333;text-decoration:none}.x>.skipNav>a:focus{height:auto;margin:5px 0;padding:8px 0;background:#fff}.x>.header{position:relative;z-index:2;padding:10px 15px;border-bottom:1px solid #ddd;background-color:#fff;zoom:1}.x>.header:after{content:"";display:block;clear:both}.x>.header:before{content:"";position:absolute;bottom:0;left:1px;right:1px;height:1px;box-shadow:0 2px 3px #ddd}.x>.body{position:relative;zoom:1;padding:0 0 50px 215px;z-index:1}.x>.body.wide{padding-left:70px}.x>.body:after{content:"";display:block;clear:both}.x>.body>.content{width:100%;padding:1px 0 0;float:right;margin:0 0 0 -100%;outline:0}.x>.body>.content>:first-child{margin-top:0}.x>.body>.gnb{width:180px;position:relative;margin:15px 0 0 -215px;float:left;display:inline}.x>.body.wide>.gnb{width:38px;margin-left:-70px}@media all and (max-width:800px){.x>.header{border-bottom:0}.x>.header:before{content:normal}.x>.body,.x>.body.wide{padding:0}.x>.body>.content{width:auto;padding:1px 10px 0;float:none;margin:0 0 30px}.x>.body>.gnb{float:none;display:block;width:auto;margin:0!important;border-radius:0;position:relative;top:auto;left:auto}.x>.body.wide>.gnb{width:auto}}.x>.header>h1{display:inline-block;*display:inline;zoom:1;margin:0 15px 0 0;white-space:nowrap}.x>.header>h1>a{text-decoration:none;color:#333;font-size:24px;line-height:40px;font-family:Arial,Helvetica,sans-serif}.x>.header>h1>a>img{vertical-align:middle}.x>.header>.site{display:inline-block;*display:inline;zoom:1;margin:14px 0 0;font-size:11px}.x>.header>.site>a{text-decoration:none;color:#666;font-family:Tahoma,Geneva,sans-serif}.x>.header>.site>a:focus,.x>.header>.site>a:hover{text-decoration:underline}.x>.header>.account{float:right;position:relative;margin:13px 0 0}.x>.header>.account>ul{list-style:none;margin:0;padding:0}.x>.header>.account>ul>li{display:inline}.x>.header>.account>ul>li:before{content:"| ";color:#ddd}.x>.header>.account>ul>li:first-child:before{content:normal}.x>.header>.account>ul>li>a{text-decoration:none;color:#666}.x>.header>.account>ul>li>a:focus,.x>.header>.account>ul>li>a:hover{text-decoration:underline}.x>.header>.account .lang+#lang{position:absolute;top:20px;left:auto;right:0;min-width:0}.x>.header>.account .lang+#lang a:focus,.x>.header>.account .lang+#lang a:hover{background:0 0;color:#333}.x>.header>.account .lang+#lang .x_active>a{color:#fff;background:#0081c2 -webkit-linear-gradient(top,#08c,#0077b3);background:#0081c2 -moz-linear-gradient(top,#08c,#0077b3);background:#0081c2 -o-linear-gradient(top,#08c,#0077b3)}@media all and (max-width:480px){.x>.header>.site{margin-top:0}}@media all and (max-width:800px){.x>.header>.account{margin-top:0}}.x>.footer{border-top:1px solid #ddd;padding:10px 15px;zoom:1}.x>.footer:after{content:"";display:block;clear:both}.x>.footer>p{margin:0}.x>.footer>.power{float:left;color:#666}.x>.footer>.cache{float:right}.x>.footer>.cache>*{color:#666}.x>.footer .vr{color:#ccc!important}.x>.body>.gnb ul{margin:0;padding:0;list-style:none}.x>.body>.gnb>ul{position:relative;z-index:1;box-shadow:0 0 4px #ccc;border:2px solid #fff}.x>.body>.gnb a{text-decoration:none;text-shadow:0 1px 0 #fff;color:#000;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.x>.body>.gnb>a[href="#gnbNav"]{display:block;position:absolute;z-index:2;white-space:nowrap;font-size:0;top:50%;right:-14px;background:#eee;width:12px;height:50px;border-radius:0 3px 3px 0;margin:-25px 0 0 0;border:1px solid #ddd;border-left:0;overflow:hidden;text-indent:20px}.x>.body.wide>.gnb>a[href="#gnbNav"]>b{border-color:transparent;border-left-color:#666;margin:-4px 0 0 -2px}.x>.body>.gnb>a[href="#gnbNav"]>b{width:0;height:0;position:absolute;top:50%;left:50%;margin:-4px 0 0 -6px;border:4px solid;border-color:transparent;border-right-color:#666}.x>.body>.gnb>a>i{display:none}.x>.body>.gnb .exMenu{position:absolute;width:100%}.x>.body>.gnb .exMenu>button{width:100%;border:0;background:0 0;font-size:20px;line-height:25px}.x>.body>.gnb .exMenu>button>i{opacity:.5;filter:alpha(opacity=50);vertical-align:middle;text-indent:0}.x>.body>.gnb .exMenu>button:focus>i,.x>.body>.gnb .exMenu>button:hover>i{opacity:1;filter:alpha(opacity=100)}.x>.body>.gnb .exMenu .x_icon-chevron-up,.x>.body>.gnb>.ex .exMenu .x_icon-chevron-down{display:none}.x>.body>.gnb>.ex .exMenu .x_icon-chevron-up{display:inline-block}.x>.body>.gnb>ul>li[data-index="1"]{border-top-color:#eee}.x>.body>.gnb>ul>li[data-index="5"]{margin-bottom:25px}.x>.body>.gnb>ul>li[data-index="6"]{border-top-color:#eee}.x>.body>.gnb>ul>li[data-index="6"],.x>.body>.gnb>ul>li[data-index="7"]{display:none}.x>.body>.gnb>.ex>li[data-index="6"],.x>.body>.gnb>.ex>li[data-index="7"]{display:block}.x>.body>.gnb>ul>li[data-index].active_{display:none}@media all and (max-width:800px){.x>.body>.gnb>ul{border:0}.x>.body>.gnb>ul>li{display:none}.x>.body>.gnb.open>ul>li{display:block}.x>.body>.gnb.open>ul>li[data-index="6"],.x>.body>.gnb.open>ul>li[data-index="7"],.x>.body>.gnb>.ex>li[data-index="6"],.x>.body>.gnb>.ex>li[data-index="7"]{display:none}.x>.body>.gnb.open>.ex>li[data-index="6"],.x>.body>.gnb.open>.ex>li[data-index="7"]{display:block}.x>.body>.gnb>ul>li:first-child{display:block!important}.x>.body.wide>.gnb>a[href="#gnbNav"],.x>.body>.gnb>a[href="#gnbNav"]{top:0;right:0;line-height:37px;width:44px;height:auto;background:0 0;border-radius:0;margin:0;border:0}.x>.body>.gnb>a[href="#gnbNav"]{opacity:.5;filter:alpha(opacity=50%)}.x>.body>.gnb>a[href="#gnbNav"]:before{content:"";position:absolute;top:1px;left:0;width:1px;height:100%;border-left:1px solid #999}.x>.body>.gnb>a[href="#gnbNav"]>b{display:none}.x>.body>.gnb>a>i{display:block;position:absolute;top:50%;left:50%;margin:-7px 0 0 -7px}}.x>.body>.gnb>ul>li{background:#3886d0;border-top:1px solid #fff;border-bottom:1px solid #ddd;vertical-align:top;white-space:nowrap}.x>.body>.gnb>ul>li.active{background:#222}.x>.body>.gnb>ul>li.active,.x>.body>.gnb>ul>li.open{border-bottom:0;padding:0 0 1px}.x>.body>.gnb>ul>li>a{position:relative;padding:8px 5px 8px 10px;background:#f1f1f1;background:-webkit-linear-gradient(top,#F1F1F1,#E8E8E8);background:-moz-linear-gradient(top,#F1F1F1,#E8E8E8);background:-o-linear-gradient(top,#F1F1F1,#E8E8E8);background:-ms-linear-gradient(top,#F1F1F1,#E8E8E8);background:linear-gradient(top,#F1F1F1,#E8E8E8)}.x>.body>.gnb>ul>li>a>i{display:inline-block;width:14px;height:14px;margin:-4px 4px 0 0;vertical-align:middle;opacity:.75;filter:alpha(opacity=75)}.x>.body>.gnb>ul>li>a>b{position:absolute;width:0;height:0;top:50%;right:10px;margin:-2px 0 0 0;border:4px solid transparent;border-top-color:#999}.x>.body>.gnb>ul>li.open>a>b{border-top:0;border-bottom-color:#fff}.x>.body.wide>.gnb>ul>li>a>b{display:none}.x>.body>.gnb>ul>li[data-index="1"]>a>i{background-position:-384px -144px}.x>.body>.gnb>ul>li[data-index="2"]>a>i{background-position:0 -24px}.x>.body>.gnb>ul>li[data-index="3"]>a>i{background-position:-168px 0}.x>.body>.gnb>ul>li[data-index="4"]>a>i{background-position:-48px -48px}.x>.body>.gnb>ul>li>a[href="#favorite"]>i{background-position:-120px 0}.x>.body>.gnb>ul>li[data-index="6"]>a>i{background-position:-360px -144px}.x>.body>.gnb>ul>li[data-index="7"]>a>i{background-position:-432px 0}.x>.body>.gnb>ul>li>a:focus,.x>.body>.gnb>ul>li>a:hover{background:#f6f6f6;background:-webkit-linear-gradient(top,#f6f6f6,#F1F1F1);background:-moz-linear-gradient(top,#f6f6f6,#F1F1F1);background:-o-linear-gradient(top,#f6f6f6,#F1F1F1);background:-ms-linear-gradient(top,#f6f6f6,#F1F1F1);background:linear-gradient(top,#f6f6f6,#F1F1F1)}.x>.body>.gnb>ul>li.open>a{font-weight:700;color:#fff;text-shadow:0 -1px 0 #333;background:#3886d0;background:-webkit-linear-gradient(top,#6ebcea,#3886d0);background:-moz-linear-gradient(top,#6ebcea,#3886d0);background:-o-linear-gradient(top,#6ebcea,#3886d0);background:-ms-linear-gradient(top,#6ebcea,#3886d0);background:linear-gradient(top,#6ebcea,#3886d0)}.x>.body>.gnb>ul>li.active>a{font-weight:700;color:#fff;text-shadow:none;background:#222;background:-webkit-linear-gradient(top,from(#555),to(#222));background:-moz-linear-gradient(top,#555,#222);background:-o-linear-gradient(top,#555,#222)}@media all and (max-width:800px){.x>.body>.gnb>ul>li:first-child>a{font-weight:700;color:#fff;text-shadow:none;border-radius:3px;background-color:#222;background-image:-webkit-linear-gradient(top,#555,#222);background-image:-moz-linear-gradient(top,#555,#222);background-image:-o-linear-gradient(top,#555,#222);background-image:linear-gradient(top,#555,#222)}}.x>.body.wide>.gnb>ul>li>a>.tx{display:inline-block;width:1px;height:1px;overflow:hidden}.x>.body>.gnb>ul>li>ul{display:none;margin:0 10px 10px;border-radius:4px}.x>.body>.gnb>ul>li.active>ul{display:block!important}.x>.body.wide>.gnb>ul>li>ul{display:none!important}.x>.body>.gnb>ul>li>ul>li{border-top:1px solid #ddd;position:relative}.x>.body>.gnb>ul>li>ul>li:first-child{border:0}.x>.body>.gnb>ul>li>ul>li.active_{box-shadow:0 0 3px #999;z-index:99;border:1px solid #666;border-left:0;border-right:0}.x>.body>.gnb>ul>li>ul>li>a{padding:4px 5px 4px 15px;background:#e8e8e8;background:-webkit-linear-gradient(top,#f1f1f1,#e8e8e8);background:-moz-linear-gradient(top,#f1f1f1,#e8e8e8);background:-o-linear-gradient(top,#f1f1f1,#e8e8e8);background:-ms-linear-gradient(top,#f1f1f1,#e8e8e8);background:linear-gradient(top,#f1f1f1,#e8e8e8)}.x>.body>.gnb>ul>li>ul#favorite>li>a{padding:4px 25px 4px 15px}.x>.body>.gnb>ul>li>ul>li:first-child>a{border-radius:4px 4px 0 0}.x>.body>.gnb>ul>li>ul>li:last-child>a{border-radius:0 0 4px 4px}.x>.body>.gnb>ul>li>ul>li:only-child>a{border-radius:4px}.x>.body>.gnb>ul>li>ul>li.active_>a,.x>.body>.gnb>ul>li>ul>li>a:active,.x>.body>.gnb>ul>li>ul>li>a:hover{font-weight:700;background:-webkit-linear-gradient(top,#F6F6F6,#F1F1F1);background:-moz-linear-gradient(top,#F6F6F6,#F1F1F1);background:-o-linear-gradient(top,#F6F6F6,#F1F1F1);background:-ms-linear-gradient(top,#F6F6F6,#F1F1F1);background:linear-gradient(top,#F6F6F6,#F1F1F1)}.x>.body>.gnb>ul>li>ul>li.active_>a:after{content:"";position:absolute;top:8px;right:-12px;border:6px solid transparent;border-left-color:#f3f3f3;width:0;height:0;overflow:hidden}.x>.body>.gnb>ul>li>ul>li>.remove{position:absolute;top:4px;right:5px}.x>.body>.gnb>ul>li>ul>li>.remove>.x_close{width:20px;height:20px}@media all and (max-width:800px){.x>.body.wide>.gnb>ul>li>a>.tx{width:auto;height:auto}}.x .dashboard{zoom:1}.x .dashboard:after{content:"";display:block;clear:both}.x .dashboard>div{float:right;width:49%}.x .dashboard>div:first-child{float:left}.x .dashboard>div>section{position:relative;height:196px;border:1px solid #ddd;border-radius:4px;margin:0 0 25px;overflow:hidden}.x .dashboard>div>section>h2{font-size:14px;margin:0;padding:6px 15px;border-bottom:1px solid #ddd;background:#e8e8e8;background:-webkit-linear-gradient(top,#F1F1F1,#E8E8E8);background:-moz-linear-gradient(top,#F1F1F1,#E8E8E8);background:-o-linear-gradient(top,#F1F1F1,#E8E8E8);background:-ms-linear-gradient(top,#F1F1F1,#E8E8E8);background:linear-gradient(top,#F1F1F1,#E8E8E8);text-shadow:0 1px 0 #fff}.x .dashboard>div>section>h2:before{content:"";display:inline-block;width:14px;height:14px;margin:0 4px 0 0;vertical-align:middle;opacity:.5;filter:alpha(opacity=50)}.x .dashboard>div>.status>h2:before{background-position:-408px 0}.x .dashboard>div>.status dl{color:#767676;display:inline-block;*display:inline;zoom:1;margin:0 8px 0 0;padding:1px 8px 0;font:11px/1 돋움,Dotum,Arial,Helvetica,sans-serif;background:#fff;box-shadow:0 0 3px #999 inset;border-radius:3px;min-width:60px;text-align:center}.x .dashboard>div>.status dt{display:inline;font-weight:400}.x .dashboard>div>.status dd{display:inline;margin:0}.x .dashboard>div>.status dl a{color:#767676}.x .dashboard>div>.document>h2:before{background-position:-264px -48px}.x .dashboard>div>.reply>h2:before{background-position:-240px -120px}.x .dashboard>div>.trackback>h2:before{background-position:-216px -120px}.x .dashboard>div>section>.more{position:absolute;top:7px;right:15px;text-shadow:0 1px 0 #fff}.x .dashboard>div>section>.more i{font:12px Tahoma,Geneva,sans-serif}.x .dashboard>div>section ul{list-style:none;margin:10px;padding:0;overflow:hidden;zoom:1}.x .dashboard>div>section li{position:relative;height:28px;line-height:28px;padding:0 70px 0 5px;white-space:nowrap;overflow:hidden;zoom:1;vertical-align:top}.x .dashboard>div>section li.hover{background:#f4f4f4;border-radius:4px}.x .dashboard>div>section li>a{display:block;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x .dashboard>div>section li>.side{position:absolute;top:0;right:5px;line-height:28px;width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;zoom:1}.x .dashboard>div>section li>.action{display:none;position:absolute;top:0;right:5px;margin:0;padding:0 0 0 40px;text-align:right;white-space:nowrap;line-height:28px;background:#f4f4f4}.x .dashboard>div>section li>.action>button{margin:0 0 0 4px;padding:0 0 0 15px;overflow:visible}@media all and (max-width:980px){.x .dashboard>div{float:none!important;width:auto}}.x .g11n>.x_add-on{font-size:0;position:relative;cursor:pointer;text-decoration:none;*color:#eee}.x .g11n>.x_add-on>i{position:absolute;top:50%;left:50%;margin:-7px 0 0 -7px;z-index:1;opacity:.25;filter:alpha(opacity=25)}.x .g11n>.x_add-on.remover{display:none;width:26px;height:26px}.x .g11n.active>[disabled]{padding-left:25px;background-position:4px 6px;background-repeat:no-repeat}.x .g11n.active>.x_add-on.remover{display:inline-block}.x .g11n>.x_add-on:hover>i{opacity:1;filter:alpha(opacity=100)}.x .g11n>textarea{border-top-right-radius:0;overflow-x:hidden}#g11n #lang_search .list{border-top:2px solid #ddd}#g11n #lang_search .item{border-bottom:1px solid #ddd;margin:0}#g11n #lang_search .item>a{display:block;padding:8px 0;position:relative}#g11n #lang_search .item>a>i{position:absolute;top:50%;margin:-7px 0 0 0;right:0;opacity:.5;filter:alpha(opacity=50)}#g11n #lang_search .item>fieldset{display:none;padding:0 0 15px}#g11n .item input[type=text],#g11n .item textarea{padding-left:25px;width:187px;background-repeat:no-repeat;background-position:4px 8px;overflow-x:hidden}#g11n .flag{padding-left:18px;background-repeat:no-repeat;background-position:0 50%}#g11n .flag.en,#g11n .item .en,html[lang=en] .x .g11n.active>[disabled]{background-image:url(../img/flag.en.gif)}#g11n .flag.ko,#g11n .item .ko,html[lang=ko] .x .g11n.active>[disabled]{background-image:url(../img/flag.ko.gif)}#g11n .flag.jp,#g11n .item .jp,html[lang=jp] .x .g11n.active>[disabled]{background-image:url(../img/flag.jp.gif)}#g11n .flag.zh-CN,#g11n .item .zh-CN,html[lang=zh] .x .g11n.active>[disabled]{background-image:url(../img/flag.cn.gif)}#g11n .flag.zh-TW,#g11n .item .zh-TW,html[lang=zh] .x .g11n.active>[disabled]{background-image:url(../img/flag.tw.gif)}#g11n .flag.fr,#g11n .item .fr,html[lang=fr] .x .g11n.active>[disabled]{background-image:url(../img/flag.fr.gif)}#g11n .flag.de,#g11n .item .de,html[lang=de] .x .g11n.active>[disabled]{background-image:url(../img/flag.de.gif)}#g11n .flag.ru,#g11n .item .ru,html[lang=ru] .x .g11n.active>[disabled]{background-image:url(../img/flag.ru.gif)}#g11n .flag.es,#g11n .item .es,html[lang=es] .x .g11n.active>[disabled]{background-image:url(../img/flag.es.gif)}#g11n .item .tr,#gg1n .flag.tr,html[lang=tr] .x .g11n.active>[disabled]{background-image:url(../img/flag.tr.gif)}#g11n .flag.vi,#g11n .item .vi,html[lang=vi] .x .g11n.active>[disabled]{background-image:url(../img/flag.vi.gif)}#g11n .flag.mn,#g11n .item .mn,html[lang=mn] .x .g11n.active>[disabled]{background-image:url(../img/flag.mn.gif)}#g11n #lang_search .cancel,#g11n #lang_search .editMode .modify,#g11n #lang_search .editMode .useit,#g11n #lang_search .save{display:none}#g11n #lang_search .editMode .cancel,#g11n #lang_search .editMode .save{display:inline-block}.x .moduleWindow{position:absolute;z-index:100;padding:15px 20px}.x .moduleWindow ul{margin-bottom:0}.x .moduleWindow .siteList{margin-right:14px}.x .moduleWindow .siteList>input[type=search]{width:100%;padding-top:6px;padding-bottom:6px;border-radius:3px 3px 0 0;margin-bottom:0}.x .moduleWindow .siteList>ul{margin:-1px -14px 0 0}.x .moduleWindow .siteList>ul>li{background:#fff}.x .moduleWindow .siteList>ul>li:first-child>a{border-top-left-radius:0;border-top-right-radius:0}.x .moduleWindow select{width:100%}.x .textList{border:1px solid #ddd!important;line-height:1.5em;height:125px;overflow:auto}.x .textList li{position:relative;border:0;padding:0 10px;height:25px;line-height:25px;white-space:nowrap;overflow:hidden}.x .textList li:nth-child(even){background:#eee}.x .textList li>button{position:absolute;right:8px;top:50%;margin:-7px 0 0 0}.x .uDrag .wrap{position:relative;padding-left:20px}.x .uDrag li>.wrap{margin:0 0 0 8px}.x .uDrag .dragActive{background:#FFD}.x .uDrag .dragActive td,.x .uDrag .dragActive th{background:none!important}.x .uDrag .dragBtn{position:absolute;width:8px;height:100%;padding:0;overflow:hidden;background:url(../img/bgDragable.gif);top:1px;left:0;text-indent:12px;border:0;cursor:n-resize;white-space:nowrap;font-size:0}.x #faviconPreview{position:relative;padding:80px 0 0 200px;background:url(../img/bgFavicon.gif) no-repeat}.x #faviconPreview img{position:absolute}.x #faviconPreview .fn1{top:30px;left:12px}.x #faviconPreview .fn2{top:55px;left:68px}.x #mobiconPreview{position:relative;padding:270px 0 0 200px;background:url(../img/bgMobileTop.png) no-repeat}.x #mobiconPreview img{position:absolute;top:20px;left:10px;width:32px;height:32px}.x #mobiconPreview span{position:absolute;width:32px;text-align:center;top:52px;left:10px;color:#fff;font-size:9px}.x .layer{position:absolute;display:none;font-weight:400}.tree{margin:3px 0 5px;min-width:200px;background-color:transparent!important}.tree ul{margin:0;padding:0;list-style:none}.tree li{padding:0;white-space:nowrap;position:relative;border-radius:3px;vertical-align:top}.tree li>ul{margin:0}.tree a{text-decoration:none}.tree>ul{padding:1px}.tree .jstree-rename-input{margin-left:-16px;z-index:2}.tree>ul>li{margin-top:30px;position:relative}.tree>ul>li:before{content:"";display:block;border-top:1px dotted #ccc;position:relative;top:-15px}.tree>ul>li:first-child{margin-top:0}.tree>ul>li:first-child:before{content:normal}.tree>ul>li>a{font-weight:700;text-shadow:0 1px 0 #fff;vertical-align:middle}.tree>ul>li>a.jstree-clicked,.tree>ul>li>a.jstree-hovered,.tree>ul>li>a:focus,.tree>ul>li>a:hover{text-shadow:none}.tree>ul>li>ul{margin:0 0 0 18px}.tree>ul>li>ul>li{margin-left:0}.tree li>a{border:0!important;padding:0 8px!important;margin:0 0 1px;border-radius:3px;position:relative;z-index:2;height:23px;line-height:23px;max-width:160px;overflow:hidden;text-overflow:ellipsis;-webkit-transition:.2s;-moz-transition:.2s;-o-transition:.2s;transition:.2s}.tree li>a>i{opacity:.5;filter:alpha(opacity=50)}.tree .jstree-clicked>i,.tree .jstree-hovered>i{opacity:1;filter:alpha(opacity=100)}.tree a>.jstree-icon{display:none}.tree .jstree-closed>.jstree-icon,.tree .jstree-open>.jstree-icon{background-color:#fff}.x .h2,.x .h3,.x .h4{position:relative;border-style:solid;border-top:0;border-right:0;zoom:1;padding-left:8px}.x .h1{background:#444;border-radius:4px;color:#fff;margin:0 0 1em;font-size:16px;padding:0 15px;line-height:36px}.x .h2{border-width:3px;font-size:20px;border-color:#888}.x .h3{border-width:2px;font-size:16px;border-color:#aaa}.x .h4{border-width:1px;font-size:12px;border-color:#ccc}.x .h1+.table table,.x .h1+ul,.x .h2+.table table,.x .h2+ul,.x .h3+.table table,.x .h3+ul,.x .h4+.table table,.x .h4+ul{border-top:0!important;margin-top:-1em!important}.x .table{margin:1em 0}.x .table table{width:100%;border:0;border-collapse:collapse;border-top:2px solid #ccc}.x .table caption{font-weight:700;text-align:left;line-height:22px;padding:5px 0}.x .table caption:after{content:"";display:block;clear:both}.x .table caption a{font-weight:400}.x .table caption em{float:right;margin-left:1em}.x .table caption strong{color:#e00}.x .table caption .side{float:right;font-weight:400;margin-left:1em}.x .table td,.x .table th{border:0;padding:8px;vertical-align:top;text-align:left;border-bottom:1px solid #ddd}.x .table th{background:#f8f8f8}.x .table thead th{border-bottom:1px solid #999}.x .table tfoot td{font-weight:700;background:#f8f8f8}.x .table.even tbody tr:nth-of-type(even){background-color:#fafafa}.x .table tbody tr:hover{background:#ffd!important}.x .table td>input[type=text]{margin:-1px 0!important;vertical-align:middle}.x .table img{vertical-align:middle}.x .table em{font-style:normal;font-weight:400;color:#e00}.x .form{margin:0 0 1em;padding:0}.x .form fieldset{margin:0 0 2em;padding:0;border:0}.x .form.search fieldset{border:1px solid #ccc;padding:5px 15px;border-radius:3px}.x .form em{font-style:normal;color:#e00}.x .form label{line-height:1;vertical-align:middle}.x .form input[type=checkbox]+label,.x .form input[type=radio]+label{margin-right:1em}.x .form input[type=checkbox]+label,.x .form input[type=file],.x .form input[type=radio]+label{cursor:pointer}.x .form ul{position:relative;margin:1em 0;padding:0;list-style:none;border-top:2px solid #ccc;border-bottom:1px solid #ccc;zoom:1}.x .form li{list-style:none;border:1px solid #ddd;border-left:0;border-right:0;margin:-1px 0;padding:8px 0;vertical-align:top;zoom:1}.x .form li:hover{background:#ffd}.x .form li:first-child{border-top:0}.x .form li>label:first-child{display:block;font-weight:700}.x .form li label em{font-weight:400}.x .form label.overlap{position:absolute;color:#aaa}.x .form input[type=file],.x .form input[type=password],.x .form input[type=text],.x .form select[size],.x .form textarea{position:relative;width:280px;margin:2px 0;border:1px solid #b7b7b7;border-right-color:#e1e1e1;border-bottom-color:#e1e1e1;background:0 0}.x .form input[type=file],.x .form input[type=password],.x .form input[type=text]{height:22px;line-height:22px;vertical-align:middle;padding:0 4px}.x .form input[type=checkbox],.x .form input[type=radio]{margin:0;padding:0;width:13px;height:13px;vertical-align:middle}.x .form input[type=checkbox][disabled=disabled],.x .form input[type=password][disabled=disabled],.x .form input[type=radio][disabled=disabled],.x .form input[type=text][disabled=disabled],.x .form select[disabled=disabled],.x .form textarea[disabled=disabled]{background:#ddd;text-shadow:1px 1px 0 #fff}.x .form textarea{padding:3px 4px;vertical-align:top;resize:both}.x .form em.desc,.x .form span.desc{line-height:22px;vertical-align:middle;margin:0 10px}.x .form p.desc{margin:.25em 0;line-height:1.4}.x .form .q{font-weight:700;margin:0 0 5px}.x .form .a{margin:0 0 5px}.x .form .tgForm{margin-right:1em}.x .cnb{margin:1em 0;position:relative;zoom:1}.x .cnb:after{content:"";display:block;clear:both}.x .cnb ul{list-style:none;margin:0;padding:0}.x .cnb li{display:inline}.x .cnb li:before{content:"| ";color:#ccc}.x .cnb li:first-child:before{content:""}.x .cnb .active,.x .cnb .active a{font-weight:700;color:#333;text-decoration:none}.x .cnb .side{float:right}.x .pagination{margin:1em 0;text-align:center;line-height:normal}.x .pagination *{vertical-align:middle}.x .pagination a,.x .pagination strong{position:relative;display:inline-block;padding:2px 4px;font-weight:700;text-decoration:none;line-height:normal;color:#333!important;vertical-align:middle}.x .pagination a:active,.x .pagination a:focus,.x .pagination a:hover{border:1px solid #ddd;margin:0 -1px}.x .pagination strong{color:#e00!important;font-size:20px}.x .pagination .direction{font-weight:400;white-space:nowrap}.x .pagination .direction:active,.x .pagination .direction:focus,.x .pagination .direction:hover{border:0;margin:0;text-decoration:underline}.x .pagination input{width:30px;text-align:center}.x .pagination button{overflow:visible}.x .prgrs{white-space:nowrap;line-height:normal;vertical-align:middle}.x .prgrs *{vertical-align:middle}.x .prgrs .pBar{position:relative;display:inline-block;background:#e9e9e9;margin:0 5px 0 0}.x .prgrs .pAction{display:inline-block;vertical-align:top;background:#99a6b6}.x .prgrs .pNum{width:100%;left:0;top:0;text-align:center;text-shadow:1px 1px 0 #fff}.x .prgrs.prgrsSmall{font-size:14px;line-height:14px}.x .prgrs.prgrsSmall .pAction,.x .prgrs.prgrsSmall .pBar,.x .prgrs.prgrsSmall .pNum{height:16px;line-height:16px;font-size:11px}.x .prgrs.prgrsMedium{font-size:24px;line-height:24px}.x .prgrs.prgrsMedium .pAction,.x .prgrs.prgrsMedium .pBar,.x .prgrs.prgrsMedium .pNum{height:22px;line-height:22px;font-size:12px}.x .prgrs.prgrsLarge{font-size:38px;line-height:38px}.x .prgrs.prgrsLarge .pAction,.x .prgrs.prgrsLarge .pBar,.x .prgrs.prgrsLarge .pNum{height:34px;line-height:34px;font-size:14px}.modal{position:absolute;top:0;left:0;width:100%;_height:100%;min-height:100%;z-index:1050}.modal .bg{position:absolute;background:#000;_background:0 0;width:100%;height:100%;opacity:.5;z-index:2;filter:alpha(opacity=50);zoom:1}.modal .fg{position:relative;width:80%;margin:5em auto;background:#fff;padding:0 1em;*padding:1em;border:8px solid #ddd;z-index:3;zoom:1;border-radius:5px;box-shadow:0 0 6px #000}.modal .lined,.modal .table,.modal ol,.modal ul{margin-bottom:1em}.modal .ie6{position:absolute;left:0;top:0;width:100%;height:100%;border:0;opacity:0;filter:alpha(opacity=0);z-index:1}.modalClose{position:absolute;right:-8px;top:-8px;border:0;background:#ddd;padding:0;width:28px;height:28px;font-size:14px;font-weight:700;cursor:pointer;color:#999;border-radius:5px}.modalBlur{position:absolute;top:0;right:0;border:0;background:0 0;padding:0;width:1px;height:1px;overflow:hidden} \ No newline at end of file +@charset "utf-8";body,html{min-height:100%}body{-webkit-text-size-adjust:none}body>.x:first-child{min-width:300px;max-width:1240px;margin:0 auto}.x button,.x input,.x label,.x select,.x table,.x textarea,body>.x{font-size:13px}.x strong,.x th{font-weight:600}.x dfn,.x em{font-style:normal}.x [disabled]{cursor:not-allowed}.x [hidden]{display:none}.x a[target="_blank"]:after{content:"";display:inline-block;width:14px;height:14px;vertical-align:middle;margin:-2px 0 0 2px;background-position:-120px -72px;opacity:.3;filter:alpha(opacity=30)}.x a[target="_blank"]:focus:after,.x a[target="_blank"]:hover:after{opacity:.7;filter:alpha(opacity=70)}.x mark{background-color:#FF0;color:#000}.x .x_page-header{margin-top:10px;padding-bottom:0;border-bottom:2px solid #ddd}.x .x_page-header>h1{position:relative;margin-bottom:0;font-size:24px;color:#333}.x .x_page-header>h1>.x_icon-question-sign{margin:0}.x .x_page-header>h1>.path+.x_icon-question-sign{margin:4px 0 0}.x .x_icon-question-sign{vertical-align:middle}.x h1,.x h2,.x h3,.x h4,.x h5,.x h6{line-height:1.5;font-weight:600;color:#666;text-rendering:auto}.x h1{font-size:22px}.x h2{font-size:18px}.x h3{font-size:14px}.x h4,.x h5,.x h6{font-size:12px}.x [class*=" x_icon-"],.x [class^=x_icon-]{text-decoration:none;border:0;padding:0 0 0 14px;width:0;background-color:transparent;overflow:hidden;font-size:0}.x .x_close{width:32px;height:32px;font-size:17px;opacity:.5;filter:alpha(opacity=50)}.x .x_alert{position:relative}.x .x_alert>.x_close{position:absolute;top:0;right:0}.x .x_pagination{height:26px;margin:10px 0 0}.x .x_pagination ul>li>a,.x .x_pagination ul>li>span,.x .x_pagination ul>li>strong{line-height:24px;padding:0 8px}.x .x_pagination ul>.x_active>a,.x .x_pagination ul>.x_active>span,.x .x_pagination ul>.x_active>strong{line-height:26px;border:0;background-color:#333!important;color:#fff;font-weight:700;font-size:18px;font-family:Arial,Helvetica,sans-serif;border-radius:2px}.x .x_pagination [id^=goTo]{display:none;margin:0;padding:0}.x .x_pagination [id^=goTo]>*{border:0;border-radius:0}.x .x_pagination [id^=goTo]>[type=number]{height:16px;line-height:16px;width:50px;text-align:center}.x .x_pagination [id^=goTo]>[type=submit]{line-height:24px;height:24px;padding:0 6px}.x .btn{color:#333}.x .x_btn{border-radius:2px;overflow:visible;font-size:14px;line-height:18px;padding:3px 9px;text-decoration:none!important}.x .x_btn-large{font-size:16px;padding:9px 14px;font-weight:700}.x .x_btn-small{font-size:14px}.x .x_btn-mini{font-size:11px;padding:1px 6px;line-height:17px}.x .x_btn-link{padding:0;margin:0;overflow:visible;font-size:13px;border:0}.x .x_btn-group{zoom:1}.x .x_btn-group:after{content:"";display:block;clear:both}.x .x_btn-group>.x_btn{border-radius:0}.x .x_btn-group>.x_btn:last-child,.x .x_btn-group>.x_dropdown-toggle{border-top-right-radius:2px;border-bottom-right-radius:2px}.x .x_btn-group>.x_btn:first-child{border-bottom-left-radius:2px;border-top-left-radius:2px}.x .x_btn-group>.x_btn-inverse+.x_btn-inverse{border-left-color:#555}.x input[type=checkbox],.x input[type=radio]{margin:0}.x input[type=file]{height:auto}.x td input,.x td select,.x td textarea{margin-bottom:0}.x [class*=x_icon-]{opacity:.5;filter:alpha(opacity=50)}.x :focus>[class*=x_icon-],.x :hover>[class*=x_icon-],.x [class*=x_icon-]:focus,.x [class*=x_icon-]:hover{opacity:1;filter:alpha(opacity=100)}.x .x_nav-tabs>li>a{padding-top:6px;padding-bottom:6px;text-decoration:none!important}.x .x_nav-tabs>li.x_active>a{font-weight:700}.x .x_table{margin:10px 0;border-top:2px solid #ddd;border-bottom:1px solid #ddd}.x h1+.x_table{border-top:0;margin-top:-10px}.x .x_table>caption{text-align:left;padding:0 0 10px;line-height:26px}.x .x_table>caption>a,.x .x_table>caption>i,.x .x_table>caption>strong{position:relative;top:7px}.x .x_table thead th{vertical-align:top}.x .x_table input{margin:0}.x .x_inline{display:inline-block;*display:inline;*zoom:1}.x .x_page-header+.x_form-horizontal{margin-top:-20px}.x .x_controls:after{content:"";display:block;clear:both}.x .x_form-horizontal .x_control-label,.x input:checked+label,.x label.checked{font-weight:700;word-break:keep-all}.x .x_form-horizontal .x_control-label{width:180px}.x .x_form-horizontal .x_controls{margin-left:200px;*margin-left:0}.x .x_form-horizontal .x_controls label{padding:5px 0;margin-bottom:0}.x input[type=checkbox]+label,.x input[type=radio]+label{font-weight:400}.x label.x_inline{margin-right:16px}.x .x_input-append>*{vertical-align:top}.x .x_input-append a.x_add-on,.x .x_input-prepend a.x_add-on{height:16px;line-height:16px}.x .x_input-append button.x_add-on,.x .x_input-prepend button.x_add-on{height:24px;line-height:16px}.x .x_modal-header{padding:10px 15px;border-bottom:1px solid #aaa;background-color:#333;border-radius:5px 5px 0 0;background-image:-webkit-linear-gradient(top,#666,#333 50%,#000 50%,#333 100%);background-image:-moz-linear-gradient(top,#666,#333 50%,#000 50%,#333 100%);background-image:-o-linear-gradient(top,#666,#333 50%,#000 50%,#333 100%);background-image:linear-gradient(top,#666,#333 50%,#000 50%,#333 100%)}.x .x_modal-header>h1,.x .x_modal-header>h2,.x .x_modal-header>h3{font-size:16px;line-height:30px;margin:0;color:#fff;text-shadow:0 -1px 0 #000}.x .x_modal-body{overflow-y:visible;max-height:none}.x_modal,.x_modal-backdrop{display:none}.x_modal-backdrop{opacity:.6;filter:alpha(opacity=60)}.x_modal{padding:0;width:90%;margin:0 0 0 -45%;max-width:none;border-radius:6px}.x_modal>form{margin:0!important}.x_modal>.x_close{position:absolute;top:8px;right:10px;font-size:21px;color:#fff}.x_modal .x_modal-body{background:#fff;min-height:50px;overflow-y:auto;max-height:400px}.x_modal-body:after{content:"";display:block;clear:both}.x .x_control-group{padding-top:8px;border-top:1px dotted #ddd;clear:both}.x .x_control-group:before{content:"";display:block;clear:both}.x .x_control-group:first-child,.x .x_control-group:first-of-type{border-top:0;padding-top:0}.x .x_control-group select{width:auto;min-width:220px}.x .x_form-horizontal .x_control-group{margin-bottom:10px}.x input[type=color],.x input[type=date],.x input[type=datetime-local],.x input[type=datetime],.x input[type=email],.x input[type=month],.x input[type=number],.x input[type=password],.x input[type=search],.x input[type=tel],.x input[type=text],.x input[type=time],.x input[type=url],.x input[type=week]{height:16px;line-height:16px}.x input[type=number]{width:50px}.x select{padding:0;height:26px;line-height:26px}.x select[multiple]{height:auto}.x textarea{vertical-align:top}.x .x_tab-content{overflow:visible}.x .x_well>:first-child{margin-top:0}.x .x_well>:last-child{margin-bottom:0}.x legend{font-size:14px;font-weight:700;line-height:24px}.x label{font-weight:inherit}.x label:only-child,.x p:last-child,.x td p{margin-bottom:0}.x form{margin:0 0 10px}.x form .x_btn[type=submit]:only-child{min-width:120px}.x .x_help-inline{display:inline}.x .x_btn.x_disabled,.x .x_btn[disabled]{opacity:.5;filter:alpha(opacity=50);cursor:not-allowed}@media all and (max-width:980px){.x .x_form-horizontal .x_control-label{float:none;width:auto;text-align:left}.x .x_form-horizontal .x_controls{margin-left:0}}.x .section{margin:20px 0 40px}.x .section>h1{position:relative;border-bottom:1px solid #ddd;cursor:pointer}.x .section>h1>.snToggle{position:absolute;bottom:0;right:0;width:32px;height:32px;opacity:.5;filter:alpha(opacity=50)}.x .section>h1>.snToggle.x_icon-chevron-up{background-position:-279px -112px}.x .section>h1>.snToggle.x_icon-chevron-down{background-position:-303px -111px}.x .section>h2{position:relative;border-bottom:1px dotted #ddd}.x .section>h2+.x_control-group{border-top:0}.x .section.collapsed>*{display:none}.x .section.collapsed>h1{display:block}.x .center{text-align:center}.x .search{margin:10px 0 0}.x .search select{width:auto}.x .search>input[type=search]{height:16px;line-height:16px;width:120px}.x .vr{color:#ccc;font-style:normal}.x .nowr{white-space:nowrap}.x .btnArea{padding:10px 0;margin:10px 0;border-top:1px solid #ccc;text-align:right;zoom:1;clear:both}.x .btnArea:after{content:"";display:block;clear:both}.x a.active,.x li.active>a{color:#000;font-weight:700;text-decoration:none}.x .module_search+[readonly]{vertical-align:top;border-top-right-radius:0;border-bottom-right-radius:0}.x .module_search+[readonly]+a.x_btn{vertical-align:top;border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-5px}.x .fileBtn{position:relative;display:inline-block;overflow:hidden}.x .fileBtn>input[type=file]{position:absolute;top:0;right:0;margin:0;padding:0;border:0;outline:0;cursor:pointer;opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(4);-webkit-transform-origin:100% 0;-moz-transform:scale(4);-moz-transform-origin:100% 0;-o-transform:scale(4);-o-transform-origin:100% 0;transform:scale(4);transform-origin:100% 0}.x td>form,.x td>p:last-of-type,.x td>p:only-of-type{margin:0}.x [data-display=none]{display:none}.x .x_page-header .path{font-size:14px;display:inline-block}.x .x_page-header .path:first-letter{color:#ccc;font-weight:400}.x [data-toggle]+.x_help-block{margin-top:10px}.x input.switch{width:42px;height:16px;opacity:0;filter:alpha(opacity=0);position:relative;z-index:2}.x input.switch+i{position:relative!important;z-index:1;left:auto!important;top:auto!important;right:auto!important;bottom:auto!important;margin:0 0 0 -42px!important;opacity:1!important;filter:alpha(opacity=100)!important;padding:0;vertical-align:middle;display:inline-block;width:42px;height:16px;background-image:url(../../../../modules/admin/tpl/img/toggleSwitch.png)!important;background-repeat:no-repeat}.x input[checked].switch+i{background-position:0 -16px!important}.x_modal._common{width:600px;margin-left:-300px}.x_modal._common._small{width:400px;margin-left:-200px}@media all and (max-width:650px){.x_modal._common{width:90%;margin-left:-45%}}@media all and (max-width:450px){.x_modal._common._small{width:90%;margin-left:-45%}}.x_modal._common._nobody .x_modal-body,.x_modal._common._type_alert ._cancel,.x_modal._common._type_alert .x_modal-header{display:none}.x_modal._common._type_alert .x_modal-body{border-radius:6px 6px 0 0}.x_modal._common._nobody .x_modal-footer{border-top:0}.x_modal-body.showTree .moveList{float:left;width:60%}.x_modal-body.showTree .moveTree{display:block!important;float:right;width:38%}.x_modal-body.showTree .moveTree>h1{font-size:13px;color:#333;border-bottom:2px solid #ddd;padding:10px 0 7px}@media all and (max-width:960px){.x_modal-body.showTree .moveList,.x_modal-body.showTree .moveTree{float:none;width:auto}}.x .dashboard>div>section>h2:before,.x a[target="_blank"]:after,.x>.body>.gnb>ul>li>a>i{background-image:url(../img/glyphicons-halflings.png);background-repeat:no-repeat}.x>.body>.gnb>ul>li.active>a>i,.x>.body>.gnb>ul>li.open>a>i,.x_modal-body .tree .jstree-clicked>i,.x_modal-body .tree .jstree-hovered>i{background-image:url(../img/glyphicons-halflings-white.png);background-repeat:no-repeat}@media all and (max-width:800px){.x>.body>.gnb>ul>li:first-child>a>i{background-image:url(../img/glyphicons-halflings-white.png);background-repeat:no-repeat}}.x>.skipNav{margin:0}.x>.skipNav>a{display:block;height:1px;text-align:center;border-radius:4px;overflow:hidden;color:#333;text-decoration:none}.x>.skipNav>a:focus{height:auto;margin:5px 0;padding:8px 0;background:#fff}.x>.header{position:relative;z-index:2;padding:10px 15px;border-bottom:1px solid #ddd;background-color:#fff;zoom:1}.x>.header:after{content:"";display:block;clear:both}.x>.header:before{content:"";position:absolute;bottom:0;left:1px;right:1px;height:1px;box-shadow:0 2px 3px #ddd}.x>.body{position:relative;zoom:1;padding:0 0 50px 215px;z-index:1}.x>.body.wide{padding-left:70px}.x>.body:after{content:"";display:block;clear:both}.x>.body>.content{width:100%;padding:1px 0 0;float:right;margin:0 0 0 -100%;outline:0}.x>.body>.content>:first-child{margin-top:0}.x>.body>.gnb{width:180px;position:relative;margin:15px 0 0 -215px;float:left;display:inline}.x>.body.wide>.gnb{width:38px;margin-left:-70px}@media all and (max-width:800px){.x>.header{border-bottom:0}.x>.header:before{content:normal}.x>.body,.x>.body.wide{padding:0}.x>.body>.content{width:auto;padding:1px 10px 0;float:none;margin:0 0 30px}.x>.body>.gnb{float:none;display:block;width:auto;margin:0!important;border-radius:0;position:relative;top:auto;left:auto}.x>.body.wide>.gnb{width:auto}}.x>.header>h1{display:inline-block;*display:inline;zoom:1;margin:0 15px 0 0;white-space:nowrap}.x>.header>h1>a{text-decoration:none;color:#333;font-size:24px;line-height:40px;font-family:Arial,Helvetica,sans-serif}.x>.header>h1>a>img{vertical-align:middle}.x>.header>.site{display:inline-block;*display:inline;zoom:1;margin:14px 0 0;font-size:11px}.x>.header>.site>a{text-decoration:none;color:#666;font-family:Tahoma,Geneva,sans-serif}.x>.header>.site>a:focus,.x>.header>.site>a:hover{text-decoration:underline}.x>.header>.account{float:right;position:relative;margin:13px 0 0}.x>.header>.account>ul{list-style:none;margin:0;padding:0}.x>.header>.account>ul>li{display:inline}.x>.header>.account>ul>li:before{content:"| ";color:#ddd}.x>.header>.account>ul>li:first-child:before{content:normal}.x>.header>.account>ul>li>a{text-decoration:none;color:#666}.x>.header>.account>ul>li>a:focus,.x>.header>.account>ul>li>a:hover{text-decoration:underline}.x>.header>.account .lang+#lang{position:absolute;top:20px;left:auto;right:0;min-width:0}.x>.header>.account .lang+#lang a:focus,.x>.header>.account .lang+#lang a:hover{background:0 0;color:#333}.x>.header>.account .lang+#lang .x_active>a{color:#fff;background:#0081c2 -webkit-linear-gradient(top,#08c,#0077b3);background:#0081c2 -moz-linear-gradient(top,#08c,#0077b3);background:#0081c2 -o-linear-gradient(top,#08c,#0077b3)}@media all and (max-width:480px){.x>.header>.site{margin-top:0}}@media all and (max-width:800px){.x>.header>.account{margin-top:0}}.x>.footer{border-top:1px solid #ddd;padding:10px 15px;zoom:1}.x>.footer:after{content:"";display:block;clear:both}.x>.footer>p{margin:0}.x>.footer>.power{float:left;color:#666}.x>.footer>.cache{float:right}.x>.footer>.cache>*{color:#666}.x>.footer .vr{color:#ccc!important}.x>.body>.gnb ul{margin:0;padding:0;list-style:none}.x>.body>.gnb>ul{position:relative;z-index:1;box-shadow:0 0 4px #ccc;border:2px solid #fff}.x>.body>.gnb a{text-decoration:none;text-shadow:0 1px 0 #fff;color:#000;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.x>.body>.gnb>a[href="#gnbNav"]{display:block;position:absolute;z-index:2;white-space:nowrap;font-size:0;top:50%;right:-14px;background:#eee;width:12px;height:50px;border-radius:0 3px 3px 0;margin:-25px 0 0 0;border:1px solid #ddd;border-left:0;overflow:hidden;text-indent:20px}.x>.body.wide>.gnb>a[href="#gnbNav"]>b{border-color:transparent;border-left-color:#666;margin:-4px 0 0 -2px}.x>.body>.gnb>a[href="#gnbNav"]>b{width:0;height:0;position:absolute;top:50%;left:50%;margin:-4px 0 0 -6px;border:4px solid;border-color:transparent;border-right-color:#666}.x>.body>.gnb>a>i{display:none}.x>.body>.gnb .exMenu{position:absolute;width:100%}.x>.body>.gnb .exMenu>button{width:100%;border:0;background:0 0;font-size:20px;line-height:25px}.x>.body>.gnb .exMenu>button>i{opacity:.5;filter:alpha(opacity=50);vertical-align:middle;text-indent:0}.x>.body>.gnb .exMenu>button:focus>i,.x>.body>.gnb .exMenu>button:hover>i{opacity:1;filter:alpha(opacity=100)}.x>.body>.gnb .exMenu .x_icon-chevron-up,.x>.body>.gnb>.ex .exMenu .x_icon-chevron-down{display:none}.x>.body>.gnb>.ex .exMenu .x_icon-chevron-up{display:inline-block}.x>.body>.gnb>ul>li[data-index="1"]{border-top-color:#eee}.x>.body>.gnb>ul>li[data-index="5"]{margin-bottom:25px}.x>.body>.gnb>ul>li[data-index="6"]{border-top-color:#eee}.x>.body>.gnb>ul>li[data-index="6"],.x>.body>.gnb>ul>li[data-index="7"]{display:none}.x>.body>.gnb>.ex>li[data-index="6"],.x>.body>.gnb>.ex>li[data-index="7"]{display:block}.x>.body>.gnb>ul>li[data-index].active_{display:none}@media all and (max-width:800px){.x>.body>.gnb>ul{border:0}.x>.body>.gnb>ul>li{display:none}.x>.body>.gnb.open>ul>li{display:block}.x>.body>.gnb.open>ul>li[data-index="6"],.x>.body>.gnb.open>ul>li[data-index="7"],.x>.body>.gnb>.ex>li[data-index="6"],.x>.body>.gnb>.ex>li[data-index="7"]{display:none}.x>.body>.gnb.open>.ex>li[data-index="6"],.x>.body>.gnb.open>.ex>li[data-index="7"]{display:block}.x>.body>.gnb>ul>li:first-child{display:block!important}.x>.body.wide>.gnb>a[href="#gnbNav"],.x>.body>.gnb>a[href="#gnbNav"]{top:0;right:0;line-height:37px;width:44px;height:auto;background:0 0;border-radius:0;margin:0;border:0}.x>.body>.gnb>a[href="#gnbNav"]{opacity:.5;filter:alpha(opacity=50%)}.x>.body>.gnb>a[href="#gnbNav"]:before{content:"";position:absolute;top:1px;left:0;width:1px;height:100%;border-left:1px solid #999}.x>.body>.gnb>a[href="#gnbNav"]>b{display:none}.x>.body>.gnb>a>i{display:block;position:absolute;top:50%;left:50%;margin:-7px 0 0 -7px}}.x>.body>.gnb>ul>li{background:#3886d0;border-top:1px solid #fff;border-bottom:1px solid #ddd;vertical-align:top;white-space:nowrap}.x>.body>.gnb>ul>li.active{background:#222}.x>.body>.gnb>ul>li.active,.x>.body>.gnb>ul>li.open{border-bottom:0;padding:0 0 1px}.x>.body>.gnb>ul>li>a{position:relative;padding:8px 5px 8px 10px;background:#f1f1f1;background:-webkit-linear-gradient(top,#F1F1F1,#E8E8E8);background:-moz-linear-gradient(top,#F1F1F1,#E8E8E8);background:-o-linear-gradient(top,#F1F1F1,#E8E8E8);background:-ms-linear-gradient(top,#F1F1F1,#E8E8E8);background:linear-gradient(top,#F1F1F1,#E8E8E8)}.x>.body>.gnb>ul>li>a>i{display:inline-block;width:14px;height:14px;margin:-4px 4px 0 0;vertical-align:middle;opacity:.75;filter:alpha(opacity=75)}.x>.body>.gnb>ul>li>a>b{position:absolute;width:0;height:0;top:50%;right:10px;margin:-2px 0 0 0;border:4px solid transparent;border-top-color:#999}.x>.body>.gnb>ul>li.open>a>b{border-top:0;border-bottom-color:#fff}.x>.body.wide>.gnb>ul>li>a>b{display:none}.x>.body>.gnb>ul>li[data-index="1"]>a>i{background-position:-384px -144px}.x>.body>.gnb>ul>li[data-index="2"]>a>i{background-position:0 -24px}.x>.body>.gnb>ul>li[data-index="3"]>a>i{background-position:-168px 0}.x>.body>.gnb>ul>li[data-index="4"]>a>i{background-position:-48px -48px}.x>.body>.gnb>ul>li>a[href="#favorite"]>i{background-position:-120px 0}.x>.body>.gnb>ul>li[data-index="6"]>a>i{background-position:-360px -144px}.x>.body>.gnb>ul>li[data-index="7"]>a>i{background-position:-432px 0}.x>.body>.gnb>ul>li>a:focus,.x>.body>.gnb>ul>li>a:hover{background:#f6f6f6;background:-webkit-linear-gradient(top,#f6f6f6,#F1F1F1);background:-moz-linear-gradient(top,#f6f6f6,#F1F1F1);background:-o-linear-gradient(top,#f6f6f6,#F1F1F1);background:-ms-linear-gradient(top,#f6f6f6,#F1F1F1);background:linear-gradient(top,#f6f6f6,#F1F1F1)}.x>.body>.gnb>ul>li.open>a{font-weight:700;color:#fff;text-shadow:0 -1px 0 #333;background:#3886d0;background:-webkit-linear-gradient(top,#6ebcea,#3886d0);background:-moz-linear-gradient(top,#6ebcea,#3886d0);background:-o-linear-gradient(top,#6ebcea,#3886d0);background:-ms-linear-gradient(top,#6ebcea,#3886d0);background:linear-gradient(top,#6ebcea,#3886d0)}.x>.body>.gnb>ul>li.active>a{font-weight:700;color:#fff;text-shadow:none;background:#222;background:-webkit-linear-gradient(top,from(#555),to(#222));background:-moz-linear-gradient(top,#555,#222);background:-o-linear-gradient(top,#555,#222)}@media all and (max-width:800px){.x>.body>.gnb>ul>li:first-child>a{font-weight:700;color:#fff;text-shadow:none;border-radius:3px;background-color:#222;background-image:-webkit-linear-gradient(top,#555,#222);background-image:-moz-linear-gradient(top,#555,#222);background-image:-o-linear-gradient(top,#555,#222);background-image:linear-gradient(top,#555,#222)}}.x>.body.wide>.gnb>ul>li>a>.tx{display:inline-block;width:1px;height:1px;overflow:hidden}.x>.body>.gnb>ul>li>ul{display:none;margin:0 10px 10px;border-radius:4px}.x>.body>.gnb>ul>li.active>ul{display:block!important}.x>.body.wide>.gnb>ul>li>ul{display:none!important}.x>.body>.gnb>ul>li>ul>li{border-top:1px solid #ddd;position:relative}.x>.body>.gnb>ul>li>ul>li:first-child{border:0}.x>.body>.gnb>ul>li>ul>li.active_{box-shadow:0 0 3px #999;z-index:99;border:1px solid #666;border-left:0;border-right:0}.x>.body>.gnb>ul>li>ul>li>a{padding:4px 5px 4px 15px;background:#e8e8e8;background:-webkit-linear-gradient(top,#f1f1f1,#e8e8e8);background:-moz-linear-gradient(top,#f1f1f1,#e8e8e8);background:-o-linear-gradient(top,#f1f1f1,#e8e8e8);background:-ms-linear-gradient(top,#f1f1f1,#e8e8e8);background:linear-gradient(top,#f1f1f1,#e8e8e8)}.x>.body>.gnb>ul>li>ul#favorite>li>a{padding:4px 25px 4px 15px}.x>.body>.gnb>ul>li>ul>li:first-child>a{border-radius:4px 4px 0 0}.x>.body>.gnb>ul>li>ul>li:last-child>a{border-radius:0 0 4px 4px}.x>.body>.gnb>ul>li>ul>li:only-child>a{border-radius:4px}.x>.body>.gnb>ul>li>ul>li.active_>a,.x>.body>.gnb>ul>li>ul>li>a:active,.x>.body>.gnb>ul>li>ul>li>a:hover{font-weight:700;background:-webkit-linear-gradient(top,#F6F6F6,#F1F1F1);background:-moz-linear-gradient(top,#F6F6F6,#F1F1F1);background:-o-linear-gradient(top,#F6F6F6,#F1F1F1);background:-ms-linear-gradient(top,#F6F6F6,#F1F1F1);background:linear-gradient(top,#F6F6F6,#F1F1F1)}.x>.body>.gnb>ul>li>ul>li.active_>a:after{content:"";position:absolute;top:8px;right:-12px;border:6px solid transparent;border-left-color:#f3f3f3;width:0;height:0;overflow:hidden}.x>.body>.gnb>ul>li>ul>li>.remove{position:absolute;top:4px;right:5px}.x>.body>.gnb>ul>li>ul>li>.remove>.x_close{width:20px;height:20px}@media all and (max-width:800px){.x>.body.wide>.gnb>ul>li>a>.tx{width:auto;height:auto}}.x .dashboard{zoom:1}.x .dashboard:after{content:"";display:block;clear:both}.x .dashboard>div{float:right;width:49%}.x .dashboard>div:first-child{float:left}.x .dashboard>div>section{position:relative;height:196px;border:1px solid #ddd;border-radius:4px;margin:0 0 25px;overflow:hidden}.x .dashboard>div>section>h2{font-size:14px;margin:0;padding:6px 15px;border-bottom:1px solid #ddd;background:#e8e8e8;background:-webkit-linear-gradient(top,#F1F1F1,#E8E8E8);background:-moz-linear-gradient(top,#F1F1F1,#E8E8E8);background:-o-linear-gradient(top,#F1F1F1,#E8E8E8);background:-ms-linear-gradient(top,#F1F1F1,#E8E8E8);background:linear-gradient(top,#F1F1F1,#E8E8E8);text-shadow:0 1px 0 #fff}.x .dashboard>div>section>h2:before{content:"";display:inline-block;width:14px;height:14px;margin:0 4px 0 0;vertical-align:middle;opacity:.5;filter:alpha(opacity=50)}.x .dashboard>div>.status>h2:before{background-position:-408px 0}.x .dashboard>div>.status dl{color:#767676;display:inline-block;*display:inline;zoom:1;margin:0 8px 0 0;padding:1px 8px 0;font:11px/1 돋움,Dotum,Arial,Helvetica,sans-serif;background:#fff;box-shadow:0 0 3px #999 inset;border-radius:3px;min-width:60px;text-align:center}.x .dashboard>div>.status dt{display:inline;font-weight:400}.x .dashboard>div>.status dd{display:inline;margin:0}.x .dashboard>div>.status dl a{color:#767676}.x .dashboard>div>.member>h2:before{background-position:-168px 0}.x .dashboard>div>.document>h2:before{background-position:-264px -48px}.x .dashboard>div>.reply>h2:before{background-position:-240px -120px}.x .dashboard>div>.trackback>h2:before{background-position:-216px -120px}.x .dashboard>div>section>.more{position:absolute;top:7px;right:15px;text-shadow:0 1px 0 #fff}.x .dashboard>div>section>.more i{font:12px Tahoma,Geneva,sans-serif}.x .dashboard>div>section>.more dl{color:#767676;display:inline-block;*display:inline;zoom:1;margin:0 8px 0 0;padding:1px 8px 0;font:11px/1 돋움,Dotum,Arial,Helvetica,sans-serif;background:#fff;box-shadow:0 0 3px #999 inset;border-radius:3px;min-width:60px;text-align:center}.x .dashboard>div>section>.more dt{display:inline;font-weight:400}.x .dashboard>div>section>.more dd{display:inline;margin:0}.x .dashboard>div>section>.more dl a{color:#767676}.x .dashboard>div>section ul{list-style:none;margin:10px;padding:0;overflow:hidden;zoom:1}.x .dashboard>div>section li{position:relative;height:28px;line-height:28px;padding:0 70px 0 5px;white-space:nowrap;overflow:hidden;zoom:1;vertical-align:top}.x .dashboard>div>section li.hover{background:#f4f4f4;border-radius:4px}.x .dashboard>div>section li>a{display:block;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x .dashboard>div>section li>.side{position:absolute;top:0;right:5px;line-height:28px;width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;zoom:1}.x .dashboard>div>section li>.action{display:none;position:absolute;top:0;right:5px;margin:0;padding:0 0 0 40px;text-align:right;white-space:nowrap;line-height:28px;background:#f4f4f4}.x .dashboard>div>section li>.action>button{margin:0 0 0 4px;padding:0 0 0 15px;overflow:visible}@media all and (max-width:980px){.x .dashboard>div{float:none!important;width:auto}}.x .g11n>.x_add-on{font-size:0;position:relative;cursor:pointer;text-decoration:none;*color:#eee}.x .g11n>.x_add-on>i{position:absolute;top:50%;left:50%;margin:-7px 0 0 -7px;z-index:1;opacity:.25;filter:alpha(opacity=25)}.x .g11n>.x_add-on.remover{display:none;width:26px;height:26px}.x .g11n.active>[disabled]{padding-left:25px;background-position:4px 6px;background-repeat:no-repeat}.x .g11n.active>.x_add-on.remover{display:inline-block}.x .g11n>.x_add-on:hover>i{opacity:1;filter:alpha(opacity=100)}.x .g11n>textarea{border-top-right-radius:0;overflow-x:hidden}#g11n #lang_search .list{border-top:2px solid #ddd}#g11n #lang_search .item{border-bottom:1px solid #ddd;margin:0}#g11n #lang_search .item>a{display:block;padding:8px 0;position:relative}#g11n #lang_search .item>a>i{position:absolute;top:50%;margin:-7px 0 0 0;right:0;opacity:.5;filter:alpha(opacity=50)}#g11n #lang_search .item>fieldset{display:none;padding:0 0 15px}#g11n .item input[type=text],#g11n .item textarea{padding-left:25px;width:187px;background-repeat:no-repeat;background-position:4px 8px;overflow-x:hidden}#g11n .flag{padding-left:18px;background-repeat:no-repeat;background-position:0 50%}#g11n .flag.en,#g11n .item .en,html[lang=en] .x .g11n.active>[disabled]{background-image:url(../img/flag.en.gif)}#g11n .flag.ko,#g11n .item .ko,html[lang=ko] .x .g11n.active>[disabled]{background-image:url(../img/flag.ko.gif)}#g11n .flag.jp,#g11n .item .jp,html[lang=jp] .x .g11n.active>[disabled]{background-image:url(../img/flag.jp.gif)}#g11n .flag.zh-CN,#g11n .item .zh-CN,html[lang=zh] .x .g11n.active>[disabled]{background-image:url(../img/flag.cn.gif)}#g11n .flag.zh-TW,#g11n .item .zh-TW,html[lang=zh] .x .g11n.active>[disabled]{background-image:url(../img/flag.tw.gif)}#g11n .flag.fr,#g11n .item .fr,html[lang=fr] .x .g11n.active>[disabled]{background-image:url(../img/flag.fr.gif)}#g11n .flag.de,#g11n .item .de,html[lang=de] .x .g11n.active>[disabled]{background-image:url(../img/flag.de.gif)}#g11n .flag.ru,#g11n .item .ru,html[lang=ru] .x .g11n.active>[disabled]{background-image:url(../img/flag.ru.gif)}#g11n .flag.es,#g11n .item .es,html[lang=es] .x .g11n.active>[disabled]{background-image:url(../img/flag.es.gif)}#g11n .item .tr,#gg1n .flag.tr,html[lang=tr] .x .g11n.active>[disabled]{background-image:url(../img/flag.tr.gif)}#g11n .flag.vi,#g11n .item .vi,html[lang=vi] .x .g11n.active>[disabled]{background-image:url(../img/flag.vi.gif)}#g11n .flag.mn,#g11n .item .mn,html[lang=mn] .x .g11n.active>[disabled]{background-image:url(../img/flag.mn.gif)}#g11n #lang_search .cancel,#g11n #lang_search .editMode .modify,#g11n #lang_search .editMode .useit,#g11n #lang_search .save{display:none}#g11n #lang_search .editMode .cancel,#g11n #lang_search .editMode .save{display:inline-block}.x .moduleWindow{position:absolute;z-index:100;padding:15px 20px}.x .moduleWindow ul{margin-bottom:0}.x .moduleWindow .siteList{margin-right:14px}.x .moduleWindow .siteList>input[type=search]{width:100%;padding-top:6px;padding-bottom:6px;border-radius:3px 3px 0 0;margin-bottom:0}.x .moduleWindow .siteList>ul{margin:-1px -14px 0 0}.x .moduleWindow .siteList>ul>li{background:#fff}.x .moduleWindow .siteList>ul>li:first-child>a{border-top-left-radius:0;border-top-right-radius:0}.x .moduleWindow select{width:100%}.x .textList{border:1px solid #ddd!important;line-height:1.5em;height:125px;overflow:auto}.x .textList li{position:relative;border:0;padding:0 10px;height:25px;line-height:25px;white-space:nowrap;overflow:hidden}.x .textList li:nth-child(even){background:#eee}.x .textList li>button{position:absolute;right:8px;top:50%;margin:-7px 0 0 0}.x .uDrag .wrap{position:relative;padding-left:20px}.x .uDrag li>.wrap{margin:0 0 0 8px}.x .uDrag .dragActive{background:#FFD}.x .uDrag .dragActive td,.x .uDrag .dragActive th{background:none!important}.x .uDrag .dragBtn{position:absolute;width:8px;height:100%;padding:0;overflow:hidden;background:url(../img/bgDragable.gif);top:1px;left:0;text-indent:12px;border:0;cursor:n-resize;white-space:nowrap;font-size:0}.x #faviconPreview{position:relative;padding:80px 0 0 200px;background:url(../img/bgFavicon.gif) no-repeat}.x #faviconPreview img{position:absolute}.x #faviconPreview .fn1{top:30px;left:12px}.x #faviconPreview .fn2{top:55px;left:68px}.x #mobiconPreview{position:relative;padding:270px 0 0 200px;background:url(../img/bgMobileTop.png) no-repeat}.x #mobiconPreview img{position:absolute;top:20px;left:10px;width:32px;height:32px}.x #mobiconPreview span{position:absolute;width:32px;text-align:center;top:52px;left:10px;color:#fff;font-size:9px}.x .layer{position:absolute;display:none;font-weight:400}.tree{margin:3px 0 5px;min-width:200px;background-color:transparent!important}.tree ul{margin:0;padding:0;list-style:none}.tree li{padding:0;white-space:nowrap;position:relative;border-radius:3px;vertical-align:top}.tree li>ul{margin:0}.tree a{text-decoration:none}.tree>ul{padding:1px}.tree .jstree-rename-input{margin-left:-16px;z-index:2}.tree>ul>li{margin-top:30px;position:relative}.tree>ul>li:before{content:"";display:block;border-top:1px dotted #ccc;position:relative;top:-15px}.tree>ul>li:first-child{margin-top:0}.tree>ul>li:first-child:before{content:normal}.tree>ul>li>a{font-weight:700;text-shadow:0 1px 0 #fff;vertical-align:middle}.tree>ul>li>a.jstree-clicked,.tree>ul>li>a.jstree-hovered,.tree>ul>li>a:focus,.tree>ul>li>a:hover{text-shadow:none}.tree>ul>li>ul{margin:0 0 0 18px}.tree>ul>li>ul>li{margin-left:0}.tree li>a{border:0!important;padding:0 8px!important;margin:0 0 1px;border-radius:3px;position:relative;z-index:2;height:23px;line-height:23px;max-width:160px;overflow:hidden;text-overflow:ellipsis;-webkit-transition:.2s;-moz-transition:.2s;-o-transition:.2s;transition:.2s}.tree li>a>i{opacity:.5;filter:alpha(opacity=50)}.tree .jstree-clicked>i,.tree .jstree-hovered>i{opacity:1;filter:alpha(opacity=100)}.tree a>.jstree-icon{display:none}.tree .jstree-closed>.jstree-icon,.tree .jstree-open>.jstree-icon{background-color:#fff}.x .h2,.x .h3,.x .h4{position:relative;border-style:solid;border-top:0;border-right:0;zoom:1;padding-left:8px}.x .h1{background:#444;border-radius:4px;color:#fff;margin:0 0 1em;font-size:16px;padding:0 15px;line-height:36px}.x .h2{border-width:3px;font-size:20px;border-color:#888}.x .h3{border-width:2px;font-size:16px;border-color:#aaa}.x .h4{border-width:1px;font-size:12px;border-color:#ccc}.x .h1+.table table,.x .h1+ul,.x .h2+.table table,.x .h2+ul,.x .h3+.table table,.x .h3+ul,.x .h4+.table table,.x .h4+ul{border-top:0!important;margin-top:-1em!important}.x .table{margin:1em 0}.x .table table{width:100%;border:0;border-collapse:collapse;border-top:2px solid #ccc}.x .table caption{font-weight:700;text-align:left;line-height:22px;padding:5px 0}.x .table caption:after{content:"";display:block;clear:both}.x .table caption a{font-weight:400}.x .table caption em{float:right;margin-left:1em}.x .table caption strong{color:#e00}.x .table caption .side{float:right;font-weight:400;margin-left:1em}.x .table td,.x .table th{border:0;padding:8px;vertical-align:top;text-align:left;border-bottom:1px solid #ddd}.x .table th{background:#f8f8f8}.x .table thead th{border-bottom:1px solid #999}.x .table tfoot td{font-weight:700;background:#f8f8f8}.x .table.even tbody tr:nth-of-type(even){background-color:#fafafa}.x .table tbody tr:hover{background:#ffd!important}.x .table td>input[type=text]{margin:-1px 0!important;vertical-align:middle}.x .table img{vertical-align:middle}.x .table em{font-style:normal;font-weight:400;color:#e00}.x .form{margin:0 0 1em;padding:0}.x .form fieldset{margin:0 0 2em;padding:0;border:0}.x .form.search fieldset{border:1px solid #ccc;padding:5px 15px;border-radius:3px}.x .form em{font-style:normal;color:#e00}.x .form label{line-height:1;vertical-align:middle}.x .form input[type=checkbox]+label,.x .form input[type=radio]+label{margin-right:1em}.x .form input[type=checkbox]+label,.x .form input[type=file],.x .form input[type=radio]+label{cursor:pointer}.x .form ul{position:relative;margin:1em 0;padding:0;list-style:none;border-top:2px solid #ccc;border-bottom:1px solid #ccc;zoom:1}.x .form li{list-style:none;border:1px solid #ddd;border-left:0;border-right:0;margin:-1px 0;padding:8px 0;vertical-align:top;zoom:1}.x .form li:hover{background:#ffd}.x .form li:first-child{border-top:0}.x .form li>label:first-child{display:block;font-weight:700}.x .form li label em{font-weight:400}.x .form label.overlap{position:absolute;color:#aaa}.x .form input[type=file],.x .form input[type=password],.x .form input[type=text],.x .form select[size],.x .form textarea{position:relative;width:280px;margin:2px 0;border:1px solid #b7b7b7;border-right-color:#e1e1e1;border-bottom-color:#e1e1e1;background:0 0}.x .form input[type=file],.x .form input[type=password],.x .form input[type=text]{height:22px;line-height:22px;vertical-align:middle;padding:0 4px}.x .form input[type=checkbox],.x .form input[type=radio]{margin:0;padding:0;width:13px;height:13px;vertical-align:middle}.x .form input[type=checkbox][disabled=disabled],.x .form input[type=password][disabled=disabled],.x .form input[type=radio][disabled=disabled],.x .form input[type=text][disabled=disabled],.x .form select[disabled=disabled],.x .form textarea[disabled=disabled]{background:#ddd;text-shadow:1px 1px 0 #fff}.x .form textarea{padding:3px 4px;vertical-align:top;resize:both}.x .form em.desc,.x .form span.desc{line-height:22px;vertical-align:middle;margin:0 10px}.x .form p.desc{margin:.25em 0;line-height:1.4}.x .form .q{font-weight:700;margin:0 0 5px}.x .form .a{margin:0 0 5px}.x .form .tgForm{margin-right:1em}.x .cnb{margin:1em 0;position:relative;zoom:1}.x .cnb:after{content:"";display:block;clear:both}.x .cnb ul{list-style:none;margin:0;padding:0}.x .cnb li{display:inline}.x .cnb li:before{content:"| ";color:#ccc}.x .cnb li:first-child:before{content:""}.x .cnb .active,.x .cnb .active a{font-weight:700;color:#333;text-decoration:none}.x .cnb .side{float:right}.x .pagination{margin:1em 0;text-align:center;line-height:normal}.x .pagination *{vertical-align:middle}.x .pagination a,.x .pagination strong{position:relative;display:inline-block;padding:2px 4px;font-weight:700;text-decoration:none;line-height:normal;color:#333!important;vertical-align:middle}.x .pagination a:active,.x .pagination a:focus,.x .pagination a:hover{border:1px solid #ddd;margin:0 -1px}.x .pagination strong{color:#e00!important;font-size:20px}.x .pagination .direction{font-weight:400;white-space:nowrap}.x .pagination .direction:active,.x .pagination .direction:focus,.x .pagination .direction:hover{border:0;margin:0;text-decoration:underline}.x .pagination input{width:30px;text-align:center}.x .pagination button{overflow:visible}.x .prgrs{white-space:nowrap;line-height:normal;vertical-align:middle}.x .prgrs *{vertical-align:middle}.x .prgrs .pBar{position:relative;display:inline-block;background:#e9e9e9;margin:0 5px 0 0}.x .prgrs .pAction{display:inline-block;vertical-align:top;background:#99a6b6}.x .prgrs .pNum{width:100%;left:0;top:0;text-align:center;text-shadow:1px 1px 0 #fff}.x .prgrs.prgrsSmall{font-size:14px;line-height:14px}.x .prgrs.prgrsSmall .pAction,.x .prgrs.prgrsSmall .pBar,.x .prgrs.prgrsSmall .pNum{height:16px;line-height:16px;font-size:11px}.x .prgrs.prgrsMedium{font-size:24px;line-height:24px}.x .prgrs.prgrsMedium .pAction,.x .prgrs.prgrsMedium .pBar,.x .prgrs.prgrsMedium .pNum{height:22px;line-height:22px;font-size:12px}.x .prgrs.prgrsLarge{font-size:38px;line-height:38px}.x .prgrs.prgrsLarge .pAction,.x .prgrs.prgrsLarge .pBar,.x .prgrs.prgrsLarge .pNum{height:34px;line-height:34px;font-size:14px}.modal{position:absolute;top:0;left:0;width:100%;_height:100%;min-height:100%;z-index:1050}.modal .bg{position:absolute;background:#000;_background:0 0;width:100%;height:100%;opacity:.5;z-index:2;filter:alpha(opacity=50);zoom:1}.modal .fg{position:relative;width:80%;margin:5em auto;background:#fff;padding:0 1em;*padding:1em;border:8px solid #ddd;z-index:3;zoom:1;border-radius:5px;box-shadow:0 0 6px #000}.modal .lined,.modal .table,.modal ol,.modal ul{margin-bottom:1em}.modal .ie6{position:absolute;left:0;top:0;width:100%;height:100%;border:0;opacity:0;filter:alpha(opacity=0);z-index:1}.modalClose{position:absolute;right:-8px;top:-8px;border:0;background:#ddd;padding:0;width:28px;height:28px;font-size:14px;font-weight:700;cursor:pointer;color:#999;border-radius:5px}.modalBlur{position:absolute;top:0;right:0;border:0;background:0 0;padding:0;width:1px;height:1px;overflow:hidden} \ No newline at end of file diff --git a/modules/editor/components/image_gallery/tpl/popup.min.css b/modules/editor/components/image_gallery/tpl/popup.min.css index 5b3ea32bd3..5ac152cba8 100644 --- a/modules/editor/components/image_gallery/tpl/popup.min.css +++ b/modules/editor/components/image_gallery/tpl/popup.min.css @@ -1 +1 @@ -@charset "utf-8";body,html{min-height:100%}body{-webkit-text-size-adjust:none}body>.x:first-child{min-width:300px;max-width:1240px;margin:0 auto}.x button,.x input,.x label,.x select,.x table,.x textarea,body>.x{font-size:13px}.x strong,.x th{font-weight:600}.x dfn,.x em{font-style:normal}.x [disabled]{cursor:not-allowed}.x [hidden]{display:none}.x a[target="_blank"]:after{content:"";display:inline-block;width:14px;height:14px;vertical-align:middle;margin:-2px 0 0 2px;background-position:-120px -72px;opacity:.3;filter:alpha(opacity=30)}.x a[target="_blank"]:focus:after,.x a[target="_blank"]:hover:after{opacity:.7;filter:alpha(opacity=70)}.x mark{background-color:#FF0;color:#000}.x .x_page-header{margin-top:10px;padding-bottom:0;border-bottom:2px solid #ddd}.x .x_page-header>h1{position:relative;margin-bottom:0;font-size:24px;color:#333}.x .x_page-header>h1>.x_icon-question-sign{margin:0}.x .x_page-header>h1>.path+.x_icon-question-sign{margin:4px 0 0}.x .x_icon-question-sign{vertical-align:middle}.x h1,.x h2,.x h3,.x h4,.x h5,.x h6{line-height:1.5;font-weight:600;color:#666;text-rendering:auto}.x h1{font-size:22px}.x h2{font-size:18px}.x h3{font-size:14px}.x h4,.x h5,.x h6{font-size:12px}.x [class*=" x_icon-"],.x [class^=x_icon-]{text-decoration:none;border:0;padding:0 0 0 14px;width:0;background-color:transparent;overflow:hidden;font-size:0}.x .x_close{width:32px;height:32px;font-size:17px;opacity:.5;filter:alpha(opacity=50)}.x .x_alert{position:relative}.x .x_alert>.x_close{position:absolute;top:0;right:0}.x .x_pagination{height:26px;margin:10px 0 0}.x .x_pagination ul>li>a,.x .x_pagination ul>li>span,.x .x_pagination ul>li>strong{line-height:24px;padding:0 8px}.x .x_pagination ul>.x_active>a,.x .x_pagination ul>.x_active>span,.x .x_pagination ul>.x_active>strong{line-height:26px;border:0;background-color:#333!important;color:#fff;font-weight:700;font-size:18px;font-family:Arial,Helvetica,sans-serif;border-radius:2px}.x .x_pagination [id^=goTo]{display:none;margin:0;padding:0}.x .x_pagination [id^=goTo]>*{border:0;border-radius:0}.x .x_pagination [id^=goTo]>[type=number]{height:16px;line-height:16px;width:50px;text-align:center}.x .x_pagination [id^=goTo]>[type=submit]{line-height:24px;height:24px;padding:0 6px}.x .btn{color:#333}.x .x_btn{border-radius:2px;overflow:visible;font-size:14px;line-height:18px;padding:3px 9px;text-decoration:none!important}.x .x_btn-large{font-size:16px;padding:9px 14px;font-weight:700}.x .x_btn-small{font-size:14px}.x .x_btn-mini{font-size:11px;padding:1px 6px;line-height:17px}.x .x_btn-link{padding:0;margin:0;overflow:visible;font-size:13px;border:0}.x .x_btn-group{zoom:1}.x .x_btn-group:after{content:"";display:block;clear:both}.x .x_btn-group>.x_btn{border-radius:0}.x .x_btn-group>.x_btn:last-child,.x .x_btn-group>.x_dropdown-toggle{border-top-right-radius:2px;border-bottom-right-radius:2px}.x .x_btn-group>.x_btn:first-child{border-bottom-left-radius:2px;border-top-left-radius:2px}.x .x_btn-group>.x_btn-inverse+.x_btn-inverse{border-left-color:#555}.x input[type=checkbox],.x input[type=radio]{margin:0}.x input[type=file]{height:auto}.x td input,.x td select,.x td textarea{margin-bottom:0}.x [class*=x_icon-]{opacity:.5;filter:alpha(opacity=50)}.x :focus>[class*=x_icon-],.x :hover>[class*=x_icon-],.x [class*=x_icon-]:focus,.x [class*=x_icon-]:hover{opacity:1;filter:alpha(opacity=100)}.x .x_nav-tabs>li>a{padding-top:6px;padding-bottom:6px;text-decoration:none!important}.x .x_nav-tabs>li.x_active>a{font-weight:700}.x .x_table{margin:10px 0;border-top:2px solid #ddd;border-bottom:1px solid #ddd}.x h1+.x_table{border-top:0;margin-top:-10px}.x .x_table>caption{text-align:left;padding:0 0 10px;line-height:26px}.x .x_table>caption>a,.x .x_table>caption>i,.x .x_table>caption>strong{position:relative;top:7px}.x .x_table thead th{vertical-align:top}.x .x_table input{margin:0}.x .x_inline{display:inline-block;*display:inline;*zoom:1}.x .x_page-header+.x_form-horizontal{margin-top:-20px}.x .x_controls:after{content:"";display:block;clear:both}.x .x_form-horizontal .x_control-label,.x input:checked+label,.x label.checked{font-weight:700;word-break:keep-all}.x .x_form-horizontal .x_control-label{width:180px}.x .x_form-horizontal .x_controls{margin-left:200px;*margin-left:0}.x .x_form-horizontal .x_controls label{padding:5px 0;margin-bottom:0}.x input[type=checkbox]+label,.x input[type=radio]+label{font-weight:400}.x label.x_inline{margin-right:16px}.x .x_input-append>*{vertical-align:top}.x .x_input-append a.x_add-on,.x .x_input-prepend a.x_add-on{height:16px;line-height:16px}.x .x_input-append button.x_add-on,.x .x_input-prepend button.x_add-on{height:24px;line-height:16px}.x .x_modal-header{padding:10px 15px;border-bottom:1px solid #aaa;background-color:#333;border-radius:5px 5px 0 0;background-image:-webkit-linear-gradient(top,#666,#333 50%,#000 50%,#333 100%);background-image:-moz-linear-gradient(top,#666,#333 50%,#000 50%,#333 100%);background-image:-o-linear-gradient(top,#666,#333 50%,#000 50%,#333 100%);background-image:linear-gradient(top,#666,#333 50%,#000 50%,#333 100%)}.x .x_modal-header>h1,.x .x_modal-header>h2,.x .x_modal-header>h3{font-size:16px;line-height:30px;margin:0;color:#fff;text-shadow:0 -1px 0 #000}.x .x_modal-body{overflow-y:visible;max-height:none}.x_modal,.x_modal-backdrop{display:none}.x_modal-backdrop{opacity:.6;filter:alpha(opacity=60)}.x_modal{padding:0;width:90%;margin:0 0 0 -45%;max-width:none;border-radius:6px}.x_modal>form{margin:0!important}.x_modal>.x_close{position:absolute;top:8px;right:10px;font-size:21px;color:#fff}.x_modal .x_modal-body{background:#fff;min-height:50px;overflow-y:auto;max-height:400px}.x_modal-body:after{content:"";display:block;clear:both}.x .x_control-group{padding-top:8px;border-top:1px dotted #ddd;clear:both}.x .x_control-group:before{content:"";display:block;clear:both}.x .x_control-group:first-child,.x .x_control-group:first-of-type{border-top:0;padding-top:0}.x .x_control-group select{width:auto;min-width:220px}.x .x_form-horizontal .x_control-group{margin-bottom:10px}.x input[type=color],.x input[type=date],.x input[type=datetime-local],.x input[type=datetime],.x input[type=email],.x input[type=month],.x input[type=number],.x input[type=password],.x input[type=search],.x input[type=tel],.x input[type=text],.x input[type=time],.x input[type=url],.x input[type=week]{height:16px;line-height:16px}.x input[type=number]{width:50px}.x select{padding:0;height:26px;line-height:26px}.x select[multiple]{height:auto}.x textarea{vertical-align:top}.x .x_tab-content{overflow:visible}.x .x_well>:first-child{margin-top:0}.x .x_well>:last-child{margin-bottom:0}.x legend{font-size:14px;font-weight:700;line-height:24px}.x label{font-weight:inherit}.x label:only-child,.x p:last-child,.x td p{margin-bottom:0}.x form{margin:0 0 10px}.x form .x_btn[type=submit]:only-child{min-width:120px}.x .x_help-inline{display:inline}.x .x_btn.x_disabled,.x .x_btn[disabled]{opacity:.5;filter:alpha(opacity=50);cursor:not-allowed}@media all and (max-width:980px){.x .x_form-horizontal .x_control-label{float:none;width:auto;text-align:left}.x .x_form-horizontal .x_controls{margin-left:0}}.x .section{margin:20px 0 40px}.x .section>h1{position:relative;border-bottom:1px solid #ddd;cursor:pointer}.x .section>h1>.snToggle{position:absolute;bottom:0;right:0;width:32px;height:32px;opacity:.5;filter:alpha(opacity=50)}.x .section>h1>.snToggle.x_icon-chevron-up{background-position:-279px -112px}.x .section>h1>.snToggle.x_icon-chevron-down{background-position:-303px -111px}.x .section>h2{position:relative;border-bottom:1px dotted #ddd}.x .section>h2+.x_control-group{border-top:0}.x .section.collapsed>*{display:none}.x .section.collapsed>h1{display:block}.x .center{text-align:center}.x .search{margin:10px 0 0}.x .search select{width:auto}.x .search>input[type=search]{height:16px;line-height:16px;width:120px}.x .vr{color:#ccc;font-style:normal}.x .nowr{white-space:nowrap}.x .btnArea{padding:10px 0;margin:10px 0;border-top:1px solid #ccc;text-align:right;zoom:1;clear:both}.x .btnArea:after{content:"";display:block;clear:both}.x a.active,.x li.active>a{color:#000;font-weight:700;text-decoration:none}.x .module_search+[readonly]{vertical-align:top;border-top-right-radius:0;border-bottom-right-radius:0}.x .module_search+[readonly]+a.x_btn{vertical-align:top;border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-5px}.x .fileBtn{position:relative;display:inline-block;overflow:hidden}.x .fileBtn>input[type=file]{position:absolute;top:0;right:0;margin:0;padding:0;border:0;outline:0;cursor:pointer;opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(4);-webkit-transform-origin:100% 0;-moz-transform:scale(4);-moz-transform-origin:100% 0;-o-transform:scale(4);-o-transform-origin:100% 0;transform:scale(4);transform-origin:100% 0}.x td>form,.x td>p:last-of-type,.x td>p:only-of-type{margin:0}.x [data-display=none]{display:none}.x .x_page-header .path{font-size:14px;display:inline-block}.x .x_page-header .path:first-letter{color:#ccc;font-weight:400}.x [data-toggle]+.x_help-block{margin-top:10px}.x input.switch{width:42px;height:16px;opacity:0;filter:alpha(opacity=0);position:relative;z-index:2}.x input.switch+i{position:relative!important;z-index:1;left:auto!important;top:auto!important;right:auto!important;bottom:auto!important;margin:0 0 0 -42px!important;opacity:1!important;filter:alpha(opacity=100)!important;padding:0;vertical-align:middle;display:inline-block;width:42px;height:16px;background-image:url(../../../../admin/tpl/img/toggleSwitch.png)!important;background-repeat:no-repeat}.x input[checked].switch+i{background-position:0 -16px!important}.x_modal._common{width:600px;margin-left:-300px}.x_modal._common._small{width:400px;margin-left:-200px}@media all and (max-width:650px){.x_modal._common{width:90%;margin-left:-45%}}@media all and (max-width:450px){.x_modal._common._small{width:90%;margin-left:-45%}}.x_modal._common._nobody .x_modal-body,.x_modal._common._type_alert ._cancel,.x_modal._common._type_alert .x_modal-header{display:none}.x_modal._common._type_alert .x_modal-body{border-radius:6px 6px 0 0}.x_modal._common._nobody .x_modal-footer{border-top:0}.x_modal-body.showTree .moveList{float:left;width:60%}.x_modal-body.showTree .moveTree{display:block!important;float:right;width:38%}.x_modal-body.showTree .moveTree>h1{font-size:13px;color:#333;border-bottom:2px solid #ddd;padding:10px 0 7px}@media all and (max-width:960px){.x_modal-body.showTree .moveList,.x_modal-body.showTree .moveTree{float:none;width:auto}}.x .dashboard>div>section>h2:before,.x a[target="_blank"]:after,.x>.body>.gnb>ul>li>a>i{background-image:url(../../../../admin/tpl/img/glyphicons-halflings.png);background-repeat:no-repeat}.x>.body>.gnb>ul>li.active>a>i,.x>.body>.gnb>ul>li.open>a>i,.x_modal-body .tree .jstree-clicked>i,.x_modal-body .tree .jstree-hovered>i{background-image:url(../../../../admin/tpl/img/glyphicons-halflings-white.png);background-repeat:no-repeat}@media all and (max-width:800px){.x>.body>.gnb>ul>li:first-child>a>i{background-image:url(../../../../admin/tpl/img/glyphicons-halflings-white.png);background-repeat:no-repeat}}.x>.skipNav{margin:0}.x>.skipNav>a{display:block;height:1px;text-align:center;border-radius:4px;overflow:hidden;color:#333;text-decoration:none}.x>.skipNav>a:focus{height:auto;margin:5px 0;padding:8px 0;background:#fff}.x>.header{position:relative;z-index:2;padding:10px 15px;border-bottom:1px solid #ddd;background-color:#fff;zoom:1}.x>.header:after{content:"";display:block;clear:both}.x>.header:before{content:"";position:absolute;bottom:0;left:1px;right:1px;height:1px;box-shadow:0 2px 3px #ddd}.x>.body{position:relative;zoom:1;padding:0 0 50px 215px;z-index:1}.x>.body.wide{padding-left:70px}.x>.body:after{content:"";display:block;clear:both}.x>.body>.content{width:100%;padding:1px 0 0;float:right;margin:0 0 0 -100%;outline:0}.x>.body>.content>:first-child{margin-top:0}.x>.body>.gnb{width:180px;position:relative;margin:15px 0 0 -215px;float:left;display:inline}.x>.body.wide>.gnb{width:38px;margin-left:-70px}@media all and (max-width:800px){.x>.header{border-bottom:0}.x>.header:before{content:normal}.x>.body,.x>.body.wide{padding:0}.x>.body>.content{width:auto;padding:1px 10px 0;float:none;margin:0 0 30px}.x>.body>.gnb{float:none;display:block;width:auto;margin:0!important;border-radius:0;position:relative;top:auto;left:auto}.x>.body.wide>.gnb{width:auto}}.x>.header>h1{display:inline-block;*display:inline;zoom:1;margin:0 15px 0 0;white-space:nowrap}.x>.header>h1>a{text-decoration:none;color:#333;font-size:24px;line-height:40px;font-family:Arial,Helvetica,sans-serif}.x>.header>h1>a>img{vertical-align:middle}.x>.header>.site{display:inline-block;*display:inline;zoom:1;margin:14px 0 0;font-size:11px}.x>.header>.site>a{text-decoration:none;color:#666;font-family:Tahoma,Geneva,sans-serif}.x>.header>.site>a:focus,.x>.header>.site>a:hover{text-decoration:underline}.x>.header>.account{float:right;position:relative;margin:13px 0 0}.x>.header>.account>ul{list-style:none;margin:0;padding:0}.x>.header>.account>ul>li{display:inline}.x>.header>.account>ul>li:before{content:"| ";color:#ddd}.x>.header>.account>ul>li:first-child:before{content:normal}.x>.header>.account>ul>li>a{text-decoration:none;color:#666}.x>.header>.account>ul>li>a:focus,.x>.header>.account>ul>li>a:hover{text-decoration:underline}.x>.header>.account .lang+#lang{position:absolute;top:20px;left:auto;right:0;min-width:0}.x>.header>.account .lang+#lang a:focus,.x>.header>.account .lang+#lang a:hover{background:0 0;color:#333}.x>.header>.account .lang+#lang .x_active>a{color:#fff;background:#0081c2 -webkit-linear-gradient(top,#08c,#0077b3);background:#0081c2 -moz-linear-gradient(top,#08c,#0077b3);background:#0081c2 -o-linear-gradient(top,#08c,#0077b3)}@media all and (max-width:480px){.x>.header>.site{margin-top:0}}@media all and (max-width:800px){.x>.header>.account{margin-top:0}}.x>.footer{border-top:1px solid #ddd;padding:10px 15px;zoom:1}.x>.footer:after{content:"";display:block;clear:both}.x>.footer>p{margin:0}.x>.footer>.power{float:left;color:#666}.x>.footer>.cache{float:right}.x>.footer>.cache>*{color:#666}.x>.footer .vr{color:#ccc!important}.x>.body>.gnb ul{margin:0;padding:0;list-style:none}.x>.body>.gnb>ul{position:relative;z-index:1;box-shadow:0 0 4px #ccc;border:2px solid #fff}.x>.body>.gnb a{text-decoration:none;text-shadow:0 1px 0 #fff;color:#000;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.x>.body>.gnb>a[href="#gnbNav"]{display:block;position:absolute;z-index:2;white-space:nowrap;font-size:0;top:50%;right:-14px;background:#eee;width:12px;height:50px;border-radius:0 3px 3px 0;margin:-25px 0 0 0;border:1px solid #ddd;border-left:0;overflow:hidden;text-indent:20px}.x>.body.wide>.gnb>a[href="#gnbNav"]>b{border-color:transparent;border-left-color:#666;margin:-4px 0 0 -2px}.x>.body>.gnb>a[href="#gnbNav"]>b{width:0;height:0;position:absolute;top:50%;left:50%;margin:-4px 0 0 -6px;border:4px solid;border-color:transparent;border-right-color:#666}.x>.body>.gnb>a>i{display:none}.x>.body>.gnb .exMenu{position:absolute;width:100%}.x>.body>.gnb .exMenu>button{width:100%;border:0;background:0 0;font-size:20px;line-height:25px}.x>.body>.gnb .exMenu>button>i{opacity:.5;filter:alpha(opacity=50);vertical-align:middle;text-indent:0}.x>.body>.gnb .exMenu>button:focus>i,.x>.body>.gnb .exMenu>button:hover>i{opacity:1;filter:alpha(opacity=100)}.x>.body>.gnb .exMenu .x_icon-chevron-up,.x>.body>.gnb>.ex .exMenu .x_icon-chevron-down{display:none}.x>.body>.gnb>.ex .exMenu .x_icon-chevron-up{display:inline-block}.x>.body>.gnb>ul>li[data-index="1"]{border-top-color:#eee}.x>.body>.gnb>ul>li[data-index="5"]{margin-bottom:25px}.x>.body>.gnb>ul>li[data-index="6"]{border-top-color:#eee}.x>.body>.gnb>ul>li[data-index="6"],.x>.body>.gnb>ul>li[data-index="7"]{display:none}.x>.body>.gnb>.ex>li[data-index="6"],.x>.body>.gnb>.ex>li[data-index="7"]{display:block}.x>.body>.gnb>ul>li[data-index].active_{display:none}@media all and (max-width:800px){.x>.body>.gnb>ul{border:0}.x>.body>.gnb>ul>li{display:none}.x>.body>.gnb.open>ul>li{display:block}.x>.body>.gnb.open>ul>li[data-index="6"],.x>.body>.gnb.open>ul>li[data-index="7"],.x>.body>.gnb>.ex>li[data-index="6"],.x>.body>.gnb>.ex>li[data-index="7"]{display:none}.x>.body>.gnb.open>.ex>li[data-index="6"],.x>.body>.gnb.open>.ex>li[data-index="7"]{display:block}.x>.body>.gnb>ul>li:first-child{display:block!important}.x>.body.wide>.gnb>a[href="#gnbNav"],.x>.body>.gnb>a[href="#gnbNav"]{top:0;right:0;line-height:37px;width:44px;height:auto;background:0 0;border-radius:0;margin:0;border:0}.x>.body>.gnb>a[href="#gnbNav"]{opacity:.5;filter:alpha(opacity=50%)}.x>.body>.gnb>a[href="#gnbNav"]:before{content:"";position:absolute;top:1px;left:0;width:1px;height:100%;border-left:1px solid #999}.x>.body>.gnb>a[href="#gnbNav"]>b{display:none}.x>.body>.gnb>a>i{display:block;position:absolute;top:50%;left:50%;margin:-7px 0 0 -7px}}.x>.body>.gnb>ul>li{background:#3886d0;border-top:1px solid #fff;border-bottom:1px solid #ddd;vertical-align:top;white-space:nowrap}.x>.body>.gnb>ul>li.active{background:#222}.x>.body>.gnb>ul>li.active,.x>.body>.gnb>ul>li.open{border-bottom:0;padding:0 0 1px}.x>.body>.gnb>ul>li>a{position:relative;padding:8px 5px 8px 10px;background:#f1f1f1;background:-webkit-linear-gradient(top,#F1F1F1,#E8E8E8);background:-moz-linear-gradient(top,#F1F1F1,#E8E8E8);background:-o-linear-gradient(top,#F1F1F1,#E8E8E8);background:-ms-linear-gradient(top,#F1F1F1,#E8E8E8);background:linear-gradient(top,#F1F1F1,#E8E8E8)}.x>.body>.gnb>ul>li>a>i{display:inline-block;width:14px;height:14px;margin:-4px 4px 0 0;vertical-align:middle;opacity:.75;filter:alpha(opacity=75)}.x>.body>.gnb>ul>li>a>b{position:absolute;width:0;height:0;top:50%;right:10px;margin:-2px 0 0 0;border:4px solid transparent;border-top-color:#999}.x>.body>.gnb>ul>li.open>a>b{border-top:0;border-bottom-color:#fff}.x>.body.wide>.gnb>ul>li>a>b{display:none}.x>.body>.gnb>ul>li[data-index="1"]>a>i{background-position:-384px -144px}.x>.body>.gnb>ul>li[data-index="2"]>a>i{background-position:0 -24px}.x>.body>.gnb>ul>li[data-index="3"]>a>i{background-position:-168px 0}.x>.body>.gnb>ul>li[data-index="4"]>a>i{background-position:-48px -48px}.x>.body>.gnb>ul>li>a[href="#favorite"]>i{background-position:-120px 0}.x>.body>.gnb>ul>li[data-index="6"]>a>i{background-position:-360px -144px}.x>.body>.gnb>ul>li[data-index="7"]>a>i{background-position:-432px 0}.x>.body>.gnb>ul>li>a:focus,.x>.body>.gnb>ul>li>a:hover{background:#f6f6f6;background:-webkit-linear-gradient(top,#f6f6f6,#F1F1F1);background:-moz-linear-gradient(top,#f6f6f6,#F1F1F1);background:-o-linear-gradient(top,#f6f6f6,#F1F1F1);background:-ms-linear-gradient(top,#f6f6f6,#F1F1F1);background:linear-gradient(top,#f6f6f6,#F1F1F1)}.x>.body>.gnb>ul>li.open>a{font-weight:700;color:#fff;text-shadow:0 -1px 0 #333;background:#3886d0;background:-webkit-linear-gradient(top,#6ebcea,#3886d0);background:-moz-linear-gradient(top,#6ebcea,#3886d0);background:-o-linear-gradient(top,#6ebcea,#3886d0);background:-ms-linear-gradient(top,#6ebcea,#3886d0);background:linear-gradient(top,#6ebcea,#3886d0)}.x>.body>.gnb>ul>li.active>a{font-weight:700;color:#fff;text-shadow:none;background:#222;background:-webkit-linear-gradient(top,from(#555),to(#222));background:-moz-linear-gradient(top,#555,#222);background:-o-linear-gradient(top,#555,#222)}@media all and (max-width:800px){.x>.body>.gnb>ul>li:first-child>a{font-weight:700;color:#fff;text-shadow:none;border-radius:3px;background-color:#222;background-image:-webkit-linear-gradient(top,#555,#222);background-image:-moz-linear-gradient(top,#555,#222);background-image:-o-linear-gradient(top,#555,#222);background-image:linear-gradient(top,#555,#222)}}.x>.body.wide>.gnb>ul>li>a>.tx{display:inline-block;width:1px;height:1px;overflow:hidden}.x>.body>.gnb>ul>li>ul{display:none;margin:0 10px 10px;border-radius:4px}.x>.body>.gnb>ul>li.active>ul{display:block!important}.x>.body.wide>.gnb>ul>li>ul{display:none!important}.x>.body>.gnb>ul>li>ul>li{border-top:1px solid #ddd;position:relative}.x>.body>.gnb>ul>li>ul>li:first-child{border:0}.x>.body>.gnb>ul>li>ul>li.active_{box-shadow:0 0 3px #999;z-index:99;border:1px solid #666;border-left:0;border-right:0}.x>.body>.gnb>ul>li>ul>li>a{padding:4px 5px 4px 15px;background:#e8e8e8;background:-webkit-linear-gradient(top,#f1f1f1,#e8e8e8);background:-moz-linear-gradient(top,#f1f1f1,#e8e8e8);background:-o-linear-gradient(top,#f1f1f1,#e8e8e8);background:-ms-linear-gradient(top,#f1f1f1,#e8e8e8);background:linear-gradient(top,#f1f1f1,#e8e8e8)}.x>.body>.gnb>ul>li>ul#favorite>li>a{padding:4px 25px 4px 15px}.x>.body>.gnb>ul>li>ul>li:first-child>a{border-radius:4px 4px 0 0}.x>.body>.gnb>ul>li>ul>li:last-child>a{border-radius:0 0 4px 4px}.x>.body>.gnb>ul>li>ul>li:only-child>a{border-radius:4px}.x>.body>.gnb>ul>li>ul>li.active_>a,.x>.body>.gnb>ul>li>ul>li>a:active,.x>.body>.gnb>ul>li>ul>li>a:hover{font-weight:700;background:-webkit-linear-gradient(top,#F6F6F6,#F1F1F1);background:-moz-linear-gradient(top,#F6F6F6,#F1F1F1);background:-o-linear-gradient(top,#F6F6F6,#F1F1F1);background:-ms-linear-gradient(top,#F6F6F6,#F1F1F1);background:linear-gradient(top,#F6F6F6,#F1F1F1)}.x>.body>.gnb>ul>li>ul>li.active_>a:after{content:"";position:absolute;top:8px;right:-12px;border:6px solid transparent;border-left-color:#f3f3f3;width:0;height:0;overflow:hidden}.x>.body>.gnb>ul>li>ul>li>.remove{position:absolute;top:4px;right:5px}.x>.body>.gnb>ul>li>ul>li>.remove>.x_close{width:20px;height:20px}@media all and (max-width:800px){.x>.body.wide>.gnb>ul>li>a>.tx{width:auto;height:auto}}.x .dashboard{zoom:1}.x .dashboard:after{content:"";display:block;clear:both}.x .dashboard>div{float:right;width:49%}.x .dashboard>div:first-child{float:left}.x .dashboard>div>section{position:relative;height:196px;border:1px solid #ddd;border-radius:4px;margin:0 0 25px;overflow:hidden}.x .dashboard>div>section>h2{font-size:14px;margin:0;padding:6px 15px;border-bottom:1px solid #ddd;background:#e8e8e8;background:-webkit-linear-gradient(top,#F1F1F1,#E8E8E8);background:-moz-linear-gradient(top,#F1F1F1,#E8E8E8);background:-o-linear-gradient(top,#F1F1F1,#E8E8E8);background:-ms-linear-gradient(top,#F1F1F1,#E8E8E8);background:linear-gradient(top,#F1F1F1,#E8E8E8);text-shadow:0 1px 0 #fff}.x .dashboard>div>section>h2:before{content:"";display:inline-block;width:14px;height:14px;margin:0 4px 0 0;vertical-align:middle;opacity:.5;filter:alpha(opacity=50)}.x .dashboard>div>.status>h2:before{background-position:-408px 0}.x .dashboard>div>.status dl{color:#767676;display:inline-block;*display:inline;zoom:1;margin:0 8px 0 0;padding:1px 8px 0;font:11px/1 돋움,Dotum,Arial,Helvetica,sans-serif;background:#fff;box-shadow:0 0 3px #999 inset;border-radius:3px;min-width:60px;text-align:center}.x .dashboard>div>.status dt{display:inline;font-weight:400}.x .dashboard>div>.status dd{display:inline;margin:0}.x .dashboard>div>.status dl a{color:#767676}.x .dashboard>div>.document>h2:before{background-position:-264px -48px}.x .dashboard>div>.reply>h2:before{background-position:-240px -120px}.x .dashboard>div>.trackback>h2:before{background-position:-216px -120px}.x .dashboard>div>section>.more{position:absolute;top:7px;right:15px;text-shadow:0 1px 0 #fff}.x .dashboard>div>section>.more i{font:12px Tahoma,Geneva,sans-serif}.x .dashboard>div>section ul{list-style:none;margin:10px;padding:0;overflow:hidden;zoom:1}.x .dashboard>div>section li{position:relative;height:28px;line-height:28px;padding:0 70px 0 5px;white-space:nowrap;overflow:hidden;zoom:1;vertical-align:top}.x .dashboard>div>section li.hover{background:#f4f4f4;border-radius:4px}.x .dashboard>div>section li>a{display:block;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x .dashboard>div>section li>.side{position:absolute;top:0;right:5px;line-height:28px;width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;zoom:1}.x .dashboard>div>section li>.action{display:none;position:absolute;top:0;right:5px;margin:0;padding:0 0 0 40px;text-align:right;white-space:nowrap;line-height:28px;background:#f4f4f4}.x .dashboard>div>section li>.action>button{margin:0 0 0 4px;padding:0 0 0 15px;overflow:visible}@media all and (max-width:980px){.x .dashboard>div{float:none!important;width:auto}}.x .g11n>.x_add-on{font-size:0;position:relative;cursor:pointer;text-decoration:none;*color:#eee}.x .g11n>.x_add-on>i{position:absolute;top:50%;left:50%;margin:-7px 0 0 -7px;z-index:1;opacity:.25;filter:alpha(opacity=25)}.x .g11n>.x_add-on.remover{display:none;width:26px;height:26px}.x .g11n.active>[disabled]{padding-left:25px;background-position:4px 6px;background-repeat:no-repeat}.x .g11n.active>.x_add-on.remover{display:inline-block}.x .g11n>.x_add-on:hover>i{opacity:1;filter:alpha(opacity=100)}.x .g11n>textarea{border-top-right-radius:0;overflow-x:hidden}#g11n #lang_search .list{border-top:2px solid #ddd}#g11n #lang_search .item{border-bottom:1px solid #ddd;margin:0}#g11n #lang_search .item>a{display:block;padding:8px 0;position:relative}#g11n #lang_search .item>a>i{position:absolute;top:50%;margin:-7px 0 0 0;right:0;opacity:.5;filter:alpha(opacity=50)}#g11n #lang_search .item>fieldset{display:none;padding:0 0 15px}#g11n .item input[type=text],#g11n .item textarea{padding-left:25px;width:187px;background-repeat:no-repeat;background-position:4px 8px;overflow-x:hidden}#g11n .flag{padding-left:18px;background-repeat:no-repeat;background-position:0 50%}#g11n .flag.en,#g11n .item .en,html[lang=en] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.en.gif)}#g11n .flag.ko,#g11n .item .ko,html[lang=ko] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.ko.gif)}#g11n .flag.jp,#g11n .item .jp,html[lang=jp] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.jp.gif)}#g11n .flag.zh-CN,#g11n .item .zh-CN,html[lang=zh] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.cn.gif)}#g11n .flag.zh-TW,#g11n .item .zh-TW,html[lang=zh] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.tw.gif)}#g11n .flag.fr,#g11n .item .fr,html[lang=fr] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.fr.gif)}#g11n .flag.de,#g11n .item .de,html[lang=de] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.de.gif)}#g11n .flag.ru,#g11n .item .ru,html[lang=ru] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.ru.gif)}#g11n .flag.es,#g11n .item .es,html[lang=es] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.es.gif)}#g11n .item .tr,#gg1n .flag.tr,html[lang=tr] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.tr.gif)}#g11n .flag.vi,#g11n .item .vi,html[lang=vi] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.vi.gif)}#g11n .flag.mn,#g11n .item .mn,html[lang=mn] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.mn.gif)}#g11n #lang_search .cancel,#g11n #lang_search .editMode .modify,#g11n #lang_search .editMode .useit,#g11n #lang_search .save{display:none}#g11n #lang_search .editMode .cancel,#g11n #lang_search .editMode .save{display:inline-block}.x .moduleWindow{position:absolute;z-index:100;padding:15px 20px}.x .moduleWindow ul{margin-bottom:0}.x .moduleWindow .siteList{margin-right:14px}.x .moduleWindow .siteList>input[type=search]{width:100%;padding-top:6px;padding-bottom:6px;border-radius:3px 3px 0 0;margin-bottom:0}.x .moduleWindow .siteList>ul{margin:-1px -14px 0 0}.x .moduleWindow .siteList>ul>li{background:#fff}.x .moduleWindow .siteList>ul>li:first-child>a{border-top-left-radius:0;border-top-right-radius:0}.x .moduleWindow select{width:100%}.x .textList{border:1px solid #ddd!important;line-height:1.5em;height:125px;overflow:auto}.x .textList li{position:relative;border:0;padding:0 10px;height:25px;line-height:25px;white-space:nowrap;overflow:hidden}.x .textList li:nth-child(even){background:#eee}.x .textList li>button{position:absolute;right:8px;top:50%;margin:-7px 0 0 0}.x .uDrag .wrap{position:relative;padding-left:20px}.x .uDrag li>.wrap{margin:0 0 0 8px}.x .uDrag .dragActive{background:#FFD}.x .uDrag .dragActive td,.x .uDrag .dragActive th{background:none!important}.x .uDrag .dragBtn{position:absolute;width:8px;height:100%;padding:0;overflow:hidden;background:url(../../../../admin/tpl/img/bgDragable.gif);top:1px;left:0;text-indent:12px;border:0;cursor:n-resize;white-space:nowrap;font-size:0}.x #faviconPreview{position:relative;padding:80px 0 0 200px;background:url(../../../../admin/tpl/img/bgFavicon.gif) no-repeat}.x #faviconPreview img{position:absolute}.x #faviconPreview .fn1{top:30px;left:12px}.x #faviconPreview .fn2{top:55px;left:68px}.x #mobiconPreview{position:relative;padding:270px 0 0 200px;background:url(../../../../admin/tpl/img/bgMobileTop.png) no-repeat}.x #mobiconPreview img{position:absolute;top:20px;left:10px;width:32px;height:32px}.x #mobiconPreview span{position:absolute;width:32px;text-align:center;top:52px;left:10px;color:#fff;font-size:9px}.x .layer{position:absolute;display:none;font-weight:400}.tree{margin:3px 0 5px;min-width:200px;background-color:transparent!important}.tree ul{margin:0;padding:0;list-style:none}.tree li{padding:0;white-space:nowrap;position:relative;border-radius:3px;vertical-align:top}.tree li>ul{margin:0}.tree a{text-decoration:none}.tree>ul{padding:1px}.tree .jstree-rename-input{margin-left:-16px;z-index:2}.tree>ul>li{margin-top:30px;position:relative}.tree>ul>li:before{content:"";display:block;border-top:1px dotted #ccc;position:relative;top:-15px}.tree>ul>li:first-child{margin-top:0}.tree>ul>li:first-child:before{content:normal}.tree>ul>li>a{font-weight:700;text-shadow:0 1px 0 #fff;vertical-align:middle}.tree>ul>li>a.jstree-clicked,.tree>ul>li>a.jstree-hovered,.tree>ul>li>a:focus,.tree>ul>li>a:hover{text-shadow:none}.tree>ul>li>ul{margin:0 0 0 18px}.tree>ul>li>ul>li{margin-left:0}.tree li>a{border:0!important;padding:0 8px!important;margin:0 0 1px;border-radius:3px;position:relative;z-index:2;height:23px;line-height:23px;max-width:160px;overflow:hidden;text-overflow:ellipsis;-webkit-transition:.2s;-moz-transition:.2s;-o-transition:.2s;transition:.2s}.tree li>a>i{opacity:.5;filter:alpha(opacity=50)}.tree .jstree-clicked>i,.tree .jstree-hovered>i{opacity:1;filter:alpha(opacity=100)}.tree a>.jstree-icon{display:none}.tree .jstree-closed>.jstree-icon,.tree .jstree-open>.jstree-icon{background-color:#fff}.x .h2,.x .h3,.x .h4{position:relative;border-style:solid;border-top:0;border-right:0;zoom:1;padding-left:8px}.x .h1{background:#444;border-radius:4px;color:#fff;margin:0 0 1em;font-size:16px;padding:0 15px;line-height:36px}.x .h2{border-width:3px;font-size:20px;border-color:#888}.x .h3{border-width:2px;font-size:16px;border-color:#aaa}.x .h4{border-width:1px;font-size:12px;border-color:#ccc}.x .h1+.table table,.x .h1+ul,.x .h2+.table table,.x .h2+ul,.x .h3+.table table,.x .h3+ul,.x .h4+.table table,.x .h4+ul{border-top:0!important;margin-top:-1em!important}.x .table{margin:1em 0}.x .table table{width:100%;border:0;border-collapse:collapse;border-top:2px solid #ccc}.x .table caption{font-weight:700;text-align:left;line-height:22px;padding:5px 0}.x .table caption:after{content:"";display:block;clear:both}.x .table caption a{font-weight:400}.x .table caption em{float:right;margin-left:1em}.x .table caption strong{color:#e00}.x .table caption .side{float:right;font-weight:400;margin-left:1em}.x .table td,.x .table th{border:0;padding:8px;vertical-align:top;text-align:left;border-bottom:1px solid #ddd}.x .table th{background:#f8f8f8}.x .table thead th{border-bottom:1px solid #999}.x .table tfoot td{font-weight:700;background:#f8f8f8}.x .table.even tbody tr:nth-of-type(even){background-color:#fafafa}.x .table tbody tr:hover{background:#ffd!important}.x .table td>input[type=text]{margin:-1px 0!important;vertical-align:middle}.x .table img{vertical-align:middle}.x .table em{font-style:normal;font-weight:400;color:#e00}.x .form{margin:0 0 1em;padding:0}.x .form fieldset{margin:0 0 2em;padding:0;border:0}.x .form.search fieldset{border:1px solid #ccc;padding:5px 15px;border-radius:3px}.x .form em{font-style:normal;color:#e00}.x .form label{line-height:1;vertical-align:middle}.x .form input[type=checkbox]+label,.x .form input[type=radio]+label{margin-right:1em}.x .form input[type=checkbox]+label,.x .form input[type=file],.x .form input[type=radio]+label{cursor:pointer}.x .form ul{position:relative;margin:1em 0;padding:0;list-style:none;border-top:2px solid #ccc;border-bottom:1px solid #ccc;zoom:1}.x .form li{list-style:none;border:1px solid #ddd;border-left:0;border-right:0;margin:-1px 0;padding:8px 0;vertical-align:top;zoom:1}.x .form li:hover{background:#ffd}.x .form li:first-child{border-top:0}.x .form li>label:first-child{display:block;font-weight:700}.x .form li label em{font-weight:400}.x .form label.overlap{position:absolute;color:#aaa}.x .form input[type=file],.x .form input[type=password],.x .form input[type=text],.x .form select[size],.x .form textarea{position:relative;width:280px;margin:2px 0;border:1px solid #b7b7b7;border-right-color:#e1e1e1;border-bottom-color:#e1e1e1;background:0 0}.x .form input[type=file],.x .form input[type=password],.x .form input[type=text]{height:22px;line-height:22px;vertical-align:middle;padding:0 4px}.x .form input[type=checkbox],.x .form input[type=radio]{margin:0;padding:0;width:13px;height:13px;vertical-align:middle}.x .form input[type=checkbox][disabled=disabled],.x .form input[type=password][disabled=disabled],.x .form input[type=radio][disabled=disabled],.x .form input[type=text][disabled=disabled],.x .form select[disabled=disabled],.x .form textarea[disabled=disabled]{background:#ddd;text-shadow:1px 1px 0 #fff}.x .form textarea{padding:3px 4px;vertical-align:top;resize:both}.x .form em.desc,.x .form span.desc{line-height:22px;vertical-align:middle;margin:0 10px}.x .form p.desc{margin:.25em 0;line-height:1.4}.x .form .q{font-weight:700;margin:0 0 5px}.x .form .a{margin:0 0 5px}.x .form .tgForm{margin-right:1em}.x .cnb{margin:1em 0;position:relative;zoom:1}.x .cnb:after{content:"";display:block;clear:both}.x .cnb ul{list-style:none;margin:0;padding:0}.x .cnb li{display:inline}.x .cnb li:before{content:"| ";color:#ccc}.x .cnb li:first-child:before{content:""}.x .cnb .active,.x .cnb .active a{font-weight:700;color:#333;text-decoration:none}.x .cnb .side{float:right}.x .pagination{margin:1em 0;text-align:center;line-height:normal}.x .pagination *{vertical-align:middle}.x .pagination a,.x .pagination strong{position:relative;display:inline-block;padding:2px 4px;font-weight:700;text-decoration:none;line-height:normal;color:#333!important;vertical-align:middle}.x .pagination a:active,.x .pagination a:focus,.x .pagination a:hover{border:1px solid #ddd;margin:0 -1px}.x .pagination strong{color:#e00!important;font-size:20px}.x .pagination .direction{font-weight:400;white-space:nowrap}.x .pagination .direction:active,.x .pagination .direction:focus,.x .pagination .direction:hover{border:0;margin:0;text-decoration:underline}.x .pagination input{width:30px;text-align:center}.x .pagination button{overflow:visible}.x .prgrs{white-space:nowrap;line-height:normal;vertical-align:middle}.x .prgrs *{vertical-align:middle}.x .prgrs .pBar{position:relative;display:inline-block;background:#e9e9e9;margin:0 5px 0 0}.x .prgrs .pAction{display:inline-block;vertical-align:top;background:#99a6b6}.x .prgrs .pNum{width:100%;left:0;top:0;text-align:center;text-shadow:1px 1px 0 #fff}.x .prgrs.prgrsSmall{font-size:14px;line-height:14px}.x .prgrs.prgrsSmall .pAction,.x .prgrs.prgrsSmall .pBar,.x .prgrs.prgrsSmall .pNum{height:16px;line-height:16px;font-size:11px}.x .prgrs.prgrsMedium{font-size:24px;line-height:24px}.x .prgrs.prgrsMedium .pAction,.x .prgrs.prgrsMedium .pBar,.x .prgrs.prgrsMedium .pNum{height:22px;line-height:22px;font-size:12px}.x .prgrs.prgrsLarge{font-size:38px;line-height:38px}.x .prgrs.prgrsLarge .pAction,.x .prgrs.prgrsLarge .pBar,.x .prgrs.prgrsLarge .pNum{height:34px;line-height:34px;font-size:14px}.modal{_height:100%;min-height:100%}.modal .bg{position:absolute;background:#000;_background:0 0;width:100%;height:100%;opacity:.5;z-index:2;filter:alpha(opacity=50);zoom:1}.modal .fg{position:relative;width:80%;margin:5em auto;background:#fff;padding:0 1em;*padding:1em;border:8px solid #ddd;z-index:3;zoom:1;border-radius:5px;box-shadow:0 0 6px #000}.modal .lined,.modal .table,.modal ol,.modal ul{margin-bottom:1em}.modal .ie6{position:absolute;left:0;top:0;width:100%;height:100%;border:0;opacity:0;filter:alpha(opacity=0);z-index:1}.modalClose{position:absolute;right:-8px;top:-8px;border:0;background:#ddd;padding:0;width:28px;height:28px;font-size:14px;font-weight:700;cursor:pointer;color:#999;border-radius:5px}.modalBlur{position:absolute;top:0;right:0;border:0;background:0 0;padding:0;width:1px;height:1px;overflow:hidden}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:active,a:hover{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button,input[type=button],input[type=checkbox],input[type=radio],input[type=reset],input[type=submit],label,select{cursor:pointer}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:focus,a:hover{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:after,.row:before{display:table;line-height:0;content:""}.row:after{clear:both}[class*=span]{float:left;min-height:1px;margin-left:20px}.container,.navbar-fixed-bottom .container,.navbar-fixed-top .container,.navbar-static-top .container,.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:after,.row-fluid:before{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*=span]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*=span]:first-child{margin-left:0}.row-fluid .controls-row [class*=span]+[class*=span]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}.row-fluid [class*=span].hide,[class*=span].hide{display:none}.row-fluid [class*=span].pull-right,[class*=span].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:after,.container:before{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:after,.container-fluid:before{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:700}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:focus,a.muted:hover{color:gray}.text-warning{color:#c09853}a.text-warning:focus,a.text-warning:hover{color:#a47e3c}.text-error{color:#b94a48}a.text-error:focus,a.text-error:hover{color:#953b39}.text-info{color:#3a87ad}a.text-info:focus,a.text-info:hover{color:#2d6987}.text-success{color:#468847}a.text-success:focus,a.text-success:hover{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:700;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small,h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ol,ul{padding:0;margin:0 0 10px 25px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}li{line-height:20px}ol.inline,ol.unstyled,ul.inline,ul.unstyled{margin-left:0;list-style:none}ol.inline>li,ul.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dd,dt{line-height:20px}dt{font-weight:700}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:after,.dl-horizontal:before{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}blockquote:after,blockquote:before,q:after,q:before{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}button,input,label,select,textarea{font-size:14px;font-weight:400;line-height:20px}button,input,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}.uneditable-input,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.uneditable-input,input,textarea{width:206px}textarea{height:auto}.uneditable-input,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}.uneditable-input:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{border-color:rgba(82,168,236,.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type=button],input[type=checkbox],input[type=file],input[type=image],input[type=radio],input[type=reset],input[type=submit]{width:auto}input[type=file],select{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus,select:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.025);box-shadow:inset 0 1px 2px rgba(0,0,0,.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.checkbox,.radio{min-height:20px;padding-left:20px}.checkbox input[type=checkbox],.radio input[type=radio]{float:left;margin-left:-20px}.controls>.checkbox:first-child,.controls>.radio:first-child{padding-top:5px}.checkbox.inline,.radio.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.checkbox.inline+.checkbox.inline,.radio.inline+.radio.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}.row-fluid .uneditable-input[class*=span],.row-fluid input[class*=span],.row-fluid select[class*=span],.row-fluid textarea[class*=span],.uneditable-input[class*=span],input[class*=span],select[class*=span],textarea[class*=span]{float:none;margin-left:0}.input-append .uneditable-input[class*=span],.input-append input[class*=span],.input-prepend .uneditable-input[class*=span],.input-prepend input[class*=span],.row-fluid .input-append [class*=span],.row-fluid .input-prepend [class*=span],.row-fluid .uneditable-input[class*=span],.row-fluid input[class*=span],.row-fluid select[class*=span],.row-fluid textarea[class*=span]{display:inline-block}.uneditable-input,input,textarea{margin-left:0}.controls-row [class*=span]+[class*=span]{margin-left:20px}.uneditable-input.span12,input.span12,textarea.span12{width:926px}.uneditable-input.span11,input.span11,textarea.span11{width:846px}.uneditable-input.span10,input.span10,textarea.span10{width:766px}.uneditable-input.span9,input.span9,textarea.span9{width:686px}.uneditable-input.span8,input.span8,textarea.span8{width:606px}.uneditable-input.span7,input.span7,textarea.span7{width:526px}.uneditable-input.span6,input.span6,textarea.span6{width:446px}.uneditable-input.span5,input.span5,textarea.span5{width:366px}.uneditable-input.span4,input.span4,textarea.span4{width:286px}.uneditable-input.span3,input.span3,textarea.span3{width:206px}.uneditable-input.span2,input.span2,textarea.span2{width:126px}.uneditable-input.span1,input.span1,textarea.span1{width:46px}.controls-row{*zoom:1}.controls-row:after,.controls-row:before{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*=span],.row-fluid .controls-row [class*=span]{float:left}.controls-row .checkbox[class*=span],.controls-row .radio[class*=span]{padding-top:5px}input[disabled],input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type=checkbox][disabled],input[type=checkbox][readonly],input[type=radio][disabled],input[type=radio][readonly]{background-color:transparent}.control-group.warning .checkbox,.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e}.control-group.warning .input-append .add-on,.control-group.warning .input-prepend .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .checkbox,.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392}.control-group.error .input-append .add-on,.control-group.error .input-prepend .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .checkbox,.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b}.control-group.success .input-append .add-on,.control-group.success .input-prepend .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .checkbox,.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad;border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7ab5d3}.control-group.info .input-append .add-on,.control-group.info .input-prepend .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:after,.form-actions:before{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append .dropdown-menu,.input-append .popover,.input-append .uneditable-input,.input-append input,.input-append select,.input-prepend .dropdown-menu,.input-prepend .popover,.input-prepend .uneditable-input,.input-prepend input,.input-prepend select{font-size:14px}.input-append .uneditable-input,.input-append input,.input-append select,.input-prepend .uneditable-input,.input-prepend input,.input-prepend select{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .uneditable-input:focus,.input-append input:focus,.input-append select:focus,.input-prepend .uneditable-input:focus,.input-prepend input:focus,.input-prepend select:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:400;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-append .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .add-on,.input-prepend .btn,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-append .uneditable-input,.input-append input,.input-append select,.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append .uneditable-input+.btn-group .btn:last-child,.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn-group:last-child>.dropdown-toggle,.input-append .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .uneditable-input,.input-prepend.input-append input,.input-prepend.input-append select{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append .uneditable-input+.btn-group .btn,.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn,.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-horizontal .help-inline,.form-horizontal .input-append,.form-horizontal .input-prepend,.form-horizontal .uneditable-input,.form-horizontal input,.form-horizontal select,.form-horizontal textarea,.form-inline .help-inline,.form-inline .input-append,.form-inline .input-prepend,.form-inline .uneditable-input,.form-inline input,.form-inline select,.form-inline textarea,.form-search .help-inline,.form-search .input-append,.form-search .input-prepend,.form-search .uneditable-input,.form-search input,.form-search select,.form-search textarea{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-horizontal .hide,.form-inline .hide,.form-search .hide{display:none}.form-inline .btn-group,.form-inline label,.form-search .btn-group,.form-search label{display:inline-block}.form-inline .input-append,.form-inline .input-prepend,.form-search .input-append,.form-search .input-prepend{margin-bottom:0}.form-inline .checkbox,.form-inline .radio,.form-search .checkbox,.form-search .radio{padding-left:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio],.form-search .checkbox input[type=checkbox],.form-search .radio input[type=radio]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:after,.form-horizontal .control-group:before{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal .input-append+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table td,.table th{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:700}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child td,.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child td,.table thead:first-child tr:first-child th{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed td,.table-condensed th{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered td,.table-bordered th{border-left:1px solid #ddd}.table-bordered caption+tbody tr:first-child td,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+thead tr:first-child th,.table-bordered tbody:first-child tr:first-child td,.table-bordered tbody:first-child tr:first-child th,.table-bordered thead:first-child tr:first-child th{border-top:0}.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child,.table-bordered thead:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child,.table-bordered thead:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child,.table-bordered thead:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child,.table-bordered thead:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered caption+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered caption+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}.row-fluid table td[class*=span],.row-fluid table th[class*=span],table td[class*=span],table th[class*=span]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class*=" icon-"],[class^=icon-]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url(../../../../../common/img/glyphicons-halflings.png);background-position:14px 14px;background-repeat:no-repeat}.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-menu>.active>a>[class^=icon-],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>li>a:focus>[class^=icon-],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^=icon-],.dropdown-submenu:focus>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class^=icon-],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^=icon-],.icon-white,.nav-list>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^=icon-],.nav-pills>.active>a>[class*=" icon-"],.nav-pills>.active>a>[class^=icon-],.navbar-inverse .nav>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^=icon-]{background-image:url(../../../../../common/img/glyphicons-halflings-white.png)}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropdown,.dropup{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover,.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#999}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px;-moz-border-radius:0 6px 6px;border-radius:0 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:700;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.btn.active,.btn.disabled,.btn:active,.btn:focus,.btn:hover,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn.active,.btn:active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:focus,.btn:hover{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class*=" icon-"],.btn-large [class^=icon-]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class*=" icon-"],.btn-small [class^=icon-]{margin-top:0}.btn-mini [class*=" icon-"],.btn-mini [class^=icon-]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary.active,.btn-primary.disabled,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary.active,.btn-primary:active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning.active,.btn-warning.disabled,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning.active,.btn-warning:active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger.active,.btn-danger.disabled,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger.active,.btn-danger:active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success.active,.btn-success.disabled,.btn-success:active,.btn-success:focus,.btn-success:hover,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success.active,.btn-success:active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info.active,.btn-info.disabled,.btn-info:active,.btn-info:focus,.btn-info:hover,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info.active,.btn-info:active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse.active,.btn-inverse.disabled,.btn-inverse:active,.btn-inverse:focus,.btn-inverse:hover,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse.active,.btn-inverse:active{background-color:#080808 \9}button.btn,input[type=submit].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type=submit].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type=submit].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type=submit].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type=submit].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:focus,.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px;border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-danger .caret,.btn-info .caret,.btn-inverse .caret,.btn-primary .caret,.btn-success .caret,.btn-warning .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:700;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list .nav-header,.nav-list>li>a{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:focus,.nav-list>.active>a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.2);background-color:#08c}.nav-list [class*=" icon-"],.nav-list [class^=icon-]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-pills,.nav-tabs{*zoom:1}.nav-pills:after,.nav-pills:before,.nav-tabs:after,.nav-tabs:before{display:table;line-height:0;content:""}.nav-pills:after,.nav-tabs:after{clear:both}.nav-pills>li,.nav-tabs>li{float:left}.nav-pills>li>a,.nav-tabs>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:focus,.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:focus,.nav-tabs>.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:focus,.nav-pills>.active>a:hover{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:focus,.nav-tabs.nav-stacked>li>a:hover{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:focus .caret,.nav .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:focus,.nav>.dropdown.active>a:hover{cursor:pointer}.nav-pills .open .dropdown-toggle,.nav-tabs .open .dropdown-toggle,.nav>li.dropdown.open.active>a:focus,.nav>li.dropdown.open.active>a:hover{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open a:focus .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open.active .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:focus,.tabs-stacked .open>a:hover{border-color:#999}.tabbable{*zoom:1}.tabbable:after,.tabbable:before{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-left>.nav-tabs,.tabs-right>.nav-tabs{border-bottom:0}.pill-content>.pill-pane,.tab-content>.tab-pane{display:none}.pill-content>.active,.tab-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:focus,.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:focus,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:focus,.tabs-left>.nav-tabs>li>a:hover{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:focus,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:focus,.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:focus,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:focus,.nav>.disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,.065);box-shadow:0 1px 4px rgba(0,0,0,.065)}.navbar-inner:after,.navbar-inner:before{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:focus,.navbar .brand:hover{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:focus,.navbar-link:hover{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-append .btn,.navbar .input-append .btn-group,.navbar .input-prepend .btn,.navbar .input-prepend .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:after,.navbar-form:before{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form .checkbox,.navbar-form .radio,.navbar-form input,.navbar-form select{margin-top:5px}.navbar-form .btn,.navbar-form input,.navbar-form select{display:inline-block;margin-bottom:0}.navbar-form input[type=checkbox],.navbar-form input[type=image],.navbar-form input[type=radio]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:400;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-bottom .navbar-inner,.navbar-fixed-top .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-bottom .container,.navbar-fixed-top .container,.navbar-static-top .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,.1);box-shadow:0 1px 10px rgba(0,0,0,.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,.1);box-shadow:0 -1px 10px rgba(0,0,0,.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:focus,.navbar .nav>.active>a:hover{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,.125);box-shadow:inset 0 3px 8px rgba(0,0,0,.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.075)}.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar:active,.navbar .btn-navbar:focus,.navbar .btn-navbar:hover,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar.active,.navbar .btn-navbar:active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,.25);box-shadow:0 1px 0 rgba(0,0,0,.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:focus .caret,.navbar .nav li.dropdown>a:hover .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle,.navbar .nav li.dropdown.open>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .nav>li>.dropdown-menu.pull-right,.navbar .pull-right>li>.dropdown-menu{right:0;left:auto}.navbar .nav>li>.dropdown-menu.pull-right:before,.navbar .pull-right>li>.dropdown-menu:before{right:12px;left:auto}.navbar .nav>li>.dropdown-menu.pull-right:after,.navbar .pull-right>li>.dropdown-menu:after{right:13px;left:auto}.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu,.navbar .pull-right>li>.dropdown-menu .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-inverse .brand:focus,.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff}.navbar-inverse .brand,.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:focus,.navbar-inverse .nav .active>a:hover{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:focus,.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:focus .caret,.navbar-inverse .nav li.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query.focused,.navbar-inverse .navbar-search .search-query:focus{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);-moz-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar:active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>.active>a,.pagination ul>.active>span,.pagination ul>li>a:focus,.pagination ul>li>a:hover{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>a,.pagination ul>.disabled>a:focus,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>span{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>a,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>a,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:after,.pager:before{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,.3);box-shadow:0 3px 7px rgba(0,0,0,.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:after,.modal-footer:before{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:after,.thumbnails:before{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,.055);box-shadow:0 1px 3px rgba(0,0,0,.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:focus,a.thumbnail:hover{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,.25);box-shadow:0 1px 4px rgba(0,105,214,.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.badge,.label{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:700;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.badge:empty,.label:empty{display:none}a.badge:focus,a.badge:hover,a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.badge-important,.label-important{background-color:#b94a48}.badge-important[href],.label-important[href]{background-color:#953b39}.badge-warning,.label-warning{background-color:#f89406}.badge-warning[href],.label-warning[href]{background-color:#c67605}.badge-success,.label-success{background-color:#468847}.badge-success[href],.label-success[href]{background-color:#356635}.badge-info,.label-info{background-color:#3a87ad}.badge-info[href],.label-info[href]{background-color:#2d6987}.badge-inverse,.label-inverse{background-color:#333}.badge-inverse[href],.label-inverse[href]{background-color:#1a1a1a}.btn .badge,.btn .label{position:relative;top:-1px}.btn-mini .badge,.btn-mini .label{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress .bar-danger,.progress-danger .bar{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress .bar-success,.progress-success .bar{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0)}.progress-striped .bar-success,.progress-success.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress .bar-info,.progress-info .bar{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress .bar-warning,.progress-warning .bar{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0)}.progress-striped .bar-warning,.progress-warning.progress-striped .bar{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}} \ No newline at end of file +@charset "utf-8";body,html{min-height:100%}body{-webkit-text-size-adjust:none}body>.x:first-child{min-width:300px;max-width:1240px;margin:0 auto}.x button,.x input,.x label,.x select,.x table,.x textarea,body>.x{font-size:13px}.x strong,.x th{font-weight:600}.x dfn,.x em{font-style:normal}.x [disabled]{cursor:not-allowed}.x [hidden]{display:none}.x a[target="_blank"]:after{content:"";display:inline-block;width:14px;height:14px;vertical-align:middle;margin:-2px 0 0 2px;background-position:-120px -72px;opacity:.3;filter:alpha(opacity=30)}.x a[target="_blank"]:focus:after,.x a[target="_blank"]:hover:after{opacity:.7;filter:alpha(opacity=70)}.x mark{background-color:#FF0;color:#000}.x .x_page-header{margin-top:10px;padding-bottom:0;border-bottom:2px solid #ddd}.x .x_page-header>h1{position:relative;margin-bottom:0;font-size:24px;color:#333}.x .x_page-header>h1>.x_icon-question-sign{margin:0}.x .x_page-header>h1>.path+.x_icon-question-sign{margin:4px 0 0}.x .x_icon-question-sign{vertical-align:middle}.x h1,.x h2,.x h3,.x h4,.x h5,.x h6{line-height:1.5;font-weight:600;color:#666;text-rendering:auto}.x h1{font-size:22px}.x h2{font-size:18px}.x h3{font-size:14px}.x h4,.x h5,.x h6{font-size:12px}.x [class*=" x_icon-"],.x [class^=x_icon-]{text-decoration:none;border:0;padding:0 0 0 14px;width:0;background-color:transparent;overflow:hidden;font-size:0}.x .x_close{width:32px;height:32px;font-size:17px;opacity:.5;filter:alpha(opacity=50)}.x .x_alert{position:relative}.x .x_alert>.x_close{position:absolute;top:0;right:0}.x .x_pagination{height:26px;margin:10px 0 0}.x .x_pagination ul>li>a,.x .x_pagination ul>li>span,.x .x_pagination ul>li>strong{line-height:24px;padding:0 8px}.x .x_pagination ul>.x_active>a,.x .x_pagination ul>.x_active>span,.x .x_pagination ul>.x_active>strong{line-height:26px;border:0;background-color:#333!important;color:#fff;font-weight:700;font-size:18px;font-family:Arial,Helvetica,sans-serif;border-radius:2px}.x .x_pagination [id^=goTo]{display:none;margin:0;padding:0}.x .x_pagination [id^=goTo]>*{border:0;border-radius:0}.x .x_pagination [id^=goTo]>[type=number]{height:16px;line-height:16px;width:50px;text-align:center}.x .x_pagination [id^=goTo]>[type=submit]{line-height:24px;height:24px;padding:0 6px}.x .btn{color:#333}.x .x_btn{border-radius:2px;overflow:visible;font-size:14px;line-height:18px;padding:3px 9px;text-decoration:none!important}.x .x_btn-large{font-size:16px;padding:9px 14px;font-weight:700}.x .x_btn-small{font-size:14px}.x .x_btn-mini{font-size:11px;padding:1px 6px;line-height:17px}.x .x_btn-link{padding:0;margin:0;overflow:visible;font-size:13px;border:0}.x .x_btn-group{zoom:1}.x .x_btn-group:after{content:"";display:block;clear:both}.x .x_btn-group>.x_btn{border-radius:0}.x .x_btn-group>.x_btn:last-child,.x .x_btn-group>.x_dropdown-toggle{border-top-right-radius:2px;border-bottom-right-radius:2px}.x .x_btn-group>.x_btn:first-child{border-bottom-left-radius:2px;border-top-left-radius:2px}.x .x_btn-group>.x_btn-inverse+.x_btn-inverse{border-left-color:#555}.x input[type=checkbox],.x input[type=radio]{margin:0}.x input[type=file]{height:auto}.x td input,.x td select,.x td textarea{margin-bottom:0}.x [class*=x_icon-]{opacity:.5;filter:alpha(opacity=50)}.x :focus>[class*=x_icon-],.x :hover>[class*=x_icon-],.x [class*=x_icon-]:focus,.x [class*=x_icon-]:hover{opacity:1;filter:alpha(opacity=100)}.x .x_nav-tabs>li>a{padding-top:6px;padding-bottom:6px;text-decoration:none!important}.x .x_nav-tabs>li.x_active>a{font-weight:700}.x .x_table{margin:10px 0;border-top:2px solid #ddd;border-bottom:1px solid #ddd}.x h1+.x_table{border-top:0;margin-top:-10px}.x .x_table>caption{text-align:left;padding:0 0 10px;line-height:26px}.x .x_table>caption>a,.x .x_table>caption>i,.x .x_table>caption>strong{position:relative;top:7px}.x .x_table thead th{vertical-align:top}.x .x_table input{margin:0}.x .x_inline{display:inline-block;*display:inline;*zoom:1}.x .x_page-header+.x_form-horizontal{margin-top:-20px}.x .x_controls:after{content:"";display:block;clear:both}.x .x_form-horizontal .x_control-label,.x input:checked+label,.x label.checked{font-weight:700;word-break:keep-all}.x .x_form-horizontal .x_control-label{width:180px}.x .x_form-horizontal .x_controls{margin-left:200px;*margin-left:0}.x .x_form-horizontal .x_controls label{padding:5px 0;margin-bottom:0}.x input[type=checkbox]+label,.x input[type=radio]+label{font-weight:400}.x label.x_inline{margin-right:16px}.x .x_input-append>*{vertical-align:top}.x .x_input-append a.x_add-on,.x .x_input-prepend a.x_add-on{height:16px;line-height:16px}.x .x_input-append button.x_add-on,.x .x_input-prepend button.x_add-on{height:24px;line-height:16px}.x .x_modal-header{padding:10px 15px;border-bottom:1px solid #aaa;background-color:#333;border-radius:5px 5px 0 0;background-image:-webkit-linear-gradient(top,#666,#333 50%,#000 50%,#333 100%);background-image:-moz-linear-gradient(top,#666,#333 50%,#000 50%,#333 100%);background-image:-o-linear-gradient(top,#666,#333 50%,#000 50%,#333 100%);background-image:linear-gradient(top,#666,#333 50%,#000 50%,#333 100%)}.x .x_modal-header>h1,.x .x_modal-header>h2,.x .x_modal-header>h3{font-size:16px;line-height:30px;margin:0;color:#fff;text-shadow:0 -1px 0 #000}.x .x_modal-body{overflow-y:visible;max-height:none}.x_modal,.x_modal-backdrop{display:none}.x_modal-backdrop{opacity:.6;filter:alpha(opacity=60)}.x_modal{padding:0;width:90%;margin:0 0 0 -45%;max-width:none;border-radius:6px}.x_modal>form{margin:0!important}.x_modal>.x_close{position:absolute;top:8px;right:10px;font-size:21px;color:#fff}.x_modal .x_modal-body{background:#fff;min-height:50px;overflow-y:auto;max-height:400px}.x_modal-body:after{content:"";display:block;clear:both}.x .x_control-group{padding-top:8px;border-top:1px dotted #ddd;clear:both}.x .x_control-group:before{content:"";display:block;clear:both}.x .x_control-group:first-child,.x .x_control-group:first-of-type{border-top:0;padding-top:0}.x .x_control-group select{width:auto;min-width:220px}.x .x_form-horizontal .x_control-group{margin-bottom:10px}.x input[type=color],.x input[type=date],.x input[type=datetime-local],.x input[type=datetime],.x input[type=email],.x input[type=month],.x input[type=number],.x input[type=password],.x input[type=search],.x input[type=tel],.x input[type=text],.x input[type=time],.x input[type=url],.x input[type=week]{height:16px;line-height:16px}.x input[type=number]{width:50px}.x select{padding:0;height:26px;line-height:26px}.x select[multiple]{height:auto}.x textarea{vertical-align:top}.x .x_tab-content{overflow:visible}.x .x_well>:first-child{margin-top:0}.x .x_well>:last-child{margin-bottom:0}.x legend{font-size:14px;font-weight:700;line-height:24px}.x label{font-weight:inherit}.x label:only-child,.x p:last-child,.x td p{margin-bottom:0}.x form{margin:0 0 10px}.x form .x_btn[type=submit]:only-child{min-width:120px}.x .x_help-inline{display:inline}.x .x_btn.x_disabled,.x .x_btn[disabled]{opacity:.5;filter:alpha(opacity=50);cursor:not-allowed}@media all and (max-width:980px){.x .x_form-horizontal .x_control-label{float:none;width:auto;text-align:left}.x .x_form-horizontal .x_controls{margin-left:0}}.x .section{margin:20px 0 40px}.x .section>h1{position:relative;border-bottom:1px solid #ddd;cursor:pointer}.x .section>h1>.snToggle{position:absolute;bottom:0;right:0;width:32px;height:32px;opacity:.5;filter:alpha(opacity=50)}.x .section>h1>.snToggle.x_icon-chevron-up{background-position:-279px -112px}.x .section>h1>.snToggle.x_icon-chevron-down{background-position:-303px -111px}.x .section>h2{position:relative;border-bottom:1px dotted #ddd}.x .section>h2+.x_control-group{border-top:0}.x .section.collapsed>*{display:none}.x .section.collapsed>h1{display:block}.x .center{text-align:center}.x .search{margin:10px 0 0}.x .search select{width:auto}.x .search>input[type=search]{height:16px;line-height:16px;width:120px}.x .vr{color:#ccc;font-style:normal}.x .nowr{white-space:nowrap}.x .btnArea{padding:10px 0;margin:10px 0;border-top:1px solid #ccc;text-align:right;zoom:1;clear:both}.x .btnArea:after{content:"";display:block;clear:both}.x a.active,.x li.active>a{color:#000;font-weight:700;text-decoration:none}.x .module_search+[readonly]{vertical-align:top;border-top-right-radius:0;border-bottom-right-radius:0}.x .module_search+[readonly]+a.x_btn{vertical-align:top;border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-5px}.x .fileBtn{position:relative;display:inline-block;overflow:hidden}.x .fileBtn>input[type=file]{position:absolute;top:0;right:0;margin:0;padding:0;border:0;outline:0;cursor:pointer;opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(4);-webkit-transform-origin:100% 0;-moz-transform:scale(4);-moz-transform-origin:100% 0;-o-transform:scale(4);-o-transform-origin:100% 0;transform:scale(4);transform-origin:100% 0}.x td>form,.x td>p:last-of-type,.x td>p:only-of-type{margin:0}.x [data-display=none]{display:none}.x .x_page-header .path{font-size:14px;display:inline-block}.x .x_page-header .path:first-letter{color:#ccc;font-weight:400}.x [data-toggle]+.x_help-block{margin-top:10px}.x input.switch{width:42px;height:16px;opacity:0;filter:alpha(opacity=0);position:relative;z-index:2}.x input.switch+i{position:relative!important;z-index:1;left:auto!important;top:auto!important;right:auto!important;bottom:auto!important;margin:0 0 0 -42px!important;opacity:1!important;filter:alpha(opacity=100)!important;padding:0;vertical-align:middle;display:inline-block;width:42px;height:16px;background-image:url(../../../../admin/tpl/img/toggleSwitch.png)!important;background-repeat:no-repeat}.x input[checked].switch+i{background-position:0 -16px!important}.x_modal._common{width:600px;margin-left:-300px}.x_modal._common._small{width:400px;margin-left:-200px}@media all and (max-width:650px){.x_modal._common{width:90%;margin-left:-45%}}@media all and (max-width:450px){.x_modal._common._small{width:90%;margin-left:-45%}}.x_modal._common._nobody .x_modal-body,.x_modal._common._type_alert ._cancel,.x_modal._common._type_alert .x_modal-header{display:none}.x_modal._common._type_alert .x_modal-body{border-radius:6px 6px 0 0}.x_modal._common._nobody .x_modal-footer{border-top:0}.x_modal-body.showTree .moveList{float:left;width:60%}.x_modal-body.showTree .moveTree{display:block!important;float:right;width:38%}.x_modal-body.showTree .moveTree>h1{font-size:13px;color:#333;border-bottom:2px solid #ddd;padding:10px 0 7px}@media all and (max-width:960px){.x_modal-body.showTree .moveList,.x_modal-body.showTree .moveTree{float:none;width:auto}}.x .dashboard>div>section>h2:before,.x a[target="_blank"]:after,.x>.body>.gnb>ul>li>a>i{background-image:url(../../../../admin/tpl/img/glyphicons-halflings.png);background-repeat:no-repeat}.x>.body>.gnb>ul>li.active>a>i,.x>.body>.gnb>ul>li.open>a>i,.x_modal-body .tree .jstree-clicked>i,.x_modal-body .tree .jstree-hovered>i{background-image:url(../../../../admin/tpl/img/glyphicons-halflings-white.png);background-repeat:no-repeat}@media all and (max-width:800px){.x>.body>.gnb>ul>li:first-child>a>i{background-image:url(../../../../admin/tpl/img/glyphicons-halflings-white.png);background-repeat:no-repeat}}.x>.skipNav{margin:0}.x>.skipNav>a{display:block;height:1px;text-align:center;border-radius:4px;overflow:hidden;color:#333;text-decoration:none}.x>.skipNav>a:focus{height:auto;margin:5px 0;padding:8px 0;background:#fff}.x>.header{position:relative;z-index:2;padding:10px 15px;border-bottom:1px solid #ddd;background-color:#fff;zoom:1}.x>.header:after{content:"";display:block;clear:both}.x>.header:before{content:"";position:absolute;bottom:0;left:1px;right:1px;height:1px;box-shadow:0 2px 3px #ddd}.x>.body{position:relative;zoom:1;padding:0 0 50px 215px;z-index:1}.x>.body.wide{padding-left:70px}.x>.body:after{content:"";display:block;clear:both}.x>.body>.content{width:100%;padding:1px 0 0;float:right;margin:0 0 0 -100%;outline:0}.x>.body>.content>:first-child{margin-top:0}.x>.body>.gnb{width:180px;position:relative;margin:15px 0 0 -215px;float:left;display:inline}.x>.body.wide>.gnb{width:38px;margin-left:-70px}@media all and (max-width:800px){.x>.header{border-bottom:0}.x>.header:before{content:normal}.x>.body,.x>.body.wide{padding:0}.x>.body>.content{width:auto;padding:1px 10px 0;float:none;margin:0 0 30px}.x>.body>.gnb{float:none;display:block;width:auto;margin:0!important;border-radius:0;position:relative;top:auto;left:auto}.x>.body.wide>.gnb{width:auto}}.x>.header>h1{display:inline-block;*display:inline;zoom:1;margin:0 15px 0 0;white-space:nowrap}.x>.header>h1>a{text-decoration:none;color:#333;font-size:24px;line-height:40px;font-family:Arial,Helvetica,sans-serif}.x>.header>h1>a>img{vertical-align:middle}.x>.header>.site{display:inline-block;*display:inline;zoom:1;margin:14px 0 0;font-size:11px}.x>.header>.site>a{text-decoration:none;color:#666;font-family:Tahoma,Geneva,sans-serif}.x>.header>.site>a:focus,.x>.header>.site>a:hover{text-decoration:underline}.x>.header>.account{float:right;position:relative;margin:13px 0 0}.x>.header>.account>ul{list-style:none;margin:0;padding:0}.x>.header>.account>ul>li{display:inline}.x>.header>.account>ul>li:before{content:"| ";color:#ddd}.x>.header>.account>ul>li:first-child:before{content:normal}.x>.header>.account>ul>li>a{text-decoration:none;color:#666}.x>.header>.account>ul>li>a:focus,.x>.header>.account>ul>li>a:hover{text-decoration:underline}.x>.header>.account .lang+#lang{position:absolute;top:20px;left:auto;right:0;min-width:0}.x>.header>.account .lang+#lang a:focus,.x>.header>.account .lang+#lang a:hover{background:0 0;color:#333}.x>.header>.account .lang+#lang .x_active>a{color:#fff;background:#0081c2 -webkit-linear-gradient(top,#08c,#0077b3);background:#0081c2 -moz-linear-gradient(top,#08c,#0077b3);background:#0081c2 -o-linear-gradient(top,#08c,#0077b3)}@media all and (max-width:480px){.x>.header>.site{margin-top:0}}@media all and (max-width:800px){.x>.header>.account{margin-top:0}}.x>.footer{border-top:1px solid #ddd;padding:10px 15px;zoom:1}.x>.footer:after{content:"";display:block;clear:both}.x>.footer>p{margin:0}.x>.footer>.power{float:left;color:#666}.x>.footer>.cache{float:right}.x>.footer>.cache>*{color:#666}.x>.footer .vr{color:#ccc!important}.x>.body>.gnb ul{margin:0;padding:0;list-style:none}.x>.body>.gnb>ul{position:relative;z-index:1;box-shadow:0 0 4px #ccc;border:2px solid #fff}.x>.body>.gnb a{text-decoration:none;text-shadow:0 1px 0 #fff;color:#000;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.x>.body>.gnb>a[href="#gnbNav"]{display:block;position:absolute;z-index:2;white-space:nowrap;font-size:0;top:50%;right:-14px;background:#eee;width:12px;height:50px;border-radius:0 3px 3px 0;margin:-25px 0 0 0;border:1px solid #ddd;border-left:0;overflow:hidden;text-indent:20px}.x>.body.wide>.gnb>a[href="#gnbNav"]>b{border-color:transparent;border-left-color:#666;margin:-4px 0 0 -2px}.x>.body>.gnb>a[href="#gnbNav"]>b{width:0;height:0;position:absolute;top:50%;left:50%;margin:-4px 0 0 -6px;border:4px solid;border-color:transparent;border-right-color:#666}.x>.body>.gnb>a>i{display:none}.x>.body>.gnb .exMenu{position:absolute;width:100%}.x>.body>.gnb .exMenu>button{width:100%;border:0;background:0 0;font-size:20px;line-height:25px}.x>.body>.gnb .exMenu>button>i{opacity:.5;filter:alpha(opacity=50);vertical-align:middle;text-indent:0}.x>.body>.gnb .exMenu>button:focus>i,.x>.body>.gnb .exMenu>button:hover>i{opacity:1;filter:alpha(opacity=100)}.x>.body>.gnb .exMenu .x_icon-chevron-up,.x>.body>.gnb>.ex .exMenu .x_icon-chevron-down{display:none}.x>.body>.gnb>.ex .exMenu .x_icon-chevron-up{display:inline-block}.x>.body>.gnb>ul>li[data-index="1"]{border-top-color:#eee}.x>.body>.gnb>ul>li[data-index="5"]{margin-bottom:25px}.x>.body>.gnb>ul>li[data-index="6"]{border-top-color:#eee}.x>.body>.gnb>ul>li[data-index="6"],.x>.body>.gnb>ul>li[data-index="7"]{display:none}.x>.body>.gnb>.ex>li[data-index="6"],.x>.body>.gnb>.ex>li[data-index="7"]{display:block}.x>.body>.gnb>ul>li[data-index].active_{display:none}@media all and (max-width:800px){.x>.body>.gnb>ul{border:0}.x>.body>.gnb>ul>li{display:none}.x>.body>.gnb.open>ul>li{display:block}.x>.body>.gnb.open>ul>li[data-index="6"],.x>.body>.gnb.open>ul>li[data-index="7"],.x>.body>.gnb>.ex>li[data-index="6"],.x>.body>.gnb>.ex>li[data-index="7"]{display:none}.x>.body>.gnb.open>.ex>li[data-index="6"],.x>.body>.gnb.open>.ex>li[data-index="7"]{display:block}.x>.body>.gnb>ul>li:first-child{display:block!important}.x>.body.wide>.gnb>a[href="#gnbNav"],.x>.body>.gnb>a[href="#gnbNav"]{top:0;right:0;line-height:37px;width:44px;height:auto;background:0 0;border-radius:0;margin:0;border:0}.x>.body>.gnb>a[href="#gnbNav"]{opacity:.5;filter:alpha(opacity=50%)}.x>.body>.gnb>a[href="#gnbNav"]:before{content:"";position:absolute;top:1px;left:0;width:1px;height:100%;border-left:1px solid #999}.x>.body>.gnb>a[href="#gnbNav"]>b{display:none}.x>.body>.gnb>a>i{display:block;position:absolute;top:50%;left:50%;margin:-7px 0 0 -7px}}.x>.body>.gnb>ul>li{background:#3886d0;border-top:1px solid #fff;border-bottom:1px solid #ddd;vertical-align:top;white-space:nowrap}.x>.body>.gnb>ul>li.active{background:#222}.x>.body>.gnb>ul>li.active,.x>.body>.gnb>ul>li.open{border-bottom:0;padding:0 0 1px}.x>.body>.gnb>ul>li>a{position:relative;padding:8px 5px 8px 10px;background:#f1f1f1;background:-webkit-linear-gradient(top,#F1F1F1,#E8E8E8);background:-moz-linear-gradient(top,#F1F1F1,#E8E8E8);background:-o-linear-gradient(top,#F1F1F1,#E8E8E8);background:-ms-linear-gradient(top,#F1F1F1,#E8E8E8);background:linear-gradient(top,#F1F1F1,#E8E8E8)}.x>.body>.gnb>ul>li>a>i{display:inline-block;width:14px;height:14px;margin:-4px 4px 0 0;vertical-align:middle;opacity:.75;filter:alpha(opacity=75)}.x>.body>.gnb>ul>li>a>b{position:absolute;width:0;height:0;top:50%;right:10px;margin:-2px 0 0 0;border:4px solid transparent;border-top-color:#999}.x>.body>.gnb>ul>li.open>a>b{border-top:0;border-bottom-color:#fff}.x>.body.wide>.gnb>ul>li>a>b{display:none}.x>.body>.gnb>ul>li[data-index="1"]>a>i{background-position:-384px -144px}.x>.body>.gnb>ul>li[data-index="2"]>a>i{background-position:0 -24px}.x>.body>.gnb>ul>li[data-index="3"]>a>i{background-position:-168px 0}.x>.body>.gnb>ul>li[data-index="4"]>a>i{background-position:-48px -48px}.x>.body>.gnb>ul>li>a[href="#favorite"]>i{background-position:-120px 0}.x>.body>.gnb>ul>li[data-index="6"]>a>i{background-position:-360px -144px}.x>.body>.gnb>ul>li[data-index="7"]>a>i{background-position:-432px 0}.x>.body>.gnb>ul>li>a:focus,.x>.body>.gnb>ul>li>a:hover{background:#f6f6f6;background:-webkit-linear-gradient(top,#f6f6f6,#F1F1F1);background:-moz-linear-gradient(top,#f6f6f6,#F1F1F1);background:-o-linear-gradient(top,#f6f6f6,#F1F1F1);background:-ms-linear-gradient(top,#f6f6f6,#F1F1F1);background:linear-gradient(top,#f6f6f6,#F1F1F1)}.x>.body>.gnb>ul>li.open>a{font-weight:700;color:#fff;text-shadow:0 -1px 0 #333;background:#3886d0;background:-webkit-linear-gradient(top,#6ebcea,#3886d0);background:-moz-linear-gradient(top,#6ebcea,#3886d0);background:-o-linear-gradient(top,#6ebcea,#3886d0);background:-ms-linear-gradient(top,#6ebcea,#3886d0);background:linear-gradient(top,#6ebcea,#3886d0)}.x>.body>.gnb>ul>li.active>a{font-weight:700;color:#fff;text-shadow:none;background:#222;background:-webkit-linear-gradient(top,from(#555),to(#222));background:-moz-linear-gradient(top,#555,#222);background:-o-linear-gradient(top,#555,#222)}@media all and (max-width:800px){.x>.body>.gnb>ul>li:first-child>a{font-weight:700;color:#fff;text-shadow:none;border-radius:3px;background-color:#222;background-image:-webkit-linear-gradient(top,#555,#222);background-image:-moz-linear-gradient(top,#555,#222);background-image:-o-linear-gradient(top,#555,#222);background-image:linear-gradient(top,#555,#222)}}.x>.body.wide>.gnb>ul>li>a>.tx{display:inline-block;width:1px;height:1px;overflow:hidden}.x>.body>.gnb>ul>li>ul{display:none;margin:0 10px 10px;border-radius:4px}.x>.body>.gnb>ul>li.active>ul{display:block!important}.x>.body.wide>.gnb>ul>li>ul{display:none!important}.x>.body>.gnb>ul>li>ul>li{border-top:1px solid #ddd;position:relative}.x>.body>.gnb>ul>li>ul>li:first-child{border:0}.x>.body>.gnb>ul>li>ul>li.active_{box-shadow:0 0 3px #999;z-index:99;border:1px solid #666;border-left:0;border-right:0}.x>.body>.gnb>ul>li>ul>li>a{padding:4px 5px 4px 15px;background:#e8e8e8;background:-webkit-linear-gradient(top,#f1f1f1,#e8e8e8);background:-moz-linear-gradient(top,#f1f1f1,#e8e8e8);background:-o-linear-gradient(top,#f1f1f1,#e8e8e8);background:-ms-linear-gradient(top,#f1f1f1,#e8e8e8);background:linear-gradient(top,#f1f1f1,#e8e8e8)}.x>.body>.gnb>ul>li>ul#favorite>li>a{padding:4px 25px 4px 15px}.x>.body>.gnb>ul>li>ul>li:first-child>a{border-radius:4px 4px 0 0}.x>.body>.gnb>ul>li>ul>li:last-child>a{border-radius:0 0 4px 4px}.x>.body>.gnb>ul>li>ul>li:only-child>a{border-radius:4px}.x>.body>.gnb>ul>li>ul>li.active_>a,.x>.body>.gnb>ul>li>ul>li>a:active,.x>.body>.gnb>ul>li>ul>li>a:hover{font-weight:700;background:-webkit-linear-gradient(top,#F6F6F6,#F1F1F1);background:-moz-linear-gradient(top,#F6F6F6,#F1F1F1);background:-o-linear-gradient(top,#F6F6F6,#F1F1F1);background:-ms-linear-gradient(top,#F6F6F6,#F1F1F1);background:linear-gradient(top,#F6F6F6,#F1F1F1)}.x>.body>.gnb>ul>li>ul>li.active_>a:after{content:"";position:absolute;top:8px;right:-12px;border:6px solid transparent;border-left-color:#f3f3f3;width:0;height:0;overflow:hidden}.x>.body>.gnb>ul>li>ul>li>.remove{position:absolute;top:4px;right:5px}.x>.body>.gnb>ul>li>ul>li>.remove>.x_close{width:20px;height:20px}@media all and (max-width:800px){.x>.body.wide>.gnb>ul>li>a>.tx{width:auto;height:auto}}.x .dashboard{zoom:1}.x .dashboard:after{content:"";display:block;clear:both}.x .dashboard>div{float:right;width:49%}.x .dashboard>div:first-child{float:left}.x .dashboard>div>section{position:relative;height:196px;border:1px solid #ddd;border-radius:4px;margin:0 0 25px;overflow:hidden}.x .dashboard>div>section>h2{font-size:14px;margin:0;padding:6px 15px;border-bottom:1px solid #ddd;background:#e8e8e8;background:-webkit-linear-gradient(top,#F1F1F1,#E8E8E8);background:-moz-linear-gradient(top,#F1F1F1,#E8E8E8);background:-o-linear-gradient(top,#F1F1F1,#E8E8E8);background:-ms-linear-gradient(top,#F1F1F1,#E8E8E8);background:linear-gradient(top,#F1F1F1,#E8E8E8);text-shadow:0 1px 0 #fff}.x .dashboard>div>section>h2:before{content:"";display:inline-block;width:14px;height:14px;margin:0 4px 0 0;vertical-align:middle;opacity:.5;filter:alpha(opacity=50)}.x .dashboard>div>.status>h2:before{background-position:-408px 0}.x .dashboard>div>.status dl{color:#767676;display:inline-block;*display:inline;zoom:1;margin:0 8px 0 0;padding:1px 8px 0;font:11px/1 돋움,Dotum,Arial,Helvetica,sans-serif;background:#fff;box-shadow:0 0 3px #999 inset;border-radius:3px;min-width:60px;text-align:center}.x .dashboard>div>.status dt{display:inline;font-weight:400}.x .dashboard>div>.status dd{display:inline;margin:0}.x .dashboard>div>.status dl a{color:#767676}.x .dashboard>div>.member>h2:before{background-position:-168px 0}.x .dashboard>div>.document>h2:before{background-position:-264px -48px}.x .dashboard>div>.reply>h2:before{background-position:-240px -120px}.x .dashboard>div>.trackback>h2:before{background-position:-216px -120px}.x .dashboard>div>section>.more{position:absolute;top:7px;right:15px;text-shadow:0 1px 0 #fff}.x .dashboard>div>section>.more i{font:12px Tahoma,Geneva,sans-serif}.x .dashboard>div>section>.more dl{color:#767676;display:inline-block;*display:inline;zoom:1;margin:0 8px 0 0;padding:1px 8px 0;font:11px/1 돋움,Dotum,Arial,Helvetica,sans-serif;background:#fff;box-shadow:0 0 3px #999 inset;border-radius:3px;min-width:60px;text-align:center}.x .dashboard>div>section>.more dt{display:inline;font-weight:400}.x .dashboard>div>section>.more dd{display:inline;margin:0}.x .dashboard>div>section>.more dl a{color:#767676}.x .dashboard>div>section ul{list-style:none;margin:10px;padding:0;overflow:hidden;zoom:1}.x .dashboard>div>section li{position:relative;height:28px;line-height:28px;padding:0 70px 0 5px;white-space:nowrap;overflow:hidden;zoom:1;vertical-align:top}.x .dashboard>div>section li.hover{background:#f4f4f4;border-radius:4px}.x .dashboard>div>section li>a{display:block;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x .dashboard>div>section li>.side{position:absolute;top:0;right:5px;line-height:28px;width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;zoom:1}.x .dashboard>div>section li>.action{display:none;position:absolute;top:0;right:5px;margin:0;padding:0 0 0 40px;text-align:right;white-space:nowrap;line-height:28px;background:#f4f4f4}.x .dashboard>div>section li>.action>button{margin:0 0 0 4px;padding:0 0 0 15px;overflow:visible}@media all and (max-width:980px){.x .dashboard>div{float:none!important;width:auto}}.x .g11n>.x_add-on{font-size:0;position:relative;cursor:pointer;text-decoration:none;*color:#eee}.x .g11n>.x_add-on>i{position:absolute;top:50%;left:50%;margin:-7px 0 0 -7px;z-index:1;opacity:.25;filter:alpha(opacity=25)}.x .g11n>.x_add-on.remover{display:none;width:26px;height:26px}.x .g11n.active>[disabled]{padding-left:25px;background-position:4px 6px;background-repeat:no-repeat}.x .g11n.active>.x_add-on.remover{display:inline-block}.x .g11n>.x_add-on:hover>i{opacity:1;filter:alpha(opacity=100)}.x .g11n>textarea{border-top-right-radius:0;overflow-x:hidden}#g11n #lang_search .list{border-top:2px solid #ddd}#g11n #lang_search .item{border-bottom:1px solid #ddd;margin:0}#g11n #lang_search .item>a{display:block;padding:8px 0;position:relative}#g11n #lang_search .item>a>i{position:absolute;top:50%;margin:-7px 0 0 0;right:0;opacity:.5;filter:alpha(opacity=50)}#g11n #lang_search .item>fieldset{display:none;padding:0 0 15px}#g11n .item input[type=text],#g11n .item textarea{padding-left:25px;width:187px;background-repeat:no-repeat;background-position:4px 8px;overflow-x:hidden}#g11n .flag{padding-left:18px;background-repeat:no-repeat;background-position:0 50%}#g11n .flag.en,#g11n .item .en,html[lang=en] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.en.gif)}#g11n .flag.ko,#g11n .item .ko,html[lang=ko] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.ko.gif)}#g11n .flag.jp,#g11n .item .jp,html[lang=jp] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.jp.gif)}#g11n .flag.zh-CN,#g11n .item .zh-CN,html[lang=zh] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.cn.gif)}#g11n .flag.zh-TW,#g11n .item .zh-TW,html[lang=zh] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.tw.gif)}#g11n .flag.fr,#g11n .item .fr,html[lang=fr] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.fr.gif)}#g11n .flag.de,#g11n .item .de,html[lang=de] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.de.gif)}#g11n .flag.ru,#g11n .item .ru,html[lang=ru] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.ru.gif)}#g11n .flag.es,#g11n .item .es,html[lang=es] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.es.gif)}#g11n .item .tr,#gg1n .flag.tr,html[lang=tr] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.tr.gif)}#g11n .flag.vi,#g11n .item .vi,html[lang=vi] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.vi.gif)}#g11n .flag.mn,#g11n .item .mn,html[lang=mn] .x .g11n.active>[disabled]{background-image:url(../../../../admin/tpl/img/flag.mn.gif)}#g11n #lang_search .cancel,#g11n #lang_search .editMode .modify,#g11n #lang_search .editMode .useit,#g11n #lang_search .save{display:none}#g11n #lang_search .editMode .cancel,#g11n #lang_search .editMode .save{display:inline-block}.x .moduleWindow{position:absolute;z-index:100;padding:15px 20px}.x .moduleWindow ul{margin-bottom:0}.x .moduleWindow .siteList{margin-right:14px}.x .moduleWindow .siteList>input[type=search]{width:100%;padding-top:6px;padding-bottom:6px;border-radius:3px 3px 0 0;margin-bottom:0}.x .moduleWindow .siteList>ul{margin:-1px -14px 0 0}.x .moduleWindow .siteList>ul>li{background:#fff}.x .moduleWindow .siteList>ul>li:first-child>a{border-top-left-radius:0;border-top-right-radius:0}.x .moduleWindow select{width:100%}.x .textList{border:1px solid #ddd!important;line-height:1.5em;height:125px;overflow:auto}.x .textList li{position:relative;border:0;padding:0 10px;height:25px;line-height:25px;white-space:nowrap;overflow:hidden}.x .textList li:nth-child(even){background:#eee}.x .textList li>button{position:absolute;right:8px;top:50%;margin:-7px 0 0 0}.x .uDrag .wrap{position:relative;padding-left:20px}.x .uDrag li>.wrap{margin:0 0 0 8px}.x .uDrag .dragActive{background:#FFD}.x .uDrag .dragActive td,.x .uDrag .dragActive th{background:none!important}.x .uDrag .dragBtn{position:absolute;width:8px;height:100%;padding:0;overflow:hidden;background:url(../../../../admin/tpl/img/bgDragable.gif);top:1px;left:0;text-indent:12px;border:0;cursor:n-resize;white-space:nowrap;font-size:0}.x #faviconPreview{position:relative;padding:80px 0 0 200px;background:url(../../../../admin/tpl/img/bgFavicon.gif) no-repeat}.x #faviconPreview img{position:absolute}.x #faviconPreview .fn1{top:30px;left:12px}.x #faviconPreview .fn2{top:55px;left:68px}.x #mobiconPreview{position:relative;padding:270px 0 0 200px;background:url(../../../../admin/tpl/img/bgMobileTop.png) no-repeat}.x #mobiconPreview img{position:absolute;top:20px;left:10px;width:32px;height:32px}.x #mobiconPreview span{position:absolute;width:32px;text-align:center;top:52px;left:10px;color:#fff;font-size:9px}.x .layer{position:absolute;display:none;font-weight:400}.tree{margin:3px 0 5px;min-width:200px;background-color:transparent!important}.tree ul{margin:0;padding:0;list-style:none}.tree li{padding:0;white-space:nowrap;position:relative;border-radius:3px;vertical-align:top}.tree li>ul{margin:0}.tree a{text-decoration:none}.tree>ul{padding:1px}.tree .jstree-rename-input{margin-left:-16px;z-index:2}.tree>ul>li{margin-top:30px;position:relative}.tree>ul>li:before{content:"";display:block;border-top:1px dotted #ccc;position:relative;top:-15px}.tree>ul>li:first-child{margin-top:0}.tree>ul>li:first-child:before{content:normal}.tree>ul>li>a{font-weight:700;text-shadow:0 1px 0 #fff;vertical-align:middle}.tree>ul>li>a.jstree-clicked,.tree>ul>li>a.jstree-hovered,.tree>ul>li>a:focus,.tree>ul>li>a:hover{text-shadow:none}.tree>ul>li>ul{margin:0 0 0 18px}.tree>ul>li>ul>li{margin-left:0}.tree li>a{border:0!important;padding:0 8px!important;margin:0 0 1px;border-radius:3px;position:relative;z-index:2;height:23px;line-height:23px;max-width:160px;overflow:hidden;text-overflow:ellipsis;-webkit-transition:.2s;-moz-transition:.2s;-o-transition:.2s;transition:.2s}.tree li>a>i{opacity:.5;filter:alpha(opacity=50)}.tree .jstree-clicked>i,.tree .jstree-hovered>i{opacity:1;filter:alpha(opacity=100)}.tree a>.jstree-icon{display:none}.tree .jstree-closed>.jstree-icon,.tree .jstree-open>.jstree-icon{background-color:#fff}.x .h2,.x .h3,.x .h4{position:relative;border-style:solid;border-top:0;border-right:0;zoom:1;padding-left:8px}.x .h1{background:#444;border-radius:4px;color:#fff;margin:0 0 1em;font-size:16px;padding:0 15px;line-height:36px}.x .h2{border-width:3px;font-size:20px;border-color:#888}.x .h3{border-width:2px;font-size:16px;border-color:#aaa}.x .h4{border-width:1px;font-size:12px;border-color:#ccc}.x .h1+.table table,.x .h1+ul,.x .h2+.table table,.x .h2+ul,.x .h3+.table table,.x .h3+ul,.x .h4+.table table,.x .h4+ul{border-top:0!important;margin-top:-1em!important}.x .table{margin:1em 0}.x .table table{width:100%;border:0;border-collapse:collapse;border-top:2px solid #ccc}.x .table caption{font-weight:700;text-align:left;line-height:22px;padding:5px 0}.x .table caption:after{content:"";display:block;clear:both}.x .table caption a{font-weight:400}.x .table caption em{float:right;margin-left:1em}.x .table caption strong{color:#e00}.x .table caption .side{float:right;font-weight:400;margin-left:1em}.x .table td,.x .table th{border:0;padding:8px;vertical-align:top;text-align:left;border-bottom:1px solid #ddd}.x .table th{background:#f8f8f8}.x .table thead th{border-bottom:1px solid #999}.x .table tfoot td{font-weight:700;background:#f8f8f8}.x .table.even tbody tr:nth-of-type(even){background-color:#fafafa}.x .table tbody tr:hover{background:#ffd!important}.x .table td>input[type=text]{margin:-1px 0!important;vertical-align:middle}.x .table img{vertical-align:middle}.x .table em{font-style:normal;font-weight:400;color:#e00}.x .form{margin:0 0 1em;padding:0}.x .form fieldset{margin:0 0 2em;padding:0;border:0}.x .form.search fieldset{border:1px solid #ccc;padding:5px 15px;border-radius:3px}.x .form em{font-style:normal;color:#e00}.x .form label{line-height:1;vertical-align:middle}.x .form input[type=checkbox]+label,.x .form input[type=radio]+label{margin-right:1em}.x .form input[type=checkbox]+label,.x .form input[type=file],.x .form input[type=radio]+label{cursor:pointer}.x .form ul{position:relative;margin:1em 0;padding:0;list-style:none;border-top:2px solid #ccc;border-bottom:1px solid #ccc;zoom:1}.x .form li{list-style:none;border:1px solid #ddd;border-left:0;border-right:0;margin:-1px 0;padding:8px 0;vertical-align:top;zoom:1}.x .form li:hover{background:#ffd}.x .form li:first-child{border-top:0}.x .form li>label:first-child{display:block;font-weight:700}.x .form li label em{font-weight:400}.x .form label.overlap{position:absolute;color:#aaa}.x .form input[type=file],.x .form input[type=password],.x .form input[type=text],.x .form select[size],.x .form textarea{position:relative;width:280px;margin:2px 0;border:1px solid #b7b7b7;border-right-color:#e1e1e1;border-bottom-color:#e1e1e1;background:0 0}.x .form input[type=file],.x .form input[type=password],.x .form input[type=text]{height:22px;line-height:22px;vertical-align:middle;padding:0 4px}.x .form input[type=checkbox],.x .form input[type=radio]{margin:0;padding:0;width:13px;height:13px;vertical-align:middle}.x .form input[type=checkbox][disabled=disabled],.x .form input[type=password][disabled=disabled],.x .form input[type=radio][disabled=disabled],.x .form input[type=text][disabled=disabled],.x .form select[disabled=disabled],.x .form textarea[disabled=disabled]{background:#ddd;text-shadow:1px 1px 0 #fff}.x .form textarea{padding:3px 4px;vertical-align:top;resize:both}.x .form em.desc,.x .form span.desc{line-height:22px;vertical-align:middle;margin:0 10px}.x .form p.desc{margin:.25em 0;line-height:1.4}.x .form .q{font-weight:700;margin:0 0 5px}.x .form .a{margin:0 0 5px}.x .form .tgForm{margin-right:1em}.x .cnb{margin:1em 0;position:relative;zoom:1}.x .cnb:after{content:"";display:block;clear:both}.x .cnb ul{list-style:none;margin:0;padding:0}.x .cnb li{display:inline}.x .cnb li:before{content:"| ";color:#ccc}.x .cnb li:first-child:before{content:""}.x .cnb .active,.x .cnb .active a{font-weight:700;color:#333;text-decoration:none}.x .cnb .side{float:right}.x .pagination{margin:1em 0;text-align:center;line-height:normal}.x .pagination *{vertical-align:middle}.x .pagination a,.x .pagination strong{position:relative;display:inline-block;padding:2px 4px;font-weight:700;text-decoration:none;line-height:normal;color:#333!important;vertical-align:middle}.x .pagination a:active,.x .pagination a:focus,.x .pagination a:hover{border:1px solid #ddd;margin:0 -1px}.x .pagination strong{color:#e00!important;font-size:20px}.x .pagination .direction{font-weight:400;white-space:nowrap}.x .pagination .direction:active,.x .pagination .direction:focus,.x .pagination .direction:hover{border:0;margin:0;text-decoration:underline}.x .pagination input{width:30px;text-align:center}.x .pagination button{overflow:visible}.x .prgrs{white-space:nowrap;line-height:normal;vertical-align:middle}.x .prgrs *{vertical-align:middle}.x .prgrs .pBar{position:relative;display:inline-block;background:#e9e9e9;margin:0 5px 0 0}.x .prgrs .pAction{display:inline-block;vertical-align:top;background:#99a6b6}.x .prgrs .pNum{width:100%;left:0;top:0;text-align:center;text-shadow:1px 1px 0 #fff}.x .prgrs.prgrsSmall{font-size:14px;line-height:14px}.x .prgrs.prgrsSmall .pAction,.x .prgrs.prgrsSmall .pBar,.x .prgrs.prgrsSmall .pNum{height:16px;line-height:16px;font-size:11px}.x .prgrs.prgrsMedium{font-size:24px;line-height:24px}.x .prgrs.prgrsMedium .pAction,.x .prgrs.prgrsMedium .pBar,.x .prgrs.prgrsMedium .pNum{height:22px;line-height:22px;font-size:12px}.x .prgrs.prgrsLarge{font-size:38px;line-height:38px}.x .prgrs.prgrsLarge .pAction,.x .prgrs.prgrsLarge .pBar,.x .prgrs.prgrsLarge .pNum{height:34px;line-height:34px;font-size:14px}.modal{_height:100%;min-height:100%}.modal .bg{position:absolute;background:#000;_background:0 0;width:100%;height:100%;opacity:.5;z-index:2;filter:alpha(opacity=50);zoom:1}.modal .fg{position:relative;width:80%;margin:5em auto;background:#fff;padding:0 1em;*padding:1em;border:8px solid #ddd;z-index:3;zoom:1;border-radius:5px;box-shadow:0 0 6px #000}.modal .lined,.modal .table,.modal ol,.modal ul{margin-bottom:1em}.modal .ie6{position:absolute;left:0;top:0;width:100%;height:100%;border:0;opacity:0;filter:alpha(opacity=0);z-index:1}.modalClose{position:absolute;right:-8px;top:-8px;border:0;background:#ddd;padding:0;width:28px;height:28px;font-size:14px;font-weight:700;cursor:pointer;color:#999;border-radius:5px}.modalBlur{position:absolute;top:0;right:0;border:0;background:0 0;padding:0;width:1px;height:1px;overflow:hidden}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:active,a:hover{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button,input[type=button],input[type=checkbox],input[type=radio],input[type=reset],input[type=submit],label,select{cursor:pointer}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:focus,a:hover{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:after,.row:before{display:table;line-height:0;content:""}.row:after{clear:both}[class*=span]{float:left;min-height:1px;margin-left:20px}.container,.navbar-fixed-bottom .container,.navbar-fixed-top .container,.navbar-static-top .container,.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:after,.row-fluid:before{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*=span]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*=span]:first-child{margin-left:0}.row-fluid .controls-row [class*=span]+[class*=span]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}.row-fluid [class*=span].hide,[class*=span].hide{display:none}.row-fluid [class*=span].pull-right,[class*=span].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:after,.container:before{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:after,.container-fluid:before{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:700}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:focus,a.muted:hover{color:gray}.text-warning{color:#c09853}a.text-warning:focus,a.text-warning:hover{color:#a47e3c}.text-error{color:#b94a48}a.text-error:focus,a.text-error:hover{color:#953b39}.text-info{color:#3a87ad}a.text-info:focus,a.text-info:hover{color:#2d6987}.text-success{color:#468847}a.text-success:focus,a.text-success:hover{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:700;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small,h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ol,ul{padding:0;margin:0 0 10px 25px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}li{line-height:20px}ol.inline,ol.unstyled,ul.inline,ul.unstyled{margin-left:0;list-style:none}ol.inline>li,ul.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dd,dt{line-height:20px}dt{font-weight:700}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:after,.dl-horizontal:before{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}blockquote:after,blockquote:before,q:after,q:before{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}button,input,label,select,textarea{font-size:14px;font-weight:400;line-height:20px}button,input,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}.uneditable-input,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.uneditable-input,input,textarea{width:206px}textarea{height:auto}.uneditable-input,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}.uneditable-input:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{border-color:rgba(82,168,236,.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type=button],input[type=checkbox],input[type=file],input[type=image],input[type=radio],input[type=reset],input[type=submit]{width:auto}input[type=file],select{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus,select:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.025);box-shadow:inset 0 1px 2px rgba(0,0,0,.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.checkbox,.radio{min-height:20px;padding-left:20px}.checkbox input[type=checkbox],.radio input[type=radio]{float:left;margin-left:-20px}.controls>.checkbox:first-child,.controls>.radio:first-child{padding-top:5px}.checkbox.inline,.radio.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.checkbox.inline+.checkbox.inline,.radio.inline+.radio.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}.row-fluid .uneditable-input[class*=span],.row-fluid input[class*=span],.row-fluid select[class*=span],.row-fluid textarea[class*=span],.uneditable-input[class*=span],input[class*=span],select[class*=span],textarea[class*=span]{float:none;margin-left:0}.input-append .uneditable-input[class*=span],.input-append input[class*=span],.input-prepend .uneditable-input[class*=span],.input-prepend input[class*=span],.row-fluid .input-append [class*=span],.row-fluid .input-prepend [class*=span],.row-fluid .uneditable-input[class*=span],.row-fluid input[class*=span],.row-fluid select[class*=span],.row-fluid textarea[class*=span]{display:inline-block}.uneditable-input,input,textarea{margin-left:0}.controls-row [class*=span]+[class*=span]{margin-left:20px}.uneditable-input.span12,input.span12,textarea.span12{width:926px}.uneditable-input.span11,input.span11,textarea.span11{width:846px}.uneditable-input.span10,input.span10,textarea.span10{width:766px}.uneditable-input.span9,input.span9,textarea.span9{width:686px}.uneditable-input.span8,input.span8,textarea.span8{width:606px}.uneditable-input.span7,input.span7,textarea.span7{width:526px}.uneditable-input.span6,input.span6,textarea.span6{width:446px}.uneditable-input.span5,input.span5,textarea.span5{width:366px}.uneditable-input.span4,input.span4,textarea.span4{width:286px}.uneditable-input.span3,input.span3,textarea.span3{width:206px}.uneditable-input.span2,input.span2,textarea.span2{width:126px}.uneditable-input.span1,input.span1,textarea.span1{width:46px}.controls-row{*zoom:1}.controls-row:after,.controls-row:before{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*=span],.row-fluid .controls-row [class*=span]{float:left}.controls-row .checkbox[class*=span],.controls-row .radio[class*=span]{padding-top:5px}input[disabled],input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type=checkbox][disabled],input[type=checkbox][readonly],input[type=radio][disabled],input[type=radio][readonly]{background-color:transparent}.control-group.warning .checkbox,.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e}.control-group.warning .input-append .add-on,.control-group.warning .input-prepend .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .checkbox,.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392}.control-group.error .input-append .add-on,.control-group.error .input-prepend .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .checkbox,.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b}.control-group.success .input-append .add-on,.control-group.success .input-prepend .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .checkbox,.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad;border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7ab5d3}.control-group.info .input-append .add-on,.control-group.info .input-prepend .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:after,.form-actions:before{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append .dropdown-menu,.input-append .popover,.input-append .uneditable-input,.input-append input,.input-append select,.input-prepend .dropdown-menu,.input-prepend .popover,.input-prepend .uneditable-input,.input-prepend input,.input-prepend select{font-size:14px}.input-append .uneditable-input,.input-append input,.input-append select,.input-prepend .uneditable-input,.input-prepend input,.input-prepend select{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .uneditable-input:focus,.input-append input:focus,.input-append select:focus,.input-prepend .uneditable-input:focus,.input-prepend input:focus,.input-prepend select:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:400;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-append .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .add-on,.input-prepend .btn,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-append .uneditable-input,.input-append input,.input-append select,.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append .uneditable-input+.btn-group .btn:last-child,.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn-group:last-child>.dropdown-toggle,.input-append .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .uneditable-input,.input-prepend.input-append input,.input-prepend.input-append select{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append .uneditable-input+.btn-group .btn,.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn,.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-horizontal .help-inline,.form-horizontal .input-append,.form-horizontal .input-prepend,.form-horizontal .uneditable-input,.form-horizontal input,.form-horizontal select,.form-horizontal textarea,.form-inline .help-inline,.form-inline .input-append,.form-inline .input-prepend,.form-inline .uneditable-input,.form-inline input,.form-inline select,.form-inline textarea,.form-search .help-inline,.form-search .input-append,.form-search .input-prepend,.form-search .uneditable-input,.form-search input,.form-search select,.form-search textarea{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-horizontal .hide,.form-inline .hide,.form-search .hide{display:none}.form-inline .btn-group,.form-inline label,.form-search .btn-group,.form-search label{display:inline-block}.form-inline .input-append,.form-inline .input-prepend,.form-search .input-append,.form-search .input-prepend{margin-bottom:0}.form-inline .checkbox,.form-inline .radio,.form-search .checkbox,.form-search .radio{padding-left:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio],.form-search .checkbox input[type=checkbox],.form-search .radio input[type=radio]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:after,.form-horizontal .control-group:before{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal .input-append+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table td,.table th{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:700}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child td,.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child td,.table thead:first-child tr:first-child th{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed td,.table-condensed th{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered td,.table-bordered th{border-left:1px solid #ddd}.table-bordered caption+tbody tr:first-child td,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+thead tr:first-child th,.table-bordered tbody:first-child tr:first-child td,.table-bordered tbody:first-child tr:first-child th,.table-bordered thead:first-child tr:first-child th{border-top:0}.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child,.table-bordered thead:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child,.table-bordered thead:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child,.table-bordered thead:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child,.table-bordered thead:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered caption+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered caption+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}.row-fluid table td[class*=span],.row-fluid table th[class*=span],table td[class*=span],table th[class*=span]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class*=" icon-"],[class^=icon-]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url(../../../../../common/img/glyphicons-halflings.png);background-position:14px 14px;background-repeat:no-repeat}.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-menu>.active>a>[class^=icon-],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>li>a:focus>[class^=icon-],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^=icon-],.dropdown-submenu:focus>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class^=icon-],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^=icon-],.icon-white,.nav-list>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^=icon-],.nav-pills>.active>a>[class*=" icon-"],.nav-pills>.active>a>[class^=icon-],.navbar-inverse .nav>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^=icon-]{background-image:url(../../../../../common/img/glyphicons-halflings-white.png)}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropdown,.dropup{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover,.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#999}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px;-moz-border-radius:0 6px 6px;border-radius:0 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:700;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.btn.active,.btn.disabled,.btn:active,.btn:focus,.btn:hover,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn.active,.btn:active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:focus,.btn:hover{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class*=" icon-"],.btn-large [class^=icon-]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class*=" icon-"],.btn-small [class^=icon-]{margin-top:0}.btn-mini [class*=" icon-"],.btn-mini [class^=icon-]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary.active,.btn-primary.disabled,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary.active,.btn-primary:active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning.active,.btn-warning.disabled,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning.active,.btn-warning:active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger.active,.btn-danger.disabled,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger.active,.btn-danger:active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success.active,.btn-success.disabled,.btn-success:active,.btn-success:focus,.btn-success:hover,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success.active,.btn-success:active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info.active,.btn-info.disabled,.btn-info:active,.btn-info:focus,.btn-info:hover,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info.active,.btn-info:active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse.active,.btn-inverse.disabled,.btn-inverse:active,.btn-inverse:focus,.btn-inverse:hover,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse.active,.btn-inverse:active{background-color:#080808 \9}button.btn,input[type=submit].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type=submit].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type=submit].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type=submit].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type=submit].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:focus,.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px;border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-danger .caret,.btn-info .caret,.btn-inverse .caret,.btn-primary .caret,.btn-success .caret,.btn-warning .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:700;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list .nav-header,.nav-list>li>a{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:focus,.nav-list>.active>a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.2);background-color:#08c}.nav-list [class*=" icon-"],.nav-list [class^=icon-]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-pills,.nav-tabs{*zoom:1}.nav-pills:after,.nav-pills:before,.nav-tabs:after,.nav-tabs:before{display:table;line-height:0;content:""}.nav-pills:after,.nav-tabs:after{clear:both}.nav-pills>li,.nav-tabs>li{float:left}.nav-pills>li>a,.nav-tabs>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:focus,.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:focus,.nav-tabs>.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:focus,.nav-pills>.active>a:hover{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:focus,.nav-tabs.nav-stacked>li>a:hover{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:focus .caret,.nav .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:focus,.nav>.dropdown.active>a:hover{cursor:pointer}.nav-pills .open .dropdown-toggle,.nav-tabs .open .dropdown-toggle,.nav>li.dropdown.open.active>a:focus,.nav>li.dropdown.open.active>a:hover{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open a:focus .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open.active .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:focus,.tabs-stacked .open>a:hover{border-color:#999}.tabbable{*zoom:1}.tabbable:after,.tabbable:before{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-left>.nav-tabs,.tabs-right>.nav-tabs{border-bottom:0}.pill-content>.pill-pane,.tab-content>.tab-pane{display:none}.pill-content>.active,.tab-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:focus,.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:focus,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:focus,.tabs-left>.nav-tabs>li>a:hover{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:focus,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:focus,.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:focus,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:focus,.nav>.disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,.065);box-shadow:0 1px 4px rgba(0,0,0,.065)}.navbar-inner:after,.navbar-inner:before{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:focus,.navbar .brand:hover{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:focus,.navbar-link:hover{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-append .btn,.navbar .input-append .btn-group,.navbar .input-prepend .btn,.navbar .input-prepend .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:after,.navbar-form:before{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form .checkbox,.navbar-form .radio,.navbar-form input,.navbar-form select{margin-top:5px}.navbar-form .btn,.navbar-form input,.navbar-form select{display:inline-block;margin-bottom:0}.navbar-form input[type=checkbox],.navbar-form input[type=image],.navbar-form input[type=radio]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:400;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-bottom .navbar-inner,.navbar-fixed-top .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-bottom .container,.navbar-fixed-top .container,.navbar-static-top .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,.1);box-shadow:0 1px 10px rgba(0,0,0,.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,.1);box-shadow:0 -1px 10px rgba(0,0,0,.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:focus,.navbar .nav>.active>a:hover{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,.125);box-shadow:inset 0 3px 8px rgba(0,0,0,.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.075)}.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar:active,.navbar .btn-navbar:focus,.navbar .btn-navbar:hover,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar.active,.navbar .btn-navbar:active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,.25);box-shadow:0 1px 0 rgba(0,0,0,.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:focus .caret,.navbar .nav li.dropdown>a:hover .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle,.navbar .nav li.dropdown.open>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .nav>li>.dropdown-menu.pull-right,.navbar .pull-right>li>.dropdown-menu{right:0;left:auto}.navbar .nav>li>.dropdown-menu.pull-right:before,.navbar .pull-right>li>.dropdown-menu:before{right:12px;left:auto}.navbar .nav>li>.dropdown-menu.pull-right:after,.navbar .pull-right>li>.dropdown-menu:after{right:13px;left:auto}.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu,.navbar .pull-right>li>.dropdown-menu .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-inverse .brand:focus,.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff}.navbar-inverse .brand,.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:focus,.navbar-inverse .nav .active>a:hover{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:focus,.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:focus .caret,.navbar-inverse .nav li.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query.focused,.navbar-inverse .navbar-search .search-query:focus{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);-moz-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar:active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>.active>a,.pagination ul>.active>span,.pagination ul>li>a:focus,.pagination ul>li>a:hover{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>a,.pagination ul>.disabled>a:focus,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>span{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>a,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>a,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:after,.pager:before{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,.3);box-shadow:0 3px 7px rgba(0,0,0,.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:after,.modal-footer:before{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:after,.thumbnails:before{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,.055);box-shadow:0 1px 3px rgba(0,0,0,.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:focus,a.thumbnail:hover{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,.25);box-shadow:0 1px 4px rgba(0,105,214,.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.badge,.label{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:700;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.badge:empty,.label:empty{display:none}a.badge:focus,a.badge:hover,a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.badge-important,.label-important{background-color:#b94a48}.badge-important[href],.label-important[href]{background-color:#953b39}.badge-warning,.label-warning{background-color:#f89406}.badge-warning[href],.label-warning[href]{background-color:#c67605}.badge-success,.label-success{background-color:#468847}.badge-success[href],.label-success[href]{background-color:#356635}.badge-info,.label-info{background-color:#3a87ad}.badge-info[href],.label-info[href]{background-color:#2d6987}.badge-inverse,.label-inverse{background-color:#333}.badge-inverse[href],.label-inverse[href]{background-color:#1a1a1a}.btn .badge,.btn .label{position:relative;top:-1px}.btn-mini .badge,.btn-mini .label{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress .bar-danger,.progress-danger .bar{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress .bar-success,.progress-success .bar{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0)}.progress-striped .bar-success,.progress-success.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress .bar-info,.progress-info .bar{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress .bar-warning,.progress-warning .bar{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0)}.progress-striped .bar-warning,.progress-warning.progress-striped .bar{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,.15)),color-stop(0.75,rgba(255,255,255,.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}} \ No newline at end of file diff --git a/modules/widget/tpl/css/widget.min.css b/modules/widget/tpl/css/widget.min.css index 5f839d4b81..94fdaf395b 100644 --- a/modules/widget/tpl/css/widget.min.css +++ b/modules/widget/tpl/css/widget.min.css @@ -1 +1 @@ -@charset "utf-8";.widget_title{margin:10px 5px 5px 0;padding:3px;border:1px solid #ddd}.widget_mid_list{margin:0 0 5px 10px}.widget_description{margin:5px 0 0;padding:5px 0 0;border-top:1px dotted #eee;color:#aaa}#colorset_area{margin-top:.5em}#colorset_area .header{float:left;margin-right:.5em;padding-top:.2em}#colorset_area .footer{float:left}#zonePageContent{overflow:hidden;margin:0!important;padding:0!important;width:100%}.pageAddContent{width:700px}.widgetOutput{float:left;z-index:998;position:relative;overflow:hidden;width:100%;min-height:24px;cursor:move}.widgetOutput .widgetBorder,.widgetOutput .widgetBoxBorder{z-index:999;box-sizing:border-box;height:100%;min-height:24px;border:1px dashed #ccc}.widgetOutput .widgetResize{z-index:1000;position:absolute;bottom:1px;right:1px;width:12px;height:12px;border:0;cursor:pointer;background:transparent url(../images/btn_resize.gif) no-repeat left bottom}.widgetOutput .widgetResizeLeft{height:12px;bottom:1px;position:absolute;border:0;width:12px;z-index:1000;left:1px;cursor:pointer;background:transparent url(../images/btn_resize_left.gif) no-repeat left bottom}.widgetOutput .widgetBoxResize{z-index:1000;position:absolute;right:1px;bottom:1px;width:12px;height:12px;border:0;cursor:pointer;background:transparent url(../images/btn_resize.gif) no-repeat left bottom}.widgetOutput .widgetBoxResizeLeft{z-index:1000;position:absolute;left:1px;bottom:0;width:12px;height:12px;border:0;cursor:pointer;background:transparent url(../images/btn_resize_left.gif) no-repeat left bottom}.widgetButtons{float:left;z-index:1000;visibility:hidden;position:absolute;top:0;overflow:hidden;padding:0 10px;line-height:24px;box-shadow:0 0 3px #333 inset;*zoom:1}.widgetButtons#widgetButton{left:0;background-color:#C7DBE9}.widgetButtons#widgetBoxButton{right:0;background-color:#D2E9C7}.widgetButtons>button{z-index:99;padding:14px 0 0;overflow:hidden;width:14px;height:14px;border:0;cursor:pointer;background:transparent url(../../../admin/tpl/img/glyphicons-halflings.png) no-repeat}.widgetButtons .widgetSetup{background-position:-432px 0}.widgetButtons .widgetBoxSize,.widgetButtons .widgetSize{background-position:-96px -120px}.widgetButtons .widgetStyle{background-position:-456px -144px}.widgetButtons .widgetBoxCopy,.widgetButtons .widgetCopy{background-position:0 -96px}.widgetButtons .widgetBoxRemove,.widgetButtons .widgetRemove{background-position:-456px 0}.help{padding:5px 0;border-top:1px solid #ccc;background-color:#EFEFEF}ul.midCommand{float:left;margin:0 0 0 10px;padding:0;*zoom:1}ul.midCommand li{display:block;margin-bottom:5px;list-style:none}a.widgetStyle{display:inline-block;position:relative;margin:0 10px 10px 0;overflow:hidden;width:96px;height:96px;border:1px solid #fff;text-decoration:none;*zoom:1}a.widgetStyle:hover{border:1px dashed #ccc}a.widgetStyle:hover span{display:none}a.widgetStyle.selected{border:1px dashed #999}a.widgetStyle img{margin:1px;width:96px;height:96px}a.widgetStyle span{display:block;position:absolute;left:0;bottom:0;width:96px;padding:4px 3px 3px;text-align:center;font-family:tahoma;color:#fff;filter:alpha(opacity=80);opacity:.8;background-color:#888}#zonePageContent .widgetContainer{min-height:20px} \ No newline at end of file +@charset "utf-8";.widget_title{margin:10px 5px 5px 0;padding:3px;border:1px solid #ddd}.widget_mid_list{margin:0 0 5px 10px}.widget_description{margin:5px 0 0;padding:5px 0 0;border-top:1px dotted #eee;color:#aaa}#colorset_area{margin-top:.5em}#colorset_area .header{float:left;margin-right:.5em;padding-top:.2em}#colorset_area .footer{float:left}#zonePageContent{overflow:hidden;margin:0!important;padding:0!important;width:100%}.pageAddContent{width:700px}.widgetOutput{float:left;z-index:998;position:relative;overflow:hidden;width:100%;min-height:24px;cursor:move}.widgetOutput .widgetBorder,.widgetOutput .widgetBoxBorder{z-index:999;box-sizing:border-box;height:100%;min-height:24px;border:1px dashed #ccc}.widgetOutput .widgetResize{z-index:1000;position:absolute;bottom:1px;right:1px;width:12px;height:12px;border:0;cursor:pointer;background:transparent url(../images/btn_resize.gif) no-repeat left bottom}.widgetOutput .widgetResizeLeft{height:12px;bottom:1px;position:absolute;border:0;width:12px;z-index:1000;left:1px;cursor:pointer;background:transparent url(../images/btn_resize_left.gif) no-repeat left bottom}.widgetOutput .widgetBoxResize{z-index:1000;position:absolute;right:1px;bottom:1px;width:12px;height:12px;border:0;cursor:pointer;background:transparent url(../images/btn_resize.gif) no-repeat left bottom}.widgetOutput .widgetBoxResizeLeft{z-index:1000;position:absolute;left:1px;bottom:0;width:12px;height:12px;border:0;cursor:pointer;background:transparent url(../images/btn_resize_left.gif) no-repeat left bottom}.widgetButtons{float:left;z-index:1000;visibility:hidden;position:absolute;top:0;overflow:hidden;padding:0 10px;line-height:24px;box-shadow:0 0 3px #333 inset;*zoom:1}.widgetButtons#widgetButton{left:0;background-color:#C7DBE9}.widgetButtons#widgetBoxButton{right:0;background-color:#D2E9C7}.widgetButtons>button{z-index:99;padding:14px 0 0;overflow:hidden;width:14px;height:14px;border:0;cursor:pointer;vertical-align:middle;background:transparent url(../../../admin/tpl/img/glyphicons-halflings.png) no-repeat}.widgetButtons .widgetSetup{background-position:-432px 0}.widgetButtons .widgetBoxSize,.widgetButtons .widgetSize{background-position:-96px -120px}.widgetButtons .widgetStyle{background-position:-456px -144px}.widgetButtons .widgetBoxCopy,.widgetButtons .widgetCopy{background-position:0 -96px}.widgetButtons .widgetBoxRemove,.widgetButtons .widgetRemove{background-position:-456px 0}.help{padding:5px 0;border-top:1px solid #ccc;background-color:#EFEFEF}ul.midCommand{float:left;margin:0 0 0 10px;padding:0;*zoom:1}ul.midCommand li{display:block;margin-bottom:5px;list-style:none}a.widgetStyle{display:inline-block;position:relative;margin:0 10px 10px 0;overflow:hidden;width:96px;height:96px;border:1px solid #fff;text-decoration:none;*zoom:1}a.widgetStyle:hover{border:1px dashed #ccc}a.widgetStyle:hover span{display:none}a.widgetStyle.selected{border:1px dashed #999}a.widgetStyle img{margin:1px;width:96px;height:96px}a.widgetStyle span{display:block;position:absolute;left:0;bottom:0;width:96px;padding:4px 3px 3px;text-align:center;font-family:tahoma;color:#fff;filter:alpha(opacity=80);opacity:.8;background-color:#888}#zonePageContent .widgetContainer{min-height:20px} \ No newline at end of file diff --git a/modules/widget/tpl/js/widget.min.js b/modules/widget/tpl/js/widget.min.js index f618562b81..64dc5cbc9b 100644 --- a/modules/widget/tpl/js/widget.min.js +++ b/modules/widget/tpl/js/widget.min.js @@ -1 +1 @@ -function getStyle(a){var b=a.getAttribute("style");return b||(b=a.style),"object"==typeof b&&(b=b.cssText),b=b.replace(/\burl\s*\(\s*"(.*?)"\s*\)/i,"url('$1')")}function getFloat(a){return jQuery(a).css("float")}function setFloat(a,b){jQuery(a).css("float",b)}function getPadding(a,b){var c=a.getAttribute("widget_padding_"+b);return c&&null!==c||(c=0),c}function doStartPageModify(a,b){zonePageObj=get_by_id(a),zoneModuleSrl=b,jQuery("#tmpPageSizeLayer").appendTo("body").hide().attr("id","pageSizeLayer").css({position:"fixed"}).before('
    ').find(">form").submit(function(){return doApplyWidgetSize(this),!1}),xAddEventListener(document.getElementById("zonePageContent"),"click",doCheckWidget),xAddEventListener(document.getElementById("zonePageContent"),"mousedown",doCheckWidgetDrag),xAddEventListener(document.getElementById("zonePageContent"),"mouseover",widgetSetup)}function removeAllWidget(){confirm(confirm_delete_msg)&&(restoreWidgetButtons(),jQuery(zonePageObj).html(""))}function getWidgetContent(a){var b="";"undefined"!=typeof a&&a||(a=zonePageObj);var c=null;return jQuery("div.widgetOutput",a).each(function(){if(jQuery(this).parent().get(0)==a)switch(c=jQuery(this).attr("widget")){case"widgetBox":b+=getWidgetBoxCode(this,c);break;case"widgetContent":b+=getContentWidgetCode(this,c);break;default:b+=getWidgetCode(this,c)}}),b}function getContentWidgetCode(a){var b,c=(a.firstChild,jQuery("div.widgetContent",a)),d="",e="",f=0,g="contenteditable,id,style,src,widget,body,class,widget_width,widget_width_type,xdpx,xdpy,height,document_srl,widget_padding_left,widget_padding_right,widget_padding_top,widget_padding_bottom,hascontent";if(c.size()>0){f=jQuery(a).attr("document_srl"),d=f>0?"":c.html();for(var h,i=new RegExp("^("+g.replace(/,/g,"|")+")$","i"),j=0;j"}return""}function getWidgetBoxCode(a){for(var b="",c=0;c0?(f=jQuery(".widget_inner",a),f=f.get(0)):f=jQuery(".nullWidget",a).get(0);var g=getWidgetContent(f);return'
    "+g+"
    "}function getWidgetCode(a,b){for(var c="",d=0;d"}function doAddContent(a){var b=request_uri.setQuery("module","widget").setQuery("act","dispWidgetAdminAddContent").setQuery("module_srl",zoneModuleSrl).setQuery("mid",a);popopen(b,"addContent")}function doSyncPageContent(){if(opener&&opener.selectedWidget){var a=get_by_id("content_fo"),b=opener.selectedWidget;a.style.value=getStyle(opener.selectedWidget),a.widget_padding_left.value=getPadding(b,"left"),a.widget_padding_right.value=getPadding(b,"right"),a.widget_padding_bottom.value=getPadding(b,"bottom"),a.widget_padding_top.value=getPadding(b,"top");for(var c=b.firstChild;c&&"widgetContent"!=c.className;)c=c.nextSibling;if(c&&"widgetContent"==c.className&&(!a.document_srl||"0"==a.document_srl.value))try{var d=Base64.decode(xInnerHtml(c));d=editorReplacePath(d),get_by_id("content_fo").content.value=d,xe.Editors[1].exec("SET_IR",[d])}catch(e){}}"undefined"!=typeof editorStart&&editorStart(1,"module_srl","content",!1,400)}function addContentWidget(a){var b=a.getAttribute("editor_sequence"),c=(a.mid.value,a.module_srl.value),d=a.document_srl.value,e=editorGetContent(b),f={editor_sequence:b,content:e,module_srl:c,document_srl:d};if(/^\s*

    .*<\/p>\s*$/i.test(f.content)){var g=f.content.toLowerCase(),h=g.indexOf("

    "),i=g.lastIndexOf("

    ");h>0&&i>0&&h==i&&(f.content=e=f.content.replace(/^\s*

    |<\/p>\s*$/gi,""))}return exec_xml("widget","procWidgetInsertDocument",f,function(b){if(b&&"0"==b.error){var c=b.document_srl,d=opener.jQuery("div.widgetOutput[widget=widgetContent][document_srl="+c+"]"),f=[];d.size()>0&&(f=d.get(0).attributes);for(var g='

    '+e+'
    ',h=jQuery(g),i=0,j=f.length;j>i;i++)h.attr(f[i].name)||h.attr(f[i].name,f[i].value);g=jQuery("
    ").append(h).html(),opener.doAddWidgetCode(g),window.close()}},"document_srl".split(",")),!1}function doAddWidgetBox(){var a='
    ';zonePageObj.innerHTML+=a}function doAddWidget(a){var b=a.widget_list,c=b.selectedIndex,d=b.options[c].value,e=a.module_srl.value,f=request_uri.setQuery("module","widget").setQuery("act","dispWidgetGenerateCodeInPage").setQuery("selected_widget",d).setQuery("module_srl",e);popopen(f,"GenerateWidgetCode")}function doAddWidgetCode(widget_code){restoreWidgetButtons();for(var tmp=widget_code;tmp.indexOf(""),cssfile=tmp.substr(10,eos-10);if(cssfile.indexOf(".js")>-1)tmp=tmp.substr(eos);else{if(!cssfile)break;if(tmp=tmp.substr(eos),cssfile=request_uri+cssfile,"undefined"==typeof document.createStyleSheet){var css='',dummy=xCreateElement("DIV");xInnerHtml(dummy,css),document.body.appendChild(dummy)}else document.createStyleSheet(cssfile,0)}}for(checkDocumentWrite=!0,tmp=widget_code.toLowerCase();tmp.indexOf("-1;){var pos=tmp.indexOf("")+9,script=widget_code.substr(pos,length);script=script.replace(/^]*)>/i,"").replace(/<\/script>$/i,""),writedText=null;try{eval(script)}catch(e){}widget_code=widget_code.substr(0,pos)+writedText+widget_code.substr(pos+length),tmp=widget_code.toLowerCase()}var dummy=xCreateElement("div");xInnerHtml(dummy,widget_code);var obj=dummy.childNodes[0];if(selectedWidget&&selectedWidget.getAttribute("widget")){var o=jQuery("div.widget_inner",selectedWidget),n=jQuery("div.widget_inner",obj);0===n.size()&&(n=jQuery("div.nullWidget",obj)),0===o.size()&&(o=jQuery("div.nullWidget",selectedWidget)),n.html(o.html()),selectedWidget.parentNode.insertBefore(obj,selectedWidget),selectedWidget.parentNode.removeChild(selectedWidget)}else get_by_id("zonePageContent").appendChild(obj);checkDocumentWrite=!1,selectedWidget=null}function doCheckWidget(a){var b=new xEvent(a);if(b.target){var c=b.target;selectedWidget=null;for(var d=c.parentNode;d;){if("pageSizeLayer"==d.id)return;d=d.parentNode}if(doHideWidgetSizeSetup(),"widgetSetup"==c.className){var e=c.parentNode.parentNode,f=e.getAttribute("widget");if(!f)return;return selectedWidget=e,void("widgetContent"==f?popopen(request_uri+"?module=widget&act=dispWidgetAdminAddContent&module_srl="+zoneModuleSrl+"&document_srl="+e.getAttribute("document_srl"),"addContent"):popopen(request_uri+"?module=widget&act=dispWidgetGenerateCodeInPage&selected_widget="+f+"&widgetstyle="+g,"GenerateCodeInPage"))}if("widgetStyle"==c.className){var e=c.parentNode.parentNode,f=e.getAttribute("widget"),g=e.getAttribute("widgetstyle");if(!f)return;return selectedWidget=e,void popopen(request_uri+"?module=widget&act=dispWidgetStyleGenerateCodeInPage&selected_widget="+f+"&widgetstyle="+g,"GenerateCodeInPage")}if("widgetCopy"==c.className&&"widgetOutput"==c.parentNode.parentNode.className){var e=c.parentNode.parentNode;if(restoreWidgetButtons(),"widgetContent"==e.getAttribute("widget")&&e.getAttribute("document_srl")){var h=new Array("error","message","document_srl"),i=[];return i.document_srl=e.getAttribute("document_srl"),void exec_xml("widget","procWidgetCopyDocument",i,completeCopyWidgetContent,h,i,e)}var j=xCreateElement("DIV");xInnerHtml(j,xInnerHtml(e)),j.widget_sequence="",j.className="widgetOutput";for(var k=0;k0)&&(doHideWidgetSizeSetup(),"widgetSetup"!=c.className&&"widgetStyle"!=c.className&&"widgetCopy"!=c.className&&"widgetBoxCopy"!=c.className&&"widgetSize"!=c.className&&"widgetBoxSize"!=c.className&&"widgetRemove"!=c.className&&"widgetBoxRemove"!=c.className))for(p_obj=c;p_obj;){if("widgetOutput"==p_obj.className||"widgetResize"==p_obj.className||"widgetResizeLeft"==p_obj.className||"widgetBoxResize"==p_obj.className||"widgetBoxResizeLeft"==p_obj.className)return widgetDragEnable(p_obj,widgetDragStart,widgetDrag,widgetDragEnd),void widgetMouseDown(a);p_obj=p_obj.parentNode}}}function _getInt(a){return a&&"null"!=a?isNaN(parseInt(a,10))?0:parseInt(a,10):0}function doShowWidgetSizeSetup(a,b,c){var d=jQuery("#pageSizeLayer"),e=d.find(">form:first"),c=jQuery(c);if(e.length){selectedSizeWidget=c[0];var f={widget_align:c.css("float"),width:c[0].style.width,height:c[0].style.height,padding_left:_getInt(c.attr("widget_padding_left")),padding_right:_getInt(c.attr("widget_padding_right")),padding_top:_getInt(c.attr("widget_padding_top")),padding_bottom:_getInt(c.attr("widget_padding_bottom")),margin_left:_getInt(c[0].style.marginLeft),margin_right:_getInt(c[0].style.marginRight),margin_top:_getInt(c[0].style.marginTop),margin_bottom:_getInt(c[0].style.marginBottom),border_top_color:transRGB2Hex(c[0].style.borderTopColor),border_top_thick:c[0].style.borderTopWidth.replace(/px$/i,""),border_top_type:c[0].style.borderTopStyle,border_bottom_color:transRGB2Hex(c[0].style.borderBottomColor),border_bottom_thick:c[0].style.borderBottomWidth.replace(/px$/i,""),border_bottom_type:c[0].style.borderBottomStyle,border_right_color:transRGB2Hex(c[0].style.borderRightColor),border_right_thick:c[0].style.borderRightWidth.replace(/px$/i,""),border_right_type:c[0].style.borderRightStyle,border_left_color:transRGB2Hex(c[0].style.borderLeftColor),border_left_thick:c[0].style.borderLeftWidth.replace(/px$/i,""),border_left_type:c[0].style.borderLeftStyle,background_color:transRGB2Hex(c[0].style.backgroundColor),background_image_url:c[0].style.backgroundImage.replace(/^url\(/i,"").replace(/\)$/i,""),background_x:0,background_y:0,background_repeat:c[0].style.backgroundRepeat},g=c[0].style.backgroundPosition;g&&(g=g.split(" "),2==g.length&&(f.background_x=g[0],f.background_y=g[1])),d.show(),jQuery(function(a){var b=a("#pageSizeLayer"),c=a(".x_modal-backdrop"),d=a(window).width(),e=a(window).height(),f=b.width(),g=b.height();d>f&&e>g?(c.show(),b.css({position:"fixed",top:e/2-g/2+"px",left:d/2-f/2+"px",width:"700px"})):(c.hide(),b.css({position:"static",top:"auto",left:"auto",width:"auto"}))}),jQuery.each(f,function(a,b){var c=e[0].elements[a];c&&(c.value=b,c.className.match(/\bcolor-indicator\b/)&&(c.style.background=c.value="#"+c.value)),"select"==c.tagName.toLowerCase()&&-1==c.selectedIndex&&(c.selectedIndex=0)});try{e[0].elements[0].focus()}catch(h){}}}function doHideWidgetSizeSetup(){jQuery("#pageSizeLayer, .x_modal-backdrop, .jPicker.Container").hide()}function _getSize(a){if(!a)return 0;var b="px";a.lastIndexOf("%")>=0&&(b="%");var c=parseInt(a,10);return 1>c?0:("%"==b&&c>100&&(c=100),""+c+b)}function _getBorderStyle(a,b,c){var d=a.value;d=d.replace(/^#/,""),d=d?"#"+d:"#FFFFFF";var e=b.value;e=e?parseInt(e,10)+"px":"0px";var f=c.options[c.selectedIndex].value;f||(f="solid");var g=d+" "+e+" "+f;return g}function _getBGColorStyle(a){var b=a.replace(/^#/,"");return b=b?"#"+b:"#FFFFFF"}function doApplyWidgetSize(a){if(selectedSizeWidget){1==a.widget_align.selectedIndex?setFloat(selectedSizeWidget,"right"):setFloat(selectedSizeWidget,"left");var b=_getSize(a.width.value);b&&(selectedSizeWidget.style.width=b);var c=_getSize(a.height.value);if(c&&"100%"!=c)selectedSizeWidget.style.height=c;else{selectedSizeWidget.style.height="";for(var d=xGetElementsByClassName("widgetBorder",selectedSizeWidget),e=0;e0||jQuery(c).is(".buttonBox")||jQuery(c).parents(".buttonBox").size()>0)){var d=jQuery(c).parents(".widgetOutput");if(0===d.size())return void restoreWidgetButtons();c=d.get(0);var e=d.attr("widget");if(e)if("widgetBox"==e)restoreWidgetButtons(),showWidgetButton("widgetBoxButton",c);else{restoreWidgetButtons(),showWidgetButton("widgetButton",c);var f=c.parentNode;if(f)for(;f;){if("DIV"==f.nodeName&&"widgetBox"==f.getAttribute("widget")){showWidgetButton("widgetBoxButton",f);break}f=f.parentNode}}}}function widgetCreateTmpObject(a){var b=a.getAttribute("id");return tmpObj=xCreateElement("DIV"),tmpObj.id=b+"_tmp",tmpObj.className=a.className,tmpObj.style.overflow="hidden",tmpObj.style.margin="0px",tmpObj.style.padding="0px",tmpObj.style.width=a.style.width,tmpObj.style.display="none",tmpObj.style.position="absolute",tmpObj.style.opacity=1,tmpObj.style.filter="alpha(opacity=100)",xLeft(tmpObj,xPageX(a)),xTop(tmpObj,xPageY(a)),document.body.appendChild(tmpObj),widgetTmpObject[a.id]=tmpObj,tmpObj}function widgetGetTmpObject(a){a.id||(a.id="widget_"+idStep++);var b=widgetTmpObject[a.id];return b||(b=widgetCreateTmpObject(a)),b}function widgetDragEnable(a,b,c,d){a.draggable=!0,a.dragStart=b,a.drag=c,a.dragEnd=d,widgetDragManager.isDrag||(widgetDragManager.isDrag=!0,xAddEventListener(document,"mousemove",widgetDragMouseMove,!1))}function widgetDragStart(a){if("widgetResize"!=a.className&&"widgetResizeLeft"!=a.className&&"widgetBoxResize"!=a.className&&"widgetBoxResizeLeft"!=a.className){var b=widgetGetTmpObject(a);xInnerHtml(b,xInnerHtml(a)),xLeft(b,xPageX(a)),xTop(b,xPageY(a)),xWidth(b,xWidth(a)),xHeight(b,xHeight(a)),xDisplay(b,"block")}}function widgetDrag(a,b,c){var d=40,e=10,f=xPageX(a.parentNode),g=xPageY(a.parentNode),h=a.xDPX,i=a.xDPY,j=xWidth(zonePageObj),k=xPageX(zonePageObj),l=k+j,m=xWidth(a.parentNode),n=getFloat(a.parentNode);if(n||(n="left"),"widgetResize"==a.className||"widgetBoxResize"==a.className){f+d>h&&(h=f+d),h>l&&(h=l),"right"==n&&(h=f+m);var o=h-f;d>o&&(o=d);var p=i-g;e>p&&(p=e),f+o>l&&(o=l-f),xWidth(a.parentNode,o),xHeight(a.parentNode,p)}else if("widgetResizeLeft"==a.className||"widgetBoxResizeLeft"==a.className){k>h&&(h=k),"left"==n&&(h=f);var o=m+(f-h);d>o&&(o=d);var p=i-g;e>p&&(p=e),xWidth(a.parentNode,o),xHeight(a.parentNode,p)}else{var q=widgetGetTmpObject(a);if(xLeft(q,parseInt(xPageX(q),10)+parseInt(b,10)),xTop(q,parseInt(xPageY(q),10)+parseInt(c,10)),a.parentNode!=zonePageObj){for(var r=xGetElementsByClassName("widgetOutput",a.parentNode),s=0;s=u&&a.xDPX<=w&&a.xDPY>=v&&a.xDPY<=x&&a.parentNode==t.parentNode){var y=t.nextSibling;y||(y=xCreateElement("DIV"),t.parentNode.appendChild(y));var z=a.nextSibling;return z||(z=xCreateElement("DIV"),a.parentNode.appendChild(z)),y&&y.parentNode.insertBefore(a,y),z&&z.parentNode.insertBefore(t,z),void(r=null)}}r=null;var A=jQuery(a).parents("div.nullWidget").get(0),u=xPageX(A),v=xPageY(A),w=parseInt(u,10)+parseInt(xWidth(A),10),x=parseInt(v,10)+parseInt(xHeight(A),10);if(a.xDPXw||a.xDPYx)return void zonePageObj.insertBefore(a,jQuery(a).parents("div.widgetOutput[widget=widgetBox]").get(0))}else{if("widgetBox"!=a.getAttribute("widget")){for(var B=xGetElementsByClassName("nullWidget",zonePageObj),s=0;s=u&&a.xDPX<=w&&a.xDPY>=v&&a.xDPY<=x&&"nullWidget"==t.className){var C=jQuery("div.widget_inner",jQuery(t));return 0===C.size()?t.appendChild(a):C.get(0).appendChild(a),widgetManualEnd(),void(B=null)}}B=null}for(var r=xGetElementsByClassName("widgetOutput",zonePageObj),s=0;s=u&&a.xDPX<=w&&a.xDPY>=v&&a.xDPY<=x&&a.parentNode==t.parentNode){var y=t.nextSibling;y||(y=t.parentNode.lastChild),y||(y=xCreateElement("DIV"),t.parentNode.appendChild(y));var z=a.nextSibling;return z||(z=xCreateElement("DIV"),a.parentNode.appendChild(z)),y&&y.parentNode.insertBefore(a,y),z&&z.parentNode.insertBefore(t,z),void(r=null)}}}r=null}}}function widgetDragEnd(a){var b=widgetGetTmpObject(a);widgetDisapear=widgetDisapearObject(b,a),widgetDragDisable(a.getAttribute("id"))}function widgetDisapearObject(a,b){xInnerHtml(b,xInnerHtml(a)),xInnerHtml(a,""),xDisplay(a,"none"),a.parentNode.removeChild(a),widgetTmpObject[b.id]=null}function widgetMouseDown(a){for(var b=new xEvent(a),c=b.target;c&&!c.draggable;)c=xParent(c,!0);c&&(xPreventDefault(a),c.xDPX=b.pageX,c.xDPY=b.pageY,widgetDragManager.obj=c,xAddEventListener(document,"mouseup",widgetMouseUp,!1),c.dragStart&&c.dragStart(c,b.pageX,b.pageY))}function widgetMouseUp(a){if(widgetDragManager.obj){if(xPreventDefault(a),xRemoveEventListener(document,"mouseup",widgetMouseUp,!1),widgetDragManager.obj.dragEnd){var b=new xEvent(a);widgetDragManager.obj.dragEnd(widgetDragManager.obj,b.pageX,b.pageY)}widgetDragManager.obj=null,widgetDragManager.isDrag=!1}}function widgetDragMouseMove(a){var b=new xEvent(a);if(widgetDragManager.obj){xPreventDefault(a);var c=widgetDragManager.obj,d=b.pageX-c.xDPX,e=b.pageY-c.xDPY;c.xDPX=b.pageX,c.xDPY=b.pageY,c.drag?c.drag(c,d,e):xMoveTo(c,xLeft(c)+d,xTop(c)+e)}}function widgetDragDisable(a){if(widgetDragManager){var b=get_by_id(a);b.draggable=!1,b.dragStart=null,b.drag=null,b.dragEnd=null,xRemoveEventListener(b,"mousedown",widgetMouseDown,!1)}}function widgetManualEnd(){var a=widgetDragManager.obj;if(a){xRemoveEventListener(document,"mouseup",widgetMouseUp,!1),xAddEventListener(document,"mousemove",widgetDragMouseMove,!1);var b=widgetGetTmpObject(a);widgetDisapear=widgetDisapearObject(b,a),widgetDragDisable(a.getAttribute("id")),widgetDragManager.obj=null,widgetDragManager.isDrag=!1}}var zonePageObj=null,zoneModuleSrl=0,selectedWidget=null,writedText=null,checkDocumentWrite=!1;window.document.write=window.document.writeln=function(a){if(checkDocumentWrite)return void(writedText=a);if(!a.match(/^<\//)){window.opera||(a=a.replace(/&(?![#a-z0-9]+;)/g,"&")),a=a.replace(/(<[a-z]+)/g,"$1 xmlns='http://www.w3.org/1999/xhtml'");var b,c=jQuery("
    ").html(a)[0];b=document.getElementsByTagName("*"),b=b[b.length-1];for(var d=c.childNodes;d.length;)b.parentNode.appendChild(d[0])}};var selectedSizeWidget=null;jQuery(function(a){a(document).keydown(function(b){var c=a(".jPicker.Container:visible");return 27!=b.which||c.length?27==b.which&&c.length?(c.hide(),!1):!0:(doHideWidgetSizeSetup(),!1)})});var hideElements=[],widgetDragManager={obj:null,isDrag:!1},widgetTmpObject=[],widgetDisappear=0,idStep=0; \ No newline at end of file +function getStyle(a){var b=a.getAttribute("style");return b||(b=a.style),"object"==typeof b&&(b=b.cssText),b=b.replace(/\burl\s*\(\s*"(.*?)"\s*\)/i,"url('$1')")}function getFloat(a){return jQuery(a).css("float")}function setFloat(a,b){jQuery(a).css("float",b)}function getPadding(a,b){var c=a.getAttribute("widget_padding_"+b);return c&&null!==c||(c=0),c}function doStartPageModify(a,b){zonePageObj=get_by_id(a),zoneModuleSrl=b,jQuery("#tmpPageSizeLayer").appendTo("body").hide().attr("id","pageSizeLayer").css({position:"fixed"}).before('
    ').find(">form").submit(function(){return doApplyWidgetSize(this),!1}),xAddEventListener(document.getElementById("zonePageContent"),"click",doCheckWidget),xAddEventListener(document.getElementById("zonePageContent"),"mousedown",doCheckWidgetDrag),xAddEventListener(document.getElementById("zonePageContent"),"mouseover",widgetSetup)}function removeAllWidget(){confirm(confirm_delete_msg)&&(restoreWidgetButtons(),jQuery(zonePageObj).html(""))}function getWidgetContent(a){var b="";"undefined"!=typeof a&&a||(a=zonePageObj);var c=null;return jQuery("div.widgetOutput",a).each(function(){if(jQuery(this).parent().get(0)==a)switch(c=jQuery(this).attr("widget")){case"widgetBox":b+=getWidgetBoxCode(this,c);break;case"widgetContent":b+=getContentWidgetCode(this,c);break;default:b+=getWidgetCode(this,c)}}),b}function getContentWidgetCode(a){var b,c=(a.firstChild,jQuery("div.widgetContent",a)),d="",e="",f=0,g="contenteditable,id,style,src,widget,body,class,widget_width,widget_width_type,xdpx,xdpy,height,document_srl,widget_padding_left,widget_padding_right,widget_padding_top,widget_padding_bottom,hascontent";if(c.size()>0){f=jQuery(a).attr("document_srl"),d=f>0?"":c.html();for(var h,i=new RegExp("^("+g.replace(/,/g,"|")+")$","i"),j=0;j"}return""}function getWidgetBoxCode(a){for(var b="",c=0;c0?(f=jQuery(".widget_inner",a),f=f.get(0)):f=jQuery(".nullWidget",a).get(0);var g=getWidgetContent(f);return'
    "+g+"
    "}function getWidgetCode(a,b){for(var c="",d=0;d"}function doAddContent(a){var b=request_uri.setQuery("module","widget").setQuery("act","dispWidgetAdminAddContent").setQuery("module_srl",zoneModuleSrl).setQuery("mid",a);popopen(b,"addContent")}function doSyncPageContent(){if(opener&&opener.selectedWidget){var a=get_by_id("content_fo"),b=opener.selectedWidget;a.style.value=getStyle(opener.selectedWidget),a.widget_padding_left.value=getPadding(b,"left"),a.widget_padding_right.value=getPadding(b,"right"),a.widget_padding_bottom.value=getPadding(b,"bottom"),a.widget_padding_top.value=getPadding(b,"top");for(var c=b.firstChild;c&&!jQuery(c).hasClass("widgetContent");)c=c.nextSibling;if(c&&jQuery(c).hasClass("widgetContent")&&(!a.document_srl||"0"==a.document_srl.value))try{var d=Base64.decode(xInnerHtml(c));d=editorReplacePath(d),get_by_id("content_fo").content.value=d,xe.Editors[1].exec("SET_IR",[d])}catch(e){}}"undefined"!=typeof editorStart&&editorStart(1,"module_srl","content",!1,400)}function addContentWidget(a){var b=a.getAttribute("editor_sequence"),c=(a.mid.value,a.module_srl.value),d=a.document_srl.value,e=editorGetContent(b),f={editor_sequence:b,content:e,module_srl:c,document_srl:d};if(/^\s*

    .*<\/p>\s*$/i.test(f.content)){var g=f.content.toLowerCase(),h=g.indexOf("

    "),i=g.lastIndexOf("

    ");h>0&&i>0&&h==i&&(f.content=e=f.content.replace(/^\s*

    |<\/p>\s*$/gi,""))}return exec_xml("widget","procWidgetInsertDocument",f,function(b){if(b&&"0"==b.error){var c=b.document_srl,d=opener.jQuery("div.widgetOutput[widget=widgetContent][document_srl="+c+"]"),f=[];d.size()>0&&(f=d.get(0).attributes);for(var g='

    '+e+'
    ',h=jQuery(g),i=0,j=f.length;j>i;i++)h.attr(f[i].name)||h.attr(f[i].name,f[i].value);g=jQuery("
    ").append(h).html(),opener.doAddWidgetCode(g),window.close()}},"document_srl".split(",")),!1}function doAddWidgetBox(){var a='
    ';zonePageObj.innerHTML+=a}function doAddWidget(a){var b=a.widget_list,c=b.selectedIndex,d=b.options[c].value,e=a.module_srl.value,f=request_uri.setQuery("module","widget").setQuery("act","dispWidgetGenerateCodeInPage").setQuery("selected_widget",d).setQuery("module_srl",e);popopen(f,"GenerateWidgetCode")}function doAddWidgetCode(widget_code){restoreWidgetButtons();for(var tmp=widget_code;tmp.indexOf(""),cssfile=tmp.substr(10,eos-10);if(cssfile.indexOf(".js")>-1)tmp=tmp.substr(eos);else{if(!cssfile)break;if(tmp=tmp.substr(eos),cssfile=request_uri+cssfile,"undefined"==typeof document.createStyleSheet){var css='',dummy=xCreateElement("DIV");xInnerHtml(dummy,css),document.body.appendChild(dummy)}else document.createStyleSheet(cssfile,0)}}for(checkDocumentWrite=!0,tmp=widget_code.toLowerCase();tmp.indexOf("-1;){var pos=tmp.indexOf("")+9,script=widget_code.substr(pos,length);script=script.replace(/^]*)>/i,"").replace(/<\/script>$/i,""),writedText=null;try{eval(script)}catch(e){}widget_code=widget_code.substr(0,pos)+writedText+widget_code.substr(pos+length),tmp=widget_code.toLowerCase()}var dummy=xCreateElement("div");xInnerHtml(dummy,widget_code);var obj=dummy.childNodes[0];if(selectedWidget&&selectedWidget.getAttribute("widget")){var o=jQuery("div.widget_inner",selectedWidget),n=jQuery("div.widget_inner",obj);0===n.size()&&(n=jQuery("div.nullWidget",obj)),0===o.size()&&(o=jQuery("div.nullWidget",selectedWidget)),n.html(o.html()),selectedWidget.parentNode.insertBefore(obj,selectedWidget),selectedWidget.parentNode.removeChild(selectedWidget)}else get_by_id("zonePageContent").appendChild(obj);checkDocumentWrite=!1,selectedWidget=null}function doCheckWidget(a){var b=new xEvent(a);if(b.target){var c=b.target,d=jQuery(c);selectedWidget=null;for(var e=c.parentNode;e;){if("pageSizeLayer"==e.id)return;e=e.parentNode}if(doHideWidgetSizeSetup(),d.hasClass("widgetSetup")){var f=c.parentNode.parentNode,g=f.getAttribute("widget");if(!g)return;return selectedWidget=f,void("widgetContent"==g?popopen(request_uri+"?module=widget&act=dispWidgetAdminAddContent&module_srl="+zoneModuleSrl+"&document_srl="+f.getAttribute("document_srl"),"addContent"):popopen(request_uri+"?module=widget&act=dispWidgetGenerateCodeInPage&selected_widget="+g+"&widgetstyle="+h,"GenerateCodeInPage"))}if(d.hasClass("widgetStyle")){var f=c.parentNode.parentNode,g=f.getAttribute("widget"),h=f.getAttribute("widgetstyle");if(!g)return;return selectedWidget=f,void popopen(request_uri+"?module=widget&act=dispWidgetStyleGenerateCodeInPage&selected_widget="+g+"&widgetstyle="+h,"GenerateCodeInPage")}if(d.hasClass("widgetCopy")&&jQuery(c.parentNode.parentNode).hasClass("widgetOutput")){var f=c.parentNode.parentNode;if(restoreWidgetButtons(),"widgetContent"==f.getAttribute("widget")&&f.getAttribute("document_srl")){var i=new Array("error","message","document_srl"),j=[];return j.document_srl=f.getAttribute("document_srl"),void exec_xml("widget","procWidgetCopyDocument",j,completeCopyWidgetContent,i,j,f)}var k=xCreateElement("DIV");xInnerHtml(k,xInnerHtml(f)),k.widget_sequence="",jQuery(k).hasClass("widgetOutput");for(var l=0;l0||(doHideWidgetSizeSetup(),d.hasClass("widgetSetup")||d.hasClass("widgetStyle")||d.hasClass("widgetCopy")||d.hasClass("widgetBoxCopy")||d.hasClass("widgetSize")||d.hasClass("widgetBoxSize")||d.hasClass("widgetRemove")||d.hasClass("widgetBoxRemove")))){p_obj=c;for(var e=jQuery(c);p_obj;){if(e.hasClass("widgetOutput")||e.hasClass("widgetResize")||e.hasClass("widgetResizeLeft")||e.hasClass("widgetBoxResize")||e.hasClass("widgetBoxResizeLeft"))return widgetDragEnable(p_obj,widgetDragStart,widgetDrag,widgetDragEnd),void widgetMouseDown(a);p_obj=p_obj.parentNode}}}}function _getInt(a){return a&&"null"!=a?isNaN(parseInt(a,10))?0:parseInt(a,10):0}function doShowWidgetSizeSetup(a,b,c){var d=jQuery("#pageSizeLayer"),e=d.find(">form:first"),c=jQuery(c);if(e.length){selectedSizeWidget=c[0];var f=jQuery(selectedSizeWidget),g={widget_align:c.css("float"),css_class:f.attr("css_class")?f.attr("css_class"):"",width:c[0].style.width,height:c[0].style.height,padding_left:_getInt(c.attr("widget_padding_left")),padding_right:_getInt(c.attr("widget_padding_right")),padding_top:_getInt(c.attr("widget_padding_top")),padding_bottom:_getInt(c.attr("widget_padding_bottom")),margin_left:_getInt(c[0].style.marginLeft),margin_right:_getInt(c[0].style.marginRight),margin_top:_getInt(c[0].style.marginTop),margin_bottom:_getInt(c[0].style.marginBottom),border_top_color:transRGB2Hex(c[0].style.borderTopColor),border_top_thick:c[0].style.borderTopWidth.replace(/px$/i,""),border_top_type:c[0].style.borderTopStyle,border_bottom_color:transRGB2Hex(c[0].style.borderBottomColor),border_bottom_thick:c[0].style.borderBottomWidth.replace(/px$/i,""),border_bottom_type:c[0].style.borderBottomStyle,border_right_color:transRGB2Hex(c[0].style.borderRightColor),border_right_thick:c[0].style.borderRightWidth.replace(/px$/i,""),border_right_type:c[0].style.borderRightStyle,border_left_color:transRGB2Hex(c[0].style.borderLeftColor),border_left_thick:c[0].style.borderLeftWidth.replace(/px$/i,""),border_left_type:c[0].style.borderLeftStyle,background_color:transRGB2Hex(c[0].style.backgroundColor),background_image_url:c[0].style.backgroundImage.replace(/^url\(/i,"").replace(/\)$/i,""),background_x:0,background_y:0,background_repeat:c[0].style.backgroundRepeat},h=c[0].style.backgroundPosition;h&&(h=h.split(" "),2==h.length&&(g.background_x=h[0],g.background_y=h[1])),d.show(),jQuery(function(a){var b=a("#pageSizeLayer"),c=a(".x_modal-backdrop"),d=a(window).width(),e=a(window).height(),f=b.width(),g=b.height();d>f&&e>g?(c.show(),b.css({position:"fixed",top:e/2-g/2+"px",left:d/2-f/2+"px",width:"700px"})):(c.hide(),b.css({position:"static",top:"auto",left:"auto",width:"auto"}))}),jQuery.each(g,function(a,b){var c=e[0].elements[a];c&&(c.value=b,c.className.match(/\bcolor-indicator\b/)&&(c.style.background=c.value="#"+c.value)),"select"==c.tagName.toLowerCase()&&-1==c.selectedIndex&&(c.selectedIndex=0)});try{e[0].elements[0].focus()}catch(i){}}}function doHideWidgetSizeSetup(){jQuery("#pageSizeLayer, .x_modal-backdrop, .jPicker.Container").hide()}function _getSize(a){if(!a)return 0;var b="px";a.lastIndexOf("%")>=0&&(b="%");var c=parseInt(a,10);return 1>c?0:("%"==b&&c>100&&(c=100),""+c+b)}function _getBorderStyle(a,b,c){var d=a.value;d=d.replace(/^#/,""),d=d?"#"+d:"#FFFFFF";var e=b.value;e=e?parseInt(e,10)+"px":"0px";var f=c.options[c.selectedIndex].value;f||(f="solid");var g=d+" "+e+" "+f;return g}function _getBGColorStyle(a){var b=a.replace(/^#/,"");return b=b?"#"+b:"#FFFFFF"}function doApplyWidgetSize(a){if(selectedSizeWidget){1==a.widget_align.selectedIndex?setFloat(selectedSizeWidget,"right"):setFloat(selectedSizeWidget,"left");var b=jQuery(a),c=jQuery(selectedSizeWidget),d=b.find("#css_class").val();d&&c.attr("css_class",d);var e=_getSize(a.width.value);e&&(selectedSizeWidget.style.width=e);var f=_getSize(a.height.value);if(f&&"100%"!=f)selectedSizeWidget.style.height=f;else{selectedSizeWidget.style.height="";for(var g=xGetElementsByClassName("widgetBorder",selectedSizeWidget),h=0;h0||jQuery(c).is(".buttonBox")||jQuery(c).parents(".buttonBox").size()>0)){var d=jQuery(c).parents(".widgetOutput");if(0===d.size())return void restoreWidgetButtons();c=d.get(0);var e=d.attr("widget");if(e)if("widgetBox"==e)restoreWidgetButtons(),showWidgetButton("widgetBoxButton",c);else{restoreWidgetButtons(),showWidgetButton("widgetButton",c);var f=c.parentNode;if(f)for(;f;){if("DIV"==f.nodeName&&"widgetBox"==f.getAttribute("widget")){showWidgetButton("widgetBoxButton",f);break}f=f.parentNode}}}}function widgetCreateTmpObject(a){var b=a.getAttribute("id");return tmpObj=xCreateElement("DIV"),tmpObj.id=b+"_tmp",tmpObj.className=a.className,tmpObj.style.overflow="hidden",tmpObj.style.margin="0px",tmpObj.style.padding="0px",tmpObj.style.width=a.style.width,tmpObj.style.display="none",tmpObj.style.position="absolute",tmpObj.style.opacity=1,tmpObj.style.filter="alpha(opacity=100)",xLeft(tmpObj,xPageX(a)),xTop(tmpObj,xPageY(a)),document.body.appendChild(tmpObj),widgetTmpObject[a.id]=tmpObj,tmpObj}function widgetGetTmpObject(a){a.id||(a.id="widget_"+idStep++);var b=widgetTmpObject[a.id];return b||(b=widgetCreateTmpObject(a)),b}function widgetDragEnable(a,b,c,d){a.draggable=!0,a.dragStart=b,a.drag=c,a.dragEnd=d,widgetDragManager.isDrag||(widgetDragManager.isDrag=!0,xAddEventListener(document,"mousemove",widgetDragMouseMove,!1))}function widgetDragStart(a){var b=jQuery(a);if(!(b.hasClass("widgetResize")||b.hasClass("widgetResizeLeft")||b.hasClass("widgetBoxResize")||b.hasClass("widgetBoxResizeLeft"))){var c=widgetGetTmpObject(a);xInnerHtml(c,xInnerHtml(a)),xLeft(c,xPageX(a)),xTop(c,xPageY(a)),xWidth(c,xWidth(a)),xHeight(c,xHeight(a)),xDisplay(c,"block")}}function widgetDrag(a,b,c){var d=40,e=10,f=xPageX(a.parentNode),g=xPageY(a.parentNode),h=a.xDPX,i=a.xDPY,j=xWidth(zonePageObj),k=xPageX(zonePageObj),l=k+j,m=xWidth(a.parentNode),n=getFloat(a.parentNode);if(n||(n="left"),"widgetResize"==a.className||"widgetBoxResize"==a.className){f+d>h&&(h=f+d),h>l&&(h=l),"right"==n&&(h=f+m);var o=h-f;d>o&&(o=d);var p=i-g;e>p&&(p=e),f+o>l&&(o=l-f),xWidth(a.parentNode,o),xHeight(a.parentNode,p)}else if("widgetResizeLeft"==a.className||"widgetBoxResizeLeft"==a.className){k>h&&(h=k),"left"==n&&(h=f);var o=m+(f-h);d>o&&(o=d);var p=i-g;e>p&&(p=e),xWidth(a.parentNode,o),xHeight(a.parentNode,p)}else{var q=widgetGetTmpObject(a);if(xLeft(q,parseInt(xPageX(q),10)+parseInt(b,10)),xTop(q,parseInt(xPageY(q),10)+parseInt(c,10)),a.parentNode!=zonePageObj){for(var r=xGetElementsByClassName("widgetOutput",a.parentNode),s=0;s=u&&a.xDPX<=w&&a.xDPY>=v&&a.xDPY<=x&&a.parentNode==t.parentNode){var y=t.nextSibling;y||(y=xCreateElement("DIV"),t.parentNode.appendChild(y));var z=a.nextSibling;return z||(z=xCreateElement("DIV"),a.parentNode.appendChild(z)),y&&y.parentNode.insertBefore(a,y),z&&z.parentNode.insertBefore(t,z),void(r=null)}}r=null;var A=jQuery(a).parents("div.nullWidget").get(0),u=xPageX(A),v=xPageY(A),w=parseInt(u,10)+parseInt(xWidth(A),10),x=parseInt(v,10)+parseInt(xHeight(A),10);if(a.xDPXw||a.xDPYx)return void zonePageObj.insertBefore(a,jQuery(a).parents("div.widgetOutput[widget=widgetBox]").get(0))}else{if("widgetBox"!=a.getAttribute("widget")){for(var B=xGetElementsByClassName("nullWidget",zonePageObj),s=0;s=u&&a.xDPX<=w&&a.xDPY>=v&&a.xDPY<=x&&"nullWidget"==t.className){var C=jQuery("div.widget_inner",jQuery(t));return 0===C.size()?t.appendChild(a):C.get(0).appendChild(a),widgetManualEnd(),void(B=null)}}B=null}for(var r=xGetElementsByClassName("widgetOutput",zonePageObj),s=0;s=u&&a.xDPX<=w&&a.xDPY>=v&&a.xDPY<=x&&a.parentNode==t.parentNode){var y=t.nextSibling;y||(y=t.parentNode.lastChild),y||(y=xCreateElement("DIV"),t.parentNode.appendChild(y));var z=a.nextSibling;return z||(z=xCreateElement("DIV"),a.parentNode.appendChild(z)),y&&y.parentNode.insertBefore(a,y),z&&z.parentNode.insertBefore(t,z),void(r=null)}}}r=null}}}function widgetDragEnd(a){var b=widgetGetTmpObject(a);widgetDisapear=widgetDisapearObject(b,a),widgetDragDisable(a.getAttribute("id"))}function widgetDisapearObject(a,b){xInnerHtml(b,xInnerHtml(a)),xInnerHtml(a,""),xDisplay(a,"none"),a.parentNode.removeChild(a),widgetTmpObject[b.id]=null}function widgetMouseDown(a){for(var b=new xEvent(a),c=b.target;c&&!c.draggable;)c=xParent(c,!0);c&&(xPreventDefault(a),c.xDPX=b.pageX,c.xDPY=b.pageY,widgetDragManager.obj=c,xAddEventListener(document,"mouseup",widgetMouseUp,!1),c.dragStart&&c.dragStart(c,b.pageX,b.pageY))}function widgetMouseUp(a){if(widgetDragManager.obj){if(xPreventDefault(a),xRemoveEventListener(document,"mouseup",widgetMouseUp,!1),widgetDragManager.obj.dragEnd){var b=new xEvent(a);widgetDragManager.obj.dragEnd(widgetDragManager.obj,b.pageX,b.pageY)}widgetDragManager.obj=null,widgetDragManager.isDrag=!1}}function widgetDragMouseMove(a){var b=new xEvent(a);if(widgetDragManager.obj){xPreventDefault(a);var c=widgetDragManager.obj,d=b.pageX-c.xDPX,e=b.pageY-c.xDPY;c.xDPX=b.pageX,c.xDPY=b.pageY,c.drag?c.drag(c,d,e):xMoveTo(c,xLeft(c)+d,xTop(c)+e)}}function widgetDragDisable(a){if(widgetDragManager){var b=get_by_id(a);b.draggable=!1,b.dragStart=null,b.drag=null,b.dragEnd=null,xRemoveEventListener(b,"mousedown",widgetMouseDown,!1)}}function widgetManualEnd(){var a=widgetDragManager.obj;if(a){xRemoveEventListener(document,"mouseup",widgetMouseUp,!1),xAddEventListener(document,"mousemove",widgetDragMouseMove,!1);var b=widgetGetTmpObject(a);widgetDisapear=widgetDisapearObject(b,a),widgetDragDisable(a.getAttribute("id")),widgetDragManager.obj=null,widgetDragManager.isDrag=!1}}var zonePageObj=null,zoneModuleSrl=0,selectedWidget=null,writedText=null,checkDocumentWrite=!1;window.document.write=window.document.writeln=function(a){if(checkDocumentWrite)return void(writedText=a);if(!a.match(/^<\//)){window.opera||(a=a.replace(/&(?![#a-z0-9]+;)/g,"&")),a=a.replace(/(<[a-z]+)/g,"$1 xmlns='http://www.w3.org/1999/xhtml'");var b,c=jQuery("
    ").html(a)[0];b=document.getElementsByTagName("*"),b=b[b.length-1];for(var d=c.childNodes;d.length;)b.parentNode.appendChild(d[0])}};var selectedSizeWidget=null;jQuery(function(a){a(document).keydown(function(b){var c=a(".jPicker.Container:visible");return 27!=b.which||c.length?27==b.which&&c.length?(c.hide(),!1):!0:(doHideWidgetSizeSetup(),!1)})});var hideElements=[],widgetDragManager={obj:null,isDrag:!1},widgetTmpObject=[],widgetDisappear=0,idStep=0; \ No newline at end of file From c82bbb7c4deee76a1c1d59d3b7275e57b23e0ef5 Mon Sep 17 00:00:00 2001 From: YJSoft Date: Fri, 4 Apr 2014 11:15:06 +0900 Subject: [PATCH 244/549] =?UTF-8?q?fix=20#610=20=EC=98=AC=EB=B0=94?= =?UTF-8?q?=EB=A5=B4=EC=A7=80=20=EC=95=8A=EC=9D=80=20=EB=AA=A8=EB=93=88=20?= =?UTF-8?q?=EC=A0=95=EB=B3=B4=EC=9D=98=20=EA=B2=BD=EC=9A=B0=20=EC=8A=A4?= =?UTF-8?q?=ED=82=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit $module이 null일때 skin 관련 작업을 하면 생기는 warning때문에 사이트 디자인 설정이 불가능해지는 문제 수정. --- modules/menu/menu.admin.model.php | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/menu/menu.admin.model.php b/modules/menu/menu.admin.model.php index c270781c37..0d2aef70a8 100644 --- a/modules/menu/menu.admin.model.php +++ b/modules/menu/menu.admin.model.php @@ -349,6 +349,7 @@ function getMenuAdminInstalledMenuType() foreach($_allModules as $module_name) { $module = $oModuleModel->getModuleInfoXml($module_name); + if(!isset($module)) continue; $defaultSkin = $oModuleModel->getModuleDefaultSkin($module_name, 'P'); $defaultMobileSkin = $oModuleModel->getModuleDefaultSkin($module_name, 'M'); $skinInfo = $oModuleModel->loadSkinInfo(ModuleHandler::getModulePath($module_name), $defaultSkin); From 12303f0c70a3afd453ccc9e5d46936d4af4dbb99 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 4 Apr 2014 17:09:15 +0900 Subject: [PATCH 245/549] =?UTF-8?q?fix=20#602=20padding=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20=EB=93=B1=EC=9D=B4=20=EB=B0=98=EC=98=81=20=EC=95=88?= =?UTF-8?q?=20=EB=90=98=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= =?UTF-8?q?=20*=20#78=20=EB=B3=B4=EC=99=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/widget/tpl/js/widget.js | 157 +++++++++++++++----------------- 1 file changed, 74 insertions(+), 83 deletions(-) diff --git a/modules/widget/tpl/js/widget.js b/modules/widget/tpl/js/widget.js index 79b10bc6a3..212893f9c4 100644 --- a/modules/widget/tpl/js/widget.js +++ b/modules/widget/tpl/js/widget.js @@ -51,9 +51,10 @@ function doStartPageModify(zoneID, module_srl) { .submit(function(){ doApplyWidgetSize(this); return false; }); // 드래그와 리사이즈와 관련된 이벤트 리스너 생성 - xAddEventListener(document.getElementById('zonePageContent'), "click",doCheckWidget); - xAddEventListener(document.getElementById('zonePageContent'), "mousedown",doCheckWidgetDrag); - xAddEventListener(document.getElementById('zonePageContent'), 'mouseover',widgetSetup); + jQuery('#zonePageContent') + .on('click', doCheckWidget) + .on('mousedown', doCheckWidgetDrag) + .on('mouseover', widgetSetup); } // 내용 모두 삭제 @@ -410,18 +411,12 @@ function doAddWidgetCode(widget_code) { // 클릭 이벤트시 위젯의 수정/제거/이벤트 무효화 처리 function doCheckWidget(e) { - var evt = new xEvent(e); if(!evt.target) return; - var obj = evt.target; + if(!e.target) return; + var obj = e.target; var $obj = jQuery(obj); selectedWidget = null; - var pObj = obj.parentNode; - while(pObj) { - if(pObj.id == "pageSizeLayer") return; - pObj = pObj.parentNode; - } - doHideWidgetSizeSetup(); // 위젯 설정 if($obj.hasClass('widgetSetup')) { @@ -451,7 +446,7 @@ function doCheckWidget(e) { restoreWidgetButtons(); if(p_obj.getAttribute('widget')=='widgetContent' && p_obj.getAttribute('document_srl') ) { - var response_tags = new Array('error','message','document_srl'); + var response_tags = ['error','message','document_srl']; var params = []; params.document_srl =p_obj.getAttribute('document_srl'); exec_xml('widget','procWidgetCopyDocument', params, completeCopyWidgetContent, response_tags, params, p_obj); @@ -461,7 +456,7 @@ function doCheckWidget(e) { xInnerHtml(dummy,xInnerHtml(p_obj)); dummy.widget_sequence = ''; - jQuery(dummy).hasClass("widgetOutput"); + dummy.className = "widgetOutput"; for(var i=0;i 0) return; + if($obj.parents('#pageSizeLayer').size() > 0) return; doHideWidgetSizeSetup(); if($obj.hasClass('widgetSetup') || $obj.hasClass('widgetStyle') || $obj.hasClass('widgetCopy') || $obj.hasClass('widgetBoxCopy') || $obj.hasClass('widgetSize') || $obj.hasClass('widgetBoxSize') || $obj.hasClass('widgetRemove') || $obj.hasClass('widgetBoxRemove')) return; p_obj = obj; - var $p_obj = jQuery(obj); while(p_obj) { + var $p_obj = jQuery(p_obj); if($p_obj.hasClass('widgetOutput') || $p_obj.hasClass('widgetResize') || $p_obj.hasClass('widgetResizeLeft') || $p_obj.hasClass('widgetBoxResize') || $p_obj.hasClass('widgetBoxResizeLeft')) { widgetDragEnable(p_obj, widgetDragStart, widgetDrag, widgetDragEnd); widgetMouseDown(e); @@ -583,57 +578,56 @@ function doShowWidgetSizeSetup(px, py, obj) { /*jshint -W004*/ var layer = jQuery('#pageSizeLayer'); var form = layer.find('>form:first'); - var obj = jQuery(obj); - + var $obj = jQuery(obj); if (!form.length) return; - selectedSizeWidget = obj[0]; + selectedSizeWidget = obj; var $selectedSizeWidget = jQuery(selectedSizeWidget); var opts = { - widget_align : obj.css('float'), + widget_align : $obj.css('float'), css_class : ($selectedSizeWidget.attr('css_class')) ? $selectedSizeWidget.attr('css_class') : '', - width : obj[0].style.width, - height : obj[0].style.height, + width : $obj[0].style.width, + height : $obj[0].style.height, - padding_left : _getInt(obj.attr('widget_padding_left')), - padding_right : _getInt(obj.attr('widget_padding_right')), - padding_top : _getInt(obj.attr('widget_padding_top')), - padding_bottom : _getInt(obj.attr('widget_padding_bottom')), + padding_left : _getInt($obj.attr('widget_padding_left')), + padding_right : _getInt($obj.attr('widget_padding_right')), + padding_top : _getInt($obj.attr('widget_padding_top')), + padding_bottom : _getInt($obj.attr('widget_padding_bottom')), - margin_left : _getInt(obj[0].style.marginLeft), - margin_right : _getInt(obj[0].style.marginRight), - margin_top : _getInt(obj[0].style.marginTop), - margin_bottom : _getInt(obj[0].style.marginBottom), + margin_left : _getInt($obj.css('marginLeft')), + margin_right : _getInt($obj.css('marginRight')), + margin_top : _getInt($obj.css('marginTop')), + margin_bottom : _getInt($obj.css('marginBottom')), - border_top_color : transRGB2Hex(obj[0].style.borderTopColor), - border_top_thick : obj[0].style.borderTopWidth.replace(/px$/i, ''), - border_top_type : obj[0].style.borderTopStyle, + border_top_color : transRGB2Hex($obj.css('borderTopColor')), + border_top_thick : $obj.css('borderTopWidth').replace(/px$/i, ''), + border_top_type : $obj.css('borderTopStyle'), - border_bottom_color : transRGB2Hex(obj[0].style.borderBottomColor), - border_bottom_thick : obj[0].style.borderBottomWidth.replace(/px$/i, ''), - border_bottom_type : obj[0].style.borderBottomStyle, + border_bottom_color : transRGB2Hex($obj.css('borderBottomColor')), + border_bottom_thick : $obj.css('borderBottomWidth').replace(/px$/i, ''), + border_bottom_type : $obj.css('borderBottomStyle'), - border_right_color : transRGB2Hex(obj[0].style.borderRightColor), - border_right_thick : obj[0].style.borderRightWidth.replace(/px$/i, ''), - border_right_type : obj[0].style.borderRightStyle, + border_right_color : transRGB2Hex($obj.css('borderRightColor')), + border_right_thick : $obj.css('borderRightWidth').replace(/px$/i, ''), + border_right_type : $obj.css('borderRightStyle'), - border_left_color : transRGB2Hex(obj[0].style.borderLeftColor), - border_left_thick : obj[0].style.borderLeftWidth.replace(/px$/i, ''), - border_left_type : obj[0].style.borderLeftStyle, + border_left_color : transRGB2Hex($obj.css('borderLeftColor')), + border_left_thick : $obj.css('borderLeftWidth').replace(/px$/i, ''), + border_left_type : $obj.css('borderLeftStyle'), - background_color : transRGB2Hex(obj[0].style.backgroundColor), - background_image_url : obj[0].style.backgroundImage.replace(/^url\(/i,'').replace(/\)$/i,''), + background_color : transRGB2Hex($obj.css('backgroundColor')), + background_image_url : $obj.css('backgroundImage').replace(/^url\(/i,'').replace(/\)$/i,''), background_x : 0, background_y : 0, - background_repeat : obj[0].style.backgroundRepeat + background_repeat : $obj.css('backgroundRepeat') }; // background position - var pos = obj[0].style.backgroundPosition; + var pos = $obj.css('backgroundPosition'); if(pos) { pos = pos.split(' '); if(pos.length == 2) { @@ -792,8 +786,8 @@ function doApplyWidgetSize(fo_obj) { selectedSizeWidget.style.backgroundPosition = fo_obj.background_x.value+' '+fo_obj.background_y.value; var borderObj = selectedSizeWidget.firstChild; - var $borderObj = jQuery(selectedSizeWidget.firstChild); while(borderObj) { + var $borderObj = jQuery(borderObj); if(borderObj.nodeName == "DIV" && ($borderObj.hasClass("widgetBorder") || $borderObj.hasClass("widgetBoxBorder"))) { var contentObj = borderObj.firstChild; while(contentObj) { @@ -895,8 +889,7 @@ function showWidgetButton(name, obj) { obj.insertBefore(widgetButton, obj.firstChild); } -function widgetSetup(evt) { - var e = new xEvent(evt); +function widgetSetup(e) { var obj = e.target; if(jQuery(obj).is('.widgetButtons') || jQuery(obj).parents('.widgetButtons').size() > 0) return; @@ -970,7 +963,6 @@ function widgetGetTmpObject(obj) { // 메뉴에 마우스 클릭이 일어난 시점에 드래그를 위한 제일 첫 동작 (해당 object에 각종 함수나 상태변수 설정) function widgetDragEnable(obj, funcDragStart, funcDrag, funcDragEnd) { - // 상위 object에 드래그 가능하다는 상태와 각 드래그 관련 함수를 설정 obj.draggable = true; obj.dragStart = funcDragStart; @@ -980,7 +972,7 @@ function widgetDragEnable(obj, funcDragStart, funcDrag, funcDragEnd) { // 드래그 가능하지 않다면 드래그 가능하도록 상태 지정하고 mousemove이벤트 등록 if (!widgetDragManager.isDrag) { widgetDragManager.isDrag = true; - xAddEventListener(document, 'mousemove', widgetDragMouseMove, false); + jQuery(document).on('mousemove', widgetDragMouseMove); } } @@ -1002,6 +994,7 @@ function widgetDragStart(tobj, px, py) { // 드래그 시작후 마우스를 이동할때 발생되는 이벤트에 의해 실행되는 함수 function widgetDrag(tobj, dx, dy) { + var $tobj = jQuery(tobj); var minWidth = 40; var minHeight = 10; @@ -1021,7 +1014,7 @@ function widgetDrag(tobj, dx, dy) { if(!cssFloat) cssFloat = 'left'; // 위젯 리사이즈 (우측) - if(tobj.className == 'widgetResize' || tobj.className == 'widgetBoxResize') { + if($tobj.hasClass('widgetResize') || $tobj.hasClass('widgetBoxResize')) { if(nx < sx+minWidth) nx = sx+minWidth; if(nx > zoneRight) nx = zoneRight; if(cssFloat == 'right') nx = sx + pWidth; @@ -1037,7 +1030,7 @@ function widgetDrag(tobj, dx, dy) { xHeight(tobj.parentNode, new_height); // 위젯 리사이즈 (좌측) - } else if(tobj.className == 'widgetResizeLeft' || tobj.className == 'widgetBoxResizeLeft') { + } else if($tobj.hasClass('widgetResizeLeft') || $tobj.hasClass('widgetBoxResizeLeft')) { /*jshint -W004*/ if(nx < zoneLeft) nx = zoneLeft; if(cssFloat == 'left') nx = sx; @@ -1109,6 +1102,7 @@ function widgetDrag(tobj, dx, dy) { var boxList = xGetElementsByClassName("nullWidget", zonePageObj); for(var i=0;i= l && tobj.xDPX <= ll && tobj.xDPY >= t && tobj.xDPY <= tt) { //박스 위젯이다 - if(target_obj.className == "nullWidget") { + if($target_obj.hasClass("nullWidget")) { - var wb_ws = jQuery('div.widget_inner',jQuery(target_obj)); + var wb_ws = jQuery('div.widget_inner', $target_obj); //박스 위젯에 위젯스타일이 적용 안된경우 if(wb_ws.size() === 0){ @@ -1190,7 +1184,7 @@ function widgetDragEnd(tobj, px, py) { function widgetDisapearObject(obj, tobj) { xInnerHtml(tobj,xInnerHtml(obj)); xInnerHtml(obj,''); - xDisplay(obj, 'none'); + jQuery(obj).hide(); obj.parentNode.removeChild(obj); widgetTmpObject[tobj.id] = null; return; @@ -1198,31 +1192,29 @@ function widgetDisapearObject(obj, tobj) { // 마우스다운 이벤트 발생시 호출됨 function widgetMouseDown(e) { - var evt = new xEvent(e); - var obj = evt.target; + var obj = e.target; while(obj && !obj.draggable) { obj = xParent(obj, true); } if(obj) { - xPreventDefault(e); - obj.xDPX = evt.pageX; - obj.xDPY = evt.pageY; + e.preventDefault(); + obj.xDPX = e.pageX; + obj.xDPY = e.pageY; widgetDragManager.obj = obj; - xAddEventListener(document, 'mouseup', widgetMouseUp, false); - if (obj.dragStart) obj.dragStart(obj, evt.pageX, evt.pageY); + jQuery(document).on('mouseup', widgetMouseUp); + if (obj.dragStart) obj.dragStart(obj, e.pageX, e.pageY); } } // 마우스 버튼을 놓았을때 동작될 함수 (각종 이벤트 해제 및 변수 설정 초기화) function widgetMouseUp(e) { if (widgetDragManager.obj) { - xPreventDefault(e); - xRemoveEventListener(document, 'mouseup', widgetMouseUp, false); + e.preventDefault(); + jQuery(document).off('mouseup', widgetMouseUp); if (widgetDragManager.obj.dragEnd) { - var evt = new xEvent(e); - widgetDragManager.obj.dragEnd(widgetDragManager.obj, evt.pageX, evt.pageY); + widgetDragManager.obj.dragEnd(widgetDragManager.obj, e.pageX, e.pageY); } widgetDragManager.obj = null; @@ -1232,16 +1224,15 @@ function widgetMouseUp(e) { // 드래그할때의 object이동등을 담당 function widgetDragMouseMove(e) { - var evt = new xEvent(e); if(widgetDragManager.obj) { - xPreventDefault(e); + e.preventDefault(); var obj = widgetDragManager.obj; - var dx = evt.pageX - obj.xDPX; - var dy = evt.pageY - obj.xDPY; + var dx = e.pageX - obj.xDPX; + var dy = e.pageY - obj.xDPY; - obj.xDPX = evt.pageX; - obj.xDPY = evt.pageY; + obj.xDPX = e.pageX; + obj.xDPY = e.pageY; if (obj.drag) { obj.drag(obj, dx, dy); @@ -1259,7 +1250,7 @@ function widgetDragDisable(id) { obj.dragStart = null; obj.drag = null; obj.dragEnd = null; - xRemoveEventListener(obj, 'mousedown', widgetMouseDown, false); + jQuery(obj).off('mousedown', widgetMouseDown); return; } @@ -1268,8 +1259,8 @@ function widgetManualEnd() { var tobj = widgetDragManager.obj; if(!tobj) return; - xRemoveEventListener(document, 'mouseup', widgetMouseUp, false); - xAddEventListener(document, 'mousemove', widgetDragMouseMove, false); + jQuery(document).off('mouseup', widgetMouseUp); + jQuery(document).on('mousemove', widgetDragMouseMove); var obj = widgetGetTmpObject(tobj); widgetDisapear = widgetDisapearObject(obj, tobj); From ecfa434749656446f32dc405675239bdc559e1a5 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 4 Apr 2014 17:42:08 +0900 Subject: [PATCH 246/549] =?UTF-8?q?fix=20#592=20=EA=B0=80=EC=83=81?= =?UTF-8?q?=EC=82=AC=EC=9D=B4=ED=8A=B8=EC=97=90=EC=84=9C=20=ED=9A=8C?= =?UTF-8?q?=EC=9B=90=20cache=EB=A5=BC=20=EA=B0=B1=EC=8B=A0=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0=20(for=20cafe,=20textyle)=20thanks=20to=20@churow=20^?= =?UTF-8?q?^?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/member/member.controller.php | 30 +++++++++++++++++----------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 68cc2bc810..d4b832a30e 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -408,7 +408,7 @@ function procMemberInsert() } } - $this->_clearMemberCache($args->member_srl); + $this->_clearMemberCache($args->member_srl, $site_module_info->site_srl); $this->setRedirectUrl($returnUrl); } @@ -557,7 +557,6 @@ function procMemberModifyInfo() // Get user_id information $this->memberInfo = $oMemberModel->getMemberInfoByMemberSrl($args->member_srl); - $this->_clearMemberCache($args->member_srl); // Call a trigger after successfully log-in (after) $trigger_output = ModuleHandler::triggerCall('member.procMemberModifyInfo', 'after', $this->memberInfo); @@ -568,7 +567,8 @@ function procMemberModifyInfo() $this->add('member_srl', $args->member_srl); $this->setMessage('success_updated'); - $this->_clearMemberCache($args->member_srl); + $site_module_info = Context::get('site_module_info'); + $this->_clearMemberCache($args->member_srl, $site_module_info->site_srl); $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispMemberInfo'); $this->setRedirectUrl($returnUrl); @@ -646,8 +646,6 @@ function procMemberLeave() // Return success message $this->setMessage('success_leaved'); - $this->_clearMemberCache($member_srl); - $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', ''); $this->setRedirectUrl($returnUrl); } @@ -1100,7 +1098,8 @@ function procMemberAuthAccount() if(!$output->toBool()) return $this->stop($output->getMessage()); // Remove all values having the member_srl from authentication table executeQuery('member.deleteAuthMail',$args); - + + $site_module_info = Context::get('site_module_info'); $this->_clearMemberCache($args->member_srl); // Notify the result @@ -1301,7 +1300,6 @@ function procMemberResetAuthMail() list($args->email_id, $args->email_host) = explode('@', $newEmail); $output = executeQuery('member.updateMemberEmailAddress', $args); - $this->_clearMemberCache($args->member_srl); if(!$output->toBool()) { return $this->stop($output->getMessage()); @@ -1420,7 +1418,7 @@ function procMemberSiteLeave() $output = executeQuery('member.deleteMembersGroup', $args); if(!$output->toBool()) return $output; $this->setMessage('success_deleted'); - $this->_clearMemberCache($args->member_srl); + $this->_clearMemberCache($args->member_srl, $site_module_info->site_srl); } /** @@ -1515,7 +1513,7 @@ function addMemberToGroup($member_srl, $group_srl, $site_srl=0) $output = executeQuery('member.addMemberToGroup',$args); $output2 = ModuleHandler::triggerCall('member.addMemberToGroup', 'after', $args); - $this->_clearMemberCache($member_srl); + $this->_clearMemberCache($member_srl, $site_srl); return $output; } @@ -1555,7 +1553,7 @@ function replaceMemberGroup($args) $output = executeQuery('member.addMemberToGroup', $obj); if(!$output->toBool()) return $output; - $this->_clearMemberCache($obj->member_srl); + $this->_clearMemberCache($obj->member_srl, $args->site_srl); } return new Object(); @@ -1734,7 +1732,8 @@ function doLogin($user_id, $password = '', $keep_signed = false) $args->member_srl = $this->memberInfo->member_srl; $output = executeQuery('member.updateLastLogin', $args); - $this->_clearMemberCache($args->member_srl); + $site_module_info = Context::get('site_module_info'); + $this->_clearMemberCache($args->member_srl, $site_module_info->site_srl); // Check if there is recoding table. $oDB = &DB::getInstance(); @@ -2199,7 +2198,7 @@ function updateMember($args, $is_admin = FALSE) $oDB->commit(); //remove from cache - $this->_clearMemberCache($args->member_srl); + $this->_clearMemberCache($args->member_srl, $args->site_srl); // Save Session if(!$this->memberInfo) $this->memberInfo = $oMemberModel->getMemberInfoByMemberSrl($args->member_srl); @@ -2693,6 +2692,13 @@ function _clearMemberCache($member_srl, $site_srl = 0) $object_key = 'member_groups:' . getNumberingPath($member_srl) . $member_srl . '_' . $site_srl; $cache_key = $oCacheHandler->getGroupKey('member', $object_key); $oCacheHandler->delete($cache_key); + + if($site_srl !== 0) + { + $object_key = 'member_groups:' . getNumberingPath($member_srl) . $member_srl . '_0'; + $cache_key = $oCacheHandler->getGroupKey('member', $object_key); + $oCacheHandler->delete($cache_key); + } } $oCacheHandler = CacheHandler::getInstance('object'); From ef8ecdb37236b2e11fef3d6ab8c92c1a87362838 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 4 Apr 2014 17:46:01 +0900 Subject: [PATCH 247/549] MINIFY --- modules/widget/tpl/js/widget.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/widget/tpl/js/widget.min.js b/modules/widget/tpl/js/widget.min.js index 64dc5cbc9b..8fb632e5c2 100644 --- a/modules/widget/tpl/js/widget.min.js +++ b/modules/widget/tpl/js/widget.min.js @@ -1 +1 @@ -function getStyle(a){var b=a.getAttribute("style");return b||(b=a.style),"object"==typeof b&&(b=b.cssText),b=b.replace(/\burl\s*\(\s*"(.*?)"\s*\)/i,"url('$1')")}function getFloat(a){return jQuery(a).css("float")}function setFloat(a,b){jQuery(a).css("float",b)}function getPadding(a,b){var c=a.getAttribute("widget_padding_"+b);return c&&null!==c||(c=0),c}function doStartPageModify(a,b){zonePageObj=get_by_id(a),zoneModuleSrl=b,jQuery("#tmpPageSizeLayer").appendTo("body").hide().attr("id","pageSizeLayer").css({position:"fixed"}).before('
    ').find(">form").submit(function(){return doApplyWidgetSize(this),!1}),xAddEventListener(document.getElementById("zonePageContent"),"click",doCheckWidget),xAddEventListener(document.getElementById("zonePageContent"),"mousedown",doCheckWidgetDrag),xAddEventListener(document.getElementById("zonePageContent"),"mouseover",widgetSetup)}function removeAllWidget(){confirm(confirm_delete_msg)&&(restoreWidgetButtons(),jQuery(zonePageObj).html(""))}function getWidgetContent(a){var b="";"undefined"!=typeof a&&a||(a=zonePageObj);var c=null;return jQuery("div.widgetOutput",a).each(function(){if(jQuery(this).parent().get(0)==a)switch(c=jQuery(this).attr("widget")){case"widgetBox":b+=getWidgetBoxCode(this,c);break;case"widgetContent":b+=getContentWidgetCode(this,c);break;default:b+=getWidgetCode(this,c)}}),b}function getContentWidgetCode(a){var b,c=(a.firstChild,jQuery("div.widgetContent",a)),d="",e="",f=0,g="contenteditable,id,style,src,widget,body,class,widget_width,widget_width_type,xdpx,xdpy,height,document_srl,widget_padding_left,widget_padding_right,widget_padding_top,widget_padding_bottom,hascontent";if(c.size()>0){f=jQuery(a).attr("document_srl"),d=f>0?"":c.html();for(var h,i=new RegExp("^("+g.replace(/,/g,"|")+")$","i"),j=0;j"}return""}function getWidgetBoxCode(a){for(var b="",c=0;c0?(f=jQuery(".widget_inner",a),f=f.get(0)):f=jQuery(".nullWidget",a).get(0);var g=getWidgetContent(f);return'
    "+g+"
    "}function getWidgetCode(a,b){for(var c="",d=0;d"}function doAddContent(a){var b=request_uri.setQuery("module","widget").setQuery("act","dispWidgetAdminAddContent").setQuery("module_srl",zoneModuleSrl).setQuery("mid",a);popopen(b,"addContent")}function doSyncPageContent(){if(opener&&opener.selectedWidget){var a=get_by_id("content_fo"),b=opener.selectedWidget;a.style.value=getStyle(opener.selectedWidget),a.widget_padding_left.value=getPadding(b,"left"),a.widget_padding_right.value=getPadding(b,"right"),a.widget_padding_bottom.value=getPadding(b,"bottom"),a.widget_padding_top.value=getPadding(b,"top");for(var c=b.firstChild;c&&!jQuery(c).hasClass("widgetContent");)c=c.nextSibling;if(c&&jQuery(c).hasClass("widgetContent")&&(!a.document_srl||"0"==a.document_srl.value))try{var d=Base64.decode(xInnerHtml(c));d=editorReplacePath(d),get_by_id("content_fo").content.value=d,xe.Editors[1].exec("SET_IR",[d])}catch(e){}}"undefined"!=typeof editorStart&&editorStart(1,"module_srl","content",!1,400)}function addContentWidget(a){var b=a.getAttribute("editor_sequence"),c=(a.mid.value,a.module_srl.value),d=a.document_srl.value,e=editorGetContent(b),f={editor_sequence:b,content:e,module_srl:c,document_srl:d};if(/^\s*

    .*<\/p>\s*$/i.test(f.content)){var g=f.content.toLowerCase(),h=g.indexOf("

    "),i=g.lastIndexOf("

    ");h>0&&i>0&&h==i&&(f.content=e=f.content.replace(/^\s*

    |<\/p>\s*$/gi,""))}return exec_xml("widget","procWidgetInsertDocument",f,function(b){if(b&&"0"==b.error){var c=b.document_srl,d=opener.jQuery("div.widgetOutput[widget=widgetContent][document_srl="+c+"]"),f=[];d.size()>0&&(f=d.get(0).attributes);for(var g='

    '+e+'
    ',h=jQuery(g),i=0,j=f.length;j>i;i++)h.attr(f[i].name)||h.attr(f[i].name,f[i].value);g=jQuery("
    ").append(h).html(),opener.doAddWidgetCode(g),window.close()}},"document_srl".split(",")),!1}function doAddWidgetBox(){var a='
    ';zonePageObj.innerHTML+=a}function doAddWidget(a){var b=a.widget_list,c=b.selectedIndex,d=b.options[c].value,e=a.module_srl.value,f=request_uri.setQuery("module","widget").setQuery("act","dispWidgetGenerateCodeInPage").setQuery("selected_widget",d).setQuery("module_srl",e);popopen(f,"GenerateWidgetCode")}function doAddWidgetCode(widget_code){restoreWidgetButtons();for(var tmp=widget_code;tmp.indexOf(""),cssfile=tmp.substr(10,eos-10);if(cssfile.indexOf(".js")>-1)tmp=tmp.substr(eos);else{if(!cssfile)break;if(tmp=tmp.substr(eos),cssfile=request_uri+cssfile,"undefined"==typeof document.createStyleSheet){var css='',dummy=xCreateElement("DIV");xInnerHtml(dummy,css),document.body.appendChild(dummy)}else document.createStyleSheet(cssfile,0)}}for(checkDocumentWrite=!0,tmp=widget_code.toLowerCase();tmp.indexOf("-1;){var pos=tmp.indexOf("")+9,script=widget_code.substr(pos,length);script=script.replace(/^]*)>/i,"").replace(/<\/script>$/i,""),writedText=null;try{eval(script)}catch(e){}widget_code=widget_code.substr(0,pos)+writedText+widget_code.substr(pos+length),tmp=widget_code.toLowerCase()}var dummy=xCreateElement("div");xInnerHtml(dummy,widget_code);var obj=dummy.childNodes[0];if(selectedWidget&&selectedWidget.getAttribute("widget")){var o=jQuery("div.widget_inner",selectedWidget),n=jQuery("div.widget_inner",obj);0===n.size()&&(n=jQuery("div.nullWidget",obj)),0===o.size()&&(o=jQuery("div.nullWidget",selectedWidget)),n.html(o.html()),selectedWidget.parentNode.insertBefore(obj,selectedWidget),selectedWidget.parentNode.removeChild(selectedWidget)}else get_by_id("zonePageContent").appendChild(obj);checkDocumentWrite=!1,selectedWidget=null}function doCheckWidget(a){var b=new xEvent(a);if(b.target){var c=b.target,d=jQuery(c);selectedWidget=null;for(var e=c.parentNode;e;){if("pageSizeLayer"==e.id)return;e=e.parentNode}if(doHideWidgetSizeSetup(),d.hasClass("widgetSetup")){var f=c.parentNode.parentNode,g=f.getAttribute("widget");if(!g)return;return selectedWidget=f,void("widgetContent"==g?popopen(request_uri+"?module=widget&act=dispWidgetAdminAddContent&module_srl="+zoneModuleSrl+"&document_srl="+f.getAttribute("document_srl"),"addContent"):popopen(request_uri+"?module=widget&act=dispWidgetGenerateCodeInPage&selected_widget="+g+"&widgetstyle="+h,"GenerateCodeInPage"))}if(d.hasClass("widgetStyle")){var f=c.parentNode.parentNode,g=f.getAttribute("widget"),h=f.getAttribute("widgetstyle");if(!g)return;return selectedWidget=f,void popopen(request_uri+"?module=widget&act=dispWidgetStyleGenerateCodeInPage&selected_widget="+g+"&widgetstyle="+h,"GenerateCodeInPage")}if(d.hasClass("widgetCopy")&&jQuery(c.parentNode.parentNode).hasClass("widgetOutput")){var f=c.parentNode.parentNode;if(restoreWidgetButtons(),"widgetContent"==f.getAttribute("widget")&&f.getAttribute("document_srl")){var i=new Array("error","message","document_srl"),j=[];return j.document_srl=f.getAttribute("document_srl"),void exec_xml("widget","procWidgetCopyDocument",j,completeCopyWidgetContent,i,j,f)}var k=xCreateElement("DIV");xInnerHtml(k,xInnerHtml(f)),k.widget_sequence="",jQuery(k).hasClass("widgetOutput");for(var l=0;l0||(doHideWidgetSizeSetup(),d.hasClass("widgetSetup")||d.hasClass("widgetStyle")||d.hasClass("widgetCopy")||d.hasClass("widgetBoxCopy")||d.hasClass("widgetSize")||d.hasClass("widgetBoxSize")||d.hasClass("widgetRemove")||d.hasClass("widgetBoxRemove")))){p_obj=c;for(var e=jQuery(c);p_obj;){if(e.hasClass("widgetOutput")||e.hasClass("widgetResize")||e.hasClass("widgetResizeLeft")||e.hasClass("widgetBoxResize")||e.hasClass("widgetBoxResizeLeft"))return widgetDragEnable(p_obj,widgetDragStart,widgetDrag,widgetDragEnd),void widgetMouseDown(a);p_obj=p_obj.parentNode}}}}function _getInt(a){return a&&"null"!=a?isNaN(parseInt(a,10))?0:parseInt(a,10):0}function doShowWidgetSizeSetup(a,b,c){var d=jQuery("#pageSizeLayer"),e=d.find(">form:first"),c=jQuery(c);if(e.length){selectedSizeWidget=c[0];var f=jQuery(selectedSizeWidget),g={widget_align:c.css("float"),css_class:f.attr("css_class")?f.attr("css_class"):"",width:c[0].style.width,height:c[0].style.height,padding_left:_getInt(c.attr("widget_padding_left")),padding_right:_getInt(c.attr("widget_padding_right")),padding_top:_getInt(c.attr("widget_padding_top")),padding_bottom:_getInt(c.attr("widget_padding_bottom")),margin_left:_getInt(c[0].style.marginLeft),margin_right:_getInt(c[0].style.marginRight),margin_top:_getInt(c[0].style.marginTop),margin_bottom:_getInt(c[0].style.marginBottom),border_top_color:transRGB2Hex(c[0].style.borderTopColor),border_top_thick:c[0].style.borderTopWidth.replace(/px$/i,""),border_top_type:c[0].style.borderTopStyle,border_bottom_color:transRGB2Hex(c[0].style.borderBottomColor),border_bottom_thick:c[0].style.borderBottomWidth.replace(/px$/i,""),border_bottom_type:c[0].style.borderBottomStyle,border_right_color:transRGB2Hex(c[0].style.borderRightColor),border_right_thick:c[0].style.borderRightWidth.replace(/px$/i,""),border_right_type:c[0].style.borderRightStyle,border_left_color:transRGB2Hex(c[0].style.borderLeftColor),border_left_thick:c[0].style.borderLeftWidth.replace(/px$/i,""),border_left_type:c[0].style.borderLeftStyle,background_color:transRGB2Hex(c[0].style.backgroundColor),background_image_url:c[0].style.backgroundImage.replace(/^url\(/i,"").replace(/\)$/i,""),background_x:0,background_y:0,background_repeat:c[0].style.backgroundRepeat},h=c[0].style.backgroundPosition;h&&(h=h.split(" "),2==h.length&&(g.background_x=h[0],g.background_y=h[1])),d.show(),jQuery(function(a){var b=a("#pageSizeLayer"),c=a(".x_modal-backdrop"),d=a(window).width(),e=a(window).height(),f=b.width(),g=b.height();d>f&&e>g?(c.show(),b.css({position:"fixed",top:e/2-g/2+"px",left:d/2-f/2+"px",width:"700px"})):(c.hide(),b.css({position:"static",top:"auto",left:"auto",width:"auto"}))}),jQuery.each(g,function(a,b){var c=e[0].elements[a];c&&(c.value=b,c.className.match(/\bcolor-indicator\b/)&&(c.style.background=c.value="#"+c.value)),"select"==c.tagName.toLowerCase()&&-1==c.selectedIndex&&(c.selectedIndex=0)});try{e[0].elements[0].focus()}catch(i){}}}function doHideWidgetSizeSetup(){jQuery("#pageSizeLayer, .x_modal-backdrop, .jPicker.Container").hide()}function _getSize(a){if(!a)return 0;var b="px";a.lastIndexOf("%")>=0&&(b="%");var c=parseInt(a,10);return 1>c?0:("%"==b&&c>100&&(c=100),""+c+b)}function _getBorderStyle(a,b,c){var d=a.value;d=d.replace(/^#/,""),d=d?"#"+d:"#FFFFFF";var e=b.value;e=e?parseInt(e,10)+"px":"0px";var f=c.options[c.selectedIndex].value;f||(f="solid");var g=d+" "+e+" "+f;return g}function _getBGColorStyle(a){var b=a.replace(/^#/,"");return b=b?"#"+b:"#FFFFFF"}function doApplyWidgetSize(a){if(selectedSizeWidget){1==a.widget_align.selectedIndex?setFloat(selectedSizeWidget,"right"):setFloat(selectedSizeWidget,"left");var b=jQuery(a),c=jQuery(selectedSizeWidget),d=b.find("#css_class").val();d&&c.attr("css_class",d);var e=_getSize(a.width.value);e&&(selectedSizeWidget.style.width=e);var f=_getSize(a.height.value);if(f&&"100%"!=f)selectedSizeWidget.style.height=f;else{selectedSizeWidget.style.height="";for(var g=xGetElementsByClassName("widgetBorder",selectedSizeWidget),h=0;h0||jQuery(c).is(".buttonBox")||jQuery(c).parents(".buttonBox").size()>0)){var d=jQuery(c).parents(".widgetOutput");if(0===d.size())return void restoreWidgetButtons();c=d.get(0);var e=d.attr("widget");if(e)if("widgetBox"==e)restoreWidgetButtons(),showWidgetButton("widgetBoxButton",c);else{restoreWidgetButtons(),showWidgetButton("widgetButton",c);var f=c.parentNode;if(f)for(;f;){if("DIV"==f.nodeName&&"widgetBox"==f.getAttribute("widget")){showWidgetButton("widgetBoxButton",f);break}f=f.parentNode}}}}function widgetCreateTmpObject(a){var b=a.getAttribute("id");return tmpObj=xCreateElement("DIV"),tmpObj.id=b+"_tmp",tmpObj.className=a.className,tmpObj.style.overflow="hidden",tmpObj.style.margin="0px",tmpObj.style.padding="0px",tmpObj.style.width=a.style.width,tmpObj.style.display="none",tmpObj.style.position="absolute",tmpObj.style.opacity=1,tmpObj.style.filter="alpha(opacity=100)",xLeft(tmpObj,xPageX(a)),xTop(tmpObj,xPageY(a)),document.body.appendChild(tmpObj),widgetTmpObject[a.id]=tmpObj,tmpObj}function widgetGetTmpObject(a){a.id||(a.id="widget_"+idStep++);var b=widgetTmpObject[a.id];return b||(b=widgetCreateTmpObject(a)),b}function widgetDragEnable(a,b,c,d){a.draggable=!0,a.dragStart=b,a.drag=c,a.dragEnd=d,widgetDragManager.isDrag||(widgetDragManager.isDrag=!0,xAddEventListener(document,"mousemove",widgetDragMouseMove,!1))}function widgetDragStart(a){var b=jQuery(a);if(!(b.hasClass("widgetResize")||b.hasClass("widgetResizeLeft")||b.hasClass("widgetBoxResize")||b.hasClass("widgetBoxResizeLeft"))){var c=widgetGetTmpObject(a);xInnerHtml(c,xInnerHtml(a)),xLeft(c,xPageX(a)),xTop(c,xPageY(a)),xWidth(c,xWidth(a)),xHeight(c,xHeight(a)),xDisplay(c,"block")}}function widgetDrag(a,b,c){var d=40,e=10,f=xPageX(a.parentNode),g=xPageY(a.parentNode),h=a.xDPX,i=a.xDPY,j=xWidth(zonePageObj),k=xPageX(zonePageObj),l=k+j,m=xWidth(a.parentNode),n=getFloat(a.parentNode);if(n||(n="left"),"widgetResize"==a.className||"widgetBoxResize"==a.className){f+d>h&&(h=f+d),h>l&&(h=l),"right"==n&&(h=f+m);var o=h-f;d>o&&(o=d);var p=i-g;e>p&&(p=e),f+o>l&&(o=l-f),xWidth(a.parentNode,o),xHeight(a.parentNode,p)}else if("widgetResizeLeft"==a.className||"widgetBoxResizeLeft"==a.className){k>h&&(h=k),"left"==n&&(h=f);var o=m+(f-h);d>o&&(o=d);var p=i-g;e>p&&(p=e),xWidth(a.parentNode,o),xHeight(a.parentNode,p)}else{var q=widgetGetTmpObject(a);if(xLeft(q,parseInt(xPageX(q),10)+parseInt(b,10)),xTop(q,parseInt(xPageY(q),10)+parseInt(c,10)),a.parentNode!=zonePageObj){for(var r=xGetElementsByClassName("widgetOutput",a.parentNode),s=0;s=u&&a.xDPX<=w&&a.xDPY>=v&&a.xDPY<=x&&a.parentNode==t.parentNode){var y=t.nextSibling;y||(y=xCreateElement("DIV"),t.parentNode.appendChild(y));var z=a.nextSibling;return z||(z=xCreateElement("DIV"),a.parentNode.appendChild(z)),y&&y.parentNode.insertBefore(a,y),z&&z.parentNode.insertBefore(t,z),void(r=null)}}r=null;var A=jQuery(a).parents("div.nullWidget").get(0),u=xPageX(A),v=xPageY(A),w=parseInt(u,10)+parseInt(xWidth(A),10),x=parseInt(v,10)+parseInt(xHeight(A),10);if(a.xDPXw||a.xDPYx)return void zonePageObj.insertBefore(a,jQuery(a).parents("div.widgetOutput[widget=widgetBox]").get(0))}else{if("widgetBox"!=a.getAttribute("widget")){for(var B=xGetElementsByClassName("nullWidget",zonePageObj),s=0;s=u&&a.xDPX<=w&&a.xDPY>=v&&a.xDPY<=x&&"nullWidget"==t.className){var C=jQuery("div.widget_inner",jQuery(t));return 0===C.size()?t.appendChild(a):C.get(0).appendChild(a),widgetManualEnd(),void(B=null)}}B=null}for(var r=xGetElementsByClassName("widgetOutput",zonePageObj),s=0;s=u&&a.xDPX<=w&&a.xDPY>=v&&a.xDPY<=x&&a.parentNode==t.parentNode){var y=t.nextSibling;y||(y=t.parentNode.lastChild),y||(y=xCreateElement("DIV"),t.parentNode.appendChild(y));var z=a.nextSibling;return z||(z=xCreateElement("DIV"),a.parentNode.appendChild(z)),y&&y.parentNode.insertBefore(a,y),z&&z.parentNode.insertBefore(t,z),void(r=null)}}}r=null}}}function widgetDragEnd(a){var b=widgetGetTmpObject(a);widgetDisapear=widgetDisapearObject(b,a),widgetDragDisable(a.getAttribute("id"))}function widgetDisapearObject(a,b){xInnerHtml(b,xInnerHtml(a)),xInnerHtml(a,""),xDisplay(a,"none"),a.parentNode.removeChild(a),widgetTmpObject[b.id]=null}function widgetMouseDown(a){for(var b=new xEvent(a),c=b.target;c&&!c.draggable;)c=xParent(c,!0);c&&(xPreventDefault(a),c.xDPX=b.pageX,c.xDPY=b.pageY,widgetDragManager.obj=c,xAddEventListener(document,"mouseup",widgetMouseUp,!1),c.dragStart&&c.dragStart(c,b.pageX,b.pageY))}function widgetMouseUp(a){if(widgetDragManager.obj){if(xPreventDefault(a),xRemoveEventListener(document,"mouseup",widgetMouseUp,!1),widgetDragManager.obj.dragEnd){var b=new xEvent(a);widgetDragManager.obj.dragEnd(widgetDragManager.obj,b.pageX,b.pageY)}widgetDragManager.obj=null,widgetDragManager.isDrag=!1}}function widgetDragMouseMove(a){var b=new xEvent(a);if(widgetDragManager.obj){xPreventDefault(a);var c=widgetDragManager.obj,d=b.pageX-c.xDPX,e=b.pageY-c.xDPY;c.xDPX=b.pageX,c.xDPY=b.pageY,c.drag?c.drag(c,d,e):xMoveTo(c,xLeft(c)+d,xTop(c)+e)}}function widgetDragDisable(a){if(widgetDragManager){var b=get_by_id(a);b.draggable=!1,b.dragStart=null,b.drag=null,b.dragEnd=null,xRemoveEventListener(b,"mousedown",widgetMouseDown,!1)}}function widgetManualEnd(){var a=widgetDragManager.obj;if(a){xRemoveEventListener(document,"mouseup",widgetMouseUp,!1),xAddEventListener(document,"mousemove",widgetDragMouseMove,!1);var b=widgetGetTmpObject(a);widgetDisapear=widgetDisapearObject(b,a),widgetDragDisable(a.getAttribute("id")),widgetDragManager.obj=null,widgetDragManager.isDrag=!1}}var zonePageObj=null,zoneModuleSrl=0,selectedWidget=null,writedText=null,checkDocumentWrite=!1;window.document.write=window.document.writeln=function(a){if(checkDocumentWrite)return void(writedText=a);if(!a.match(/^<\//)){window.opera||(a=a.replace(/&(?![#a-z0-9]+;)/g,"&")),a=a.replace(/(<[a-z]+)/g,"$1 xmlns='http://www.w3.org/1999/xhtml'");var b,c=jQuery("
    ").html(a)[0];b=document.getElementsByTagName("*"),b=b[b.length-1];for(var d=c.childNodes;d.length;)b.parentNode.appendChild(d[0])}};var selectedSizeWidget=null;jQuery(function(a){a(document).keydown(function(b){var c=a(".jPicker.Container:visible");return 27!=b.which||c.length?27==b.which&&c.length?(c.hide(),!1):!0:(doHideWidgetSizeSetup(),!1)})});var hideElements=[],widgetDragManager={obj:null,isDrag:!1},widgetTmpObject=[],widgetDisappear=0,idStep=0; \ No newline at end of file +function getStyle(a){var b=a.getAttribute("style");return b||(b=a.style),"object"==typeof b&&(b=b.cssText),b=b.replace(/\burl\s*\(\s*"(.*?)"\s*\)/i,"url('$1')")}function getFloat(a){return jQuery(a).css("float")}function setFloat(a,b){jQuery(a).css("float",b)}function getPadding(a,b){var c=a.getAttribute("widget_padding_"+b);return c&&null!==c||(c=0),c}function doStartPageModify(a,b){zonePageObj=get_by_id(a),zoneModuleSrl=b,jQuery("#tmpPageSizeLayer").appendTo("body").hide().attr("id","pageSizeLayer").css({position:"fixed"}).before('
    ').find(">form").submit(function(){return doApplyWidgetSize(this),!1}),jQuery("#zonePageContent").on("click",doCheckWidget).on("mousedown",doCheckWidgetDrag).on("mouseover",widgetSetup)}function removeAllWidget(){confirm(confirm_delete_msg)&&(restoreWidgetButtons(),jQuery(zonePageObj).html(""))}function getWidgetContent(a){var b="";"undefined"!=typeof a&&a||(a=zonePageObj);var c=null;return jQuery("div.widgetOutput",a).each(function(){if(jQuery(this).parent().get(0)==a)switch(c=jQuery(this).attr("widget")){case"widgetBox":b+=getWidgetBoxCode(this,c);break;case"widgetContent":b+=getContentWidgetCode(this,c);break;default:b+=getWidgetCode(this,c)}}),b}function getContentWidgetCode(a){var b,c=(a.firstChild,jQuery("div.widgetContent",a)),d="",e="",f=0,g="contenteditable,id,style,src,widget,body,class,widget_width,widget_width_type,xdpx,xdpy,height,document_srl,widget_padding_left,widget_padding_right,widget_padding_top,widget_padding_bottom,hascontent";if(c.size()>0){f=jQuery(a).attr("document_srl"),d=f>0?"":c.html();for(var h,i=new RegExp("^("+g.replace(/,/g,"|")+")$","i"),j=0;j"}return""}function getWidgetBoxCode(a){for(var b="",c=0;c0?(f=jQuery(".widget_inner",a),f=f.get(0)):f=jQuery(".nullWidget",a).get(0);var g=getWidgetContent(f);return'
    "+g+"
    "}function getWidgetCode(a,b){for(var c="",d=0;d"}function doAddContent(a){var b=request_uri.setQuery("module","widget").setQuery("act","dispWidgetAdminAddContent").setQuery("module_srl",zoneModuleSrl).setQuery("mid",a);popopen(b,"addContent")}function doSyncPageContent(){if(opener&&opener.selectedWidget){var a=get_by_id("content_fo"),b=opener.selectedWidget;a.style.value=getStyle(opener.selectedWidget),a.widget_padding_left.value=getPadding(b,"left"),a.widget_padding_right.value=getPadding(b,"right"),a.widget_padding_bottom.value=getPadding(b,"bottom"),a.widget_padding_top.value=getPadding(b,"top");for(var c=b.firstChild;c&&!jQuery(c).hasClass("widgetContent");)c=c.nextSibling;if(c&&jQuery(c).hasClass("widgetContent")&&(!a.document_srl||"0"==a.document_srl.value))try{var d=Base64.decode(xInnerHtml(c));d=editorReplacePath(d),get_by_id("content_fo").content.value=d,xe.Editors[1].exec("SET_IR",[d])}catch(e){}}"undefined"!=typeof editorStart&&editorStart(1,"module_srl","content",!1,400)}function addContentWidget(a){var b=a.getAttribute("editor_sequence"),c=(a.mid.value,a.module_srl.value),d=a.document_srl.value,e=editorGetContent(b),f={editor_sequence:b,content:e,module_srl:c,document_srl:d};if(/^\s*

    .*<\/p>\s*$/i.test(f.content)){var g=f.content.toLowerCase(),h=g.indexOf("

    "),i=g.lastIndexOf("

    ");h>0&&i>0&&h==i&&(f.content=e=f.content.replace(/^\s*

    |<\/p>\s*$/gi,""))}return exec_xml("widget","procWidgetInsertDocument",f,function(b){if(b&&"0"==b.error){var c=b.document_srl,d=opener.jQuery("div.widgetOutput[widget=widgetContent][document_srl="+c+"]"),f=[];d.size()>0&&(f=d.get(0).attributes);for(var g='

    '+e+'
    ',h=jQuery(g),i=0,j=f.length;j>i;i++)h.attr(f[i].name)||h.attr(f[i].name,f[i].value);g=jQuery("
    ").append(h).html(),opener.doAddWidgetCode(g),window.close()}},"document_srl".split(",")),!1}function doAddWidgetBox(){var a='
    ';zonePageObj.innerHTML+=a}function doAddWidget(a){var b=a.widget_list,c=b.selectedIndex,d=b.options[c].value,e=a.module_srl.value,f=request_uri.setQuery("module","widget").setQuery("act","dispWidgetGenerateCodeInPage").setQuery("selected_widget",d).setQuery("module_srl",e);popopen(f,"GenerateWidgetCode")}function doAddWidgetCode(widget_code){restoreWidgetButtons();for(var tmp=widget_code;tmp.indexOf(""),cssfile=tmp.substr(10,eos-10);if(cssfile.indexOf(".js")>-1)tmp=tmp.substr(eos);else{if(!cssfile)break;if(tmp=tmp.substr(eos),cssfile=request_uri+cssfile,"undefined"==typeof document.createStyleSheet){var css='',dummy=xCreateElement("DIV");xInnerHtml(dummy,css),document.body.appendChild(dummy)}else document.createStyleSheet(cssfile,0)}}for(checkDocumentWrite=!0,tmp=widget_code.toLowerCase();tmp.indexOf("-1;){var pos=tmp.indexOf("")+9,script=widget_code.substr(pos,length);script=script.replace(/^]*)>/i,"").replace(/<\/script>$/i,""),writedText=null;try{eval(script)}catch(e){}widget_code=widget_code.substr(0,pos)+writedText+widget_code.substr(pos+length),tmp=widget_code.toLowerCase()}var dummy=xCreateElement("div");xInnerHtml(dummy,widget_code);var obj=dummy.childNodes[0];if(selectedWidget&&selectedWidget.getAttribute("widget")){var o=jQuery("div.widget_inner",selectedWidget),n=jQuery("div.widget_inner",obj);0===n.size()&&(n=jQuery("div.nullWidget",obj)),0===o.size()&&(o=jQuery("div.nullWidget",selectedWidget)),n.html(o.html()),selectedWidget.parentNode.insertBefore(obj,selectedWidget),selectedWidget.parentNode.removeChild(selectedWidget)}else get_by_id("zonePageContent").appendChild(obj);checkDocumentWrite=!1,selectedWidget=null}function doCheckWidget(a){if(a.target){var b=a.target,c=jQuery(b);if(selectedWidget=null,doHideWidgetSizeSetup(),c.hasClass("widgetSetup")){var d=b.parentNode.parentNode,e=d.getAttribute("widget");if(!e)return;return selectedWidget=d,void("widgetContent"==e?popopen(request_uri+"?module=widget&act=dispWidgetAdminAddContent&module_srl="+zoneModuleSrl+"&document_srl="+d.getAttribute("document_srl"),"addContent"):popopen(request_uri+"?module=widget&act=dispWidgetGenerateCodeInPage&selected_widget="+e+"&widgetstyle="+f,"GenerateCodeInPage"))}if(c.hasClass("widgetStyle")){var d=b.parentNode.parentNode,e=d.getAttribute("widget"),f=d.getAttribute("widgetstyle");if(!e)return;return selectedWidget=d,void popopen(request_uri+"?module=widget&act=dispWidgetStyleGenerateCodeInPage&selected_widget="+e+"&widgetstyle="+f,"GenerateCodeInPage")}if(c.hasClass("widgetCopy")&&jQuery(b.parentNode.parentNode).hasClass("widgetOutput")){var d=b.parentNode.parentNode;if(restoreWidgetButtons(),"widgetContent"==d.getAttribute("widget")&&d.getAttribute("document_srl")){var g=["error","message","document_srl"],h=[];return h.document_srl=d.getAttribute("document_srl"),void exec_xml("widget","procWidgetCopyDocument",h,completeCopyWidgetContent,g,h,d)}var i=xCreateElement("DIV");xInnerHtml(i,xInnerHtml(d)),i.widget_sequence="",i.className="widgetOutput";for(var j=0;j0||(doHideWidgetSizeSetup(),c.hasClass("widgetSetup")||c.hasClass("widgetStyle")||c.hasClass("widgetCopy")||c.hasClass("widgetBoxCopy")||c.hasClass("widgetSize")||c.hasClass("widgetBoxSize")||c.hasClass("widgetRemove")||c.hasClass("widgetBoxRemove"))))for(p_obj=b;p_obj;){var d=jQuery(p_obj);if(d.hasClass("widgetOutput")||d.hasClass("widgetResize")||d.hasClass("widgetResizeLeft")||d.hasClass("widgetBoxResize")||d.hasClass("widgetBoxResizeLeft"))return widgetDragEnable(p_obj,widgetDragStart,widgetDrag,widgetDragEnd),void widgetMouseDown(a);p_obj=p_obj.parentNode}}}function _getInt(a){return a&&"null"!=a?isNaN(parseInt(a,10))?0:parseInt(a,10):0}function doShowWidgetSizeSetup(a,b,c){var d=jQuery("#pageSizeLayer"),e=d.find(">form:first"),f=jQuery(c);if(e.length){selectedSizeWidget=c;var g=jQuery(selectedSizeWidget),h={widget_align:f.css("float"),css_class:g.attr("css_class")?g.attr("css_class"):"",width:f[0].style.width,height:f[0].style.height,padding_left:_getInt(f.attr("widget_padding_left")),padding_right:_getInt(f.attr("widget_padding_right")),padding_top:_getInt(f.attr("widget_padding_top")),padding_bottom:_getInt(f.attr("widget_padding_bottom")),margin_left:_getInt(f.css("marginLeft")),margin_right:_getInt(f.css("marginRight")),margin_top:_getInt(f.css("marginTop")),margin_bottom:_getInt(f.css("marginBottom")),border_top_color:transRGB2Hex(f.css("borderTopColor")),border_top_thick:f.css("borderTopWidth").replace(/px$/i,""),border_top_type:f.css("borderTopStyle"),border_bottom_color:transRGB2Hex(f.css("borderBottomColor")),border_bottom_thick:f.css("borderBottomWidth").replace(/px$/i,""),border_bottom_type:f.css("borderBottomStyle"),border_right_color:transRGB2Hex(f.css("borderRightColor")),border_right_thick:f.css("borderRightWidth").replace(/px$/i,""),border_right_type:f.css("borderRightStyle"),border_left_color:transRGB2Hex(f.css("borderLeftColor")),border_left_thick:f.css("borderLeftWidth").replace(/px$/i,""),border_left_type:f.css("borderLeftStyle"),background_color:transRGB2Hex(f.css("backgroundColor")),background_image_url:f.css("backgroundImage").replace(/^url\(/i,"").replace(/\)$/i,""),background_x:0,background_y:0,background_repeat:f.css("backgroundRepeat")},i=f.css("backgroundPosition");i&&(i=i.split(" "),2==i.length&&(h.background_x=i[0],h.background_y=i[1])),d.show(),jQuery(function(a){var b=a("#pageSizeLayer"),c=a(".x_modal-backdrop"),d=a(window).width(),e=a(window).height(),f=b.width(),g=b.height();d>f&&e>g?(c.show(),b.css({position:"fixed",top:e/2-g/2+"px",left:d/2-f/2+"px",width:"700px"})):(c.hide(),b.css({position:"static",top:"auto",left:"auto",width:"auto"}))}),jQuery.each(h,function(a,b){var c=e[0].elements[a];c&&(c.value=b,c.className.match(/\bcolor-indicator\b/)&&(c.style.background=c.value="#"+c.value)),"select"==c.tagName.toLowerCase()&&-1==c.selectedIndex&&(c.selectedIndex=0)});try{e[0].elements[0].focus()}catch(j){}}}function doHideWidgetSizeSetup(){jQuery("#pageSizeLayer, .x_modal-backdrop, .jPicker.Container").hide()}function _getSize(a){if(!a)return 0;var b="px";a.lastIndexOf("%")>=0&&(b="%");var c=parseInt(a,10);return 1>c?0:("%"==b&&c>100&&(c=100),""+c+b)}function _getBorderStyle(a,b,c){var d=a.value;d=d.replace(/^#/,""),d=d?"#"+d:"#FFFFFF";var e=b.value;e=e?parseInt(e,10)+"px":"0px";var f=c.options[c.selectedIndex].value;f||(f="solid");var g=d+" "+e+" "+f;return g}function _getBGColorStyle(a){var b=a.replace(/^#/,"");return b=b?"#"+b:"#FFFFFF"}function doApplyWidgetSize(a){if(selectedSizeWidget){1==a.widget_align.selectedIndex?setFloat(selectedSizeWidget,"right"):setFloat(selectedSizeWidget,"left");var b=jQuery(a),c=jQuery(selectedSizeWidget),d=b.find("#css_class").val();d&&c.attr("css_class",d);var e=_getSize(a.width.value);e&&(selectedSizeWidget.style.width=e);var f=_getSize(a.height.value);if(f&&"100%"!=f)selectedSizeWidget.style.height=f;else{selectedSizeWidget.style.height="";for(var g=xGetElementsByClassName("widgetBorder",selectedSizeWidget),h=0;h0||jQuery(b).is(".buttonBox")||jQuery(b).parents(".buttonBox").size()>0)){var c=jQuery(b).parents(".widgetOutput");if(0===c.size())return void restoreWidgetButtons();b=c.get(0);var d=c.attr("widget");if(d)if("widgetBox"==d)restoreWidgetButtons(),showWidgetButton("widgetBoxButton",b);else{restoreWidgetButtons(),showWidgetButton("widgetButton",b);var e=b.parentNode;if(e)for(;e;){if("DIV"==e.nodeName&&"widgetBox"==e.getAttribute("widget")){showWidgetButton("widgetBoxButton",e);break}e=e.parentNode}}}}function widgetCreateTmpObject(a){var b=a.getAttribute("id");return tmpObj=xCreateElement("DIV"),tmpObj.id=b+"_tmp",tmpObj.className=a.className,tmpObj.style.overflow="hidden",tmpObj.style.margin="0px",tmpObj.style.padding="0px",tmpObj.style.width=a.style.width,tmpObj.style.display="none",tmpObj.style.position="absolute",tmpObj.style.opacity=1,tmpObj.style.filter="alpha(opacity=100)",xLeft(tmpObj,xPageX(a)),xTop(tmpObj,xPageY(a)),document.body.appendChild(tmpObj),widgetTmpObject[a.id]=tmpObj,tmpObj}function widgetGetTmpObject(a){a.id||(a.id="widget_"+idStep++);var b=widgetTmpObject[a.id];return b||(b=widgetCreateTmpObject(a)),b}function widgetDragEnable(a,b,c,d){a.draggable=!0,a.dragStart=b,a.drag=c,a.dragEnd=d,widgetDragManager.isDrag||(widgetDragManager.isDrag=!0,jQuery(document).on("mousemove",widgetDragMouseMove))}function widgetDragStart(a){var b=jQuery(a);if(!(b.hasClass("widgetResize")||b.hasClass("widgetResizeLeft")||b.hasClass("widgetBoxResize")||b.hasClass("widgetBoxResizeLeft"))){var c=widgetGetTmpObject(a);xInnerHtml(c,xInnerHtml(a)),xLeft(c,xPageX(a)),xTop(c,xPageY(a)),xWidth(c,xWidth(a)),xHeight(c,xHeight(a)),xDisplay(c,"block")}}function widgetDrag(a,b,c){var d=jQuery(a),e=40,f=10,g=xPageX(a.parentNode),h=xPageY(a.parentNode),i=a.xDPX,j=a.xDPY,k=xWidth(zonePageObj),l=xPageX(zonePageObj),m=l+k,n=xWidth(a.parentNode),o=getFloat(a.parentNode);if(o||(o="left"),d.hasClass("widgetResize")||d.hasClass("widgetBoxResize")){g+e>i&&(i=g+e),i>m&&(i=m),"right"==o&&(i=g+n);var p=i-g;e>p&&(p=e);var q=j-h;f>q&&(q=f),g+p>m&&(p=m-g),xWidth(a.parentNode,p),xHeight(a.parentNode,q)}else if(d.hasClass("widgetResizeLeft")||d.hasClass("widgetBoxResizeLeft")){l>i&&(i=l),"left"==o&&(i=g);var p=n+(g-i);e>p&&(p=e);var q=j-h;f>q&&(q=f),xWidth(a.parentNode,p),xHeight(a.parentNode,q)}else{var r=widgetGetTmpObject(a);if(xLeft(r,parseInt(xPageX(r),10)+parseInt(b,10)),xTop(r,parseInt(xPageY(r),10)+parseInt(c,10)),a.parentNode!=zonePageObj){for(var s=xGetElementsByClassName("widgetOutput",a.parentNode),t=0;t=v&&a.xDPX<=x&&a.xDPY>=w&&a.xDPY<=y&&a.parentNode==u.parentNode){var z=u.nextSibling;z||(z=xCreateElement("DIV"),u.parentNode.appendChild(z));var A=a.nextSibling;return A||(A=xCreateElement("DIV"),a.parentNode.appendChild(A)),z&&z.parentNode.insertBefore(a,z),A&&A.parentNode.insertBefore(u,A),void(s=null)}}s=null;var B=jQuery(a).parents("div.nullWidget").get(0),v=xPageX(B),w=xPageY(B),x=parseInt(v,10)+parseInt(xWidth(B),10),y=parseInt(w,10)+parseInt(xHeight(B),10);if(a.xDPXx||a.xDPYy)return void zonePageObj.insertBefore(a,jQuery(a).parents("div.widgetOutput[widget=widgetBox]").get(0))}else{if("widgetBox"!=a.getAttribute("widget")){for(var C=xGetElementsByClassName("nullWidget",zonePageObj),t=0;t=v&&a.xDPX<=x&&a.xDPY>=w&&a.xDPY<=y&&D.hasClass("nullWidget")){var E=jQuery("div.widget_inner",D);return 0===E.size()?u.appendChild(a):E.get(0).appendChild(a),widgetManualEnd(),void(C=null)}}C=null}for(var s=xGetElementsByClassName("widgetOutput",zonePageObj),t=0;t=v&&a.xDPX<=x&&a.xDPY>=w&&a.xDPY<=y&&a.parentNode==u.parentNode){var z=u.nextSibling;z||(z=u.parentNode.lastChild),z||(z=xCreateElement("DIV"),u.parentNode.appendChild(z));var A=a.nextSibling;return A||(A=xCreateElement("DIV"),a.parentNode.appendChild(A)),z&&z.parentNode.insertBefore(a,z),A&&A.parentNode.insertBefore(u,A),void(s=null)}}}s=null}}}function widgetDragEnd(a){var b=widgetGetTmpObject(a);widgetDisapear=widgetDisapearObject(b,a),widgetDragDisable(a.getAttribute("id"))}function widgetDisapearObject(a,b){xInnerHtml(b,xInnerHtml(a)),xInnerHtml(a,""),jQuery(a).hide(),a.parentNode.removeChild(a),widgetTmpObject[b.id]=null}function widgetMouseDown(a){for(var b=a.target;b&&!b.draggable;)b=xParent(b,!0);b&&(a.preventDefault(),b.xDPX=a.pageX,b.xDPY=a.pageY,widgetDragManager.obj=b,jQuery(document).on("mouseup",widgetMouseUp),b.dragStart&&b.dragStart(b,a.pageX,a.pageY))}function widgetMouseUp(a){widgetDragManager.obj&&(a.preventDefault(),jQuery(document).off("mouseup",widgetMouseUp),widgetDragManager.obj.dragEnd&&widgetDragManager.obj.dragEnd(widgetDragManager.obj,a.pageX,a.pageY),widgetDragManager.obj=null,widgetDragManager.isDrag=!1)}function widgetDragMouseMove(a){if(widgetDragManager.obj){a.preventDefault();var b=widgetDragManager.obj,c=a.pageX-b.xDPX,d=a.pageY-b.xDPY;b.xDPX=a.pageX,b.xDPY=a.pageY,b.drag?b.drag(b,c,d):xMoveTo(b,xLeft(b)+c,xTop(b)+d)}}function widgetDragDisable(a){if(widgetDragManager){var b=get_by_id(a);b.draggable=!1,b.dragStart=null,b.drag=null,b.dragEnd=null,jQuery(b).off("mousedown",widgetMouseDown)}}function widgetManualEnd(){var a=widgetDragManager.obj;if(a){jQuery(document).off("mouseup",widgetMouseUp),jQuery(document).on("mousemove",widgetDragMouseMove);var b=widgetGetTmpObject(a);widgetDisapear=widgetDisapearObject(b,a),widgetDragDisable(a.getAttribute("id")),widgetDragManager.obj=null,widgetDragManager.isDrag=!1}}var zonePageObj=null,zoneModuleSrl=0,selectedWidget=null,writedText=null,checkDocumentWrite=!1;window.document.write=window.document.writeln=function(a){if(checkDocumentWrite)return void(writedText=a);if(!a.match(/^<\//)){window.opera||(a=a.replace(/&(?![#a-z0-9]+;)/g,"&")),a=a.replace(/(<[a-z]+)/g,"$1 xmlns='http://www.w3.org/1999/xhtml'");var b,c=jQuery("
    ").html(a)[0];b=document.getElementsByTagName("*"),b=b[b.length-1];for(var d=c.childNodes;d.length;)b.parentNode.appendChild(d[0])}};var selectedSizeWidget=null;jQuery(function(a){a(document).keydown(function(b){var c=a(".jPicker.Container:visible");return 27!=b.which||c.length?27==b.which&&c.length?(c.hide(),!1):!0:(doHideWidgetSizeSetup(),!1)})});var hideElements=[],widgetDragManager={obj:null,isDrag:!1},widgetTmpObject=[],widgetDisappear=0,idStep=0; \ No newline at end of file From 41558822d8ab6f0188f9582f32923f06cd26cb21 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 4 Apr 2014 17:58:08 +0900 Subject: [PATCH 248/549] =?UTF-8?q?fix=20#622=20XE=20=EB=B2=84=EC=A0=84?= =?UTF-8?q?=EC=97=90=20=EB=8C=80=ED=95=9C=20alpha,=20beta,=20rc=20?= =?UTF-8?q?=EC=83=81=ED=83=9C=EB=A5=BC=20=EB=8B=B4=EC=9D=80=20=EC=83=81?= =?UTF-8?q?=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/config.inc.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config/config.inc.php b/config/config.inc.php index 51f01d8633..bc8c1b97ec 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -30,6 +30,10 @@ * Display XE's full version. */ define('__XE_VERSION__', '1.7.5-beta1'); +define('__XE_VERSION_ALPHA__', (stripos(__XE_VERSION__, 'alpha') !== false)); +define('__XE_VERSION_BETA__', (stripos(__XE_VERSION__, 'beta') !== false)); +define('__XE_VERSION_RC__', (stripos(__XE_VERSION__, 'rc') !== false)); +define('__XE_VERSION_STABLE__', (!__XE_VERSION_ALPHA__ && !__XE_VERSION_BETA__ && !__XE_VERSION_RC__)); /** * @deprecated __ZBXE_VERSION__ will be removed. Use __XE_VERSION__ instead. From 3f38f32f99682654435d4e3d9010fe379a4b46dc Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 4 Apr 2014 18:26:20 +0900 Subject: [PATCH 249/549] =?UTF-8?q?fix=20#623=20stable=20=EB=B2=84?= =?UTF-8?q?=EC=A0=84=EC=9D=B4=20=EC=95=84=EB=8B=88=EB=A9=B4=20.min=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EB=8C=80=EC=8B=A0=20=EC=9B=90=EB=B3=B8?= =?UTF-8?q?=EC=9D=84=20load=20=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/display/HTMLDisplayHandler.php | 6 +++--- classes/frontendfile/FrontEndFileHandler.class.php | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/classes/display/HTMLDisplayHandler.php b/classes/display/HTMLDisplayHandler.php index cc1a5de968..2026fe4bc9 100644 --- a/classes/display/HTMLDisplayHandler.php +++ b/classes/display/HTMLDisplayHandler.php @@ -394,7 +394,7 @@ function _loadJSCSS() $lang_type = Context::getLangType(); // add common JS/CSS files - if(__DEBUG__) + if(__DEBUG__ || !_XE_VERSION_STABLE__) { $oContext->loadFile(array('./common/js/jquery-1.x.js', 'head', 'lt IE 9', -111000), true); $oContext->loadFile(array('./common/js/jquery.js', 'head', 'gte IE 9', -110000), true); @@ -417,7 +417,7 @@ function _loadJSCSS() // for admin page, add admin css if(Context::get('module') == 'admin' || strpos(Context::get('act'), 'Admin') > 0) { - if(__DEBUG__) + if(__DEBUG__ || !_XE_VERSION_STABLE__) { $oContext->loadFile(array('./modules/admin/tpl/css/admin.css', '', '', 10), true); $oContext->loadFile(array("./modules/admin/tpl/css/admin_{$lang_type}.css", '', '', 10), true); @@ -449,7 +449,7 @@ private function _loadMobileJSCSS() $lang_type = Context::getLangType(); // add common JS/CSS files - if(__DEBUG__) + if(__DEBUG__ || !_XE_VERSION_STABLE__) { $oContext->loadFile(array('./common/css/mobile.css', '', '', -1000000), true); } diff --git a/classes/frontendfile/FrontEndFileHandler.class.php b/classes/frontendfile/FrontEndFileHandler.class.php index fa453089a6..78a57d1454 100644 --- a/classes/frontendfile/FrontEndFileHandler.class.php +++ b/classes/frontendfile/FrontEndFileHandler.class.php @@ -160,7 +160,7 @@ private function getFileInfo($fileName, $targetIe = '', $media = 'all') if(strpos($file->filePath, '://') === FALSE) { - if(!__DEBUG__) + if(!__DEBUG__ && _XE_VERSION_STABLE__) { // if no debug mode, load minifed file $minifiedFileName = implode('.', array($file->fileNameNoExt, 'min', $file->fileExtension)); From a5f082e081109c4b51a4b88ce2b3be6b75ca2785 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 4 Apr 2014 19:09:40 +0900 Subject: [PATCH 250/549] =?UTF-8?q?fix=20#623=20=EC=98=A4=ED=83=80=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/display/HTMLDisplayHandler.php | 6 +++--- classes/frontendfile/FrontEndFileHandler.class.php | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/classes/display/HTMLDisplayHandler.php b/classes/display/HTMLDisplayHandler.php index 2026fe4bc9..809c74d130 100644 --- a/classes/display/HTMLDisplayHandler.php +++ b/classes/display/HTMLDisplayHandler.php @@ -394,7 +394,7 @@ function _loadJSCSS() $lang_type = Context::getLangType(); // add common JS/CSS files - if(__DEBUG__ || !_XE_VERSION_STABLE__) + if(__DEBUG__ || !__XE_VERSION_STABLE__) { $oContext->loadFile(array('./common/js/jquery-1.x.js', 'head', 'lt IE 9', -111000), true); $oContext->loadFile(array('./common/js/jquery.js', 'head', 'gte IE 9', -110000), true); @@ -417,7 +417,7 @@ function _loadJSCSS() // for admin page, add admin css if(Context::get('module') == 'admin' || strpos(Context::get('act'), 'Admin') > 0) { - if(__DEBUG__ || !_XE_VERSION_STABLE__) + if(__DEBUG__ || !__XE_VERSION_STABLE__) { $oContext->loadFile(array('./modules/admin/tpl/css/admin.css', '', '', 10), true); $oContext->loadFile(array("./modules/admin/tpl/css/admin_{$lang_type}.css", '', '', 10), true); @@ -449,7 +449,7 @@ private function _loadMobileJSCSS() $lang_type = Context::getLangType(); // add common JS/CSS files - if(__DEBUG__ || !_XE_VERSION_STABLE__) + if(__DEBUG__ || !__XE_VERSION_STABLE__) { $oContext->loadFile(array('./common/css/mobile.css', '', '', -1000000), true); } diff --git a/classes/frontendfile/FrontEndFileHandler.class.php b/classes/frontendfile/FrontEndFileHandler.class.php index 78a57d1454..c7d164dcdb 100644 --- a/classes/frontendfile/FrontEndFileHandler.class.php +++ b/classes/frontendfile/FrontEndFileHandler.class.php @@ -160,7 +160,7 @@ private function getFileInfo($fileName, $targetIe = '', $media = 'all') if(strpos($file->filePath, '://') === FALSE) { - if(!__DEBUG__ && _XE_VERSION_STABLE__) + if(!__DEBUG__ && __XE_VERSION_STABLE__) { // if no debug mode, load minifed file $minifiedFileName = implode('.', array($file->fileNameNoExt, 'min', $file->fileExtension)); From 37f57f2eca1105b69a8a969e05099176b37a32a5 Mon Sep 17 00:00:00 2001 From: "Jin Hu, Baek" Date: Mon, 7 Apr 2014 22:08:34 +0900 Subject: [PATCH 251/549] remove mncast profile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 엠앤캐스트 서비스가 종료된지 어연 5년이 지났고, 현재 엠앤캐스트 사이트 자체가 불법 스미싱 사이트로 바뀌어있는 지금, 해당 embed 패턴을 통한 공격이 들어올수 있다 판단되어 삭제. --- classes/security/conf/embedWhiteUrl.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/classes/security/conf/embedWhiteUrl.xml b/classes/security/conf/embedWhiteUrl.xml index 9c4e2733f6..00d1942c5b 100644 --- a/classes/security/conf/embedWhiteUrl.xml +++ b/classes/security/conf/embedWhiteUrl.xml @@ -15,10 +15,6 @@ http://api.v.daum.net/ http://tvpot.daum.net/playlist/playlist.swf - - http://dory.mncast.com/mncHMovie.swf - http://dory.mncast.com/mncastPlayer.swf - http://www.youtube.com/v/ http://www.youtube-nocookie.com/ From 996e03bc284020ca8747c1c54429c46336480af0 Mon Sep 17 00:00:00 2001 From: "Jin Hu, Baek" Date: Tue, 8 Apr 2014 03:18:38 +0900 Subject: [PATCH 252/549] remove spaces in checkbox, radio, select types inputbox remove spaces in checkbox, radio, select types inputbox. and code optimizing --- classes/extravar/Extravar.class.php | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/classes/extravar/Extravar.class.php b/classes/extravar/Extravar.class.php index e56cc1517f..df235ca97d 100644 --- a/classes/extravar/Extravar.class.php +++ b/classes/extravar/Extravar.class.php @@ -249,7 +249,7 @@ function _getTypeValue($type, $value) for($i = 0, $c = count($values); $i < $c; $i++) { - $values[$i] = htmlspecialchars($values[$i], ENT_COMPAT | ENT_HTML401, 'UTF-8', false); + $values[$i] = trim(htmlspecialchars($values[$i], ENT_COMPAT | ENT_HTML401, 'UTF-8', false)); } return $values; @@ -306,21 +306,15 @@ function getValueHTML() case 'textarea' : return nl2br($value); - case 'checkbox' : - if(is_array($value)) - { - return implode(', ', $value); - } - return $value; - case 'date' : return zdate($value, "Y-m-d"); + case 'checkbox' : case 'select' : case 'radio' : if(is_array($value)) { - return implode(', ', $value); + return implode(',', $value); } return $value; From 239b07232dce0b6d43c5bb39a74d36d3695c7b15 Mon Sep 17 00:00:00 2001 From: "Jin Hu, Baek" Date: Tue, 8 Apr 2014 03:34:56 +0900 Subject: [PATCH 253/549] =?UTF-8?q?date=EB=B0=A9=EC=8B=9D=EC=9D=98=20?= =?UTF-8?q?=EC=9E=85=EB=A0=A5=ED=8F=BC=20=EC=95=88=EC=9D=98=20button?= =?UTF-8?q?=EC=9D=98=20class=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit XE 공용 버튼 스타일링 추가 --- classes/extravar/Extravar.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/classes/extravar/Extravar.class.php b/classes/extravar/Extravar.class.php index df235ca97d..bfa3da3830 100644 --- a/classes/extravar/Extravar.class.php +++ b/classes/extravar/Extravar.class.php @@ -424,7 +424,8 @@ function getFormHTML() Context::loadJavascriptPlugin('ui.datepicker'); $buff[] = ''; - $buff[] = ' '; + $buff[] = '' + $buff[] = ''; $buff[] = ' From 0f72f508e596ef39f8b9b40b7024cb052b63ffce Mon Sep 17 00:00:00 2001 From: Lansi Date: Tue, 6 May 2014 18:01:59 +0900 Subject: [PATCH 295/549] =?UTF-8?q?=EB=AA=A8=EB=93=88=EB=B6=84=EB=A5=98?= =?UTF-8?q?=EB=A5=BC=20'=EC=97=86=EC=9D=8C'=20=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=ED=95=B4=EC=84=9C=20=EA=B2=80=EC=83=89=ED=95=98=EB=A9=B4=20?= =?UTF-8?q?=EA=B2=80=EC=83=89=EC=9D=B4=20=EB=B6=88=EA=B0=80=EB=8A=A5?= =?UTF-8?q?=ED=95=9C=20=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/board/queries/getBoardList.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/board/queries/getBoardList.xml b/modules/board/queries/getBoardList.xml index 06c84bf31b..2a5cf69514 100644 --- a/modules/board/queries/getBoardList.xml +++ b/modules/board/queries/getBoardList.xml @@ -11,8 +11,8 @@ - + From 6d574552bac7bf90563812dccffb8645c2deb99e Mon Sep 17 00:00:00 2001 From: Lansi Date: Wed, 7 May 2014 16:56:42 +0900 Subject: [PATCH 296/549] =?UTF-8?q?selected=20=EB=90=A0=20=EC=88=98=20?= =?UTF-8?q?=EC=9E=88=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/board/tpl/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/board/tpl/index.html b/modules/board/tpl/index.html index bd403546d0..7fb15954a3 100644 --- a/modules/board/tpl/index.html +++ b/modules/board/tpl/index.html @@ -91,7 +91,7 @@ ');c.after(e).after(" ").after(f).hide(),e.xeModuleSearch(),e.bind("moduleSelect",function(a,b){f.val(b[0].browser_title+" ("+b[0].mid+")"),c.val(b[0].module_srl)}),c.val()&&a.exec_json("module.getModuleAdminModuleInfo",{search_module_srl:c.val()},function(a){a&&a.module_info&&f.val(a.module_info.browser_title+" ("+a.module_info.mid+")")})}),this}}),jQuery(function(a){var b=a.fn.hide;a.fn.hide=function(c,d,e,f){a(this).trigger("hide",[f]),a(this).find(".active").removeClass("active");var g=a(this).attr("id");return a(this).hasClass("col")&&(a(this).next().hide(c,d,e,f),g&&a(this).parent().find('a[href="#'+g+'"]').parent("li.active").removeClass("active")),b.apply(this,arguments)};var c=a.fn.show;a.fn.show=function(b,d,e,f){if(a(this).trigger("show",[f]),a(this).hasClass("col")){a(this).next().hide(b,d,e,f);var g=a(this).parent();setTimeout(function(){g.scrollTo(g.width(),0,{duration:0})},0)}var h=c.apply(this,arguments),i=a(this);return setTimeout(function(){i.trigger("after-show",[f])},0),h}}),jQuery(function(a){a.xeMsgBox={htOptions:{}};var b=a.xeMsgBox.$msgBox=a("
    ").addClass("x_modal _common x").hide().css("z-index",9999);b.html('

    "),a("body").append(b),b.find("._ok").click(function(){a.xeMsgBox.fnOnOK()}),b.find("._cancel").click(function(){a.xeMsgBox.fnOnCancel()}),b.bind("show",function(){a.xeMsgBox.bVisible=!0,a.xeMsgBox._showFoggy(),a.xeMsgBox.fnOnShow(),b.find("input,button").length>0&&setTimeout(function(){b.find("input,button").each(function(b,c){var d=a(c);return d.is(":visible")?(d.focus(),!1):void 0})},0)}),b.bind("hide",function(){a.xeMsgBox.bVisible=!1,a.xeMsgBox._hideFoggy(),a.xeMsgBox.fnOnHide()}),a(document.body).on("keydown",function(c){a.xeMsgBox.bVisible&&27===c.keyCode&&(b.find("._cancel").click(),c.preventDefault())}),a.xeMsgBox.fnOnOK=function(){"function"==typeof a.xeMsgBox.htOptions.fnOnOK&&a.xeMsgBox.htOptions.fnOnOK()||b.hide()},a.xeMsgBox.fnOnCancel=function(){"function"==typeof a.xeMsgBox.htOptions.fnOnCancel&&a.xeMsgBox.htOptions.fnOnCancel(),b.hide()},a.xeMsgBox.fnOnShow=function(){"function"==typeof a.xeMsgBox.htOptions.fnOnShow&&a.xeMsgBox.htOptions.fnOnShow()},a.xeMsgBox.fnOnHide=function(){"function"==typeof a.xeMsgBox.htOptions.fnOnHide&&a.xeMsgBox.htOptions.fnOnHide()},a.xeMsgBox.showMsgBox=function(c){a('head>link[rel="stylesheet"]:last').after(''),c=a.xeMsgBox.htOptions=c||{};var d=c.sTitle||"",e=c.sText||"",f=c.bDanger||!1;b.find("._title").html(d),b.find("._text").html(e),""===e?b.addClass("_nobody"):b.removeClass("_nobody");var g=b.find("._ok");f?(g.removeClass("x_btn-inverse"),g.addClass("x_btn-danger")):(g.removeClass("x_btn-danger"),g.addClass("x_btn-inverse")),c.bSmall?b.addClass("_small"):b.removeClass("_small"),c.bAlert?b.addClass("_type_alert"):b.removeClass("_type_alert"),b.show()},a.xeMsgBox.alertDialog=function(a){a=a||{},a.bAlert=!0,this.showMsgBox(a)},a.xeMsgBox.alert=function(a){htOptions={bAlert:!0,bNobody:!0,bSmall:!0,sText:a},this.showMsgBox(htOptions)},a.xeMsgBox.confirmDialog=function(a){a=a||{},a.bAlert=!1,this.showMsgBox(a)};var c=a.xeMsgBox.$foggyLayer=a("
    ");c.css({position:"fixed",top:0,left:0,backgroundColor:"#000",opacity:.5,display:"none",zIndex:9998}),a(a.find("body")).append(c),a.xeMsgBox._resizeFoggy=function(){c.css({width:0,height:0}),setTimeout(function(){c.css({width:a(document).width(),height:a(document).height()})},0)},a(window).resize(a.xeMsgBox._resizeFoggy),a.xeMsgBox._resizeFoggy(),a.xeMsgBox._showFoggy=function(){c.show()},a.xeMsgBox._hideFoggy=function(){c.hide()}}),jQuery(function(a){a.xeFoggy={};var b=a.xeFoggy.$foggyLayer=a("
    ");b.css({position:"fixed",top:0,left:0,backgroundColor:"#000",opacity:.5,display:"none",zIndex:9998}),a("body").append(b),a.xeFoggy._resizeFoggy=function(){b.css({width:0,height:0}),setTimeout(function(){b.css({width:a(document).width(),height:a(document).height()})},0)},a(window).resize(a.xeFoggy._resizeFoggy),a.xeFoggy._resizeFoggy(),a.xeFoggy.show=function(a){b.css(a?{opacity:0}:{opacity:.5}),b.show()},a.xeFoggy.hide=function(){b.hide()}}),jQuery(function(a){var b=!1,c=a('
    ');a.fn.xeSortableTable=function(){return this.not(".xe-sortable-table").addClass("xe-sortable-table").delegate("button.dragBtn","mousedown.st",function(d){var e,f,g,h,i,j,k,l,m,n,o,p;if(1==d.which){if(e=a(this),f=e.closest("tr"),g=e.closest("table"),p=g.get(0).offsetParent,i=f.height(),j=f.width(),before_event=a.Event("before-drag.st"),g.trigger(before_event),before_event.isDefaultPrevented())return!1;l={x:d.pageX,y:d.pageY},k=getOffset(f.get(0),p),$clone=f.attr("target",!0).clone(!0).appendTo(g),o=(h=g.find("thead th")).length,h.filter("[colspan]").attr("colspan",function(a,b){o+=b-1}),c.find("td").attr("colspan",o),m=[],g.find("tbody>tr:not([target],.sticky,:hidden)").each(function(){var b,c=a(this);b=getOffset(this,p),m.push({top:b.top,bottom:b.top+c.height(),$item:c})}),$clone.addClass("draggable").css({position:"absolute",opacity:.6,width:j,height:i,left:k.left,top:k.top,zIndex:100}),c.css({position:"absolute",opacity:.6,width:j,height:"10px",left:k.left,top:k.top,backgroundColor:"#bbb",overflow:"hidden",zIndex:99}).appendTo(g),f.css("opacity",.6),a(document).unbind("mousedown.st mouseup.st").bind("mousemove.st",function(a){var b,d,e,f,g;for(n=null,b={x:l.x-a.pageX,y:l.y-a.pageY},d=k.top-b.y,e=0,f=m.length;f>e;e++)g=m[e],e&&g.top>d||f-1>e&&g.bottomd-12?(n.state="before",c.css("top",g.top-5)):(n.state="after",c.css("top",g.bottom-5)));$clone.css({top:d})}).bind("mouseup.st",function(){var d;b=!1,a(document).unbind("mousemove.st mouseup.st"),f.removeAttr("target").css("opacity",""),$clone.remove(),c.remove(),n&&(d=a(n.element),d[n.state](f),g.trigger("after-drag.st"))})}}),this},a("table.sortable").xeSortableTable()}),jQuery(function(a){a(".filebox").bind("before-open.mw",function(){function b(e){d.html(e.html),d.find(".select").bind("click",function(){var b=a("input.select_checkbox:checked");if(0===b.length){var d=a(this).closest("tr").find("img.filebox_item").attr("src");d?(c.trigger("filebox.selected",[d]),c.trigger("close.mw")):alert("None selected!")}else c.trigger("filebox.selected",[b]),c.trigger("close.mw");return!1}),d.find(".x_pagination").find("a").filter(function(){return a(this).data("toggle")?!1:a(this).parent().hasClass("x_disabled")?!1:a(this).parent().hasClass("x_active")?!1:!0}).bind("click",function(){var c=a(this).attr("page");return a.exec_json("module.getFileBoxListHtml",{page:c},b),!1}),a("#goToFileBox").find("button").bind("click",function(){var c=a(this).prev("input").val();return a.exec_json("module.getFileBoxListHtml",{page:c},b),!1}),d.closest(".x_modal-body").scrollTop(0)}var c,d,e;c=a(this),e=c.attr("href"),d=a(e).find(".filebox_list"),a.exec_json("module.getFileBoxListHtml",{page:"1"},b)});var b=a(".x .dsTg .__simple"),c=a(".x .dsTg .__detail"),d=a(".x .dsTg td.title");d.each(function(){var b=a(this);0===b.find("p.x_alert").length&&b.addClass("tg").find(">*:not(:first-child)").hide()});var e=a(".x .dsTg td.tg>*:not(:first-child)");b.click(function(){e.hide(),c.removeClass("x_active"),b.addClass("x_active")}),c.click(function(){e.show(),c.addClass("x_active"),b.removeClass("x_active")})}),jQuery(function(a){a.fn.xeMultilingualWindow=function(b){function c(){return o.is(":visible")&&q&&confirm(xe.msg_confirm_save_and_use_multilingual)&&o.find(".save-useit").trigger("click"),!0}function d(){if(p.is(":visible")&&p.find(".editMode").length){var a=p.find(".editMode");confirm(xe.msg_confirm_save_and_use_multilingual)?a.find(".save").trigger("click"):a.find(".cancel").trigger("click")}return!0}function e(){return p.find(".item > fieldset").hide().prev("a").children("i").removeClass("x_icon-chevrom-up").addClass("x_icon-chevron-down"),n.find('[href="#lang_create"]').trigger("click"),o.find(".editMode").children("textarea").val(""),q=!1,!0}function f(a){a?(i(1,xe.current_lang,"",a,!1),n.find('[href="#lang_search"]').trigger("click",!0)):i(1,xe.current_lang,"","",!1)}function g(){return c()?d()?e()?void 0:!1:!1:!1}function h(a,b){var c=n.data("lang-target");q=!1,c&&c.trigger("selected.g11n",[a,b])}function i(c,d,e,f,g){"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=xe.current_lang),"undefined"==typeof e&&(e=""),"undefined"==typeof f&&(f=""),"undefined"==typeof g&&(g=!0),a.exec_json("module.getModuleAdminLangListHtml",{page:c,lang_code:d,search_keyword:e,name:f,list_count:b.list_count,mid:current_url.getQuery("mid")},function(b){b&&b.html&&(p.html(b.html),j(),k(),l(),m(),g&&(document.location.href="#lang_search"),f&&a("#lang_search").find('[href^="#lang-"]').trigger("click"))})}function j(){p.find(".x_pagination a").click(function(){var b=a(this).data("page"),c=a(this).data("search_keyword"),d=a(this).data("current_lang");return b?(i(b,d,c),!1):void 0}),p.find(".x_pagination").submit(function(){var b=a(this).find('[name="page"]').val(),c=a(this).data("search_keyword"),d=a(this).data("current_lang");return b?(i(b,d,c),!1):!1})}function k(){p.find(".search").submit(function(){var b=a(this).find('[name="search_keyword"]').val(),c=a(this).find('[name="lang_code"]').val();return i(1,c,b),!1}),p.find("#search_cancel").click(function(){i(1,xe.current_lang,"")})}function l(){p.find(".set").append('').click(function(){function b(b){var d=c.next("fieldset").find("textarea");d.each(function(){var c=a(this),d=b.langs[c.data("lang")],e=/^\$user_lang->/;e.test(d)?c.val("").data("value",""):c.val(d).data("value",d)}),c.data("is_loaded",!0)}var c=a(this),e=c.data("lang_code");d();var f="x_icon-chevron-up",g="x_icon-chevron-down";c.next("fieldset").is(":visible")?c.children("i").removeClass(f).addClass(g):(c.parent(".item").siblings(".item").find("a > i").removeClass(f).addClass(g).end().children("fieldset").hide(),c.children("i").removeClass(g).addClass(f)),"undefined"==typeof c.data("is_loaded")&&a.exec_json("module.getModuleAdminLangCode",{name:e,mid:current_url.getQuery("mid")},b)})}function m(){b.view_use||p.find(".useit").hide(),b.view_modify||p.find(".modify").hide(),b.view_delete||p.find(".delete").hide(),"save"==b.modify_type&&p.find(".save").text(xe.cmd_save),p.find(".modify").click(function(){a(this).closest("fieldset").addClass("editMode").find("textarea").removeAttr("disabled"),a(this).siblings(".cancel").prependTo(a(this).parent()),a(this).siblings(".delete").attr("disabled","disabled")}),p.find(".cancel").click(function(){return a(this).closest("fieldset").removeClass("editMode").find("textarea").attr("disabled","disabled").each(function(){var b=a(this);b.val(b.data("value"))}),a(this).siblings(".modify").prependTo(a(this).parent()),a(this).siblings(".delete").removeAttr("disabled"),!1}),p.find(".delete").click(function(){if(confirm(xe.confirm_delete)){var b=a(this);lang_name=b.closest(".item").find('[href^="#lang-"]').data("lang_code"),a.exec_json("module.procModuleAdminDeleteLang",{name:lang_name,mid:current_url.getQuery("mid")},function(a){if(a){if(a.error)return void alert(a.message);var b=p.find(".x_pagination"),c=b.data("page"),d=b.data("search_keyword"),e=b.data("lang_code");c||($page=1),i(c,e,d)}})}}),p.find(".item").submit(function(){var b=a(this),c=b.find(".editMode").children("textarea"),d=b.find('[href^="#lang-"]'),e={},f=null;return c.each(function(){var b=a(this);e[b.attr("class")]=b.val(),b.data("tmp_value",b.val()),xe.current_lang==b.attr("class")&&(f=b.val())}),e.lang_name=d.data("lang_code"),e.mid=current_url.getQuery("mid"),a.exec_json("module.procModuleAdminInsertLang",e,function(e){e&&!e.error&&e.name&&(c.each(function(){var b=a(this);b.data("value",b.data("tmp_value"))}),d.children("span").html(f),p.find(".cancel").trigger("click"),b.find(".useit").trigger("click"))}),!1}),p.find(".useit").click(function(){var b=a(this),c=b.closest(".item").find('[href^="#lang-"]'),d=c.data("lang_code"),e=c.children("span").text();h(d,e)})}var n=a(this),o=n.find("#lang_create"),p=n.find("#lang_search"),q=!1;return b=a.extend({create_type:"save_and_use",modify_type:"save_and_use",view_use:!0,view_modify:!0,view_delete:!1,list_count:5},b||{}),"save_and_use"!=b.create_type&&o.find(".save-useit").text(xe.cmd_save),n.find(".x_tabbable").xeTabbable(),o.find(".editMode textarea").change(function(){q=!0}),o.submit(function(){function c(a){a&&!a.error&&a.name&&("save_and_use"==b.create_type?h(a.name,g):(alert(a.message),e()))}var d=a(this),f={},g=null;return d.find(".editMode").children("textarea").each(function(){var b=a(this);f[b.attr("class")]=b.val(),xe.current_lang==b.attr("class")&&(g=b.val())}),g?(f.mid=current_url.getQuery("mid"),a.exec_json("module.procModuleAdminInsertLang",f,c),!1):(alert(xe.msg_empty_multilingual),!1)}),n.find('[href="#lang_search"]').click(function(a,b){"undefined"==typeof b&&i()}),n.bind("reset.g11n",function(){e()}),n.bind("before-open.g11n",function(a,b){f(b)}),n.bind("before-close.g11n",function(){return g()}),this}});var is_loaded_multilingual_window_html=!1;jQuery(function(a){a.fn.xeLoadMultilingualWindowHtml=function(){function b(b){var c=a("#content");a(b.html).appendTo(c).xeMultilingualWindow(),a(".lang_code").trigger("loaded-multilingualWindow")}return a.exec_json("module.getModuleAdminMultilingualHtml",{mid:current_url.getQuery("mid")},b),this}});var multilingual_id_count=0;jQuery(function(a){a.fn.xeApplyMultilingualUI=function(){return a(this).each(function(){function b(){function b(){g.val(l.val()).width(g.data("width")).removeAttr("disabled").data("active",!1),g.parent(".g11n").removeClass("active")}function f(){function c(a){if(a&&a.langs){var b=g.width();g.closest(".g11n").addClass("active"),g.val(a.langs[xe.current_lang]).attr("disabled","disabled").width(b-44).data("active",!0)}}b();var d=/^\$user_lang->/;d.test(g.val())&&a.exec_json("module.getModuleAdminLangCode",{name:g.val().replace("$user_lang->",""),mid:current_url.getQuery("mid")},c)}var g,h=a("#g11n"),i=c.width();g="TEXTAREA"==d.tagName||"textarea"==c.data("type")?a(' From 50465586a721ec8c72d683b0a8d7ff3b5910b8f5 Mon Sep 17 00:00:00 2001 From: akasima Date: Mon, 12 May 2014 16:41:14 +0900 Subject: [PATCH 319/549] =?UTF-8?q?#589=20=ED=9A=8C=EC=9B=90=20=EC=83=81?= =?UTF-8?q?=ED=83=9C=20=EC=9D=BC=EA=B4=84=20=EB=B3=80=EA=B2=BD=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/member/member.admin.controller.php | 2 +- modules/member/tpl/member_list.html | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/member/member.admin.controller.php b/modules/member/member.admin.controller.php index 4b39da224b..d8e03ae49e 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -831,7 +831,6 @@ function procMemberAdminSelectedMemberManage() { $args->denied = $var->denied; $output = executeQuery('member.updateMemberDeniedInfo', $args); - $this->_clearMemberCache($args->member_srl); if(!$output->toBool()) { $oDB->rollback(); @@ -853,6 +852,7 @@ function procMemberAdminSelectedMemberManage() $this->setMessage('success_deleted'); } } + $oMemberController->_clearMemberCache($args->member_srl); } $message = $var->message; diff --git a/modules/member/tpl/member_list.html b/modules/member/tpl/member_list.html index 0e6e802e20..0806e57353 100644 --- a/modules/member/tpl/member_list.html +++ b/modules/member/tpl/member_list.html @@ -154,6 +154,11 @@

    {$lang->cmd_selected_user_manage}:

    {$lang->member_group}

    +
    ');a.fn.xeSortableTable=function(){return this.not(".xe-sortable-table").addClass("xe-sortable-table").delegate("button.dragBtn","mousedown.st",function(d){var e,f,g,h,i,j,k,l,m,n,o,p;if(1==d.which){if(e=a(this),f=e.closest("tr"),g=e.closest("table"),p=g.get(0).offsetParent,i=f.height(),j=f.width(),before_event=a.Event("before-drag.st"),g.trigger(before_event),before_event.isDefaultPrevented())return!1;l={x:d.pageX,y:d.pageY},k=getOffset(f.get(0),p),$clone=f.attr("target",!0).clone(!0).appendTo(g),o=(h=g.find("thead th")).length,h.filter("[colspan]").attr("colspan",function(a,b){o+=b-1}),c.find("td").attr("colspan",o),m=[],g.find("tbody>tr:not([target],.sticky,:hidden)").each(function(){var b,c=a(this);b=getOffset(this,p),m.push({top:b.top,bottom:b.top+c.height(),$item:c})}),$clone.addClass("draggable").css({position:"absolute",opacity:.6,width:j,height:i,left:k.left,top:k.top,zIndex:100}),c.css({position:"absolute",opacity:.6,width:j,height:"10px",left:k.left,top:k.top,backgroundColor:"#bbb",overflow:"hidden",zIndex:99}).appendTo(g),f.css("opacity",.6),a(document).unbind("mousedown.st mouseup.st").bind("mousemove.st",function(a){var b,d,e,f,g;for(n=null,b={x:l.x-a.pageX,y:l.y-a.pageY},d=k.top-b.y,e=0,f=m.length;f>e;e++)g=m[e],e&&g.top>d||f-1>e&&g.bottomd-12?(n.state="before",c.css("top",g.top-5)):(n.state="after",c.css("top",g.bottom-5)));$clone.css({top:d})}).bind("mouseup.st",function(){var d;b=!1,a(document).unbind("mousemove.st mouseup.st"),f.removeAttr("target").css("opacity",""),$clone.remove(),c.remove(),n&&(d=a(n.element),d[n.state](f),g.trigger("after-drag.st"))})}}),this},a("table.sortable").xeSortableTable()}),jQuery(function(a){a(".filebox").bind("before-open.mw",function(){function b(e){d.html(e.html),d.find(".select").bind("click",function(){var b=a("input.select_checkbox:checked");if(0===b.length){var d=a(this).closest("tr").find("img.filebox_item").attr("src");d?(c.trigger("filebox.selected",[d]),c.trigger("close.mw")):alert("None selected!")}else c.trigger("filebox.selected",[b]),c.trigger("close.mw");return!1}),d.find(".x_pagination").find("a").filter(function(){return a(this).data("toggle")?!1:a(this).parent().hasClass("x_disabled")?!1:a(this).parent().hasClass("x_active")?!1:!0}).bind("click",function(){var c=a(this).attr("page");return a.exec_json("module.getFileBoxListHtml",{page:c},b),!1}),a("#goToFileBox").find("button").bind("click",function(){var c=a(this).prev("input").val();return a.exec_json("module.getFileBoxListHtml",{page:c},b),!1}),d.closest(".x_modal-body").scrollTop(0)}var c,d,e;c=a(this),e=c.attr("href"),d=a(e).find(".filebox_list"),a.exec_json("module.getFileBoxListHtml",{page:"1"},b)});var b=a(".x .dsTg .__simple"),c=a(".x .dsTg .__detail"),d=a(".x .dsTg td.title");d.each(function(){var b=a(this);0===b.find("p.x_alert").length&&b.addClass("tg").find(">*:not(:first-child)").hide()});var e=a(".x .dsTg td.tg>*:not(:first-child)");b.click(function(){e.hide(),c.removeClass("x_active"),b.addClass("x_active")}),c.click(function(){e.show(),c.addClass("x_active"),b.removeClass("x_active")})}),jQuery(function(a){a.fn.xeMultilingualWindow=function(b){function c(){return o.is(":visible")&&q&&confirm(xe.msg_confirm_save_and_use_multilingual)&&o.find(".save-useit").trigger("click"),!0}function d(){if(p.is(":visible")&&p.find(".editMode").length){var a=p.find(".editMode");confirm(xe.msg_confirm_save_and_use_multilingual)?a.find(".save").trigger("click"):a.find(".cancel").trigger("click")}return!0}function e(){return p.find(".item > fieldset").hide().prev("a").children("i").removeClass("x_icon-chevrom-up").addClass("x_icon-chevron-down"),n.find('[href="#lang_create"]').trigger("click"),o.find(".editMode").children("textarea").val(""),q=!1,!0}function f(a){a?(i(1,xe.current_lang,"",a,!1),n.find('[href="#lang_search"]').trigger("click",!0)):i(1,xe.current_lang,"","",!1)}function g(){return c()&&d()&&e()?void 0:!1}function h(a,b){var c=n.data("lang-target");q=!1,c&&c.trigger("selected.g11n",[a,b])}function i(c,d,e,f,g){"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=xe.current_lang),"undefined"==typeof e&&(e=""),"undefined"==typeof f&&(f=""),"undefined"==typeof g&&(g=!0),a.exec_json("module.getModuleAdminLangListHtml",{page:c,lang_code:d,search_keyword:e,name:f,list_count:b.list_count,mid:current_url.getQuery("mid")},function(b){b&&b.html&&(p.html(b.html),j(),k(),l(),m(),g&&(document.location.href="#lang_search"),f&&a("#lang_search").find('[href^="#lang-"]').trigger("click"))})}function j(){p.find(".x_pagination a").click(function(){var b=a(this).data("page"),c=a(this).data("search_keyword"),d=a(this).data("current_lang");return b?(i(b,d,c),!1):void 0}),p.find(".x_pagination").submit(function(){var b=a(this).find('[name="page"]').val(),c=a(this).data("search_keyword"),d=a(this).data("current_lang");return b?(i(b,d,c),!1):!1})}function k(){p.find(".search").submit(function(){var b=a(this).find('[name="search_keyword"]').val(),c=a(this).find('[name="lang_code"]').val();return i(1,c,b),!1}),p.find("#search_cancel").click(function(){i(1,xe.current_lang,"")})}function l(){p.find(".set").append('').click(function(){function b(b){var d=c.next("fieldset").find("textarea");d.each(function(){var c=a(this),d=b.langs[c.data("lang")],e=/^\$user_lang->/;e.test(d)?c.val("").data("value",""):c.val(d).data("value",d)}),c.data("is_loaded",!0)}var c=a(this),e=c.data("lang_code");d();var f="x_icon-chevron-up",g="x_icon-chevron-down";c.next("fieldset").is(":visible")?c.children("i").removeClass(f).addClass(g):(c.parent(".item").siblings(".item").find("a > i").removeClass(f).addClass(g).end().children("fieldset").hide(),c.children("i").removeClass(g).addClass(f)),"undefined"==typeof c.data("is_loaded")&&a.exec_json("module.getModuleAdminLangCode",{name:e,mid:current_url.getQuery("mid")},b)})}function m(){b.view_use||p.find(".useit").hide(),b.view_modify||p.find(".modify").hide(),b.view_delete||p.find(".delete").hide(),"save"==b.modify_type&&p.find(".save").text(xe.cmd_save),p.find(".modify").click(function(){a(this).closest("fieldset").addClass("editMode").find("textarea").removeAttr("disabled"),a(this).siblings(".cancel").prependTo(a(this).parent()),a(this).siblings(".delete").attr("disabled","disabled")}),p.find(".cancel").click(function(){return a(this).closest("fieldset").removeClass("editMode").find("textarea").attr("disabled","disabled").each(function(){var b=a(this);b.val(b.data("value"))}),a(this).siblings(".modify").prependTo(a(this).parent()),a(this).siblings(".delete").removeAttr("disabled"),!1}),p.find(".delete").click(function(){if(confirm(xe.confirm_delete)){var b=a(this);lang_name=b.closest(".item").find('[href^="#lang-"]').data("lang_code"),a.exec_json("module.procModuleAdminDeleteLang",{name:lang_name,mid:current_url.getQuery("mid")},function(a){if(a){if(a.error)return void alert(a.message);var b=p.find(".x_pagination"),c=b.data("page"),d=b.data("search_keyword"),e=b.data("lang_code");c||($page=1),i(c,e,d)}})}}),p.find(".item").submit(function(){var b=a(this),c=b.find(".editMode").children("textarea"),d=b.find('[href^="#lang-"]'),e={},f=null;return c.each(function(){var b=a(this);e[b.attr("class")]=b.val(),b.data("tmp_value",b.val()),xe.current_lang==b.attr("class")&&(f=b.val())}),e.lang_name=d.data("lang_code"),e.mid=current_url.getQuery("mid"),a.exec_json("module.procModuleAdminInsertLang",e,function(e){e&&!e.error&&e.name&&(c.each(function(){var b=a(this);b.data("value",b.data("tmp_value"))}),d.children("span").html(f),p.find(".cancel").trigger("click"),b.find(".useit").trigger("click"))}),!1}),p.find(".useit").click(function(){var b=a(this),c=b.closest(".item").find('[href^="#lang-"]'),d=c.data("lang_code"),e=c.children("span").text();h(d,e)})}var n=a(this),o=n.find("#lang_create"),p=n.find("#lang_search"),q=!1;return b=a.extend({create_type:"save_and_use",modify_type:"save_and_use",view_use:!0,view_modify:!0,view_delete:!1,list_count:5},b||{}),"save_and_use"!=b.create_type&&o.find(".save-useit").text(xe.cmd_save),n.find(".x_tabbable").xeTabbable(),o.find(".editMode textarea").change(function(){q=!0}),o.submit(function(){function c(a){a&&!a.error&&a.name&&("save_and_use"==b.create_type?h(a.name,g):(alert(a.message),e()))}var d=a(this),f={},g=null;return d.find(".editMode").children("textarea").each(function(){var b=a(this);f[b.attr("class")]=b.val(),xe.current_lang==b.attr("class")&&(g=b.val())}),g?(f.mid=current_url.getQuery("mid"),a.exec_json("module.procModuleAdminInsertLang",f,c),!1):(alert(xe.msg_empty_multilingual),!1)}),n.find('[href="#lang_search"]').click(function(a,b){"undefined"==typeof b&&i()}),n.bind("reset.g11n",function(){e()}),n.bind("before-open.g11n",function(a,b){f(b)}),n.bind("before-close.g11n",function(){return g()}),this}});var is_loaded_multilingual_window_html=!1;jQuery(function(a){a.fn.xeLoadMultilingualWindowHtml=function(){function b(b){var c=a("#content");a(b.html).appendTo(c).xeMultilingualWindow(),a(".lang_code").trigger("loaded-multilingualWindow")}return a.exec_json("module.getModuleAdminMultilingualHtml",{mid:current_url.getQuery("mid")},b),this}});var multilingual_id_count=0;jQuery(function(a){a.fn.xeApplyMultilingualUI=function(){return a(this).each(function(){function b(){function b(){g.val(l.val()).width(g.data("width")).removeAttr("disabled").data("active",!1),g.parent(".g11n").removeClass("active")}function f(){function c(a){if(a&&a.langs){var b=g.width();g.closest(".g11n").addClass("active"),g.val(a.langs[xe.current_lang]).attr("disabled","disabled").width(b-44).data("active",!0)}}b();var d=/^\$user_lang->/;d.test(g.val())&&a.exec_json("module.getModuleAdminLangCode",{name:g.val().replace("$user_lang->",""),mid:current_url.getQuery("mid")},c)}var g,h=a("#g11n"),i=c.width();g="TEXTAREA"==d.tagName||"textarea"==c.data("type")?a(''),n=k.get(0).form;n.setAttribute("editor_sequence",a),k.css("display","none");var o="";jQuery("input[name=content]",n).size()>0&&(o=jQuery("input[name=content]",n).val().replace(/src=\"files\/attach/g,'src="'+request_uri+"files/attach"),jQuery("#xpress-editor-"+a).val(o)),k.hide().css("width","100%").before(l).after(m);var p=new xe.XpressCore,q=l.get(0),r=k.get(0),t=m.get(0),u=jQuery(".xpress-editor",n).get(0);p.getFrame=function(){return q},p.getContent=function(){editorGetContentTextarea_xe(a)};var v=n[c].value;return xFF&&!v&&(v="
    "),v=editorReplacePath(v),n[c].value=v,jQuery("#xpress-editor-"+a).val(v),editorRelKeys[a]=new Array,editorRelKeys[a].primary=n[b],editorRelKeys[a].content=n[c],editorRelKeys[a].func=editorGetContentTextarea_xe,editorRelKeys[a].editor=p,editorRelKeys[a].pasteHTML=function(a){p.exec("PASTE_HTML",[a])},xe.Editors[a]=p,p.registerPlugin(new xe.CorePlugin(null)),p.registerPlugin(new xe.XE_PreservTemplate(jQuery("#xpress-editor-"+a).val())),p.registerPlugin(new xe.StringConverterManager),p.registerPlugin(new xe.XE_EditingAreaManager("WYSIWYG",r,{nHeight:parseInt(d),nMinHeight:100},null,u)),p.registerPlugin(new xe.XE_EditingArea_HTMLSrc(t)),p.registerPlugin(new xe.XE_EditingAreaVerticalResizer(u)),p.registerPlugin(new xe.Utils),p.registerPlugin(new xe.DialogLayerManager),p.registerPlugin(new xe.ActiveLayerManager),p.registerPlugin(new xe.Hotkey),p.registerPlugin(new xe.XE_WYSIWYGStyler),p.registerPlugin(new xe.XE_WYSIWYGStyleGetter),p.registerPlugin(new xe.MessageManager(xe.XpressCore.oMessageMap)),p.registerPlugin(new xe.XE_Toolbar(u)),p.registerPlugin(new xe.XE_XHTMLFormatter),p.registerPlugin(new xe.XE_GET_WYSYWYG_MODE(a)),jQuery("ul.extra1").length&&(p.registerPlugin(new xe.XE_ColorPalette(u)),p.registerPlugin(new xe.XE_FontColor(u)),p.registerPlugin(new xe.XE_BGColor(u)),p.registerPlugin(new xe.XE_Quote(u)),p.registerPlugin(new xe.XE_FontNameWithSelectUI(u)),p.registerPlugin(new xe.XE_FontSizeWithSelectUI(u)),p.registerPlugin(new xe.XE_LineHeightWithSelectUI(u)),p.registerPlugin(new xe.XE_UndoRedo),p.registerPlugin(new xe.XE_Table(u)),p.registerPlugin(new xe.XE_Hyperlink(u)),p.registerPlugin(new xe.XE_FormatWithSelectUI(u)),p.registerPlugin(new xe.XE_SCharacter(u))),jQuery("ul.extra2").length&&p.registerPlugin(new xe.XE_Extension(u,a)),jQuery("ul.extra3").length&&p.registerPlugin(new xe.XE_EditingModeToggler(u)),jQuery("#editorresize").length&&p.registerPlugin(new xe.XE_Editorresize(u,q)),jQuery.browser.msie||jQuery.browser.opera||p.registerPlugin(new xe.XE_WYSIWYGEnterKey(q)),(s=n._saved_doc_title)&&p.registerPlugin(new xe.XE_AutoSave(r,u)),i(),p}function editorGetContentTextarea_xe(a){var b=xe.Editors[a]||null;if(!b)return"";var c=b.getIR();if(!jQuery.trim(c.replace(/( |<\/?(p|br|span|div)([^>]+)?>)/gi,"")))return"";if(c=c.replace(/
    $/i,""),c.length<1024){var d=Array("#text","A","BR","IMG","EM","STRONG","SPAN","BIG","CITE","CODE","DD","DFN","HR","INS","KBD","LINK","Q","SAMP","SMALL","SUB","SUP","TT"),e=!0,f=jQuery("
    "+c+"
    ").eq(0),g=f.contents();jQuery.each(g,function(){3!=this.nodeType&&-1==jQuery.inArray(this.nodeName,d)&&(e=!1)}),e&&(c="

    "+c+"

    ")}return c=c.replace(/src\s?=\s?(["']?)(?:\.\.\/)+(files\/attach\/)/gi,function(a,b,c){return"src="+(b||"")+c}),c=c.replace(/\<(\/)?([A-Z]+)([^>]*)\>/gi,function(a,b,c,d){return d=d?d.replace(/ ([A-Z]+?)\=/gi,function(a,b){return b=b.toLowerCase()," "+b+"="}):"",c=c.toLowerCase(),b||(b=""),"<"+b+c+d+">"}),c=c.replace("
    ","
    ")}function editorGetIframe(a){return jQuery("iframe#editor_iframe_"+a).get(0)}function editorReplaceHTML(a,b){b=editorReplacePath(b);var c=parseInt(a.id.replace(/^.*_/,""),10);editorRelKeys[c].pasteHTML(b)}function editorReplacePath(a){return a=a.replace(/\<([^\>\<]*)(src=|href=|url\()("|\')*([^"\'\)]+)("|\'|\))*(\s|>)*/gi,function(a,b,c,d,e,f,g){"url("==c?(d="",f=")"):("undefined"==typeof d&&(d='"'),"undefined"==typeof f&&(f='"'),"undefined"==typeof g&&(g=""));var h=jQuery.trim(e).replace(/^\.\//,"");return/^(http\:|https\:|ftp\:|telnet\:|mms\:|mailto\:|\/|\.\.|\#)/i.test(h)?a:"<"+b+c+d+request_uri+h+f+g})}function editorGetAutoSavedDoc(a){var b=new Array;b.mid=current_mid,b.editor_sequence=a.getAttribute("editor_sequence"),setTimeout(function(){var a=new Array("error","message","editor_sequence","title","content","document_srl");exec_xml("editor","procEditorLoadSavedDocument",b,function(a){editorRelKeys[b.editor_sequence].primary.value=a.document_srl,"object"==typeof uploadSettingObj[b.editor_sequence]&&editorUploadInit(uploadSettingObj[b.editor_sequence],!0)},a)},0)}!function(a){function b(b){function c(a){return function(){return a.apply(this.$this,arguments)}}var d=b.prototype;this.prototype.$super={};for(var e in d)d.propertyIsEnumerable(e)&&("undefined"==typeof this.prototype[e]&&(this.prototype[e]=d[e]),this.prototype.$super[e]=a.isFunction(d[e])?c(d[e]):d[e]);return this}a.extend({Class:function(c){function d(){"undefined"!=typeof this.$super&&(this.$super.$this=this),a.isFunction(this.$init)&&this.$init.apply(this,arguments)}return d.prototype=c,d.constructor=d,d.extend=b,d},$:function(b){return"string"==typeof b?"<"==b.substring(0,1)?a(b).get(0):a("#"+b).get(0):b},fnBind:function(b,c){var d=a.makeArray(arguments);return d.shift(),d.shift(),function(){var e=d.concat(a.makeArray(arguments));return b.apply(c,e)}}}),a.browser.nVersion=parseFloat(a.browser.version),"undefined"==typeof window.xe&&(window.xe={}),xe.XpressCore=a.Class({name:"XpressCore",$init:function(b){b=b?a.Class({}).extend({oDebugger:null}).extend(b):{},b.oDebugger&&(this.oDebugger=b.oDebugger,this.oDebugger.oApp=this),this.commandQueue=[],this.oCommandMap={},this.oDisabledCommand={},this.aPlugins=[],this.appStatus=xe.APP_STATUS.NOT_READY,this.registerPlugin(this)},exec:function(a,b,c){return this.appStatus==xe.APP_STATUS.NOT_READY?(this.commandQueue[this.commandQueue.length]={msg:a,args:b,event:c},!0):(this.exec=this._exec,void this.exec(a,b,c))},delayedExec:function(b,c,d,e){var f=a.fnBind(this.exec,this,b,c,e);setTimeout(f,d)},_exec:function(a,b,c){return(this._exec=this.oDebugger?this._execWithDebugger:this._execWithoutDebugger).call(this,a,b,c)},_execWithDebugger:function(a,b,c){this.oDebugger.log_MessageStart(a,b);var d=this._doExec(a,b,c);return this.oDebugger.log_MessageEnd(a,b),d},_execWithoutDebugger:function(a,b,c){return this._doExec(a,b,c)},_doExec:function(a,b,c){var d=!1;if(!this.oDisabledCommand[a]){var e=[];if(b&&b.length)for(var f=b.length,g=0;f>g;g++)e[g]=b[g];c&&(e[e.length]=c);var d=!0;d=this._execMsgStep("BEFORE",a,e),d&&(d=this._execMsgStep("ON",a,e)),d&&(d=this._execMsgStep("AFTER",a,e))}return d},registerPlugin:function(a){if(!a)throw"An error occured in registerPlugin(): invalid plug-in";return a.nIdx=this.aPlugins.length,a.oApp=this,this.aPlugins[a.nIdx]=a,a.status!=xe.PLUGIN_STATUS.NOT_READY&&(a.status=xe.PLUGIN_STATUS.READY),this.exec("MSG_PLUGIN_REGISTERED",[a]),a.nIdx},disableCommand:function(a,b){this.oDisabledCommand[a]=b},registerBrowserEvent:function(b,c,d,e,f){if(b){e=e||[];var g=f?a.fnBind(this.delayedExec,this,d,e,f):a.fnBind(this.exec,this,d,e);a(b).bind(c,g)}},run:function(){this._changeAppStatus(xe.APP_STATUS.WAITING_FOR_PLUGINS_READY);var a=this.commandQueue.length;for(i=0;a>i;i++){var b=this.commandQueue[i];this.exec(b.msg,b.args,b.event)}this._waitForPluginReady()},createCommandMap:function(a){this.oCommandMap[a]=[];for(var b=this.aPlugins.length,c=0;b>c;c++)this._doAddToCommandMap(a,this.aPlugins[c])},addToCommandMap:function(a,b){this.oCommandMap[a]&&this._addToCommandMap(a,b)},_changeAppStatus:function(a){this.appStatus=a,this.appStatus==xe.APP_STATUS.READY&&this.exec("MSG_APP_READY")},_execMsgStep:function(a,b,c){return(this._execMsgStep=this.oDebugger?this._execMsgStepWithDebugger:this._execMsgStepWithoutDebugger).call(this,a,b,c)},_execMsgStepWithDebugger:function(a,b,c){this.oDebugger.log_MessageStepStart(a,b,c);var d=this._execMsgHandler("$"+a+"_"+b,c);return this.oDebugger.log_MessageStepEnd(a,b,c),d},_execMsgStepWithoutDebugger:function(a,b,c){return this._execMsgHandler("$"+a+"_"+b,c)},_execMsgHandler:function(a,b){this.oCommandMap[a]||this.createCommandMap(a);var c=this.oCommandMap[a],d=c.length;if(0==d)return!0;var e,f=!0;if(a.match(/^\$(BEFORE|ON|AFTER)_MSG_APP_READY$/)){for(var g=0;d>g;g++)if(e=this._execHandler(c[g],a,b),e===!1){f=!1;break}}else for(var g=0;d>g;g++)if(("function"!=typeof c[g].$PRECONDITION||this._execHandler(c[g],"$PRECONDITION",[a,b]))&&(e=this._execHandler(c[g],a,b),e===!1)){f=!1;break}return f},_execHandler:function(a,b,c){return(this._execHandler=this.oDebugger?this._execHandlerWithDebugger:this._execHandlerWithoutDebugger).call(this,a,b,c)},_execHandlerWithDebugger:function(a,b,c){this.oDebugger.log_CallHandlerStart(a,b,c);var d=a[b].apply(a,c);return this.oDebugger.log_CallHandlerEnd(a,b,c),d},_execHandlerWithoutDebugger:function(a,b,c){return a[b].apply(a,c)},_doAddToCommandMap:function(a,b){"function"==typeof b[a]&&(this.oCommandMap[a][this.oCommandMap[a].length]=b)},_waitForPluginReady:function(){for(var b=!0,c=0;cb)return b;var i=b-1,j=a[b].cloneNode(!1);for(a[b]==e&&(c=j),a[b]==f&&(d=j);i>=0&&xe.DOMFix.parentNode(a[i])==a[b];)i=this._recurConstructClonedTree(a,i,a[b],j,c,d);return h.insertBefore(j,h.firstChild),i},a[a.length]=xe.DOMFix.parentNode(a[a.length-1]),_recurConstructClonedTree(a,a.length-1,a[a.length-1],b),{oStartContainer:c,oEndContainer:d}},cloneRange:function(){return this._copyRange(new xe.W3CDOMRange(this._document))},_copyRange:function(a){return a.collapsed=this.collapsed,a.commonAncestorContainer=this.commonAncestorContainer,a.endContainer=this.endContainer,a.endOffset=this.endOffset,a.startContainer=this.startContainer,a.startOffset=this.startOffset,a._document=this._document,a},collapse:function(a){a?(this.endContainer=this.startContainer,this.endOffset=this.startOffset):(this.startContainer=this.endContainer,this.startOffset=this.endOffset),this._updateRangeInfo()},compareBoundaryPoints:function(a,b){switch(a){case xe.W3CDOMRange.START_TO_START:return this._compareEndPoint(this.startContainer,this.startOffset,b.startContainer,b.startOffset);case xe.W3CDOMRange.START_TO_END:return this._compareEndPoint(this.endContainer,this.endOffset,b.startContainer,b.startOffset);case xe.W3CDOMRange.END_TO_END:return this._compareEndPoint(this.endContainer,this.endOffset,b.endContainer,b.endOffset);case xe.W3CDOMRange.END_TO_START:return this._compareEndPoint(this.startContainer,this.startOffset,b.endContainer,b.endOffset)}},_findBody:function(a){if(!a)return null;for(;a;){if("BODY"==a.tagName)return a;a=xe.DOMFix.parentNode(a)}return null},_compareEndPoint:function(a,b,c,d){var e,f;a&&this._findBody(a)==this._document.body||(a=this._document.body,b=0),c&&this._findBody(c)==this._document.body||(c=this._document.body,d=0);var g=function(a,b){return-1==b&&(b=a+1),b>a?-1:a==b?0:1},h=this._getCommonAncestorContainer(a,c),i=a;if(i!=h){for(;(oTmpNode=xe.DOMFix.parentNode(i))!=h;)i=oTmpNode;e=this._getPosIdx(i)+.5}else e=b;var j=c;if(j!=h){for(;(oTmpNode=xe.DOMFix.parentNode(j))!=h;)j=oTmpNode;f=this._getPosIdx(j)+.5}else f=d;return g(e,f)},_getCommonAncestorContainer:function(a,b){for(var c=b;a;){for(;c;){if(a==c)return a;c=xe.DOMFix.parentNode(c)}c=b,a=xe.DOMFix.parentNode(a)}return this._document.body},deleteContents:function(){if(!this.collapsed){this._splitTextEndNodesOfTheRange();var a=this._getNodesInRange();if(!(a.length<1)){for(var b=a[0].previousSibling;b&&this._isBlankTextNode(b);)b=b.previousSibling;var c,d;b||(c=xe.DOMFix.parentNode(a[0]),d=0);for(var e=0;ea.nodeValue.length&&(b=a.nodeValue.length):b>xe.DOMFix.childNodes(a).length&&(b=xe.DOMFix.childNodes(a).length),b},setEnd:function(a,b){b=this._endsNodeValidation(a,b),this.endContainer=a,this.endOffset=b,this.startContainer&&-1==this._compareEndPoint(this.startContainer,this.startOffset,this.endContainer,this.endOffset)||this.collapse(!1),this._updateRangeInfo()},setEndAfter:function(a){if(!a)throw new Error("INVALID_NODE_TYPE_ERR in setEndAfter");return"BODY"==a.tagName?void this.setEnd(a,xe.DOMFix.childNodes(a).length):void this.setEnd(xe.DOMFix.parentNode(a),this._getPosIdx(a)+1)},setEndBefore:function(a){if(!a)throw new Error("INVALID_NODE_TYPE_ERR in setEndBefore");return"BODY"==a.tagName?void this.setEnd(a,0):void this.setEnd(xe.DOMFix.parentNode(a),this._getPosIdx(a))},setStart:function(a,b){b=this._endsNodeValidation(a,b),this.startContainer=a,this.startOffset=b,this.endContainer&&-1==this._compareEndPoint(this.startContainer,this.startOffset,this.endContainer,this.endOffset)||this.collapse(!0),this._updateRangeInfo()},setStartAfter:function(a){if(!a)throw new Error("INVALID_NODE_TYPE_ERR in setStartAfter");return"BODY"==a.tagName?void this.setStart(a,xe.DOMFix.childNodes(a).length):void this.setStart(xe.DOMFix.parentNode(a),this._getPosIdx(a)+1)},setStartBefore:function(a){if(!a)throw new Error("INVALID_NODE_TYPE_ERR in setStartBefore");return"BODY"==a.tagName?void this.setStart(a,0):void this.setStart(xe.DOMFix.parentNode(a),this._getPosIdx(a))},surroundContents:function(a){a.appendChild(this.extractContents()),this.insertNode(a),this.selectNode(a)},toString:function(){var a=this._document.createElement("DIV");return a.appendChild(this.cloneContents()),a.textContent||a.innerText||""},_isBlankTextNode:function(a){return 3==a.nodeType&&""==a.nodeValue?!0:!1},_getPosIdx:function(a){for(var b=0,c=a.previousSibling;c;c=c.previousSibling)b++;return b},_updateRangeInfo:function(){return this.startContainer?(this.collapsed=this._isCollapsed(this.startContainer,this.startOffset,this.endContainer,this.endOffset),void(this.commonAncestorContainer=this._getCommonAncestorContainer(this.startContainer,this.endContainer))):void this.init(this._document)},_isCollapsed:function(a,b,c,d){var e=!1;if(a==c&&b==d)e=!0;else{var f=this._getActualStartNode(a,b),g=this._getActualEndNode(c,d);f=this._getNextNode(this._getPrevNode(f)),g=this._getPrevNode(this._getNextNode(g)),f&&g&&"BODY"!=g.tagName&&(this._getNextNode(g)==f||g==f&&this._isBlankTextNode(g))&&(e=!0)}return e},_splitTextEndNodesOfTheRange:function(){var a=this._splitTextEndNodes({oStartContainer:this.startContainer,iStartOffset:this.startOffset,oEndContainer:this.endContainer,iEndOffset:this.endOffset});this.startContainer=a.oStartContainer,this.startOffset=a.iStartOffset,this.endContainer=a.oEndContainer,this.endOffset=a.iEndOffset},_splitTextEndNodes:function(a){return a=this._splitStartTextNode(a),a=this._splitEndTextNode(a)},_splitStartTextNode:function(a){var b=a.oStartContainer,c=a.iStartOffset,d=a.oEndContainer,e=a.iEndOffset;if(!b)return a;if(3!=b.nodeType)return a;if(0==c)return a;if(b.nodeValue.length<=c)return a;var f=b.splitText(c);return b==d&&(e-=c,d=f),b=f,c=0,{oStartContainer:b,iStartOffset:c,oEndContainer:d,iEndOffset:e}},_splitEndTextNode:function(a){var b=a.oStartContainer,c=a.iStartOffset,d=a.oEndContainer,e=a.iEndOffset;return d?3!=d.nodeType?a:e>=d.nodeValue.length?a:0==e?a:(d.splitText(e),{oStartContainer:b,iStartOffset:c,oEndContainer:d,iEndOffset:e}):a},_getNodesInRange:function(){if(this.collapsed)return[];var a=this._getActualStartNode(this.startContainer,this.startOffset),b=this._getActualEndNode(this.endContainer,this.endOffset);return this._getNodesBetween(a,b)},_getActualStartNode:function(a,b){var c=a;return 3==a.nodeType?b>=a.nodeValue.length?(c=this._getNextNode(a),"BODY"==c.tagName&&(c=null)):c=a:b=this.startContainer.nodeValue.length?this._getNextNode(this.startContainer):this.startContainer:this.startOffset>=xe.DOMFix.childNodes(this.startContainer).length?this._getNextNode(this.startContainer):xe.DOMFix.childNodes(this.startContainer)[this.startOffset]},getEndNode:function(){return this.collapsed?this.getStartNode():3==this.endContainer.nodeType?0==this.endOffset?this._getPrevNode(this.endContainer):this.endContainer:0==this.endOffset?this._getPrevNode(this.endContainer):xe.DOMFix.childNodes(this.endContainer)[this.endOffset-1]},getNodeAroundRange:function(a,b){if(this.collapsed&&this.startContainer&&3==this.startContainer.nodeType)return this.startContainer;if(!this.collapsed||this.startContainer&&3==this.startContainer.nodeType)return this.getStartNode();var c,d,e;return d=this.startOffset>=xe.DOMFix.childNodes(this.startContainer).length?this._getNextNode(this.startContainer):xe.DOMFix.childNodes(this.startContainer)[this.startOffset],c=0==this.endOffset?this._getPrevNode(this.endContainer):xe.DOMFix.childNodes(this.endContainer)[this.endOffset-1],a?(e=c,e||b||(e=d)):(e=d,e||b||(e=c)),e},_getXPath:function(a){for(var b="";a&&1==a.nodeType;)b="/"+a.tagName+"["+this._getPosIdx4XPath(a)+"]"+b,a=xe.DOMFix.parentNode(a);return b},_getPosIdx4XPath:function(a){for(var b=0,c=a.previousSibling;c;c=c.previousSibling)c.tagName==a.tagName&&b++;return b},_evaluateXPath:function(a,b){a=a.substring(1,a.length-1);for(var c=a.split(/\//),d=b.body,e=2;el;l++)h[l].tagName==f&&(i[k++]=h[l]);d=i.length-1&&e){for(var f=xe.DOMFix.childNodes(e),g=null,h=c,i=d;(g=f[h])&&3==g.nodeType&&g.nodeValue.length=b&&e>=0?!0:bIncludePartlyIncluded?1==c?!1:-1==d?!1:!0:!1},isNodeInRange:function(a,b,c){var d=new xe.XpressRange(this._window);return c&&a.firstChild?(d.setStartBefore(a.firstChild),d.setEndAfter(a.lastChild)):d.selectNode(a),isRangeInRange(d,b)},pasteHTML:function(a){if(""==a)return void this.deleteContents();var b=this._document.createElement("DIV");b.innerHTML=a;for(var c=b.firstChild,d=b.lastChild,e=this.cloneRange(),f=e.placeStringBookmark();b.lastChild;)this.insertNode(b.lastChild);this.setEndNodes(c,d),e.moveToBookmark(f),e.deleteContents(),e.removeStringBookmark(f)},toString:function(){return this.toString=xe.W3CDOMRange.prototype.toString,this.toString()},toHTMLString:function(){var a=this._document.createElement("DIV");return a.appendChild(this.cloneContents()),a.innerHTML},findAncestorByTagName:function(a){for(var b=this.commonAncestorContainer;b&&b.tagName!=a;)b=xe.DOMFix.parentNode(b);return b},selectNodeContents:function(a){if(a){var b=a.firstChild?a.firstChild:a,c=a.lastChild?a.lastChild:a;3==b.nodeType?this.setStart(b,0):this.setStartBefore(b),3==c.nodeType?this.setEnd(c,c.nodeValue.length):this.setEndAfter(c)}},styleRange:function(b,c,d){var e=this._getStyleParentNodes(d);if(!(e.length<1)){for(var f,g,h=0;ho;o++)if(c=k[o],c&&3==c.nodeType&&""!=c.nodeValue){if(h=xe.DOMFix.parentNode(c),"SPAN"==h.tagName){var p=a(h).html();if(d=this._getVeryFirstRealChild(h),f=d==c?1:p.indexOf(d),-1!=f&&(d=this._getVeryLastRealChild(h),g=d==c?1:p.indexOf(d)),-1!=f&&-1!=g){l[m++]=h;continue}}e=this._document.createElement("SPAN"),h.insertBefore(e,c),e.appendChild(c),l[m++]=e,b&&e.setAttribute(b,"true")}return this.setStartBefore(i),this.setEndAfter(j),l},_getVeryFirstChild:function(a){return a.firstChild?this._getVeryFirstChild(a.firstChild):a},_getVeryLastChild:function(a){return a.lastChild?this._getVeryLastChild(a.lastChild):a},_getFirstRealChild:function(a){for(var b=a.firstChild;b&&3==b.nodeType&&""==b.nodeValue;)b=b.nextSibling;return b},_getLastRealChild:function(a){for(var b=a.lastChild;b&&3==b.nodeType&&""==b.nodeValue;)b=b.previousSibling;return b},_getVeryFirstRealChild:function(a){var b=this._getFirstRealChild(a);return b?this._getVeryFirstRealChild(b):a},_getVeryLastRealChild:function(a){var b=this._getLastRealChild(a);return b?this._getVeryLastChild(b):a},_getLineStartInfo:function(a){function b(a){if(a&&!d){if(h.test(a.tagName))return f=a,d=e,void(g=!0);e=a,c(a.previousSibling),d||b(xe.DOMFix.parentNode(a))}}function c(a){if(a&&!d){if(h.test(a.tagName))return f=a,d=e,void(g=!1);if(a.firstChild&&"TABLE"!=a.tagName)for(var b=a.lastChild;b&&!d;)c(b),b=b.previousSibling;else e=a;d||c(a.previousSibling)}}var d=null,e=a,f=a,g=!0,h=this.rxLineBreaker;return b(a),{oNode:d,oLineBreaker:f,bParentBreak:g}},_getLineEndInfo:function(a){function b(a){if(a&&!d){if(h.test(a.tagName))return f=a,d=e,void(g=!0);e=a,c(a.nextSibling),d||b(xe.DOMFix.parentNode(a))}}function c(a){if(a&&!d){if(h.test(a.tagName))return f=a,d=e,void(g=!1);if(a.firstChild&&"TABLE"!=a.tagName)for(var b=a.firstChild;b&&!d;)c(b),b=b.nextSibling;else e=a;d||c(a.nextSibling)}}var d=null,e=a,f=a,g=!0,h=this.rxLineBreaker;return b(a),{oNode:d,oLineBreaker:f,bParentBreak:g}},getLineInfo:function(){var a=this.getStartNode(),b=this.getEndNode();a||(a=this.getNodeAroundRange(!0,!0)),b||(b=this.getNodeAroundRange(!0,!0));var c=this._getLineStartInfo(a),d=c.oNode,e=this._getLineEndInfo(b),f=e.oNode,g=this._compareEndPoint(xe.DOMFix.parentNode(d),this._getPosIdx(d),this.endContainer,this.endOffset),h=this._compareEndPoint(xe.DOMFix.parentNode(f),this._getPosIdx(f)+1,this.startContainer,this.startOffset);return 0>=g&&h>=0||(a=this.getNodeAroundRange(!1,!0),b=this.getNodeAroundRange(!1,!0),c=this._getLineStartInfo(a),e=this._getLineEndInfo(b)),{oStart:c,oEnd:e}}}).extend(xe.W3CDOMRange),xe.SimpleSelection=function(b){this.init=function(a){this._window=a||window,this._document=this._window.document},this.init(b),a.browser.msie?xe.SimpleSelectionImpl_IE.apply(this):xe.SimpleSelectionImpl_FF.apply(this),this.selectRange=function(a){this.selectNone(),this.addRange(a)},this.selectionLoaded=!0,this._oSelection||(this.selectionLoaded=!1)},xe.SimpleSelectionImpl_FF=function(){this._oSelection=this._window.getSelection(),this.getRangeAt=function(a){a=a||0;try{var b=this._oSelection.getRangeAt(a)}catch(c){return new xe.W3CDOMRange(this._document)}return this._FFRange2W3CRange(b)},this.addRange=function(a){var b=this._W3CRange2FFRange(a);this._oSelection.addRange(b)},this.selectNone=function(){this._oSelection.removeAllRanges()},this._FFRange2W3CRange=function(a){var b=new xe.W3CDOMRange(this._document);return b.setStart(a.startContainer,a.startOffset),b.setEnd(a.endContainer,a.endOffset),b},this._W3CRange2FFRange=function(a){var b=this._document.createRange(); return b.setStart(a.startContainer,a.startOffset),b.setEnd(a.endContainer,a.endOffset),b}},xe.SimpleSelectionImpl_IE=function(){this._oSelection=this._document.selection,this.getRangeAt=function(a){if(a=a||0,"Control"==this._oSelection.type){var b=new xe.W3CDOMRange(this._document),c=this._oSelection.createRange().item(a);return c&&c.ownerDocument==this._document?(b.selectNode(c),b):b}var c=this._oSelection.createRangeCollection().item(a).parentElement();if(!c||c.ownerDocument!=this._document){var b=new xe.W3CDOMRange(this._document);return b}return this._IERange2W3CRange(this._oSelection.createRangeCollection().item(a))},this.addRange=function(a){var b=this._W3CRange2IERange(a);b.select()},this.selectNone=function(){this._oSelection.empty()},this._W3CRange2IERange=function(a){var b=this._getIERangeAt(a.startContainer,a.startOffset),c=this._getIERangeAt(a.endContainer,a.endOffset);return b.setEndPoint("EndToEnd",c),b},this._getIERangeAt=function(a,b){var c=this._document.body.createTextRange(),d=this._getSelectableNodeAndOffsetForIE(a,b),e=d.oSelectableNodeForIE,f=d.iOffsetForIE;return c.moveToElementText(e),c.collapse(d.bCollapseToStart),c.moveStart("character",f),c},this._getSelectableNodeAndOffsetForIE=function(a,b){var c=this._document.body.createTextRange(),d=null,e=null,f=0;3==a.nodeType?(d=xe.DOMFix.parentNode(a),e=xe.DOMFix.childNodes(d),f=e.length):(d=a,e=xe.DOMFix.childNodes(d),f=b);for(var g=null,h=0,i=!0,j=0;f>j;j++)if(g=e[j],3==g.nodeType){if(g==a)break;h+=g.nodeValue.length}else c.moveToElementText(g),d=g,h=0,i=!1;return 3==a.nodeType&&(h+=b),{oSelectableNodeForIE:d,iOffsetForIE:h,bCollapseToStart:i}},this._IERange2W3CRange=function(a){var b=new xe.W3CDOMRange(this._document),c=null,d=null;c=a.duplicate(),c.collapse(!0),d=this._getW3CContainerAndOffset(c,!0),b.setStart(d.oContainer,d.iOffset);var e=a.duplicate();return e.collapse(!0),e.isEqual(a)?b.collapse(!0):(c=a.duplicate(),c.collapse(!1),d=this._getW3CContainerAndOffset(c),b.setEnd(d.oContainer,d.iOffset)),b},this._getW3CContainerAndOffset=function(a,b){for(var c=a,d=c.parentElement(),e=-1,f=this._document.body.createTextRange(),g=xe.DOMFix.childNodes(d),h=null,i=0,j=0;j=0)break;h=g[j]}var i=j;if(0!=i&&3==g[i-1].nodeType){var k=this._document.body.createTextRange(),l=null;h?(k.moveToElementText(h),k.collapse(!1),l=h.nextSibling):(k.moveToElementText(d),k.collapse(!0),l=d.firstChild);var m=c.duplicate();m.setEndPoint("StartToStart",k);for(var n=m.text.length;n>l.nodeValue.length&&l.nextSibling;)n-=l.nodeValue.length,l=l.nextSibling;{l.nodeValue}b&&l.nextSibling&&3==l.nextSibling.nodeType&&n==l.nodeValue.length&&(n-=l.nodeValue.length,l=l.nextSibling),d=l,e=n}else d=c.parentElement(),e=i;return{oContainer:d,iOffset:e}}},xe.DOMFix=new(a.Class({$init:function(){a.browser.msie||a.browser.opera?(this.childNodes=this._childNodes_Fix,this.parentNode=this._parentNode_Fix):(this.childNodes=this._childNodes_Native,this.parentNode=this._parentNode_Native)},_parentNode_Native:function(a){return a.parentNode},_parentNode_Fix:function(a){if(!a)return a;for(;a.previousSibling;)a=a.previousSibling;return a.parentNode},_childNodes_Native:function(a){return a.childNodes},_childNodes_Fix:function(a){var b=null,c=0;if(a){var b=[];for(a=a.firstChild;a;)b[c++]=a,a=a.nextSibling}return b}})),xe.DraggableLayer=a.Class({$init:function(b,c){this.oOptions=a.extend({bModal:"false",oHandle:b,iMinX:-999999,iMinY:-999999,iMaxX:999999,iMaxY:999999},c),this.oHandle=this.oOptions.oHandle,b.style.display="block",b.style.position="absolute",b.style.zIndex="9999",this.aBasePosition=this.getBaseOffset(b),b.style.top=this.toInt(a(b).offset().top)-this.aBasePosition.top+"px",b.style.left=this.toInt(a(b).offset().left)-this.aBasePosition.left+"px",this.$FnMouseDown=a.fnBind(this._mousedown,this,b),this.$FnMouseMove=a.fnBind(this._mousemove,this,b),this.$FnMouseUp=a.fnBind(this._mouseup,this,b),a(this.oHandle).bind("mousedown",this.$FnMouseDown)},_mousedown:function(b,c){"INPUT"!=c.target.tagName&&(this.MouseOffsetY=c.pageY-this.toInt(b.style.top)-this.aBasePosition.top,this.MouseOffsetX=c.pageX-this.toInt(b.style.left)-this.aBasePosition.left,a(b).bind("mousemove",this.$FnMouseMove),a(b).bind("mouseup",this.$FnMouseUp))},_mousemove:function(a,b){var c=b.pageY-this.MouseOffsetY-this.aBasePosition.top,d=b.pageX-this.MouseOffsetX-this.aBasePosition.left;cthis.oOptions.iMaxY&&(c=this.oOptions.iMaxY),dthis.oOptions.iMaxX&&(d=this.oOptions.iMaxX),a.style.top=c+"px",a.style.left=d+"px"},_mouseup:function(b){a(b).unbind("mousemove",this.$FnMouseMove),a(b).unbind("mouseup",this.$FnMouseUp)},toInt:function(a){var b=parseInt(a);return b||0},findNonStatic:function(b){return b?"BODY"==b.tagName?b:a(b).css("position").match(/absolute|relative/i)?b:this.findNonStatic(b.offsetParent):null},getBaseOffset:function(b){var c=this.findNonStatic(b.offsetParent),d=a(c).offset();return{top:d.top,left:d.left}}}),xe.CorePlugin=a.Class({name:"CorePlugin",$init:function(a){this.funcOnReady=a},$AFTER_MSG_APP_READY:function(){this.oApp.exec("EXEC_ON_READY_FUNCTION",[])},$ON_ADD_APP_PROPERTY:function(a,b){this.oApp[a]=b},$ON_REGISTER_BROWSER_EVENT:function(a,b,c,d,e){this.oApp.registerBrowserEvent(a,b,c,d,e)},$ON_DISABLE_COMMAND:function(a){this.oApp.disableCommand(a,!0)},$ON_ENABLE_COMMAND:function(a){this.oApp.disableCommand(a,!1)},$ON_EXEC_ON_READY_FUNCTION:function(){"function"==typeof this.funcOnReady&&this.funcOnReady()}}),xe.Utils=a.Class({name:"Utils",$init:function(){if(a.browser.msie&&6==a.browser.nVersion)try{document.execCommand("BackgroundImageCache",!1,!0)}catch(b){}},$ON_ATTACH_HOVER_EVENTS:function(b,c){c=c||"hover",b&&a(b).hover(function(){a(this).addClass(c)},function(){a(this).removeClass(c)})}}),xe.XpressRangeManager=a.Class({name:"XpressRangeManager",oWindow:null,$init:function(a){this.oWindow=a||window},$BEFORE_MSG_APP_READY:function(){this.oWindow&&"IFRAME"==this.oWindow.tagName&&(this.oWindow=this.oWindow.contentWindow),this.oApp.exec("ADD_APP_PROPERTY",["getSelection",a.fnBind(this.getSelection,this)]),this.oApp.exec("ADD_APP_PROPERTY",["getEmptySelection",a.fnBind(this.getEmptySelection,this)])},$ON_SET_EDITING_WINDOW:function(a){this.oWindow=a},getEmptySelection:function(){var a=new xe.XpressRange(this.oWindow);return a},getSelection:function(){this.oApp.exec("RESTORE_IE_SELECTION",[]);var a=this.getEmptySelection();try{a.setFromSelection()}catch(b){}return a}}),xe.Hotkey=a.Class({name:"Hotkey",storage:{},keyhash:{},$init:function(){this.storage={},this.keyhash={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,meta:224,esc:27,space:32,pageup:33,pagedown:34,end:35,home:36,left:37,up:38,right:39,down:40,del:46,comma:188,period:190,slash:191,hyphen:109,equal:61},(a.browser.msie||a.browser.safari)&&(this.keyhash.hyphen=189,this.keyhash.equal=187,this.keyhash.meta=91)},$ON_MSG_APP_READY:function(){a(this.oApp.getWYSIWYGDocument()||document).keydown(a.fnBind(this.keydown,this))},$ON_REGISTER_HOTKEY:function(b,c,d){d||(d=[]);var e=a.fnBind(this.oApp.exec,this.oApp,c,d);return(b=this.normalize(b))?void this.add(b,e):!1},add:function(a,b){"undefined"==typeof this.storage[a]?this.storage[a]=[b]:this.storage[a].push(b)},keydown:function(b){var c=[],d=this.keyhash;if(!(a.inArray(b.keyCode,[d.shift,d.ctrl,d.alt,d.meta])>=0)&&(b.shiftKey&&c.push("shift"),b.altKey&&c.push("alt"),b.ctrlKey&&c.push("ctrl"),b.metaKey&&c.push("meta"),c.length&&(1==c.length&&b.metaKey&&(c=["ctrl","meta"]),c.push(b.keyCode),c=c.join("+"),this.storage[c])))return a.each(this.storage[c],function(){this()}),!1},normalize:function(b){var c,d,e,f,g,h=(b||"").toLowerCase().split("+");return c=d=e=f=g=!1,a.each(h,function(){var a=""+this;switch(a){case"shift":c=!0;case"alt":e=!0;case"ctrl":d=!0;case"meta":f=!0;default:g=a}}),g?(h=[],c&&h.push("shift"),e&&h.push("alt"),d&&h.push("ctrl"),(f||d&&!c&&!e)&&h.push("meta"),h.push(this.keyhash[g]||g.toUpperCase().charCodeAt(0)),h.join("+")):""}}),xe.DialogLayerManager=a.Class({name:"DialogLayerManager",aMadeDraggable:null,aOpenedLayers:null,$init:function(){this.aMadeDraggable=[],this.aOpenedLayers=[]},$ON_SHOW_DIALOG_LAYER:function(b,c){b=a.$(b),c=a.$(c)||!1,b&&-1==a.inArray(b,this.aOpenedLayers)&&(this.oApp.exec("POSITION_DIALOG_LAYER",[b]),this.aOpenedLayers[this.aOpenedLayers.length]=b,-1==a.inArray(b,this.aMadeDraggable)?(new xe.DraggableLayer(b,{bModal:c,iMinY:0}),this.aMadeDraggable[this.aMadeDraggable.length]=b):b.style.display="block")},$ON_HIDE_LAST_DIALOG_LAYER:function(){this.oApp.exec("HIDE_DIALOG_LAYER",[this.aOpenedLayers[this.aOpenedLayers.length-1]])},$ON_HIDE_ALL_DIALOG_LAYER:function(){for(var a=this.aOpenedLayers.length-1;a>=0;a--)this.oApp.exec("HIDE_DIALOG_LAYER",[this.aOpenedLayers[a]])},$ON_HIDE_DIALOG_LAYER:function(b){b=a.$(b),b&&(b.style.display="none"),this.aOpenedLayers=a.grep(this.aOpenedLayers,function(a){return a!=b})},$ON_SET_DIALOG_LAYER_POSITION:function(a,b,c){a.style.top=b,a.style.left=c}}),xe.ActiveLayerManager=a.Class({name:"ActiveLayerManager",oCurrentLayer:null,$ON_TOGGLE_ACTIVE_LAYER:function(a,b,c,d,e){a==this.oCurrentLayer?this.oApp.exec("HIDE_ACTIVE_LAYER",[]):(this.oApp.exec("SHOW_ACTIVE_LAYER",[a,d,e]),b&&this.oApp.exec(b,c))},$ON_SHOW_ACTIVE_LAYER:function(b,c,d){b=a.$(b),this.sOnCloseCmd=c,this.aOnCloseParam=d;var e=this.oCurrentLayer;b!=e&&(this.oApp.exec("HIDE_ACTIVE_LAYER",[]),b.style.display="block",this.oCurrentLayer=b)},$ON_HIDE_ACTIVE_LAYER:function(){var a=this.oCurrentLayer;a&&(a.style.display="none",this.oCurrentLayer=null,this.sOnCloseCmd&&this.oApp.exec(this.sOnCloseCmd,this.aOnCloseParam))},$ON_HIDE_CURRENT_ACTIVE_LAYER:function(){this.oApp.exec("HIDE_ACTIVE_LAYER",[])},$ON_EVENT_EDITING_AREA_KEYDOWN:function(){this.oApp.exec("HIDE_ACTIVE_LAYER",[])},$ON_EVENT_EDITING_AREA_MOUSEDOWN:function(){this.oApp.exec("HIDE_ACTIVE_LAYER",[])}}),xe.StringConverterManager=a.Class({name:"StringConverterManager",oConverters:null,$init:function(){this.oConverters={}},$BEFORE_MSG_APP_READY:function(){this.oApp.exec("ADD_APP_PROPERTY",["applyConverter",a.fnBind(this.applyConverter,this)]),this.oApp.exec("ADD_APP_PROPERTY",["addConverter",a.fnBind(this.addConverter,this)])},applyConverter:function(a,b){var c=this.oConverters[a];if(!c)return b;for(var d=0;df;f++)if(e.test(c[f].className)){var g=RegExp.$1;if(null!=this.htUIList[g])continue;this.htUIList[g]=a(">*:first-child",c[f]).get(0)}},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.toolbarArea,"mouseover","EVENT_TOOLBAR_MOUSEOVER",[]),this.oApp.registerBrowserEvent(this.toolbarArea,"mouseout","EVENT_TOOLBAR_MOUSEOUT",[]),this.oApp.exec("ADD_APP_PROPERTY",["getToolbarButtonByUIName",a.fnBind(this.getToolbarButtonByUIName,this)])},$ON_EVENT_TOOLBAR_MOUSEOVER:function(b){"BUTTON"==b.target.tagName&&a(b.target).addClass("hover").parent("span").addClass("hover")},$ON_EVENT_TOOLBAR_MOUSEOUT:function(b){"BUTTON"==b.target.tagName&&a(b.target).removeClass("hover").parent("span").removeClass("hover")},$ON_TOGGLE_TOOLBAR_ACTIVE_LAYER:function(a,b,c,d,e,f){this.oApp.exec("TOGGLE_ACTIVE_LAYER",[a,"MSG_TOOLBAR_LAYER_SHOWN",[a,b,c,d],e,f])},$ON_MSG_TOOLBAR_LAYER_SHOWN:function(a,b,c,d){this.oApp.exec("POSITION_TOOLBAR_LAYER",[a,b]),c&&this.oApp.exec(c,d)},$ON_SHOW_TOOLBAR_ACTIVE_LAYER:function(a,b,c,d){this.oApp.exec("SHOW_ACTIVE_LAYER",[a,b,c]),this.oApp.exec("POSITION_TOOLBAR_LAYER",[a,d])},$ON_ENABLE_UI:function(b){var c=this.htUIList[b];if(c){a(c).removeClass("off"),c.disabled=!1;var d="";if(this.aUICmdMap[b])for(var e=0;ef&&(b.style.left=f-e-5+"px")}},getToolbarButtonByUIName:function(a){return this.htUIList[a]}}),xe.XE_EditingAreaManager=a.Class({name:"XE_EditingAreaManager",oActivePlugin:null,oIRField:null,bIsDirty:!1,$init:function(b,c,d,e,f){this.sInitialMode=b,this.oIRField=a.$(c),this._assignHTMLObjects(f),this.fOnBeforeUnload=e,this.oEditingMode={},this.elEditingAreaContainer.style.height=parseInt(d.nHeight||this.elEditingAreaContainer.offsetHeight)+"px",this.nMinHeight=d.nMinHeight||10,this.niMinWidth=d.nMinWidth||10},_assignHTMLObjects:function(b){b=a.$(b)||document,this.elEditingAreaContainer=a("DIV.xpress_xeditor_editing_area_container",b).get(0),this.elEditingAreaSkipUI=a("A.skip",b).get(0)},$BEFORE_MSG_APP_READY:function(){this.oApp.exec("ADD_APP_PROPERTY",["elEditingAreaContainer",this.elEditingAreaContainer]),this.oApp.exec("ADD_APP_PROPERTY",["getIR",a.fnBind(this.getIR,this)]),this.oApp.exec("ADD_APP_PROPERTY",["setIR",this.setIR]),this.oApp.exec("ADD_APP_PROPERTY",["getEditingMode",a.fnBind(this.getEditingMode,this)])},$ON_MSG_APP_READY:function(){this.oApp.exec("CHANGE_EDITING_MODE",[this.sInitialMode,!0]),this.oApp.exec("LOAD_IR_FIELD",[!1]),this.oApp.registerBrowserEvent(this.elEditingAreaSkipUI,"focus","MSG_EDITING_AREA_SIZE_CHANGED",[],50),this.oApp.registerBrowserEvent(this.elEditingAreaSkipUI,"blur","MSG_EDITING_AREA_SIZE_CHANGED",[],50)},$AFTER_MSG_APP_READY:function(){this.oApp.exec("UPDATE_IR_FIELD",[])},$ON_LOAD_IR_FIELD:function(a){this.oApp.setIR(this.oIRField.value,a)},$ON_UPDATE_IR_FIELD:function(){this.oIRField.value=this.oApp.getIR()},$BEFORE_CHANGE_EDITING_MODE:function(a){this._oPrevActivePlugin=this.oActivePlugin,this.oActivePlugin=this.oEditingMode[a]},$AFTER_CHANGE_EDITING_MODE:function(a,b){if(this._oPrevActivePlugin){var c=this._oPrevActivePlugin.getIR();this.oApp.exec("SET_IR",[c]),this.oApp.exec("ENABLE_UI",[this._oPrevActivePlugin.sMode]),this._setEditingAreaDimension()}this.oApp.exec("DISABLE_UI",[this.oActivePlugin.sMode]),b||this.oApp.exec("FOCUS",[])},$ON_SET_IS_DIRTY:function(a){this.bIsDirty=a},$ON_FOCUS:function(){this.oActivePlugin&&"function"==typeof this.oActivePlugin.setIR&&this.oActivePlugin.focus()},$BEFORE_SET_IR:function(a,b){b=b||!1,b||this.oApp.exec("RECORD_UNDO_ACTION",["SET CONTENTS"])},$ON_SET_IR:function(a){this.oActivePlugin&&"function"==typeof this.oActivePlugin.setIR&&this.oActivePlugin.setIR(a)},$AFTER_SET_IR:function(a,b){b=b||!1,b||this.oApp.exec("RECORD_UNDO_ACTION",["SET CONTENTS"])},$ON_REGISTER_EDITING_AREA:function(a){this.oEditingMode[a.sMode]=a,this.attachDocumentEvents(a.oEditingArea)},$ON_MSG_EDITING_AREA_RESIZE_STARTED:function(){this.oActivePlugin.elEditingArea.style.display="none",this.iStartingHeight=parseInt(this.elEditingAreaContainer.style.height)},$ON_RESIZE_EDITING_AREA:function(a,b){var c=parseInt(a),d=parseInt(b);c"]);break;default:return}a.preventDefault(),a.stopPropagation()}},$ON_EVENT_EDITING_AREA_KEYUP:function(a){229==a.keyCode||13==a.keyCode||a.altKey||a.ctrlKey||a.keyCode>=33&&a.keyCode<=40||16==a.keyCode||this._recordUndo(a)},$ON_PASTE_HTML:function(b,c){if(this.oApp.getEditingMode()==this.sMode){var d=c||this.oApp.getSelection();if(d.pasteHTML(b),!a.browser.msie){var e=d.placeStringBookmark();this.oApp.getWYSIWYGDocument().body.innerHTML=this.oApp.getWYSIWYGDocument().body.innerHTML,d.moveToBookmark(e),d.collapseToEnd(),d.select(),d.removeStringBookmark(e)}this.oApp.exec("RECORD_UNDO_ACTION",["INSERT HTML"])}},$AFTER_MSG_EDITING_AREA_RESIZE_ENDED:function(){this.oApp.exec("REFRESH_WYSIWYG",[])},$ON_RESTORE_IE_SELECTION:function(){this._oIERange&&(this._oIERange.select(),this._oPrevIERange=this._oIERange,this._oIERange=null)},initIframe:function(){try{if(this.doc=this.iframe.contentWindow.document,null==this.doc||"about:blank"==this.doc.location.href)throw new Error("Access denied");this._enableWYSIWYG(),this.status=xe.PLUGIN_STATUS.READY}catch(b){if(!(this._nIFrameReadyCount-->0))throw"iframe for WYSIWYG editing mode can't be initialized. Please check if the iframe document exists and is also accessable(cross-domain issues). ";setTimeout(a.fnBind(this.initIframe,this),100)}},getIR:function(){var a,b=this.doc.body.innerHTML;return a=this.oApp.applyConverter?this.oApp.applyConverter(this.sMode+"_TO_IR",b):b},setIR:function(b){var c;c=this.oApp.applyConverter?this.oApp.applyConverter("IR_TO_"+this.sMode,b):b,this.doc.body.innerHTML=c,a.browser.mozilla&&""==this.doc.body.innerHTML&&(this.doc.body.innerHTML="
    ")},getWindow:function(){return this.iframe.contentWindow},getDocument:function(){return this.iframe.contentWindow.document},focus:function(){},_recordUndo:function(a){var b=new Date;b-this.iLastUndoRecorded"),""==h.innerHTML&&(h.innerHTML="
    "),h.nextSibling&&"BR"==h.nextSibling.tagName&&h.parentNode.removeChild(h.nextSibling),b.selectNodeContents(h),b.collapseToStart(),b.select(),this.oApp.exec("CHECK_STYLE_CHANGE",[])}else b.removeStringBookmark(c)}}}),xe.XE_WYSIWYGStyler=a.Class({name:"XE_WYSIWYGStyler",$PRECONDITION:function(){return"WYSIWYG"==this.oApp.getEditingMode()},$ON_SET_WYSIWYG_STYLE:function(b){var c=this.oApp.getSelection();if(c.collapsed){var d=this.oApp.getWYSIWYGDocument().createElement("SPAN");c.insertNode(d),d.innerHTML=unescape("%uFEFF");var e;for(var f in b)e=b[f],"string"==typeof e&&(d.style[f]=e);return c.selectNodeContents(d),c.collapseToEnd(),c._window.focus(),c._window.document.body.focus(),c.select(),void(a.browser.mozilla&&3==a.browser.nVersion&&(d.innerHTML=""))}this.oApp.exec("RECORD_UNDO_BEFORE_ACTION",["FONT STYLE"]),c.styleRange(b),c._window.focus(),c.select(),this.oApp.exec("RECORD_UNDO_AFTER_ACTION",["FONT STYLE"])}}),xe.XE_WYSIWYGStyleGetter=a.Class({name:"XE_WYSIWYGStyleGetter",hKeyUp:null,getStyleInterval:200,oStyleMap:{fontFamily:{type:"Value",css:"fontFamily"},fontSize:{type:"Value",css:"fontSize"},lineHeight:{type:"Value",css:"lineHeight",converter:function(a,b){return a.match(/px$/)?Math.ceil(parseInt(a)/parseInt(b.fontSize)*10)/10:a}},bold:{command:"bold"},underline:{command:"underline"},italic:{command:"italic"},lineThrough:{command:"strikethrough"},superscript:{command:"superscript"},subscript:{command:"subscript"},justifyleft:{command:"justifyleft"},justifycenter:{command:"justifycenter"},justifyright:{command:"justifyright"},justifyfull:{command:"justifyfull"},orderedlist:{command:"insertorderedlist"},unorderedlist:{command:"insertunorderedlist"}},$init:function(){this.oStyle=this._getBlankStyle()},$PRECONDITION:function(){return"WYSIWYG"!=this.oApp.getEditingMode()?!1:!0},$ON_MSG_APP_READY:function(){this.oDocument=this.oApp.getWYSIWYGDocument(),this.oApp.exec("ADD_APP_PROPERTY",["getCurrentStyle",a.fnBind(this.getCurrentStyle,this)])},$ON_EVENT_EDITING_AREA_MOUSEUP:function(){this.hKeyUp&&clearTimeout(this.hKeyUp),this.oApp.exec("CHECK_STYLE_CHANGE",[])},$ON_EVENT_EDITING_AREA_KEYUP:function(b){(8==b.keyCode||b.keyCode>=33&&b.keyCode<=40||45==b.keyCode||46==b.keyCode)&&(this.hKeyUp&&clearTimeout(this.hKeyUp),this.hKeyUp=setTimeout(a.fnBind(this.oApp.exec,this.oApp,"CHECK_STYLE_CHANGE",[]),this.getStyleInterval))},$ON_CHECK_STYLE_CHANGE:function(){this._getStyle()},$ON_RESET_STYLE_STATUS:function(){var a=this._getBlankStyle();for(var b in a)this.oApp.exec("SET_STYLE_STATUS",[b,a[b]])},getCurrentStyle:function(){return this.oStyle},_check_style_change:function(){this.oApp.exec("CHECK_STYLE_CHANGE",[])},_getBlankStyle:function(){var a={};for(var b in this.oStyleMap)a[b]="Value"==this.oStyleMap[b].type?"":0; return a},_getStyle:function(){var a,b,c=this.oApp.getSelection(),d=function(a){return a.childNodes&&0!=a.childNodes.length?!1:!0},e=c.getNodes(!1,d);a=this._getStyleOf(0==e.length?c.commonAncestorContainer:e[0]);for(b in a)this.oStyleMap[b].converter&&(a[b]=this.oStyleMap[b].converter(a[b],a)),this.oStyle[b]!=a[b]&&this.oApp.exec("MSG_STYLE_CHANGED",[b,a[b]]);this.oStyle=a},_getStyleOf:function(b){var c=this._getBlankStyle();if(!b)return c;3==b.nodeType&&(b=b.parentNode);var d,e=a(b);for(var f in this.oStyle)if(d=this.oStyleMap[f],d.type&&"Value"==d.type){if(d.css){var g=e.css(d.css);"fontFamily"==f&&(g=g.split(/,/)[0]),c[f]=g}else if(d.command)try{c[f]=this.oDocument.queryCommandState(d.command)}catch(h){}}else if(d.command)try{c[f]=this.oDocument.queryCommandState(d.command)?1:0}catch(h){}return c}}),xe.XE_FontSizeWithSelectUI=a.Class({name:"XE_FontSizeWithSelectUI",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elFontSizeSelect=a("SELECT.xpress_xeditor_ui_fontSize_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elFontSizeSelect,"change","SET_FONTSIZE_FROM_SELECT_UI"),this.elFontSizeSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(a,b){"fontSize"==a&&(this.elFontSizeSelect.value=b,this.elFontSizeSelect.selectedIndex<0&&(this.elFontSizeSelect.selectedIndex=0))},$ON_SET_FONTSIZE_FROM_SELECT_UI:function(){var a=this.elFontSizeSelect.value;a&&(this.oApp.exec("SET_WYSIWYG_STYLE",[{fontSize:a}]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}),xe.XE_FontNameWithSelectUI=a.Class({name:"XE_FontNameWithSelectUI",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elFontNameSelect=a("SELECT.xpress_xeditor_ui_fontName_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elFontNameSelect,"change","SET_FONTNAME_FROM_SELECT_UI"),this.elFontNameSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(a,b){"fontFamily"==a&&(this.elFontNameSelect.value=b.toLowerCase(),this.elFontNameSelect.selectedIndex<0&&(this.elFontNameSelect.selectedIndex=0))},$ON_SET_FONTNAME_FROM_SELECT_UI:function(){var a=this.elFontNameSelect.value;a&&(this.oApp.exec("SET_WYSIWYG_STYLE",[{fontFamily:a}]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}),xe.XE_LineHeight=a.Class({name:"XE_LineHeight",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(){},$ON_SET_LINEHEIGHT:function(a){this.setLineHeight(a)},getLineHeight:function(){var b,c,d,e=this._getSelectedNodes(!1);if(0==e.length)return-1;var f=e.length;0==f?d=-1:(c=this._getLineWrapper(e[0]),d=this._getWrapperLineheight(c));var g=this.oSelection.getStartNode();if(d>0)for(var h=1;f>h;h++)if(!this._isChildOf(e[h],b)&&e[h]&&(b=this._getLineWrapper(e[h]),b!=c)){if(curHeight=this._getWrapperLineheight(b),curHeight!=d){d=-1;break}c=b}b=this._getLineWrapper(e[f-1]);var i=this.oSelection.getEndNode();return selectText=a.fnBind(function(a,b){this.oSelection.setEndNodes(a,b),this.oSelection.select()},this,g,i),setTimeout(selectText,100),d},setLineHeight:function(b){function c(a,b){if(!a)try{a=thisRef.oSelection.surroundContentsWithNewNode("P")}catch(c){a=thisRef.oSelection.surroundContentsWithNewNode("DIV")}return a.style.lineHeight=b,a}function d(a){for(;a&&"BODY"!=a.tagName;)a=xe.DOMFix.parentNode(a);return a?!0:!1}thisRef=this;var e=this._getSelectedNodes(!1);if(0!=e.length){var f,g,h=e.length;this.oApp.exec("RECORD_UNDO_BEFORE_ACTION",["LINEHEIGHT"]),g=this._getLineWrapper(e[0]),g=c(g,b);for(var i=g,j=g,k=1;h>k;k++){try{if(!d(xe.DOMFix.parentNode(e[k])))continue}catch(l){continue}this._isChildOf(e[k],f)||(f=this._getLineWrapper(e[k]),f!=g&&(f=c(f,b),g=f))}j=f||i,setTimeout(a.fnBind(function(a,b){this.oSelection.setEndNodes(a,b),this.oSelection.select(),this.oApp.exec("RECORD_UNDO_AFTER_ACTION",["LINEHEIGHT"])},this,i,j),100)}},_getSelectedNodes:function(a){a||(this.oSelection=this.oApp.getSelection()),this.oSelection.collapsed&&this.oSelection.selectNode(this.oSelection.commonAncestorContainer);var b=this.oSelection.getTextNodes();if(0==b.length){var c=this.oSelection.getStartNode();c?b[0]=c:b=[]}return b},_getWrapperLineheight:function(a){var b="";if(a&&a.style.lineHeight)b=a.style.lineHeight;else for(a=this.oSelection.commonAncesterContainer;a&&!this.oSelection.rxLineBreaker.test(a.tagName);){if(a&&a.style.lineHeight){b=a.style.lineHeight;break}a=xe.DOMFix.parentNode(a)}return b},_isChildOf:function(a,b){for(;a&&"BODY"!=a.tagName;){if(a==b)return!0;a=xe.DOMFix.parentNode(a)}return!1},_getLineWrapper:function(a){var b=this.oApp.getEmptySelection();b.selectNode(a);var c,d,e,f,g=b.getLineInfo(),h=g.oStart,i=g.oEnd,j=null;return c=h.oNode,e=h.oLineBreaker,d=i.oNode,f=i.oLineBreaker,this.oSelection.setEndNodes(c,d),e==f&&("P"==e.tagName||"DIV"==e.tagName?j=e:this.oSelection.setEndNodes(e.firstChild,e.lastChild)),j}}),xe.XE_LineHeightWithSelectUI=a.Class({name:"XE_LineHeightWithSelectUI",_assignHTMLObjects:function(b){this.elLineHeightSelect=a("SELECT.xpress_xeditor_ui_lineHeight_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elLineHeightSelect,"change","SET_LINEHEIGHT_FROM_SELECT_UI"),this.elLineHeightSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(a,b){"lineHeight"==a&&(this.elLineHeightSelect.value=b,this.elLineHeightSelect.selectedIndex<0&&(this.elLineHeightSelect.selectedIndex=0))},$ON_SET_LINEHEIGHT_FROM_SELECT_UI:function(){var a=this.elLineHeightSelect.value;a&&(this.elLineHeightSelect.selectedIndex=0,this.oApp.exec("SET_LINEHEIGHT",[a]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}).extend(xe.XE_LineHeight),xe.XE_ColorPalette=a.Class({name:"XE_ColorPalette",rxRGBColorPattern:/rgb\((\d+), ?(\d+), ?(\d+)\)/i,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elColorPaletteLayer=a("UL.xpress_xeditor_color_palette",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elColorPaletteLayer,"click","EVENT_MOUSEUP_COLOR_PALETTE")},$ON_SHOW_COLOR_PALETTE:function(a,b){this.sCallbackCmd=a,this.oLayerContainer=b,this.oLayerContainer.insertBefore(this.elColorPaletteLayer,null),this.elColorPaletteLayer.style.display="block"},$ON_HIDE_COLOR_PALETTE:function(){this.elColorPaletteLayer.style.display="none"},$ON_COLOR_PALETTE_APPLY_COLOR:function(a){function b(a){var b=parseInt(a).toString(16);return b.length<2&&(b="0"+b),b.toUpperCase()}if(this.rxRGBColorPattern.test(a)){var c=b(RegExp.$1),d=b(RegExp.$2),e=b(RegExp.$3);a="#"+c+d+e}this.oApp.exec(this.sCallbackCmd,[a])},$ON_EVENT_MOUSEUP_COLOR_PALETTE:function(a){var b=a.target;b.style.backgroundColor&&this.oApp.exec("COLOR_PALETTE_APPLY_COLOR",[b.style.backgroundColor])}}),xe.XE_FontColor=a.Class({name:"XE_FontColor",rxColorPattern:/^#?[0-9a-fA-F]{6}$|^rgb\(\d+, ?\d+, ?\d+\)$/i,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_fontcolor_layer",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.exec("REGISTER_UI_EVENT",["fontColor","click","TOGGLE_FONTCOLOR_LAYER"])},$ON_TOGGLE_FONTCOLOR_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer,null,"SHOW_COLOR_PALETTE",["APPLY_FONTCOLOR",this.elDropdownLayer]])},$ON_APPLY_FONTCOLOR:function(a){return this.rxColorPattern.test(a)?(this.oApp.exec("SET_WYSIWYG_STYLE",[{color:a}]),void this.oApp.exec("HIDE_ACTIVE_LAYER")):void alert(this.oApp.$MSG("XE_FontColor.invalidColorCode"))}}),xe.XE_BGColor=a.Class({name:"XE_BGColor",rxColorPattern:/^#?[0-9a-fA-F]{6}$|^rgb\(\d+, ?\d+, ?\d+\)$/i,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_bgcolor_layer",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.exec("REGISTER_UI_EVENT",["bgColor","click","TOGGLE_BGCOLOR_LAYER"]),this.oApp.registerBrowserEvent(this.elDropdownLayer,"click","EVENT_APPLY_BGCOLOR",[])},$ON_TOGGLE_BGCOLOR_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer,null,"SHOW_COLOR_PALETTE",["APPLY_BGCOLOR",this.elDropdownLayer]])},$ON_EVENT_APPLY_BGCOLOR:function(a){var b=a.target;if("SPAN"==b.tagName&&(b=b.parentNode),"BUTTON"==b.tagName){var c,d;c=b.style.backgroundColor,d=b.style.color,this.oApp.exec("APPLY_BGCOLOR",[c,d])}},$ON_APPLY_BGCOLOR:function(a,b){if(!this.rxColorPattern.test(a))return void alert(this.oApp.$MSG("XE_BGColor.invalidColorCode"));var c={backgroundColor:a};b&&(c.color=b),this.oApp.exec("SET_WYSIWYG_STYLE",[c]),this.oApp.exec("HIDE_ACTIVE_LAYER")}}),xe.XE_Quote=a.Class({name:"XE_Quote",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_blockquote_layer",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.exec("REGISTER_UI_EVENT",["quote","click","TOGGLE_BLOCKQUOTE_LAYER"]),this.oApp.registerBrowserEvent(this.elDropdownLayer,"click","EVENT_APPLY_SEDITOR_BLOCKQUOTE",[])},$ON_TOGGLE_BLOCKQUOTE_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer])},$ON_EVENT_APPLY_SEDITOR_BLOCKQUOTE:function(a){var b=a.target;if("BUTTON"==b.tagName){var c=b.parentNode.className;"q8"!=c?this._wrapBlock("BLOCKQUOTE",c):this._unwrapBlock("BLOCKQUOTE"),this.oApp.exec("HIDE_ACTIVE_LAYER",[])}},_unwrapBlock:function(a){for(var b=this.oApp.getSelection(),c=b.commonAncestorContainer;c&&c.tagName!=a;)c=c.parentNode;if(c){for(;c.firstChild;)c.parentNode.insertBefore(c.firstChild,c);c.parentNode.removeChild(c)}},_wrapBlock:function(a,b){var c,d,e=this.oApp.getSelection(),f=e.getLineInfo(),g=f.oStart,h=f.oEnd,i=/BODY|TD|LI/i;c=g.bParentBreak&&!i.test(g.oLineBreaker.tagName)?g.oNode.parentNode:g.oNode,d=h.bParentBreak&&!i.test(h.oLineBreaker.tagName)?h.oNode.parentNode:h.oNode,e.setStartBefore(c),e.setEndAfter(d);var j=this._expandToTableStart(e,d);j&&(d=j,e.setEndAfter(j)),j=this._expandToTableStart(e,c),j&&(c=j,e.setStartBefore(j)),j=c;for(var k=e.commonAncestorContainer;j&&j!=k&&j.parentNode!=k;)j=j.parentNode;oFormattingNode=e._document.createElement(a),b&&(oFormattingNode.className=b),j==k?k.insertBefore(oFormattingNode,k.firstChild):k.insertBefore(oFormattingNode,j),e.setStartAfter(oFormattingNode),e.setEndAfter(d),e.surroundContents(oFormattingNode);for(var l,m=oFormattingNode.childNodes,n=m.length-1;n>=0;n--)if(3==m[n].nodeType||"BR"==m[n].tagName){var o=e._document.createElement("P");for(l=m[n].nextSibling;n>=0&&m[n]&&(3==m[n].nodeType||"BR"==m[n].tagName);)o.insertBefore(m[n--],o.firstChild);oFormattingNode.insertBefore(o,l),n++}if(oFormattingNode&&oFormattingNode.parentNode){var o=e._document.createElement("P");o.innerHTML=unescape("
    "),oFormattingNode.parentNode.insertBefore(o,oFormattingNode.nextSibling)}return this.oApp.exec("RECORD_UNDO_ACTION",["Block Quote"]),oFormattingNode},_expandToTableStart:function(a,b){for(var c=a.commonAncestorContainer,d=null,e=!1;b&&!e;){if(b==c&&(e=!0),/TBODY|TFOOT|THEAD|TR/i.test(b.tagName)){d=this._getTableRoot(b);break}b=b.parentNode}return d},_getTableRoot:function(a){for(;a&&"TABLE"!=a.tagName;)a=a.parentNode;return a}}),xe.XE_SCharacter=a.Class({name:"XE_SCharacter",$init:function(b){this.bIE=a.browser.msie,this._assignHTMLObjects(b),this.charSet=[],this.charSet[0]=unescape("FF5B FF5D 3014 3015 3008 3009 300A 300B 300C 300D 300E 300F 3010 3011 2018 2019 201C 201D 3001 3002 %B7 2025 2026 %A7 203B 2606 2605 25CB 25CF 25CE 25C7 25C6 25A1 25A0 25B3 25B2 25BD 25BC 25C1 25C0 25B7 25B6 2664 2660 2661 2665 2667 2663 2299 25C8 25A3 25D0 25D1 2592 25A4 25A5 25A8 25A7 25A6 25A9 %B1 %D7 %F7 2260 2264 2265 221E 2234 %B0 2032 2033 2220 22A5 2312 2202 2261 2252 226A 226B 221A 223D 221D 2235 222B 222C 2208 220B 2286 2287 2282 2283 222A 2229 2227 2228 FFE2 21D2 21D4 2200 2203 %B4 FF5E 02C7 02D8 02DD 02DA 02D9 %B8 02DB %A1 %BF 02D0 222E 2211 220F 266D 2669 266A 266C 327F 2192 2190 2191 2193 2194 2195 2197 2199 2196 2198 321C 2116 33C7 2122 33C2 33D8 2121 2668 260F 260E 261C 261E %B6 2020 2021 %AE %AA %BA 2642 2640").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[1]=unescape("%BD 2153 2154 %BC %BE 215B 215C 215D 215E %B9 %B2 %B3 2074 207F 2081 2082 2083 2084 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 FFE6 %24 FFE5 FFE1 20AC 2103 212B 2109 FFE0 %A4 2030 3395 3396 3397 2113 3398 33C4 33A3 33A4 33A5 33A6 3399 339A 339B 339C 339D 339E 339F 33A0 33A1 33A2 33CA 338D 338E 338F 33CF 3388 3389 33C8 33A7 33A8 33B0 33B1 33B2 33B3 33B4 33B5 33B6 33B7 33B8 33B9 3380 3381 3382 3383 3384 33BA 33BB 33BC 33BD 33BE 33BF 3390 3391 3392 3393 3394 2126 33C0 33C1 338A 338B 338C 33D6 33C5 33AD 33AE 33AF 33DB 33A9 33AA 33AB 33AC 33DD 33D0 33D3 33C3 33C9 33DC 33C6").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[2]=unescape("3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 326A 326B 326C 326D 326E 326F 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 327A 327B 24D0 24D1 24D2 24D3 24D4 24D5 24D6 24D7 24D8 24D9 24DA 24DB 24DC 24DD 24DE 24DF 24E0 24E1 24E2 24E3 24E4 24E5 24E6 24E7 24E8 24E9 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 246A 246B 246C 246D 246E 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 320A 320B 320C 320D 320E 320F 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 321A 321B 249C 249D 249E 249F 24A0 24A1 24A2 24A3 24A4 24A5 24A6 24A7 24A8 24A9 24AA 24AB 24AC 24AD 24AE 24AF 24B0 24B1 24B2 24B3 24B4 24B5 2474 2475 2476 2477 2478 2479 247A 247B 247C 247D 247E 247F 2480 2481 2482").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[3]=unescape("3131 3132 3133 3134 3135 3136 3137 3138 3139 313A 313B 313C 313D 313E 313F 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 314A 314B 314C 314D 314E 314F 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 315A 315B 315C 315D 315E 315F 3160 3161 3162 3163 3165 3166 3167 3168 3169 316A 316B 316C 316D 316E 316F 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 317A 317B 317C 317D 317E 317F 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 318A 318B 318C 318D 318E").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[4]=unescape("0391 0392 0393 0394 0395 0396 0397 0398 0399 039A 039B 039C 039D 039E 039F 03A0 03A1 03A3 03A4 03A5 03A6 03A7 03A8 03A9 03B1 03B2 03B3 03B4 03B5 03B6 03B7 03B8 03B9 03BA 03BB 03BC 03BD 03BE 03BF 03C0 03C1 03C3 03C4 03C5 03C6 03C7 03C8 03C9 %C6 %D0 0126 0132 013F 0141 %D8 0152 %DE 0166 014A %E6 0111 %F0 0127 I 0133 0138 0140 0142 0142 0153 %DF %FE 0167 014B 0149 0411 0413 0414 0401 0416 0417 0418 0419 041B 041F 0426 0427 0428 0429 042A 042B 042C 042D 042E 042F 0431 0432 0433 0434 0451 0436 0437 0438 0439 043B 043F 0444 0446 0447 0448 0449 044A 044B 044C 044D 044E 044F").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[5]=unescape("3041 3042 3043 3044 3045 3046 3047 3048 3049 304A 304B 304C 304D 304E 304F 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 305A 305B 305C 305D 305E 305F 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 306A 306B 306C 306D 306E 306F 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 307A 307B 307C 307D 307E 307F 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 308A 308B 308C 308D 308E 308F 3090 3091 3092 3093 30A1 30A2 30A3 30A4 30A5 30A6 30A7 30A8 30A9 30AA 30AB 30AC 30AD 30AE 30AF 30B0 30B1 30B2 30B3 30B4 30B5 30B6 30B7 30B8 30B9 30BA 30BB 30BC 30BD 30BE 30BF 30C0 30C1 30C2 30C3 30C4 30C5 30C6 30C7 30C8 30C9 30CA 30CB 30CC 30CD 30CE 30CF 30D0 30D1 30D2 30D3 30D4 30D5 30D6 30D7 30D8 30D9 30DA 30DB 30DC 30DD 30DE 30DF 30E0 30E1 30E2 30E3 30E4 30E5 30E6 30E7 30E8 30E9 30EA 30EB 30EC 30ED 30EE 30EF 30F0 30F1 30F2 30F3 30F4 30F5 30F6").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" ")},_assignHTMLObjects:function(b){b=a.$(b)||document,this.elDropdownLayer=a("DIV.xpress_xeditor_sCharacter_layer",b).get(0),this.oTextField=a("INPUT",this.elDropdownLayer).get(0),this.oInsertButton=a("+ BUTTON",this.oTextField).get(0),this.aCloseButton=a("BUTTON.close",this.elDropdownLayer).get(),this.aSCharList=a(".list",this.elDropdownLayer).get();var c=a(">UL",this.elDropdownLayer).get(0);this.aLabelA=a("A",c).get()},$ON_MSG_APP_READY:function(){var b=a.fnBind(this.oApp.exec,this.oApp,"INSERT_SCHARACTERS",[this.oTextField.value]);a(this.oInsertButton).click(b),this.oApp.exec("SET_SCHARACTER_LIST",[this.charSet]);for(var c=0;cd;d++)c[d]=document.createElement("LI"),c[d].innerHTML='",this.aSCharList[a].appendChild(c[d])}},_stopBrowserEvent:function(b,c){a(b).bind(c,function(a){a.stopPropagation(),a.preventDefault()})}}),xe.XE_UndoRedo=a.Class({name:"XE_UndoRedo",actionHistory:null,oCurStateIdx:null,iMinimumSizeChange:10,sBlankContentsForFF:"
    ",$init:function(){this.aUndoHistory=[],this.oCurStateIdx={nIdx:0,nStep:0}},$PRECONDITION:function(a){if(a.match(/_DO_RECORD_UNDO_HISTORY_AT$/))return!0;try{if("WYSIWYG"!=this.oApp.getEditingMode())return!1}catch(b){return!1}return!0},$BEFORE_MSG_APP_READY:function(){this.oApp.exec("DO_RECORD_UNDO_HISTORY_AT",[this.oCurStateIdx,"","",null])},$ON_MSG_APP_READY:function(){this.bFF=a.browser.mozilla,this.oApp.exec("ADD_APP_PROPERTY",["getUndoHistory",a.fnBind(this.getUndoHistory,this)]),this.oApp.exec("ADD_APP_PROPERTY",["getUndoStateIdx",a.fnBind(this.getUndoStateIdx,this)]),this.oApp.exec("REGISTER_UI_EVENT",["undo","click","UNDO"]),this.oApp.exec("REGISTER_UI_EVENT",["redo","click","REDO"]),this.oApp.exec("REGISTER_HOTKEY",["ctrl+z","UNDO"]),this.oApp.exec("REGISTER_HOTKEY",["ctrl+y","REDO"])},$ON_UNDO:function(){if(this.oApp.exec("DO_RECORD_UNDO_HISTORY",["KEYPRESS",!1,!1,1]),0!=this.oCurStateIdx.nIdx){if(this.oCurStateIdx.nStep>0)this.oCurStateIdx.nStep--;else{var a=this.aUndoHistory[this.oCurStateIdx.nIdx];this.oCurStateIdx.nIdx--,a.nTotalSteps>1?this.oCurStateIdx.nStep=0:(a=this.aUndoHistory[this.oCurStateIdx.nIdx],this.oCurStateIdx.nStep=a.nTotalSteps-1)}this.oApp.exec("RESTORE_UNDO_HISTORY",[this.oCurStateIdx.nIdx,this.oCurStateIdx.nStep]),this.oApp.exec("CHECK_STYLE_CHANGE",[])}},$ON_REDO:function(){if(!(this.oCurStateIdx.nIdx>=this.aUndoHistory.length)){var a=this.aUndoHistory[this.oCurStateIdx.nIdx];this.oCurStateIdx.nIdx==this.aUndoHistory.length-1&&this.oCurStateIdx.nStep>=a.nTotalSteps-1||(this.oCurStateIdx.nStep"+b+"";this.oSelection.pasteHTML(e)}else{var f=Math.ceil(1e4*Math.random()),g=this.sATagMarker+f,h=""==b?["unlink"]:["createLink",!1,g+b];this.oApp.exec("EXECCOMMAND",h);try{this.oSelection.setFromSelection()}catch(i){}var j=this.oApp.getWYSIWYGDocument();a(j.body.getElementsByTagName("A")).filter('[href^="'+g+'"]').attr("href",function(){var b=new RegExp("^"+g.replace(/([\.\\])/g,"\\$1"),"i");return d?a(this).attr("target",d):a(this).removeAttr("target"),this.href.replace(b,"")})}this.oApp.exec("HIDE_ACTIVE_LAYER"),setTimeout(a.fnBind(function(){try{this.oSelection.select()}catch(a){}},this),0)},_validateURL:function(a){return/^(http|https|ftp|mailto):(?:\/\/)?((\w|-)+(?:[\.:@](\w|-))+)(?:\/|@)?([^"\?]*?)(?:\?([^\?"]*?))?$/.test(a)},$ON_EVENT_XE_HYPERLINK_KEYDOWN:function(a){13==a.keyCode&&(this.oApp.exec("XE_APPLY_HYPERLINK"),a.preventDefault(),a.stopPropagation())}}),xe.XE_Table=a.Class({name:"XE_Table",iMinRows:1,iMaxRows:20,iMinColumns:1,iMaxColumns:10,iMinBorderWidth:1,iMaxBorderWidth:10,oSelection:null,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){var c=null;this.elDropdownLayer=a("DIV.xpress_xeditor_table_layer",b).get(0),this.welDropdownLayer=a(this.elDropdownLayer),c=a("INPUT",this.elDropdownLayer).get(),this.oRowInput=c[0],this.oColumnInput=c[1],this.oBorderWidthInput=c[2],this.oBorderColorInput=c[3],this.oBGColorInput=c[4],c=a("BUTTON",this.elDropdownLayer).get(),this.oButton_AddRow=c[0],this.oButton_RemoveRow=c[1],this.oButton_AddColumn=c[2],this.oButton_RemoveColumn=c[3],this.oButton_IncBorderWidth=c[4],this.oButton_DecBorderWidth=c[5],this.oButton_BorderColorPreview=c[6],this.oButton_BorderColor=c[7],this.oButton_BGColorPreview=c[8],this.oButton_BGColor=c[9],this.oButton_Insert=c[10],this.oButton_Cancel=c[11],this.oSampleTable=a("TABLE",this.elDropdownLayer).get(0)},$ON_MSG_APP_READY:function(){this.oApp.exec("REGISTER_UI_EVENT",["table","click","ST_TOGGLE_TOOLBAR_LAYER"]),this.oApp.registerBrowserEvent(this.oRowInput,"change","ST_SET_ROW_NUM",[null,0]),this.oApp.registerBrowserEvent(this.oColumnInput,"change","ST_SET_COLUMN_NUM",[null,0]),this.oApp.registerBrowserEvent(this.oBorderWidthInput,"change","ST_SET_BORDER_WIDTH",[null,0]),this.oApp.registerBrowserEvent(this.oButton_AddRow,"click","ST_ADD_ROW"),this.oApp.registerBrowserEvent(this.oButton_RemoveRow,"click","ST_REMOVE_ROW"),this.oApp.registerBrowserEvent(this.oButton_AddColumn,"click","ST_ADD_COLUMN"),this.oApp.registerBrowserEvent(this.oButton_RemoveColumn,"click","ST_REMOVE_COLUMN"),this.oApp.registerBrowserEvent(this.oButton_IncBorderWidth,"click","ST_INC_BORDER_WIDTH"),this.oApp.registerBrowserEvent(this.oButton_DecBorderWidth,"click","ST_DEC_BORDER_WIDTH"),this.oApp.registerBrowserEvent(this.oButton_BorderColorPreview,"click","ST_TOGGLE_BORDER_COLOR_LAYER"),this.oApp.registerBrowserEvent(this.oButton_BGColorPreview,"click","ST_TOGGLE_BGCOLOR_LAYER"),this.oApp.registerBrowserEvent(this.oButton_BorderColor,"click","ST_TOGGLE_BORDER_COLOR_LAYER"),this.oApp.registerBrowserEvent(this.oButton_BGColor,"click","ST_TOGGLE_BGCOLOR_LAYER"),this.oApp.registerBrowserEvent(this.oButton_Insert,"click","ST_INSERT_TABLE"),this.oApp.registerBrowserEvent(this.oButton_Cancel,"click","ST_CLOSE"),this.oApp.exec("ST_SET_BORDER_COLOR",["#CCCCCC"]),this.oApp.exec("ST_SET_BGCOLOR",["#FFFFFF"])},$ON_ST_TOGGLE_TOOLBAR_LAYER:function(){this.oApp.exec("RECORD_UNDO_ACTION_FORCED",["KEYPRESS"]),this._showNewTable(),this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer])},$ON_ST_ADD_ROW:function(){this.oApp.exec("ST_SET_ROW_NUM",[null,1])},$ON_ST_REMOVE_ROW:function(){this.oApp.exec("ST_SET_ROW_NUM",[null,-1])},$ON_ST_ADD_COLUMN:function(){this.oApp.exec("ST_SET_COLUMN_NUM",[null,1])},$ON_ST_REMOVE_COLUMN:function(){this.oApp.exec("ST_SET_COLUMN_NUM",[null,-1])},$ON_ST_SET_ROW_NUM:function(a,b){a=a||parseInt(this.oRowInput.value),b=b||0,a+=b,athis.iMaxRows&&(a=this.iMaxRows),this.oRowInput.value=a,this._showNewTable()},$ON_ST_SET_COLUMN_NUM:function(a,b){a=a||parseInt(this.oColumnInput.value),b=b||0,a+=b,athis.iMaxColumns&&(a=this.iMaxColumns),this.oColumnInput.value=a,this._showNewTable()},$ON_ST_INSERT_TABLE:function(){var a=this._getTableString();this.oApp.exec("PASTE_HTML",[a]),this.oApp.exec("ST_CLOSE",[])},$ON_ST_CLOSE:function(){this.oApp.exec("HIDE_ACTIVE_LAYER",[])},$ON_ST_SET_BORDER_WIDTH:function(a,b){a=a||parseInt(this.oBorderWidthInput.value),b=b||0,a+=b,athis.iMaxBorderWidth&&(a=this.iMaxBorderWidth),this.oBorderWidthInput.value=a,this._showNewTable()},$ON_ST_INC_BORDER_WIDTH:function(){this.oApp.exec("ST_SET_BORDER_WIDTH",[null,1])},$ON_ST_DEC_BORDER_WIDTH:function(){this.oApp.exec("ST_SET_BORDER_WIDTH",[null,-1])},$ON_ST_TOGGLE_BORDER_COLOR_LAYER:function(){this.welDropdownLayer.hasClass("p1")?this.oApp.exec("ST_HIDE_BORDER_COLOR_LAYER",[]):this.oApp.exec("ST_SHOW_BORDER_COLOR_LAYER",[])},$ON_ST_SHOW_BORDER_COLOR_LAYER:function(){this.welDropdownLayer.addClass("p1"),this.welDropdownLayer.removeClass("p2"),this.oApp.exec("SHOW_COLOR_PALETTE",["ST_SET_BORDER_COLOR_FROM_PALETTE",this.elDropdownLayer])},$ON_ST_HIDE_BORDER_COLOR_LAYER:function(){this.welDropdownLayer.removeClass("p1"),this.oApp.exec("HIDE_COLOR_PALETTE",[])},$ON_ST_TOGGLE_BGCOLOR_LAYER:function(){this.welDropdownLayer.hasClass("p2")?this.oApp.exec("ST_HIDE_BGCOLOR_LAYER",[]):this.oApp.exec("ST_SHOW_BGCOLOR_LAYER",[])},$ON_ST_SHOW_BGCOLOR_LAYER:function(){this.welDropdownLayer.removeClass("p1"),this.welDropdownLayer.addClass("p2"),this.oApp.exec("SHOW_COLOR_PALETTE",["ST_SET_BGCOLOR_FROM_PALETTE",this.elDropdownLayer])},$ON_ST_HIDE_BGCOLOR_LAYER:function(){this.welDropdownLayer.removeClass("p2"),this.oApp.exec("HIDE_COLOR_PALETTE",[])},$ON_ST_SET_BORDER_COLOR_FROM_PALETTE:function(a){this.oApp.exec("ST_SET_BORDER_COLOR",[a]),this.oApp.exec("ST_HIDE_BORDER_COLOR_LAYER",[])},$ON_ST_SET_BORDER_COLOR:function(a){this.oBorderColorInput.value=a,this.oButton_BorderColorPreview.style.backgroundColor=a,this._showNewTable()},$ON_ST_SET_BGCOLOR_FROM_PALETTE:function(a){this.oApp.exec("ST_SET_BGCOLOR",[a]),this.oApp.exec("ST_HIDE_BGCOLOR_LAYER",[])},$ON_ST_SET_BGCOLOR:function(a){this.oBGColorInput.value=a,this.oButton_BGColorPreview.style.backgroundColor=a,this._showNewTable()},_showNewTable:function(){var a=document.createElement("DIV");a.innerHTML=this._getTableString();var b=a.firstChild;this.oSampleTable.parentNode.insertBefore(b,this.oSampleTable),this.oSampleTable.parentNode.removeChild(this.oSampleTable),this.oSampleTable=b},_getTableString:function(){var b=this.oBorderColorInput.value,c=this.oBGColorInput.value,d=this.oBorderWidthInput.value,e="";e=a.browser.msie?"
    ":a.browser.firefox?"":"";for(var f='
    {$lang->trasher} - {@ - $oMemberModel = &getModel('member'); - $remover_info = $oMemberModel->getMemberInfoByMemberSrl($oTrashVO->getRemoverSrl()); - } {htmlspecialchars($remover_info->nick_name)} [{$remover_info->user_id}]
    {$lang->module} - {@ - $oModuleModel = &getModel('module'); - $module_info = $oModuleModel->getModuleInfoByModuleSrl($oOrigin->module_srl); - } {$module_info->browser_title} ({$module_info->mid})
    {$comment}{$lang->no_text_comment} + + {$module_list[$val->module_srl]->browser_title} - + + {$comment}{$lang->no_text_comment} + {$val->getNickName()} {number_format($val->get('voted_count'))}/{number_format($val->get('blamed_count'))} {(zdate($val->regdate,"Y-m-d\nH:i:s"))}{htmlspecialchars($oDocument->getTitleText())}{$lang->no_title_document} + + {$module_list[$oDocument->get('module_srl')]->browser_title} - + + {htmlspecialchars($oDocument->getTitleText())}{$lang->no_title_document} {$oDocument->getNickName()} {$oDocument->get('readed_count')} {$oDocument->get('voted_count')}/{$oDocument->get('blamed_count')} {$lang->no_text_comment} - {$oTrashVO->getTitle()} + + + {$module_list[$oTrashVO->unserializedObject['module_srl']]->browser_title} - + + {$oTrashVO->getTitle()} + {$lang->document}{$lang->comment} {$oTrashVO->getNickName()}
    {$lang->cmd_widget_css_class} + +
    {$lang->cmd_widget_align} diff --git a/modules/widget/widget.controller.php b/modules/widget/widget.controller.php index f807593cc8..8c6587b9d2 100644 --- a/modules/widget/widget.controller.php +++ b/modules/widget/widget.controller.php @@ -486,20 +486,20 @@ function execute($widget, $args, $javascript_mode = false, $escaped = true) $oEditorController = getController('editor'); $body = $oEditorController->transComponent($body); - $widget_content_header = sprintf('
    ', $args->id, $style, $inner_style); + $widget_content_header = sprintf('
    ', $args->id, $style, $inner_style); $widget_content_body = $body; $widget_content_footer = '
    '; break; // If the widget box; it could case 'widgetBox' : - $widget_content_header = sprintf('
    ', $args->id, $style, $inner_style); + $widget_content_header = sprintf('
    ', $args->id, $style, $inner_style); $widget_content_body = $widgetbox_content; break; // If the General wijetil default : - $widget_content_header = sprintf('
    ',$args->id,$style); + $widget_content_header = sprintf('
    ',$args->id,$style); $widget_content_body = sprintf('
    %s
    ', $inner_style,$widget_content); $widget_content_footer = '
    '; break; @@ -537,7 +537,7 @@ function execute($widget, $args, $javascript_mode = false, $escaped = true) $oWidgetController = getController('widget'); $widget_content_header = sprintf( - '
    '. + '
    '. '
    '. '
    '. '
    '. @@ -571,7 +571,7 @@ function execute($widget, $args, $javascript_mode = false, $escaped = true) } $widget_content_header = sprintf( - '
    '. + '
    '. '
    '. '
    '. '
    ',$args->widgetstyle,$style, $widget_padding_top, $widget_padding_right, $widget_padding_bottom, $widget_padding_left,implode(' ',$attribute),$inner_style); @@ -595,7 +595,7 @@ function execute($widget, $args, $javascript_mode = false, $escaped = true) } } - $widget_content_header = sprintf('
    '. + $widget_content_header = sprintf('
    '. '
    '. '
    '. '
    ',$args->widgetstyle,$style, @@ -710,6 +710,7 @@ function arrangeWidgetVars($widget, $request_vars, &$vars) } $widget = $vars->selected_widget; + $vars->css_class = $request_vars->css_class; $vars->widgetstyle = $request_vars->widgetstyle; $vars->skin = trim($request_vars->skin); From e94bdf29b15b678ff66597759bbcb64225b8852a Mon Sep 17 00:00:00 2001 From: bnu Date: Wed, 19 Mar 2014 18:06:08 +0900 Subject: [PATCH 224/549] =?UTF-8?q?fix=20#76=20=EC=9C=84=EC=A0=AF=20?= =?UTF-8?q?=ED=8E=B8=EC=A7=91=ED=9E=90=20=EB=95=8C=20=EC=8B=A4=EC=A0=9C=20?= =?UTF-8?q?=EB=B3=B4=EC=97=AC=EC=A7=88=20=ED=99=94=EB=A9=B4=EA=B3=BC=20?= =?UTF-8?q?=EB=8B=A4=EB=A5=B4=EA=B2=8C=20=EB=B3=B4=EC=97=AC=EC=A7=80?= =?UTF-8?q?=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0=20-=20twitt?= =?UTF-8?q?er=20bootstrap=EC=9D=84=20=EC=A0=81=EC=9A=A9=ED=95=98=EC=A7=80?= =?UTF-8?q?=20=EC=95=8A=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/display/HTMLDisplayHandler.php | 2 +- modules/widget/tpl/css/widget.css | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/classes/display/HTMLDisplayHandler.php b/classes/display/HTMLDisplayHandler.php index 54e02568a2..664263e956 100644 --- a/classes/display/HTMLDisplayHandler.php +++ b/classes/display/HTMLDisplayHandler.php @@ -63,7 +63,7 @@ function toDoc(&$oModule) // add .x div for adminitration pages if(Context::getResponseMethod() == 'HTML') { - if(Context::get('module') != 'admin' && strpos(Context::get('act'), 'Admin') > 0) + if(Context::get('module') != 'admin' && strpos(Context::get('act'), 'Admin') > 0 && Context::get('act') != 'dispPageAdminContentModify' && Context::get('act') != 'dispPageAdminMobileContentModify') { $output = '
    ' . $output . '
    '; } diff --git a/modules/widget/tpl/css/widget.css b/modules/widget/tpl/css/widget.css index 2fae1b5910..5d4bf271b5 100644 --- a/modules/widget/tpl/css/widget.css +++ b/modules/widget/tpl/css/widget.css @@ -127,6 +127,7 @@ height: 14px; border: 0; cursor: pointer; + vertical-align: middle; background: transparent url("../../../admin/tpl/img/glyphicons-halflings.png") no-repeat; } .widgetButtons .widgetSetup { From 894d2cdad3080bc25c8c46bb438ad62285d319fc Mon Sep 17 00:00:00 2001 From: akasima Date: Thu, 20 Mar 2014 10:13:12 +0900 Subject: [PATCH 225/549] Version update: 1.7.5-beta1 --- config/config.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.inc.php b/config/config.inc.php index fc4bcaeba2..51f01d8633 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -29,7 +29,7 @@ /** * Display XE's full version. */ -define('__XE_VERSION__', '1.7.4'); +define('__XE_VERSION__', '1.7.5-beta1'); /** * @deprecated __ZBXE_VERSION__ will be removed. Use __XE_VERSION__ instead. From a0cd7a1d6a23aa3f74df15db00cd2bcb79a85fbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=88=AD=EC=88=AD=EA=B5=B0?= Date: Thu, 20 Mar 2014 13:44:26 +0900 Subject: [PATCH 226/549] =?UTF-8?q?xe=ED=8F=B4=EB=8D=94=EB=A1=9C=20?= =?UTF-8?q?=EC=84=A4=EC=B9=98=EC=8B=9C=20=EB=B9=84=EB=B0=80=EB=B2=88?= =?UTF-8?q?=ED=98=B8=20=EC=B0=BE=EA=B8=B0=20=EC=95=88=EB=90=98=EB=8A=94=20?= =?UTF-8?q?=ED=98=84=EC=83=81=20=ED=95=B4=EA=B2=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/member/skins/default/find_member_account.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/member/skins/default/find_member_account.html b/modules/member/skins/default/find_member_account.html index b80312c3ba..b57e5137c5 100644 --- a/modules/member/skins/default/find_member_account.html +++ b/modules/member/skins/default/find_member_account.html @@ -6,7 +6,7 @@

    {$lang->cmd_find_member_account_with_email}

    {$XE_VALIDATOR_MESSAGE}

    -
    + From 443f53f4e0acb3f78d213a1b78d2a7debb0b6abf Mon Sep 17 00:00:00 2001 From: YJSoft Date: Thu, 20 Mar 2014 16:04:44 +0900 Subject: [PATCH 227/549] =?UTF-8?q?browser=5Ftitle=EC=9D=B4=20=EC=97=86?= =?UTF-8?q?=EC=9D=84=20=EA=B2=BD=EC=9A=B0=20warning=20=EB=B0=9C=EC=83=9D?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 게시글 관리 등에서 문제 발생 --- modules/module/module.model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/module/module.model.php b/modules/module/module.model.php index 56f52caa59..f7912d6673 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -403,7 +403,7 @@ function getModuleInfoByModuleSrl($module_srl, $columnList = array()) else $module_info = $mid_info; $oModuleController = getController('module'); - $oModuleController->replaceDefinedLangCode($module_info->browser_title); + if(isset($module_info->browser_title)) $oModuleController->replaceDefinedLangCode($module_info->browser_title); return $this->addModuleExtraVars($module_info); } From bbeb7e2d0a44b55ddb5f1dd193c55e2de518149a Mon Sep 17 00:00:00 2001 From: akasima Date: Thu, 20 Mar 2014 17:14:26 +0900 Subject: [PATCH 228/549] =?UTF-8?q?#441=20=EA=B2=8C=EC=8B=9C=ED=8C=90=20?= =?UTF-8?q?=EB=AA=A8=EB=93=88=20=EB=B2=84=EC=A0=84=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/board/conf/info.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/board/conf/info.xml b/modules/board/conf/info.xml index 36eb8d8cd4..ecc2e53a2c 100644 --- a/modules/board/conf/info.xml +++ b/modules/board/conf/info.xml @@ -18,8 +18,8 @@ Модуль для функционирования форума. Также включает в себя функции администратора такие как создание/управление форумами. 提供用戶相對應的討論板功能,包含建立/新增及管理等功能。 Pano yapılandırmaları için kullanılan modüldür. Ayrıca oluşturma/yönetme gibi yönetici özellikleri de içerir. - 1.7.2-beta.3 - 2014-01-09 + 1.7.2 + 2014-03-20 service From b1525b7a21ded1bfa78c24ecc003dd652f8059f1 Mon Sep 17 00:00:00 2001 From: khongchi Date: Fri, 21 Mar 2014 13:54:51 +0900 Subject: [PATCH 229/549] =?UTF-8?q?#593=20krzip=20=EC=A3=BC=EC=86=8C?= =?UTF-8?q?=EC=9D=BC=20=EB=95=8C=EC=97=90=EB=A7=8C=20=EC=BD=A4=EB=A7=88(,)?= =?UTF-8?q?=EB=A5=BC=20=EC=82=AC=EC=9A=A9=ED=95=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95(#461)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/extravar/Extravar.class.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/classes/extravar/Extravar.class.php b/classes/extravar/Extravar.class.php index e7b40a2df4..61e0bbd9d4 100644 --- a/classes/extravar/Extravar.class.php +++ b/classes/extravar/Extravar.class.php @@ -238,6 +238,10 @@ function _getTypeValue($type, $value) { $values = explode('|@|', $value); } + elseif(strpos($value, ',') !== FALSE) + { + $values = explode(',', $value); + } else { $values = array($value); From fcf393b4b89773e5d689811e2d0fd587262ab213 Mon Sep 17 00:00:00 2001 From: akasima Date: Fri, 21 Mar 2014 17:14:10 +0900 Subject: [PATCH 230/549] =?UTF-8?q?#493=20XEHttpRequest=20=EB=B2=84?= =?UTF-8?q?=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/httprequest/XEHttpRequest.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/httprequest/XEHttpRequest.class.php b/classes/httprequest/XEHttpRequest.class.php index 02ed6b8a32..538956561e 100644 --- a/classes/httprequest/XEHttpRequest.class.php +++ b/classes/httprequest/XEHttpRequest.class.php @@ -163,7 +163,7 @@ function sendWithSock($target, $method, $timeout, $post_vars) $chunk_size = hexdec(fgets($sock)); if($chunk_size) { - $body .= fread($sock, $chunk_size); + $body .= fgets($sock, $chunk_size+1); } } else From cfb99c108886042bf8d45afa4eb9d375b87c4618 Mon Sep 17 00:00:00 2001 From: akasima Date: Fri, 21 Mar 2014 18:26:57 +0900 Subject: [PATCH 231/549] =?UTF-8?q?#420=20=EC=84=A4=EB=AC=B8=EC=A1=B0?= =?UTF-8?q?=EC=82=AC=20=EA=B2=B0=EA=B3=BC=EB=B3=B4=EA=B8=B0=20=EC=A0=9C?= =?UTF-8?q?=EB=AA=A9=20=EB=85=B8=EC=B6=9C=20=EB=AC=B8=EC=A0=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/poll/poll.model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/poll/poll.model.php b/modules/poll/poll.model.php index fdc090ecb9..174f6b0ae1 100644 --- a/modules/poll/poll.model.php +++ b/modules/poll/poll.model.php @@ -111,7 +111,7 @@ function getPollResultHtml($poll_srl, $skin = 'default') $poll->poll_count = (int)$output->data->poll_count; $poll->stop_date = $output->data->stop_date; - $columnList = array('poll_index_srl', 'checkcount', 'poll_count'); + $columnList = array('poll_index_srl', 'title', 'checkcount', 'poll_count'); $output = executeQuery('poll.getPollTitle', $args, $columnList); if(!$output->data) return; if(!is_array($output->data)) $output->data = array($output->data); From 1232d28f5845bd91d5e281f83411dd8af036710a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=88=AD=EC=88=AD=EA=B5=B0?= Date: Sat, 22 Mar 2014 13:29:28 +0900 Subject: [PATCH 232/549] Update find_member_account.html --- modules/member/skins/default/find_member_account.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/member/skins/default/find_member_account.html b/modules/member/skins/default/find_member_account.html index b57e5137c5..1b7cf67e21 100644 --- a/modules/member/skins/default/find_member_account.html +++ b/modules/member/skins/default/find_member_account.html @@ -6,7 +6,7 @@

    {$lang->cmd_find_member_account_with_email}

    {$XE_VALIDATOR_MESSAGE}

    - + From bae4b14fd7eb5f4d341c4610d8d14f60c578ec77 Mon Sep 17 00:00:00 2001 From: izuzero Date: Sun, 23 Mar 2014 01:35:33 +0900 Subject: [PATCH 233/549] =?UTF-8?q?=EA=B2=80=EC=83=89=20=EB=AA=A8=EB=93=88?= =?UTF-8?q?=20xe=5Fvalidator=5Fid=20=EA=B0=92=20=EC=98=A4=ED=83=80=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/integration_search/tpl/skin_info.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/integration_search/tpl/skin_info.html b/modules/integration_search/tpl/skin_info.html index 0c42468be6..855292c46d 100644 --- a/modules/integration_search/tpl/skin_info.html +++ b/modules/integration_search/tpl/skin_info.html @@ -1,13 +1,13 @@ -
    +

    {$XE_VALIDATOR_MESSAGE}

    - +

    {$lang->skin_default_info}

    From 0bf580499c99916632b7feb7881ee3d98fe836c3 Mon Sep 17 00:00:00 2001 From: YJSoft Date: Mon, 24 Mar 2014 15:00:37 +0900 Subject: [PATCH 234/549] =?UTF-8?q?=EB=AA=A8=EB=93=88=20=ED=8F=AC=EB=A7=B7?= =?UTF-8?q?=200.1=20=EC=B2=98=EB=A6=AC=20=EB=B6=80=EB=B6=84=EC=9D=98=20php?= =?UTF-8?q?=205.4=20=EB=8C=80=EC=9D=91=20stdClass=20=EC=A0=95=EC=9D=98=20?= =?UTF-8?q?=EB=88=84=EB=9D=BD=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 모듈 포맷 0.2는 수정이 되었으나 0.1이 되어있지 않아 생길수 있는 문제 수정 --- modules/module/module.model.php | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/module/module.model.php b/modules/module/module.model.php index f7912d6673..638db4dffb 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -785,6 +785,7 @@ function getModuleInfoXml($module) if(!$module_info->category) $module_info->category = 'service'; sscanf($xml_obj->author->attrs->date, '%d. %d. %d', $date_obj->y, $date_obj->m, $date_obj->d); $module_info->date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d); + $author_obj = new stdClass(); $author_obj->name = $xml_obj->author->name->body; $author_obj->email_address = $xml_obj->author->attrs->email_address; $author_obj->homepage = $xml_obj->author->attrs->link; From d95dbfd37670ba510f62701d123873e1cda86aad Mon Sep 17 00:00:00 2001 From: YJSoft Date: Mon, 24 Mar 2014 15:02:52 +0900 Subject: [PATCH 235/549] =?UTF-8?q?=EC=9E=98=EB=AA=BB=EB=90=9C=20=EB=AA=A8?= =?UTF-8?q?=EB=93=88=20=EC=A0=95=EB=B3=B4=EC=9D=98=20=EA=B2=BD=EC=9A=B0=20?= =?UTF-8?q?=ED=8C=8C=EC=8B=B1=ED=95=98=EC=A7=80=20=EC=95=8A=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit modules 폴더 안 올바르지 않은 구조의 폴더가 있을 경우 문제가 됨 zip 파일까지 파싱해 버리는 것 같은데 해당 부분 수정 필요(modules 폴더로 zip 업로드 뒤 ssh로 압축풀기 진행 후 zip 파일을 미삭제시 오류의 원인이 됨) --- modules/module/module.model.php | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/module/module.model.php b/modules/module/module.model.php index f7912d6673..4bc250dbb4 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -1501,6 +1501,7 @@ function getModulesXmlInfo() $info = $this->getModuleInfoXml($module_name); unset($obj); + if(!isset($info)) continue; $info->module = $module_name; $info->created_table_count = $created_table_count; $info->table_count = $table_count; From 09d44c53c78098881eb2ba141425266c9c4cee4d Mon Sep 17 00:00:00 2001 From: YJSoft Date: Mon, 24 Mar 2014 15:05:41 +0900 Subject: [PATCH 236/549] =?UTF-8?q?#584=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 파일명에 하이픈(-)이 들어간 경우 정규식 필터링 문제 --- classes/display/HTMLDisplayHandler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/display/HTMLDisplayHandler.php b/classes/display/HTMLDisplayHandler.php index 664263e956..cc1a5de968 100644 --- a/classes/display/HTMLDisplayHandler.php +++ b/classes/display/HTMLDisplayHandler.php @@ -174,7 +174,7 @@ function prepareToPrint(&$output) $output = preg_replace_callback('!!is', array($this, '_moveMetaToHeader'), $output); // change a meta fine(widget often put the tag like to the content because of caching) - $output = preg_replace_callback('//is', array($this, '_transMeta'), $output); + $output = preg_replace_callback('//is', array($this, '_transMeta'), $output); // handles a relative path generated by using the rewrite module if(Context::isAllowRewrite()) From a4950f8d969a222225110ee16c794bb4e6a2ed4b Mon Sep 17 00:00:00 2001 From: akasima Date: Thu, 27 Mar 2014 13:34:59 +0900 Subject: [PATCH 237/549] =?UTF-8?q?#608=20importer=20=EC=B2=A8=EB=B6=80?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EB=93=A4=EC=97=AC=EC=98=A4=EA=B8=B0=20?= =?UTF-8?q?=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/importer/importer.admin.controller.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/importer/importer.admin.controller.php b/modules/importer/importer.admin.controller.php index f0af114608..e99773ad4d 100644 --- a/modules/importer/importer.admin.controller.php +++ b/modules/importer/importer.admin.controller.php @@ -1009,6 +1009,7 @@ function importAttaches($fp, $module_srl, $upload_target_srl, &$files) $started = false; $buff = null; + $file_obj = new stdClass; while(!feof($fp)) { $str = trim(fgets($fp, 1024)); @@ -1017,7 +1018,6 @@ function importAttaches($fp, $module_srl, $upload_target_srl, &$files) // If it starts with , collect attachments if(trim($str) == '') { - $file_obj = new stdClass; $file_obj->file_srl = getNextSequence(); $file_obj->upload_target_srl = $upload_target_srl; $file_obj->module_srl = $module_srl; From af6d032872840cc5b38de3ac17ec57e719dafbcb Mon Sep 17 00:00:00 2001 From: YJSoft Date: Thu, 27 Mar 2014 16:16:35 +0900 Subject: [PATCH 238/549] =?UTF-8?q?php=205.4=20=ED=98=B8=ED=99=98=EC=84=B1?= =?UTF-8?q?=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- widgets/content/content.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/widgets/content/content.class.php b/widgets/content/content.class.php index f91968b55d..928e58dacd 100644 --- a/widgets/content/content.class.php +++ b/widgets/content/content.class.php @@ -743,6 +743,7 @@ function _compile($args,$content_items) if(!is_array($content_items[$module_srl]) || !count($content_items[$module_srl])) continue; unset($tab_item); + $tab_item = new stdClass(); $tab_item->title = $content_items[$module_srl][0]->getBrowserTitle(); $tab_item->content_items = $content_items[$module_srl]; $tab_item->domain = $content_items[$module_srl][0]->getDomain(); From be4fa48d6586ae7f46453fa9898697b9e7c6b4cd Mon Sep 17 00:00:00 2001 From: akasima Date: Thu, 27 Mar 2014 16:19:25 +0900 Subject: [PATCH 239/549] =?UTF-8?q?#606=20=EC=82=AC=EC=9A=A9=EC=9E=90?= =?UTF-8?q?=EC=A0=95=EC=9D=98=20=EC=84=A4=EB=AA=85=20=EB=8B=A4=EA=B5=AD?= =?UTF-8?q?=EC=96=B4=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/extravar/Extravar.class.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/classes/extravar/Extravar.class.php b/classes/extravar/Extravar.class.php index 61e0bbd9d4..2ad6a69ac4 100644 --- a/classes/extravar/Extravar.class.php +++ b/classes/extravar/Extravar.class.php @@ -458,6 +458,8 @@ function getFormHTML() } if($this->desc) { + $oModuleController = getController('module'); + $oModuleController->replaceDefinedLangCode($this->desc); $buff[] = '

    ' . htmlspecialchars($this->desc, ENT_COMPAT | ENT_HTML401, 'UTF-8', false) . '

    '; } From 483ca47d138b88c05ddd4759215c3536ca4387b6 Mon Sep 17 00:00:00 2001 From: akasima Date: Thu, 27 Mar 2014 16:50:54 +0900 Subject: [PATCH 240/549] =?UTF-8?q?#569=20content=20=EC=9C=84=EC=A0=AF?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EB=8B=89=EB=84=A4=EC=9E=84=20=EA=B8=B8?= =?UTF-8?q?=EC=9D=B4=20=EC=A0=9C=ED=95=9C=20=EC=84=A4=EC=A0=95=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- widgets/content/conf/info.xml | 4 ++++ widgets/content/content.class.php | 10 ++++++++-- widgets/content/skins/default/gallery.html | 2 +- widgets/content/skins/default/image_title.html | 4 ++-- widgets/content/skins/default/image_title_content.html | 2 +- widgets/content/skins/default/normal.html | 4 ++-- 6 files changed, 18 insertions(+), 8 deletions(-) diff --git a/widgets/content/conf/info.xml b/widgets/content/conf/info.xml index b86ad3a298..b76ddc5452 100644 --- a/widgets/content/conf/info.xml +++ b/widgets/content/conf/info.xml @@ -376,6 +376,10 @@ 内容摘要字数 內容字數 İçerik Uzunluğu + + + 닉네임 글자수 + Length of Nickname 링크 diff --git a/widgets/content/content.class.php b/widgets/content/content.class.php index f91968b55d..3ba155de75 100644 --- a/widgets/content/content.class.php +++ b/widgets/content/content.class.php @@ -34,6 +34,8 @@ function proc($args) if(!$args->subject_cut_size) $args->subject_cut_size = 0; // Cut the length of contents if(!$args->content_cut_size) $args->content_cut_size = 100; + // Cut the length of nickname + if(!$args->nickname_cut_size) $args->nickname_cut_size = 0; // Display time of the latest post if(!$args->duration_new) $args->duration_new = 12; // How to create thumbnails @@ -715,6 +717,7 @@ function _compile($args,$content_items) $widget_info->page_count = $args->page_count; $widget_info->subject_cut_size = $args->subject_cut_size; $widget_info->content_cut_size = $args->content_cut_size; + $widget_info->nickname_cut_size = $args->nickname_cut_size; $widget_info->new_window = $args->new_window; $widget_info->duration_new = $args->duration_new * 60*60; @@ -887,9 +890,12 @@ function getCategory() { return $this->get('category'); } - function getNickName() + function getNickName($cut_size = 0, $tail='...') { - return $this->get('nick_name'); + if($cut_size) $nick_name = cut_str($this->get('nick_name'), $cut_size, $tail); + else $nick_name = $this->get('nick_name'); + + return $nick_name; } function getAuthorSite() { diff --git a/widgets/content/skins/default/gallery.html b/widgets/content/skins/default/gallery.html index d789b3eff8..e7a02ef12c 100644 --- a/widgets/content/skins/default/gallery.html +++ b/widgets/content/skins/default/gallery.html @@ -33,7 +33,7 @@ - {$item->getNickName()} + {$item->getNickName($widget_info->nickname_cut_size)} {$item->getRegdate("Y-m-d")} {$item->getRegdate("H:i")} diff --git a/widgets/content/skins/default/image_title.html b/widgets/content/skins/default/image_title.html index d92565a26f..8a0b7fdfca 100644 --- a/widgets/content/skins/default/image_title.html +++ b/widgets/content/skins/default/image_title.html @@ -38,7 +38,7 @@ {$item->printExtraImages()} - {$item->getNickName()} + {$item->getNickName($widget_info->nickname_cut_size)} {$item->getRegdate("Y-m-d")} {$item->getRegdate("H:i")} @@ -100,7 +100,7 @@
    {$item->getNickName()}{$item->getNickName($widget_info->nickname_cut_size)} {$item->getRegdate("Y-m-d")} {$item->getRegdate("H:i")} getMemberSrl())-->href="#" onclick="return false;" class="author member_{$item->getMemberSrl()}"href="{$item->getAuthorSite()}" onclick="window.open(this.href); return false;" class="author member"href="#" onclick="return false;" class="author member" >{$item->getNickName()}getMemberSrl())-->href="#" onclick="return false;" class="author member_{$item->getMemberSrl()}"href="{$item->getAuthorSite()}" onclick="window.open(this.href); return false;" class="author member"href="#" onclick="return false;" class="author member" >{$item->getNickName($widget_info->nickname_cut_size)} {$item->getRegdate("Y-m-d")} {$item->getRegdate("H:i")}
     
     


     

    ',g='',h=this.oColumnInput.value,i=0;h>i;i++)g+=e;g+="\n";var j=this.oRowInput.value;f+="";for(var i=0;j>i;i++)f+=g;return f+="",f+="
    "}}),xe.XE_EditingModeToggler=a.Class({name:"XE_EditingModeToggler",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){b=a.$(b)||document,this.elModeToggleButton=a("BUTTON.xpress_xeditor_mode_toggle_button",b).get(0),this.welModeToggleButton=a(this.elModeToggleButton)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elModeToggleButton,"click","EVENT_TOGGLE_EDITING_MODE",[])},$ON_EVENT_TOGGLE_EDITING_MODE:function(){"WYSIWYG"==this.oApp.getEditingMode()?this.oApp.exec("CHANGE_EDITING_MODE",["HTMLSrc"]):this.oApp.exec("CHANGE_EDITING_MODE",["WYSIWYG"])},$ON_CHANGE_EDITING_MODE:function(a){"HTMLSrc"==a?(this.welModeToggleButton.addClass("active").parent("span").addClass("active"),this.oApp.exec("DISABLE_ALL_UI",[])):(this.welModeToggleButton.removeClass("active").parent("span").removeClass("active"),this.oApp.exec("ENABLE_ALL_UI",[])) -}}),xe.XE_Editorresize=a.Class({name:"XE_Editorresize",$init:function(b,c){this.inputArea=a(".xpress_xeditor_editing_area_container",b).get(0),this.oVerticalResizer=a(".xpress_xeditor_editingArea_verticalResizer",b).get(0),this.oCheckBox=a("#editorresize",b).get(0),this.oIframe=c;var d=this;a(c).load(function(){d.oIframeBody=a(c).contents().find("body")})},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.oCheckBox,"change","XE_TOGGLE_EDITOR_RESIZE")},$ON_XE_TOGGLE_EDITOR_RESIZE:function(){1==this.oCheckBox.checked?(void 0==this._prevHeight&&(this._prevHeight=this.inputArea.style.height),this.oVerticalResizer.style.display="none",this.oApp.registerBrowserEvent(this.oIframeBody,"keydown","XE_EDITOR_RESIZE"),this.inputArea.style.height=this.oIframe.style.height=this.oIframeBody[0].scrollHeight+"px"):(a(this.oIframeBody).unbind("keydown"),this.oVerticalResizer.style.display="block",this.inputArea.style.height=this._prevHeight,this.oIframe.style.height=this._prevHeight)},$ON_XE_EDITOR_RESIZE:function(){var a=this;setTimeout(function(){a.inputArea.style.height=a.oIframe.style.height=a.oIframeBody[0].scrollHeight+"px"},0)}});var d={"XE_EditingAreaManager.onExit":"%uB0B4%uC6A9%uC774%20%uBCC0%uACBD%uB418%uC5C8%uC2B5%uB2C8%uB2E4.","XE_FontColor.invalidColorCode":"%uC0C9%uC0C1%20%uCF54%uB4DC%uB97C%20%uC62C%uBC14%uB974%uAC8C%20%uC785%uB825%uD558%uC5EC%20%uC8FC%uC2DC%uAE30%20%uBC14%uB78D%uB2C8%uB2E4.\n\n%uC608%29%20%23000000%2C%20%23FF0000%2C%20%23FFFFFF%2C%20%23ffffff%2C%20ffffff","XE_BGColor.invalidColorCode":"%uC0C9%uC0C1%20%uCF54%uB4DC%uB97C%20%uC62C%uBC14%uB974%uAC8C%20%uC785%uB825%uD558%uC5EC%20%uC8FC%uC2DC%uAE30%20%uBC14%uB78D%uB2C8%uB2E4.\n\n%uC608%29%20%23000000%2C%20%23FF0000%2C%20%23FFFFFF%2C%20%23ffffff%2C%20ffffff","XE_Hyperlink.invalidURL":"%uC785%uB825%uD558%uC2E0%20URL%uC774%20%uC62C%uBC14%uB974%uC9C0%20%uC54A%uC2B5%uB2C8%uB2E4."};xe.XpressCore.oMessageMap=d;regex_handler=/<(.*?)\s+on[a-z]+\s*=(?:\s*".*?"|\s*'.*?'|[^\s>]+)(.*?)>/gi,regex_font_color=/color\s*=(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_face=/face\s*=(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_size=/size\s*=(?:\s*"(\d+)"|\s*'(\d+)'|(\d+))/i,regex_style=/style\s*=\s*(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_weight=/font-weight\s*:\s*([a-z]+);?/i,regex_font_style=/font-style\s*:\s*italic;?/i,regex_font_decoration=/text-decoration\s*:\s*([a-z -]+);?/i,regex_jquery=/jQuery\d+\s*=(\s*"\d+"|\d+)/gi,regex_quote_attr=/([\w-]+\s*=(?:\s*"[^"]+"|\s*'[^']+'))|([\w-]+)=([^\s]+)/g;var e=("a,abbr,acronym,address,area,blockquote,br,caption,center,cite,code,col,colgroup,dd,del,dfn,div,dl,dt,em,embed,h1,h2,h3,h4,h5,h6,hr,img,ins,kbd,li,map,object,ol,p,param,pre,q,samp,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,tt,u,ul,var,iframe,object,param,style".split(","),"area,br,col,embed,hr,img,input,param,base,meta,link,basefont,isindex".split(","));xe.XE_XHTMLFormatter=a.Class({name:"XE_XHTMLFormatter",$ON_MSG_APP_READY:function(){this.oApp.addConverter("WYSIWYG_TO_IR",this.TO_IR),this.oApp.addConverter("HTMLSrc_TO_IR",this.TO_IR),this.oApp.addConverter("IR_TO_HTMLSrc",this.IR_TO),this.oApp.addConverter("IR_TO_WYSIWYG",this.IR_TO)},TO_IR:function(b){var c=[];if(a.browser.msie&&(b=b.replace(regex_jquery,""),b=b.replace(/<(\w+) ([^>]+)>/g,function(a,b,c){return"<"+b+" "+c.replace(regex_quote_attr,function(a,b,c,d){return b?b:/^"/.test(d)||/"$/.test(d)?c+"="+d:c+'="'+(d||c)+'"'})+">"})),regex=/<(\/)?([:\w\/-]+)(.*?)>/gi,b=b.replace(regex,function(b,d,f,g){var h="";if(d=d||"",f=f.toLowerCase(),g=a.trim(g||""),d){var i=[],j="";if(a.inArray(f,e)>=0)return"";if(!c.length)return"";do j=c.pop(),j.tag==f&&"deleted"!=j.state&&i.push("");while(c.length&&j.tag!=f);return i.join("")}if(a.inArray(f,e)>=0){var k=g.length;return"br"==f&&(g=""),g&&"/"==g.substring(k-1,k)||(g+=" /"),"<"+f+" "+a.trim(g)+">"}return c.push({tag:f,state:h}),"<"+d+f+(g?" "+g:"")+">"}),c.length){var d="";do d=c.pop(),"deleted"!=d.state&&(b+="");while(c.length)}return regex=/<\/p>[ \t]*(\n)?/gi,b=b.replace(regex,"

    \n")},IR_TO:function(a){return a}}),xe.XE_Extension=a.Class({name:"XE_Extension",seq:"",last_doc:"",$init:function(a,b){this.seq=b,this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_extension_layer",b).get(0)},_removeAttrs:function(a){return a},_addEvent:function(){if("WYSIWYG"==this.oApp.getEditingMode()){var b=this.oApp.getWYSIWYGDocument(),c=this.seq,d=function(){var b=a(this),d=b.attr("editor_component");d&&a.isFunction(openComponent)&&(editorPrevNode=b.get(0),openComponent(d,c))};a(b).find("img,div[editor_component]").each(function(){var c=a(this);"IMG"!=this.nodeName||c.attr("editor_component")||c.attr("widget")||c.attr("editor_component","image_link"),this.last_doc!=b&&(c.unbind("dblclick.widget").bind("dblclick.widget",d),this.last_doc=b)})}},$ON_MSG_APP_READY:function(){var b=this.oApp;b.exec("REGISTER_UI_EVENT",["extension","click","TOGGLE_EXTENSION_LAYER"]);var c=function(){b.exec("HIDE_ACTIVE_LAYER",[])};a("a",this.elDropdownLayer).each(function(){var b=a(this);b.attr("component_onclick_event_added")||(b.click(c),b.attr("component_onclick_event_added","Y"))})},$ON_TOGGLE_EXTENSION_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer])},$ON_CHANGE_EDITING_MODE:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_PASTE_HTML:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_LOAD_IR_FIELD:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_SET_IR:function(){var a=this;setTimeout(function(){a._addEvent()},100)}}),xe.XE_AutoSave=a.Class({name:"XE_AutoSave",form:null,textarea:null,$init:function(a,b){this.form=a.form,this.textarea=a,this._assignHTMLObjects(b)},_assignHTMLObjects:function(){this.welMessageBox=a("autosave_message")},$ON_MSG_APP_READY:function(){var b=a(this.form._saved_doc_title),c=a(this.form._saved_doc_content),d=a(this.form._saved_doc_document_srl),e=a.trim(b.val()),f=a.trim(c.val()),g=a.trim(d.val());(e||f||g)&&(confirm(this.form._saved_doc_message.value)?(a(this.form.title).val(e),this.oApp.setIR(f),"function"==typeof editorGetAutoSavedDoc&&editorGetAutoSavedDoc(this.form)):editorRemoveSavedDoc()),editorEnableAutoSave(this.form,a(this.form).attr("editor_sequence")),this.oApp.exec("REGISTER_HOTKEY",["ctrl+shift+s","AUTO_SAVE"])},$ON_AUTO_SAVE:function(){_editorAutoSave()}}),xe.XE_FormatWithSelectUI=a.Class({name:"XE_FormatWithSelectUI",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elFormatSelect=a("SELECT.xpress_xeditor_ui_format_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elFormatSelect,"change","SET_FORMAT_FROM_SELECT_UI"),this.elFormatSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(){var b=this.oApp.getWYSIWYGDocument().queryCommandValue("FormatBlock");return b?(a.browser.msie&&/([0-9])/.test(b)&&(b="h"+RegExp.$1),this.elFormatSelect.value=b.toLowerCase(),this.elFormatSelect.selectedIndex<0&&(this.elFormatSelect.selectedIndex=0),void(this.elFormatSelect.value!=b.toLowerCase()&&(this.elFormatSelect.selectedIndex=0))):this.elFormatSelect.selectedIndex=0},$ON_SET_FORMAT_FROM_SELECT_UI:function(){var b=this.elFormatSelect.value;b&&(a.browser.msie&&(b="<"+b+">"),this.oApp.exec("EXECCOMMAND",["FormatBlock",!1,b]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}),xe.XE_Table=a.Class({_startSel:null,_endSel:null,$ON_MSG_APP_READY:function(){this._doc=a(this.oApp.getWYSIWYGDocument()),this.$FnMouseDown=a.fnBind(this._mousedown,this),this.$FnMouseUp=a.fnBind(this._mouseup,this),this.$FnMouseMove=a.fnBind(this._mousemove,this),this._doc.mousedown(this.$FnMouseDown),this._startSel=null,this._endSel=null,this.oApp.exec("REGISTER_UI_EVENT",["merge_cells","click","MERGE_CELLS"]),this.oApp.exec("REGISTER_UI_EVENT",["split_col","click","CELL_SPLIT_BY_COL"]),this.oApp.exec("REGISTER_UI_EVENT",["split_row","click","CELL_SPLIT_BY_ROW"]),this.oApp.exec("REGISTER_HOTKEY",["ctrl+alt+m","MERGE_CELLS"]),this.$super.$ON_MSG_APP_READY()},$ON_MERGE_CELLS:function(){var b="",c=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),d=this;if(c.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Merge"]),c.each(function(){b+=a(this).html()}).eq(0).html(b);var e=0;c.eq(0).nextAll("td,th").andSelf().filter(".xe_selected_cell").each(function(){e+=d._getSpan(this,"col")});var f=(this._getRect(c.eq(0)),c.eq(0).parent("tr")),g=c.eq(c.length-1).parent("tr"),h=c.parents("table").eq(0).find("tr"),i=h.index(g.get(0))-h.index(f.get(0))+this._getSpan(c.eq(c.length-1),"row");c.eq(0).attr("colSpan",e).attr("rowSpan",i),c.slice(1).remove()}},$ON_CELL_SPLIT_BY_ROW:function(){var b=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),c=b.parents("table").eq(0),d=this;if(b.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Split By Row"]);var e=this._getRect(b.eq(0)).top,f=this._getRect(b.eq(b.length-1)).bottom;(b=c.find("td,th").filter(function(){var b=d._getRect(a(this));return!(b.bottom<=e||b.top>=f)})).filter(".xe_selected_cell").each(function(){var c=a(this),e=c.parent("tr"),f=d._getSpan(c,"row"),g=d._getRect(c),h=[],i=c.clone().html("
    "),j=1,k=1;f>1?(j=Math.ceil(f/2),k=f-j,h.push(function(){c.attr("rowSpan",j)}),i.attr("rowSpan",k)):(b.filter(function(){if(c.get(0)==this)return!1;var b=a(this),e=d._getRect(b);return e.bottom<=g.top||e.top>=g.bottom?!1:!0}).each(function(){var b=a(this),c=d._getSpan(b,"row")+1;h.push(function(){b.attr("rowSpan",c)})}),e.after(a.browser.msie?e.clone().empty().get(0).outerHTML:e.clone().empty()));var l=e.nextAll("tr");if(l.length){var m=l.eq(j-1).children("td,th").filter(function(){return d._getRect(a(this)).left>g.left});a.browser.msie?m.length?m.eq(0).before(i.get(0).outerHTML):l.eq(j-1).append(i.get(0).outerHTML):m.length?m.slice(0,1).before(i):l.slice(j-1,1).append(i)}else e.after(e.clone().empty().append(i));a.each(h,function(){this()})})}},$ON_CELL_SPLIT_BY_COL:function(){{var b=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),c=b.parents("table").slice(0,1),d=this;(new Date).getTime()}if(b.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Split By Column"]);var e=b.eq(0).parent("tr"),f=this._getRect(e.find(".xe_selected_cell:first")).left,g=this._getRect(e.find(".xe_selected_cell:last")).right;(b=c.find("td,th").filter(function(){var b=d._getRect(a(this));return!(b.right<=f||b.left>=g)})).filter(".xe_selected_cell").each(function(){var c=a(this),e=d._getSpan(c,"col"),f=c.clone().html("
    ");if(e>1){var g=Math.ceil(e/2),h=e-g;c.attr("colSpan",g),f.attr("colSpan",h)}else{var i=d._getRect(c);b.filter(function(){if(c.get(0)==this)return!1;var b=a(this),e=d._getRect(b);return e.right<=i.left||e.left>=i.right?!1:!0}).each(function(){var b=a(this);b.attr("colSpan",d._getSpan(b,"col")+1)}),f.attr("colSpan",1)}c.after(a.browser.msie?f.get(0).outerHTML:f)})}},$ON_CHECK_STYLE_CHANGE:function(){var b=["merge_cells","split_col","split_row"],c=this.oApp,d=this._startSel&&this._startSel.is(".xe_selected_cell")?"ENABLE_UI":"DISABLE_UI";a.each(b,function(){c.exec(d,[this])})},_mousedown:function(b){function c(){return e=f.getSelection().cloneRange(),e.collapseToStart(),e=a(e.startContainer).parents().andSelf().filter("td,th").eq(0),e.length?(g._getRect(g._startSel=e),g._doc.bind("mousemove",g.$FnMouseMove),void g._doc.bind("mouseup",g.$FnMouseUp)):g._removeAllListener()||!0}var d=a(b.target),e=d.parents().andSelf().filter("td,th,table"),f=this.oApp,g=this;a("td.xe_selected_cell",this.oApp.getWYSIWYGDocument()).removeClass("xe_selected_cell"),this._startSel=null,this._endSel=null,e.length&&this._isLeftClicked(b.button)&&setTimeout(c,0)},_mouseup:function(){this._removeAllListener(),this._startSel=this._endSel=null},_mousemove:function(b){function c(){var a=f.oApp.getSelection();f._startSel&&(f._startSel.get(0).firstChild||f._startSel.text(" "),a.selectNode(f._startSel.get(0).firstChild),a.collapseToStart(),a.select())}var d=a(b.target),e=d.parents().andSelf().filter("td,th").eq(0),f=this;if(e.length&&this._isLeftClicked(b.button)&&!(!this._endSel&&e.get(0)==this._startSel.get(0)||this._endSel&&e.get(0)==this._endSel.get(0))){this._getRect(this._endSel=e);var g=Math.min(this._startSel.rect.top,this._endSel.rect.top),h=Math.min(this._startSel.rect.left,this._endSel.rect.left),i=Math.max(this._startSel.rect.bottom,this._endSel.rect.bottom),j=Math.max(this._startSel.rect.right,this._endSel.rect.right),k=e.parents("table"),l=k.find("td,th").removeClass("xe_selected_cell"),m=a();do m.each(function(){var b=f._getRect(a(this));b.right>j&&(j=b.right),b.lefti&&(i=b.bottom)}),l=l.filter(":not(.xe_selected_cell)"),m=l.filter(function(){var b=f._getRect(a(this));return b.right<=h||b.left>=j||b.bottom<=g||b.top>=i?!1:!0}).addClass("xe_selected_cell");while(m.length);return a.browser.mozilla||setTimeout(c,0),!1}},_removeAllListener:function(){this._doc.unbind("mousemove",this.$FnMouseMove),this._doc.unbind("mouseup",this.$FnMouseUp)},_isLeftClicked:function(b){return a.browser.msie?!!(1&b):0==b},_getRect:function(a){var b=a.get(0);return a.rect={},a.rect.top=b.offsetTop,a.rect.left=b.offsetLeft,a.rect.bottom=a.rect.top+b.offsetHeight,a.rect.right=a.rect.left+b.offsetWidth,a.rect},_getSpan:function(b,c){var d=parseInt(a(b).attr(c+"span"));return isNaN(d)?1:d}}).extend(xe.XE_Table)}(jQuery),window.xe||(xe={}),xe.Editors=[],xe.XE_GET_WYSYWYG_MODE=jQuery.Class({name:"XE_GET_WYSYWYG_MODE",$init:function(a){this.editor_sequence=a},$ON_CHANGE_EDITING_MODE:function(a){editorMode[this.editor_sequence]="HTMLSrc"==a?"html":"wysiwyg"}}),xe.XE_PreservTemplate=jQuery.Class({name:"XE_PreservTemplate",isRun:!1,$BEFORE_SET_IR:function(a){return this.isRun||a?void 0:(this.isRun=!0,!1)}}),xe.XE_Preview=jQuery.Class({name:"XE_Preview",elPreviewButton:null,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(a){this.elPreviewButton=jQuery("BUTTON.xpress_xeditor_preview_button",a)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elPreviewButton.get(0),"click","EVENT_PREVIEW",[])},$ON_EVENT_PREVIEW:function(){}}); \ No newline at end of file +}}),xe.XE_Editorresize=a.Class({name:"XE_Editorresize",$init:function(b,c){this.inputArea=a(".xpress_xeditor_editing_area_container",b).get(0),this.oVerticalResizer=a(".xpress_xeditor_editingArea_verticalResizer",b).get(0),this.oCheckBox=a("#editorresize",b).get(0),this.oIframe=c;var d=this;a(c).load(function(){d.oIframeBody=a(c).contents().find("body")})},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.oCheckBox,"change","XE_TOGGLE_EDITOR_RESIZE")},$ON_XE_TOGGLE_EDITOR_RESIZE:function(){1==this.oCheckBox.checked?(void 0==this._prevHeight&&(this._prevHeight=this.inputArea.style.height),this.oVerticalResizer.style.display="none",this.oApp.registerBrowserEvent(this.oIframeBody,"keydown","XE_EDITOR_RESIZE"),this.inputArea.style.height=this.oIframe.style.height=this.oIframeBody[0].scrollHeight+"px"):(a(this.oIframeBody).unbind("keydown"),this.oVerticalResizer.style.display="block",this.inputArea.style.height=this._prevHeight,this.oIframe.style.height=this._prevHeight)},$ON_XE_EDITOR_RESIZE:function(){var a=this;setTimeout(function(){a.inputArea.style.height=a.oIframe.style.height=a.oIframeBody[0].scrollHeight+"px"},0)}});var d={"XE_EditingAreaManager.onExit":"%uB0B4%uC6A9%uC774%20%uBCC0%uACBD%uB418%uC5C8%uC2B5%uB2C8%uB2E4.","XE_FontColor.invalidColorCode":"%uC0C9%uC0C1%20%uCF54%uB4DC%uB97C%20%uC62C%uBC14%uB974%uAC8C%20%uC785%uB825%uD558%uC5EC%20%uC8FC%uC2DC%uAE30%20%uBC14%uB78D%uB2C8%uB2E4.\n\n%uC608%29%20%23000000%2C%20%23FF0000%2C%20%23FFFFFF%2C%20%23ffffff%2C%20ffffff","XE_BGColor.invalidColorCode":"%uC0C9%uC0C1%20%uCF54%uB4DC%uB97C%20%uC62C%uBC14%uB974%uAC8C%20%uC785%uB825%uD558%uC5EC%20%uC8FC%uC2DC%uAE30%20%uBC14%uB78D%uB2C8%uB2E4.\n\n%uC608%29%20%23000000%2C%20%23FF0000%2C%20%23FFFFFF%2C%20%23ffffff%2C%20ffffff","XE_Hyperlink.invalidURL":"%uC785%uB825%uD558%uC2E0%20URL%uC774%20%uC62C%uBC14%uB974%uC9C0%20%uC54A%uC2B5%uB2C8%uB2E4."};xe.XpressCore.oMessageMap=d;regex_handler=/<(.*?)\s+on[a-z]+\s*=(?:\s*".*?"|\s*'.*?'|[^\s>]+)(.*?)>/gi,regex_font_color=/color\s*=(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_face=/face\s*=(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_size=/size\s*=(?:\s*"(\d+)"|\s*'(\d+)'|(\d+))/i,regex_style=/style\s*=\s*(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_weight=/font-weight\s*:\s*([a-z]+);?/i,regex_font_style=/font-style\s*:\s*italic;?/i,regex_font_decoration=/text-decoration\s*:\s*([a-z -]+);?/i,regex_jquery=/jQuery\d+\s*=(\s*"\d+"|\d+)/gi,regex_quote_attr=/([\w-]+\s*=(?:\s*"[^"]+"|\s*'[^']+'))|([\w-]+)=([^\s]+)/g;var e=("a,abbr,acronym,address,area,blockquote,br,caption,center,cite,code,col,colgroup,dd,del,dfn,div,dl,dt,em,embed,h1,h2,h3,h4,h5,h6,hr,img,ins,kbd,li,map,object,ol,p,param,pre,q,samp,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,tt,u,ul,var,iframe,object,param,style".split(","),"area,br,col,embed,hr,img,input,param,base,meta,link,basefont,isindex".split(",")),f={b:"strong",i:"em",s:"del",strike:"del"};xe.XE_XHTMLFormatter=a.Class({name:"XE_XHTMLFormatter",$ON_MSG_APP_READY:function(){this.oApp.addConverter("WYSIWYG_TO_IR",this.TO_IR),this.oApp.addConverter("HTMLSrc_TO_IR",this.TO_IR),this.oApp.addConverter("IR_TO_HTMLSrc",this.IR_TO),this.oApp.addConverter("IR_TO_WYSIWYG",this.IR_TO)},TO_IR:function(b){var c=[];if(a.browser.msie&&(b=b.replace(regex_jquery,""),b=b.replace(/<(\w+) ([^>]+)>/g,function(a,b,c){return"<"+b+" "+c.replace(regex_quote_attr,function(a,b,c,d){return b?b:/^"/.test(d)||/"$/.test(d)?c+"="+d:c+'="'+(d||c)+'"'})+">"})),regex=/<(\/)?([:\w\/-]+)(.*?)>/gi,b=b.replace(regex,function(b,d,g,h){var i="";if(d=d||"",g=g.toLowerCase(),h=a.trim(h||""),void 0!=f[g]&&(g=f[g]),d){var j=[],k="";if(a.inArray(g,e)>=0)return"";if(!c.length)return"";do k=c.pop(),k.tag==g&&"deleted"!=k.state&&j.push("");while(c.length&&k.tag!=g);return j.join("")}if(a.inArray(g,e)>=0){var l=h.length;return"br"==g&&(h=""),h&&"/"==h.substring(l-1,l)||(h+=" /"),"<"+g+" "+a.trim(h)+">"}return c.push({tag:g,state:i}),"<"+d+g+(h?" "+h:"")+">"}),c.length){var d="";do d=c.pop(),"deleted"!=d.state&&(b+="");while(c.length)}return regex=/<\/p>[ \t]*(\n)?/gi,b=b.replace(regex,"

    \n")},IR_TO:function(a){return a}}),xe.XE_Extension=a.Class({name:"XE_Extension",seq:"",last_doc:"",$init:function(a,b){this.seq=b,this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_extension_layer",b).get(0)},_removeAttrs:function(a){return a},_addEvent:function(){if("WYSIWYG"==this.oApp.getEditingMode()){var b=this.oApp.getWYSIWYGDocument(),c=this.seq,d=function(){var b=a(this),d=b.attr("editor_component");d&&a.isFunction(openComponent)&&(editorPrevNode=b.get(0),openComponent(d,c))};a(b).find("img,div[editor_component]").each(function(){var c=a(this);"IMG"!=this.nodeName||c.attr("editor_component")||c.attr("widget")||c.attr("editor_component","image_link"),this.last_doc!=b&&(c.unbind("dblclick.widget").bind("dblclick.widget",d),this.last_doc=b)})}},$ON_MSG_APP_READY:function(){var b=this.oApp;b.exec("REGISTER_UI_EVENT",["extension","click","TOGGLE_EXTENSION_LAYER"]);var c=function(){b.exec("HIDE_ACTIVE_LAYER",[])};a("a",this.elDropdownLayer).each(function(){var b=a(this);b.attr("component_onclick_event_added")||(b.click(c),b.attr("component_onclick_event_added","Y"))})},$ON_TOGGLE_EXTENSION_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer])},$ON_CHANGE_EDITING_MODE:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_PASTE_HTML:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_LOAD_IR_FIELD:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_SET_IR:function(){var a=this;setTimeout(function(){a._addEvent()},100)}}),xe.XE_AutoSave=a.Class({name:"XE_AutoSave",form:null,textarea:null,$init:function(a,b){this.form=a.form,this.textarea=a,this._assignHTMLObjects(b)},_assignHTMLObjects:function(){this.welMessageBox=a("autosave_message")},$ON_MSG_APP_READY:function(){var b=a(this.form._saved_doc_title),c=a(this.form._saved_doc_content),d=a(this.form._saved_doc_document_srl),e=a.trim(b.val()),f=a.trim(c.val()),g=a.trim(d.val());(e||f||g)&&(confirm(this.form._saved_doc_message.value)?(a(this.form.title).val(e),this.oApp.setIR(f),"function"==typeof editorGetAutoSavedDoc&&editorGetAutoSavedDoc(this.form)):editorRemoveSavedDoc()),editorEnableAutoSave(this.form,a(this.form).attr("editor_sequence")),this.oApp.exec("REGISTER_HOTKEY",["ctrl+shift+s","AUTO_SAVE"])},$ON_AUTO_SAVE:function(){_editorAutoSave()}}),xe.XE_FormatWithSelectUI=a.Class({name:"XE_FormatWithSelectUI",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elFormatSelect=a("SELECT.xpress_xeditor_ui_format_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elFormatSelect,"change","SET_FORMAT_FROM_SELECT_UI"),this.elFormatSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(){var b=this.oApp.getWYSIWYGDocument().queryCommandValue("FormatBlock");return b?(a.browser.msie&&/([0-9])/.test(b)&&(b="h"+RegExp.$1),this.elFormatSelect.value=b.toLowerCase(),this.elFormatSelect.selectedIndex<0&&(this.elFormatSelect.selectedIndex=0),void(this.elFormatSelect.value!=b.toLowerCase()&&(this.elFormatSelect.selectedIndex=0))):this.elFormatSelect.selectedIndex=0},$ON_SET_FORMAT_FROM_SELECT_UI:function(){var b=this.elFormatSelect.value;b&&(a.browser.msie&&(b="<"+b+">"),this.oApp.exec("EXECCOMMAND",["FormatBlock",!1,b]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}),xe.XE_Table=a.Class({_startSel:null,_endSel:null,$ON_MSG_APP_READY:function(){this._doc=a(this.oApp.getWYSIWYGDocument()),this.$FnMouseDown=a.fnBind(this._mousedown,this),this.$FnMouseUp=a.fnBind(this._mouseup,this),this.$FnMouseMove=a.fnBind(this._mousemove,this),this._doc.mousedown(this.$FnMouseDown),this._startSel=null,this._endSel=null,this.oApp.exec("REGISTER_UI_EVENT",["merge_cells","click","MERGE_CELLS"]),this.oApp.exec("REGISTER_UI_EVENT",["split_col","click","CELL_SPLIT_BY_COL"]),this.oApp.exec("REGISTER_UI_EVENT",["split_row","click","CELL_SPLIT_BY_ROW"]),this.oApp.exec("REGISTER_HOTKEY",["ctrl+alt+m","MERGE_CELLS"]),this.$super.$ON_MSG_APP_READY()},$ON_MERGE_CELLS:function(){var b="",c=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),d=this;if(c.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Merge"]),c.each(function(){b+=a(this).html()}).eq(0).html(b);var e=0;c.eq(0).nextAll("td,th").andSelf().filter(".xe_selected_cell").each(function(){e+=d._getSpan(this,"col")});var f=(this._getRect(c.eq(0)),c.eq(0).parent("tr")),g=c.eq(c.length-1).parent("tr"),h=c.parents("table").eq(0).find("tr"),i=h.index(g.get(0))-h.index(f.get(0))+this._getSpan(c.eq(c.length-1),"row");c.eq(0).attr("colSpan",e).attr("rowSpan",i),c.slice(1).remove()}},$ON_CELL_SPLIT_BY_ROW:function(){var b=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),c=b.parents("table").eq(0),d=this;if(b.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Split By Row"]);var e=this._getRect(b.eq(0)).top,f=this._getRect(b.eq(b.length-1)).bottom;(b=c.find("td,th").filter(function(){var b=d._getRect(a(this));return!(b.bottom<=e||b.top>=f)})).filter(".xe_selected_cell").each(function(){var c=a(this),e=c.parent("tr"),f=d._getSpan(c,"row"),g=d._getRect(c),h=[],i=c.clone().html("
    "),j=1,k=1;f>1?(j=Math.ceil(f/2),k=f-j,h.push(function(){c.attr("rowSpan",j)}),i.attr("rowSpan",k)):(b.filter(function(){if(c.get(0)==this)return!1;var b=a(this),e=d._getRect(b);return e.bottom<=g.top||e.top>=g.bottom?!1:!0}).each(function(){var b=a(this),c=d._getSpan(b,"row")+1;h.push(function(){b.attr("rowSpan",c)})}),e.after(a.browser.msie?e.clone().empty().get(0).outerHTML:e.clone().empty()));var l=e.nextAll("tr");if(l.length){var m=l.eq(j-1).children("td,th").filter(function(){return d._getRect(a(this)).left>g.left});a.browser.msie?m.length?m.eq(0).before(i.get(0).outerHTML):l.eq(j-1).append(i.get(0).outerHTML):m.length?m.slice(0,1).before(i):l.slice(j-1,1).append(i)}else e.after(e.clone().empty().append(i));a.each(h,function(){this()})})}},$ON_CELL_SPLIT_BY_COL:function(){{var b=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),c=b.parents("table").slice(0,1),d=this;(new Date).getTime()}if(b.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Split By Column"]);var e=b.eq(0).parent("tr"),f=this._getRect(e.find(".xe_selected_cell:first")).left,g=this._getRect(e.find(".xe_selected_cell:last")).right;(b=c.find("td,th").filter(function(){var b=d._getRect(a(this));return!(b.right<=f||b.left>=g)})).filter(".xe_selected_cell").each(function(){var c=a(this),e=d._getSpan(c,"col"),f=c.clone().html("
    ");if(e>1){var g=Math.ceil(e/2),h=e-g;c.attr("colSpan",g),f.attr("colSpan",h)}else{var i=d._getRect(c);b.filter(function(){if(c.get(0)==this)return!1;var b=a(this),e=d._getRect(b);return e.right<=i.left||e.left>=i.right?!1:!0}).each(function(){var b=a(this);b.attr("colSpan",d._getSpan(b,"col")+1)}),f.attr("colSpan",1)}c.after(a.browser.msie?f.get(0).outerHTML:f)})}},$ON_CHECK_STYLE_CHANGE:function(){var b=["merge_cells","split_col","split_row"],c=this.oApp,d=this._startSel&&this._startSel.is(".xe_selected_cell")?"ENABLE_UI":"DISABLE_UI";a.each(b,function(){c.exec(d,[this])})},_mousedown:function(b){function c(){return e=f.getSelection().cloneRange(),e.collapseToStart(),e=a(e.startContainer).parents().andSelf().filter("td,th").eq(0),e.length?(g._getRect(g._startSel=e),g._doc.bind("mousemove",g.$FnMouseMove),void g._doc.bind("mouseup",g.$FnMouseUp)):g._removeAllListener()||!0}var d=a(b.target),e=d.parents().andSelf().filter("td,th,table"),f=this.oApp,g=this;a("td.xe_selected_cell",this.oApp.getWYSIWYGDocument()).removeClass("xe_selected_cell"),this._startSel=null,this._endSel=null,e.length&&this._isLeftClicked(b.button)&&setTimeout(c,0)},_mouseup:function(){this._removeAllListener(),this._startSel=this._endSel=null},_mousemove:function(b){function c(){var a=f.oApp.getSelection();f._startSel&&(f._startSel.get(0).firstChild||f._startSel.text(" "),a.selectNode(f._startSel.get(0).firstChild),a.collapseToStart(),a.select())}var d=a(b.target),e=d.parents().andSelf().filter("td,th").eq(0),f=this;if(e.length&&this._isLeftClicked(b.button)&&!(!this._endSel&&e.get(0)==this._startSel.get(0)||this._endSel&&e.get(0)==this._endSel.get(0))){this._getRect(this._endSel=e);var g=Math.min(this._startSel.rect.top,this._endSel.rect.top),h=Math.min(this._startSel.rect.left,this._endSel.rect.left),i=Math.max(this._startSel.rect.bottom,this._endSel.rect.bottom),j=Math.max(this._startSel.rect.right,this._endSel.rect.right),k=e.parents("table"),l=k.find("td,th").removeClass("xe_selected_cell"),m=a();do m.each(function(){var b=f._getRect(a(this));b.right>j&&(j=b.right),b.lefti&&(i=b.bottom)}),l=l.filter(":not(.xe_selected_cell)"),m=l.filter(function(){var b=f._getRect(a(this));return b.right<=h||b.left>=j||b.bottom<=g||b.top>=i?!1:!0}).addClass("xe_selected_cell");while(m.length);return a.browser.mozilla||setTimeout(c,0),!1}},_removeAllListener:function(){this._doc.unbind("mousemove",this.$FnMouseMove),this._doc.unbind("mouseup",this.$FnMouseUp)},_isLeftClicked:function(b){return a.browser.msie?!!(1&b):0==b},_getRect:function(a){var b=a.get(0);return a.rect={},a.rect.top=b.offsetTop,a.rect.left=b.offsetLeft,a.rect.bottom=a.rect.top+b.offsetHeight,a.rect.right=a.rect.left+b.offsetWidth,a.rect},_getSpan:function(b,c){var d=parseInt(a(b).attr(c+"span"));return isNaN(d)?1:d}}).extend(xe.XE_Table)}(jQuery),window.xe||(xe={}),xe.Editors=[],xe.XE_GET_WYSYWYG_MODE=jQuery.Class({name:"XE_GET_WYSYWYG_MODE",$init:function(a){this.editor_sequence=a},$ON_CHANGE_EDITING_MODE:function(a){editorMode[this.editor_sequence]="HTMLSrc"==a?"html":"wysiwyg"}}),xe.XE_PreservTemplate=jQuery.Class({name:"XE_PreservTemplate",isRun:!1,$BEFORE_SET_IR:function(a){return this.isRun||a?void 0:(this.isRun=!0,!1)}}),xe.XE_Preview=jQuery.Class({name:"XE_Preview",elPreviewButton:null,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(a){this.elPreviewButton=jQuery("BUTTON.xpress_xeditor_preview_button",a)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elPreviewButton.get(0),"click","EVENT_PREVIEW",[])},$ON_EVENT_PREVIEW:function(){}}); \ No newline at end of file From f0bfbb517943d174b64df39eeda2c10bd7331d58 Mon Sep 17 00:00:00 2001 From: akasima Date: Wed, 6 Aug 2014 16:07:10 +0900 Subject: [PATCH 425/549] #40 insert list_order value when create new group --- modules/member/member.admin.controller.php | 5 +++++ modules/member/queries/insertGroup.xml | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/member/member.admin.controller.php b/modules/member/member.admin.controller.php index d8e03ae49e..2da5b3cd70 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -1109,6 +1109,11 @@ function insertGroup($args) if(!$output->toBool()) return $output; } + if(!isset($args->list_order) || $args->list_order=='') + { + $args->list_order = $args->group_srl; + } + if(!$args->group_srl) $args->group_srl = getNextSequence(); $output = executeQuery('member.insertGroup', $args); $this->_deleteMemberGroupCache($args->site_srl); diff --git a/modules/member/queries/insertGroup.xml b/modules/member/queries/insertGroup.xml index 40305009e3..bdf00d49c2 100644 --- a/modules/member/queries/insertGroup.xml +++ b/modules/member/queries/insertGroup.xml @@ -5,7 +5,7 @@ - + From 4d1daeb2d74dc3525d40b7888f952be1c04b6a38 Mon Sep 17 00:00:00 2001 From: akasima Date: Fri, 8 Aug 2014 12:30:33 +0900 Subject: [PATCH 426/549] modify Authors infomation --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2d9cf86bab..977e48730a 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ XpressEngine(XE)은 PHP로 작성한 설치형 CMS(Content Management System)입 @akasima @bnu @jhyeon1010 @khongchi @ngleader ## Authors -adrian.vasile.constantin, aerofleet, @akasima, @andreimarin, araste, @bnu, @bongkeun, bradly1, buffkj, c2joy, @canto, cbrghost, @ccata17, @ChanMyeong, chinaskyking, chschy, clench, @cometdev, @devdho, @devjin, @dionisrom, @dorami, @dragan-dan, ducduydaovn, duvent, @Eundong, @florinutz, @flourscent, @flyskyko, @ForPeople, FruitsHake, guny, @haneul, hankm2004, @hansim, haojilin, heemin, @hyeon0142, ikko, @izuzero, johnsonshu, juanlee0, k10206, kagami, @khongchi, @lansi951, @largeden, liahona, lickawtl, @mAKEkr, mayoojin, mglclub, @misol, mmx900, @mog422, mooo, mosmartin, @nagoon97, @ngleader, nicetwo, ovclas, @qw5414, @Rayyin, risapapa, rokmcssu, royallin, rubyeye, ryin005, @samswnlee, sanghunjun, @sejin7940, @smaker, @solidh, sspa3141, @stellar12, supershop, @taggon, @ucorina, unryong, venister, wdlee91, welcomeju, @YJSoft, ysnglee2000, zero + ## Contribution Guide `CONTRIBUTING.md`파일을 참고하세요. From da6391718547356faf65f9c46929d03569562158 Mon Sep 17 00:00:00 2001 From: sejin7940 Date: Sat, 9 Aug 2014 00:07:57 +0900 Subject: [PATCH 427/549] Update member.admin.view.php --- modules/member/member.admin.view.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/member/member.admin.view.php b/modules/member/member.admin.view.php index eebe090dcf..d7fe43ade2 100644 --- a/modules/member/member.admin.view.php +++ b/modules/member/member.admin.view.php @@ -94,7 +94,7 @@ function dispMemberAdminList() } } $config = $this->memberConfig; - $memberIdentifiers = array('email_address'=>'email_address', 'user_id'=>'user_id', 'user_name'=>'user_name', 'nick_name'=>'nick_name'); + $memberIdentifiers = array('user_id'=>'user_id', 'user_name'=>'user_name', 'nick_name'=>'nick_name'); $usedIdentifiers = array(); if(is_array($config->signupForm)) From 53047c3d2eae480844ae77904b972e51832b98da Mon Sep 17 00:00:00 2001 From: Lansi Date: Mon, 11 Aug 2014 12:21:27 +0900 Subject: [PATCH 428/549] =?UTF-8?q?=EB=A3=B0=EC=85=8B=20=EA=B8=B0=EB=B3=B8?= =?UTF-8?q?=20=EB=A3=B0=EA=B3=BC=20name=EC=9D=B4=20=EB=B9=84=EC=8A=B7?= =?UTF-8?q?=ED=95=A0=20=EB=95=8C=20=EC=B6=94=EA=B0=80=EA=B0=80=20=EC=95=88?= =?UTF-8?q?=20=EB=90=98=EB=8D=98=20=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit strpos를 in_array로 수정. --- classes/validator/Validator.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/validator/Validator.class.php b/classes/validator/Validator.class.php index 8ad9d4f138..d730404eee 100644 --- a/classes/validator/Validator.class.php +++ b/classes/validator/Validator.class.php @@ -714,7 +714,7 @@ function _compile2js() { $name = strtolower($name); - if(strpos('email,userid,url,alpha,alpha_number,number,', $name . ',') !== false) + if($name, in_array(array('email', 'userid', 'url', 'alpha', 'alpha_number', 'number'))) { continue; } From 134a3961ccd067edc560217644975f9492f45db4 Mon Sep 17 00:00:00 2001 From: sejin7940 Date: Mon, 11 Aug 2014 13:11:48 +0900 Subject: [PATCH 429/549] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=EB=A9=94?= =?UTF-8?q?=EB=89=B4=EC=84=A4=EC=A0=95=20=EC=97=90=EC=84=9C=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=EA=B0=80=20=EC=95=88=20=EB=90=98=EB=8A=94=20=ED=98=84?= =?UTF-8?q?=EC=83=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 원인은 jquery 에서 parents() 를 사용해서이다. parents 는 최상위부터 다 검토하게 되는데, 동일하 li._item_key 형태가 1차 / 2차 형태에 둘 다 나오다보니 정작 jquery 로 menu_item_srl 값을 넣을때 삭제버튼을 눌렀던 해당 2차 메뉴의 값이 들어가는게 아니라 그 상위의 1차 메뉴 값이 들어가면서... 따라서 삭제하면 무조건 '하위메뉴가 존재하여 삭제할 수 없습니다' 라는 메세지가 나오게 되는 것이다 결국, parents 대신에 closest 를 사용해서, 삭제버튼 있는 곳에서부터 찾으니 2차 메뉴의 li._item_key 가 된다 --- modules/admin/tpl/js/menu_setup.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/admin/tpl/js/menu_setup.js b/modules/admin/tpl/js/menu_setup.js index 05aec09182..25d1623a37 100644 --- a/modules/admin/tpl/js/menu_setup.js +++ b/modules/admin/tpl/js/menu_setup.js @@ -42,7 +42,7 @@ jQuery(function($){ }); $('a._child_delete').click(function() { - var menu_item_srl = $(this).parents('li').find('._item_key').val(); + var menu_item_srl = $(this).closest('li').find('._item_key').val(); listForm.find('input[name=menu_item_srl]').val(menu_item_srl); listForm.submit(); }); From 44ea68e4fee917dc061b0ae33f03e5304351207a Mon Sep 17 00:00:00 2001 From: Lansi Date: Mon, 11 Aug 2014 16:34:56 +0900 Subject: [PATCH 430/549] =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/validator/Validator.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/validator/Validator.class.php b/classes/validator/Validator.class.php index d730404eee..aa188bfe48 100644 --- a/classes/validator/Validator.class.php +++ b/classes/validator/Validator.class.php @@ -714,7 +714,7 @@ function _compile2js() { $name = strtolower($name); - if($name, in_array(array('email', 'userid', 'url', 'alpha', 'alpha_number', 'number'))) + if(in_array($name, array('email', 'userid', 'url', 'alpha', 'alpha_number', 'number'))) { continue; } From 565614696f567c32e3fb256e5dff292df65aee3e Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 12 Aug 2014 15:30:24 +0900 Subject: [PATCH 431/549] #905 install using config/install.config.php --- modules/install/install.view.php | 20 ++++++++++++++++++++ modules/install/script/ko.install.php | 12 ++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/modules/install/install.view.php b/modules/install/install.view.php index 38e34fdaaf..55fcd644c5 100644 --- a/modules/install/install.view.php +++ b/modules/install/install.view.php @@ -35,6 +35,26 @@ function dispInstallIntroduce() $install_config_file = FileHandler::getRealPath('./config/install.config.php'); if(file_exists($install_config_file)) { + /** + * If './config/install.config.php' file created and write array shown in the example below, XE installed using config file. + * ex ) + $install_config = array( + 'db_type' =>'mysqli_innodb', + 'db_port' =>'3306', + 'db_hostname' =>'localhost', + 'db_userid' =>'root', + 'db_password' =>'root', + 'db_database' =>'xe_database', + 'db_table_prefix' =>'xe', + 'user_rewrite' =>'N', + 'time_zone' =>'0000', + 'email_address' =>'admin@xe.com', + 'password' =>'pass', + 'password2' =>'pass', + 'nick_name' =>'admin', + 'user_id' =>'admin', + ); + */ include $install_config_file; if(is_array($install_config)) { diff --git a/modules/install/script/ko.install.php b/modules/install/script/ko.install.php index be74a5750b..d0475ff8c4 100644 --- a/modules/install/script/ko.install.php +++ b/modules/install/script/ko.install.php @@ -2,6 +2,7 @@ // ko/en/... $lang = Context::getLangType(); +$logged_info = Context::get('logged_info'); // insertMenu $oMenuAdminController = getAdminController('menu'); /* @var $oMenuAdminController menuAdminController */ @@ -114,20 +115,27 @@ $oDocumentController = getController('document'); /* @var $oDocumentController documentController */ $obj = new stdClass; + +$obj->member_srl = $logged_info->member_srl; +$obj->user_id = htmlspecialchars_decode($logged_info->user_id); +$obj->user_name = htmlspecialchars_decode($logged_info->user_name); +$obj->nick_name = htmlspecialchars_decode($logged_info->nick_name); +$obj->email_address = $logged_info->email_address; + $obj->module_srl = $module_srl; Context::set('version', __XE_VERSION__); $obj->title = 'Welcome XE'; $obj->content = $oTemplateHandler->compile(_XE_PATH_ . 'modules/install/script/welcome_content', 'welcome_content_'.$lang); -$output = $oDocumentController->insertDocument($obj); +$output = $oDocumentController->insertDocument($obj, true); if(!$output->toBool()) return $output; $document_srl = $output->get('document_srl'); unset($obj->document_srl); $obj->title = 'Welcome mobile XE'; -$output = $oDocumentController->insertDocument($obj); +$output = $oDocumentController->insertDocument($obj, true); if(!$output->toBool()) return $output; // save PageWidget From 72dd48a59600a16cca4b714621868de1cc969fe2 Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 12 Aug 2014 15:04:16 +0900 Subject: [PATCH 432/549] #904 autoinstall without ftp --- classes/file/FileHandler.class.php | 27 ++++ .../autoinstall.admin.controller.php | 21 ++- .../autoinstall/autoinstall.admin.model.php | 55 ++++++++ .../autoinstall/autoinstall.admin.view.php | 7 + modules/autoinstall/autoinstall.lib.php | 125 ++++++++++++++++++ modules/autoinstall/lang/lang.xml | 5 + modules/autoinstall/tpl/install.html | 10 +- modules/autoinstall/tpl/uninstall.html | 11 +- 8 files changed, 253 insertions(+), 8 deletions(-) diff --git a/classes/file/FileHandler.class.php b/classes/file/FileHandler.class.php index db1a82f629..9682339236 100644 --- a/classes/file/FileHandler.class.php +++ b/classes/file/FileHandler.class.php @@ -1017,6 +1017,33 @@ function isDir($path) $path = self::getRealPath($path); return is_dir($path) ? $path : FALSE; } + + /** + * Check is writable dir + * + * @param string $path Target dir path + * @return bool + */ + function isWritableDir($path) + { + $path = self::getRealPath($path); + if(is_dir($path)==FALSE) + { + return FALSE; + } + + $checkFile = $path . '/_CheckWritableDir'; + + $fp = fopen($checkFile, 'w'); + if(!is_resource($fp)) + { + return FALSE; + } + fclose($fp); + + self::removeFile($checkFile); + return TRUE; + } } /* End of file FileHandler.class.php */ diff --git a/modules/autoinstall/autoinstall.admin.controller.php b/modules/autoinstall/autoinstall.admin.controller.php index 0559ed293e..25c4e7efe2 100644 --- a/modules/autoinstall/autoinstall.admin.controller.php +++ b/modules/autoinstall/autoinstall.admin.controller.php @@ -181,6 +181,7 @@ function procAutoinstallAdminPackageinstall() @set_time_limit(0); $package_srls = Context::get('package_srl'); $oModel = getModel('autoinstall'); + $oAdminModel = getAdminModel('autoinstall'); $packages = explode(',', $package_srls); $ftp_info = Context::getFTPInfo(); if(!$_SESSION['ftp_password']) @@ -196,7 +197,11 @@ function procAutoinstallAdminPackageinstall() foreach($packages as $package_srl) { $package = $oModel->getPackage($package_srl); - if($ftp_info->sftp && $ftp_info->sftp == 'Y' && $isSftpSupported) + if($oAdminModel->checkUseDirectModuleInstall($package)->toBool()) + { + $oModuleInstaller = new DirectModuleInstaller($package); + } + else if($ftp_info->sftp && $ftp_info->sftp == 'Y' && $isSftpSupported) { $oModuleInstaller = new SFTPModuleInstaller($package); } @@ -308,7 +313,11 @@ function procAutoinstallAdminUninstallPackage() { $package_srl = Context::get('package_srl'); - $this->uninstallPackageByPackageSrl($package_srl); + $output = $this->uninstallPackageByPackageSrl($package_srl); + if($output->toBool()==FALSE) + { + return $output; + } if(Context::get('return_url')) { @@ -348,6 +357,8 @@ private function _uninstallPackage($package) { $path = $package->path; + $oAdminModel = getAdminModel('autoinstall'); + if(!$_SESSION['ftp_password']) { $ftp_password = Context::get('ftp_password'); @@ -359,7 +370,11 @@ private function _uninstallPackage($package) $ftp_info = Context::getFTPInfo(); $isSftpSupported = function_exists(ssh2_sftp); - if($ftp_info->sftp && $ftp_info->sftp == 'Y' && $isSftpSupported) + if($oAdminModel->checkUseDirectModuleInstall($package)->toBool()) + { + $oModuleInstaller = new DirectModuleInstaller($package); + } + else if($ftp_info->sftp && $ftp_info->sftp == 'Y' && $isSftpSupported) { $oModuleInstaller = new SFTPModuleInstaller($package); } diff --git a/modules/autoinstall/autoinstall.admin.model.php b/modules/autoinstall/autoinstall.admin.model.php index 0b228e801b..cae7cf93dc 100644 --- a/modules/autoinstall/autoinstall.admin.model.php +++ b/modules/autoinstall/autoinstall.admin.model.php @@ -348,6 +348,61 @@ public function getAutoInstallAdminInstallInfo() $this->add('package', $package); } + public function checkUseDirectModuleInstall($package) + { + $directModuleInstall = TRUE; + $arrUnwritableDir = array(); + $output = $this->isWritableDir($package->path); + if($output->toBool()==FALSE) + { + $directModuleInstall = FALSE; + $arrUnwritableDir[] = $output->get('path'); + } + + foreach($package->depends as $dep) + { + $output = $this->isWritableDir($dep->path); + if($output->toBool()==FALSE) + { + $directModuleInstall = FALSE; + $arrUnwritableDir[] = $output->get('path'); + } + } + + if($directModuleInstall==FALSE) + { + $output = new Object(-1, 'msg_direct_inall_invalid'); + $output->add('path', $arrUnwritableDir); + return $output; + } + + return new Object(); + } + + public function isWritableDir($path) + { + $path_list = explode('/', dirname($path)); + $real_path = './'; + + while($path_list) + { + $check_path = $real_path . implode('/', $path_list); + if(FileHandler::isDir($check_path)) + { + break; + } + array_pop($path_list); + } + + if(FileHandler::isWritableDir($check_path)==FALSE) + { + $output = new Object(-1, 'msg_unwritable_directory'); + $output->add('path', FileHandler::getRealPath($check_path)); + return $output; + } + return new Object(); + } + } /* End of file autoinstall.admin.model.php */ /* Location: ./modules/autoinstall/autoinstall.admin.model.php */ diff --git a/modules/autoinstall/autoinstall.admin.view.php b/modules/autoinstall/autoinstall.admin.view.php index 956ac3e3f4..2f5c02717c 100644 --- a/modules/autoinstall/autoinstall.admin.view.php +++ b/modules/autoinstall/autoinstall.admin.view.php @@ -368,6 +368,9 @@ function dispAutoinstallAdminInstall() Context::set('need_password', TRUE); } + $output = $oAdminModel->checkUseDirectModuleInstall($package); + Context::set('directModuleInstall', $output); + $this->setTemplateFile('install'); $security = new Security(); @@ -503,6 +506,7 @@ function dispAutoinstallAdminUninstall() } $oModel = getModel('autoinstall'); + $oAdminModel = getAdminModel('autoinstall'); $installedPackage = $oModel->getInstalledPackage($package_srl); if(!$installedPackage) { @@ -529,6 +533,9 @@ function dispAutoinstallAdminUninstall() return $this->stop("msg_invalid_request"); } + $output = $oAdminModel->checkUseDirectModuleInstall($installedPackage); + Context::set('directModuleInstall', $output); + $params["act"] = "getResourceapiPackages"; $params["package_srls"] = $package_srl; $body = XmlGenerater::generate($params); diff --git a/modules/autoinstall/autoinstall.lib.php b/modules/autoinstall/autoinstall.lib.php index f1ebfbad2b..ec75d030bf 100644 --- a/modules/autoinstall/autoinstall.lib.php +++ b/modules/autoinstall/autoinstall.lib.php @@ -867,6 +867,131 @@ function _copyDir(&$file_list) return new Object(); } +} + +/** + * Module installer for Direct. Not use FTP + * @author NAVER (developers@xpressengine.com) + */ +class DirectModuleInstaller extends ModuleInstaller +{ + /** + * Constructor + * + * @param object $package Package information + */ + function DirectModuleInstaller(&$package) + { + $this->package = &$package; + } + + /** + * empty + * + * @return Object + */ + function _connect() + { + return new Object(); + } + + /** + * Remove file + * + * @param string $path Path to remove + * @return Object + */ + function _removeFile($path) + { + if(substr($path, 0, 2) == "./") + { + $path = substr($path, 2); + } + $target_path = FileHandler::getRealPath($path); + + if(!FileHandler::removeFile($target_path)) + { + return new Object(-1, sprintf(Context::getLang('msg_delete_file_failed'), $path)); + } + return new Object(); + } + + /** + * Remove directory + * @param string $path Path to remove + * @return Object + */ + function _removeDir_real($path) + { + if(substr($path, 0, 2) == "./") + { + $path = substr($path, 2); + } + $target_path = FileHandler::getRealPath($path); + + FileHandler::removeDir($target_path); + + return new Object(); + } + + /** + * Close + * + * @return void + */ + function _close() + { + } + + /** + * Copy directory + * + * @param array $file_list File list to copy + * @return Object + */ + function _copyDir(&$file_list) + { + $output = $this->_connect(); + if(!$output->toBool()) + { + return $output; + } + $target_dir = $this->target_path; + + if(is_array($file_list)) + { + foreach($file_list as $k => $file) + { + $org_file = $file; + if($this->package->path == ".") + { + $file = substr($file, 3); + } + $path = FileHandler::getRealPath("./" . $this->target_path . "/" . $file); + $path_list = explode('/', dirname($this->target_path . "/" . $file)); + $real_path = "./"; + + for($i = 0; $i < count($path_list); $i++) + { + if($path_list == "") + { + continue; + } + $real_path .= $path_list[$i] . "/"; + if(!file_exists(FileHandler::getRealPath($real_path))) + { + FileHandler::makeDir($real_path); + } + } + FileHandler::copyFile( FileHandler::getRealPath($this->download_path . "/" . $org_file), FileHandler::getRealPath("./" . $target_dir . '/' . $file)); + } + } + + $this->_close(); + + return new Object(); + } + } /* End of file autoinstall.lib.php */ /* Location: ./modules/autoinstall/autoinstall.lib.php */ diff --git a/modules/autoinstall/lang/lang.xml b/modules/autoinstall/lang/lang.xml index 00aad260d6..5998c0f521 100644 --- a/modules/autoinstall/lang/lang.xml +++ b/modules/autoinstall/lang/lang.xml @@ -323,6 +323,11 @@ + + + + + diff --git a/modules/autoinstall/tpl/install.html b/modules/autoinstall/tpl/install.html index 7cf5e506d6..3efbc0fd42 100644 --- a/modules/autoinstall/tpl/install.html +++ b/modules/autoinstall/tpl/install.html @@ -40,10 +40,10 @@

    {$lang->msg_update_core_title}

    - + - +
    @@ -52,6 +52,12 @@

    {$lang->msg_update_core_title}

    + +

    {$lang->msg_direct_install_not_supported}

    +
      +
    • {$path}
    • +
    +
    diff --git a/modules/autoinstall/tpl/uninstall.html b/modules/autoinstall/tpl/uninstall.html index 23a75e6460..d6f6b5c2c8 100644 --- a/modules/autoinstall/tpl/uninstall.html +++ b/modules/autoinstall/tpl/uninstall.html @@ -17,10 +17,10 @@

    {$package->title}

    - + - +
    @@ -29,7 +29,12 @@

    {$package->title}

    - + +

    {$lang->msg_direct_install_not_supported}

    +
      +
    • {$path}
    • +
    +
    From eb3da2617e46be24353e9d82dee154db2c8d9095 Mon Sep 17 00:00:00 2001 From: akasima Date: Wed, 13 Aug 2014 11:21:03 +0900 Subject: [PATCH 433/549] #900 add error option in exec_json, exec_html --- common/js/xe.js | 116 ++++++++++++++++++++++++++++----------- common/js/xe.min.js | 2 +- common/js/xml_handler.js | 116 ++++++++++++++++++++++++++++----------- 3 files changed, 167 insertions(+), 67 deletions(-) diff --git a/common/js/xe.js b/common/js/xe.js index 7b6ad2a920..c86fe3eddc 100644 --- a/common/js/xe.js +++ b/common/js/xe.js @@ -1650,31 +1650,55 @@ function xml2json(xml, tab, ignoreAttrib) { if(typeof(xeVid)!='undefined') $.extend(data,{vid:xeVid}); - $.ajax({ - type: "POST", - dataType: "json", - url: request_uri, - contentType: "application/json", - data: $.param(data), - success: function(data) { - $(".wfsr").hide().trigger('cancel_confirm'); - if(data.error != '0' && data.error > -1000) { - if(data.error == -1 && data.message == 'msg_is_not_administrator') { - alert('You are not logged in as an administrator'); - if($.isFunction(callback_error)) callback_error(data); - - return; - } else { - alert(data.message); - if($.isFunction(callback_error)) callback_error(data); + try { + $.ajax({ + type: "POST", + dataType: "json", + url: request_uri, + contentType: "application/json", + data: $.param(data), + success: function(data) { + $(".wfsr").hide().trigger('cancel_confirm'); + if(data.error != '0' && data.error > -1000) { + if(data.error == -1 && data.message == 'msg_is_not_administrator') { + alert('You are not logged in as an administrator'); + if($.isFunction(callback_error)) callback_error(data); + + return; + } else { + alert(data.message); + if($.isFunction(callback_error)) callback_error(data); - return; + return; + } } - } - if($.isFunction(callback_sucess)) callback_sucess(data); - } - }); + if($.isFunction(callback_sucess)) callback_sucess(data); + }, + error: function(xhr, textStatus) { + $(".wfsr").hide(); + + var msg = ''; + + if (textStatus == 'parsererror') { + msg = 'The result is not valid JSON :\n-------------------------------------\n'; + + if(xhr.responseText === "") return; + + msg += xhr.responseText.replace(/<[^>]+>/g, ''); + } else { + msg = textStatus; + } + + try{ + console.log(msg); + } catch(ee){} + } + }); + } catch(e) { + alert(e); + return; + } } }; @@ -1694,17 +1718,43 @@ function xml2json(xml, tab, ignoreAttrib) { if(show_waiting_message) $(".wfsr").html(waiting_message).show(); $.extend(data,{module:action[0],act:action[1]}); - $.ajax({ - type:"POST", - dataType:"html", - url:request_uri, - data:$.param(data), - success : function(html){ - $(".wfsr").hide().trigger('cancel_confirm'); - self[type](html); - if($.isFunction(func)) func(args); - } - }); + try { + $.ajax({ + type:"POST", + dataType:"html", + url:request_uri, + data:$.param(data), + success : function(html){ + $(".wfsr").hide().trigger('cancel_confirm'); + self[type](html); + if($.isFunction(func)) func(args); + }, + error: function(xhr, textStatus) { + $(".wfsr").hide(); + + var msg = ''; + + if (textStatus == 'parsererror') { + msg = 'The result is not valid page :\n-------------------------------------\n'; + + if(xhr.responseText === "") return; + + msg += xhr.responseText.replace(/<[^>]+>/g, ''); + } else { + msg = textStatus; + } + + try{ + console.log(msg); + } catch(ee){} + } + + }); + + } catch(e) { + alert(e); + return; + } } }; diff --git a/common/js/xe.min.js b/common/js/xe.min.js index c971b5c4d7..0e871f3130 100644 --- a/common/js/xe.min.js +++ b/common/js/xe.min.js @@ -3,4 +3,4 @@ * @file common.js + js_app.js + xml_handler.js + xml_js_filter.js * @brief XE Common JavaScript **/ -function xSleep(a){a/=1e3;for(var b=new Date,c=new Date;c.getTime()-b.getTime()-1&&!a.getQuery("vid")&&(a=a.setQuery("vid",xeVid));try{"_blank"!=b&&winopen_list[b]&&(winopen_list[b].close(),winopen_list[b]=null)}catch(d){}"undefined"==typeof b&&(b="_blank"),"undefined"==typeof c&&(c="");var e=window.open(a,b,c);e.focus(),"_blank"!=b&&(winopen_list[b]=e)}function popopen(a,b){"undefined"==typeof b&&(b="_blank"),"undefined"!=typeof xeVid&&a.indexOf(request_uri)>-1&&!a.getQuery("vid")&&(a=a.setQuery("vid",xeVid)),winopen(a,b,"width=800,height=600,scrollbars=yes,resizable=yes,toolbars=no")}function sendMailTo(a){location.href="mailto:"+a}function move_url(a,b){return a?("undefined"==typeof b&&(b="N"),b="N"==b?!1:!0,/^\./.test(a)&&(a=request_uri+a),b?winopen(a):location.href=a,!1):!1}function displayMultimedia(a,b,c,d){var e=_displayMultimedia(a,b,c,d);e&&document.writeln(e)}function _displayMultimedia(a,b,c,d){0===a.indexOf("files")&&(a=request_uri+a);var e={wmode:"transparent",allowScriptAccess:"never",quality:"high",flashvars:"",autostart:!1},f=jQuery.extend(e,d||{}),g=f.autostart&&"false"!=f.autostart?"true":"false";delete f.autostart;var h="",i="",j="";if(/\.(gif|jpg|jpeg|bmp|png)$/i.test(a))j='';else if(/\.flv$/i.test(a)||/\.mov$/i.test(a)||/\.moov$/i.test(a)||/\.m4v$/i.test(a))j='';else if(/\.swf/i.test(a)){h="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",i="undefined"!=typeof enforce_ssl&&enforce_ssl?"https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0":"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0",j='',j+='';for(var k in f)"undefined"!=f[k]&&""!==f[k]&&(j+='');j+=''}else(jQuery.browser.mozilla||jQuery.browser.opera)&&(g=f.autostart&&"false"!=f.autostart?"1":"0"),j='.popup");e=h.css({overflow:"scroll"}).offset(),a=h.width(10).height(1e4).get(0).scrollWidth+2*e.left,b=h.height(10).width(1e4).get(0).scrollHeight+2*e.top,800>a&&(a=800+2*e.left),c=g.width(),d=g.height(),a!=c&&window.resizeBy(a-c,0),b!=d&&window.resizeBy(0,b-d),h.width(a-2*e.left).css({overflow:"",height:""})}function doCallModuleAction(a,b,c){var d={target_srl:c,cur_mid:current_mid,mid:current_mid};exec_xml(a,b,d,completeCallModuleAction)}function completeCallModuleAction(a){"success"!=a.message&&alert(a.message),location.reload()}function completeMessage(a){alert(a.message),location.reload()}function doChangeLangType(a){if("string"==typeof a)setLangType(a);else{var b=a.options[a.selectedIndex].value;setLangType(b)}location.href=location.href.setQuery("l","")}function setLangType(a){var b=new Date;b.setTime(b.getTime()+6048e8),setCookie("lang_type",a,b,"/")}function doDocumentPreview(a){for(var b=a;"FORM"!=b.nodeName;)b=b.parentNode;if("FORM"==b.nodeName){var c=b.getAttribute("editor_sequence"),d=editorGetContent(c),e=(window.open("","previewDocument","toolbars=no,width=700px;height=800px,scrollbars=yes,resizable=yes"),jQuery("#previewDocument"));e.length?e=e[0]:(jQuery('
    ').appendTo(document.body),e=jQuery("#previewDocument")[0]),e&&(e.content.value=d,e.submit())}}function doDocumentSave(a){var b=a.form.getAttribute("editor_sequence"),c=editorRelKeys[b].content.value;if("undefined"!=typeof b&&b&&"undefined"!=typeof editorRelKeys&&"function"==typeof editorGetContent){var d=editorGetContent(b);editorRelKeys[b].content.value=d}var e={},f=["error","message","document_srl"],g=(a.form.elements,jQuery(a.form).serializeArray());return jQuery.each(g,function(a,b){var c=jQuery.trim(b.value);return c?(/\[\]$/.test(b.name)&&(b.name=b.name.replace(/\[\]$/,"")),void(e[b.name]?e[b.name]+="|@|"+c:e[b.name]=b.value)):!0}),exec_xml("document","procDocumentTempSave",e,completeDocumentSave,f,e,a.form),editorRelKeys[b].content.value=c,!1}function completeDocumentSave(a){jQuery("input[name=document_srl]").eq(0).val(a.document_srl),alert(a.message)}function doDocumentLoad(a){objForSavedDoc=a.form,popopen(request_uri.setQuery("module","document").setQuery("act","dispTempSavedList"))}function doDocumentSelect(a,b){if(!opener||!opener.objForSavedDoc)return void window.close();switch(void 0===b&&(b="document"),b){case"page":opener.location.href=opener.current_url.setQuery("document_srl",a).setQuery("act","dispPageAdminContentModify");break;default:opener.location.href=opener.current_url.setQuery("document_srl",a).setQuery("act","dispBoardWrite")}window.close()}function viewSkinInfo(a,b){popopen("./?module=module&act=dispModuleSkinInfo&selected_module="+a+"&skin="+b,"SkinInfo")}function doAddDocumentCart(a){var b=a.value;addedDocument[addedDocument.length]=b,setTimeout(function(){callAddDocumentCart(addedDocument.length)},100)}function callAddDocumentCart(a){if(!(addedDocument.length<1||a!=addedDocument.length)){var b=[];b.srls=addedDocument.join(","),exec_xml("document","procDocumentAddCart",b,null),addedDocument=[]}}function transRGB2Hex(a){if(!a)return a;if(a.indexOf("#")>-1)return a.replace(/^#/,"");if(a.toLowerCase().indexOf("rgb")<0)return a;a=a.replace(/^rgb\(/i,"").replace(/\)$/,""),value_list=a.split(",");for(var b="",c=0;cf&&2>g){d.removeWhite(a);for(var j=a.firstChild;j;j=j.nextSibling)3==j.nodeType?b=d.escape(j.nodeValue):4==j.nodeType?b=d.escape(j.nodeValue):b[j.nodeName]?b[j.nodeName]instanceof Array?b[j.nodeName][b[j.nodeName].length]=d.toObj(j):b[j.nodeName]=[b[j.nodeName],d.toObj(j)]:b[j.nodeName]=d.toObj(j)}else a.attributes.length?b["#text"]=d.escape(d.innerXml(a)):b=d.escape(d.innerXml(a));else if(f)a.attributes.length?b["#text"]=d.escape(d.innerXml(a)):b=d.escape(d.innerXml(a));else if(g)if(g>1)b=d.escape(d.innerXml(a));else for(var k=a.firstChild;k;k=k.nextSibling)b=d.escape(k.nodeValue)}a.attributes.length||a.firstChild||(b=null)}else 9==a.nodeType?b=d.toObj(a.documentElement):alert("unhandled node type: "+a.nodeType);return b},toJson:function(a,b,c){var e=b?'"'+b+'"':"";if(a instanceof Array){for(var f=0,g=a.length;g>f;f++)a[f]=d.toJson(a[f],"",c+" ");e+=(b?":[":"[")+(a.length>1?"\n"+c+" "+a.join(",\n"+c+" ")+"\n"+c:a.join(""))+"]"}else if(null===a)e+=(b&&":")+"null";else if("object"==typeof a){var h=[];for(var i in a)h[h.length]=d.toJson(a[i],i,c+" ");e+=(b?":{":"{")+(h.length>1?"\n"+c+" "+h.join(",\n"+c+" ")+"\n"+c:h.join(""))+"}"}else e+="string"==typeof a?(b&&":")+'"'+a.toString()+'"':(b&&":")+a.toString();return e},innerXml:function(a){var b="";if("innerHTML"in a)b=a.innerHTML;else for(var c=function(a){var b="";if(1==a.nodeType){b+="<"+a.nodeName;for(var d=0;d"}else b+="/>"}else 3==a.nodeType?b+=a.nodeValue:4==a.nodeType&&(b+="");return b},d=a.firstChild;d;d=d.nextSibling)b+=c(d);return b},escape:function(a){return a.replace(/[\\]/g,"\\\\").replace(/[\"]/g,'\\"').replace(/[\n]/g,"\\n").replace(/[\r]/g,"\\r")},removeWhite:function(a){a.normalize();for(var b=a.firstChild;b;)if(3==b.nodeType)if(b.nodeValue.match(/[^ \f\n\r\t\v]/))b=b.nextSibling;else{var c=b.nextSibling;a.removeChild(b),b=c}else 1==b.nodeType?(d.removeWhite(b),b=b.nextSibling):b=b.nextSibling;return a}};9==a.nodeType&&(a=a.documentElement);var e,f=d.toObj(d.removeWhite(a));return e=d.toJson(f,a.nodeName,""),"{"+(b?e.replace(/\t/g,b):e.replace(/\t|\n/g,""))+"}"}function filterAlertMessage(a){var b=(a.error,a.message),c=a.act,d=a.redirect_url,e=location.href;"undefined"!=typeof b&&b&&"success"!=b&&alert(b),"undefined"!=typeof c&&c?e=current_url.setQuery("act",c):"undefined"!=typeof d&&d&&(e=d),e==location.href&&(e=e.replace(/#(.*)$/,"")),location.href=e}function procFilter(a,b){return b(a),!1}function legacy_filter(a,b,c,d,e,f,g,h){var i=xe.getApp("Validator")[0],j=jQuery,k=[];return i?(b.elements._filter||j(b).prepend(''),b.elements._filter.value=a,k[0]=a,k[1]=function(a){var i={},k=(a.elements,j(a).serializeArray());return j.each(k,function(a,b){var c=j.trim(b.value),d=b.name;return c&&d?(h[d]&&(d=h[d]),/\[\]$/.test(d)&&(d=d.replace(/\[\]$/,"")),void(i[d]?i[d]+="|@|"+c:i[d]=b.value)):!0}),g&&!confirm(g)?!1:void exec_xml(c,d,i,e,f,i,b)},i.cast("ADD_CALLBACK",k),i.cast("VALIDATE",[b,a]),!1):!1}jQuery&&jQuery.noConflict(),function(a){var b=navigator.userAgent.toLowerCase();a.os={Linux:/linux/.test(b),Unix:/x11/.test(b),Mac:/mac/.test(b),Windows:/win/.test(b)},a.os.name=a.os.Windows?"Windows":a.os.Linux?"Linux":a.os.Unix?"Unix":a.os.Mac?"Mac":"",window.XE={loaded_popup_menus:[],addedDocument:[],checkboxToggleAll:function(b){is_def(b)||(b="cart");var c,d={wrap:null,checked:"toggle",doClick:!1};switch(arguments.length){case 1:"string"==typeof arguments[0]?b=arguments[0]:(a.extend(d,arguments[0]||{}),b="cart");break;case 2:b=arguments[0],a.extend(d,arguments[1]||{})}d.doClick===!0&&(d.checked=null),"string"==typeof d.wrap&&(d.wrap="#"+d.wrap),c=d.wrap?a(d.wrap).find('input[name="'+b+'"]:checkbox'):a('input[name="'+b+'"]:checkbox'),"toggle"==d.checked?c.each(function(){a(this).attr("checked",a(this).attr("checked")?!1:!0)}):d.doClick===!0?c.click():c.attr("checked",d.checked)},displayPopupMenu:function(b,c,d){var e=(d.target_srl,d.menu_id),f=b.menus,g="";if(this.loaded_popup_menus[e])g=this.loaded_popup_menus[e];else{if(f){var h=f.item;if(("undefined"==typeof h.length||h.length<1)&&(h=new Array(h)),h.length)for(var i=0;i"+k+" "}}this.loaded_popup_menus[e]=g}if(g){var o=a("#popup_menu_area").html("
      "+g+"
    "),p={top:d.page_y,left:d.page_x};o.outerHeight()+p.top>a(window).height()+a(window).scrollTop()&&(p.top=a(window).height()-o.outerHeight()+a(window).scrollTop()),o.outerWidth()+p.left>a(window).width()+a(window).scrollLeft()&&(p.left=a(window).width()-o.outerWidth()+a(window).scrollLeft()),o.css({top:p.top,left:p.left}).show().focus()}}}}(jQuery),jQuery(function(a){a.browser.msie&&a("select").each(function(a,b){for(var c=!1,d=[],e=0;e-1?d[a]:e;c&&(b.oldonchange=b.onchange,b.onchange=function(){this.options[this.selectedIndex].disabled?this.selectedIndex=d[a]:this.oldonchange&&this.oldonchange()},b.selectedIndex>=0&&b.options[b.selectedIndex].disabled&&b.onchange())});var b=a(".xe_content .fold_button");if(b.size()){var c=a("div.fold_container",b);a("button.more",b).click(function(){a(this).hide().next("button").show().parent().next(c).show()}),a("button.less",b).click(function(){a(this).hide().prev("button").show().parent().next(c).hide()})}jQuery('input[type="submit"],button[type="submit"]').click(function(a){var b=jQuery(a.currentTarget);setTimeout(function(){return function(){b.attr("disabled","disabled")}}(),0),setTimeout(function(){return function(){b.removeAttr("disabled")}}(),3e3)})}),function(){function a(a,b){return a.replace(/#.*$/,"")===b.replace(/#.*$/,"")}var b=Array.isArray||function(a){return"[object Array]"==Object.prototype.toString.call(a)};String.prototype.getQuery=function(b){var c=a(this,window.location.href)?current_url:this,d=c.indexOf("?");if(-1==d)return null;var e=c.substr(d+1,this.length),f={};e.replace(/([^=]+)=([^&]*)(&|$)/g,function(){f[arguments[1]]=arguments[2]});var g=f[b];return"undefined"==typeof g&&(g=""),g},String.prototype.setQuery=function(c,d){var e,f,g,h,i=a(this,window.location.href)?current_url:this,j=i.indexOf("?"),k=i.replace(/#$/,"");if("undefined"==typeof d&&(d=""),-1!=j){var l=k.substr(j+1,i.length),m={},n=[];k=i.substr(0,j),l.replace(/([^=]+)=([^&]*)(&|$)/g,function(a,b,c){m[b]=c}),m[c]=d;for(var o in m)m.hasOwnProperty(o)&&(g=String(m[o]).trim())&&n.push(o+"="+decodeURI(g));l=n.join("&"),k+=l?"?"+l:""}else String(d).trim()&&(k=k+"?"+c+"="+d);f=/^https:\/\/([^:\/]+)(:\d+|)/i,f.test(k)&&(h="http://"+RegExp.$1,window.http_port&&80!=http_port&&(h+=":"+http_port),k=k.replace(f,h));var p=!!window.enforce_ssl;if(!p&&b(window.ssl_actions)&&(e=k.getQuery("act")))for(var q=0,r=ssl_actions.length;r>q;q++)if(ssl_actions[q]===e){p=!0;break}return f=/http:\/\/([^:\/]+)(:\d+|)/i,p&&f.test(k)&&(h="https://"+RegExp.$1,window.https_port&&443!=https_port&&(h+=":"+https_port),k=k.replace(f,h)),k=k.replace(/\/(index\.php)?\?/,"/index.php?"),encodeURI(k)},String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g,"")}}();var winopen_list=[],objForSavedDoc=null,addedDocument=[],Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(a){var b,c,d,e,f,g,h,i="",j=0;for(a=Base64._utf8_encode(a);j>2,f=(3&b)<<4|c>>4,g=(15&c)<<2|d>>6,h=63&d,isNaN(c)?g=h=64:isNaN(d)&&(h=64),i=i+this._keyStr.charAt(e)+this._keyStr.charAt(f)+this._keyStr.charAt(g)+this._keyStr.charAt(h);return i},decode:function(a){var b,c,d,e,f,g,h,i="",j=0;for(a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");j>4,c=(15&f)<<4|g>>2,d=(3&g)<<6|h,i+=String.fromCharCode(b),64!=g&&(i+=String.fromCharCode(c)),64!=h&&(i+=String.fromCharCode(d));return i=Base64._utf8_decode(i)},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;cd?b+=String.fromCharCode(d):d>127&&2048>d?(b+=String.fromCharCode(d>>6|192),b+=String.fromCharCode(63&d|128)):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128),b+=String.fromCharCode(63&d|128))}return b},_utf8_decode:function(a){for(var b="",c=0,d=0,e=0,f=0;cd?(b+=String.fromCharCode(d),c++):d>191&&224>d?(e=a.charCodeAt(c+1),b+=String.fromCharCode((31&d)<<6|63&e),c+=2):(e=a.charCodeAt(c+1),f=a.charCodeAt(c+2),b+=String.fromCharCode((15&d)<<12|(63&e)<<6|63&f),c+=3);return b}};"undefined"==typeof resizeImageContents&&(window.resizeImageContents=function(){}),"undefined"==typeof activateOptionDisabled&&(window.activateOptionDisabled=function(){}),objectExtend=jQuery.extend;var loaded_popup_menus=XE.loaded_popup_menus;jQuery(function(a){a(document).click(function(b){var c=a("#popup_menu_area");c.length||(c=a(' -
    - -
    - - {$val->description} -
    -
    + + + +

    {$var->group}

    + {@$group = $var->group} +
    + {@$not_first = true} +
    +
    + +
    + + + + {nl2br($var->description)} +
    +
    +
    +
    + +
    From e2ecc73fba69044365ece50681fa6edd9e6efac4 Mon Sep 17 00:00:00 2001 From: akasima Date: Wed, 13 Aug 2014 16:27:13 +0900 Subject: [PATCH 436/549] #907 replace to addBack() because andSelf() deprecated --- modules/editor/skins/xpresseditor/js/Xpress_Editor.js | 8 ++++---- modules/editor/skins/xpresseditor/js/xpresseditor.js | 8 ++++---- modules/editor/skins/xpresseditor/js/xpresseditor.min.js | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/editor/skins/xpresseditor/js/Xpress_Editor.js b/modules/editor/skins/xpresseditor/js/Xpress_Editor.js index 195227a63e..3c50a3018f 100644 --- a/modules/editor/skins/xpresseditor/js/Xpress_Editor.js +++ b/modules/editor/skins/xpresseditor/js/Xpress_Editor.js @@ -5492,7 +5492,7 @@ xe.XE_Table = $.Class({ // 첫번째 셀 가로 확장 var colspan = 0; - cell.eq(0).nextAll('td,th').andSelf().filter('.xe_selected_cell').each(function(idx){ + cell.eq(0).nextAll('td,th').addBack().filter('.xe_selected_cell').each(function(idx){ colspan += self._getSpan(this, 'col'); }); @@ -5685,7 +5685,7 @@ xe.XE_Table = $.Class({ _mousedown : function(event) { var cur = $(event.target); - var sel = cur.parents().andSelf().filter('td,th,table'); + var sel = cur.parents().addBack().filter('td,th,table'); var app = this.oApp; var self = this; @@ -5700,7 +5700,7 @@ xe.XE_Table = $.Class({ function delayed(){ sel = app.getSelection().cloneRange(); sel.collapseToStart(); - sel = $(sel.startContainer).parents().andSelf().filter('td,th').eq(0); + sel = $(sel.startContainer).parents().addBack().filter('td,th').eq(0); if (!sel.length) return self._removeAllListener()||true; @@ -5726,7 +5726,7 @@ xe.XE_Table = $.Class({ _mousemove : function(event) { var cur = $(event.target); - var cell = cur.parents().andSelf().filter('td,th').eq(0); + var cell = cur.parents().addBack().filter('td,th').eq(0); var self = this; // 마우스 왼쪽 버튼이 눌리지 않았으면 종료 diff --git a/modules/editor/skins/xpresseditor/js/xpresseditor.js b/modules/editor/skins/xpresseditor/js/xpresseditor.js index 09253b924f..9db74d536e 100644 --- a/modules/editor/skins/xpresseditor/js/xpresseditor.js +++ b/modules/editor/skins/xpresseditor/js/xpresseditor.js @@ -5497,7 +5497,7 @@ xe.XE_Table = $.Class({ // 첫번째 셀 가로 확장 var colspan = 0; - cell.eq(0).nextAll('td,th').andSelf().filter('.xe_selected_cell').each(function(idx){ + cell.eq(0).nextAll('td,th').addBack().filter('.xe_selected_cell').each(function(idx){ colspan += self._getSpan(this, 'col'); }); @@ -5690,7 +5690,7 @@ xe.XE_Table = $.Class({ _mousedown : function(event) { var cur = $(event.target); - var sel = cur.parents().andSelf().filter('td,th,table'); + var sel = cur.parents().addBack().filter('td,th,table'); var app = this.oApp; var self = this; @@ -5705,7 +5705,7 @@ xe.XE_Table = $.Class({ function delayed(){ sel = app.getSelection().cloneRange(); sel.collapseToStart(); - sel = $(sel.startContainer).parents().andSelf().filter('td,th').eq(0); + sel = $(sel.startContainer).parents().addBack().filter('td,th').eq(0); if (!sel.length) return self._removeAllListener()||true; @@ -5731,7 +5731,7 @@ xe.XE_Table = $.Class({ _mousemove : function(event) { var cur = $(event.target); - var cell = cur.parents().andSelf().filter('td,th').eq(0); + var cell = cur.parents().addBack().filter('td,th').eq(0); var self = this; // 마우스 왼쪽 버튼이 눌리지 않았으면 종료 diff --git a/modules/editor/skins/xpresseditor/js/xpresseditor.min.js b/modules/editor/skins/xpresseditor/js/xpresseditor.min.js index 3c8c36122f..9b9f356059 100644 --- a/modules/editor/skins/xpresseditor/js/xpresseditor.min.js +++ b/modules/editor/skins/xpresseditor/js/xpresseditor.min.js @@ -1,4 +1,4 @@ function editorStart_xe(a,b,c,d,e,f,g,h){function i(){try{var a,b=q.contentWindow.document;if("about:blank"==b.location)throw"blank";b.body.innerHTML=b.body.innerHTML.trim(),a=b.body.innerHTML,p.registerPlugin(new xe.XE_EditingArea_WYSIWYG(q)),p.registerPlugin(new xe.XpressRangeManager(q)),p.registerPlugin(new xe.XE_ExecCommand(q)),g&&!b.body.style.fontFamily&&(b.body.style.fontFamily=g),h&&!b.body.style.fontSize&&(b.body.style.fontSize=h),p.run()}catch(c){setTimeout(i,0)}}"undefined"==typeof e&&(e="white"),"undefined"==typeof f&&(f="xeStyle"),"undefined"==typeof g&&(g=""),"undefined"==typeof h&&(h="");var j=request_uri+"modules/editor/styles/"+f+"/editor.html",k=jQuery("#xpress-editor-"+a),l=jQuery(''),m=jQuery(''),n=k.get(0).form;n.setAttribute("editor_sequence",a),k.css("display","none");var o="";jQuery("input[name=content]",n).size()>0&&(o=jQuery("input[name=content]",n).val().replace(/src=\"files\/attach/g,'src="'+request_uri+"files/attach"),jQuery("#xpress-editor-"+a).val(o)),k.hide().css("width","100%").before(l).after(m);var p=new xe.XpressCore,q=l.get(0),r=k.get(0),t=m.get(0),u=jQuery(".xpress-editor",n).get(0);p.getFrame=function(){return q},p.getContent=function(){editorGetContentTextarea_xe(a)};var v=n[c].value;return xFF&&!v&&(v="
    "),v=editorReplacePath(v),n[c].value=v,jQuery("#xpress-editor-"+a).val(v),editorRelKeys[a]=new Array,editorRelKeys[a].primary=n[b],editorRelKeys[a].content=n[c],editorRelKeys[a].func=editorGetContentTextarea_xe,editorRelKeys[a].editor=p,editorRelKeys[a].pasteHTML=function(a){p.exec("PASTE_HTML",[a])},xe.Editors[a]=p,p.registerPlugin(new xe.CorePlugin(null)),p.registerPlugin(new xe.XE_PreservTemplate(jQuery("#xpress-editor-"+a).val())),p.registerPlugin(new xe.StringConverterManager),p.registerPlugin(new xe.XE_EditingAreaManager("WYSIWYG",r,{nHeight:parseInt(d),nMinHeight:100},null,u)),p.registerPlugin(new xe.XE_EditingArea_HTMLSrc(t)),p.registerPlugin(new xe.XE_EditingAreaVerticalResizer(u)),p.registerPlugin(new xe.Utils),p.registerPlugin(new xe.DialogLayerManager),p.registerPlugin(new xe.ActiveLayerManager),p.registerPlugin(new xe.Hotkey),p.registerPlugin(new xe.XE_WYSIWYGStyler),p.registerPlugin(new xe.XE_WYSIWYGStyleGetter),p.registerPlugin(new xe.MessageManager(xe.XpressCore.oMessageMap)),p.registerPlugin(new xe.XE_Toolbar(u)),p.registerPlugin(new xe.XE_XHTMLFormatter),p.registerPlugin(new xe.XE_GET_WYSYWYG_MODE(a)),jQuery("ul.extra1").length&&(p.registerPlugin(new xe.XE_ColorPalette(u)),p.registerPlugin(new xe.XE_FontColor(u)),p.registerPlugin(new xe.XE_BGColor(u)),p.registerPlugin(new xe.XE_Quote(u)),p.registerPlugin(new xe.XE_FontNameWithSelectUI(u)),p.registerPlugin(new xe.XE_FontSizeWithSelectUI(u)),p.registerPlugin(new xe.XE_LineHeightWithSelectUI(u)),p.registerPlugin(new xe.XE_UndoRedo),p.registerPlugin(new xe.XE_Table(u)),p.registerPlugin(new xe.XE_Hyperlink(u)),p.registerPlugin(new xe.XE_FormatWithSelectUI(u)),p.registerPlugin(new xe.XE_SCharacter(u))),jQuery("ul.extra2").length&&p.registerPlugin(new xe.XE_Extension(u,a)),jQuery("ul.extra3").length&&p.registerPlugin(new xe.XE_EditingModeToggler(u)),jQuery("#editorresize").length&&p.registerPlugin(new xe.XE_Editorresize(u,q)),jQuery.browser.msie||jQuery.browser.opera||p.registerPlugin(new xe.XE_WYSIWYGEnterKey(q)),(s=n._saved_doc_title)&&p.registerPlugin(new xe.XE_AutoSave(r,u)),i(),p}function editorGetContentTextarea_xe(a){var b=xe.Editors[a]||null;if(!b)return"";var c=b.getIR();if(!jQuery.trim(c.replace(/( |<\/?(p|br|span|div)([^>]+)?>)/gi,"")))return"";if(c=c.replace(/
    $/i,""),c.length<1024){var d=Array("#text","A","BR","IMG","EM","STRONG","SPAN","BIG","CITE","CODE","DD","DFN","HR","INS","KBD","LINK","Q","SAMP","SMALL","SUB","SUP","TT"),e=!0,f=jQuery("
    "+c+"
    ").eq(0),g=f.contents();jQuery.each(g,function(){3!=this.nodeType&&-1==jQuery.inArray(this.nodeName,d)&&(e=!1)}),e&&(c="

    "+c+"

    ")}return c=c.replace(/src\s?=\s?(["']?)(?:\.\.\/)+(files\/attach\/)/gi,function(a,b,c){return"src="+(b||"")+c}),c=c.replace(/\<(\/)?([A-Z]+)([^>]*)\>/gi,function(a,b,c,d){return d=d?d.replace(/ ([A-Z]+?)\=/gi,function(a,b){return b=b.toLowerCase()," "+b+"="}):"",c=c.toLowerCase(),b||(b=""),"<"+b+c+d+">"}),c=c.replace("
    ","
    ")}function editorGetIframe(a){return jQuery("iframe#editor_iframe_"+a).get(0)}function editorReplaceHTML(a,b){b=editorReplacePath(b);var c=parseInt(a.id.replace(/^.*_/,""),10);editorRelKeys[c].pasteHTML(b)}function editorReplacePath(a){return a=a.replace(/\<([^\>\<]*)(src=|href=|url\()("|\')*([^"\'\)]+)("|\'|\))*(\s|>)*/gi,function(a,b,c,d,e,f,g){"url("==c?(d="",f=")"):("undefined"==typeof d&&(d='"'),"undefined"==typeof f&&(f='"'),"undefined"==typeof g&&(g=""));var h=jQuery.trim(e).replace(/^\.\//,"");return/^(http\:|https\:|ftp\:|telnet\:|mms\:|mailto\:|\/|\.\.|\#)/i.test(h)?a:"<"+b+c+d+request_uri+h+f+g})}function editorGetAutoSavedDoc(a){var b=new Array;b.mid=current_mid,b.editor_sequence=a.getAttribute("editor_sequence"),setTimeout(function(){var a=new Array("error","message","editor_sequence","title","content","document_srl");exec_xml("editor","procEditorLoadSavedDocument",b,function(a){editorRelKeys[b.editor_sequence].primary.value=a.document_srl,"object"==typeof uploadSettingObj[b.editor_sequence]&&editorUploadInit(uploadSettingObj[b.editor_sequence],!0)},a)},0)}!function(a){function b(b){function c(a){return function(){return a.apply(this.$this,arguments)}}var d=b.prototype;this.prototype.$super={};for(var e in d)d.propertyIsEnumerable(e)&&("undefined"==typeof this.prototype[e]&&(this.prototype[e]=d[e]),this.prototype.$super[e]=a.isFunction(d[e])?c(d[e]):d[e]);return this}a.extend({Class:function(c){function d(){"undefined"!=typeof this.$super&&(this.$super.$this=this),a.isFunction(this.$init)&&this.$init.apply(this,arguments)}return d.prototype=c,d.constructor=d,d.extend=b,d},$:function(b){return"string"==typeof b?"<"==b.substring(0,1)?a(b).get(0):a("#"+b).get(0):b},fnBind:function(b,c){var d=a.makeArray(arguments);return d.shift(),d.shift(),function(){var e=d.concat(a.makeArray(arguments));return b.apply(c,e)}}}),a.browser.nVersion=parseFloat(a.browser.version),"undefined"==typeof window.xe&&(window.xe={}),xe.XpressCore=a.Class({name:"XpressCore",$init:function(b){b=b?a.Class({}).extend({oDebugger:null}).extend(b):{},b.oDebugger&&(this.oDebugger=b.oDebugger,this.oDebugger.oApp=this),this.commandQueue=[],this.oCommandMap={},this.oDisabledCommand={},this.aPlugins=[],this.appStatus=xe.APP_STATUS.NOT_READY,this.registerPlugin(this)},exec:function(a,b,c){return this.appStatus==xe.APP_STATUS.NOT_READY?(this.commandQueue[this.commandQueue.length]={msg:a,args:b,event:c},!0):(this.exec=this._exec,void this.exec(a,b,c))},delayedExec:function(b,c,d,e){var f=a.fnBind(this.exec,this,b,c,e);setTimeout(f,d)},_exec:function(a,b,c){return(this._exec=this.oDebugger?this._execWithDebugger:this._execWithoutDebugger).call(this,a,b,c)},_execWithDebugger:function(a,b,c){this.oDebugger.log_MessageStart(a,b);var d=this._doExec(a,b,c);return this.oDebugger.log_MessageEnd(a,b),d},_execWithoutDebugger:function(a,b,c){return this._doExec(a,b,c)},_doExec:function(a,b,c){var d=!1;if(!this.oDisabledCommand[a]){var e=[];if(b&&b.length)for(var f=b.length,g=0;f>g;g++)e[g]=b[g];c&&(e[e.length]=c);var d=!0;d=this._execMsgStep("BEFORE",a,e),d&&(d=this._execMsgStep("ON",a,e)),d&&(d=this._execMsgStep("AFTER",a,e))}return d},registerPlugin:function(a){if(!a)throw"An error occured in registerPlugin(): invalid plug-in";return a.nIdx=this.aPlugins.length,a.oApp=this,this.aPlugins[a.nIdx]=a,a.status!=xe.PLUGIN_STATUS.NOT_READY&&(a.status=xe.PLUGIN_STATUS.READY),this.exec("MSG_PLUGIN_REGISTERED",[a]),a.nIdx},disableCommand:function(a,b){this.oDisabledCommand[a]=b},registerBrowserEvent:function(b,c,d,e,f){if(b){e=e||[];var g=f?a.fnBind(this.delayedExec,this,d,e,f):a.fnBind(this.exec,this,d,e);a(b).bind(c,g)}},run:function(){this._changeAppStatus(xe.APP_STATUS.WAITING_FOR_PLUGINS_READY);var a=this.commandQueue.length;for(i=0;a>i;i++){var b=this.commandQueue[i];this.exec(b.msg,b.args,b.event)}this._waitForPluginReady()},createCommandMap:function(a){this.oCommandMap[a]=[];for(var b=this.aPlugins.length,c=0;b>c;c++)this._doAddToCommandMap(a,this.aPlugins[c])},addToCommandMap:function(a,b){this.oCommandMap[a]&&this._addToCommandMap(a,b)},_changeAppStatus:function(a){this.appStatus=a,this.appStatus==xe.APP_STATUS.READY&&this.exec("MSG_APP_READY")},_execMsgStep:function(a,b,c){return(this._execMsgStep=this.oDebugger?this._execMsgStepWithDebugger:this._execMsgStepWithoutDebugger).call(this,a,b,c)},_execMsgStepWithDebugger:function(a,b,c){this.oDebugger.log_MessageStepStart(a,b,c);var d=this._execMsgHandler("$"+a+"_"+b,c);return this.oDebugger.log_MessageStepEnd(a,b,c),d},_execMsgStepWithoutDebugger:function(a,b,c){return this._execMsgHandler("$"+a+"_"+b,c)},_execMsgHandler:function(a,b){this.oCommandMap[a]||this.createCommandMap(a);var c=this.oCommandMap[a],d=c.length;if(0==d)return!0;var e,f=!0;if(a.match(/^\$(BEFORE|ON|AFTER)_MSG_APP_READY$/)){for(var g=0;d>g;g++)if(e=this._execHandler(c[g],a,b),e===!1){f=!1;break}}else for(var g=0;d>g;g++)if(("function"!=typeof c[g].$PRECONDITION||this._execHandler(c[g],"$PRECONDITION",[a,b]))&&(e=this._execHandler(c[g],a,b),e===!1)){f=!1;break}return f},_execHandler:function(a,b,c){return(this._execHandler=this.oDebugger?this._execHandlerWithDebugger:this._execHandlerWithoutDebugger).call(this,a,b,c)},_execHandlerWithDebugger:function(a,b,c){this.oDebugger.log_CallHandlerStart(a,b,c);var d=a[b].apply(a,c);return this.oDebugger.log_CallHandlerEnd(a,b,c),d},_execHandlerWithoutDebugger:function(a,b,c){return a[b].apply(a,c)},_doAddToCommandMap:function(a,b){"function"==typeof b[a]&&(this.oCommandMap[a][this.oCommandMap[a].length]=b)},_waitForPluginReady:function(){for(var b=!0,c=0;cb)return b;var i=b-1,j=a[b].cloneNode(!1);for(a[b]==e&&(c=j),a[b]==f&&(d=j);i>=0&&xe.DOMFix.parentNode(a[i])==a[b];)i=this._recurConstructClonedTree(a,i,a[b],j,c,d);return h.insertBefore(j,h.firstChild),i},a[a.length]=xe.DOMFix.parentNode(a[a.length-1]),_recurConstructClonedTree(a,a.length-1,a[a.length-1],b),{oStartContainer:c,oEndContainer:d}},cloneRange:function(){return this._copyRange(new xe.W3CDOMRange(this._document))},_copyRange:function(a){return a.collapsed=this.collapsed,a.commonAncestorContainer=this.commonAncestorContainer,a.endContainer=this.endContainer,a.endOffset=this.endOffset,a.startContainer=this.startContainer,a.startOffset=this.startOffset,a._document=this._document,a},collapse:function(a){a?(this.endContainer=this.startContainer,this.endOffset=this.startOffset):(this.startContainer=this.endContainer,this.startOffset=this.endOffset),this._updateRangeInfo()},compareBoundaryPoints:function(a,b){switch(a){case xe.W3CDOMRange.START_TO_START:return this._compareEndPoint(this.startContainer,this.startOffset,b.startContainer,b.startOffset);case xe.W3CDOMRange.START_TO_END:return this._compareEndPoint(this.endContainer,this.endOffset,b.startContainer,b.startOffset);case xe.W3CDOMRange.END_TO_END:return this._compareEndPoint(this.endContainer,this.endOffset,b.endContainer,b.endOffset);case xe.W3CDOMRange.END_TO_START:return this._compareEndPoint(this.startContainer,this.startOffset,b.endContainer,b.endOffset)}},_findBody:function(a){if(!a)return null;for(;a;){if("BODY"==a.tagName)return a;a=xe.DOMFix.parentNode(a)}return null},_compareEndPoint:function(a,b,c,d){var e,f;a&&this._findBody(a)==this._document.body||(a=this._document.body,b=0),c&&this._findBody(c)==this._document.body||(c=this._document.body,d=0);var g=function(a,b){return-1==b&&(b=a+1),b>a?-1:a==b?0:1},h=this._getCommonAncestorContainer(a,c),i=a;if(i!=h){for(;(oTmpNode=xe.DOMFix.parentNode(i))!=h;)i=oTmpNode;e=this._getPosIdx(i)+.5}else e=b;var j=c;if(j!=h){for(;(oTmpNode=xe.DOMFix.parentNode(j))!=h;)j=oTmpNode;f=this._getPosIdx(j)+.5}else f=d;return g(e,f)},_getCommonAncestorContainer:function(a,b){for(var c=b;a;){for(;c;){if(a==c)return a;c=xe.DOMFix.parentNode(c)}c=b,a=xe.DOMFix.parentNode(a)}return this._document.body},deleteContents:function(){if(!this.collapsed){this._splitTextEndNodesOfTheRange();var a=this._getNodesInRange();if(!(a.length<1)){for(var b=a[0].previousSibling;b&&this._isBlankTextNode(b);)b=b.previousSibling;var c,d;b||(c=xe.DOMFix.parentNode(a[0]),d=0);for(var e=0;ea.nodeValue.length&&(b=a.nodeValue.length):b>xe.DOMFix.childNodes(a).length&&(b=xe.DOMFix.childNodes(a).length),b},setEnd:function(a,b){b=this._endsNodeValidation(a,b),this.endContainer=a,this.endOffset=b,this.startContainer&&-1==this._compareEndPoint(this.startContainer,this.startOffset,this.endContainer,this.endOffset)||this.collapse(!1),this._updateRangeInfo()},setEndAfter:function(a){if(!a)throw new Error("INVALID_NODE_TYPE_ERR in setEndAfter");return"BODY"==a.tagName?void this.setEnd(a,xe.DOMFix.childNodes(a).length):void this.setEnd(xe.DOMFix.parentNode(a),this._getPosIdx(a)+1)},setEndBefore:function(a){if(!a)throw new Error("INVALID_NODE_TYPE_ERR in setEndBefore");return"BODY"==a.tagName?void this.setEnd(a,0):void this.setEnd(xe.DOMFix.parentNode(a),this._getPosIdx(a))},setStart:function(a,b){b=this._endsNodeValidation(a,b),this.startContainer=a,this.startOffset=b,this.endContainer&&-1==this._compareEndPoint(this.startContainer,this.startOffset,this.endContainer,this.endOffset)||this.collapse(!0),this._updateRangeInfo()},setStartAfter:function(a){if(!a)throw new Error("INVALID_NODE_TYPE_ERR in setStartAfter");return"BODY"==a.tagName?void this.setStart(a,xe.DOMFix.childNodes(a).length):void this.setStart(xe.DOMFix.parentNode(a),this._getPosIdx(a)+1)},setStartBefore:function(a){if(!a)throw new Error("INVALID_NODE_TYPE_ERR in setStartBefore");return"BODY"==a.tagName?void this.setStart(a,0):void this.setStart(xe.DOMFix.parentNode(a),this._getPosIdx(a))},surroundContents:function(a){a.appendChild(this.extractContents()),this.insertNode(a),this.selectNode(a)},toString:function(){var a=this._document.createElement("DIV");return a.appendChild(this.cloneContents()),a.textContent||a.innerText||""},_isBlankTextNode:function(a){return 3==a.nodeType&&""==a.nodeValue?!0:!1},_getPosIdx:function(a){for(var b=0,c=a.previousSibling;c;c=c.previousSibling)b++;return b},_updateRangeInfo:function(){return this.startContainer?(this.collapsed=this._isCollapsed(this.startContainer,this.startOffset,this.endContainer,this.endOffset),void(this.commonAncestorContainer=this._getCommonAncestorContainer(this.startContainer,this.endContainer))):void this.init(this._document)},_isCollapsed:function(a,b,c,d){var e=!1;if(a==c&&b==d)e=!0;else{var f=this._getActualStartNode(a,b),g=this._getActualEndNode(c,d);f=this._getNextNode(this._getPrevNode(f)),g=this._getPrevNode(this._getNextNode(g)),f&&g&&"BODY"!=g.tagName&&(this._getNextNode(g)==f||g==f&&this._isBlankTextNode(g))&&(e=!0)}return e},_splitTextEndNodesOfTheRange:function(){var a=this._splitTextEndNodes({oStartContainer:this.startContainer,iStartOffset:this.startOffset,oEndContainer:this.endContainer,iEndOffset:this.endOffset});this.startContainer=a.oStartContainer,this.startOffset=a.iStartOffset,this.endContainer=a.oEndContainer,this.endOffset=a.iEndOffset},_splitTextEndNodes:function(a){return a=this._splitStartTextNode(a),a=this._splitEndTextNode(a)},_splitStartTextNode:function(a){var b=a.oStartContainer,c=a.iStartOffset,d=a.oEndContainer,e=a.iEndOffset;if(!b)return a;if(3!=b.nodeType)return a;if(0==c)return a;if(b.nodeValue.length<=c)return a;var f=b.splitText(c);return b==d&&(e-=c,d=f),b=f,c=0,{oStartContainer:b,iStartOffset:c,oEndContainer:d,iEndOffset:e}},_splitEndTextNode:function(a){var b=a.oStartContainer,c=a.iStartOffset,d=a.oEndContainer,e=a.iEndOffset;return d?3!=d.nodeType?a:e>=d.nodeValue.length?a:0==e?a:(d.splitText(e),{oStartContainer:b,iStartOffset:c,oEndContainer:d,iEndOffset:e}):a},_getNodesInRange:function(){if(this.collapsed)return[];var a=this._getActualStartNode(this.startContainer,this.startOffset),b=this._getActualEndNode(this.endContainer,this.endOffset);return this._getNodesBetween(a,b)},_getActualStartNode:function(a,b){var c=a;return 3==a.nodeType?b>=a.nodeValue.length?(c=this._getNextNode(a),"BODY"==c.tagName&&(c=null)):c=a:b=this.startContainer.nodeValue.length?this._getNextNode(this.startContainer):this.startContainer:this.startOffset>=xe.DOMFix.childNodes(this.startContainer).length?this._getNextNode(this.startContainer):xe.DOMFix.childNodes(this.startContainer)[this.startOffset]},getEndNode:function(){return this.collapsed?this.getStartNode():3==this.endContainer.nodeType?0==this.endOffset?this._getPrevNode(this.endContainer):this.endContainer:0==this.endOffset?this._getPrevNode(this.endContainer):xe.DOMFix.childNodes(this.endContainer)[this.endOffset-1]},getNodeAroundRange:function(a,b){if(this.collapsed&&this.startContainer&&3==this.startContainer.nodeType)return this.startContainer;if(!this.collapsed||this.startContainer&&3==this.startContainer.nodeType)return this.getStartNode();var c,d,e;return d=this.startOffset>=xe.DOMFix.childNodes(this.startContainer).length?this._getNextNode(this.startContainer):xe.DOMFix.childNodes(this.startContainer)[this.startOffset],c=0==this.endOffset?this._getPrevNode(this.endContainer):xe.DOMFix.childNodes(this.endContainer)[this.endOffset-1],a?(e=c,e||b||(e=d)):(e=d,e||b||(e=c)),e},_getXPath:function(a){for(var b="";a&&1==a.nodeType;)b="/"+a.tagName+"["+this._getPosIdx4XPath(a)+"]"+b,a=xe.DOMFix.parentNode(a);return b},_getPosIdx4XPath:function(a){for(var b=0,c=a.previousSibling;c;c=c.previousSibling)c.tagName==a.tagName&&b++;return b},_evaluateXPath:function(a,b){a=a.substring(1,a.length-1);for(var c=a.split(/\//),d=b.body,e=2;el;l++)h[l].tagName==f&&(i[k++]=h[l]);d=i.length-1&&e){for(var f=xe.DOMFix.childNodes(e),g=null,h=c,i=d;(g=f[h])&&3==g.nodeType&&g.nodeValue.length=b&&e>=0?!0:bIncludePartlyIncluded?1==c?!1:-1==d?!1:!0:!1},isNodeInRange:function(a,b,c){var d=new xe.XpressRange(this._window);return c&&a.firstChild?(d.setStartBefore(a.firstChild),d.setEndAfter(a.lastChild)):d.selectNode(a),isRangeInRange(d,b)},pasteHTML:function(a){if(""==a)return void this.deleteContents();var b=this._document.createElement("DIV");b.innerHTML=a;for(var c=b.firstChild,d=b.lastChild,e=this.cloneRange(),f=e.placeStringBookmark();b.lastChild;)this.insertNode(b.lastChild);this.setEndNodes(c,d),e.moveToBookmark(f),e.deleteContents(),e.removeStringBookmark(f)},toString:function(){return this.toString=xe.W3CDOMRange.prototype.toString,this.toString()},toHTMLString:function(){var a=this._document.createElement("DIV");return a.appendChild(this.cloneContents()),a.innerHTML},findAncestorByTagName:function(a){for(var b=this.commonAncestorContainer;b&&b.tagName!=a;)b=xe.DOMFix.parentNode(b);return b},selectNodeContents:function(a){if(a){var b=a.firstChild?a.firstChild:a,c=a.lastChild?a.lastChild:a;3==b.nodeType?this.setStart(b,0):this.setStartBefore(b),3==c.nodeType?this.setEnd(c,c.nodeValue.length):this.setEndAfter(c)}},styleRange:function(b,c,d){var e=this._getStyleParentNodes(d);if(!(e.length<1)){for(var f,g,h=0;ho;o++)if(c=k[o],c&&3==c.nodeType&&""!=c.nodeValue){if(h=xe.DOMFix.parentNode(c),"SPAN"==h.tagName){var p=a(h).html();if(d=this._getVeryFirstRealChild(h),f=d==c?1:p.indexOf(d),-1!=f&&(d=this._getVeryLastRealChild(h),g=d==c?1:p.indexOf(d)),-1!=f&&-1!=g){l[m++]=h;continue}}e=this._document.createElement("SPAN"),h.insertBefore(e,c),e.appendChild(c),l[m++]=e,b&&e.setAttribute(b,"true")}return this.setStartBefore(i),this.setEndAfter(j),l},_getVeryFirstChild:function(a){return a.firstChild?this._getVeryFirstChild(a.firstChild):a},_getVeryLastChild:function(a){return a.lastChild?this._getVeryLastChild(a.lastChild):a},_getFirstRealChild:function(a){for(var b=a.firstChild;b&&3==b.nodeType&&""==b.nodeValue;)b=b.nextSibling;return b},_getLastRealChild:function(a){for(var b=a.lastChild;b&&3==b.nodeType&&""==b.nodeValue;)b=b.previousSibling;return b},_getVeryFirstRealChild:function(a){var b=this._getFirstRealChild(a);return b?this._getVeryFirstRealChild(b):a},_getVeryLastRealChild:function(a){var b=this._getLastRealChild(a);return b?this._getVeryLastChild(b):a},_getLineStartInfo:function(a){function b(a){if(a&&!d){if(h.test(a.tagName))return f=a,d=e,void(g=!0);e=a,c(a.previousSibling),d||b(xe.DOMFix.parentNode(a))}}function c(a){if(a&&!d){if(h.test(a.tagName))return f=a,d=e,void(g=!1);if(a.firstChild&&"TABLE"!=a.tagName)for(var b=a.lastChild;b&&!d;)c(b),b=b.previousSibling;else e=a;d||c(a.previousSibling)}}var d=null,e=a,f=a,g=!0,h=this.rxLineBreaker;return b(a),{oNode:d,oLineBreaker:f,bParentBreak:g}},_getLineEndInfo:function(a){function b(a){if(a&&!d){if(h.test(a.tagName))return f=a,d=e,void(g=!0);e=a,c(a.nextSibling),d||b(xe.DOMFix.parentNode(a))}}function c(a){if(a&&!d){if(h.test(a.tagName))return f=a,d=e,void(g=!1);if(a.firstChild&&"TABLE"!=a.tagName)for(var b=a.firstChild;b&&!d;)c(b),b=b.nextSibling;else e=a;d||c(a.nextSibling)}}var d=null,e=a,f=a,g=!0,h=this.rxLineBreaker;return b(a),{oNode:d,oLineBreaker:f,bParentBreak:g}},getLineInfo:function(){var a=this.getStartNode(),b=this.getEndNode();a||(a=this.getNodeAroundRange(!0,!0)),b||(b=this.getNodeAroundRange(!0,!0));var c=this._getLineStartInfo(a),d=c.oNode,e=this._getLineEndInfo(b),f=e.oNode,g=this._compareEndPoint(xe.DOMFix.parentNode(d),this._getPosIdx(d),this.endContainer,this.endOffset),h=this._compareEndPoint(xe.DOMFix.parentNode(f),this._getPosIdx(f)+1,this.startContainer,this.startOffset);return 0>=g&&h>=0||(a=this.getNodeAroundRange(!1,!0),b=this.getNodeAroundRange(!1,!0),c=this._getLineStartInfo(a),e=this._getLineEndInfo(b)),{oStart:c,oEnd:e}}}).extend(xe.W3CDOMRange),xe.SimpleSelection=function(b){this.init=function(a){this._window=a||window,this._document=this._window.document},this.init(b),a.browser.msie?xe.SimpleSelectionImpl_IE.apply(this):xe.SimpleSelectionImpl_FF.apply(this),this.selectRange=function(a){this.selectNone(),this.addRange(a)},this.selectionLoaded=!0,this._oSelection||(this.selectionLoaded=!1)},xe.SimpleSelectionImpl_FF=function(){this._oSelection=this._window.getSelection(),this.getRangeAt=function(a){a=a||0;try{var b=this._oSelection.getRangeAt(a)}catch(c){return new xe.W3CDOMRange(this._document)}return this._FFRange2W3CRange(b)},this.addRange=function(a){var b=this._W3CRange2FFRange(a);this._oSelection.addRange(b)},this.selectNone=function(){this._oSelection.removeAllRanges()},this._FFRange2W3CRange=function(a){var b=new xe.W3CDOMRange(this._document);return b.setStart(a.startContainer,a.startOffset),b.setEnd(a.endContainer,a.endOffset),b},this._W3CRange2FFRange=function(a){var b=this._document.createRange(); return b.setStart(a.startContainer,a.startOffset),b.setEnd(a.endContainer,a.endOffset),b}},xe.SimpleSelectionImpl_IE=function(){this._oSelection=this._document.selection,this.getRangeAt=function(a){if(a=a||0,"Control"==this._oSelection.type){var b=new xe.W3CDOMRange(this._document),c=this._oSelection.createRange().item(a);return c&&c.ownerDocument==this._document?(b.selectNode(c),b):b}var c=this._oSelection.createRangeCollection().item(a).parentElement();if(!c||c.ownerDocument!=this._document){var b=new xe.W3CDOMRange(this._document);return b}return this._IERange2W3CRange(this._oSelection.createRangeCollection().item(a))},this.addRange=function(a){var b=this._W3CRange2IERange(a);b.select()},this.selectNone=function(){this._oSelection.empty()},this._W3CRange2IERange=function(a){var b=this._getIERangeAt(a.startContainer,a.startOffset),c=this._getIERangeAt(a.endContainer,a.endOffset);return b.setEndPoint("EndToEnd",c),b},this._getIERangeAt=function(a,b){var c=this._document.body.createTextRange(),d=this._getSelectableNodeAndOffsetForIE(a,b),e=d.oSelectableNodeForIE,f=d.iOffsetForIE;return c.moveToElementText(e),c.collapse(d.bCollapseToStart),c.moveStart("character",f),c},this._getSelectableNodeAndOffsetForIE=function(a,b){var c=this._document.body.createTextRange(),d=null,e=null,f=0;3==a.nodeType?(d=xe.DOMFix.parentNode(a),e=xe.DOMFix.childNodes(d),f=e.length):(d=a,e=xe.DOMFix.childNodes(d),f=b);for(var g=null,h=0,i=!0,j=0;f>j;j++)if(g=e[j],3==g.nodeType){if(g==a)break;h+=g.nodeValue.length}else c.moveToElementText(g),d=g,h=0,i=!1;return 3==a.nodeType&&(h+=b),{oSelectableNodeForIE:d,iOffsetForIE:h,bCollapseToStart:i}},this._IERange2W3CRange=function(a){var b=new xe.W3CDOMRange(this._document),c=null,d=null;c=a.duplicate(),c.collapse(!0),d=this._getW3CContainerAndOffset(c,!0),b.setStart(d.oContainer,d.iOffset);var e=a.duplicate();return e.collapse(!0),e.isEqual(a)?b.collapse(!0):(c=a.duplicate(),c.collapse(!1),d=this._getW3CContainerAndOffset(c),b.setEnd(d.oContainer,d.iOffset)),b},this._getW3CContainerAndOffset=function(a,b){for(var c=a,d=c.parentElement(),e=-1,f=this._document.body.createTextRange(),g=xe.DOMFix.childNodes(d),h=null,i=0,j=0;j=0)break;h=g[j]}var i=j;if(0!=i&&3==g[i-1].nodeType){var k=this._document.body.createTextRange(),l=null;h?(k.moveToElementText(h),k.collapse(!1),l=h.nextSibling):(k.moveToElementText(d),k.collapse(!0),l=d.firstChild);var m=c.duplicate();m.setEndPoint("StartToStart",k);for(var n=m.text.length;n>l.nodeValue.length&&l.nextSibling;)n-=l.nodeValue.length,l=l.nextSibling;{l.nodeValue}b&&l.nextSibling&&3==l.nextSibling.nodeType&&n==l.nodeValue.length&&(n-=l.nodeValue.length,l=l.nextSibling),d=l,e=n}else d=c.parentElement(),e=i;return{oContainer:d,iOffset:e}}},xe.DOMFix=new(a.Class({$init:function(){a.browser.msie||a.browser.opera?(this.childNodes=this._childNodes_Fix,this.parentNode=this._parentNode_Fix):(this.childNodes=this._childNodes_Native,this.parentNode=this._parentNode_Native)},_parentNode_Native:function(a){return a.parentNode},_parentNode_Fix:function(a){if(!a)return a;for(;a.previousSibling;)a=a.previousSibling;return a.parentNode},_childNodes_Native:function(a){return a.childNodes},_childNodes_Fix:function(a){var b=null,c=0;if(a){var b=[];for(a=a.firstChild;a;)b[c++]=a,a=a.nextSibling}return b}})),xe.DraggableLayer=a.Class({$init:function(b,c){this.oOptions=a.extend({bModal:"false",oHandle:b,iMinX:-999999,iMinY:-999999,iMaxX:999999,iMaxY:999999},c),this.oHandle=this.oOptions.oHandle,b.style.display="block",b.style.position="absolute",b.style.zIndex="9999",this.aBasePosition=this.getBaseOffset(b),b.style.top=this.toInt(a(b).offset().top)-this.aBasePosition.top+"px",b.style.left=this.toInt(a(b).offset().left)-this.aBasePosition.left+"px",this.$FnMouseDown=a.fnBind(this._mousedown,this,b),this.$FnMouseMove=a.fnBind(this._mousemove,this,b),this.$FnMouseUp=a.fnBind(this._mouseup,this,b),a(this.oHandle).bind("mousedown",this.$FnMouseDown)},_mousedown:function(b,c){"INPUT"!=c.target.tagName&&(this.MouseOffsetY=c.pageY-this.toInt(b.style.top)-this.aBasePosition.top,this.MouseOffsetX=c.pageX-this.toInt(b.style.left)-this.aBasePosition.left,a(b).bind("mousemove",this.$FnMouseMove),a(b).bind("mouseup",this.$FnMouseUp))},_mousemove:function(a,b){var c=b.pageY-this.MouseOffsetY-this.aBasePosition.top,d=b.pageX-this.MouseOffsetX-this.aBasePosition.left;cthis.oOptions.iMaxY&&(c=this.oOptions.iMaxY),dthis.oOptions.iMaxX&&(d=this.oOptions.iMaxX),a.style.top=c+"px",a.style.left=d+"px"},_mouseup:function(b){a(b).unbind("mousemove",this.$FnMouseMove),a(b).unbind("mouseup",this.$FnMouseUp)},toInt:function(a){var b=parseInt(a);return b||0},findNonStatic:function(b){return b?"BODY"==b.tagName?b:a(b).css("position").match(/absolute|relative/i)?b:this.findNonStatic(b.offsetParent):null},getBaseOffset:function(b){var c=this.findNonStatic(b.offsetParent),d=a(c).offset();return{top:d.top,left:d.left}}}),xe.CorePlugin=a.Class({name:"CorePlugin",$init:function(a){this.funcOnReady=a},$AFTER_MSG_APP_READY:function(){this.oApp.exec("EXEC_ON_READY_FUNCTION",[])},$ON_ADD_APP_PROPERTY:function(a,b){this.oApp[a]=b},$ON_REGISTER_BROWSER_EVENT:function(a,b,c,d,e){this.oApp.registerBrowserEvent(a,b,c,d,e)},$ON_DISABLE_COMMAND:function(a){this.oApp.disableCommand(a,!0)},$ON_ENABLE_COMMAND:function(a){this.oApp.disableCommand(a,!1)},$ON_EXEC_ON_READY_FUNCTION:function(){"function"==typeof this.funcOnReady&&this.funcOnReady()}}),xe.Utils=a.Class({name:"Utils",$init:function(){if(a.browser.msie&&6==a.browser.nVersion)try{document.execCommand("BackgroundImageCache",!1,!0)}catch(b){}},$ON_ATTACH_HOVER_EVENTS:function(b,c){c=c||"hover",b&&a(b).hover(function(){a(this).addClass(c)},function(){a(this).removeClass(c)})}}),xe.XpressRangeManager=a.Class({name:"XpressRangeManager",oWindow:null,$init:function(a){this.oWindow=a||window},$BEFORE_MSG_APP_READY:function(){this.oWindow&&"IFRAME"==this.oWindow.tagName&&(this.oWindow=this.oWindow.contentWindow),this.oApp.exec("ADD_APP_PROPERTY",["getSelection",a.fnBind(this.getSelection,this)]),this.oApp.exec("ADD_APP_PROPERTY",["getEmptySelection",a.fnBind(this.getEmptySelection,this)])},$ON_SET_EDITING_WINDOW:function(a){this.oWindow=a},getEmptySelection:function(){var a=new xe.XpressRange(this.oWindow);return a},getSelection:function(){this.oApp.exec("RESTORE_IE_SELECTION",[]);var a=this.getEmptySelection();try{a.setFromSelection()}catch(b){}return a}}),xe.Hotkey=a.Class({name:"Hotkey",storage:{},keyhash:{},$init:function(){this.storage={},this.keyhash={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,meta:224,esc:27,space:32,pageup:33,pagedown:34,end:35,home:36,left:37,up:38,right:39,down:40,del:46,comma:188,period:190,slash:191,hyphen:109,equal:61},(a.browser.msie||a.browser.safari)&&(this.keyhash.hyphen=189,this.keyhash.equal=187,this.keyhash.meta=91)},$ON_MSG_APP_READY:function(){a(this.oApp.getWYSIWYGDocument()||document).keydown(a.fnBind(this.keydown,this))},$ON_REGISTER_HOTKEY:function(b,c,d){d||(d=[]);var e=a.fnBind(this.oApp.exec,this.oApp,c,d);return(b=this.normalize(b))?void this.add(b,e):!1},add:function(a,b){"undefined"==typeof this.storage[a]?this.storage[a]=[b]:this.storage[a].push(b)},keydown:function(b){var c=[],d=this.keyhash;if(!(a.inArray(b.keyCode,[d.shift,d.ctrl,d.alt,d.meta])>=0)&&(b.shiftKey&&c.push("shift"),b.altKey&&c.push("alt"),b.ctrlKey&&c.push("ctrl"),b.metaKey&&c.push("meta"),c.length&&(1==c.length&&b.metaKey&&(c=["ctrl","meta"]),c.push(b.keyCode),c=c.join("+"),this.storage[c])))return a.each(this.storage[c],function(){this()}),!1},normalize:function(b){var c,d,e,f,g,h=(b||"").toLowerCase().split("+");return c=d=e=f=g=!1,a.each(h,function(){var a=""+this;switch(a){case"shift":c=!0;case"alt":e=!0;case"ctrl":d=!0;case"meta":f=!0;default:g=a}}),g?(h=[],c&&h.push("shift"),e&&h.push("alt"),d&&h.push("ctrl"),(f||d&&!c&&!e)&&h.push("meta"),h.push(this.keyhash[g]||g.toUpperCase().charCodeAt(0)),h.join("+")):""}}),xe.DialogLayerManager=a.Class({name:"DialogLayerManager",aMadeDraggable:null,aOpenedLayers:null,$init:function(){this.aMadeDraggable=[],this.aOpenedLayers=[]},$ON_SHOW_DIALOG_LAYER:function(b,c){b=a.$(b),c=a.$(c)||!1,b&&-1==a.inArray(b,this.aOpenedLayers)&&(this.oApp.exec("POSITION_DIALOG_LAYER",[b]),this.aOpenedLayers[this.aOpenedLayers.length]=b,-1==a.inArray(b,this.aMadeDraggable)?(new xe.DraggableLayer(b,{bModal:c,iMinY:0}),this.aMadeDraggable[this.aMadeDraggable.length]=b):b.style.display="block")},$ON_HIDE_LAST_DIALOG_LAYER:function(){this.oApp.exec("HIDE_DIALOG_LAYER",[this.aOpenedLayers[this.aOpenedLayers.length-1]])},$ON_HIDE_ALL_DIALOG_LAYER:function(){for(var a=this.aOpenedLayers.length-1;a>=0;a--)this.oApp.exec("HIDE_DIALOG_LAYER",[this.aOpenedLayers[a]])},$ON_HIDE_DIALOG_LAYER:function(b){b=a.$(b),b&&(b.style.display="none"),this.aOpenedLayers=a.grep(this.aOpenedLayers,function(a){return a!=b})},$ON_SET_DIALOG_LAYER_POSITION:function(a,b,c){a.style.top=b,a.style.left=c}}),xe.ActiveLayerManager=a.Class({name:"ActiveLayerManager",oCurrentLayer:null,$ON_TOGGLE_ACTIVE_LAYER:function(a,b,c,d,e){a==this.oCurrentLayer?this.oApp.exec("HIDE_ACTIVE_LAYER",[]):(this.oApp.exec("SHOW_ACTIVE_LAYER",[a,d,e]),b&&this.oApp.exec(b,c))},$ON_SHOW_ACTIVE_LAYER:function(b,c,d){b=a.$(b),this.sOnCloseCmd=c,this.aOnCloseParam=d;var e=this.oCurrentLayer;b!=e&&(this.oApp.exec("HIDE_ACTIVE_LAYER",[]),b.style.display="block",this.oCurrentLayer=b)},$ON_HIDE_ACTIVE_LAYER:function(){var a=this.oCurrentLayer;a&&(a.style.display="none",this.oCurrentLayer=null,this.sOnCloseCmd&&this.oApp.exec(this.sOnCloseCmd,this.aOnCloseParam))},$ON_HIDE_CURRENT_ACTIVE_LAYER:function(){this.oApp.exec("HIDE_ACTIVE_LAYER",[])},$ON_EVENT_EDITING_AREA_KEYDOWN:function(){this.oApp.exec("HIDE_ACTIVE_LAYER",[])},$ON_EVENT_EDITING_AREA_MOUSEDOWN:function(){this.oApp.exec("HIDE_ACTIVE_LAYER",[])}}),xe.StringConverterManager=a.Class({name:"StringConverterManager",oConverters:null,$init:function(){this.oConverters={}},$BEFORE_MSG_APP_READY:function(){this.oApp.exec("ADD_APP_PROPERTY",["applyConverter",a.fnBind(this.applyConverter,this)]),this.oApp.exec("ADD_APP_PROPERTY",["addConverter",a.fnBind(this.addConverter,this)])},applyConverter:function(a,b){var c=this.oConverters[a];if(!c)return b;for(var d=0;df;f++)if(e.test(c[f].className)){var g=RegExp.$1;if(null!=this.htUIList[g])continue;this.htUIList[g]=a(">*:first-child",c[f]).get(0)}},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.toolbarArea,"mouseover","EVENT_TOOLBAR_MOUSEOVER",[]),this.oApp.registerBrowserEvent(this.toolbarArea,"mouseout","EVENT_TOOLBAR_MOUSEOUT",[]),this.oApp.exec("ADD_APP_PROPERTY",["getToolbarButtonByUIName",a.fnBind(this.getToolbarButtonByUIName,this)])},$ON_EVENT_TOOLBAR_MOUSEOVER:function(b){"BUTTON"==b.target.tagName&&a(b.target).addClass("hover").parent("span").addClass("hover")},$ON_EVENT_TOOLBAR_MOUSEOUT:function(b){"BUTTON"==b.target.tagName&&a(b.target).removeClass("hover").parent("span").removeClass("hover")},$ON_TOGGLE_TOOLBAR_ACTIVE_LAYER:function(a,b,c,d,e,f){this.oApp.exec("TOGGLE_ACTIVE_LAYER",[a,"MSG_TOOLBAR_LAYER_SHOWN",[a,b,c,d],e,f])},$ON_MSG_TOOLBAR_LAYER_SHOWN:function(a,b,c,d){this.oApp.exec("POSITION_TOOLBAR_LAYER",[a,b]),c&&this.oApp.exec(c,d)},$ON_SHOW_TOOLBAR_ACTIVE_LAYER:function(a,b,c,d){this.oApp.exec("SHOW_ACTIVE_LAYER",[a,b,c]),this.oApp.exec("POSITION_TOOLBAR_LAYER",[a,d])},$ON_ENABLE_UI:function(b){var c=this.htUIList[b];if(c){a(c).removeClass("off"),c.disabled=!1;var d="";if(this.aUICmdMap[b])for(var e=0;ef&&(b.style.left=f-e-5+"px")}},getToolbarButtonByUIName:function(a){return this.htUIList[a]}}),xe.XE_EditingAreaManager=a.Class({name:"XE_EditingAreaManager",oActivePlugin:null,oIRField:null,bIsDirty:!1,$init:function(b,c,d,e,f){this.sInitialMode=b,this.oIRField=a.$(c),this._assignHTMLObjects(f),this.fOnBeforeUnload=e,this.oEditingMode={},this.elEditingAreaContainer.style.height=parseInt(d.nHeight||this.elEditingAreaContainer.offsetHeight)+"px",this.nMinHeight=d.nMinHeight||10,this.niMinWidth=d.nMinWidth||10},_assignHTMLObjects:function(b){b=a.$(b)||document,this.elEditingAreaContainer=a("DIV.xpress_xeditor_editing_area_container",b).get(0),this.elEditingAreaSkipUI=a("A.skip",b).get(0)},$BEFORE_MSG_APP_READY:function(){this.oApp.exec("ADD_APP_PROPERTY",["elEditingAreaContainer",this.elEditingAreaContainer]),this.oApp.exec("ADD_APP_PROPERTY",["getIR",a.fnBind(this.getIR,this)]),this.oApp.exec("ADD_APP_PROPERTY",["setIR",this.setIR]),this.oApp.exec("ADD_APP_PROPERTY",["getEditingMode",a.fnBind(this.getEditingMode,this)])},$ON_MSG_APP_READY:function(){this.oApp.exec("CHANGE_EDITING_MODE",[this.sInitialMode,!0]),this.oApp.exec("LOAD_IR_FIELD",[!1]),this.oApp.registerBrowserEvent(this.elEditingAreaSkipUI,"focus","MSG_EDITING_AREA_SIZE_CHANGED",[],50),this.oApp.registerBrowserEvent(this.elEditingAreaSkipUI,"blur","MSG_EDITING_AREA_SIZE_CHANGED",[],50)},$AFTER_MSG_APP_READY:function(){this.oApp.exec("UPDATE_IR_FIELD",[])},$ON_LOAD_IR_FIELD:function(a){this.oApp.setIR(this.oIRField.value,a)},$ON_UPDATE_IR_FIELD:function(){this.oIRField.value=this.oApp.getIR()},$BEFORE_CHANGE_EDITING_MODE:function(a){this._oPrevActivePlugin=this.oActivePlugin,this.oActivePlugin=this.oEditingMode[a]},$AFTER_CHANGE_EDITING_MODE:function(a,b){if(this._oPrevActivePlugin){var c=this._oPrevActivePlugin.getIR();this.oApp.exec("SET_IR",[c]),this.oApp.exec("ENABLE_UI",[this._oPrevActivePlugin.sMode]),this._setEditingAreaDimension()}this.oApp.exec("DISABLE_UI",[this.oActivePlugin.sMode]),b||this.oApp.exec("FOCUS",[])},$ON_SET_IS_DIRTY:function(a){this.bIsDirty=a},$ON_FOCUS:function(){this.oActivePlugin&&"function"==typeof this.oActivePlugin.setIR&&this.oActivePlugin.focus()},$BEFORE_SET_IR:function(a,b){b=b||!1,b||this.oApp.exec("RECORD_UNDO_ACTION",["SET CONTENTS"])},$ON_SET_IR:function(a){this.oActivePlugin&&"function"==typeof this.oActivePlugin.setIR&&this.oActivePlugin.setIR(a)},$AFTER_SET_IR:function(a,b){b=b||!1,b||this.oApp.exec("RECORD_UNDO_ACTION",["SET CONTENTS"])},$ON_REGISTER_EDITING_AREA:function(a){this.oEditingMode[a.sMode]=a,this.attachDocumentEvents(a.oEditingArea)},$ON_MSG_EDITING_AREA_RESIZE_STARTED:function(){this.oActivePlugin.elEditingArea.style.display="none",this.iStartingHeight=parseInt(this.elEditingAreaContainer.style.height)},$ON_RESIZE_EDITING_AREA:function(a,b){var c=parseInt(a),d=parseInt(b);c"]);break;default:return}a.preventDefault(),a.stopPropagation()}},$ON_EVENT_EDITING_AREA_KEYUP:function(a){229==a.keyCode||13==a.keyCode||a.altKey||a.ctrlKey||a.keyCode>=33&&a.keyCode<=40||16==a.keyCode||this._recordUndo(a)},$ON_PASTE_HTML:function(b,c){if(this.oApp.getEditingMode()==this.sMode){var d=c||this.oApp.getSelection();if(d.pasteHTML(b),!a.browser.msie){var e=d.placeStringBookmark();this.oApp.getWYSIWYGDocument().body.innerHTML=this.oApp.getWYSIWYGDocument().body.innerHTML,d.moveToBookmark(e),d.collapseToEnd(),d.select(),d.removeStringBookmark(e)}this.oApp.exec("RECORD_UNDO_ACTION",["INSERT HTML"])}},$AFTER_MSG_EDITING_AREA_RESIZE_ENDED:function(){this.oApp.exec("REFRESH_WYSIWYG",[])},$ON_RESTORE_IE_SELECTION:function(){this._oIERange&&(this._oIERange.select(),this._oPrevIERange=this._oIERange,this._oIERange=null)},initIframe:function(){try{if(this.doc=this.iframe.contentWindow.document,null==this.doc||"about:blank"==this.doc.location.href)throw new Error("Access denied");this._enableWYSIWYG(),this.status=xe.PLUGIN_STATUS.READY}catch(b){if(!(this._nIFrameReadyCount-->0))throw"iframe for WYSIWYG editing mode can't be initialized. Please check if the iframe document exists and is also accessable(cross-domain issues). ";setTimeout(a.fnBind(this.initIframe,this),100)}},getIR:function(){var a,b=this.doc.body.innerHTML;return a=this.oApp.applyConverter?this.oApp.applyConverter(this.sMode+"_TO_IR",b):b},setIR:function(b){var c;c=this.oApp.applyConverter?this.oApp.applyConverter("IR_TO_"+this.sMode,b):b,this.doc.body.innerHTML=c,a.browser.mozilla&&""==this.doc.body.innerHTML&&(this.doc.body.innerHTML="
    ")},getWindow:function(){return this.iframe.contentWindow},getDocument:function(){return this.iframe.contentWindow.document},focus:function(){},_recordUndo:function(a){var b=new Date;b-this.iLastUndoRecorded"),""==h.innerHTML&&(h.innerHTML="
    "),h.nextSibling&&"BR"==h.nextSibling.tagName&&h.parentNode.removeChild(h.nextSibling),b.selectNodeContents(h),b.collapseToStart(),b.select(),this.oApp.exec("CHECK_STYLE_CHANGE",[])}else b.removeStringBookmark(c)}}}),xe.XE_WYSIWYGStyler=a.Class({name:"XE_WYSIWYGStyler",$PRECONDITION:function(){return"WYSIWYG"==this.oApp.getEditingMode()},$ON_SET_WYSIWYG_STYLE:function(b){var c=this.oApp.getSelection();if(c.collapsed){var d=this.oApp.getWYSIWYGDocument().createElement("SPAN");c.insertNode(d),d.innerHTML=unescape("%uFEFF");var e;for(var f in b)e=b[f],"string"==typeof e&&(d.style[f]=e);return c.selectNodeContents(d),c.collapseToEnd(),c._window.focus(),c._window.document.body.focus(),c.select(),void(a.browser.mozilla&&3==a.browser.nVersion&&(d.innerHTML=""))}this.oApp.exec("RECORD_UNDO_BEFORE_ACTION",["FONT STYLE"]),c.styleRange(b),c._window.focus(),c.select(),this.oApp.exec("RECORD_UNDO_AFTER_ACTION",["FONT STYLE"])}}),xe.XE_WYSIWYGStyleGetter=a.Class({name:"XE_WYSIWYGStyleGetter",hKeyUp:null,getStyleInterval:200,oStyleMap:{fontFamily:{type:"Value",css:"fontFamily"},fontSize:{type:"Value",css:"fontSize"},lineHeight:{type:"Value",css:"lineHeight",converter:function(a,b){return a.match(/px$/)?Math.ceil(parseInt(a)/parseInt(b.fontSize)*10)/10:a}},bold:{command:"bold"},underline:{command:"underline"},italic:{command:"italic"},lineThrough:{command:"strikethrough"},superscript:{command:"superscript"},subscript:{command:"subscript"},justifyleft:{command:"justifyleft"},justifycenter:{command:"justifycenter"},justifyright:{command:"justifyright"},justifyfull:{command:"justifyfull"},orderedlist:{command:"insertorderedlist"},unorderedlist:{command:"insertunorderedlist"}},$init:function(){this.oStyle=this._getBlankStyle()},$PRECONDITION:function(){return"WYSIWYG"!=this.oApp.getEditingMode()?!1:!0},$ON_MSG_APP_READY:function(){this.oDocument=this.oApp.getWYSIWYGDocument(),this.oApp.exec("ADD_APP_PROPERTY",["getCurrentStyle",a.fnBind(this.getCurrentStyle,this)])},$ON_EVENT_EDITING_AREA_MOUSEUP:function(){this.hKeyUp&&clearTimeout(this.hKeyUp),this.oApp.exec("CHECK_STYLE_CHANGE",[])},$ON_EVENT_EDITING_AREA_KEYUP:function(b){(8==b.keyCode||b.keyCode>=33&&b.keyCode<=40||45==b.keyCode||46==b.keyCode)&&(this.hKeyUp&&clearTimeout(this.hKeyUp),this.hKeyUp=setTimeout(a.fnBind(this.oApp.exec,this.oApp,"CHECK_STYLE_CHANGE",[]),this.getStyleInterval))},$ON_CHECK_STYLE_CHANGE:function(){this._getStyle()},$ON_RESET_STYLE_STATUS:function(){var a=this._getBlankStyle();for(var b in a)this.oApp.exec("SET_STYLE_STATUS",[b,a[b]])},getCurrentStyle:function(){return this.oStyle},_check_style_change:function(){this.oApp.exec("CHECK_STYLE_CHANGE",[])},_getBlankStyle:function(){var a={};for(var b in this.oStyleMap)a[b]="Value"==this.oStyleMap[b].type?"":0; return a},_getStyle:function(){var a,b,c=this.oApp.getSelection(),d=function(a){return a.childNodes&&0!=a.childNodes.length?!1:!0},e=c.getNodes(!1,d);a=this._getStyleOf(0==e.length?c.commonAncestorContainer:e[0]);for(b in a)this.oStyleMap[b].converter&&(a[b]=this.oStyleMap[b].converter(a[b],a)),this.oStyle[b]!=a[b]&&this.oApp.exec("MSG_STYLE_CHANGED",[b,a[b]]);this.oStyle=a},_getStyleOf:function(b){var c=this._getBlankStyle();if(!b)return c;3==b.nodeType&&(b=b.parentNode);var d,e=a(b);for(var f in this.oStyle)if(d=this.oStyleMap[f],d.type&&"Value"==d.type){if(d.css){var g=e.css(d.css);"fontFamily"==f&&(g=g.split(/,/)[0]),c[f]=g}else if(d.command)try{c[f]=this.oDocument.queryCommandState(d.command)}catch(h){}}else if(d.command)try{c[f]=this.oDocument.queryCommandState(d.command)?1:0}catch(h){}return c}}),xe.XE_FontSizeWithSelectUI=a.Class({name:"XE_FontSizeWithSelectUI",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elFontSizeSelect=a("SELECT.xpress_xeditor_ui_fontSize_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elFontSizeSelect,"change","SET_FONTSIZE_FROM_SELECT_UI"),this.elFontSizeSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(a,b){"fontSize"==a&&(this.elFontSizeSelect.value=b,this.elFontSizeSelect.selectedIndex<0&&(this.elFontSizeSelect.selectedIndex=0))},$ON_SET_FONTSIZE_FROM_SELECT_UI:function(){var a=this.elFontSizeSelect.value;a&&(this.oApp.exec("SET_WYSIWYG_STYLE",[{fontSize:a}]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}),xe.XE_FontNameWithSelectUI=a.Class({name:"XE_FontNameWithSelectUI",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elFontNameSelect=a("SELECT.xpress_xeditor_ui_fontName_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elFontNameSelect,"change","SET_FONTNAME_FROM_SELECT_UI"),this.elFontNameSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(a,b){"fontFamily"==a&&(this.elFontNameSelect.value=b.toLowerCase(),this.elFontNameSelect.selectedIndex<0&&(this.elFontNameSelect.selectedIndex=0))},$ON_SET_FONTNAME_FROM_SELECT_UI:function(){var a=this.elFontNameSelect.value;a&&(this.oApp.exec("SET_WYSIWYG_STYLE",[{fontFamily:a}]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}),xe.XE_LineHeight=a.Class({name:"XE_LineHeight",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(){},$ON_SET_LINEHEIGHT:function(a){this.setLineHeight(a)},getLineHeight:function(){var b,c,d,e=this._getSelectedNodes(!1);if(0==e.length)return-1;var f=e.length;0==f?d=-1:(c=this._getLineWrapper(e[0]),d=this._getWrapperLineheight(c));var g=this.oSelection.getStartNode();if(d>0)for(var h=1;f>h;h++)if(!this._isChildOf(e[h],b)&&e[h]&&(b=this._getLineWrapper(e[h]),b!=c)){if(curHeight=this._getWrapperLineheight(b),curHeight!=d){d=-1;break}c=b}b=this._getLineWrapper(e[f-1]);var i=this.oSelection.getEndNode();return selectText=a.fnBind(function(a,b){this.oSelection.setEndNodes(a,b),this.oSelection.select()},this,g,i),setTimeout(selectText,100),d},setLineHeight:function(b){function c(a,b){if(!a)try{a=thisRef.oSelection.surroundContentsWithNewNode("P")}catch(c){a=thisRef.oSelection.surroundContentsWithNewNode("DIV")}return a.style.lineHeight=b,a}function d(a){for(;a&&"BODY"!=a.tagName;)a=xe.DOMFix.parentNode(a);return a?!0:!1}thisRef=this;var e=this._getSelectedNodes(!1);if(0!=e.length){var f,g,h=e.length;this.oApp.exec("RECORD_UNDO_BEFORE_ACTION",["LINEHEIGHT"]),g=this._getLineWrapper(e[0]),g=c(g,b);for(var i=g,j=g,k=1;h>k;k++){try{if(!d(xe.DOMFix.parentNode(e[k])))continue}catch(l){continue}this._isChildOf(e[k],f)||(f=this._getLineWrapper(e[k]),f!=g&&(f=c(f,b),g=f))}j=f||i,setTimeout(a.fnBind(function(a,b){this.oSelection.setEndNodes(a,b),this.oSelection.select(),this.oApp.exec("RECORD_UNDO_AFTER_ACTION",["LINEHEIGHT"])},this,i,j),100)}},_getSelectedNodes:function(a){a||(this.oSelection=this.oApp.getSelection()),this.oSelection.collapsed&&this.oSelection.selectNode(this.oSelection.commonAncestorContainer);var b=this.oSelection.getTextNodes();if(0==b.length){var c=this.oSelection.getStartNode();c?b[0]=c:b=[]}return b},_getWrapperLineheight:function(a){var b="";if(a&&a.style.lineHeight)b=a.style.lineHeight;else for(a=this.oSelection.commonAncesterContainer;a&&!this.oSelection.rxLineBreaker.test(a.tagName);){if(a&&a.style.lineHeight){b=a.style.lineHeight;break}a=xe.DOMFix.parentNode(a)}return b},_isChildOf:function(a,b){for(;a&&"BODY"!=a.tagName;){if(a==b)return!0;a=xe.DOMFix.parentNode(a)}return!1},_getLineWrapper:function(a){var b=this.oApp.getEmptySelection();b.selectNode(a);var c,d,e,f,g=b.getLineInfo(),h=g.oStart,i=g.oEnd,j=null;return c=h.oNode,e=h.oLineBreaker,d=i.oNode,f=i.oLineBreaker,this.oSelection.setEndNodes(c,d),e==f&&("P"==e.tagName||"DIV"==e.tagName?j=e:this.oSelection.setEndNodes(e.firstChild,e.lastChild)),j}}),xe.XE_LineHeightWithSelectUI=a.Class({name:"XE_LineHeightWithSelectUI",_assignHTMLObjects:function(b){this.elLineHeightSelect=a("SELECT.xpress_xeditor_ui_lineHeight_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elLineHeightSelect,"change","SET_LINEHEIGHT_FROM_SELECT_UI"),this.elLineHeightSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(a,b){"lineHeight"==a&&(this.elLineHeightSelect.value=b,this.elLineHeightSelect.selectedIndex<0&&(this.elLineHeightSelect.selectedIndex=0))},$ON_SET_LINEHEIGHT_FROM_SELECT_UI:function(){var a=this.elLineHeightSelect.value;a&&(this.elLineHeightSelect.selectedIndex=0,this.oApp.exec("SET_LINEHEIGHT",[a]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}).extend(xe.XE_LineHeight),xe.XE_ColorPalette=a.Class({name:"XE_ColorPalette",rxRGBColorPattern:/rgb\((\d+), ?(\d+), ?(\d+)\)/i,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elColorPaletteLayer=a("UL.xpress_xeditor_color_palette",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elColorPaletteLayer,"click","EVENT_MOUSEUP_COLOR_PALETTE")},$ON_SHOW_COLOR_PALETTE:function(a,b){this.sCallbackCmd=a,this.oLayerContainer=b,this.oLayerContainer.insertBefore(this.elColorPaletteLayer,null),this.elColorPaletteLayer.style.display="block"},$ON_HIDE_COLOR_PALETTE:function(){this.elColorPaletteLayer.style.display="none"},$ON_COLOR_PALETTE_APPLY_COLOR:function(a){function b(a){var b=parseInt(a).toString(16);return b.length<2&&(b="0"+b),b.toUpperCase()}if(this.rxRGBColorPattern.test(a)){var c=b(RegExp.$1),d=b(RegExp.$2),e=b(RegExp.$3);a="#"+c+d+e}this.oApp.exec(this.sCallbackCmd,[a])},$ON_EVENT_MOUSEUP_COLOR_PALETTE:function(a){var b=a.target;b.style.backgroundColor&&this.oApp.exec("COLOR_PALETTE_APPLY_COLOR",[b.style.backgroundColor])}}),xe.XE_FontColor=a.Class({name:"XE_FontColor",rxColorPattern:/^#?[0-9a-fA-F]{6}$|^rgb\(\d+, ?\d+, ?\d+\)$/i,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_fontcolor_layer",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.exec("REGISTER_UI_EVENT",["fontColor","click","TOGGLE_FONTCOLOR_LAYER"])},$ON_TOGGLE_FONTCOLOR_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer,null,"SHOW_COLOR_PALETTE",["APPLY_FONTCOLOR",this.elDropdownLayer]])},$ON_APPLY_FONTCOLOR:function(a){return this.rxColorPattern.test(a)?(this.oApp.exec("SET_WYSIWYG_STYLE",[{color:a}]),void this.oApp.exec("HIDE_ACTIVE_LAYER")):void alert(this.oApp.$MSG("XE_FontColor.invalidColorCode"))}}),xe.XE_BGColor=a.Class({name:"XE_BGColor",rxColorPattern:/^#?[0-9a-fA-F]{6}$|^rgb\(\d+, ?\d+, ?\d+\)$/i,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_bgcolor_layer",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.exec("REGISTER_UI_EVENT",["bgColor","click","TOGGLE_BGCOLOR_LAYER"]),this.oApp.registerBrowserEvent(this.elDropdownLayer,"click","EVENT_APPLY_BGCOLOR",[])},$ON_TOGGLE_BGCOLOR_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer,null,"SHOW_COLOR_PALETTE",["APPLY_BGCOLOR",this.elDropdownLayer]])},$ON_EVENT_APPLY_BGCOLOR:function(a){var b=a.target;if("SPAN"==b.tagName&&(b=b.parentNode),"BUTTON"==b.tagName){var c,d;c=b.style.backgroundColor,d=b.style.color,this.oApp.exec("APPLY_BGCOLOR",[c,d])}},$ON_APPLY_BGCOLOR:function(a,b){if(!this.rxColorPattern.test(a))return void alert(this.oApp.$MSG("XE_BGColor.invalidColorCode"));var c={backgroundColor:a};b&&(c.color=b),this.oApp.exec("SET_WYSIWYG_STYLE",[c]),this.oApp.exec("HIDE_ACTIVE_LAYER")}}),xe.XE_Quote=a.Class({name:"XE_Quote",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_blockquote_layer",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.exec("REGISTER_UI_EVENT",["quote","click","TOGGLE_BLOCKQUOTE_LAYER"]),this.oApp.registerBrowserEvent(this.elDropdownLayer,"click","EVENT_APPLY_SEDITOR_BLOCKQUOTE",[])},$ON_TOGGLE_BLOCKQUOTE_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer])},$ON_EVENT_APPLY_SEDITOR_BLOCKQUOTE:function(a){var b=a.target;if("BUTTON"==b.tagName){var c=b.parentNode.className;"q8"!=c?this._wrapBlock("BLOCKQUOTE",c):this._unwrapBlock("BLOCKQUOTE"),this.oApp.exec("HIDE_ACTIVE_LAYER",[])}},_unwrapBlock:function(a){for(var b=this.oApp.getSelection(),c=b.commonAncestorContainer;c&&c.tagName!=a;)c=c.parentNode;if(c){for(;c.firstChild;)c.parentNode.insertBefore(c.firstChild,c);c.parentNode.removeChild(c)}},_wrapBlock:function(a,b){var c,d,e=this.oApp.getSelection(),f=e.getLineInfo(),g=f.oStart,h=f.oEnd,i=/BODY|TD|LI/i;c=g.bParentBreak&&!i.test(g.oLineBreaker.tagName)?g.oNode.parentNode:g.oNode,d=h.bParentBreak&&!i.test(h.oLineBreaker.tagName)?h.oNode.parentNode:h.oNode,e.setStartBefore(c),e.setEndAfter(d);var j=this._expandToTableStart(e,d);j&&(d=j,e.setEndAfter(j)),j=this._expandToTableStart(e,c),j&&(c=j,e.setStartBefore(j)),j=c;for(var k=e.commonAncestorContainer;j&&j!=k&&j.parentNode!=k;)j=j.parentNode;oFormattingNode=e._document.createElement(a),b&&(oFormattingNode.className=b),j==k?k.insertBefore(oFormattingNode,k.firstChild):k.insertBefore(oFormattingNode,j),e.setStartAfter(oFormattingNode),e.setEndAfter(d),e.surroundContents(oFormattingNode);for(var l,m=oFormattingNode.childNodes,n=m.length-1;n>=0;n--)if(3==m[n].nodeType||"BR"==m[n].tagName){var o=e._document.createElement("P");for(l=m[n].nextSibling;n>=0&&m[n]&&(3==m[n].nodeType||"BR"==m[n].tagName);)o.insertBefore(m[n--],o.firstChild);oFormattingNode.insertBefore(o,l),n++}if(oFormattingNode&&oFormattingNode.parentNode){var o=e._document.createElement("P");o.innerHTML=unescape("
    "),oFormattingNode.parentNode.insertBefore(o,oFormattingNode.nextSibling)}return this.oApp.exec("RECORD_UNDO_ACTION",["Block Quote"]),oFormattingNode},_expandToTableStart:function(a,b){for(var c=a.commonAncestorContainer,d=null,e=!1;b&&!e;){if(b==c&&(e=!0),/TBODY|TFOOT|THEAD|TR/i.test(b.tagName)){d=this._getTableRoot(b);break}b=b.parentNode}return d},_getTableRoot:function(a){for(;a&&"TABLE"!=a.tagName;)a=a.parentNode;return a}}),xe.XE_SCharacter=a.Class({name:"XE_SCharacter",$init:function(b){this.bIE=a.browser.msie,this._assignHTMLObjects(b),this.charSet=[],this.charSet[0]=unescape("FF5B FF5D 3014 3015 3008 3009 300A 300B 300C 300D 300E 300F 3010 3011 2018 2019 201C 201D 3001 3002 %B7 2025 2026 %A7 203B 2606 2605 25CB 25CF 25CE 25C7 25C6 25A1 25A0 25B3 25B2 25BD 25BC 25C1 25C0 25B7 25B6 2664 2660 2661 2665 2667 2663 2299 25C8 25A3 25D0 25D1 2592 25A4 25A5 25A8 25A7 25A6 25A9 %B1 %D7 %F7 2260 2264 2265 221E 2234 %B0 2032 2033 2220 22A5 2312 2202 2261 2252 226A 226B 221A 223D 221D 2235 222B 222C 2208 220B 2286 2287 2282 2283 222A 2229 2227 2228 FFE2 21D2 21D4 2200 2203 %B4 FF5E 02C7 02D8 02DD 02DA 02D9 %B8 02DB %A1 %BF 02D0 222E 2211 220F 266D 2669 266A 266C 327F 2192 2190 2191 2193 2194 2195 2197 2199 2196 2198 321C 2116 33C7 2122 33C2 33D8 2121 2668 260F 260E 261C 261E %B6 2020 2021 %AE %AA %BA 2642 2640").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[1]=unescape("%BD 2153 2154 %BC %BE 215B 215C 215D 215E %B9 %B2 %B3 2074 207F 2081 2082 2083 2084 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 FFE6 %24 FFE5 FFE1 20AC 2103 212B 2109 FFE0 %A4 2030 3395 3396 3397 2113 3398 33C4 33A3 33A4 33A5 33A6 3399 339A 339B 339C 339D 339E 339F 33A0 33A1 33A2 33CA 338D 338E 338F 33CF 3388 3389 33C8 33A7 33A8 33B0 33B1 33B2 33B3 33B4 33B5 33B6 33B7 33B8 33B9 3380 3381 3382 3383 3384 33BA 33BB 33BC 33BD 33BE 33BF 3390 3391 3392 3393 3394 2126 33C0 33C1 338A 338B 338C 33D6 33C5 33AD 33AE 33AF 33DB 33A9 33AA 33AB 33AC 33DD 33D0 33D3 33C3 33C9 33DC 33C6").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[2]=unescape("3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 326A 326B 326C 326D 326E 326F 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 327A 327B 24D0 24D1 24D2 24D3 24D4 24D5 24D6 24D7 24D8 24D9 24DA 24DB 24DC 24DD 24DE 24DF 24E0 24E1 24E2 24E3 24E4 24E5 24E6 24E7 24E8 24E9 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 246A 246B 246C 246D 246E 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 320A 320B 320C 320D 320E 320F 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 321A 321B 249C 249D 249E 249F 24A0 24A1 24A2 24A3 24A4 24A5 24A6 24A7 24A8 24A9 24AA 24AB 24AC 24AD 24AE 24AF 24B0 24B1 24B2 24B3 24B4 24B5 2474 2475 2476 2477 2478 2479 247A 247B 247C 247D 247E 247F 2480 2481 2482").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[3]=unescape("3131 3132 3133 3134 3135 3136 3137 3138 3139 313A 313B 313C 313D 313E 313F 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 314A 314B 314C 314D 314E 314F 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 315A 315B 315C 315D 315E 315F 3160 3161 3162 3163 3165 3166 3167 3168 3169 316A 316B 316C 316D 316E 316F 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 317A 317B 317C 317D 317E 317F 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 318A 318B 318C 318D 318E").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[4]=unescape("0391 0392 0393 0394 0395 0396 0397 0398 0399 039A 039B 039C 039D 039E 039F 03A0 03A1 03A3 03A4 03A5 03A6 03A7 03A8 03A9 03B1 03B2 03B3 03B4 03B5 03B6 03B7 03B8 03B9 03BA 03BB 03BC 03BD 03BE 03BF 03C0 03C1 03C3 03C4 03C5 03C6 03C7 03C8 03C9 %C6 %D0 0126 0132 013F 0141 %D8 0152 %DE 0166 014A %E6 0111 %F0 0127 I 0133 0138 0140 0142 0142 0153 %DF %FE 0167 014B 0149 0411 0413 0414 0401 0416 0417 0418 0419 041B 041F 0426 0427 0428 0429 042A 042B 042C 042D 042E 042F 0431 0432 0433 0434 0451 0436 0437 0438 0439 043B 043F 0444 0446 0447 0448 0449 044A 044B 044C 044D 044E 044F").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" "),this.charSet[5]=unescape("3041 3042 3043 3044 3045 3046 3047 3048 3049 304A 304B 304C 304D 304E 304F 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 305A 305B 305C 305D 305E 305F 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 306A 306B 306C 306D 306E 306F 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 307A 307B 307C 307D 307E 307F 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 308A 308B 308C 308D 308E 308F 3090 3091 3092 3093 30A1 30A2 30A3 30A4 30A5 30A6 30A7 30A8 30A9 30AA 30AB 30AC 30AD 30AE 30AF 30B0 30B1 30B2 30B3 30B4 30B5 30B6 30B7 30B8 30B9 30BA 30BB 30BC 30BD 30BE 30BF 30C0 30C1 30C2 30C3 30C4 30C5 30C6 30C7 30C8 30C9 30CA 30CB 30CC 30CD 30CE 30CF 30D0 30D1 30D2 30D3 30D4 30D5 30D6 30D7 30D8 30D9 30DA 30DB 30DC 30DD 30DE 30DF 30E0 30E1 30E2 30E3 30E4 30E5 30E6 30E7 30E8 30E9 30EA 30EB 30EC 30ED 30EE 30EF 30F0 30F1 30F2 30F3 30F4 30F5 30F6").replace(/(\S{4})/g,function(a){return"%u"+a}).split(" ")},_assignHTMLObjects:function(b){b=a.$(b)||document,this.elDropdownLayer=a("DIV.xpress_xeditor_sCharacter_layer",b).get(0),this.oTextField=a("INPUT",this.elDropdownLayer).get(0),this.oInsertButton=a("+ BUTTON",this.oTextField).get(0),this.aCloseButton=a("BUTTON.close",this.elDropdownLayer).get(),this.aSCharList=a(".list",this.elDropdownLayer).get();var c=a(">UL",this.elDropdownLayer).get(0);this.aLabelA=a("A",c).get()},$ON_MSG_APP_READY:function(){var b=a.fnBind(this.oApp.exec,this.oApp,"INSERT_SCHARACTERS",[this.oTextField.value]);a(this.oInsertButton).click(b),this.oApp.exec("SET_SCHARACTER_LIST",[this.charSet]);for(var c=0;cd;d++)c[d]=document.createElement("LI"),c[d].innerHTML='",this.aSCharList[a].appendChild(c[d])}},_stopBrowserEvent:function(b,c){a(b).bind(c,function(a){a.stopPropagation(),a.preventDefault()})}}),xe.XE_UndoRedo=a.Class({name:"XE_UndoRedo",actionHistory:null,oCurStateIdx:null,iMinimumSizeChange:10,sBlankContentsForFF:"
    ",$init:function(){this.aUndoHistory=[],this.oCurStateIdx={nIdx:0,nStep:0}},$PRECONDITION:function(a){if(a.match(/_DO_RECORD_UNDO_HISTORY_AT$/))return!0;try{if("WYSIWYG"!=this.oApp.getEditingMode())return!1}catch(b){return!1}return!0},$BEFORE_MSG_APP_READY:function(){this.oApp.exec("DO_RECORD_UNDO_HISTORY_AT",[this.oCurStateIdx,"","",null])},$ON_MSG_APP_READY:function(){this.bFF=a.browser.mozilla,this.oApp.exec("ADD_APP_PROPERTY",["getUndoHistory",a.fnBind(this.getUndoHistory,this)]),this.oApp.exec("ADD_APP_PROPERTY",["getUndoStateIdx",a.fnBind(this.getUndoStateIdx,this)]),this.oApp.exec("REGISTER_UI_EVENT",["undo","click","UNDO"]),this.oApp.exec("REGISTER_UI_EVENT",["redo","click","REDO"]),this.oApp.exec("REGISTER_HOTKEY",["ctrl+z","UNDO"]),this.oApp.exec("REGISTER_HOTKEY",["ctrl+y","REDO"])},$ON_UNDO:function(){if(this.oApp.exec("DO_RECORD_UNDO_HISTORY",["KEYPRESS",!1,!1,1]),0!=this.oCurStateIdx.nIdx){if(this.oCurStateIdx.nStep>0)this.oCurStateIdx.nStep--;else{var a=this.aUndoHistory[this.oCurStateIdx.nIdx];this.oCurStateIdx.nIdx--,a.nTotalSteps>1?this.oCurStateIdx.nStep=0:(a=this.aUndoHistory[this.oCurStateIdx.nIdx],this.oCurStateIdx.nStep=a.nTotalSteps-1)}this.oApp.exec("RESTORE_UNDO_HISTORY",[this.oCurStateIdx.nIdx,this.oCurStateIdx.nStep]),this.oApp.exec("CHECK_STYLE_CHANGE",[])}},$ON_REDO:function(){if(!(this.oCurStateIdx.nIdx>=this.aUndoHistory.length)){var a=this.aUndoHistory[this.oCurStateIdx.nIdx];this.oCurStateIdx.nIdx==this.aUndoHistory.length-1&&this.oCurStateIdx.nStep>=a.nTotalSteps-1||(this.oCurStateIdx.nStep"+b+"";this.oSelection.pasteHTML(e)}else{var f=Math.ceil(1e4*Math.random()),g=this.sATagMarker+f,h=""==b?["unlink"]:["createLink",!1,g+b];this.oApp.exec("EXECCOMMAND",h);try{this.oSelection.setFromSelection()}catch(i){}var j=this.oApp.getWYSIWYGDocument();a(j.body.getElementsByTagName("A")).filter('[href^="'+g+'"]').attr("href",function(){var b=new RegExp("^"+g.replace(/([\.\\])/g,"\\$1"),"i");return d?a(this).attr("target",d):a(this).removeAttr("target"),this.href.replace(b,"")})}this.oApp.exec("HIDE_ACTIVE_LAYER"),setTimeout(a.fnBind(function(){try{this.oSelection.select()}catch(a){}},this),0)},_validateURL:function(a){return/^(http|https|ftp|mailto):(?:\/\/)?((\w|-)+(?:[\.:@](\w|-))+)(?:\/|@)?([^"\?]*?)(?:\?([^\?"]*?))?$/.test(a)},$ON_EVENT_XE_HYPERLINK_KEYDOWN:function(a){13==a.keyCode&&(this.oApp.exec("XE_APPLY_HYPERLINK"),a.preventDefault(),a.stopPropagation())}}),xe.XE_Table=a.Class({name:"XE_Table",iMinRows:1,iMaxRows:20,iMinColumns:1,iMaxColumns:10,iMinBorderWidth:1,iMaxBorderWidth:10,oSelection:null,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){var c=null;this.elDropdownLayer=a("DIV.xpress_xeditor_table_layer",b).get(0),this.welDropdownLayer=a(this.elDropdownLayer),c=a("INPUT",this.elDropdownLayer).get(),this.oRowInput=c[0],this.oColumnInput=c[1],this.oBorderWidthInput=c[2],this.oBorderColorInput=c[3],this.oBGColorInput=c[4],c=a("BUTTON",this.elDropdownLayer).get(),this.oButton_AddRow=c[0],this.oButton_RemoveRow=c[1],this.oButton_AddColumn=c[2],this.oButton_RemoveColumn=c[3],this.oButton_IncBorderWidth=c[4],this.oButton_DecBorderWidth=c[5],this.oButton_BorderColorPreview=c[6],this.oButton_BorderColor=c[7],this.oButton_BGColorPreview=c[8],this.oButton_BGColor=c[9],this.oButton_Insert=c[10],this.oButton_Cancel=c[11],this.oSampleTable=a("TABLE",this.elDropdownLayer).get(0)},$ON_MSG_APP_READY:function(){this.oApp.exec("REGISTER_UI_EVENT",["table","click","ST_TOGGLE_TOOLBAR_LAYER"]),this.oApp.registerBrowserEvent(this.oRowInput,"change","ST_SET_ROW_NUM",[null,0]),this.oApp.registerBrowserEvent(this.oColumnInput,"change","ST_SET_COLUMN_NUM",[null,0]),this.oApp.registerBrowserEvent(this.oBorderWidthInput,"change","ST_SET_BORDER_WIDTH",[null,0]),this.oApp.registerBrowserEvent(this.oButton_AddRow,"click","ST_ADD_ROW"),this.oApp.registerBrowserEvent(this.oButton_RemoveRow,"click","ST_REMOVE_ROW"),this.oApp.registerBrowserEvent(this.oButton_AddColumn,"click","ST_ADD_COLUMN"),this.oApp.registerBrowserEvent(this.oButton_RemoveColumn,"click","ST_REMOVE_COLUMN"),this.oApp.registerBrowserEvent(this.oButton_IncBorderWidth,"click","ST_INC_BORDER_WIDTH"),this.oApp.registerBrowserEvent(this.oButton_DecBorderWidth,"click","ST_DEC_BORDER_WIDTH"),this.oApp.registerBrowserEvent(this.oButton_BorderColorPreview,"click","ST_TOGGLE_BORDER_COLOR_LAYER"),this.oApp.registerBrowserEvent(this.oButton_BGColorPreview,"click","ST_TOGGLE_BGCOLOR_LAYER"),this.oApp.registerBrowserEvent(this.oButton_BorderColor,"click","ST_TOGGLE_BORDER_COLOR_LAYER"),this.oApp.registerBrowserEvent(this.oButton_BGColor,"click","ST_TOGGLE_BGCOLOR_LAYER"),this.oApp.registerBrowserEvent(this.oButton_Insert,"click","ST_INSERT_TABLE"),this.oApp.registerBrowserEvent(this.oButton_Cancel,"click","ST_CLOSE"),this.oApp.exec("ST_SET_BORDER_COLOR",["#CCCCCC"]),this.oApp.exec("ST_SET_BGCOLOR",["#FFFFFF"])},$ON_ST_TOGGLE_TOOLBAR_LAYER:function(){this.oApp.exec("RECORD_UNDO_ACTION_FORCED",["KEYPRESS"]),this._showNewTable(),this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer])},$ON_ST_ADD_ROW:function(){this.oApp.exec("ST_SET_ROW_NUM",[null,1])},$ON_ST_REMOVE_ROW:function(){this.oApp.exec("ST_SET_ROW_NUM",[null,-1])},$ON_ST_ADD_COLUMN:function(){this.oApp.exec("ST_SET_COLUMN_NUM",[null,1])},$ON_ST_REMOVE_COLUMN:function(){this.oApp.exec("ST_SET_COLUMN_NUM",[null,-1])},$ON_ST_SET_ROW_NUM:function(a,b){a=a||parseInt(this.oRowInput.value),b=b||0,a+=b,athis.iMaxRows&&(a=this.iMaxRows),this.oRowInput.value=a,this._showNewTable()},$ON_ST_SET_COLUMN_NUM:function(a,b){a=a||parseInt(this.oColumnInput.value),b=b||0,a+=b,athis.iMaxColumns&&(a=this.iMaxColumns),this.oColumnInput.value=a,this._showNewTable()},$ON_ST_INSERT_TABLE:function(){var a=this._getTableString();this.oApp.exec("PASTE_HTML",[a]),this.oApp.exec("ST_CLOSE",[])},$ON_ST_CLOSE:function(){this.oApp.exec("HIDE_ACTIVE_LAYER",[])},$ON_ST_SET_BORDER_WIDTH:function(a,b){a=a||parseInt(this.oBorderWidthInput.value),b=b||0,a+=b,athis.iMaxBorderWidth&&(a=this.iMaxBorderWidth),this.oBorderWidthInput.value=a,this._showNewTable()},$ON_ST_INC_BORDER_WIDTH:function(){this.oApp.exec("ST_SET_BORDER_WIDTH",[null,1])},$ON_ST_DEC_BORDER_WIDTH:function(){this.oApp.exec("ST_SET_BORDER_WIDTH",[null,-1])},$ON_ST_TOGGLE_BORDER_COLOR_LAYER:function(){this.welDropdownLayer.hasClass("p1")?this.oApp.exec("ST_HIDE_BORDER_COLOR_LAYER",[]):this.oApp.exec("ST_SHOW_BORDER_COLOR_LAYER",[])},$ON_ST_SHOW_BORDER_COLOR_LAYER:function(){this.welDropdownLayer.addClass("p1"),this.welDropdownLayer.removeClass("p2"),this.oApp.exec("SHOW_COLOR_PALETTE",["ST_SET_BORDER_COLOR_FROM_PALETTE",this.elDropdownLayer])},$ON_ST_HIDE_BORDER_COLOR_LAYER:function(){this.welDropdownLayer.removeClass("p1"),this.oApp.exec("HIDE_COLOR_PALETTE",[])},$ON_ST_TOGGLE_BGCOLOR_LAYER:function(){this.welDropdownLayer.hasClass("p2")?this.oApp.exec("ST_HIDE_BGCOLOR_LAYER",[]):this.oApp.exec("ST_SHOW_BGCOLOR_LAYER",[])},$ON_ST_SHOW_BGCOLOR_LAYER:function(){this.welDropdownLayer.removeClass("p1"),this.welDropdownLayer.addClass("p2"),this.oApp.exec("SHOW_COLOR_PALETTE",["ST_SET_BGCOLOR_FROM_PALETTE",this.elDropdownLayer])},$ON_ST_HIDE_BGCOLOR_LAYER:function(){this.welDropdownLayer.removeClass("p2"),this.oApp.exec("HIDE_COLOR_PALETTE",[])},$ON_ST_SET_BORDER_COLOR_FROM_PALETTE:function(a){this.oApp.exec("ST_SET_BORDER_COLOR",[a]),this.oApp.exec("ST_HIDE_BORDER_COLOR_LAYER",[])},$ON_ST_SET_BORDER_COLOR:function(a){this.oBorderColorInput.value=a,this.oButton_BorderColorPreview.style.backgroundColor=a,this._showNewTable()},$ON_ST_SET_BGCOLOR_FROM_PALETTE:function(a){this.oApp.exec("ST_SET_BGCOLOR",[a]),this.oApp.exec("ST_HIDE_BGCOLOR_LAYER",[])},$ON_ST_SET_BGCOLOR:function(a){this.oBGColorInput.value=a,this.oButton_BGColorPreview.style.backgroundColor=a,this._showNewTable()},_showNewTable:function(){var a=document.createElement("DIV");a.innerHTML=this._getTableString();var b=a.firstChild;this.oSampleTable.parentNode.insertBefore(b,this.oSampleTable),this.oSampleTable.parentNode.removeChild(this.oSampleTable),this.oSampleTable=b},_getTableString:function(){var b=this.oBorderColorInput.value,c=this.oBGColorInput.value,d=this.oBorderWidthInput.value,e="";e=a.browser.msie?"

    ":a.browser.firefox?"


    ":"

     

    ";for(var f='',g='',h=this.oColumnInput.value,i=0;h>i;i++)g+=e;g+="\n";var j=this.oRowInput.value;f+="";for(var i=0;j>i;i++)f+=g;return f+="",f+="
    "}}),xe.XE_EditingModeToggler=a.Class({name:"XE_EditingModeToggler",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){b=a.$(b)||document,this.elModeToggleButton=a("BUTTON.xpress_xeditor_mode_toggle_button",b).get(0),this.welModeToggleButton=a(this.elModeToggleButton)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elModeToggleButton,"click","EVENT_TOGGLE_EDITING_MODE",[])},$ON_EVENT_TOGGLE_EDITING_MODE:function(){"WYSIWYG"==this.oApp.getEditingMode()?this.oApp.exec("CHANGE_EDITING_MODE",["HTMLSrc"]):this.oApp.exec("CHANGE_EDITING_MODE",["WYSIWYG"])},$ON_CHANGE_EDITING_MODE:function(a){"HTMLSrc"==a?(this.welModeToggleButton.addClass("active").parent("span").addClass("active"),this.oApp.exec("DISABLE_ALL_UI",[])):(this.welModeToggleButton.removeClass("active").parent("span").removeClass("active"),this.oApp.exec("ENABLE_ALL_UI",[])) -}}),xe.XE_Editorresize=a.Class({name:"XE_Editorresize",$init:function(b,c){this.inputArea=a(".xpress_xeditor_editing_area_container",b).get(0),this.oVerticalResizer=a(".xpress_xeditor_editingArea_verticalResizer",b).get(0),this.oCheckBox=a("#editorresize",b).get(0),this.oIframe=c;var d=this;a(c).load(function(){d.oIframeBody=a(c).contents().find("body")})},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.oCheckBox,"change","XE_TOGGLE_EDITOR_RESIZE")},$ON_XE_TOGGLE_EDITOR_RESIZE:function(){1==this.oCheckBox.checked?(void 0==this._prevHeight&&(this._prevHeight=this.inputArea.style.height),this.oVerticalResizer.style.display="none",this.oApp.registerBrowserEvent(this.oIframeBody,"keydown","XE_EDITOR_RESIZE"),this.inputArea.style.height=this.oIframe.style.height=this.oIframeBody[0].scrollHeight+"px"):(a(this.oIframeBody).unbind("keydown"),this.oVerticalResizer.style.display="block",this.inputArea.style.height=this._prevHeight,this.oIframe.style.height=this._prevHeight)},$ON_XE_EDITOR_RESIZE:function(){var a=this;setTimeout(function(){a.inputArea.style.height=a.oIframe.style.height=a.oIframeBody[0].scrollHeight+"px"},0)}});var d={"XE_EditingAreaManager.onExit":"%uB0B4%uC6A9%uC774%20%uBCC0%uACBD%uB418%uC5C8%uC2B5%uB2C8%uB2E4.","XE_FontColor.invalidColorCode":"%uC0C9%uC0C1%20%uCF54%uB4DC%uB97C%20%uC62C%uBC14%uB974%uAC8C%20%uC785%uB825%uD558%uC5EC%20%uC8FC%uC2DC%uAE30%20%uBC14%uB78D%uB2C8%uB2E4.\n\n%uC608%29%20%23000000%2C%20%23FF0000%2C%20%23FFFFFF%2C%20%23ffffff%2C%20ffffff","XE_BGColor.invalidColorCode":"%uC0C9%uC0C1%20%uCF54%uB4DC%uB97C%20%uC62C%uBC14%uB974%uAC8C%20%uC785%uB825%uD558%uC5EC%20%uC8FC%uC2DC%uAE30%20%uBC14%uB78D%uB2C8%uB2E4.\n\n%uC608%29%20%23000000%2C%20%23FF0000%2C%20%23FFFFFF%2C%20%23ffffff%2C%20ffffff","XE_Hyperlink.invalidURL":"%uC785%uB825%uD558%uC2E0%20URL%uC774%20%uC62C%uBC14%uB974%uC9C0%20%uC54A%uC2B5%uB2C8%uB2E4."};xe.XpressCore.oMessageMap=d;regex_handler=/<(.*?)\s+on[a-z]+\s*=(?:\s*".*?"|\s*'.*?'|[^\s>]+)(.*?)>/gi,regex_font_color=/color\s*=(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_face=/face\s*=(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_size=/size\s*=(?:\s*"(\d+)"|\s*'(\d+)'|(\d+))/i,regex_style=/style\s*=\s*(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_weight=/font-weight\s*:\s*([a-z]+);?/i,regex_font_style=/font-style\s*:\s*italic;?/i,regex_font_decoration=/text-decoration\s*:\s*([a-z -]+);?/i,regex_jquery=/jQuery\d+\s*=(\s*"\d+"|\d+)/gi,regex_quote_attr=/([\w-]+\s*=(?:\s*"[^"]+"|\s*'[^']+'))|([\w-]+)=([^\s]+)/g;var e=("a,abbr,acronym,address,area,blockquote,br,caption,center,cite,code,col,colgroup,dd,del,dfn,div,dl,dt,em,embed,h1,h2,h3,h4,h5,h6,hr,img,ins,kbd,li,map,object,ol,p,param,pre,q,samp,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,tt,u,ul,var,iframe,object,param,style".split(","),"area,br,col,embed,hr,img,input,param,base,meta,link,basefont,isindex".split(",")),f={b:"strong",i:"em",s:"del",strike:"del"};xe.XE_XHTMLFormatter=a.Class({name:"XE_XHTMLFormatter",$ON_MSG_APP_READY:function(){this.oApp.addConverter("WYSIWYG_TO_IR",this.TO_IR),this.oApp.addConverter("HTMLSrc_TO_IR",this.TO_IR),this.oApp.addConverter("IR_TO_HTMLSrc",this.IR_TO),this.oApp.addConverter("IR_TO_WYSIWYG",this.IR_TO)},TO_IR:function(b){var c=[];if(a.browser.msie&&(b=b.replace(regex_jquery,""),b=b.replace(/<(\w+) ([^>]+)>/g,function(a,b,c){return"<"+b+" "+c.replace(regex_quote_attr,function(a,b,c,d){return b?b:/^"/.test(d)||/"$/.test(d)?c+"="+d:c+'="'+(d||c)+'"'})+">"})),regex=/<(\/)?([:\w\/-]+)(.*?)>/gi,b=b.replace(regex,function(b,d,g,h){var i="";if(d=d||"",g=g.toLowerCase(),h=a.trim(h||""),void 0!=f[g]&&(g=f[g]),d){var j=[],k="";if(a.inArray(g,e)>=0)return"";if(!c.length)return"";do k=c.pop(),k.tag==g&&"deleted"!=k.state&&j.push("");while(c.length&&k.tag!=g);return j.join("")}if(a.inArray(g,e)>=0){var l=h.length;return"br"==g&&(h=""),h&&"/"==h.substring(l-1,l)||(h+=" /"),"<"+g+" "+a.trim(h)+">"}return c.push({tag:g,state:i}),"<"+d+g+(h?" "+h:"")+">"}),c.length){var d="";do d=c.pop(),"deleted"!=d.state&&(b+="");while(c.length)}return regex=/<\/p>[ \t]*(\n)?/gi,b=b.replace(regex,"

    \n")},IR_TO:function(a){return a}}),xe.XE_Extension=a.Class({name:"XE_Extension",seq:"",last_doc:"",$init:function(a,b){this.seq=b,this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_extension_layer",b).get(0)},_removeAttrs:function(a){return a},_addEvent:function(){if("WYSIWYG"==this.oApp.getEditingMode()){var b=this.oApp.getWYSIWYGDocument(),c=this.seq,d=function(){var b=a(this),d=b.attr("editor_component");d&&a.isFunction(openComponent)&&(editorPrevNode=b.get(0),openComponent(d,c))};a(b).find("img,div[editor_component]").each(function(){var c=a(this);"IMG"!=this.nodeName||c.attr("editor_component")||c.attr("widget")||c.attr("editor_component","image_link"),this.last_doc!=b&&(c.unbind("dblclick.widget").bind("dblclick.widget",d),this.last_doc=b)})}},$ON_MSG_APP_READY:function(){var b=this.oApp;b.exec("REGISTER_UI_EVENT",["extension","click","TOGGLE_EXTENSION_LAYER"]);var c=function(){b.exec("HIDE_ACTIVE_LAYER",[])};a("a",this.elDropdownLayer).each(function(){var b=a(this);b.attr("component_onclick_event_added")||(b.click(c),b.attr("component_onclick_event_added","Y"))})},$ON_TOGGLE_EXTENSION_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer])},$ON_CHANGE_EDITING_MODE:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_PASTE_HTML:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_LOAD_IR_FIELD:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_SET_IR:function(){var a=this;setTimeout(function(){a._addEvent()},100)}}),xe.XE_AutoSave=a.Class({name:"XE_AutoSave",form:null,textarea:null,$init:function(a,b){this.form=a.form,this.textarea=a,this._assignHTMLObjects(b)},_assignHTMLObjects:function(){this.welMessageBox=a("autosave_message")},$ON_MSG_APP_READY:function(){var b=a(this.form._saved_doc_title),c=a(this.form._saved_doc_content),d=a(this.form._saved_doc_document_srl),e=a.trim(b.val()),f=a.trim(c.val()),g=a.trim(d.val());(e||f||g)&&(confirm(this.form._saved_doc_message.value)?(a(this.form.title).val(e),this.oApp.setIR(f),"function"==typeof editorGetAutoSavedDoc&&editorGetAutoSavedDoc(this.form)):editorRemoveSavedDoc()),editorEnableAutoSave(this.form,a(this.form).attr("editor_sequence")),this.oApp.exec("REGISTER_HOTKEY",["ctrl+shift+s","AUTO_SAVE"])},$ON_AUTO_SAVE:function(){_editorAutoSave()}}),xe.XE_FormatWithSelectUI=a.Class({name:"XE_FormatWithSelectUI",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elFormatSelect=a("SELECT.xpress_xeditor_ui_format_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elFormatSelect,"change","SET_FORMAT_FROM_SELECT_UI"),this.elFormatSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(){var b=this.oApp.getWYSIWYGDocument().queryCommandValue("FormatBlock");return b?(a.browser.msie&&/([0-9])/.test(b)&&(b="h"+RegExp.$1),this.elFormatSelect.value=b.toLowerCase(),this.elFormatSelect.selectedIndex<0&&(this.elFormatSelect.selectedIndex=0),void(this.elFormatSelect.value!=b.toLowerCase()&&(this.elFormatSelect.selectedIndex=0))):this.elFormatSelect.selectedIndex=0},$ON_SET_FORMAT_FROM_SELECT_UI:function(){var b=this.elFormatSelect.value;b&&(a.browser.msie&&(b="<"+b+">"),this.oApp.exec("EXECCOMMAND",["FormatBlock",!1,b]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}),xe.XE_Table=a.Class({_startSel:null,_endSel:null,$ON_MSG_APP_READY:function(){this._doc=a(this.oApp.getWYSIWYGDocument()),this.$FnMouseDown=a.fnBind(this._mousedown,this),this.$FnMouseUp=a.fnBind(this._mouseup,this),this.$FnMouseMove=a.fnBind(this._mousemove,this),this._doc.mousedown(this.$FnMouseDown),this._startSel=null,this._endSel=null,this.oApp.exec("REGISTER_UI_EVENT",["merge_cells","click","MERGE_CELLS"]),this.oApp.exec("REGISTER_UI_EVENT",["split_col","click","CELL_SPLIT_BY_COL"]),this.oApp.exec("REGISTER_UI_EVENT",["split_row","click","CELL_SPLIT_BY_ROW"]),this.oApp.exec("REGISTER_HOTKEY",["ctrl+alt+m","MERGE_CELLS"]),this.$super.$ON_MSG_APP_READY()},$ON_MERGE_CELLS:function(){var b="",c=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),d=this;if(c.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Merge"]),c.each(function(){b+=a(this).html()}).eq(0).html(b);var e=0;c.eq(0).nextAll("td,th").andSelf().filter(".xe_selected_cell").each(function(){e+=d._getSpan(this,"col")});var f=(this._getRect(c.eq(0)),c.eq(0).parent("tr")),g=c.eq(c.length-1).parent("tr"),h=c.parents("table").eq(0).find("tr"),i=h.index(g.get(0))-h.index(f.get(0))+this._getSpan(c.eq(c.length-1),"row");c.eq(0).attr("colSpan",e).attr("rowSpan",i),c.slice(1).remove()}},$ON_CELL_SPLIT_BY_ROW:function(){var b=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),c=b.parents("table").eq(0),d=this;if(b.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Split By Row"]);var e=this._getRect(b.eq(0)).top,f=this._getRect(b.eq(b.length-1)).bottom;(b=c.find("td,th").filter(function(){var b=d._getRect(a(this));return!(b.bottom<=e||b.top>=f)})).filter(".xe_selected_cell").each(function(){var c=a(this),e=c.parent("tr"),f=d._getSpan(c,"row"),g=d._getRect(c),h=[],i=c.clone().html("
    "),j=1,k=1;f>1?(j=Math.ceil(f/2),k=f-j,h.push(function(){c.attr("rowSpan",j)}),i.attr("rowSpan",k)):(b.filter(function(){if(c.get(0)==this)return!1;var b=a(this),e=d._getRect(b);return e.bottom<=g.top||e.top>=g.bottom?!1:!0}).each(function(){var b=a(this),c=d._getSpan(b,"row")+1;h.push(function(){b.attr("rowSpan",c)})}),e.after(a.browser.msie?e.clone().empty().get(0).outerHTML:e.clone().empty()));var l=e.nextAll("tr");if(l.length){var m=l.eq(j-1).children("td,th").filter(function(){return d._getRect(a(this)).left>g.left});a.browser.msie?m.length?m.eq(0).before(i.get(0).outerHTML):l.eq(j-1).append(i.get(0).outerHTML):m.length?m.slice(0,1).before(i):l.slice(j-1,1).append(i)}else e.after(e.clone().empty().append(i));a.each(h,function(){this()})})}},$ON_CELL_SPLIT_BY_COL:function(){{var b=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),c=b.parents("table").slice(0,1),d=this;(new Date).getTime()}if(b.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Split By Column"]);var e=b.eq(0).parent("tr"),f=this._getRect(e.find(".xe_selected_cell:first")).left,g=this._getRect(e.find(".xe_selected_cell:last")).right;(b=c.find("td,th").filter(function(){var b=d._getRect(a(this));return!(b.right<=f||b.left>=g)})).filter(".xe_selected_cell").each(function(){var c=a(this),e=d._getSpan(c,"col"),f=c.clone().html("
    ");if(e>1){var g=Math.ceil(e/2),h=e-g;c.attr("colSpan",g),f.attr("colSpan",h)}else{var i=d._getRect(c);b.filter(function(){if(c.get(0)==this)return!1;var b=a(this),e=d._getRect(b);return e.right<=i.left||e.left>=i.right?!1:!0}).each(function(){var b=a(this);b.attr("colSpan",d._getSpan(b,"col")+1)}),f.attr("colSpan",1)}c.after(a.browser.msie?f.get(0).outerHTML:f)})}},$ON_CHECK_STYLE_CHANGE:function(){var b=["merge_cells","split_col","split_row"],c=this.oApp,d=this._startSel&&this._startSel.is(".xe_selected_cell")?"ENABLE_UI":"DISABLE_UI";a.each(b,function(){c.exec(d,[this])})},_mousedown:function(b){function c(){return e=f.getSelection().cloneRange(),e.collapseToStart(),e=a(e.startContainer).parents().andSelf().filter("td,th").eq(0),e.length?(g._getRect(g._startSel=e),g._doc.bind("mousemove",g.$FnMouseMove),void g._doc.bind("mouseup",g.$FnMouseUp)):g._removeAllListener()||!0}var d=a(b.target),e=d.parents().andSelf().filter("td,th,table"),f=this.oApp,g=this;a("td.xe_selected_cell",this.oApp.getWYSIWYGDocument()).removeClass("xe_selected_cell"),this._startSel=null,this._endSel=null,e.length&&this._isLeftClicked(b.button)&&setTimeout(c,0)},_mouseup:function(){this._removeAllListener(),this._startSel=this._endSel=null},_mousemove:function(b){function c(){var a=f.oApp.getSelection();f._startSel&&(f._startSel.get(0).firstChild||f._startSel.text(" "),a.selectNode(f._startSel.get(0).firstChild),a.collapseToStart(),a.select())}var d=a(b.target),e=d.parents().andSelf().filter("td,th").eq(0),f=this;if(e.length&&this._isLeftClicked(b.button)&&!(!this._endSel&&e.get(0)==this._startSel.get(0)||this._endSel&&e.get(0)==this._endSel.get(0))){this._getRect(this._endSel=e);var g=Math.min(this._startSel.rect.top,this._endSel.rect.top),h=Math.min(this._startSel.rect.left,this._endSel.rect.left),i=Math.max(this._startSel.rect.bottom,this._endSel.rect.bottom),j=Math.max(this._startSel.rect.right,this._endSel.rect.right),k=e.parents("table"),l=k.find("td,th").removeClass("xe_selected_cell"),m=a();do m.each(function(){var b=f._getRect(a(this));b.right>j&&(j=b.right),b.lefti&&(i=b.bottom)}),l=l.filter(":not(.xe_selected_cell)"),m=l.filter(function(){var b=f._getRect(a(this));return b.right<=h||b.left>=j||b.bottom<=g||b.top>=i?!1:!0}).addClass("xe_selected_cell");while(m.length);return a.browser.mozilla||setTimeout(c,0),!1}},_removeAllListener:function(){this._doc.unbind("mousemove",this.$FnMouseMove),this._doc.unbind("mouseup",this.$FnMouseUp)},_isLeftClicked:function(b){return a.browser.msie?!!(1&b):0==b},_getRect:function(a){var b=a.get(0);return a.rect={},a.rect.top=b.offsetTop,a.rect.left=b.offsetLeft,a.rect.bottom=a.rect.top+b.offsetHeight,a.rect.right=a.rect.left+b.offsetWidth,a.rect},_getSpan:function(b,c){var d=parseInt(a(b).attr(c+"span"));return isNaN(d)?1:d}}).extend(xe.XE_Table)}(jQuery),window.xe||(xe={}),xe.Editors=[],xe.XE_GET_WYSYWYG_MODE=jQuery.Class({name:"XE_GET_WYSYWYG_MODE",$init:function(a){this.editor_sequence=a},$ON_CHANGE_EDITING_MODE:function(a){editorMode[this.editor_sequence]="HTMLSrc"==a?"html":"wysiwyg"}}),xe.XE_PreservTemplate=jQuery.Class({name:"XE_PreservTemplate",isRun:!1,$BEFORE_SET_IR:function(a){return this.isRun||a?void 0:(this.isRun=!0,!1)}}),xe.XE_Preview=jQuery.Class({name:"XE_Preview",elPreviewButton:null,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(a){this.elPreviewButton=jQuery("BUTTON.xpress_xeditor_preview_button",a)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elPreviewButton.get(0),"click","EVENT_PREVIEW",[])},$ON_EVENT_PREVIEW:function(){}}); \ No newline at end of file +}}),xe.XE_Editorresize=a.Class({name:"XE_Editorresize",$init:function(b,c){this.inputArea=a(".xpress_xeditor_editing_area_container",b).get(0),this.oVerticalResizer=a(".xpress_xeditor_editingArea_verticalResizer",b).get(0),this.oCheckBox=a("#editorresize",b).get(0),this.oIframe=c;var d=this;a(c).load(function(){d.oIframeBody=a(c).contents().find("body")})},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.oCheckBox,"change","XE_TOGGLE_EDITOR_RESIZE")},$ON_XE_TOGGLE_EDITOR_RESIZE:function(){1==this.oCheckBox.checked?(void 0==this._prevHeight&&(this._prevHeight=this.inputArea.style.height),this.oVerticalResizer.style.display="none",this.oApp.registerBrowserEvent(this.oIframeBody,"keydown","XE_EDITOR_RESIZE"),this.inputArea.style.height=this.oIframe.style.height=this.oIframeBody[0].scrollHeight+"px"):(a(this.oIframeBody).unbind("keydown"),this.oVerticalResizer.style.display="block",this.inputArea.style.height=this._prevHeight,this.oIframe.style.height=this._prevHeight)},$ON_XE_EDITOR_RESIZE:function(){var a=this;setTimeout(function(){a.inputArea.style.height=a.oIframe.style.height=a.oIframeBody[0].scrollHeight+"px"},0)}});var d={"XE_EditingAreaManager.onExit":"%uB0B4%uC6A9%uC774%20%uBCC0%uACBD%uB418%uC5C8%uC2B5%uB2C8%uB2E4.","XE_FontColor.invalidColorCode":"%uC0C9%uC0C1%20%uCF54%uB4DC%uB97C%20%uC62C%uBC14%uB974%uAC8C%20%uC785%uB825%uD558%uC5EC%20%uC8FC%uC2DC%uAE30%20%uBC14%uB78D%uB2C8%uB2E4.\n\n%uC608%29%20%23000000%2C%20%23FF0000%2C%20%23FFFFFF%2C%20%23ffffff%2C%20ffffff","XE_BGColor.invalidColorCode":"%uC0C9%uC0C1%20%uCF54%uB4DC%uB97C%20%uC62C%uBC14%uB974%uAC8C%20%uC785%uB825%uD558%uC5EC%20%uC8FC%uC2DC%uAE30%20%uBC14%uB78D%uB2C8%uB2E4.\n\n%uC608%29%20%23000000%2C%20%23FF0000%2C%20%23FFFFFF%2C%20%23ffffff%2C%20ffffff","XE_Hyperlink.invalidURL":"%uC785%uB825%uD558%uC2E0%20URL%uC774%20%uC62C%uBC14%uB974%uC9C0%20%uC54A%uC2B5%uB2C8%uB2E4."};xe.XpressCore.oMessageMap=d;regex_handler=/<(.*?)\s+on[a-z]+\s*=(?:\s*".*?"|\s*'.*?'|[^\s>]+)(.*?)>/gi,regex_font_color=/color\s*=(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_face=/face\s*=(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_size=/size\s*=(?:\s*"(\d+)"|\s*'(\d+)'|(\d+))/i,regex_style=/style\s*=\s*(?:\s*"(.*?)"|\s*'(.*?)'|([^\s>]+))/i,regex_font_weight=/font-weight\s*:\s*([a-z]+);?/i,regex_font_style=/font-style\s*:\s*italic;?/i,regex_font_decoration=/text-decoration\s*:\s*([a-z -]+);?/i,regex_jquery=/jQuery\d+\s*=(\s*"\d+"|\d+)/gi,regex_quote_attr=/([\w-]+\s*=(?:\s*"[^"]+"|\s*'[^']+'))|([\w-]+)=([^\s]+)/g;var e=("a,abbr,acronym,address,area,blockquote,br,caption,center,cite,code,col,colgroup,dd,del,dfn,div,dl,dt,em,embed,h1,h2,h3,h4,h5,h6,hr,img,ins,kbd,li,map,object,ol,p,param,pre,q,samp,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,tt,u,ul,var,iframe,object,param,style".split(","),"area,br,col,embed,hr,img,input,param,base,meta,link,basefont,isindex".split(",")),f={b:"strong",i:"em",s:"del",strike:"del"};xe.XE_XHTMLFormatter=a.Class({name:"XE_XHTMLFormatter",$ON_MSG_APP_READY:function(){this.oApp.addConverter("WYSIWYG_TO_IR",this.TO_IR),this.oApp.addConverter("HTMLSrc_TO_IR",this.TO_IR),this.oApp.addConverter("IR_TO_HTMLSrc",this.IR_TO),this.oApp.addConverter("IR_TO_WYSIWYG",this.IR_TO)},TO_IR:function(b){var c=[];if(a.browser.msie&&(b=b.replace(regex_jquery,""),b=b.replace(/<(\w+) ([^>]+)>/g,function(a,b,c){return"<"+b+" "+c.replace(regex_quote_attr,function(a,b,c,d){return b?b:/^"/.test(d)||/"$/.test(d)?c+"="+d:c+'="'+(d||c)+'"'})+">"})),regex=/<(\/)?([:\w\/-]+)(.*?)>/gi,b=b.replace(regex,function(b,d,g,h){var i="";if(d=d||"",g=g.toLowerCase(),h=a.trim(h||""),void 0!=f[g]&&(g=f[g]),d){var j=[],k="";if(a.inArray(g,e)>=0)return"";if(!c.length)return"";do k=c.pop(),k.tag==g&&"deleted"!=k.state&&j.push("");while(c.length&&k.tag!=g);return j.join("")}if(a.inArray(g,e)>=0){var l=h.length;return"br"==g&&(h=""),h&&"/"==h.substring(l-1,l)||(h+=" /"),"<"+g+" "+a.trim(h)+">"}return c.push({tag:g,state:i}),"<"+d+g+(h?" "+h:"")+">"}),c.length){var d="";do d=c.pop(),"deleted"!=d.state&&(b+="");while(c.length)}return regex=/<\/p>[ \t]*(\n)?/gi,b=b.replace(regex,"

    \n")},IR_TO:function(a){return a}}),xe.XE_Extension=a.Class({name:"XE_Extension",seq:"",last_doc:"",$init:function(a,b){this.seq=b,this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elDropdownLayer=a("DIV.xpress_xeditor_extension_layer",b).get(0)},_removeAttrs:function(a){return a},_addEvent:function(){if("WYSIWYG"==this.oApp.getEditingMode()){var b=this.oApp.getWYSIWYGDocument(),c=this.seq,d=function(){var b=a(this),d=b.attr("editor_component");d&&a.isFunction(openComponent)&&(editorPrevNode=b.get(0),openComponent(d,c))};a(b).find("img,div[editor_component]").each(function(){var c=a(this);"IMG"!=this.nodeName||c.attr("editor_component")||c.attr("widget")||c.attr("editor_component","image_link"),this.last_doc!=b&&(c.unbind("dblclick.widget").bind("dblclick.widget",d),this.last_doc=b)})}},$ON_MSG_APP_READY:function(){var b=this.oApp;b.exec("REGISTER_UI_EVENT",["extension","click","TOGGLE_EXTENSION_LAYER"]);var c=function(){b.exec("HIDE_ACTIVE_LAYER",[])};a("a",this.elDropdownLayer).each(function(){var b=a(this);b.attr("component_onclick_event_added")||(b.click(c),b.attr("component_onclick_event_added","Y"))})},$ON_TOGGLE_EXTENSION_LAYER:function(){this.oApp.exec("TOGGLE_TOOLBAR_ACTIVE_LAYER",[this.elDropdownLayer])},$ON_CHANGE_EDITING_MODE:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_PASTE_HTML:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_LOAD_IR_FIELD:function(){var a=this;setTimeout(function(){a._addEvent()},100)},$ON_SET_IR:function(){var a=this;setTimeout(function(){a._addEvent()},100)}}),xe.XE_AutoSave=a.Class({name:"XE_AutoSave",form:null,textarea:null,$init:function(a,b){this.form=a.form,this.textarea=a,this._assignHTMLObjects(b)},_assignHTMLObjects:function(){this.welMessageBox=a("autosave_message")},$ON_MSG_APP_READY:function(){var b=a(this.form._saved_doc_title),c=a(this.form._saved_doc_content),d=a(this.form._saved_doc_document_srl),e=a.trim(b.val()),f=a.trim(c.val()),g=a.trim(d.val());(e||f||g)&&(confirm(this.form._saved_doc_message.value)?(a(this.form.title).val(e),this.oApp.setIR(f),"function"==typeof editorGetAutoSavedDoc&&editorGetAutoSavedDoc(this.form)):editorRemoveSavedDoc()),editorEnableAutoSave(this.form,a(this.form).attr("editor_sequence")),this.oApp.exec("REGISTER_HOTKEY",["ctrl+shift+s","AUTO_SAVE"])},$ON_AUTO_SAVE:function(){_editorAutoSave()}}),xe.XE_FormatWithSelectUI=a.Class({name:"XE_FormatWithSelectUI",$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(b){this.elFormatSelect=a("SELECT.xpress_xeditor_ui_format_select",b).get(0)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elFormatSelect,"change","SET_FORMAT_FROM_SELECT_UI"),this.elFormatSelect.selectedIndex=0},$ON_MSG_STYLE_CHANGED:function(){var b=this.oApp.getWYSIWYGDocument().queryCommandValue("FormatBlock");return b?(a.browser.msie&&/([0-9])/.test(b)&&(b="h"+RegExp.$1),this.elFormatSelect.value=b.toLowerCase(),this.elFormatSelect.selectedIndex<0&&(this.elFormatSelect.selectedIndex=0),void(this.elFormatSelect.value!=b.toLowerCase()&&(this.elFormatSelect.selectedIndex=0))):this.elFormatSelect.selectedIndex=0},$ON_SET_FORMAT_FROM_SELECT_UI:function(){var b=this.elFormatSelect.value;b&&(a.browser.msie&&(b="<"+b+">"),this.oApp.exec("EXECCOMMAND",["FormatBlock",!1,b]),this.oApp.exec("CHECK_STYLE_CHANGE",[]))}}),xe.XE_Table=a.Class({_startSel:null,_endSel:null,$ON_MSG_APP_READY:function(){this._doc=a(this.oApp.getWYSIWYGDocument()),this.$FnMouseDown=a.fnBind(this._mousedown,this),this.$FnMouseUp=a.fnBind(this._mouseup,this),this.$FnMouseMove=a.fnBind(this._mousemove,this),this._doc.mousedown(this.$FnMouseDown),this._startSel=null,this._endSel=null,this.oApp.exec("REGISTER_UI_EVENT",["merge_cells","click","MERGE_CELLS"]),this.oApp.exec("REGISTER_UI_EVENT",["split_col","click","CELL_SPLIT_BY_COL"]),this.oApp.exec("REGISTER_UI_EVENT",["split_row","click","CELL_SPLIT_BY_ROW"]),this.oApp.exec("REGISTER_HOTKEY",["ctrl+alt+m","MERGE_CELLS"]),this.$super.$ON_MSG_APP_READY()},$ON_MERGE_CELLS:function(){var b="",c=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),d=this;if(c.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Merge"]),c.each(function(){b+=a(this).html()}).eq(0).html(b);var e=0;c.eq(0).nextAll("td,th").addBack().filter(".xe_selected_cell").each(function(){e+=d._getSpan(this,"col")});var f=(this._getRect(c.eq(0)),c.eq(0).parent("tr")),g=c.eq(c.length-1).parent("tr"),h=c.parents("table").eq(0).find("tr"),i=h.index(g.get(0))-h.index(f.get(0))+this._getSpan(c.eq(c.length-1),"row");c.eq(0).attr("colSpan",e).attr("rowSpan",i),c.slice(1).remove()}},$ON_CELL_SPLIT_BY_ROW:function(){var b=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),c=b.parents("table").eq(0),d=this;if(b.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Split By Row"]);var e=this._getRect(b.eq(0)).top,f=this._getRect(b.eq(b.length-1)).bottom;(b=c.find("td,th").filter(function(){var b=d._getRect(a(this));return!(b.bottom<=e||b.top>=f)})).filter(".xe_selected_cell").each(function(){var c=a(this),e=c.parent("tr"),f=d._getSpan(c,"row"),g=d._getRect(c),h=[],i=c.clone().html("
    "),j=1,k=1;f>1?(j=Math.ceil(f/2),k=f-j,h.push(function(){c.attr("rowSpan",j)}),i.attr("rowSpan",k)):(b.filter(function(){if(c.get(0)==this)return!1;var b=a(this),e=d._getRect(b);return e.bottom<=g.top||e.top>=g.bottom?!1:!0}).each(function(){var b=a(this),c=d._getSpan(b,"row")+1;h.push(function(){b.attr("rowSpan",c)})}),e.after(a.browser.msie?e.clone().empty().get(0).outerHTML:e.clone().empty()));var l=e.nextAll("tr");if(l.length){var m=l.eq(j-1).children("td,th").filter(function(){return d._getRect(a(this)).left>g.left});a.browser.msie?m.length?m.eq(0).before(i.get(0).outerHTML):l.eq(j-1).append(i.get(0).outerHTML):m.length?m.slice(0,1).before(i):l.slice(j-1,1).append(i)}else e.after(e.clone().empty().append(i));a.each(h,function(){this()})})}},$ON_CELL_SPLIT_BY_COL:function(){{var b=a(".xe_selected_cell",this.oApp.getWYSIWYGDocument()).filter("td,th"),c=b.parents("table").slice(0,1),d=this;(new Date).getTime()}if(b.length){this.oApp.exec("RECORD_UNDO_ACTION",["Cell:Split By Column"]);var e=b.eq(0).parent("tr"),f=this._getRect(e.find(".xe_selected_cell:first")).left,g=this._getRect(e.find(".xe_selected_cell:last")).right;(b=c.find("td,th").filter(function(){var b=d._getRect(a(this));return!(b.right<=f||b.left>=g)})).filter(".xe_selected_cell").each(function(){var c=a(this),e=d._getSpan(c,"col"),f=c.clone().html("
    ");if(e>1){var g=Math.ceil(e/2),h=e-g;c.attr("colSpan",g),f.attr("colSpan",h)}else{var i=d._getRect(c);b.filter(function(){if(c.get(0)==this)return!1;var b=a(this),e=d._getRect(b);return e.right<=i.left||e.left>=i.right?!1:!0}).each(function(){var b=a(this);b.attr("colSpan",d._getSpan(b,"col")+1)}),f.attr("colSpan",1)}c.after(a.browser.msie?f.get(0).outerHTML:f)})}},$ON_CHECK_STYLE_CHANGE:function(){var b=["merge_cells","split_col","split_row"],c=this.oApp,d=this._startSel&&this._startSel.is(".xe_selected_cell")?"ENABLE_UI":"DISABLE_UI";a.each(b,function(){c.exec(d,[this])})},_mousedown:function(b){function c(){return e=f.getSelection().cloneRange(),e.collapseToStart(),e=a(e.startContainer).parents().addBack().filter("td,th").eq(0),e.length?(g._getRect(g._startSel=e),g._doc.bind("mousemove",g.$FnMouseMove),void g._doc.bind("mouseup",g.$FnMouseUp)):g._removeAllListener()||!0}var d=a(b.target),e=d.parents().addBack().filter("td,th,table"),f=this.oApp,g=this;a("td.xe_selected_cell",this.oApp.getWYSIWYGDocument()).removeClass("xe_selected_cell"),this._startSel=null,this._endSel=null,e.length&&this._isLeftClicked(b.button)&&setTimeout(c,0)},_mouseup:function(){this._removeAllListener(),this._startSel=this._endSel=null},_mousemove:function(b){function c(){var a=f.oApp.getSelection();f._startSel&&(f._startSel.get(0).firstChild||f._startSel.text(" "),a.selectNode(f._startSel.get(0).firstChild),a.collapseToStart(),a.select())}var d=a(b.target),e=d.parents().addBack().filter("td,th").eq(0),f=this;if(e.length&&this._isLeftClicked(b.button)&&!(!this._endSel&&e.get(0)==this._startSel.get(0)||this._endSel&&e.get(0)==this._endSel.get(0))){this._getRect(this._endSel=e);var g=Math.min(this._startSel.rect.top,this._endSel.rect.top),h=Math.min(this._startSel.rect.left,this._endSel.rect.left),i=Math.max(this._startSel.rect.bottom,this._endSel.rect.bottom),j=Math.max(this._startSel.rect.right,this._endSel.rect.right),k=e.parents("table"),l=k.find("td,th").removeClass("xe_selected_cell"),m=a();do m.each(function(){var b=f._getRect(a(this));b.right>j&&(j=b.right),b.lefti&&(i=b.bottom)}),l=l.filter(":not(.xe_selected_cell)"),m=l.filter(function(){var b=f._getRect(a(this));return b.right<=h||b.left>=j||b.bottom<=g||b.top>=i?!1:!0}).addClass("xe_selected_cell");while(m.length);return a.browser.mozilla||setTimeout(c,0),!1}},_removeAllListener:function(){this._doc.unbind("mousemove",this.$FnMouseMove),this._doc.unbind("mouseup",this.$FnMouseUp)},_isLeftClicked:function(b){return a.browser.msie?!!(1&b):0==b},_getRect:function(a){var b=a.get(0);return a.rect={},a.rect.top=b.offsetTop,a.rect.left=b.offsetLeft,a.rect.bottom=a.rect.top+b.offsetHeight,a.rect.right=a.rect.left+b.offsetWidth,a.rect},_getSpan:function(b,c){var d=parseInt(a(b).attr(c+"span"));return isNaN(d)?1:d}}).extend(xe.XE_Table)}(jQuery),window.xe||(xe={}),xe.Editors=[],xe.XE_GET_WYSYWYG_MODE=jQuery.Class({name:"XE_GET_WYSYWYG_MODE",$init:function(a){this.editor_sequence=a},$ON_CHANGE_EDITING_MODE:function(a){editorMode[this.editor_sequence]="HTMLSrc"==a?"html":"wysiwyg"}}),xe.XE_PreservTemplate=jQuery.Class({name:"XE_PreservTemplate",isRun:!1,$BEFORE_SET_IR:function(a){return this.isRun||a?void 0:(this.isRun=!0,!1)}}),xe.XE_Preview=jQuery.Class({name:"XE_Preview",elPreviewButton:null,$init:function(a){this._assignHTMLObjects(a)},_assignHTMLObjects:function(a){this.elPreviewButton=jQuery("BUTTON.xpress_xeditor_preview_button",a)},$ON_MSG_APP_READY:function(){this.oApp.registerBrowserEvent(this.elPreviewButton.get(0),"click","EVENT_PREVIEW",[])},$ON_EVENT_PREVIEW:function(){}}); \ No newline at end of file From 71d97e631c4061dcc526959600425bd62aca14e0 Mon Sep 17 00:00:00 2001 From: akasima Date: Wed, 13 Aug 2014 16:51:22 +0900 Subject: [PATCH 437/549] #908 attach ajax event to document element --- common/js/xe.js | 2 +- common/js/xe.min.js | 2 +- common/js/xml_handler.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/common/js/xe.js b/common/js/xe.js index c86fe3eddc..3f2f814530 100644 --- a/common/js/xe.js +++ b/common/js/xe.js @@ -1763,7 +1763,7 @@ function xml2json(xml, tab, ignoreAttrib) { } $(function($){ - $('.wfsr') + $(document) .ajaxStart(function(){ $(window).bind('beforeunload', beforeUnloadHandler); }) diff --git a/common/js/xe.min.js b/common/js/xe.min.js index 0e871f3130..41d546bb42 100644 --- a/common/js/xe.min.js +++ b/common/js/xe.min.js @@ -3,4 +3,4 @@ * @file common.js + js_app.js + xml_handler.js + xml_js_filter.js * @brief XE Common JavaScript **/ -function xSleep(a){a/=1e3;for(var b=new Date,c=new Date;c.getTime()-b.getTime()-1&&!a.getQuery("vid")&&(a=a.setQuery("vid",xeVid));try{"_blank"!=b&&winopen_list[b]&&(winopen_list[b].close(),winopen_list[b]=null)}catch(d){}"undefined"==typeof b&&(b="_blank"),"undefined"==typeof c&&(c="");var e=window.open(a,b,c);e.focus(),"_blank"!=b&&(winopen_list[b]=e)}function popopen(a,b){"undefined"==typeof b&&(b="_blank"),"undefined"!=typeof xeVid&&a.indexOf(request_uri)>-1&&!a.getQuery("vid")&&(a=a.setQuery("vid",xeVid)),winopen(a,b,"width=800,height=600,scrollbars=yes,resizable=yes,toolbars=no")}function sendMailTo(a){location.href="mailto:"+a}function move_url(a,b){return a?("undefined"==typeof b&&(b="N"),b="N"==b?!1:!0,/^\./.test(a)&&(a=request_uri+a),b?winopen(a):location.href=a,!1):!1}function displayMultimedia(a,b,c,d){var e=_displayMultimedia(a,b,c,d);e&&document.writeln(e)}function _displayMultimedia(a,b,c,d){0===a.indexOf("files")&&(a=request_uri+a);var e={wmode:"transparent",allowScriptAccess:"never",quality:"high",flashvars:"",autostart:!1},f=jQuery.extend(e,d||{}),g=f.autostart&&"false"!=f.autostart?"true":"false";delete f.autostart;var h="",i="",j="";if(/\.(gif|jpg|jpeg|bmp|png)$/i.test(a))j='';else if(/\.flv$/i.test(a)||/\.mov$/i.test(a)||/\.moov$/i.test(a)||/\.m4v$/i.test(a))j='';else if(/\.swf/i.test(a)){h="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",i="undefined"!=typeof enforce_ssl&&enforce_ssl?"https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0":"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0",j='',j+='';for(var k in f)"undefined"!=f[k]&&""!==f[k]&&(j+='');j+=''}else(jQuery.browser.mozilla||jQuery.browser.opera)&&(g=f.autostart&&"false"!=f.autostart?"1":"0"),j='.popup");e=h.css({overflow:"scroll"}).offset(),a=h.width(10).height(1e4).get(0).scrollWidth+2*e.left,b=h.height(10).width(1e4).get(0).scrollHeight+2*e.top,800>a&&(a=800+2*e.left),c=g.width(),d=g.height(),a!=c&&window.resizeBy(a-c,0),b!=d&&window.resizeBy(0,b-d),h.width(a-2*e.left).css({overflow:"",height:""})}function doCallModuleAction(a,b,c){var d={target_srl:c,cur_mid:current_mid,mid:current_mid};exec_xml(a,b,d,completeCallModuleAction)}function completeCallModuleAction(a){"success"!=a.message&&alert(a.message),location.reload()}function completeMessage(a){alert(a.message),location.reload()}function doChangeLangType(a){if("string"==typeof a)setLangType(a);else{var b=a.options[a.selectedIndex].value;setLangType(b)}location.href=location.href.setQuery("l","")}function setLangType(a){var b=new Date;b.setTime(b.getTime()+6048e8),setCookie("lang_type",a,b,"/")}function doDocumentPreview(a){for(var b=a;"FORM"!=b.nodeName;)b=b.parentNode;if("FORM"==b.nodeName){var c=b.getAttribute("editor_sequence"),d=editorGetContent(c),e=(window.open("","previewDocument","toolbars=no,width=700px;height=800px,scrollbars=yes,resizable=yes"),jQuery("#previewDocument"));e.length?e=e[0]:(jQuery('
    ').appendTo(document.body),e=jQuery("#previewDocument")[0]),e&&(e.content.value=d,e.submit())}}function doDocumentSave(a){var b=a.form.getAttribute("editor_sequence"),c=editorRelKeys[b].content.value;if("undefined"!=typeof b&&b&&"undefined"!=typeof editorRelKeys&&"function"==typeof editorGetContent){var d=editorGetContent(b);editorRelKeys[b].content.value=d}var e={},f=["error","message","document_srl"],g=(a.form.elements,jQuery(a.form).serializeArray());return jQuery.each(g,function(a,b){var c=jQuery.trim(b.value);return c?(/\[\]$/.test(b.name)&&(b.name=b.name.replace(/\[\]$/,"")),void(e[b.name]?e[b.name]+="|@|"+c:e[b.name]=b.value)):!0}),exec_xml("document","procDocumentTempSave",e,completeDocumentSave,f,e,a.form),editorRelKeys[b].content.value=c,!1}function completeDocumentSave(a){jQuery("input[name=document_srl]").eq(0).val(a.document_srl),alert(a.message)}function doDocumentLoad(a){objForSavedDoc=a.form,popopen(request_uri.setQuery("module","document").setQuery("act","dispTempSavedList"))}function doDocumentSelect(a,b){if(!opener||!opener.objForSavedDoc)return void window.close();switch(void 0===b&&(b="document"),b){case"page":opener.location.href=opener.current_url.setQuery("document_srl",a).setQuery("act","dispPageAdminContentModify");break;default:opener.location.href=opener.current_url.setQuery("document_srl",a).setQuery("act","dispBoardWrite")}window.close()}function viewSkinInfo(a,b){popopen("./?module=module&act=dispModuleSkinInfo&selected_module="+a+"&skin="+b,"SkinInfo")}function doAddDocumentCart(a){var b=a.value;addedDocument[addedDocument.length]=b,setTimeout(function(){callAddDocumentCart(addedDocument.length)},100)}function callAddDocumentCart(a){if(!(addedDocument.length<1||a!=addedDocument.length)){var b=[];b.srls=addedDocument.join(","),exec_xml("document","procDocumentAddCart",b,null),addedDocument=[]}}function transRGB2Hex(a){if(!a)return a;if(a.indexOf("#")>-1)return a.replace(/^#/,"");if(a.toLowerCase().indexOf("rgb")<0)return a;a=a.replace(/^rgb\(/i,"").replace(/\)$/,""),value_list=a.split(",");for(var b="",c=0;cf&&2>g){d.removeWhite(a);for(var j=a.firstChild;j;j=j.nextSibling)3==j.nodeType?b=d.escape(j.nodeValue):4==j.nodeType?b=d.escape(j.nodeValue):b[j.nodeName]?b[j.nodeName]instanceof Array?b[j.nodeName][b[j.nodeName].length]=d.toObj(j):b[j.nodeName]=[b[j.nodeName],d.toObj(j)]:b[j.nodeName]=d.toObj(j)}else a.attributes.length?b["#text"]=d.escape(d.innerXml(a)):b=d.escape(d.innerXml(a));else if(f)a.attributes.length?b["#text"]=d.escape(d.innerXml(a)):b=d.escape(d.innerXml(a));else if(g)if(g>1)b=d.escape(d.innerXml(a));else for(var k=a.firstChild;k;k=k.nextSibling)b=d.escape(k.nodeValue)}a.attributes.length||a.firstChild||(b=null)}else 9==a.nodeType?b=d.toObj(a.documentElement):alert("unhandled node type: "+a.nodeType);return b},toJson:function(a,b,c){var e=b?'"'+b+'"':"";if(a instanceof Array){for(var f=0,g=a.length;g>f;f++)a[f]=d.toJson(a[f],"",c+" ");e+=(b?":[":"[")+(a.length>1?"\n"+c+" "+a.join(",\n"+c+" ")+"\n"+c:a.join(""))+"]"}else if(null===a)e+=(b&&":")+"null";else if("object"==typeof a){var h=[];for(var i in a)h[h.length]=d.toJson(a[i],i,c+" ");e+=(b?":{":"{")+(h.length>1?"\n"+c+" "+h.join(",\n"+c+" ")+"\n"+c:h.join(""))+"}"}else e+="string"==typeof a?(b&&":")+'"'+a.toString()+'"':(b&&":")+a.toString();return e},innerXml:function(a){var b="";if("innerHTML"in a)b=a.innerHTML;else for(var c=function(a){var b="";if(1==a.nodeType){b+="<"+a.nodeName;for(var d=0;d"}else b+="/>"}else 3==a.nodeType?b+=a.nodeValue:4==a.nodeType&&(b+="");return b},d=a.firstChild;d;d=d.nextSibling)b+=c(d);return b},escape:function(a){return a.replace(/[\\]/g,"\\\\").replace(/[\"]/g,'\\"').replace(/[\n]/g,"\\n").replace(/[\r]/g,"\\r")},removeWhite:function(a){a.normalize();for(var b=a.firstChild;b;)if(3==b.nodeType)if(b.nodeValue.match(/[^ \f\n\r\t\v]/))b=b.nextSibling;else{var c=b.nextSibling;a.removeChild(b),b=c}else 1==b.nodeType?(d.removeWhite(b),b=b.nextSibling):b=b.nextSibling;return a}};9==a.nodeType&&(a=a.documentElement);var e,f=d.toObj(d.removeWhite(a));return e=d.toJson(f,a.nodeName,""),"{"+(b?e.replace(/\t/g,b):e.replace(/\t|\n/g,""))+"}"}function filterAlertMessage(a){var b=(a.error,a.message),c=a.act,d=a.redirect_url,e=location.href;"undefined"!=typeof b&&b&&"success"!=b&&alert(b),"undefined"!=typeof c&&c?e=current_url.setQuery("act",c):"undefined"!=typeof d&&d&&(e=d),e==location.href&&(e=e.replace(/#(.*)$/,"")),location.href=e}function procFilter(a,b){return b(a),!1}function legacy_filter(a,b,c,d,e,f,g,h){var i=xe.getApp("Validator")[0],j=jQuery,k=[];return i?(b.elements._filter||j(b).prepend(''),b.elements._filter.value=a,k[0]=a,k[1]=function(a){var i={},k=(a.elements,j(a).serializeArray());return j.each(k,function(a,b){var c=j.trim(b.value),d=b.name;return c&&d?(h[d]&&(d=h[d]),/\[\]$/.test(d)&&(d=d.replace(/\[\]$/,"")),void(i[d]?i[d]+="|@|"+c:i[d]=b.value)):!0}),g&&!confirm(g)?!1:void exec_xml(c,d,i,e,f,i,b)},i.cast("ADD_CALLBACK",k),i.cast("VALIDATE",[b,a]),!1):!1}jQuery&&jQuery.noConflict(),function(a){var b=navigator.userAgent.toLowerCase();a.os={Linux:/linux/.test(b),Unix:/x11/.test(b),Mac:/mac/.test(b),Windows:/win/.test(b)},a.os.name=a.os.Windows?"Windows":a.os.Linux?"Linux":a.os.Unix?"Unix":a.os.Mac?"Mac":"",window.XE={loaded_popup_menus:[],addedDocument:[],checkboxToggleAll:function(b){is_def(b)||(b="cart");var c,d={wrap:null,checked:"toggle",doClick:!1};switch(arguments.length){case 1:"string"==typeof arguments[0]?b=arguments[0]:(a.extend(d,arguments[0]||{}),b="cart");break;case 2:b=arguments[0],a.extend(d,arguments[1]||{})}d.doClick===!0&&(d.checked=null),"string"==typeof d.wrap&&(d.wrap="#"+d.wrap),c=d.wrap?a(d.wrap).find('input[name="'+b+'"]:checkbox'):a('input[name="'+b+'"]:checkbox'),"toggle"==d.checked?c.each(function(){a(this).attr("checked",a(this).attr("checked")?!1:!0)}):d.doClick===!0?c.click():c.attr("checked",d.checked)},displayPopupMenu:function(b,c,d){var e=(d.target_srl,d.menu_id),f=b.menus,g="";if(this.loaded_popup_menus[e])g=this.loaded_popup_menus[e];else{if(f){var h=f.item;if(("undefined"==typeof h.length||h.length<1)&&(h=new Array(h)),h.length)for(var i=0;i"+k+" "}}this.loaded_popup_menus[e]=g}if(g){var o=a("#popup_menu_area").html("
      "+g+"
    "),p={top:d.page_y,left:d.page_x};o.outerHeight()+p.top>a(window).height()+a(window).scrollTop()&&(p.top=a(window).height()-o.outerHeight()+a(window).scrollTop()),o.outerWidth()+p.left>a(window).width()+a(window).scrollLeft()&&(p.left=a(window).width()-o.outerWidth()+a(window).scrollLeft()),o.css({top:p.top,left:p.left}).show().focus()}}}}(jQuery),jQuery(function(a){a.browser.msie&&a("select").each(function(a,b){for(var c=!1,d=[],e=0;e-1?d[a]:e;c&&(b.oldonchange=b.onchange,b.onchange=function(){this.options[this.selectedIndex].disabled?this.selectedIndex=d[a]:this.oldonchange&&this.oldonchange()},b.selectedIndex>=0&&b.options[b.selectedIndex].disabled&&b.onchange())});var b=a(".xe_content .fold_button");if(b.size()){var c=a("div.fold_container",b);a("button.more",b).click(function(){a(this).hide().next("button").show().parent().next(c).show()}),a("button.less",b).click(function(){a(this).hide().prev("button").show().parent().next(c).hide()})}jQuery('input[type="submit"],button[type="submit"]').click(function(a){var b=jQuery(a.currentTarget);setTimeout(function(){return function(){b.attr("disabled","disabled")}}(),0),setTimeout(function(){return function(){b.removeAttr("disabled")}}(),3e3)})}),function(){function a(a,b){return a.replace(/#.*$/,"")===b.replace(/#.*$/,"")}var b=Array.isArray||function(a){return"[object Array]"==Object.prototype.toString.call(a)};String.prototype.getQuery=function(b){var c=a(this,window.location.href)?current_url:this,d=c.indexOf("?");if(-1==d)return null;var e=c.substr(d+1,this.length),f={};e.replace(/([^=]+)=([^&]*)(&|$)/g,function(){f[arguments[1]]=arguments[2]});var g=f[b];return"undefined"==typeof g&&(g=""),g},String.prototype.setQuery=function(c,d){var e,f,g,h,i=a(this,window.location.href)?current_url:this,j=i.indexOf("?"),k=i.replace(/#$/,"");if("undefined"==typeof d&&(d=""),-1!=j){var l=k.substr(j+1,i.length),m={},n=[];k=i.substr(0,j),l.replace(/([^=]+)=([^&]*)(&|$)/g,function(a,b,c){m[b]=c}),m[c]=d;for(var o in m)m.hasOwnProperty(o)&&(g=String(m[o]).trim())&&n.push(o+"="+decodeURI(g));l=n.join("&"),k+=l?"?"+l:""}else String(d).trim()&&(k=k+"?"+c+"="+d);f=/^https:\/\/([^:\/]+)(:\d+|)/i,f.test(k)&&(h="http://"+RegExp.$1,window.http_port&&80!=http_port&&(h+=":"+http_port),k=k.replace(f,h));var p=!!window.enforce_ssl;if(!p&&b(window.ssl_actions)&&(e=k.getQuery("act")))for(var q=0,r=ssl_actions.length;r>q;q++)if(ssl_actions[q]===e){p=!0;break}return f=/http:\/\/([^:\/]+)(:\d+|)/i,p&&f.test(k)&&(h="https://"+RegExp.$1,window.https_port&&443!=https_port&&(h+=":"+https_port),k=k.replace(f,h)),k=k.replace(/\/(index\.php)?\?/,"/index.php?"),encodeURI(k)},String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g,"")}}();var winopen_list=[],objForSavedDoc=null,addedDocument=[],Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(a){var b,c,d,e,f,g,h,i="",j=0;for(a=Base64._utf8_encode(a);j>2,f=(3&b)<<4|c>>4,g=(15&c)<<2|d>>6,h=63&d,isNaN(c)?g=h=64:isNaN(d)&&(h=64),i=i+this._keyStr.charAt(e)+this._keyStr.charAt(f)+this._keyStr.charAt(g)+this._keyStr.charAt(h);return i},decode:function(a){var b,c,d,e,f,g,h,i="",j=0;for(a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");j>4,c=(15&f)<<4|g>>2,d=(3&g)<<6|h,i+=String.fromCharCode(b),64!=g&&(i+=String.fromCharCode(c)),64!=h&&(i+=String.fromCharCode(d));return i=Base64._utf8_decode(i)},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;cd?b+=String.fromCharCode(d):d>127&&2048>d?(b+=String.fromCharCode(d>>6|192),b+=String.fromCharCode(63&d|128)):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128),b+=String.fromCharCode(63&d|128))}return b},_utf8_decode:function(a){for(var b="",c=0,d=0,e=0,f=0;cd?(b+=String.fromCharCode(d),c++):d>191&&224>d?(e=a.charCodeAt(c+1),b+=String.fromCharCode((31&d)<<6|63&e),c+=2):(e=a.charCodeAt(c+1),f=a.charCodeAt(c+2),b+=String.fromCharCode((15&d)<<12|(63&e)<<6|63&f),c+=3);return b}};"undefined"==typeof resizeImageContents&&(window.resizeImageContents=function(){}),"undefined"==typeof activateOptionDisabled&&(window.activateOptionDisabled=function(){}),objectExtend=jQuery.extend;var loaded_popup_menus=XE.loaded_popup_menus;jQuery(function(a){a(document).click(function(b){var c=a("#popup_menu_area");c.length||(c=a('