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 000000000..c46060c7c --- /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 906b48b96..2e660eab2 100644 --- a/modules/board/board.controller.php +++ b/modules/board/board.controller.php @@ -96,6 +96,14 @@ class boardController extends board $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 49258adb0..1d6675af3 100644 --- a/modules/board/board.view.php +++ b/modules/board/board.view.php @@ -402,8 +402,7 @@ class boardView extends board } // 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 797911401..7e782c9c0 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 0e8183ae2..ee29a2889 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 c31b470da..d51e63833 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 f9563e034..112cf449b 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 a2443c575..7cfd264fb 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 bbd42ef0a..9a0652211 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 0668ff5d0..c44a7d606 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 112cf449b..8c68f03d2 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 9a0652211..00aad260d 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 02cc8d09e..7c79c20b3 100644 --- a/modules/board/board.controller.php +++ b/modules/board/board.controller.php @@ -204,9 +204,21 @@ class boardController extends board // 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 ec531740a..95da583ac 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 9183e67f4..23ff80d81 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 1d6675af3..b086f7527 100644 --- a/modules/board/board.view.php +++ b/modules/board/board.view.php @@ -402,9 +402,11 @@ class boardView extends board } // 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 b086f7527..6f5daa4e1 100644 --- a/modules/board/board.view.php +++ b/modules/board/board.view.php @@ -403,8 +403,7 @@ class boardView extends board // 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 abc27b476..7f6737132 100644 --- a/modules/comment/comment.admin.controller.php +++ b/modules/comment/comment.admin.controller.php @@ -132,12 +132,17 @@ class commentAdminController extends comment $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 5c5bc2106..a9e918929 100644 --- a/modules/comment/comment.controller.php +++ b/modules/comment/comment.controller.php @@ -560,11 +560,16 @@ class commentController extends comment $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 6f5daa4e1..1cd954a72 100644 --- a/modules/board/board.view.php +++ b/modules/board/board.view.php @@ -47,16 +47,27 @@ class boardView extends board } // 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 1cd954a72..7c0da1803 100644 --- a/modules/board/board.view.php +++ b/modules/board/board.view.php @@ -414,7 +414,7 @@ class boardView extends board // 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 6203f278c..74b7d2868 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -105,6 +105,10 @@ class ModuleHandler extends Handler * */ 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 @@ class ModuleHandler extends Handler { 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 @@ class ModuleHandler extends Handler { // 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 @@ class ModuleHandler extends Handler { 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 af51f5762..d61094f5f 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -333,6 +333,7 @@ class moduleModel extends module } 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 61410210e..0072594c4 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 d61094f5f..0804b41af 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -565,7 +565,7 @@ class moduleModel extends module /** * @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 @@ class moduleModel extends 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 = executeQueryArray('module.getActionForward',$args); + + $action_forward = array(); + foreach($output->data as $item) { - $output = executeQuery('module.getActionForwardWithModule', $args); + $action_forward[$item->act] = $item; } - else - { - $output = executeQuery('module.getActionForward',$args); - } - $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 3f974a19c..37011e386 100644 --- a/widgets/content/content.class.php +++ b/widgets/content/content.class.php @@ -275,7 +275,7 @@ class content extends WidgetHandler $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 5fd982cc0..ba73025e3 100644 --- a/modules/page/page.admin.controller.php +++ b/modules/page/page.admin.controller.php @@ -281,6 +281,14 @@ class pageAdminController extends page 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 | 784 +++++++++--------- modules/editor/tpl/js/editor.min.js | 1 + modules/editor/tpl/js/editor_admin.js | 18 +- modules/editor/tpl/js/editor_common.js | 422 +++++----- 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 | 102 +-- modules/editor/tpl/js/uploader.min.js | 1 + 10 files changed, 734 insertions(+), 728 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 eada99fb9..c98f6a5cd 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 592a7165b..c16146354 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; + // 현 에디터를 감싸고 있는 form문을 찾음 + var fo_obj = editorGetForm(editor_sequence); + if(!fo_obj) return; - // fo_obj에 editor_sequence 값 지정 - fo_obj.setAttribute('editor_sequence', editor_sequence); + // 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; + // 모듈 연관 키 값을 세팅 + 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가 없으면 자동저장 하지 않음 + // 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; + 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; + 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(); - } - } - } + 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; + // 대상 form의 content element에서 데이터를 구함 + var content = editorRelKeys[editor_sequence]['content'].value; - // IE가 아니고 내용이 없으면
추가 (FF등에서 iframe 선택시 focus를 주기 위한 꽁수) - if(!content && !xIE4Up) content = "
"; + // 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"; - } + // 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(); + // 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; + // editorMode를 기본으로 설정 + editorMode[editor_sequence] = null; - // 에디터를 시작 시킴 - try { - iframe_obj.contentWindow.document.designMode = 'On'; - } catch(e) { - } + // 에디터를 시작 시킴 + 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) { - } + 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 문으로 감싸서 - * 에러를 무시하도록 해야 함. - **/ + /** + * 더블클릭이나 키눌림등의 각종 이벤트에 대해 listener 추가 + * 작성시 필요한 이벤트 체크 + * 이 이벤트의 경우 윈도우 sp1 (NT or xp sp1) 에서 iframe_obj.contentWindow.document에 대한 권한이 없기에 try 문으로 감싸서 + * 에러를 무시하도록 해야 함. + **/ - // 위젯 감시를 위한 더블클릭 이벤트 걸기 - try { + // 위젯 감시를 위한 더블클릭 이벤트 걸기 + try { jQuery(iframe_obj.contentWindow.document) .unbind('dblclick.widget') .bind('dblclick.widget', editorSearchComponent); - } catch(e) { - } + } 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) { - } + // 에디터에서 키가 눌러질때마다 이벤트를 체크함 (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); + // 자동저장 필드가 있다면 자동 저장 기능 활성화 + 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'; - } - } + // 좋지는 않으나;; 스타일 변형을 막기 위해 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 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; + // 대상을 구함 + 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; + // 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; + // 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 contentDocument = iframe_obj.contentWindow.document; - var obj = contentDocument.selection.createRange(); + var obj = contentDocument.selection.createRange(); - var pTag = obj.parentElement().tagName.toLowerCase(); + 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; - } + 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; + // 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; + // 대상 form을 찾음 + var fo_obj = editorGetForm(editor_sequence); + if(!fo_obj) return; - // 데이터 동기화 - editorRelKeys[editor_sequence]['content'].value = editorGetContent(editor_sequence); + // 데이터 동기화 + editorRelKeys[editor_sequence]['content'].value = editorGetContent(editor_sequence); - // form문 전송 - if(fo_obj.onsubmit) fo_obj.onsubmit(); + // form문 전송 + if(fo_obj.onsubmit) fo_obj.onsubmit(); - // 이벤트 중단 - evt.cancelBubble = true; - evt.returnValue = false; - xPreventDefault(evt); - xStopPropagation(evt); - return; - } + // 이벤트 중단 + 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; + // 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; - } + // 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; + 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; - */ - } - } + // 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"); - } + } 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'; + // 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'; + 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(); + 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'; + 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 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 = ''; - } - } + 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 000000000..3f9999bfa --- /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 a3e5fd349..c66d495a7 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 5d79974a0..f78d677e7 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; + editorPrevNode = null; - // 이벤트가 발생한 object의 ID를 구함 - var target_id = e.target.id; - if(!target_id) return; + // 이벤트가 발생한 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]+_/,''); + // 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; + if(!editor_sequence || !component_name) return; + if(editorMode[editor_sequence]=='html') return; - switch(component_name) { + 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; + // 기본 기능에 대한 동작 (바로 실행) + 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 : + // 추가 컴포넌트의 경우 서버에 요청을 시도 + 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); + var e = new xEvent(evt); - editorPrevNode = null; - var obj = e.target; + 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(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; - } + 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); - } - } + // 선택되어진 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; + if(!obj) obj = e.target; - var editor_component = obj.getAttribute("editor_component"); + 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를 찾지 못했을 경우에 이미지/텍스트/링크의 경우 기본 컴포넌트와 연결 + 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_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"); + // 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); + // 해당 컴포넌트를 찾아서 실행 + 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 343887d6c..b02689d27 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 e65b19cb2..15e15fd66 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 000000000..42a0f13cf --- /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 a86f52ac3..e6b69fe80 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; + var settings = uploaderSettings[editorSequence]; + var fileListAreaID = settings["fileListAreaID"]; + var fileListObj = get_by_id(fileListAreaID); + if(!fileListObj) return; - if(editorMode[editorSequence]=='preview') return; + if(editorMode[editorSequence]=='preview') return; - var text = new Array(); - for(var i=0;i"); - } + // 바로 링크 가능한 파일의 경우 (이미지, 플래쉬, 동영상 등..) + if(file.direct_download == 'Y') { + // 이미지 파일의 경우 image_link 컴포넌트 열결 + if(/\.(jpg|jpeg|png|gif)$/i.test(file.download_url)) { + if(loaded_images[file_srl]) { + var obj = loaded_images[file_srl]; + } + else { + var obj = new Image(); + obj.src = file.download_url; + } + temp_code = ''; + temp_code += "\""+file.source_filename+"\"";"); + } - // binary파일의 경우 url_link 컴포넌트 연결 - } else { - text.push(""+file.source_filename+"\n"); - } - } + } 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(''); - } + // 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('')); - } + // 위지윅 모드 + }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 000000000..9f751705a --- /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("

{$XE_VALIDATOR_MESSAGE}

- + + diff --git a/modules/member/skins/default/leave_form.html b/modules/member/skins/default/leave_form.html index 834a153b9..db2653ed4 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 @@ - +
diff --git a/modules/member/skins/default/login_form.html b/modules/member/skins/default/login_form.html index 33561aacb..a80b5d382 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 46653619b..c0c1c8cde 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 56fc16bbd..0cef2d042 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 674245c8a..95a907c5c 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 42a0f13cf..270023971 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 cc1a11722..8da95b749 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 1e09bee4e..ab5c79efd 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 35a0da0f1..c4ca9ff4f 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 000000000..e69de29bb 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 6c4c38a8e..1fc017e6b 100644 --- a/modules/file/file.controller.php +++ b/modules/file/file.controller.php @@ -302,7 +302,7 @@ class fileController extends file $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 20172e1b7..5e3fcc163 100644 --- a/modules/module/module.class.php +++ b/modules/module/module.class.php @@ -482,7 +482,7 @@ class module extends ModuleObject $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 bf0d9ed52..d82a721ce 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 f2b1361fb..5c2143df9 100644 --- a/modules/install/install.controller.php +++ b/modules/install/install.controller.php @@ -386,11 +386,11 @@ class installController extends install $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 f05557523..eeda383df 100644 --- a/classes/file/FileHandler.class.php +++ b/classes/file/FileHandler.class.php @@ -230,9 +230,9 @@ class FileHandler $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 @@ class FileHandler $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 2930d88bf..517dbb900 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 4482a4f90..872c1ae21 100644 --- a/modules/member/member.admin.model.php +++ b/modules/member/member.admin.model.php @@ -89,7 +89,8 @@ class memberAdminModel extends member $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 5e3fcc163..ab1d556ad 100644 --- a/modules/module/module.class.php +++ b/modules/module/module.class.php @@ -437,8 +437,11 @@ class module extends ModuleObject } // 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 @@ class module extends ModuleObject $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 5eb526330..2c092458e 100644 --- a/modules/member/member.class.php +++ b/modules/member/member.class.php @@ -47,47 +47,52 @@ class member extends ModuleObject { $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 e5ea4c3ab..de0cfd511 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 bfd0e0d8d..dbd2fdccc 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 a33caca1e..195d7e5f6 100644 --- a/modules/layout/layout.admin.model.php +++ b/modules/layout/layout.admin.model.php @@ -141,7 +141,7 @@ class layoutAdminModel extends layout $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 5fd8ecc5d..2fd0fdeeb 100644 --- a/modules/widget/widget.controller.php +++ b/modules/widget/widget.controller.php @@ -667,6 +667,7 @@ class widgetController extends widget $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 1f4cf42ec..cb4a1156b 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -892,6 +892,7 @@ class memberModel extends member 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 7e9bf7fb7..c57832185 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 dfb923e75..5c700b2f4 100644 --- a/modules/addon/addon.admin.model.php +++ b/modules/addon/addon.admin.model.php @@ -256,6 +256,14 @@ class addonAdminModel extends addon 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 6757aba78..8da431aea 100644 --- a/modules/install/install.admin.controller.php +++ b/modules/install/install.admin.controller.php @@ -196,7 +196,7 @@ class installAdminController extends install $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 0bbb60e9a..bb24db1e8 100644 --- a/modules/admin/admin.class.php +++ b/modules/admin/admin.class.php @@ -182,74 +182,70 @@ class admin extends ModuleObject '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 @@ class admin extends ModuleObject break; case 'document': case 'comment': - case 'trackback': case 'file': case 'poll': case 'rss': @@ -368,7 +363,6 @@ class admin extends ModuleObject 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 5f136bbe2..ce068301c 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -321,6 +321,24 @@ class memberController extends member 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 55321d6d9..ce068301c 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 @@ class memberController extends member $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 @@ class memberController extends member // 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 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member /** * Delete a scrap - * + * * @return void|Object (void : success, Object : fail) */ function procMemberDeleteScrap() @@ -163,7 +160,6 @@ class memberController extends member $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 @@ class memberController extends member /** * Delete the post - * + * * @return void|Object (void : success, Object : fail) */ function procMemberDeleteSavedDocument() @@ -193,13 +189,13 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member /** * 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 @@ class memberController extends member } } } - - $args = new stdClass; foreach($getVars as $val) { $args->{$val} = Context::get($val); @@ -288,13 +282,6 @@ class memberController extends member 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 @@ class memberController extends member 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 @@ class memberController extends member } } - $this->_clearMemberCache($args->member_srl); - $this->setRedirectUrl($returnUrl); } @@ -413,7 +416,7 @@ class memberController extends member return $this->stop('msg_invalid_request'); } - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); if(!$this->memberInfo->password) { @@ -429,16 +432,16 @@ class memberController extends member $_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 @@ class memberController extends member } } } - - $args = new stdClass; foreach($getVars as $val) { $args->{$val} = Context::get($val); @@ -534,12 +535,8 @@ class memberController extends member // 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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member /** * Membership withdrawal - * + * * @return void|Object (void : success, Object : fail) */ function procMemberLeave() @@ -609,7 +602,7 @@ class memberController extends member $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 @@ class memberController extends member // 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 @@ class memberController extends member $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 @@ class memberController extends member /** * Insert a profile image - * + * * @param int $member_srl * @param object $target_file * @@ -672,11 +663,7 @@ class memberController extends member */ 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 @@ class memberController extends member /** * Add an image name - * + * * @return void|Object (void : success, Object : fail) */ function procMemberInsertImageName() @@ -715,7 +702,7 @@ class memberController extends member $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 @@ class memberController extends member /** * Insert a image name - * + * * @param int $member_srl * @param object $target_file * @@ -737,10 +724,7 @@ class memberController extends member */ 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 @@ class memberController extends member 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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member /** * Insert a image mark - * + * * @param int $member_srl * @param object $target_file * @@ -846,10 +830,7 @@ class memberController extends member */ 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 @@ class memberController extends member * * @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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member Context::set('auth_args', $args); $member_config = $oModuleModel->getModuleConfig('member'); - $memberInfo = array(); global $lang; if(is_array($member_config->signupForm)) { @@ -972,7 +947,7 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member */ function procMemberFindAccountByQuestion() { - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); $config = $oMemberModel->getMemberConfig(); $email_address = Context::get('email_address'); @@ -1008,7 +983,7 @@ class memberController extends member 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 @@ class memberController extends member } // 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 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member $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 @@ class memberController extends member { // 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 @@ class memberController extends member $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 @@ class memberController extends member return $this->stop('msg_invalid_request'); } - $oMemberModel = getModel('member'); + $oMemberModel = &getModel('member'); $member_srl = $oMemberModel->getMemberSrlByEmailAddress($newEmail); if($member_srl) { @@ -1250,11 +1214,10 @@ class memberController extends member } // 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 @@ class memberController extends member 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 @@ class memberController extends member 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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member * * @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 @@ class memberController extends member */ function replaceMemberGroup($args) { - $obj = new stdClass; $obj->site_srl = $args->site_srl; $obj->member_srl = implode(',',$args->member_srl); @@ -1510,15 +1475,19 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member 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 @@ class memberController extends member 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 @@ class memberController extends member 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 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member } // 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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member */ 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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member $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 @@ class memberController extends member { // 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 @@ class memberController extends member 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 @@ class memberController extends member /** * 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 @@ class memberController extends member 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 @@ class memberController extends member $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 @@ class memberController extends member if(!$args->birthday) $args->birthday = ''; $output = executeQuery('member.updateMember', $args); - if(!$output->toBool()) { $oDB->rollback(); @@ -2154,12 +2092,15 @@ class memberController extends member } $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 @@ class memberController extends member 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 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member $this->procMemberDeleteProfileImage($member_srl); $this->delSignature($member_srl); - $this->_clearMemberCache($member_srl); - return $output; } @@ -2301,9 +2232,9 @@ class memberController extends member $_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 @@ class memberController extends member function _updatePointByGroup($memberSrl, $groupSrlList) { - $oModuleModel = getModel('module'); + $oModuleModel = &getModel('module'); $pointModuleConfig = $oModuleModel->getModuleConfig('point'); $pointGroup = $pointModuleConfig->point_group; @@ -2333,12 +2264,12 @@ class memberController extends member 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 @@ class memberController extends member 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 @@ class memberController extends member 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 @@ class memberController extends member global $lang; - $memberInfo = array(); $memberInfo[$lang->email_address] = $member_info->email_address; $memberInfo[$lang->nick_name] = $member_info->nick_name; @@ -2413,7 +2342,6 @@ class memberController extends member 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 @@ class memberController extends member // 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 | 611 ++++++++++++++++++++------- 1 file changed, 463 insertions(+), 148 deletions(-) diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index ce068301c..860aef260 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 @@ class memberController extends member $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 @@ class memberController extends member // 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 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member /** * Delete a scrap - * + * * @return void|Object (void : success, Object : fail) */ function procMemberDeleteScrap() @@ -160,6 +163,7 @@ class memberController extends member $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 @@ class memberController extends member /** * Delete the post - * + * * @return void|Object (void : success, Object : fail) */ function procMemberDeleteSavedDocument() @@ -189,13 +193,13 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member /** * 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 @@ class memberController extends member } } } + + $args = new stdClass; foreach($getVars as $val) { $args->{$val} = Context::get($val); @@ -282,6 +288,13 @@ class memberController extends member 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 @@ class memberController extends member 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']); - } + $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_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']); - } + $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 @@ class memberController extends member } } + $this->_clearMemberCache($args->member_srl); + $this->setRedirectUrl($returnUrl); } @@ -416,7 +431,7 @@ class memberController extends member return $this->stop('msg_invalid_request'); } - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); if(!$this->memberInfo->password) { @@ -432,16 +447,16 @@ class memberController extends member $_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 @@ class memberController extends member } } } + + $args = new stdClass; foreach($getVars as $val) { $args->{$val} = Context::get($val); @@ -535,8 +552,12 @@ class memberController extends member // 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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member /** * Membership withdrawal - * + * * @return void|Object (void : success, Object : fail) */ function procMemberLeave() @@ -602,7 +627,7 @@ class memberController extends member $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 @@ class memberController extends member // 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 @@ class memberController extends member $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 @@ class memberController extends member /** * Insert a profile image - * + * * @param int $member_srl * @param object $target_file * @@ -663,7 +690,11 @@ class memberController extends member */ 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 @@ class memberController extends member /** * Add an image name - * + * * @return void|Object (void : success, Object : fail) */ function procMemberInsertImageName() @@ -702,7 +733,7 @@ class memberController extends member $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 @@ class memberController extends member /** * Insert a image name - * + * * @param int $member_srl * @param object $target_file * @@ -724,7 +755,10 @@ class memberController extends member */ 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 @@ class memberController extends member 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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member /** * Insert a image mark - * + * * @param int $member_srl * @param object $target_file * @@ -830,7 +864,10 @@ class memberController extends member */ 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 @@ class memberController extends member * * @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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member Context::set('auth_args', $args); $member_config = $oModuleModel->getModuleConfig('member'); + $memberInfo = array(); global $lang; if(is_array($member_config->signupForm)) { @@ -947,7 +990,7 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member */ function procMemberFindAccountByQuestion() { - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); $config = $oMemberModel->getMemberConfig(); $email_address = Context::get('email_address'); @@ -983,7 +1026,7 @@ class memberController extends member 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 @@ class memberController extends member } // 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 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member $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 @@ class memberController extends member { // 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 @@ class memberController extends member $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 @@ class memberController extends member return $this->stop('msg_invalid_request'); } - $oMemberModel = &getModel('member'); + $oMemberModel = getModel('member'); $member_srl = $oMemberModel->getMemberSrlByEmailAddress($newEmail); if($member_srl) { @@ -1214,10 +1268,11 @@ class memberController extends member } // 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 @@ class memberController extends member 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 @@ class memberController extends member 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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member * * @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 @@ class memberController extends member */ function replaceMemberGroup($args) { + $obj = new stdClass; $obj->site_srl = $args->site_srl; $obj->member_srl = implode(',',$args->member_srl); @@ -1475,19 +1528,15 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member 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 @@ class memberController extends member 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 @@ class memberController extends member 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 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member } // 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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member */ 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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member $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 @@ class memberController extends member { // 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 @@ class memberController extends member 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 @@ class memberController extends member /** * 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 @@ class memberController extends member 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 @@ class memberController extends member $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 @@ class memberController extends member if(!$args->birthday) $args->birthday = ''; $output = executeQuery('member.updateMember', $args); + if(!$output->toBool()) { $oDB->rollback(); @@ -2092,15 +2172,12 @@ class memberController extends member } $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 @@ class memberController extends member 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 @@ class memberController extends member $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 @@ class memberController extends member 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 @@ class memberController extends member $this->procMemberDeleteProfileImage($member_srl); $this->delSignature($member_srl); + $this->_clearMemberCache($member_srl); + return $output; } @@ -2232,9 +2319,9 @@ class memberController extends member $_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 @@ class memberController extends member function _updatePointByGroup($memberSrl, $groupSrlList) { - $oModuleModel = &getModel('module'); + $oModuleModel = getModel('module'); $pointModuleConfig = $oModuleModel->getModuleConfig('point'); $pointGroup = $pointModuleConfig->point_group; @@ -2264,12 +2351,12 @@ class memberController extends member 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 @@ class memberController extends member 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 @@ class memberController extends member 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 @@ class memberController extends member global $lang; + $memberInfo = array(); $memberInfo[$lang->email_address] = $member_info->email_address; $memberInfo[$lang->nick_name] = $member_info->nick_name; @@ -2342,6 +2431,7 @@ class memberController extends member 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 @@ class memberController extends member // 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 b04d0ea45..c935fec20 100644 --- a/modules/layout/layout.admin.controller.php +++ b/modules/layout/layout.admin.controller.php @@ -757,7 +757,7 @@ class layoutAdminController extends layout 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 195d7e5f6..a33caca1e 100644 --- a/modules/layout/layout.admin.model.php +++ b/modules/layout/layout.admin.model.php @@ -141,7 +141,7 @@ class layoutAdminModel extends layout $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 19e192d5d..e45cb5922 100644 --- a/modules/layout/layout.model.php +++ b/modules/layout/layout.model.php @@ -782,7 +782,7 @@ class layoutModel extends layout */ 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 5c700b2f4..664c22e4f 100644 --- a/modules/addon/addon.admin.model.php +++ b/modules/addon/addon.admin.model.php @@ -258,7 +258,7 @@ class addonAdminModel extends addon $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 664c22e4f..5e1425fc5 100644 --- a/modules/addon/addon.admin.model.php +++ b/modules/addon/addon.admin.model.php @@ -255,11 +255,12 @@ class addonAdminModel extends addon 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 @@ class addonAdminModel extends addon $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 f1f5c13ff..14849c7b9 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 cdbe27bdc..12da26c88 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -1830,7 +1830,7 @@ class moduleModel extends module 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 3f53e5e7d..90cfbee54 100644 --- a/modules/board/board.admin.view.php +++ b/modules/board/board.admin.view.php @@ -55,7 +55,7 @@ class boardAdminView extends board { // 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 d3adbd471..cb81e10f7 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 bd58261a4..b5b06ed55 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 dfb923e75..b9c9ff6e5 100644 --- a/modules/addon/addon.admin.model.php +++ b/modules/addon/addon.admin.model.php @@ -98,8 +98,9 @@ class addonAdminModel extends addon // 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 7527ec21b..7d185dc2b 100644 --- a/modules/document/document.admin.controller.php +++ b/modules/document/document.admin.controller.php @@ -797,6 +797,7 @@ class documentAdminController extends document // 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 a070f5114..3fa97cea5 100644 --- a/modules/document/document.view.php +++ b/modules/document/document.view.php @@ -160,6 +160,7 @@ class documentView extends document 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 ecf244c5b..a3f460489 100644 --- a/modules/file/file.admin.controller.php +++ b/modules/file/file.admin.controller.php @@ -92,6 +92,7 @@ class fileAdminController extends file 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 e88063e90..e3d47e2ea 100644 --- a/modules/menu/menu.admin.controller.php +++ b/modules/menu/menu.admin.controller.php @@ -337,6 +337,7 @@ class menuAdminController extends menu 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 @@ class menuAdminController extends menu { 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 @@ class menuAdminController extends menu 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 37011e386..f91968b55 100644 --- a/widgets/content/content.class.php +++ b/widgets/content/content.class.php @@ -185,6 +185,7 @@ class content extends WidgetHandler 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 a68e2b3d3..e7b8bebae 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 d5de2ff95..4fd85fedb 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 42d052a64..1f8537e98 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 | 55 ++++++++-------- 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, 175 insertions(+), 167 deletions(-) diff --git a/classes/cache/CacheApc.class.php b/classes/cache/CacheApc.class.php index acc2cb45a..a416b1270 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 @@ class CacheApc extends CacheBase */ function CacheApc() { - } /** @@ -40,7 +41,7 @@ class CacheApc extends CacheBase */ function isSupport() { - return function_exists('apc_add'); + return self::$isSupport; } /** @@ -148,6 +149,10 @@ class CacheApc extends CacheBase 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 85210a4ff..f837fd5fa 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 @@ class CacheFile extends CacheBase 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 @@ class CacheFile extends CacheBase */ 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 c5d72efba..6869ff838 100644 --- a/classes/cache/CacheMemcache.class.php +++ b/classes/cache/CacheMemcache.class.php @@ -56,10 +56,11 @@ class CacheMemcache extends CacheBase */ 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 @@ class CacheMemcache extends CacheBase { $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 1b393a504..072f968d4 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 @@ class CacheWincache extends CacheBase */ function CacheWincache() { - } /** @@ -42,7 +43,7 @@ class CacheWincache extends CacheBase */ function isSupport() { - return function_exists('wincache_ucache_set'); + return self::$isSupport; } /** @@ -150,7 +151,8 @@ class CacheWincache extends CacheBase { 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 ee9370891..3a9d72b66 100644 --- a/classes/template/TemplateHandler.class.php +++ b/classes/template/TemplateHandler.class.php @@ -116,7 +116,7 @@ class TemplateHandler */ 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 @@ class TemplateHandler } } - 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 4c772ed39..d5f535634 100644 --- a/modules/comment/comment.model.php +++ b/modules/comment/comment.model.php @@ -442,6 +442,7 @@ class commentModel extends comment } // cache controll + $output = false; $oCacheHandler = CacheHandler::getInstance('object'); if($oCacheHandler->isSupport()) { @@ -450,7 +451,7 @@ class commentModel extends comment $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 28610f7bd..06e90f190 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 @@ class counterModel extends counter $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); - - $result = $output->data->count ? TRUE : FALSE; - if($result && $oCacheHandler->isSupport()) + if($iplogged === false) { - $oCacheHandler->put($cache_key, TRUE); + $output = executeQuery('counter.getCounterLog', $args); + if($output->data->count) $iplogged = TRUE; } - return $result; + if($iplogged && $oCacheHandler->isSupport()) + { + $oCacheHandler->put($cache_key, $iplogged); + } + + return $iplogged; } /** @@ -65,35 +64,37 @@ class counterModel extends counter $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)) + $insertedTodayStatus = $oCacheHandler->get($cache_key); + } + + if($insertedTodayStatus === false) + { + if($site_srl) { - return $oCacheHandler->get($cache_key); + $args->site_srl = $site_srl; + $output = executeQuery('counter.getSiteTodayStatus', $args); } + else + { + $output = executeQuery('counter.getTodayStatus', $args); + } + + $insertedTodayStatus = !!$output->data->count; } - if($site_srl) - { - $args->site_srl = $site_srl; - $output = executeQuery('counter.getSiteTodayStatus', $args); - } - else - { - $output = executeQuery('counter.getTodayStatus', $args); - } - - $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 f6a7ec3a0..dba7f97fd 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -58,7 +58,8 @@ class documentItem extends Object $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 @@ class documentItem extends Object { 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 @@ class documentItem extends Object $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 @@ class documentItem extends Object } $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 eee8774a7..c570830f8 100644 --- a/modules/document/document.model.php +++ b/modules/document/document.model.php @@ -361,8 +361,9 @@ class documentModel extends document */ 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 @@ class documentModel extends document $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 e45cb5922..85e38441a 100644 --- a/modules/layout/layout.model.php +++ b/modules/layout/layout.model.php @@ -258,6 +258,8 @@ class layoutModel extends layout */ function getLayout($layout_srl) { + $layout_info = false; + // cache controll $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) @@ -267,7 +269,7 @@ class layoutModel extends layout $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 cb4a1156b..ff543158c 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -295,6 +295,8 @@ class memberModel extends member //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 @@ class memberModel extends member $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 @@ class memberModel extends member */ 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 @@ class memberModel extends member $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 @@ class memberModel extends member */ function getDefaultGroup($site_srl = 0, $columnList = array()) { + $default_group = false; $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) { @@ -525,7 +529,7 @@ class memberModel extends member $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 @@ class memberModel extends member $site_srl = 0; } + $group_list = false; $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) { @@ -581,9 +586,9 @@ class memberModel extends member $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 12da26c88..64f088e58 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -118,6 +118,7 @@ class moduleModel extends module // 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 @@ class moduleModel extends module $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 @@ class moduleModel extends module // 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 @@ class moduleModel extends module $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 @@ class moduleModel extends module } } - if(!$module_info && !is_array($module_info)) + if($module_info === false) { $output = executeQuery('module.getMidInfo', $args); $module_info = $output->data; @@ -310,6 +317,9 @@ class moduleModel extends module $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 @@ class moduleModel extends module { $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 @@ class moduleModel extends module } else { - $coutput->designSettings = $moduleInfo->designSettings; - $moduleInfo = $coutput; + $mid_info->designSettings = $moduleInfo->designSettings; + $moduleInfo = $mid_info; } } @@ -356,9 +366,8 @@ class moduleModel extends module */ 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 @@ class moduleModel extends module $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 @@ class moduleModel extends module */ function getMidList($args = null, $columnList = array()) { + $list = false; $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) { @@ -493,7 +506,7 @@ class moduleModel extends module } } - if(!$list) + if($list === false) { if($oCacheHandler->isSupport() && count($args) === 1 && isset($args->site_srl)) { @@ -517,6 +530,7 @@ class moduleModel extends module { $mid_list[$val->mid] = $val; } + return $mid_list; } @@ -567,6 +581,7 @@ class moduleModel extends module */ function getActionForward($act) { + $action_forward = false; // cache controll $oCacheHandler = CacheHandler::getInstance('object', NULL, TRUE); if($oCacheHandler->isSupport()) @@ -576,7 +591,7 @@ class moduleModel extends module } // 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 @@ class moduleModel extends module $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 @@ class moduleModel extends module */ function getTriggers($trigger_name, $called_position) { + $triggers = false; // cache controll $oCacheHandler = CacheHandler::getInstance('object', NULL, TRUE); if($oCacheHandler->isSupport()) @@ -620,7 +635,7 @@ class moduleModel extends module $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 @@ class moduleModel extends module */ function getModuleConfig($module, $site_srl = 0) { + $config = false; // cache controll $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) @@ -1344,15 +1360,17 @@ class moduleModel extends module $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 @@ class moduleModel extends module */ function getModulePartConfig($module, $module_srl) { + $config = false; // cache controll $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) @@ -1381,15 +1400,17 @@ class moduleModel extends module $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 @@ class moduleModel extends module $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 @@ class moduleModel extends module $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 @@ class moduleModel extends module */ function getModuleSkinVars($module_srl) { + $skin_vars = false; $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) { @@ -1768,7 +1791,7 @@ class moduleModel extends module $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 @@ class moduleModel extends module */ function getModuleMobileSkinVars($module_srl) { + $skin_vars = false; $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) { @@ -1882,7 +1906,7 @@ class moduleModel extends module $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 @@ class moduleModel extends module 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 @@ class moduleModel extends module $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 1a5bd6e14..2015ac688 100644 --- a/modules/session/session.controller.php +++ b/modules/session/session.controller.php @@ -27,32 +27,22 @@ class sessionController extends session 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 @@ class sessionController extends session } $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 @@ class sessionController extends session 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 ee5a2936a..694f3bc52 100644 --- a/modules/session/session.model.php +++ b/modules/session/session.model.php @@ -23,36 +23,27 @@ class sessionModel extends session { 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 e3d47e2ea..a804655af 100644 --- a/modules/menu/menu.admin.controller.php +++ b/modules/menu/menu.admin.controller.php @@ -103,6 +103,149 @@ class menuAdminController extends menu $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 32e72b8b5..4b3a2bf36 100644 --- a/modules/menu/menu.admin.view.php +++ b/modules/menu/menu.admin.view.php @@ -21,6 +21,7 @@ class menuAdminView extends menu $this->setTemplatePath($this->module_path.'tpl'); } + /** * Site map admin menu index page * @return void @@ -39,6 +40,13 @@ class menuAdminView extends menu 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 ab1d556ad..232a83205 100644 --- a/modules/module/module.class.php +++ b/modules/module/module.class.php @@ -108,26 +108,6 @@ class module extends ModuleObject $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 @@ class module extends ModuleObject $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 b53b20d48..3f29f532e 100644 --- a/modules/module/module.controller.php +++ b/modules/module/module.controller.php @@ -423,20 +423,11 @@ class moduleController extends module // 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 @@ class moduleController extends module return $menuItemOutput; } - $oMenuAdminController = getAdminController('menu'); $oMenuAdminController->makeXmlFile($menuSrl); } } @@ -484,22 +474,6 @@ class moduleController extends module 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 dba7f97fd..ac3559bea 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -58,8 +58,7 @@ class documentItem extends Object $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 6eda8b015..3fbf2b053 100644 --- a/modules/board/board.model.php +++ b/modules/board/board.model.php @@ -25,7 +25,7 @@ class boardModel extends module // 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 c570830f8..8d58efaa9 100644 --- a/modules/document/document.model.php +++ b/modules/document/document.model.php @@ -53,11 +53,14 @@ class documentModel extends document 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 @@ class documentModel extends document $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 @@ class documentModel extends document $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 @@ class documentModel extends document */ 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 3f29f532e..e7e67f424 100644 --- a/modules/module/module.controller.php +++ b/modules/module/module.controller.php @@ -418,16 +418,15 @@ class moduleController extends module { $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 a804655af..c2d43ce78 100644 --- a/modules/menu/menu.admin.controller.php +++ b/modules/menu/menu.admin.controller.php @@ -120,32 +120,7 @@ class menuAdminController extends menu $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 @@ class menuAdminController extends menu $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 22fb0f5d2..f56e107c1 100644 --- a/modules/menu/menu.class.php +++ b/modules/menu/menu.class.php @@ -39,6 +39,15 @@ class menu extends ModuleObject { 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 @@ class menu extends ModuleObject $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 64f088e58..938afc833 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -1363,14 +1363,13 @@ class moduleModel extends module 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 @@ class moduleModel extends 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()) 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 74b7d2868..5e564aea0 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -155,10 +155,10 @@ class ModuleHandler extends Handler { // 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 938afc833..e7c2db7fb 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -1408,7 +1408,8 @@ class moduleModel extends module $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 @@ class moduleModel extends module $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 f79c89abb..989007633 100644 --- a/modules/comment/comment.admin.view.php +++ b/modules/comment/comment.admin.view.php @@ -55,16 +55,15 @@ class commentAdminView extends comment $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 d5f535634..a551e76e3 100644 --- a/modules/comment/comment.model.php +++ b/modules/comment/comment.model.php @@ -326,6 +326,9 @@ class commentModel extends comment */ function getDistinctModules() { + return array(); + + /* $output = executeQueryArray('comment.getDistinctModules'); $module_srls = $output->data; $oModuleModel = getModel('module'); @@ -339,6 +342,7 @@ class commentModel extends comment } } 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 e7c2db7fb..ec938d8d3 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -207,7 +207,7 @@ class moduleModel extends module */ 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 @@ class moduleModel extends module $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 06e90f190..fac25cd59 100644 --- a/modules/counter/counter.model.php +++ b/modules/counter/counter.model.php @@ -85,13 +85,13 @@ class counterModel extends counter } $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 | 46 +++++++++++++++++-------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/modules/menu/menu.admin.model.php b/modules/menu/menu.admin.model.php index 7c72a4eb8..08af452f1 100644 --- a/modules/menu/menu.admin.model.php +++ b/modules/menu/menu.admin.model.php @@ -339,38 +339,42 @@ class menuAdminModel extends menu $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; + $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; - $value->package_srl = $oAutoinstallModel->getPackageSrlByPath('./modules/' . $value->module); - $value->url = _XE_LOCATION_SITE_ . '?mid=download&package_srl=' . $value->package_srl; + $module->package_srl = $oAutoinstallModel->getPackageSrlByPath('./modules/' . $module_name); + $module->url = _XE_LOCATION_SITE_ . '?mid=download&package_srl=' . $module->package_srl; - if($value->module == 'page') + 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 @@ class menuAdminModel extends menu } 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 246c09286..10c5e7b93 100644 --- a/modules/editor/editor.model.php +++ b/modules/editor/editor.model.php @@ -718,6 +718,7 @@ class editorModel extends editor $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 @@ class editorModel extends editor $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 @@ class editorModel extends editor 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 ac3559bea..7290e9220 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -77,6 +77,7 @@ class documentItem extends Object if(!$this->document_srl) return; $document_item = false; + $cache_put = false; // cache controll $oCacheHandler = CacheHandler::getInstance('object'); if($oCacheHandler->isSupport()) @@ -101,6 +102,7 @@ class documentItem extends Object 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 @@ class documentItem extends Object $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 a9e918929..18e86394c 100644 --- a/modules/comment/comment.controller.php +++ b/modules/comment/comment.controller.php @@ -469,16 +469,6 @@ class commentController extends comment $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 @@ class commentController extends comment $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 @@ class commentController extends comment $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 @@ class commentController extends comment $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 a551e76e3..9d5439a13 100644 --- a/modules/comment/comment.model.php +++ b/modules/comment/comment.model.php @@ -445,97 +445,78 @@ class commentModel extends comment 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()) + // get a list of comments + $module_srl = $oDocument->get('module_srl'); + + 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; + } - // return if no comment exists - if($oDocument->getCommentCount() < 1) - { - return; - } + // get a very last page if no page exists + if(!$page) + { + $page = (int) ( ($oDocument->getCommentCount() - 1) / $comment_count) + 1; + } - // get a list of comments - $module_srl = $oDocument->get('module_srl'); + // 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; - if(!$count) - { - $comment_config = $this->getCommentConfig($module_srl); - $comment_count = $comment_config->comment_count; - if(!$comment_count) - { - $comment_count = 50; - } - } - else - { - $comment_count = $count; - } + //check if module is using validation system + $oCommentController = getController('comment'); + $using_validation = $oCommentController->isModuleUsingPublishValidation($module_srl); + if($using_validation) + { + $args->status = 1; + } - // get a very last page if no page exists - if(!$page) - { - $page = (int) ( ($oDocument->getCommentCount() - 1) / $comment_count) + 1; - } + $output = executeQueryArray('comment.getCommentPageList', $args); - // 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; - } + // return if an error occurs in the query results + 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); - - // return if an error occurs in the query results 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 7d185dc2b..922d944f8 100644 --- a/modules/document/document.admin.controller.php +++ b/modules/document/document.admin.controller.php @@ -453,7 +453,6 @@ class documentAdminController extends document { $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 2f58e4adf..7f848f64b 100644 --- a/modules/point/point.controller.php +++ b/modules/point/point.controller.php @@ -642,7 +642,7 @@ class pointController extends point 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 @@ class pointController extends point } $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 224567401..5f3a802af 100644 --- a/modules/point/point.model.php +++ b/modules/point/point.model.php @@ -27,7 +27,7 @@ class pointModel extends point 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 @@ class pointModel extends point 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 @@ class pointModel extends point 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 ec938d8d3..9ad09f733 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -1370,7 +1370,7 @@ class moduleModel extends module $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 @@ class moduleModel extends module $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 0cb726577..bc5634ab9 100644 --- a/modules/board/board.view.php +++ b/modules/board/board.view.php @@ -184,6 +184,7 @@ class boardView extends board // 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 97b5532f8..6cbb6efe0 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 97b5532f8..d16de3ca5 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 922d944f8..873425106 100644 --- a/modules/document/document.admin.controller.php +++ b/modules/document/document.admin.controller.php @@ -195,7 +195,7 @@ class documentAdminController extends document { 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 @@ class documentAdminController extends document { 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 5546c8276..87220649c 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -555,7 +555,7 @@ class documentController extends document 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 @@ class documentController extends document $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 7290e9220..bbb944f0b 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -78,33 +78,34 @@ class documentItem extends Object $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 @@ class documentItem extends Object } $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 8d58efaa9..c51c18de9 100644 --- a/modules/document/document.model.php +++ b/modules/document/document.model.php @@ -136,12 +136,11 @@ class documentModel extends document { 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 | 108 +++++++++++++------------------- 1 file changed, 45 insertions(+), 63 deletions(-) diff --git a/modules/editor/editor.model.php b/modules/editor/editor.model.php index 10c5e7b93..c070fb8fa 100644 --- a/modules/editor/editor.model.php +++ b/modules/editor/editor.model.php @@ -681,111 +681,93 @@ class editorModel extends editor 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 0c85634b7..9d16eb00b 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 20240d657..54e02568a 100644 --- a/classes/display/HTMLDisplayHandler.php +++ b/classes/display/HTMLDisplayHandler.php @@ -396,8 +396,8 @@ class HTMLDisplayHandler // 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 @@ class HTMLDisplayHandler } 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 e2aee3781..b4488b786 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 08af452f1..c270781c3 100644 --- a/modules/menu/menu.admin.model.php +++ b/modules/menu/menu.admin.model.php @@ -348,8 +348,7 @@ class menuAdminModel extends menu 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 0d806ae64..48e01ff77 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -45,11 +45,6 @@ define('_XE_PATH_', str_replace('config/config.inc.php', '', str_replace('\\', ' // 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 a97e714c1..c052aced8 100644 --- a/admin/help/index.html +++ b/admin/help/index.html @@ -420,7 +420,7 @@ body,table,input,textarea,select,button{font-family:나눔고딕,NanumGothic,NG,
  • 인증 세션 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 cd03fe6e1..6e1d09f3b 100644 --- a/modules/admin/admin.admin.controller.php +++ b/modules/admin/admin.admin.controller.php @@ -498,7 +498,7 @@ class adminAdminController extends admin { $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 97a14c6de..de2d4da52 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -413,8 +413,11 @@ class adminAdminView extends admin 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 @@ class adminAdminView extends admin $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 2bde3ddbd..3fc63c16b 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 de2d4da52..4ed0fb1be 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -426,6 +426,9 @@ class adminAdminView extends admin $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 8da431aea..cb0a03ee8 100644 --- a/modules/install/install.admin.controller.php +++ b/modules/install/install.admin.controller.php @@ -61,6 +61,7 @@ class installAdminController extends install { $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 5e564aea0..802a75126 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -155,13 +155,22 @@ class ModuleHandler extends Handler { // 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 4ed0fb1be..c01e9e181 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -426,6 +426,8 @@ class adminAdminView extends admin $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 c01e9e181..bbf1768fd 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -138,19 +138,15 @@ class adminAdminView extends 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 @@ class adminAdminView extends 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; - } + continue; + } + if($parentMenu['href'] == '#' && count($parentMenu['list'])) + { + $firstChild = current($parentMenu['list']); + $menu->list[$parentKey]['href'] = $firstChild['href']; + } - if(!is_array($parentMenu['list']) || !count($parentMenu['list'])) + foreach($parentMenu['list'] as $childKey => $childMenu) + { + if($subMenuTitle == $childMenu['text']) { - continue; - } - if($parentMenu['href'] == '#' && count($parentMenu['list'])) - { - $firstChild = current($parentMenu['list']); - $menu->list[$parentKey]['href'] = $firstChild['href']; - } - - foreach($parentMenu['list'] as $childKey => $childMenu) - { - 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 bb24db1e8..f467daec0 100644 --- a/modules/admin/admin.class.php +++ b/modules/admin/admin.class.php @@ -91,8 +91,8 @@ class admin extends ModuleObject if(!$output->menu_srl) { - $oAdminClass = getClass('admin'); - $oAdminClass->createXeAdminMenu(); + $this->createXeAdminMenu(); + $output = $oMenuAdminModel->getMenuByTitle($this->adminMenuName); } else { @@ -123,10 +123,9 @@ class admin extends ModuleObject //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 873425106..c3e84ffa4 100644 --- a/modules/document/document.admin.controller.php +++ b/modules/document/document.admin.controller.php @@ -140,7 +140,6 @@ class documentAdminController extends document $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 @@ class documentAdminController extends document $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 2015ac688..f77638e27 100644 --- a/modules/session/session.controller.php +++ b/modules/session/session.controller.php @@ -28,6 +28,9 @@ class sessionController extends session { 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 0061f0a61..054403925 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 944e5adb1..344cf5e52 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 8b1be688a..ea37bf41d 100644 --- a/modules/trash/trash.admin.controller.php +++ b/modules/trash/trash.admin.controller.php @@ -64,7 +64,7 @@ class trashAdminController extends trash $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 0b88e7a8c..70202c1aa 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -976,6 +976,9 @@ class memberAdminController extends member 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 @@ class memberAdminController extends member 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 @@ class memberAdminController extends member */ 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 @@ class memberAdminController extends member */ 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 bbb944f0b..ed1a913a6 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -194,22 +194,33 @@ class documentItem extends Object 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 91de142d4..602c44467 100644 --- a/modules/message/skins/default/system_message.html +++ b/modules/message/skins/default/system_message.html @@ -26,7 +26,7 @@

    {$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 c2d43ce78..be2ddcd61 100644 --- a/modules/menu/menu.admin.controller.php +++ b/modules/menu/menu.admin.controller.php @@ -1228,7 +1228,17 @@ class menuAdminController extends menu $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 @@ class menuAdminController extends menu * 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 @@ class menuAdminController extends menu $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 48e01ff77..19e086d61 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -29,7 +29,7 @@ define('__ZBXE__', __XE__); /** * 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 bbf1768fd..571dadec7 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -402,10 +402,6 @@ class adminAdminView extends admin $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 f23320576..25a7cdb10 100644 --- a/classes/db/DB.class.php +++ b/classes/db/DB.class.php @@ -447,7 +447,7 @@ class DB $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 a3fe25156..a2c4c4d07 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 a416b1270..73abeb0b3 100644 --- a/classes/cache/CacheApc.class.php +++ b/classes/cache/CacheApc.class.php @@ -84,7 +84,7 @@ class CacheApc extends CacheBase if($modified_time > 0 && $modified_time > $obj[0]) { - $this->_delete($_key); + $this->delete($_key); return false; } @@ -110,24 +110,13 @@ class CacheApc extends CacheBase 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 @@ class CacheApc extends CacheBase */ function delete($key) { - $this->_delete($key); + return apc_delete($key); } /** @@ -149,7 +138,13 @@ class CacheApc extends CacheBase 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 c68635aad..a2b9fc0b6 100644 --- a/modules/trash/trash.admin.view.php +++ b/modules/trash/trash.admin.view.php @@ -51,6 +51,33 @@ class trashAdminView extends trash // 템플릿 파일 지정 $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 e6225c9f2..5ffec0ed9 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 000000000..c02dd3fad --- /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 a2b9fc0b6..a6415305e 100644 --- a/modules/trash/trash.admin.view.php +++ b/modules/trash/trash.admin.view.php @@ -61,7 +61,7 @@ class trashAdminView extends trash $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 000000000..b9a92489f --- /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 9c72e44ee..124126edc 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 b9a92489f..298d1e428 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 8f08c3e82..add8cec8a 100644 --- a/modules/trash/tpl/trash_list.html +++ b/modules/trash/tpl/trash_list.html @@ -41,7 +41,7 @@ var no_text_comment = '{$lang->no_text_comment}'; 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 124126edc..f53058eab 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 298d1e428..d40f6096d 100644 --- a/modules/trash/tpl/trash_view.html +++ b/modules/trash/tpl/trash_view.html @@ -27,6 +27,16 @@

    {$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 83b06d623..ea34c6950 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 19e086d61..fc4bcaeba 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 89ecf951f..43536f5e9 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 4b69ac9ff..866f55364 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -358,6 +358,13 @@ class Context // 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 @@ class Context '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 000000000..d71a23854 --- /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 19e086d61..d9b4cccad 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -250,6 +250,7 @@ if(!defined('__XE_LOADED_CLASS__')) 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 5e544903a..600a74fad 100644 --- a/modules/admin/admin.admin.model.php +++ b/modules/admin/admin.admin.model.php @@ -350,7 +350,7 @@ class adminAdminModel extends admin $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 @@ class adminAdminModel extends admin $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 @@ class adminAdminModel extends admin $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 @@ class adminAdminModel extends admin $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 @@ class adminAdminModel extends admin $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 600a74fad..d0c69a80d 100644 --- a/modules/admin/admin.admin.model.php +++ b/modules/admin/admin.admin.model.php @@ -389,7 +389,6 @@ class adminAdminModel extends admin $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 70202c1aa..9305d6ae0 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -61,6 +61,9 @@ class memberAdminController extends member 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 9ad09f733..f2c42543e 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -746,7 +746,6 @@ class moduleModel extends 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 @@ class moduleModel extends 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 7e0f5fdfc..51f0c60e0 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 0b1239d36..2d8d6d17f 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 20a65bdaa..00fbe2bd2 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 866f55364..2c4b8d233 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -361,8 +361,7 @@ class Context // 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 @@ class Context '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 d71a23854..94de130b3 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 @@ class Router 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 @@ class Router } // Apply routes - foreach($self->routes as $regex => $query) + foreach(self::$routes as $regex => $query) { if(preg_match('#^' . $regex . '$#', $path, $matches)) { @@ -143,10 +117,9 @@ class Router * @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 @@ class Router * @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 @@ class Router */ 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 @@ class Router * @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 @@ class Router * @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 @@ class Router * @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 @@ class Router * @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 @@ class Router * @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 160085ef7..cd0e0aed2 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 ebda8e306..39036c86a 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 433adf527..a03a9d847 100644 --- a/addons/captcha/captcha.addon.php +++ b/addons/captcha/captcha.addon.php @@ -9,7 +9,7 @@ if(!defined("__XE__")) exit(); * @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 ac1e57c5f..211fd8687 100644 --- a/addons/captcha_member/captcha_member.addon.php +++ b/addons/captcha_member/captcha_member.addon.php @@ -9,7 +9,7 @@ if(!defined("__XE__")) exit(); * @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 6bfc5e556..569997d25 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -1025,7 +1025,7 @@ class ModuleHandler extends Handler } // 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 @@ class ModuleHandler extends Handler // 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 11762da50..8ad9d4f13 100644 --- a/classes/validator/Validator.class.php +++ b/classes/validator/Validator.class.php @@ -667,7 +667,7 @@ class Validator } // 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 @@ class Validator 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 2fd0fdeeb..f807593cc 100644 --- a/modules/widget/widget.controller.php +++ b/modules/widget/widget.controller.php @@ -641,7 +641,7 @@ class widgetController extends 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 571dadec7..4817c90b3 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -172,13 +172,11 @@ class adminAdminView extends 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 43cef668c..e270feccc 100644 --- a/modules/layout/tpl/layout_info_view.html +++ b/modules/layout/tpl/layout_info_view.html @@ -61,7 +61,6 @@ - {@$group = ''} {@$cnt = 1} @@ -137,7 +136,7 @@ - +

    {$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 709099db8..7e3f9e74a 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -793,6 +793,8 @@ class documentController extends document $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 be289821f..1f9e8b028 100644 --- a/modules/communication/communication.admin.controller.php +++ b/modules/communication/communication.admin.controller.php @@ -24,7 +24,7 @@ class communicationAdminController extends communication 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 @@ class communicationAdminController extends communication $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 039a33c99..264161bfe 100644 --- a/modules/communication/communication.admin.view.php +++ b/modules/communication/communication.admin.view.php @@ -58,6 +58,10 @@ class communicationAdminView extends communication $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 c16f4457f..cbda510a2 100644 --- a/modules/communication/communication.controller.php +++ b/modules/communication/communication.controller.php @@ -88,6 +88,12 @@ class communicationController extends communication // 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 d5a0f88e3..46e262fd3 100644 --- a/modules/communication/communication.model.php +++ b/modules/communication/communication.model.php @@ -51,10 +51,102 @@ class communicationModel extends communication { $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 6f31a0b9c..d4bac684f 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 e099a2f38..7f21fa105 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 12fdf353e..75d4b81be 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 87eb393f6..7d905fc23 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 d40f6096d..8cb422f08 100644 --- a/modules/trash/tpl/trash_view.html +++ b/modules/trash/tpl/trash_view.html @@ -7,10 +7,6 @@
    @@ -30,10 +26,6 @@ diff --git a/modules/trash/trash.admin.view.php b/modules/trash/trash.admin.view.php index a6415305e..cb5d2b766 100644 --- a/modules/trash/trash.admin.view.php +++ b/modules/trash/trash.admin.view.php @@ -69,6 +69,14 @@ class trashAdminView extends trash 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 3fc63c16b..e93335114 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 ec6e4d541..f53b32ac4 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 7a044c271..598681eb8 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -230,7 +230,7 @@ class memberController extends member } // 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 @@ class memberController extends member { 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 73abeb0b3..b8499d7a6 100644 --- a/classes/cache/CacheApc.class.php +++ b/classes/cache/CacheApc.class.php @@ -84,7 +84,7 @@ class CacheApc extends CacheBase if($modified_time > 0 && $modified_time > $obj[0]) { - $this->delete($_key); + $this->delete($key); return false; } @@ -110,7 +110,7 @@ class CacheApc extends CacheBase if($modified_time > 0 && $modified_time > $obj[0]) { - $this->delete($_key); + $this->delete($key); return false; } @@ -125,7 +125,8 @@ class CacheApc extends CacheBase */ 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 06ffa2494..2b7821836 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 2b7821836..41f9d4509 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 9ae56c939..037b76ba7 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 c935fec20..459a2085b 100644 --- a/modules/layout/layout.admin.controller.php +++ b/modules/layout/layout.admin.controller.php @@ -262,15 +262,8 @@ class layoutAdminController extends layout $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 @@ class layoutAdminController extends layout $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 1c6b06d72..9a8d75c34 100644 --- a/modules/layout/layout.class.php +++ b/modules/layout/layout.class.php @@ -86,8 +86,6 @@ class layout extends ModuleObject $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 @@ class layout extends ModuleObject $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 85e38441a..d402b9c0e 100644 --- a/modules/layout/layout.model.php +++ b/modules/layout/layout.model.php @@ -258,31 +258,15 @@ class layoutModel extends layout */ function getLayout($layout_srl) { - $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; - // 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); - } + // Return xml file informaton after listing up the layout and extra_vars + $layout_info = $this->getLayoutInfo($layout, $output->data, $output->data->layout_type); - 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; - - // 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 517d11bd0..c8e22f827 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 598681eb8..68cc2bc81 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -2118,7 +2118,7 @@ class memberController extends member $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 18e86394c..0a64b1c06 100644 --- a/modules/comment/comment.controller.php +++ b/modules/comment/comment.controller.php @@ -266,9 +266,13 @@ class commentController extends comment 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 @@ class commentController extends comment $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 87220649c..338f082d4 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -398,7 +398,15 @@ class documentController extends document 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 19e086d61..6304f6245 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -29,7 +29,7 @@ define('__ZBXE__', __XE__); /** * 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 a416b1270..73abeb0b3 100644 --- a/classes/cache/CacheApc.class.php +++ b/classes/cache/CacheApc.class.php @@ -84,7 +84,7 @@ class CacheApc extends CacheBase if($modified_time > 0 && $modified_time > $obj[0]) { - $this->_delete($_key); + $this->delete($_key); return false; } @@ -110,24 +110,13 @@ class CacheApc extends CacheBase 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 @@ class CacheApc extends CacheBase */ function delete($key) { - $this->_delete($key); + return apc_delete($key); } /** @@ -149,7 +138,13 @@ class CacheApc extends CacheBase 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 73abeb0b3..b8499d7a6 100644 --- a/classes/cache/CacheApc.class.php +++ b/classes/cache/CacheApc.class.php @@ -84,7 +84,7 @@ class CacheApc extends CacheBase if($modified_time > 0 && $modified_time > $obj[0]) { - $this->delete($_key); + $this->delete($key); return false; } @@ -110,7 +110,7 @@ class CacheApc extends CacheBase if($modified_time > 0 && $modified_time > $obj[0]) { - $this->delete($_key); + $this->delete($key); return false; } @@ -125,7 +125,8 @@ class CacheApc extends CacheBase */ 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 433adf527..a03a9d847 100644 --- a/addons/captcha/captcha.addon.php +++ b/addons/captcha/captcha.addon.php @@ -9,7 +9,7 @@ if(!defined("__XE__")) exit(); * @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 ac1e57c5f..211fd8687 100644 --- a/addons/captcha_member/captcha_member.addon.php +++ b/addons/captcha_member/captcha_member.addon.php @@ -9,7 +9,7 @@ if(!defined("__XE__")) exit(); * @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 802a75126..3b20145e3 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -1021,7 +1021,7 @@ class ModuleHandler extends Handler } // 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 @@ class ModuleHandler extends Handler // 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 11762da50..8ad9d4f13 100644 --- a/classes/validator/Validator.class.php +++ b/classes/validator/Validator.class.php @@ -667,7 +667,7 @@ class Validator } // 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 @@ class Validator 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 2fd0fdeeb..f807593cc 100644 --- a/modules/widget/widget.controller.php +++ b/modules/widget/widget.controller.php @@ -641,7 +641,7 @@ class widgetController extends 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 338f082d4..f02019eb2 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -840,6 +840,14 @@ class documentController extends document $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 @@ class documentController extends document $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 @@ class documentController extends document { $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 @@ class documentController extends document $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 @@ class documentController extends document 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 f02019eb2..5d56ca2c2 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -1406,6 +1406,7 @@ class documentController extends document 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 @@ class documentController extends document 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 5d56ca2c2..3c8f0e9dd 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -801,6 +801,8 @@ class documentController extends document $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 70c166b9b..b80312c3b 100644 --- a/modules/member/skins/default/find_member_account.html +++ b/modules/member/skins/default/find_member_account.html @@ -41,7 +41,7 @@
    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 6304f6245..72080042e 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 f23320576..25a7cdb10 100644 --- a/classes/db/DB.class.php +++ b/classes/db/DB.class.php @@ -447,7 +447,7 @@ class DB $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 a3fe25156..a2c4c4d07 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 3c8f0e9dd..6029c7fcf 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -818,9 +818,10 @@ class documentController extends document $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 @@ class documentController extends document $_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 5e9173548..a0559455e 100644 --- a/classes/display/DisplayHandler.class.php +++ b/classes/display/DisplayHandler.class.php @@ -164,12 +164,13 @@ class DisplayHandler extends Handler 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 a2c4c4d07..6de5b1df7 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 99c23ea56..7ec0507bb 100644 --- a/addons/resize_image/resize_image.addon.php +++ b/addons/resize_image/resize_image.addon.php @@ -9,7 +9,7 @@ if(!defined('__XE__')) * @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 a3f460489..6f8dfe2cd 100644 --- a/modules/file/file.admin.controller.php +++ b/modules/file/file.admin.controller.php @@ -122,6 +122,7 @@ class fileAdminController extends file $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 f2c42543e..56f52caa5 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -402,6 +402,9 @@ class moduleModel extends module } 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 989007633..3cb165997 100644 --- a/modules/comment/comment.admin.view.php +++ b/modules/comment/comment.admin.view.php @@ -52,7 +52,7 @@ class commentAdminView extends comment // 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 @@ class commentAdminView extends comment // 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 a4f837619..40f8be128 100644 --- a/modules/comment/tpl/comment_list.html +++ b/modules/comment/tpl/comment_list.html @@ -47,7 +47,12 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
  • {@ $comment = $val->getContentText(200)} - + diff --git a/modules/document/document.admin.view.php b/modules/document/document.admin.view.php index 2397f2eb1..98547a8e6 100644 --- a/modules/document/document.admin.view.php +++ b/modules/document/document.admin.view.php @@ -50,7 +50,7 @@ class documentAdminView extends document // 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 @@ class documentAdminView extends document } 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 ba533796d..d9eca400e 100644 --- a/modules/document/tpl/document_list.html +++ b/modules/document/tpl/document_list.html @@ -48,7 +48,11 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}'; - + 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 b379c1202..faaa56606 100644 --- a/modules/document/document.model.php +++ b/modules/document/document.model.php @@ -520,6 +520,13 @@ class documentModel extends document $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 @@ class documentModel extends document 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 faaa56606..8723577cd 100644 --- a/modules/document/document.model.php +++ b/modules/document/document.model.php @@ -522,7 +522,7 @@ class documentModel extends document 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 7f6737132..019c6b52a 100644 --- a/modules/comment/comment.admin.controller.php +++ b/modules/comment/comment.admin.controller.php @@ -340,6 +340,35 @@ class commentAdminController extends comment } } + /** + * @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 9d5439a13..3dbb57a1a 100644 --- a/modules/comment/comment.model.php +++ b/modules/comment/comment.model.php @@ -76,6 +76,13 @@ class commentModel extends comment // 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 83f3e2073..960344c37 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 98296387d..f7b62dbe7 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 @@ class TrashVO { $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 add8cec8a..64393fdb1 100644 --- a/modules/trash/tpl/trash_list.html +++ b/modules/trash/tpl/trash_list.html @@ -41,7 +41,12 @@ var no_text_comment = '{$lang->no_text_comment}'; diff --git a/modules/trash/trash.admin.view.php b/modules/trash/trash.admin.view.php index cb5d2b766..459a24bea 100644 --- a/modules/trash/trash.admin.view.php +++ b/modules/trash/trash.admin.view.php @@ -48,6 +48,31 @@ class trashAdminView extends trash 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 9185d0e51..c56a59349 100644 --- a/modules/trash/trash.model.php +++ b/modules/trash/trash.model.php @@ -87,6 +87,7 @@ class trashModel extends trash $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 0a64b1c06..e1021c0af 100644 --- a/modules/comment/comment.controller.php +++ b/modules/comment/comment.controller.php @@ -843,18 +843,27 @@ class commentController extends comment // 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 1fc017e6b..6c27cea0f 100644 --- a/modules/file/file.controller.php +++ b/modules/file/file.controller.php @@ -518,6 +518,8 @@ class fileController extends file $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 ed1a913a6..174c5fa5c 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -139,13 +139,13 @@ class documentItem extends Object } $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 174c5fa5c..379931909 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -139,13 +139,12 @@ class documentItem extends Object } $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 9285624a7..0a52b7cc6 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 d0c69a80d..1c863da8a 100644 --- a/modules/admin/admin.admin.model.php +++ b/modules/admin/admin.admin.model.php @@ -95,6 +95,81 @@ class adminAdminModel extends admin } } + 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 @@ class adminAdminModel extends admin 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 e56cc1517..e7b40a2df 100644 --- a/classes/extravar/Extravar.class.php +++ b/classes/extravar/Extravar.class.php @@ -238,10 +238,6 @@ class ExtraItem { $values = explode('|@|', $value); } - elseif(strpos($value, ',') !== FALSE) - { - $values = explode(',', $value); - } else { $values = array($value); @@ -263,10 +259,6 @@ class ExtraItem { $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 c8c330fa6..cdddb3605 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 122544b66..218c14107 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 c39fed217..af32dbce1 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 8b2224d1e..79b10bc6a 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 4089da89d..9afbdd1be 100644 --- a/modules/widget/tpl/widget_layer.html +++ b/modules/widget/tpl/widget_layer.html @@ -9,6 +9,12 @@
    + + + + - + diff --git a/widgets/content/skins/default/image_title_content.html b/widgets/content/skins/default/image_title_content.html index dd54b3e0c..6fc83a5f3 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 053442386..f472bb9c7 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 4817c90b3..fc50da38a 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -348,11 +348,26 @@ class adminAdminView extends admin } } + $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 000000000..66d7f2002 --- /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 000000000..1028cc468 --- /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 03ca63172..026d24cd9 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 c36e15882..787967079 100644 --- a/modules/admin/tpl/index.html +++ b/modules/admin/tpl/index.html @@ -48,173 +48,13 @@
    -
    -
    -

    {$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 bf7e7ad1c..99b73086c 100644 --- a/modules/addon/addon.class.php +++ b/modules/addon/addon.class.php @@ -19,7 +19,6 @@ class addon extends ModuleObject $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 8967495c0..e73141b50 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 8918ecd32..37f864911 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 5b3ea32bd..5ac152cba 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 5f839d4b8..94fdaf395 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 f618562b8..64dc5cbc9 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 c270781c3..0d2aef70a 100644 --- a/modules/menu/menu.admin.model.php +++ b/modules/menu/menu.admin.model.php @@ -349,6 +349,7 @@ class menuAdminModel extends menu 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 79b10bc6a..212893f9c 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 68cc2bc81..d4b832a30 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -408,7 +408,7 @@ class memberController extends member } } - $this->_clearMemberCache($args->member_srl); + $this->_clearMemberCache($args->member_srl, $site_module_info->site_srl); $this->setRedirectUrl($returnUrl); } @@ -557,7 +557,6 @@ class memberController extends member // 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 @@ class memberController extends member $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 @@ class memberController extends member // 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 @@ class memberController extends member 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 @@ class memberController extends member 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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member $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 @@ class memberController extends member $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 64dc5cbc9..8fb632e5c 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 51f01d863..bc8c1b97e 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -30,6 +30,10 @@ define('__ZBXE__', __XE__); * 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 cc1a5de96..2026fe4bc 100644 --- a/classes/display/HTMLDisplayHandler.php +++ b/classes/display/HTMLDisplayHandler.php @@ -394,7 +394,7 @@ class HTMLDisplayHandler $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 @@ class HTMLDisplayHandler // 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 @@ class HTMLDisplayHandler $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 fa453089a..78a57d145 100644 --- a/classes/frontendfile/FrontEndFileHandler.class.php +++ b/classes/frontendfile/FrontEndFileHandler.class.php @@ -160,7 +160,7 @@ class FrontEndFileHandler extends Handler 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 2026fe4bc..809c74d13 100644 --- a/classes/display/HTMLDisplayHandler.php +++ b/classes/display/HTMLDisplayHandler.php @@ -394,7 +394,7 @@ class HTMLDisplayHandler $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 @@ class HTMLDisplayHandler // 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 @@ class HTMLDisplayHandler $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 78a57d145..c7d164dcd 100644 --- a/classes/frontendfile/FrontEndFileHandler.class.php +++ b/classes/frontendfile/FrontEndFileHandler.class.php @@ -160,7 +160,7 @@ class FrontEndFileHandler extends Handler 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 9c4e2733f..00d1942c5 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 e56cc1517..df235ca97 100644 --- a/classes/extravar/Extravar.class.php +++ b/classes/extravar/Extravar.class.php @@ -249,7 +249,7 @@ class ExtraItem 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 @@ class ExtraItem 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 df235ca97..bfa3da383 100644 --- a/classes/extravar/Extravar.class.php +++ b/classes/extravar/Extravar.class.php @@ -424,7 +424,8 @@ class ExtraItem 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 06c84bf31..2a5cf6951 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 bd403546d..7fb15954a 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 4b39da224..d8e03ae49 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -831,7 +831,6 @@ class memberAdminController extends member { $args->denied = $var->denied; $output = executeQuery('member.updateMemberDeniedInfo', $args); - $this->_clearMemberCache($args->member_srl); if(!$output->toBool()) { $oDB->rollback(); @@ -853,6 +852,7 @@ class memberAdminController extends member $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 0e6e802e2..0806e5735 100644 --- a/modules/member/tpl/member_list.html +++ b/modules/member/tpl/member_list.html @@ -154,6 +154,11 @@

    {$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 f807593cc..8c6587b9d 100644 --- a/modules/widget/widget.controller.php +++ b/modules/widget/widget.controller.php @@ -486,20 +486,20 @@ class widgetController extends widget $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 @@ class widgetController extends widget $oWidgetController = getController('widget'); $widget_content_header = sprintf( - '
    '. + '
    '. '
    '. '
    '. '
    '. @@ -571,7 +571,7 @@ class widgetController extends widget } $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 @@ class widgetController extends widget } } - $widget_content_header = sprintf('
    '. + $widget_content_header = sprintf('
    '. '
    '. '
    '. '
    ',$args->widgetstyle,$style, @@ -710,6 +710,7 @@ class widgetController extends widget } $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 54e02568a..664263e95 100644 --- a/classes/display/HTMLDisplayHandler.php +++ b/classes/display/HTMLDisplayHandler.php @@ -63,7 +63,7 @@ class HTMLDisplayHandler // 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 2fae1b591..5d4bf271b 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 fc4bcaeba..51f01d863 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -29,7 +29,7 @@ define('__ZBXE__', __XE__); /** * 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 b80312c3b..b57e5137c 100644 --- a/modules/member/skins/default/find_member_account.html +++ b/modules/member/skins/default/find_member_account.html @@ -6,7 +6,7 @@

    {$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 56f52caa5..f7912d667 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -403,7 +403,7 @@ class moduleModel extends module 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 36eb8d8cd..ecc2e53a2 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 e7b40a2df..61e0bbd9d 100644 --- a/classes/extravar/Extravar.class.php +++ b/classes/extravar/Extravar.class.php @@ -238,6 +238,10 @@ class ExtraItem { $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 02ed6b8a3..538956561 100644 --- a/classes/httprequest/XEHttpRequest.class.php +++ b/classes/httprequest/XEHttpRequest.class.php @@ -163,7 +163,7 @@ class XEHttpRequest $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 fdc090ecb..174f6b0ae 100644 --- a/modules/poll/poll.model.php +++ b/modules/poll/poll.model.php @@ -111,7 +111,7 @@ class pollModel extends poll $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 b57e5137c..1b7cf67e2 100644 --- a/modules/member/skins/default/find_member_account.html +++ b/modules/member/skins/default/find_member_account.html @@ -6,7 +6,7 @@

    {$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 0c42468be..855292c46 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 f7912d667..638db4dff 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -785,6 +785,7 @@ class moduleModel extends 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 f7912d667..4bc250dbb 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -1501,6 +1501,7 @@ class moduleModel extends module $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 664263e95..cc1a5de96 100644 --- a/classes/display/HTMLDisplayHandler.php +++ b/classes/display/HTMLDisplayHandler.php @@ -174,7 +174,7 @@ class HTMLDisplayHandler $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 f0af11460..e99773ad4 100644 --- a/modules/importer/importer.admin.controller.php +++ b/modules/importer/importer.admin.controller.php @@ -1009,6 +1009,7 @@ class importerAdminController extends importer $started = false; $buff = null; + $file_obj = new stdClass; while(!feof($fp)) { $str = trim(fgets($fp, 1024)); @@ -1017,7 +1018,6 @@ class importerAdminController extends importer // 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 f91968b55..928e58dac 100644 --- a/widgets/content/content.class.php +++ b/widgets/content/content.class.php @@ -743,6 +743,7 @@ class content extends WidgetHandler 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 61e0bbd9d..2ad6a69ac 100644 --- a/classes/extravar/Extravar.class.php +++ b/classes/extravar/Extravar.class.php @@ -458,6 +458,8 @@ class ExtraItem } 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 b86ad3a29..b76ddc545 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 f91968b55..3ba155de7 100644 --- a/widgets/content/content.class.php +++ b/widgets/content/content.class.php @@ -34,6 +34,8 @@ class content extends WidgetHandler 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 @@ class content extends WidgetHandler $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 @@ class contentItem extends Object { 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 d789b3eff..e7a02ef12 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 d92565a26..8a0b7fdfc 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 d8e03ae49..2da5b3cd7 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -1109,6 +1109,11 @@ class memberAdminController extends member 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 40305009e..bdf00d49c 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 2d9cf86ba..977e48730 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 eebe090dc..d7fe43ade 100644 --- a/modules/member/member.admin.view.php +++ b/modules/member/member.admin.view.php @@ -94,7 +94,7 @@ class memberAdminView extends member } } $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 8ad9d4f13..d730404ee 100644 --- a/classes/validator/Validator.class.php +++ b/classes/validator/Validator.class.php @@ -714,7 +714,7 @@ class Validator { $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 05aec0918..25d1623a3 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 d730404ee..aa188bfe4 100644 --- a/classes/validator/Validator.class.php +++ b/classes/validator/Validator.class.php @@ -714,7 +714,7 @@ class Validator { $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 38e34fdaa..55fcd644c 100644 --- a/modules/install/install.view.php +++ b/modules/install/install.view.php @@ -35,6 +35,26 @@ class installView extends install $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 be74a5750..d0475ff8c 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 @@ $oDocumentModel = getModel('document'); /* @var $oDocumentModel documentModel */ $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 db1a82f62..968233923 100644 --- a/classes/file/FileHandler.class.php +++ b/classes/file/FileHandler.class.php @@ -1017,6 +1017,33 @@ class FileHandler $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 0559ed293..25c4e7efe 100644 --- a/modules/autoinstall/autoinstall.admin.controller.php +++ b/modules/autoinstall/autoinstall.admin.controller.php @@ -181,6 +181,7 @@ class autoinstallAdminController extends autoinstall @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 @@ class autoinstallAdminController extends autoinstall 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 @@ class autoinstallAdminController extends autoinstall { $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 @@ class autoinstallAdminController extends autoinstall { $path = $package->path; + $oAdminModel = getAdminModel('autoinstall'); + if(!$_SESSION['ftp_password']) { $ftp_password = Context::get('ftp_password'); @@ -359,7 +370,11 @@ class autoinstallAdminController extends autoinstall $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 0b228e801..cae7cf93d 100644 --- a/modules/autoinstall/autoinstall.admin.model.php +++ b/modules/autoinstall/autoinstall.admin.model.php @@ -348,6 +348,61 @@ class autoinstallAdminModel extends autoinstall $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 956ac3e3f..2f5c02717 100644 --- a/modules/autoinstall/autoinstall.admin.view.php +++ b/modules/autoinstall/autoinstall.admin.view.php @@ -368,6 +368,9 @@ class autoinstallAdminView extends autoinstall Context::set('need_password', TRUE); } + $output = $oAdminModel->checkUseDirectModuleInstall($package); + Context::set('directModuleInstall', $output); + $this->setTemplateFile('install'); $security = new Security(); @@ -503,6 +506,7 @@ class autoinstallAdminView extends autoinstall } $oModel = getModel('autoinstall'); + $oAdminModel = getAdminModel('autoinstall'); $installedPackage = $oModel->getInstalledPackage($package_srl); if(!$installedPackage) { @@ -529,6 +533,9 @@ class autoinstallAdminView extends autoinstall 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 f1ebfbad2..ec75d030b 100644 --- a/modules/autoinstall/autoinstall.lib.php +++ b/modules/autoinstall/autoinstall.lib.php @@ -867,6 +867,131 @@ class FTPModuleInstaller extends ModuleInstaller 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 00aad260d..5998c0f52 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 7cf5e506d..3efbc0fd4 100644 --- a/modules/autoinstall/tpl/install.html +++ b/modules/autoinstall/tpl/install.html @@ -40,10 +40,10 @@ - + - +
    @@ -52,6 +52,12 @@
    + +

    {$lang->msg_direct_install_not_supported}

    +
      +
    • {$path}
    • +
    +
    diff --git a/modules/autoinstall/tpl/uninstall.html b/modules/autoinstall/tpl/uninstall.html index 23a75e646..d6f6b5c2c 100644 --- a/modules/autoinstall/tpl/uninstall.html +++ b/modules/autoinstall/tpl/uninstall.html @@ -17,10 +17,10 @@ - + - +
    @@ -29,7 +29,12 @@
    - + +

    {$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 | 114 ++++++++++++++++++++++++++++----------- common/js/xe.min.js | 2 +- common/js/xml_handler.js | 114 ++++++++++++++++++++++++++++----------- 3 files changed, 165 insertions(+), 65 deletions(-) diff --git a/common/js/xe.js b/common/js/xe.js index 7b6ad2a92..c86fe3edd 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); + 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; + } 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 c971b5c4d..0e871f313 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 195227a63..3c50a3018 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 09253b924..9db74d536 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 3c8c36122..9b9f35605 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 c86fe3edd..3f2f81453 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 0e871f313..41d546bb4 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('