From 82c9dead2ac0455c04eb96a14aee75abbec4fe72 Mon Sep 17 00:00:00 2001 From: rMalie Date: Mon, 21 Nov 2011 11:05:10 +0000 Subject: [PATCH] // Merge -> 10309 --- admin-dev/ajax.php | 23 +- admin-dev/ajaxfilemanager/ajax_save_text.php | 6 +- admin-dev/init.php | 2 +- admin-dev/tabs/AdminUpgrade.php | 2 +- classes/Address.php | 3 +- classes/AdminTab.php | 4 +- classes/CMS.php | 5 + classes/Category.php | 2 +- classes/Chart.php | 2 +- classes/CompareProduct.php | 182 ++-- classes/Cookie.php | 1 + classes/FrontController.php | 2 + classes/Group.php | 14 +- classes/GroupReduction.php | 6 +- classes/ObjectModel.php | 3 +- classes/PDF.php | 20 +- classes/PaymentModule.php | 219 +++- classes/Product.php | 31 +- classes/Tab.php | 4 +- classes/Tools.php | 51 +- classes/Upgrader.php | 38 +- classes/Validate.php | 2 +- classes/order/Order.php | 6 +- classes/order/OrderHistory.php | 3 +- config/defines.inc.php | 1 - config/smarty.config.inc.php | 2 +- controllers/front/AuthController.php | 19 +- controllers/front/CartController.php | 7 +- controllers/front/CategoryController.php | 9 +- controllers/front/CompareController.php | 33 +- controllers/front/OrderController.php | 26 +- controllers/front/ProductController.php | 19 +- docs/csv_import/addresses_import.csv | 2 +- docs/csv_import/categories_import.csv | 2 +- docs/csv_import/customers_import.csv | 2 +- docs/csv_import/manufacturers_import.csv | 2 +- docs/csv_import/products_import.csv | 2 +- docs/csv_import/suppliers_import.csv | 2 +- images.inc.php | 2 + install-dev/index.php | 7 +- install-dev/langs/de.php | 11 +- install-dev/langs/es.php | 7 +- install-dev/langs/fr.php | 7 +- install-dev/langs/it.php | 13 +- install-dev/model.php | 1 + .../php/hook_blocksearch_on_header.php | 49 + install-dev/php/update_order_canada.php | 97 ++ install-dev/sql/db.sql | 34 +- install-dev/sql/db_settings_extends.sql | 87 +- install-dev/sql/db_settings_lite.sql | 5 +- install-dev/sql/upgrade/1.4.6.0.sql | 25 + install-dev/xml/doUpgrade.php | 4 + js/attributesBack.js | 8 +- js/hookLiveEdit.js | 41 +- .../jquery.validate.creditcard2-1.0.1.js | 95 ++ localization/ca.xml | 4 + modules/authorizeaim/authorizeaim.php | 84 +- modules/authorizeaim/authorizeaim.tpl | 63 +- modules/autoupgrade/AdminSelfUpgrade.php | 128 ++- modules/autoupgrade/Upgrader.php | 66 +- modules/autoupgrade/autoupgrade.php | 22 +- modules/autoupgrade/config.xml | 2 +- modules/autoupgrade/fr.php | 4 +- modules/blockcart/ajax-cart.js | 5 +- .../blocklayered/blocklayered-no-products.tpl | 2 +- modules/blocklayered/blocklayered.php | 787 +++++++------- modules/blocklayered/blocklayered.tpl | 2 +- modules/blocksearch/blocksearch.php | 24 +- modules/blockstore/en.php | 4 + modules/blockwishlist/managewishlist.tpl | 2 + modules/blockwishlist/view.tpl | 1 + modules/dibs/dibs.php | 61 +- modules/dibs/validation.php | 13 +- modules/ebay/config.xml | 2 +- modules/ebay/eBayRequest.php | 5 +- modules/ebay/ebay.php | 85 +- modules/ekomi/config.xml | 4 +- modules/ekomi/ekomi.php | 23 +- modules/ekomi/fr.php | 1 + .../envoimoinscher/AdminEnvoiMoinsCher.php | 1 + modules/fedexcarrier/config.xml | 2 +- modules/fedexcarrier/fedexcarrier.php | 8 +- modules/gsitemap/config.xml | 2 +- modules/gsitemap/gsitemap.php | 141 ++- modules/importerosc/ajax.php | 17 + modules/importerosc/fr.php | 5 + modules/importerosc/importerosc.php | 155 ++- modules/loyalty/loyalty.php | 4 +- modules/mailjet/ajax-mailjet.gif | Bin 0 -> 673 bytes modules/mailjet/ajax.js | 47 + modules/mailjet/ajax.php | 67 ++ modules/mailjet/config.xml | 12 + modules/mailjet/fr.php | 29 + modules/mailjet/logo-mailjet.jpg | Bin 0 -> 18311 bytes modules/mailjet/logo.gif | Bin 0 -> 1553 bytes modules/mailjet/mailjet.php | 213 ++++ modules/mailjet/override/Message-mailjet.php | 798 ++++++++++++++ modules/mailjet/override/Message.php | 797 ++++++++++++++ modules/mondialrelay/AdminMondialRelay.php | 18 +- .../mondialrelay/classes/MRCreateTickets.php | 28 +- modules/mondialrelay/classes/MRTools.php | 6 +- modules/mondialrelay/config.xml | 2 +- modules/mondialrelay/docs/install.pdf | Bin 0 -> 616349 bytes modules/mondialrelay/fr.php | 7 +- modules/mondialrelay/images/help.png | Bin 0 -> 2523 bytes modules/mondialrelay/jquery-1.4.4.min.js | 167 --- modules/mondialrelay/js/gmap.js | 8 + modules/mondialrelay/js/jquery-1.6.4.min.js | 4 + modules/mondialrelay/mondialrelay.js | 11 + modules/mondialrelay/mondialrelay.php | 141 +-- modules/mondialrelay/mondialrelay.tpl | 14 +- modules/mondialrelay/orderDetail.tpl | 4 +- modules/mondialrelay/style.css | 40 +- modules/moneybookers/de.php | 20 +- modules/paypal/config.xml | 2 +- modules/paypal/confirm.tpl | 2 +- modules/paypal/confirmation.tpl | 2 +- modules/paypal/error.tpl | 2 +- modules/paypal/express/login.tpl | 2 +- modules/paypal/express/paypalexpress.php | 4 +- modules/paypal/express/submit.php | 7 +- .../paypal/integral_evolution/redirect.php | 16 +- .../paypal/integral_evolution/redirect.tpl | 2 +- modules/paypal/payment/paypalpayment.php | 6 +- modules/paypal/payment/submit.php | 10 +- modules/paypal/paypal.php | 297 ++++-- modules/paypal/standard/redirect.php | 10 +- modules/shopimporter/shopimporter.js | 12 +- modules/shopimporter/shopimporter.php | 56 +- modules/shoppingfluxexport/config.xml | 13 + modules/shoppingfluxexport/flux.php | 37 + modules/shoppingfluxexport/fr.php | 8 + modules/shoppingfluxexport/logo.gif | Bin 0 -> 980 bytes .../shoppingfluxexport/shoppingfluxexport.php | 208 ++++ modules/statsforecast/statsforecast.php | 33 +- modules/themeinstallator/themeinstallator.php | 6 + modules/tntcarrier/carrier.jpg | Bin 0 -> 9932 bytes modules/tntcarrier/classes/OrderInfoTnt.php | 68 ++ modules/tntcarrier/classes/PackageTnt.php | 40 + modules/tntcarrier/classes/TntWebService.php | 238 +++++ modules/tntcarrier/classes/index.php | 36 + modules/tntcarrier/classes/serviceCache.php | 58 ++ modules/tntcarrier/config.xml | 12 + modules/tntcarrier/css/index.php | 36 + modules/tntcarrier/css/tntB2CRelaisColis.css | 371 +++++++ modules/tntcarrier/css/ui.dialog.css | 158 +++ modules/tntcarrier/css/ui.tabs.css | 62 ++ modules/tntcarrier/follow.php | 27 + modules/tntcarrier/fr.php | 90 ++ modules/tntcarrier/img/5-puce-choix-gris2.gif | Bin 0 -> 894 bytes modules/tntcarrier/img/Thumbs.db | Bin 0 -> 54784 bytes modules/tntcarrier/img/bt-CodePostal-1.jpg | Bin 0 -> 1788 bytes modules/tntcarrier/img/bt-CodePostal-2.jpg | Bin 0 -> 1968 bytes modules/tntcarrier/img/bt-Continuer-1.jpg | Bin 0 -> 1231 bytes modules/tntcarrier/img/bt-Continuer-2.jpg | Bin 0 -> 1285 bytes modules/tntcarrier/img/bt-OK-1.jpg | Bin 0 -> 961 bytes modules/tntcarrier/img/bt-OK-2.jpg | Bin 0 -> 978 bytes modules/tntcarrier/img/bt-Retour.gif | Bin 0 -> 912 bytes modules/tntcarrier/img/close_icon_double.png | Bin 0 -> 436 bytes modules/tntcarrier/img/exception.gif | Bin 0 -> 1038 bytes modules/tntcarrier/img/exception2.gif | Bin 0 -> 954 bytes modules/tntcarrier/img/google/Thumbs.db | Bin 0 -> 7680 bytes modules/tntcarrier/img/google/agenceTnt.png | Bin 0 -> 5382 bytes .../tntcarrier/img/google/red-pushpin-s.png | Bin 0 -> 713 bytes modules/tntcarrier/img/google/red-pushpin.png | Bin 0 -> 1334 bytes modules/tntcarrier/img/google/relaisColis.png | Bin 0 -> 5725 bytes modules/tntcarrier/img/index.php | 36 + modules/tntcarrier/img/lg_tnt.gif | Bin 0 -> 3711 bytes modules/tntcarrier/img/livreur.gif | Bin 0 -> 7380 bytes modules/tntcarrier/img/logo-tnt-petit.jpg | Bin 0 -> 1022 bytes modules/tntcarrier/img/logo_24_chezmoi.jpg | Bin 0 -> 42188 bytes .../tntcarrier/img/logo_24_relaiscolis.jpg | Bin 0 -> 42143 bytes .../tntcarrier/img/logo_24h_chezmoi_RVB.gif | Bin 0 -> 2860 bytes .../img/logo_24h_relaiscolis_RVB.gif | Bin 0 -> 2936 bytes modules/tntcarrier/img/logos_24.jpg | Bin 0 -> 27396 bytes modules/tntcarrier/img/loupe.gif | Bin 0 -> 649 bytes modules/tntcarrier/img/notes.gif | Bin 0 -> 1021 bytes modules/tntcarrier/img/picto-delai.gif | Bin 0 -> 403 bytes modules/tntcarrier/img/picto_localiser.png | Bin 0 -> 2341 bytes modules/tntcarrier/img/tnt_logo.gif | Bin 0 -> 1531 bytes .../217bc0_11x11_icon_arrows_leftright.gif | Bin 0 -> 58 bytes .../217bc0_11x11_icon_arrows_updown.gif | Bin 0 -> 56 bytes .../img/ui-dialog/217bc0_11x11_icon_close.gif | Bin 0 -> 62 bytes .../img/ui-dialog/217bc0_11x11_icon_doc.gif | Bin 0 -> 64 bytes .../217bc0_11x11_icon_folder_closed.gif | Bin 0 -> 61 bytes .../217bc0_11x11_icon_folder_open.gif | Bin 0 -> 61 bytes .../img/ui-dialog/217bc0_11x11_icon_minus.gif | Bin 0 -> 56 bytes .../img/ui-dialog/217bc0_11x11_icon_plus.gif | Bin 0 -> 61 bytes .../img/ui-dialog/217bc0_7x7_arrow_down.gif | Bin 0 -> 52 bytes .../img/ui-dialog/217bc0_7x7_arrow_left.gif | Bin 0 -> 53 bytes .../img/ui-dialog/217bc0_7x7_arrow_right.gif | Bin 0 -> 53 bytes .../img/ui-dialog/217bc0_7x7_arrow_up.gif | Bin 0 -> 52 bytes .../469bdd_11x11_icon_arrows_leftright.gif | Bin 0 -> 58 bytes .../469bdd_11x11_icon_arrows_updown.gif | Bin 0 -> 56 bytes .../img/ui-dialog/469bdd_11x11_icon_doc.gif | Bin 0 -> 64 bytes .../img/ui-dialog/469bdd_11x11_icon_minus.gif | Bin 0 -> 56 bytes .../img/ui-dialog/469bdd_11x11_icon_plus.gif | Bin 0 -> 61 bytes .../ui-dialog/469bdd_11x11_icon_resize_se.gif | Bin 0 -> 61 bytes .../img/ui-dialog/469bdd_7x7_arrow_down.gif | Bin 0 -> 52 bytes .../img/ui-dialog/469bdd_7x7_arrow_left.gif | Bin 0 -> 53 bytes .../img/ui-dialog/469bdd_7x7_arrow_right.gif | Bin 0 -> 53 bytes .../img/ui-dialog/469bdd_7x7_arrow_up.gif | Bin 0 -> 52 bytes .../6da8d5_11x11_icon_arrows_leftright.gif | Bin 0 -> 58 bytes .../6da8d5_11x11_icon_arrows_updown.gif | Bin 0 -> 56 bytes .../img/ui-dialog/6da8d5_11x11_icon_close.gif | Bin 0 -> 62 bytes .../img/ui-dialog/6da8d5_11x11_icon_doc.gif | Bin 0 -> 64 bytes .../6da8d5_11x11_icon_folder_closed.gif | Bin 0 -> 61 bytes .../6da8d5_11x11_icon_folder_open.gif | Bin 0 -> 61 bytes .../img/ui-dialog/6da8d5_11x11_icon_minus.gif | Bin 0 -> 56 bytes .../img/ui-dialog/6da8d5_11x11_icon_plus.gif | Bin 0 -> 61 bytes .../img/ui-dialog/6da8d5_7x7_arrow_down.gif | Bin 0 -> 52 bytes .../img/ui-dialog/6da8d5_7x7_arrow_left.gif | Bin 0 -> 53 bytes .../img/ui-dialog/6da8d5_7x7_arrow_right.gif | Bin 0 -> 53 bytes .../img/ui-dialog/6da8d5_7x7_arrow_up.gif | Bin 0 -> 52 bytes modules/tntcarrier/img/ui-dialog/Thumbs.db | Bin 0 -> 7680 bytes .../d0e5f5_40x100_textures_02_glass_75.png | Bin 0 -> 235 bytes .../dfeffc_40x100_textures_02_glass_85.png | Bin 0 -> 325 bytes ...f8f9_40x100_textures_06_inset_hard_100.png | Bin 0 -> 308 bytes .../f9bd01_11x11_icon_arrows_leftright.gif | Bin 0 -> 58 bytes .../f9bd01_11x11_icon_arrows_updown.gif | Bin 0 -> 56 bytes .../img/ui-dialog/f9bd01_11x11_icon_close.gif | Bin 0 -> 62 bytes .../img/ui-dialog/f9bd01_11x11_icon_doc.gif | Bin 0 -> 64 bytes .../f9bd01_11x11_icon_folder_closed.gif | Bin 0 -> 61 bytes .../f9bd01_11x11_icon_folder_open.gif | Bin 0 -> 61 bytes .../img/ui-dialog/f9bd01_11x11_icon_minus.gif | Bin 0 -> 56 bytes .../img/ui-dialog/f9bd01_11x11_icon_plus.gif | Bin 0 -> 61 bytes .../img/ui-dialog/f9bd01_7x7_arrow_down.gif | Bin 0 -> 52 bytes .../img/ui-dialog/f9bd01_7x7_arrow_left.gif | Bin 0 -> 53 bytes .../img/ui-dialog/f9bd01_7x7_arrow_right.gif | Bin 0 -> 53 bytes .../img/ui-dialog/f9bd01_7x7_arrow_up.gif | Bin 0 -> 52 bytes ...fdfd_40x100_textures_06_inset_hard_100.png | Bin 0 -> 202 bytes modules/tntcarrier/index.php | 36 + modules/tntcarrier/js/index.php | 36 + modules/tntcarrier/js/jquery-ui.js | 286 +++++ modules/tntcarrier/js/jquery.js | 32 + modules/tntcarrier/js/relaisColis.js | 979 +++++++++++++++++ modules/tntcarrier/js/shipping.js | 78 ++ modules/tntcarrier/logo.gif | Bin 0 -> 1355 bytes modules/tntcarrier/pdf/3012345000000006.pdf | Bin 0 -> 10852 bytes modules/tntcarrier/pdf/7812345000000006.pdf | Bin 0 -> 10877 bytes modules/tntcarrier/pdf/index.php | 36 + .../relaisColis/css/tntB2CRelaisColis.css | 357 +++++++ .../tntcarrier/relaisColis/css/ui.dialog.css | 158 +++ .../tntcarrier/relaisColis/css/ui.tabs.css | 55 + .../relaisColis/img/5-puce-choix-gris2.gif | Bin 0 -> 894 bytes modules/tntcarrier/relaisColis/img/Thumbs.db | Bin 0 -> 54784 bytes .../relaisColis/img/bt-CodePostal-1.jpg | Bin 0 -> 1788 bytes .../relaisColis/img/bt-CodePostal-2.jpg | Bin 0 -> 1968 bytes .../relaisColis/img/bt-Continuer-1.jpg | Bin 0 -> 1231 bytes .../relaisColis/img/bt-Continuer-2.jpg | Bin 0 -> 1285 bytes .../tntcarrier/relaisColis/img/bt-OK-1.jpg | Bin 0 -> 961 bytes .../tntcarrier/relaisColis/img/bt-OK-2.jpg | Bin 0 -> 978 bytes .../tntcarrier/relaisColis/img/bt-Retour.gif | Bin 0 -> 912 bytes .../relaisColis/img/close_icon_double.png | Bin 0 -> 436 bytes .../tntcarrier/relaisColis/img/exception.gif | Bin 0 -> 1038 bytes .../tntcarrier/relaisColis/img/exception2.gif | Bin 0 -> 954 bytes .../relaisColis/img/google/Thumbs.db | Bin 0 -> 7680 bytes .../relaisColis/img/google/agenceTnt.png | Bin 0 -> 5382 bytes .../relaisColis/img/google/red-pushpin-s.png | Bin 0 -> 713 bytes .../relaisColis/img/google/red-pushpin.png | Bin 0 -> 1334 bytes .../relaisColis/img/google/relaisColis.png | Bin 0 -> 5725 bytes modules/tntcarrier/relaisColis/img/lg_tnt.gif | Bin 0 -> 3711 bytes .../tntcarrier/relaisColis/img/livreur.gif | Bin 0 -> 7380 bytes .../relaisColis/img/logo-tnt-petit.jpg | Bin 0 -> 1022 bytes .../relaisColis/img/logo_24_chezmoi.jpg | Bin 0 -> 42188 bytes .../relaisColis/img/logo_24_relaiscolis.jpg | Bin 0 -> 42143 bytes .../relaisColis/img/logo_24h_chezmoi_RVB.gif | Bin 0 -> 2860 bytes .../img/logo_24h_relaiscolis_RVB.gif | Bin 0 -> 2936 bytes .../tntcarrier/relaisColis/img/logos_24.jpg | Bin 0 -> 27396 bytes modules/tntcarrier/relaisColis/img/loupe.gif | Bin 0 -> 649 bytes modules/tntcarrier/relaisColis/img/notes.gif | Bin 0 -> 1021 bytes .../relaisColis/img/picto-delai.gif | Bin 0 -> 403 bytes .../relaisColis/img/picto_localiser.png | Bin 0 -> 2341 bytes .../tntcarrier/relaisColis/img/tnt_logo.gif | Bin 0 -> 1531 bytes .../217bc0_11x11_icon_arrows_leftright.gif | Bin 0 -> 58 bytes .../217bc0_11x11_icon_arrows_updown.gif | Bin 0 -> 56 bytes .../img/ui-dialog/217bc0_11x11_icon_close.gif | Bin 0 -> 62 bytes .../img/ui-dialog/217bc0_11x11_icon_doc.gif | Bin 0 -> 64 bytes .../217bc0_11x11_icon_folder_closed.gif | Bin 0 -> 61 bytes .../217bc0_11x11_icon_folder_open.gif | Bin 0 -> 61 bytes .../img/ui-dialog/217bc0_11x11_icon_minus.gif | Bin 0 -> 56 bytes .../img/ui-dialog/217bc0_11x11_icon_plus.gif | Bin 0 -> 61 bytes .../img/ui-dialog/217bc0_7x7_arrow_down.gif | Bin 0 -> 52 bytes .../img/ui-dialog/217bc0_7x7_arrow_left.gif | Bin 0 -> 53 bytes .../img/ui-dialog/217bc0_7x7_arrow_right.gif | Bin 0 -> 53 bytes .../img/ui-dialog/217bc0_7x7_arrow_up.gif | Bin 0 -> 52 bytes .../469bdd_11x11_icon_arrows_leftright.gif | Bin 0 -> 58 bytes .../469bdd_11x11_icon_arrows_updown.gif | Bin 0 -> 56 bytes .../img/ui-dialog/469bdd_11x11_icon_doc.gif | Bin 0 -> 64 bytes .../img/ui-dialog/469bdd_11x11_icon_minus.gif | Bin 0 -> 56 bytes .../img/ui-dialog/469bdd_11x11_icon_plus.gif | Bin 0 -> 61 bytes .../ui-dialog/469bdd_11x11_icon_resize_se.gif | Bin 0 -> 61 bytes .../img/ui-dialog/469bdd_7x7_arrow_down.gif | Bin 0 -> 52 bytes .../img/ui-dialog/469bdd_7x7_arrow_left.gif | Bin 0 -> 53 bytes .../img/ui-dialog/469bdd_7x7_arrow_right.gif | Bin 0 -> 53 bytes .../img/ui-dialog/469bdd_7x7_arrow_up.gif | Bin 0 -> 52 bytes .../6da8d5_11x11_icon_arrows_leftright.gif | Bin 0 -> 58 bytes .../6da8d5_11x11_icon_arrows_updown.gif | Bin 0 -> 56 bytes .../img/ui-dialog/6da8d5_11x11_icon_close.gif | Bin 0 -> 62 bytes .../img/ui-dialog/6da8d5_11x11_icon_doc.gif | Bin 0 -> 64 bytes .../6da8d5_11x11_icon_folder_closed.gif | Bin 0 -> 61 bytes .../6da8d5_11x11_icon_folder_open.gif | Bin 0 -> 61 bytes .../img/ui-dialog/6da8d5_11x11_icon_minus.gif | Bin 0 -> 56 bytes .../img/ui-dialog/6da8d5_11x11_icon_plus.gif | Bin 0 -> 61 bytes .../img/ui-dialog/6da8d5_7x7_arrow_down.gif | Bin 0 -> 52 bytes .../img/ui-dialog/6da8d5_7x7_arrow_left.gif | Bin 0 -> 53 bytes .../img/ui-dialog/6da8d5_7x7_arrow_right.gif | Bin 0 -> 53 bytes .../img/ui-dialog/6da8d5_7x7_arrow_up.gif | Bin 0 -> 52 bytes .../relaisColis/img/ui-dialog/Thumbs.db | Bin 0 -> 7680 bytes .../d0e5f5_40x100_textures_02_glass_75.png | Bin 0 -> 235 bytes .../dfeffc_40x100_textures_02_glass_85.png | Bin 0 -> 325 bytes ...f8f9_40x100_textures_06_inset_hard_100.png | Bin 0 -> 308 bytes .../f9bd01_11x11_icon_arrows_leftright.gif | Bin 0 -> 58 bytes .../f9bd01_11x11_icon_arrows_updown.gif | Bin 0 -> 56 bytes .../img/ui-dialog/f9bd01_11x11_icon_close.gif | Bin 0 -> 62 bytes .../img/ui-dialog/f9bd01_11x11_icon_doc.gif | Bin 0 -> 64 bytes .../f9bd01_11x11_icon_folder_closed.gif | Bin 0 -> 61 bytes .../f9bd01_11x11_icon_folder_open.gif | Bin 0 -> 61 bytes .../img/ui-dialog/f9bd01_11x11_icon_minus.gif | Bin 0 -> 56 bytes .../img/ui-dialog/f9bd01_11x11_icon_plus.gif | Bin 0 -> 61 bytes .../img/ui-dialog/f9bd01_7x7_arrow_down.gif | Bin 0 -> 52 bytes .../img/ui-dialog/f9bd01_7x7_arrow_left.gif | Bin 0 -> 53 bytes .../img/ui-dialog/f9bd01_7x7_arrow_right.gif | Bin 0 -> 53 bytes .../img/ui-dialog/f9bd01_7x7_arrow_up.gif | Bin 0 -> 52 bytes ...fdfd_40x100_textures_06_inset_hard_100.png | Bin 0 -> 202 bytes modules/tntcarrier/relaisColis/index.php | 36 + .../tntcarrier/relaisColis/js/jquery-ui.js | 286 +++++ modules/tntcarrier/relaisColis/js/jquery.js | 32 + .../tntcarrier/relaisColis/js/relaisColis.js | 984 ++++++++++++++++++ .../tntcarrier/relaisColis/postRelaisData.php | 22 + .../tntcarrier/relaisColis/relaisColis.php | 64 ++ modules/tntcarrier/relaisColis/tntRelais.php | 94 ++ modules/tntcarrier/serviceBase.xml | 92 ++ modules/tntcarrier/sql-install.php | 42 + modules/tntcarrier/sql-uninstall.php | 11 + modules/tntcarrier/tntGetDepot.php | 121 +++ modules/tntcarrier/tntcarrier.php | 945 +++++++++++++++++ modules/tntcarrier/tpl/accountForm.tpl | 14 + modules/tntcarrier/tpl/country.tpl | 17 + modules/tntcarrier/tpl/countryForm.tpl | 9 + modules/tntcarrier/tpl/follow.tpl | 108 ++ modules/tntcarrier/tpl/formerror.tpl | 42 + modules/tntcarrier/tpl/index.php | 36 + modules/tntcarrier/tpl/main.tpl | 28 + modules/tntcarrier/tpl/relaisColis.tpl | 21 + modules/tntcarrier/tpl/service.tpl | 47 + modules/tntcarrier/tpl/serviceForm.tpl | 20 + modules/tntcarrier/tpl/shippingForm.tpl | 70 ++ modules/tntcarrier/tpl/shippingNumber.tpl | 43 + modules/tntcarrier/tpl/waitingFollow.tpl | 27 + modules/trustedshops/config.xml | 2 +- modules/trustedshops/de.php | 10 +- .../trustedshops/lib/TSBuyerProtection.php | 8 +- .../trustedshops/lib/TrustedShopsRating.php | 2 + modules/trustedshops/trustedshops.php | 2 +- modules/twenga/twenga.php | 4 +- themes/prestashop/js/order-opc.js | 2 +- themes/prestashop/js/product.js | 5 +- themes/prestashop/lang/en.php | 2 +- themes/prestashop/order-address.tpl | 40 +- themes/prestashop/product-compare.tpl | 3 +- themes/prestashop/products-comparison.tpl | 2 +- tools/swift/Swift/Plugin/MailSend.php | 2 +- translations/fr/admin.php | 23 +- translations/fr/errors.php | 4 +- 365 files changed, 11185 insertions(+), 1571 deletions(-) create mode 100644 install-dev/php/hook_blocksearch_on_header.php create mode 100644 install-dev/php/update_order_canada.php create mode 100644 install-dev/sql/upgrade/1.4.6.0.sql create mode 100644 js/jquery/jquery.validate.creditcard2-1.0.1.js create mode 100644 modules/blockstore/en.php create mode 100644 modules/importerosc/ajax.php create mode 100755 modules/mailjet/ajax-mailjet.gif create mode 100755 modules/mailjet/ajax.js create mode 100755 modules/mailjet/ajax.php create mode 100755 modules/mailjet/config.xml create mode 100755 modules/mailjet/fr.php create mode 100755 modules/mailjet/logo-mailjet.jpg create mode 100755 modules/mailjet/logo.gif create mode 100755 modules/mailjet/mailjet.php create mode 100755 modules/mailjet/override/Message-mailjet.php create mode 100755 modules/mailjet/override/Message.php create mode 100644 modules/mondialrelay/docs/install.pdf create mode 100644 modules/mondialrelay/images/help.png delete mode 100644 modules/mondialrelay/jquery-1.4.4.min.js create mode 100644 modules/mondialrelay/js/jquery-1.6.4.min.js create mode 100755 modules/shoppingfluxexport/config.xml create mode 100755 modules/shoppingfluxexport/flux.php create mode 100644 modules/shoppingfluxexport/fr.php create mode 100755 modules/shoppingfluxexport/logo.gif create mode 100755 modules/shoppingfluxexport/shoppingfluxexport.php create mode 100644 modules/tntcarrier/carrier.jpg create mode 100644 modules/tntcarrier/classes/OrderInfoTnt.php create mode 100644 modules/tntcarrier/classes/PackageTnt.php create mode 100644 modules/tntcarrier/classes/TntWebService.php create mode 100644 modules/tntcarrier/classes/index.php create mode 100644 modules/tntcarrier/classes/serviceCache.php create mode 100644 modules/tntcarrier/config.xml create mode 100644 modules/tntcarrier/css/index.php create mode 100644 modules/tntcarrier/css/tntB2CRelaisColis.css create mode 100644 modules/tntcarrier/css/ui.dialog.css create mode 100644 modules/tntcarrier/css/ui.tabs.css create mode 100644 modules/tntcarrier/follow.php create mode 100644 modules/tntcarrier/fr.php create mode 100644 modules/tntcarrier/img/5-puce-choix-gris2.gif create mode 100644 modules/tntcarrier/img/Thumbs.db create mode 100644 modules/tntcarrier/img/bt-CodePostal-1.jpg create mode 100644 modules/tntcarrier/img/bt-CodePostal-2.jpg create mode 100644 modules/tntcarrier/img/bt-Continuer-1.jpg create mode 100644 modules/tntcarrier/img/bt-Continuer-2.jpg create mode 100644 modules/tntcarrier/img/bt-OK-1.jpg create mode 100644 modules/tntcarrier/img/bt-OK-2.jpg create mode 100644 modules/tntcarrier/img/bt-Retour.gif create mode 100644 modules/tntcarrier/img/close_icon_double.png create mode 100644 modules/tntcarrier/img/exception.gif create mode 100644 modules/tntcarrier/img/exception2.gif create mode 100644 modules/tntcarrier/img/google/Thumbs.db create mode 100644 modules/tntcarrier/img/google/agenceTnt.png create mode 100644 modules/tntcarrier/img/google/red-pushpin-s.png create mode 100644 modules/tntcarrier/img/google/red-pushpin.png create mode 100644 modules/tntcarrier/img/google/relaisColis.png create mode 100644 modules/tntcarrier/img/index.php create mode 100644 modules/tntcarrier/img/lg_tnt.gif create mode 100644 modules/tntcarrier/img/livreur.gif create mode 100644 modules/tntcarrier/img/logo-tnt-petit.jpg create mode 100644 modules/tntcarrier/img/logo_24_chezmoi.jpg create mode 100644 modules/tntcarrier/img/logo_24_relaiscolis.jpg create mode 100644 modules/tntcarrier/img/logo_24h_chezmoi_RVB.gif create mode 100644 modules/tntcarrier/img/logo_24h_relaiscolis_RVB.gif create mode 100644 modules/tntcarrier/img/logos_24.jpg create mode 100644 modules/tntcarrier/img/loupe.gif create mode 100644 modules/tntcarrier/img/notes.gif create mode 100644 modules/tntcarrier/img/picto-delai.gif create mode 100644 modules/tntcarrier/img/picto_localiser.png create mode 100644 modules/tntcarrier/img/tnt_logo.gif create mode 100644 modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_arrows_leftright.gif create mode 100644 modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_arrows_updown.gif create mode 100644 modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_close.gif create mode 100644 modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_doc.gif create mode 100644 modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_folder_closed.gif create mode 100644 modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_folder_open.gif create mode 100644 modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_minus.gif create mode 100644 modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_plus.gif create mode 100644 modules/tntcarrier/img/ui-dialog/217bc0_7x7_arrow_down.gif create mode 100644 modules/tntcarrier/img/ui-dialog/217bc0_7x7_arrow_left.gif create mode 100644 modules/tntcarrier/img/ui-dialog/217bc0_7x7_arrow_right.gif create mode 100644 modules/tntcarrier/img/ui-dialog/217bc0_7x7_arrow_up.gif create mode 100644 modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_arrows_leftright.gif create mode 100644 modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_arrows_updown.gif create mode 100644 modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_doc.gif create mode 100644 modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_minus.gif create mode 100644 modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_plus.gif create mode 100644 modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_resize_se.gif create mode 100644 modules/tntcarrier/img/ui-dialog/469bdd_7x7_arrow_down.gif create mode 100644 modules/tntcarrier/img/ui-dialog/469bdd_7x7_arrow_left.gif create mode 100644 modules/tntcarrier/img/ui-dialog/469bdd_7x7_arrow_right.gif create mode 100644 modules/tntcarrier/img/ui-dialog/469bdd_7x7_arrow_up.gif create mode 100644 modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_arrows_leftright.gif create mode 100644 modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_arrows_updown.gif create mode 100644 modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_close.gif create mode 100644 modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_doc.gif create mode 100644 modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_folder_closed.gif create mode 100644 modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_folder_open.gif create mode 100644 modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_minus.gif create mode 100644 modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_plus.gif create mode 100644 modules/tntcarrier/img/ui-dialog/6da8d5_7x7_arrow_down.gif create mode 100644 modules/tntcarrier/img/ui-dialog/6da8d5_7x7_arrow_left.gif create mode 100644 modules/tntcarrier/img/ui-dialog/6da8d5_7x7_arrow_right.gif create mode 100644 modules/tntcarrier/img/ui-dialog/6da8d5_7x7_arrow_up.gif create mode 100644 modules/tntcarrier/img/ui-dialog/Thumbs.db create mode 100644 modules/tntcarrier/img/ui-dialog/d0e5f5_40x100_textures_02_glass_75.png create mode 100644 modules/tntcarrier/img/ui-dialog/dfeffc_40x100_textures_02_glass_85.png create mode 100644 modules/tntcarrier/img/ui-dialog/f5f8f9_40x100_textures_06_inset_hard_100.png create mode 100644 modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_arrows_leftright.gif create mode 100644 modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_arrows_updown.gif create mode 100644 modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_close.gif create mode 100644 modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_doc.gif create mode 100644 modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_folder_closed.gif create mode 100644 modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_folder_open.gif create mode 100644 modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_minus.gif create mode 100644 modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_plus.gif create mode 100644 modules/tntcarrier/img/ui-dialog/f9bd01_7x7_arrow_down.gif create mode 100644 modules/tntcarrier/img/ui-dialog/f9bd01_7x7_arrow_left.gif create mode 100644 modules/tntcarrier/img/ui-dialog/f9bd01_7x7_arrow_right.gif create mode 100644 modules/tntcarrier/img/ui-dialog/f9bd01_7x7_arrow_up.gif create mode 100644 modules/tntcarrier/img/ui-dialog/fcfdfd_40x100_textures_06_inset_hard_100.png create mode 100644 modules/tntcarrier/index.php create mode 100644 modules/tntcarrier/js/index.php create mode 100644 modules/tntcarrier/js/jquery-ui.js create mode 100644 modules/tntcarrier/js/jquery.js create mode 100644 modules/tntcarrier/js/relaisColis.js create mode 100644 modules/tntcarrier/js/shipping.js create mode 100644 modules/tntcarrier/logo.gif create mode 100644 modules/tntcarrier/pdf/3012345000000006.pdf create mode 100644 modules/tntcarrier/pdf/7812345000000006.pdf create mode 100644 modules/tntcarrier/pdf/index.php create mode 100644 modules/tntcarrier/relaisColis/css/tntB2CRelaisColis.css create mode 100644 modules/tntcarrier/relaisColis/css/ui.dialog.css create mode 100644 modules/tntcarrier/relaisColis/css/ui.tabs.css create mode 100644 modules/tntcarrier/relaisColis/img/5-puce-choix-gris2.gif create mode 100644 modules/tntcarrier/relaisColis/img/Thumbs.db create mode 100644 modules/tntcarrier/relaisColis/img/bt-CodePostal-1.jpg create mode 100644 modules/tntcarrier/relaisColis/img/bt-CodePostal-2.jpg create mode 100644 modules/tntcarrier/relaisColis/img/bt-Continuer-1.jpg create mode 100644 modules/tntcarrier/relaisColis/img/bt-Continuer-2.jpg create mode 100644 modules/tntcarrier/relaisColis/img/bt-OK-1.jpg create mode 100644 modules/tntcarrier/relaisColis/img/bt-OK-2.jpg create mode 100644 modules/tntcarrier/relaisColis/img/bt-Retour.gif create mode 100644 modules/tntcarrier/relaisColis/img/close_icon_double.png create mode 100644 modules/tntcarrier/relaisColis/img/exception.gif create mode 100644 modules/tntcarrier/relaisColis/img/exception2.gif create mode 100644 modules/tntcarrier/relaisColis/img/google/Thumbs.db create mode 100644 modules/tntcarrier/relaisColis/img/google/agenceTnt.png create mode 100644 modules/tntcarrier/relaisColis/img/google/red-pushpin-s.png create mode 100644 modules/tntcarrier/relaisColis/img/google/red-pushpin.png create mode 100644 modules/tntcarrier/relaisColis/img/google/relaisColis.png create mode 100644 modules/tntcarrier/relaisColis/img/lg_tnt.gif create mode 100644 modules/tntcarrier/relaisColis/img/livreur.gif create mode 100644 modules/tntcarrier/relaisColis/img/logo-tnt-petit.jpg create mode 100644 modules/tntcarrier/relaisColis/img/logo_24_chezmoi.jpg create mode 100644 modules/tntcarrier/relaisColis/img/logo_24_relaiscolis.jpg create mode 100644 modules/tntcarrier/relaisColis/img/logo_24h_chezmoi_RVB.gif create mode 100644 modules/tntcarrier/relaisColis/img/logo_24h_relaiscolis_RVB.gif create mode 100644 modules/tntcarrier/relaisColis/img/logos_24.jpg create mode 100644 modules/tntcarrier/relaisColis/img/loupe.gif create mode 100644 modules/tntcarrier/relaisColis/img/notes.gif create mode 100644 modules/tntcarrier/relaisColis/img/picto-delai.gif create mode 100644 modules/tntcarrier/relaisColis/img/picto_localiser.png create mode 100644 modules/tntcarrier/relaisColis/img/tnt_logo.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_arrows_leftright.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_arrows_updown.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_close.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_doc.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_folder_closed.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_folder_open.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_minus.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_plus.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_7x7_arrow_down.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_7x7_arrow_left.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_7x7_arrow_right.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_7x7_arrow_up.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_arrows_leftright.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_arrows_updown.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_doc.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_minus.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_plus.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_resize_se.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_7x7_arrow_down.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_7x7_arrow_left.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_7x7_arrow_right.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_7x7_arrow_up.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_arrows_leftright.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_arrows_updown.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_close.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_doc.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_folder_closed.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_folder_open.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_minus.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_plus.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_7x7_arrow_down.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_7x7_arrow_left.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_7x7_arrow_right.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_7x7_arrow_up.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/Thumbs.db create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/d0e5f5_40x100_textures_02_glass_75.png create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/dfeffc_40x100_textures_02_glass_85.png create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/f5f8f9_40x100_textures_06_inset_hard_100.png create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_arrows_leftright.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_arrows_updown.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_close.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_doc.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_folder_closed.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_folder_open.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_minus.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_plus.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_7x7_arrow_down.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_7x7_arrow_left.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_7x7_arrow_right.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_7x7_arrow_up.gif create mode 100644 modules/tntcarrier/relaisColis/img/ui-dialog/fcfdfd_40x100_textures_06_inset_hard_100.png create mode 100644 modules/tntcarrier/relaisColis/index.php create mode 100644 modules/tntcarrier/relaisColis/js/jquery-ui.js create mode 100644 modules/tntcarrier/relaisColis/js/jquery.js create mode 100644 modules/tntcarrier/relaisColis/js/relaisColis.js create mode 100644 modules/tntcarrier/relaisColis/postRelaisData.php create mode 100644 modules/tntcarrier/relaisColis/relaisColis.php create mode 100644 modules/tntcarrier/relaisColis/tntRelais.php create mode 100644 modules/tntcarrier/serviceBase.xml create mode 100644 modules/tntcarrier/sql-install.php create mode 100644 modules/tntcarrier/sql-uninstall.php create mode 100644 modules/tntcarrier/tntGetDepot.php create mode 100644 modules/tntcarrier/tntcarrier.php create mode 100644 modules/tntcarrier/tpl/accountForm.tpl create mode 100644 modules/tntcarrier/tpl/country.tpl create mode 100644 modules/tntcarrier/tpl/countryForm.tpl create mode 100644 modules/tntcarrier/tpl/follow.tpl create mode 100644 modules/tntcarrier/tpl/formerror.tpl create mode 100644 modules/tntcarrier/tpl/index.php create mode 100644 modules/tntcarrier/tpl/main.tpl create mode 100644 modules/tntcarrier/tpl/relaisColis.tpl create mode 100644 modules/tntcarrier/tpl/service.tpl create mode 100644 modules/tntcarrier/tpl/serviceForm.tpl create mode 100644 modules/tntcarrier/tpl/shippingForm.tpl create mode 100644 modules/tntcarrier/tpl/shippingNumber.tpl create mode 100644 modules/tntcarrier/tpl/waitingFollow.tpl diff --git a/admin-dev/ajax.php b/admin-dev/ajax.php index 95a11d3c1..abe23a12e 100644 --- a/admin-dev/ajax.php +++ b/admin-dev/ajax.php @@ -557,6 +557,11 @@ if (Tools::isSubmit('helpAccess')) if (Tools::isSubmit('getHookableList')) { + /* PrestaShop demo mode */ + if (_PS_MODE_DEMO_) + die('{"hasError" : true, "errors" : ["Live Edit : This functionnality has been disabled"]}'); + /* PrestaShop demo mode*/ + if (!strlen(Tools::getValue('hooks_list'))) die('{"hasError" : true, "errors" : ["Live Edit : no module on this page"]}'); @@ -589,6 +594,10 @@ if (Tools::isSubmit('getHookableList')) if (Tools::isSubmit('getHookableModuleList')) { + /* PrestaShop demo mode */ + if (_PS_MODE_DEMO_) + die('{"hasError" : true, "errors" : ["Live Edit : This functionnality has been disabled"]}'); + /* PrestaShop demo mode*/ include('../init.php'); $hook_name = Tools::getValue('hook'); @@ -609,6 +618,11 @@ if (Tools::isSubmit('getHookableModuleList')) if (Tools::isSubmit('saveHook')) { + /* PrestaShop demo mode */ + if (_PS_MODE_DEMO_) + die('{"hasError" : true, "errors" : ["Live Edit : This functionnality has been disabled"]}'); + /* PrestaShop demo mode*/ + $hooks_list = explode(',', Tools::getValue('hooks_list')); $id_shop = (int)Tools::getValue('id_shop'); if ($id_shop) @@ -627,10 +641,15 @@ if (Tools::isSubmit('saveHook')) $hookedModules = explode(',', Tools::getValue($hook)); $i = 1; $value = ''; + $ids = array(); foreach ($hookedModules as $module) { - $ids = explode('_', $module); - $value .= '('.(int)$ids[1].', '.$id_shop.', (SELECT id_hook FROM '._DB_PREFIX_.'hook WHERE `name` = \''.pSQL($hook).'\' LIMIT 1), '.(int)$i.'),'; + $id = explode('_', $module); + if (!in_array($id[1], $ids)) + { + $ids[] = $id[1]; + $value .= '('.(int)$id[1].', (SELECT id_hook FROM `'._DB_PREFIX_.'hook` WHERE `name` = \''.pSQL($hook).'\' LIMIT 0, 1), '.(int)$i.'),'; + } $i++; } $value = rtrim($value, ','); diff --git a/admin-dev/ajaxfilemanager/ajax_save_text.php b/admin-dev/ajaxfilemanager/ajax_save_text.php index dd547366c..cde34f1a7 100755 --- a/admin-dev/ajaxfilemanager/ajax_save_text.php +++ b/admin-dev/ajaxfilemanager/ajax_save_text.php @@ -84,8 +84,8 @@ $error = TXT_UNKNOWN_REQUEST; } echo "{"; - echo "error:'" . $error . "',\n"; - echo "path:'" . $path . "'"; + echo "error:'" . Tools::safeOutput($error) . "',\n"; + echo "path:'" . Tools::safeOutput($path) . "'"; echo "}"; -?> \ No newline at end of file +?> diff --git a/admin-dev/init.php b/admin-dev/init.php index d054fbb81..937f585f8 100644 --- a/admin-dev/init.php +++ b/admin-dev/init.php @@ -96,4 +96,4 @@ if ($context->cookie->shopContext) if (count($split) == 2 && $split[0] == 's') $shopID = (int)$split[1]; } -$context->shop = new Shop($shopID); +$context->shop = new Shop($shopID); \ No newline at end of file diff --git a/admin-dev/tabs/AdminUpgrade.php b/admin-dev/tabs/AdminUpgrade.php index 05b769ac5..f6bd55a46 100644 --- a/admin-dev/tabs/AdminUpgrade.php +++ b/admin-dev/tabs/AdminUpgrade.php @@ -433,7 +433,7 @@ class AdminUpgrade extends AdminPreferences else { $this->next = 'download'; - $this->nextDesc = $this->l('Shop desactivated. Now downloading (this can takes some times )...'); + $this->nextDesc = $this->l('Shop deactivated. Now downloading (this can takes some times )...'); } } diff --git a/classes/Address.php b/classes/Address.php index 9b2a8f974..395c407ee 100644 --- a/classes/Address.php +++ b/classes/Address.php @@ -135,7 +135,8 @@ class AddressCore extends ObjectModel /* Get and cache address country name */ if ($this->id) { - $result = Db::getInstance()->getRow('SELECT `name` FROM `'._DB_PREFIX_.'country_lang` + $result = Db::getInstance()->getRow(' + SELECT `name` FROM `'._DB_PREFIX_.'country_lang` WHERE `id_country` = '.(int)$this->id_country.' AND `id_lang` = '.($id_lang ? (int)$id_lang : Configuration::get('PS_LANG_DEFAULT'))); $this->country = $result['name']; diff --git a/classes/AdminTab.php b/classes/AdminTab.php index 23b273101..0336d8acc 100644 --- a/classes/AdminTab.php +++ b/classes/AdminTab.php @@ -483,8 +483,8 @@ abstract class AdminTabCore $this->_childValidation(); /* Checking for fields validity */ - foreach ($rules['validate'] as $field => $function) - if (($value = Tools::getValue($field)) !== false && ($field != 'passwd')) + foreach ($rules['validate'] AS $field => $function) + if (($value = Tools::getValue($field)) !== false AND !empty($value) AND ($field != 'passwd')) if (!Validate::$function($value)) $this->_errors[] = $this->l('the field').' '.call_user_func(array($className, 'displayFieldName'), $field, $className).' '.$this->l('is invalid'); diff --git a/classes/CMS.php b/classes/CMS.php index f63e7a272..a8df4d8b0 100644 --- a/classes/CMS.php +++ b/classes/CMS.php @@ -45,6 +45,11 @@ class CMSCore extends ObjectModel protected $table = 'cms'; protected $identifier = 'id_cms'; + protected $webserviceParameters = array( + 'objectNodeName' => 'content', + 'objectsNodeName' => 'content_management_system', + ); + public function getFields() { $this->validateFields(); diff --git a/classes/Category.php b/classes/Category.php index 24a6e84f8..5091c635a 100644 --- a/classes/Category.php +++ b/classes/Category.php @@ -177,7 +177,7 @@ class CategoryCore extends ObjectModel public function add($autodate = true, $nullValues = false) { $this->position = self::getLastPosition((int)$this->id_parent); - if (!isset($this->level_depth) || $this->level_depth != 0) + if (!isset($this->level_depth)) $this->level_depth = $this->calcLevelDepth(); $ret = parent::add($autodate); if (!isset($this->doNotRegenerateNTree) || !$this->doNotRegenerateNTree) diff --git a/classes/Chart.php b/classes/Chart.php index f6f3c0f01..60b2e29d6 100644 --- a/classes/Chart.php +++ b/classes/Chart.php @@ -108,7 +108,7 @@ class ChartCore $options = 'xaxis:{mode:"time",timeformat:\''.addslashes($this->format).'\',min:'.$this->from.'000,max:'.$this->to.'000}'; if ($this->granularity == 'd') foreach ($this->curves as $curve) - for ($i = $this->from; $i <= $this->to; $i += 86400) + for ($i = $this->from; $i <= $this->to; $i = strtotime('+1 day', $i)) if (!$curve->getPoint($i)) $curve->setPoint($i, 0); } diff --git a/classes/CompareProduct.php b/classes/CompareProduct.php index ba63fef51..98a323a29 100644 --- a/classes/CompareProduct.php +++ b/classes/CompareProduct.php @@ -1,6 +1,6 @@ 'isUnsignedInt', - 'id_guest' => 'isUnsignedInt', + 'id_compare' => 'isUnsignedInt', 'id_customer' => 'isUnsignedInt' ); - - protected $table = 'compare_product'; - - protected $identifier = 'id_compare_product'; - - - /** - * Get all compare products of the guest - * @param int $id_guest - * @return array - */ - public static function getGuestCompareProducts($id_guest) - { - $results = Db::getInstance()->executeS(' - SELECT DISTINCT `id_product` - FROM `'._DB_PREFIX_.'compare_product` - WHERE `id_guest` = '.(int)($id_guest)); - - $compareProducts = null; - - if ($results) - foreach($results as $result) - $compareProducts[] = $result['id_product']; - - return $compareProducts; - } - - - /** - * Add a compare product for the guest - * @param int $id_guest, int $id_product - * @return boolean - */ - public static function addGuestCompareProduct($id_guest, $id_product) - { - return Db::getInstance()->execute(' - INSERT INTO `'._DB_PREFIX_.'compare_product` (`id_product`, `id_guest`, `id_customer`, `date_add`, `date_upd`) - VALUES ('.(int)($id_product).', '.(int)($id_guest).', 0, NOW(), NOW()) - '); - } - - - /** - * Remove a compare product for the guest - * @param int $id_guest, int $id_product - * @return boolean - */ - public static function removeGuestCompareProduct($id_guest, $id_product) - { - return Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'compare_product` WHERE `id_guest` = '.(int)($id_guest).' AND `id_product` = '.(int)($id_product)); - } - - - /** - * Get the number of compare products of the guest - * @param int $id_guest - * @return int - */ - public static function getGuestNumberProducts($id_guest) - { - return (int)(Db::getInstance()->getValue(' - SELECT count(`id_compare_product`) - FROM `'._DB_PREFIX_.'compare_product` - WHERE `id_guest` = '.(int)($id_guest)));; - } - + protected $table = 'compare'; + + protected $identifier = 'id_compare'; + + /** * Get all comapare products of the customer * @param int $id_customer * @return array */ - public static function getCustomerCompareProducts($id_customer) + public static function getCompareProducts($id_compare) { $results = Db::getInstance()->executeS(' SELECT DISTINCT `id_product` - FROM `'._DB_PREFIX_.'compare_product` - WHERE `id_customer` = '.(int)($id_customer)); - + FROM `'._DB_PREFIX_.'compare` c + LEFT JOIN `'._DB_PREFIX_.'compare_product` cp ON (cp.`id_compare` = c.`id_compare`) + WHERE cp.`id_compare` = '.(int)($id_compare)); + $compareProducts = null; - + if ($results) foreach($results as $result) $compareProducts[] = $result['id_product']; - - return $compareProducts; + + return $compareProducts; } - - + + /** * Add a compare product for the customer * @param int $id_customer, int $id_product * @return boolean */ - public static function addCustomerCompareProduct($id_customer, $id_product) + public static function addCompareProduct($id_compare, $id_product) { + if (!$id_compare) + { + $id_customer = false; + if (Context::getContext()->customer) + $id_customer = Context::getContext()->customer->id; + $sql = Db::getInstance()->execute(' + INSERT INTO `'._DB_PREFIX_.'compare` (`id_compare`, `id_customer`) VALUES (NULL, "'.($id_customer ? $id_customer: '0').'")'); + if ($sql) + { + $id_compare = Db::getInstance()->getValue('SELECT MAX(`id_compare`) FROM `'._DB_PREFIX_.'compare`'); + $cookie->id_compare = $id_compare; + } + } return Db::getInstance()->execute(' - INSERT INTO `'._DB_PREFIX_.'compare_product` (`id_product`, `id_guest`, `id_customer`, `date_add`, `date_upd`) - VALUES ('.(int)($id_product).', 0, '.(int)($id_customer).', NOW(), NOW())'); + INSERT INTO `'._DB_PREFIX_.'compare_product` (`id_compare`, `id_product`, `date_add`, `date_upd`) + VALUES ('.(int)($id_compare).', '.(int)($id_product).', NOW(), NOW())'); } - - + /** * Remove a compare product for the customer - * @param int $id_customer, int $id_product + * @param int $id_compare, int $id_product * @return boolean */ - public static function removeCustomerCompareProduct($id_customer, $id_product) + public static function removeCompareProduct($id_compare, $id_product) { - return Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'compare_product` WHERE `id_customer` = '.(int)($id_customer).' AND `id_product` = '.(int)($id_product)); - } - - + return Db::getInstance()->execute(' + DELETE cp FROM `'._DB_PREFIX_.'compare_product` cp, `'._DB_PREFIX_.'compare` c + WHERE cp.`id_compare`=c.`id_compare` + AND cp.`id_product` = '.(int)$id_product.' + AND c.`id_compare` = '.(int)$id_compare); + } + /** * Get the number of compare products of the customer - * @param int $id_customer + * @param int $id_compare * @return int */ - public static function getCustomerNumberProducts($id_customer) + public static function getNumberProducts($id_compare) { return (int)(Db::getInstance()->getValue(' - SELECT count(`id_compare_product`) + SELECT count(`id_compare`) FROM `'._DB_PREFIX_.'compare_product` - WHERE `id_customer` = '.(int)($id_customer))); + WHERE `id_compare` = '.(int)($id_compare))); } - - + + /** * Clean entries which are older than the period * @param string $period @@ -191,12 +140,25 @@ class CompareProductCore extends ObjectModel $interval = '1 YEAR'; else return; - + if ($interval != null) { Db::getInstance()->execute(' - DELETE FROM `'._DB_PREFIX_.'compare_product` - WHERE date_upd < DATE_SUB(NOW(), INTERVAL '.pSQL($interval).')'); + DELETE cp, c FROM `'._DB_PREFIX_.'compare_product` cp, `'._DB_PREFIX_.'compare` c + WHERE cp.date_upd < DATE_SUB(NOW(), INTERVAL 1 WEEK) AND c.`id_compare`=cp.`id_compare`'); } } + + /** + * Get the id_compare by id_customer + * @param integer $id_customer + * @return integer $id_compare + */ + public static function getIdCompareByIdCustomer($id_customer) + { + return (int)Db::getInstance()->getValue(' + SELECT `id_compare` + FROM `'._DB_PREFIX_.'compare` + WHERE `id_customer`= '.(int)$id_customer); + } } \ No newline at end of file diff --git a/classes/Cookie.php b/classes/Cookie.php index ada4f2042..09d6fbfd6 100644 --- a/classes/Cookie.php +++ b/classes/Cookie.php @@ -220,6 +220,7 @@ class CookieCore */ public function mylogout() { + unset($this->_content['id_compare']); unset($this->_content['id_customer']); unset($this->_content['id_guest']); unset($this->_content['is_guest']); diff --git a/classes/FrontController.php b/classes/FrontController.php index 80db63d7f..df3424bf1 100755 --- a/classes/FrontController.php +++ b/classes/FrontController.php @@ -614,6 +614,8 @@ class FrontControllerCore extends Controller $this->context = Context::getContext(); $nArray = (int)(Configuration::get('PS_PRODUCTS_PER_PAGE')) != 10 ? array((int)(Configuration::get('PS_PRODUCTS_PER_PAGE')), 10, 20, 50) : array(10, 20, 50); + // Clean duplicate values + $nArray = array_unique($nArray); asort($nArray); $this->n = abs((int)(Tools::getValue('n', ((isset($this->context->cookie->nb_item_per_page) AND $this->context->cookie->nb_item_per_page >= 10) ? $this->context->cookie->nb_item_per_page : (int)(Configuration::get('PS_PRODUCTS_PER_PAGE')))))); $this->p = abs((int)(Tools::getValue('p', 1))); diff --git a/classes/Group.php b/classes/Group.php index 8af9ef41b..42ae01e15 100644 --- a/classes/Group.php +++ b/classes/Group.php @@ -112,12 +112,12 @@ class GroupCore extends ObjectModel public static function getReduction($id_customer = null) { - if (!isset(self::$cache_reduction['customer'][(int)$id_customer])) - self::$cache_reduction['customer'][(int)$id_customer] = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue(' - SELECT `reduction` - FROM `'._DB_PREFIX_.'group` - WHERE `id_group` = '.((int)$id_customer ? Customer::getDefaultGroupId((int)$id_customer) : (int)Configuration::get('PS_CUSTOMER_GROUP'))); - return self::$cache_reduction['customer'][(int)$id_customer]; + if (!isset(self::$_cacheReduction['customer'][(int)$id_customer])) + { + $id_group = $id_customer ? Customer::getDefaultGroupId((int)$id_customer) : (int)Configuration::get('PS_CUSTOMER_GROUP'); + self::$_cacheReduction['customer'][(int)$id_customer] = Group::getReductionByIdGroup($id_group); + } + return self::$_cacheReduction['customer'][(int)$id_customer]; } public static function getReductionByIdGroup($id_group) @@ -256,7 +256,7 @@ class GroupCore extends ObjectModel * @param integer authorized */ public static function addModulesRestrictions($id_group, $modules, $authorized) - { + { if (!is_array($modules) AND !empty($modules)) return false; else diff --git a/classes/GroupReduction.php b/classes/GroupReduction.php index a3c05dfca..b301b9b0d 100644 --- a/classes/GroupReduction.php +++ b/classes/GroupReduction.php @@ -170,7 +170,7 @@ class GroupReductionCore extends ObjectModel public static function setProductReduction($id_product, $id_group, $id_category, $reduction) { $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' - SELECT pgr.`id_product`, pgr.`id_group`, pgr.`reduction` + SELECT pgr.`id_product`, pgr.`id_group`, pgr.`reduction` FROM `'._DB_PREFIX_.'product_group_reduction_cache` pgr WHERE pgr.`id_product` = '.(int)$id_product ); @@ -197,7 +197,7 @@ class GroupReductionCore extends ObjectModel public static function duplicateReduction($id_product_old, $id_product) { $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' - SELECT pgr.`id_product`, pgr.`id_group`, pgr.`reduction` + SELECT pgr.`id_product`, pgr.`id_group`, pgr.`reduction` FROM `'._DB_PREFIX_.'product_group_reduction_cache` pgr WHERE pgr.`id_product` = '.(int)$id_product_old ); @@ -216,4 +216,4 @@ class GroupReductionCore extends ObjectModel return false; return true; } -} \ No newline at end of file +} diff --git a/classes/ObjectModel.php b/classes/ObjectModel.php index 2f6b6a86b..9380368aa 100644 --- a/classes/ObjectModel.php +++ b/classes/ObjectModel.php @@ -148,8 +148,7 @@ abstract class ObjectModelCore $this->id = (int)($id); foreach ($result AS $key => $value) if (key_exists($key, $this)) - // Todo: stripslashes() MUST BE removed in 1.4.6 and later, but is kept in 1.4.5 for a compatibility issue - $this->{$key} = stripslashes($value); + $this->{$key} = $value; if (!$id_lang AND method_exists($this, 'getTranslationsFieldsChild')) { diff --git a/classes/PDF.php b/classes/PDF.php index a3586eebd..c1970cd11 100644 --- a/classes/PDF.php +++ b/classes/PDF.php @@ -631,6 +631,22 @@ class PDFCore extends PDF_PageGroupCore $pdf->Ln(15); $pdf->ProdTab((self::$delivery ? true : '')); + + + /* Canada */ + $taxable_address = new Address((int)self::$order->{Configuration::get('PS_TAX_ADDRESS_TYPE')}); + if (!self::$delivery && strtoupper(Country::getIsoById((int)$taxable_address->id_country)) == 'CA') + { + $pdf->Ln(15); + $taxToDisplay = Db::getInstance()->ExecuteS('SELECT * FROM '._DB_PREFIX_.'order_tax WHERE id_order = '.(int)self::$order->id); + foreach ($taxToDisplay AS $t) + { + $pdf->Cell(0, 6, utf8_decode($t['tax_name']).' ('.number_format($t['tax_rate'], 2, '.', '').'%) '.self::convertSign(Tools::displayPrice($t['amount'], self::$currency, true)), 0, 0, 'R'); + $pdf->Ln(5); + } + } + /* End */ + /* Exit if delivery */ if (!self::$delivery) { @@ -1055,8 +1071,10 @@ class PDFCore extends PDF_PageGroupCore */ public function TaxTab(&$priceBreakDown) { + $taxable_address = new Address((int)self::$order->{Configuration::get('PS_TAX_ADDRESS_TYPE')}); + if (strtoupper(Country::getIsoById((int)$taxable_address->id_country)) == 'CA') + return; - $invoiceAddress = new Address(self::$order->id_address_invoice); if (Configuration::get('VATNUMBER_MANAGEMENT') AND !empty($invoiceAddress->vat_number) AND $invoiceAddress->id_country != Configuration::get('VATNUMBER_COUNTRY')) { $this->Ln(); diff --git a/classes/PaymentModule.php b/classes/PaymentModule.php index ef8c0d1b1..2e8571e81 100644 --- a/classes/PaymentModule.php +++ b/classes/PaymentModule.php @@ -34,7 +34,7 @@ abstract class PaymentModuleCore extends Module /* @var object PaymentCC */ public $pcc = null; - + public function install() { if (!parent::install()) @@ -78,14 +78,14 @@ abstract class PaymentModuleCore extends Module return false; return parent::uninstall(); } - + public function __construct() { $this->pcc = new PaymentCC(); - + parent::__construct(); } - + public function __destruct() { unset($this->pcc); @@ -101,12 +101,12 @@ abstract class PaymentModuleCore extends Module * @param string $paymentMethod Payment method (eg. 'Credit card') * @param string $message Message to attach to order */ - public function validateOrder($id_cart, $id_order_state, $amountPaid, $paymentMethod = 'Unknown', - $message = NULL, $extraVars = array(), $currency_special = NULL, $dont_touch_amount = false, + public function validateOrder($id_cart, $id_order_state, $amountPaid, $paymentMethod = 'Unknown', + $message = NULL, $extraVars = array(), $currency_special = NULL, $dont_touch_amount = false, $secure_key = false, Shop $shop = null) { $cart = new Cart((int)($id_cart)); - + if (!$shop) $shop = Context::getContext()->shop; // Does order already exists ? @@ -114,7 +114,7 @@ abstract class PaymentModuleCore extends Module { if ($secure_key !== false AND $secure_key != $cart->secure_key) die(Tools::displayError()); - + // For each package, generate an order $delivery_option_list = $cart->getDeliveryOptionList(); $package_list = $cart->getPackageList(); @@ -128,27 +128,27 @@ abstract class PaymentModuleCore extends Module $cart_delivery_option[$id_address] = $key; break; } - + $order_list = array(); $order_detail_list = array(); $reference = Order::generateReference(); $this->currentOrderReference = $reference; - + $id_currency = $currency_special ? (int)($currency_special) : (int)($cart->id_currency); $currency = new Currency($id_currency); - + $this->context->cart->order_reference = $reference; - + $orderCreationFailed = false; $cart_total_paid = (float)Tools::ps_round((float)($cart->getOrderTotal(true, Cart::BOTH)), 2); - + if ($cart->orderExists()) { $errorMessage = Tools::displayError('An order has already been placed using this cart.'); Logger::addLog($errorMessage, 4, '0000001', 'Cart', intval($cart->id)); die($errorMessage); } - + foreach ($cart_delivery_option as $id_address => $key_carriers) foreach ($delivery_option_list[$id_address][$key_carriers]['carrier_list'] as $id_carrier => $data) foreach ($data['package_list'] as $id_package) @@ -166,10 +166,10 @@ abstract class PaymentModuleCore extends Module $order->id_warehouse = $package_list[$id_address][$id_package]['id_warehouse']; $order->id_cart = (int)($cart->id); $order->reference = $reference; - + $order->id_shop = (int)($shop->getID() ? $shop->getID() : $cart->id_shop); $order->id_group_shop = (int)($shop->getID() ? $shop->getGroupID() : $cart->id_group_shop); - + $customer = new Customer((int)($order->id_customer)); $order->secure_key = ($secure_key ? pSQL($secure_key) : pSQL($customer->secure_key)); $order->payment = $paymentMethod; @@ -191,18 +191,18 @@ abstract class PaymentModuleCore extends Module $order->total_shipping = (float)$cart->getPackageShippingCost((int)$id_carrier, true, null, $product_list, $id_carrier); $order->total_shipping_tax_excl = (float)$cart->getPackageShippingCost((int)$id_carrier, false, null, $product_list, $id_carrier); $order->total_shipping_tax_incl = (float)$cart->getPackageShippingCost((int)$id_carrier, true, null, $product_list, $id_carrier); - + if (Validate::isLoadedObject($carrier)) $order->carrier_tax_rate = $carrier->getTaxesRate(new Address($cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')})); - + $order->total_wrapping = (float)abs($cart->getOrderTotal(true, Cart::ONLY_WRAPPING, $product_list, $id_carrier)); $order->total_wrapping_tax_excl = (float)abs($cart->getOrderTotal(false, Cart::ONLY_WRAPPING, $product_list, $id_carrier)); $order->total_wrapping_tax_incl = (float)abs($cart->getOrderTotal(true, Cart::ONLY_WRAPPING, $product_list, $id_carrier)); - + $order->total_paid = (float)Tools::ps_round((float)($cart->getOrderTotal(true, Cart::BOTH, $product_list, $id_carrier)), 2); $order->total_paid_tax_excl = (float)Tools::ps_round((float)($cart->getOrderTotal(false, Cart::BOTH, $product_list, $id_carrier)), 2); $order->total_paid_tax_incl = (float)Tools::ps_round((float)($cart->getOrderTotal(true, Cart::BOTH, $product_list, $id_carrier)), 2); - + $order->invoice_date = '0000-00-00 00:00:00'; $order->delivery_date = '0000-00-00 00:00:00'; // Amount paid by customer is not the right one -> Status = payment error @@ -211,12 +211,12 @@ abstract class PaymentModuleCore extends Module // We use number_format in order to compare two string if (number_format($cart_total_paid, 2) != number_format($order->total_paid_real, 2)) $id_order_state = Configuration::get('PS_OS_ERROR'); - + // Creating order $result = $order->add(); $order_list[] = $order; - + // Insert new Order detail list using cart for the current order $order_detail = new OrderDetail(null, null, $this->context); $order_detail->createList($order, $cart, $id_order_state, $product_list); @@ -249,17 +249,109 @@ abstract class PaymentModuleCore extends Module // Insert new Order detail list using cart for the current order //$orderDetail = new OrderDetail(null, null, $this->context); //$orderDetail->createList($order, $cart, $id_order_state); - + //$this->addPCC($order->id, $order->id_currency, $amountPaid); - + // Construct order detail table for the email $productsList = ''; $products = $cart->getProducts(); + + $storeAllTaxes = array(); + foreach ($products AS $key => $product) { $price = Product::getPriceStatic((int)($product['id_product']), false, ($product['id_product_attribute'] ? (int)($product['id_product_attribute']) : NULL), 6, NULL, false, true, $product['cart_quantity'], false, (int)($order->id_customer), (int)($order->id_cart), (int)($order->{Configuration::get('PS_TAX_ADDRESS_TYPE')})); $price_wt = Product::getPriceStatic((int)($product['id_product']), true, ($product['id_product_attribute'] ? (int)($product['id_product_attribute']) : NULL), 2, NULL, false, true, $product['cart_quantity'], false, (int)($order->id_customer), (int)($order->id_cart), (int)($order->{Configuration::get('PS_TAX_ADDRESS_TYPE')})); - + + /* Store tax info */ + $id_country = (int)Country::getDefaultCountryId(); + $id_state = 0; + $id_county = 0; + $rate = 0; + $id_address = $cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')}; + $address_infos = Address::getCountryAndState($id_address); + if ($address_infos['id_country']) + { + $id_country = (int)($address_infos['id_country']); + $id_state = (int)$address_infos['id_state']; + $id_county = (int)County::getIdCountyByZipCode($address_infos['id_state'], $address_infos['postcode']); + } + $allTaxes = TaxRulesGroup::getTaxes((int)Product::getIdTaxRulesGroupByIdProduct((int)$product['id_product']), $id_country, $id_state, $id_county); + $nTax = 0; + foreach ($allTaxes AS $res) + { + if (!isset($storeAllTaxes[$res->id])) + $storeAllTaxes[$res->id] = array(); + $storeAllTaxes[$res->id]['name'] = $res->name[(int)$order->id_lang]; + $storeAllTaxes[$res->id]['rate'] = $res->rate; + + if (!$nTax++) + $storeAllTaxes[$res->id]['amount'] = ($price * (1 + ($res->rate * 0.01))) - $price; + else + { + $priceTmp = $price_wt / (1 + ($res->rate * 0.01)); + $storeAllTaxes[$res->id]['amount'] = $price_wt - $priceTmp; + } + } + /* End */ + + // Add some informations for virtual products + $deadline = '0000-00-00 00:00:00'; + $download_hash = NULL; + if ($id_product_download = ProductDownload::getIdFromIdProduct((int)($product['id_product']))) + { + $productDownload = new ProductDownload((int)($id_product_download)); + $deadline = $productDownload->getDeadLine(); + $download_hash = $productDownload->getHash(); + } + + // Exclude VAT + if (Tax::excludeTaxeOption()) + { + $product['tax'] = 0; + $product['rate'] = 0; + $tax_rate = 0; + } + else + $tax_rate = Tax::getProductTaxRate((int)($product['id_product']), $cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')}); + + $ecotaxTaxRate = 0; + if (!empty($product['ecotax'])) + $ecotaxTaxRate = Tax::getProductEcotaxRate($order->{Configuration::get('PS_TAX_ADDRESS_TYPE')}); + + $product_price = (float)Product::getPriceStatic((int)($product['id_product']), false, ($product['id_product_attribute'] ? (int)($product['id_product_attribute']) : NULL), (Product::getTaxCalculationMethod((int)($order->id_customer)) == PS_TAX_EXC ? 2 : 6), NULL, false, false, $product['cart_quantity'], false, (int)($order->id_customer), (int)($order->id_cart), (int)($order->{Configuration::get('PS_TAX_ADDRESS_TYPE')}), $specificPrice, false, false); + + $group_reduction = (float)GroupReduction::getValueForProduct((int)$product['id_product'], $customer->id_default_group) * 100; + if (!$group_reduction) + $group_reduction = Group::getReduction((int)$order->id_customer); + + $quantityDiscount = SpecificPrice::getQuantityDiscount((int)$product['id_product'], Shop::getCurrentShop(), (int)$cart->id_currency, (int)$vat_address->id_country, (int)$customer->id_default_group, (int)$product['cart_quantity']); + $unitPrice = Product::getPriceStatic((int)$product['id_product'], true, ($product['id_product_attribute'] ? intval($product['id_product_attribute']) : NULL), 2, NULL, false, true, 1, false, (int)$order->id_customer, NULL, (int)$order->{Configuration::get('PS_TAX_ADDRESS_TYPE')}); + $quantityDiscountValue = $quantityDiscount ? ((Product::getTaxCalculationMethod((int)$order->id_customer) == PS_TAX_EXC ? Tools::ps_round($unitPrice, 2) : $unitPrice) - $quantityDiscount['price'] * (1 + $tax_rate / 100)) : 0.00; + $query .= '('.(int)($order->id).', + '.(int)($product['id_product']).', + '.(isset($product['id_product_attribute']) ? (int)($product['id_product_attribute']) : 'NULL').', + \''.pSQL($product['name'].((isset($product['attributes']) AND $product['attributes'] != NULL) ? ' - '.$product['attributes'] : '')).'\', + '.(int)($product['cart_quantity']).', + '.$quantityInStock.', + '.$product_price.', + '.(float)(($specificPrice AND $specificPrice['reduction_type'] == 'percentage') ? $specificPrice['reduction'] * 100 : 0.00).', + '.(float)(($specificPrice AND $specificPrice['reduction_type'] == 'amount') ? (!$specificPrice['id_currency'] ? Tools::convertPrice($specificPrice['reduction'], $order->id_currency) : $specificPrice['reduction']) : 0.00).', + '.$group_reduction.', + '.$quantityDiscountValue.', + '.(empty($product['ean13']) ? 'NULL' : '\''.pSQL($product['ean13']).'\'').', + '.(empty($product['upc']) ? 'NULL' : '\''.pSQL($product['upc']).'\'').', + '.(empty($product['reference']) ? 'NULL' : '\''.pSQL($product['reference']).'\'').', + '.(empty($product['supplier_reference']) ? 'NULL' : '\''.pSQL($product['supplier_reference']).'\'').', + '.(float)($product['id_product_attribute'] ? $product['weight_attribute'] : $product['weight']).', + \''.(empty($tax_rate) ? '' : pSQL($product['tax'])).'\', + '.(float)($tax_rate).', + '.(float)Tools::convertPrice(floatval($product['ecotax']), intval($order->id_currency)).', + '.(float)$ecotaxTaxRate.', + '.(($specificPrice AND $specificPrice['from_quantity'] > 1) ? 1 : 0).', + \''.pSQL($deadline).'\', + \''.pSQL($download_hash).'\'),'; + $customizationQuantity = 0; if (isset($customizedDatas[$product['id_product']][$product['id_product_attribute']])) { @@ -269,15 +361,15 @@ abstract class PaymentModuleCore extends Module if (isset($customization['datas'][Product::CUSTOMIZE_TEXTFIELD])) foreach ($customization['datas'][Product::CUSTOMIZE_TEXTFIELD] AS $text) $customizationText .= $text['name'].':'.' '.$text['value'].'
'; - + if (isset($customization['datas'][Product::CUSTOMIZE_FILE])) $customizationText .= sizeof($customization['datas'][Product::CUSTOMIZE_FILE]) .' '. Tools::displayError('image(s)').'
'; - + $customizationText .= '---
'; } - + $customizationText = rtrim($customizationText, '---
'); - + $customizationQuantity = (int)($product['customizationQuantityTotal']); $productsList .= ' @@ -288,7 +380,7 @@ abstract class PaymentModuleCore extends Module '.Tools::displayPrice($customizationQuantity * (Product::getTaxCalculationMethod() == PS_TAX_EXC ? $price : $price_wt), $currency, false).' '; } - + if (!$customizationQuantity OR (int)$product['cart_quantity'] > $customizationQuantity) $productsList .= ' @@ -299,11 +391,46 @@ abstract class PaymentModuleCore extends Module '.Tools::displayPrice(((int)($product['cart_quantity']) - $customizationQuantity) * (Product::getTaxCalculationMethod() == PS_TAX_EXC ? $price : $price_wt), $currency, false).' '; } // end foreach ($products) - - $cartRulesList = ''; - $result = $cart->getCartRules(); - $cartRules = ObjectModel::hydrateCollection('CartRule', $result, (int)$order->id_lang); - foreach ($cartRules as $cartRule) + + + /* Add carrier tax */ + $shippingCostTaxExcl = $cart->getOrderShippingCost((int)$order->id_carrier, false); + $allTaxes = TaxRulesGroup::getTaxes((int)Carrier::getIdTaxRulesGroupByIdCarrier((int)$order->id_carrier), $id_country, $id_state, $id_county); + $nTax = 0; + + foreach ($allTaxes AS $res) + { + if (!isset($res->id)) + continue; + + if (!isset($storeAllTaxes[$res->id])) + $storeAllTaxes[$res->id] = array(); + if (!isset($storeAllTaxes[$res->id]['amount'])) + $storeAllTaxes[$res->id]['amount'] = 0; + $storeAllTaxes[$res->id]['name'] = $res->name[(int)$order->id_lang]; + $storeAllTaxes[$res->id]['rate'] = $res->rate; + + if (!$nTax++) + $storeAllTaxes[$res->id]['amount'] += ($shippingCostTaxExcl * (1 + ($res->rate * 0.01))) - $shippingCostTaxExcl; + else + { + $priceTmp = $order->total_shipping / (1 + ($res->rate * 0.01)); + $storeAllTaxes[$res->id]['amount'] += $order->total_shipping - $priceTmp; + } + } + + /* Store taxes */ + foreach ($storeAllTaxes AS $t) + Db::getInstance()->Execute(' + INSERT INTO '._DB_PREFIX_.'order_tax (id_order, tax_name, tax_rate, amount) + VALUES ('.(int)$order->id.', \''.pSQL($t['name']).'\', \''.(float)($t['rate']).'\', '.(float)$t['amount'].')'); + + // Insert discounts from cart into order_discount table + $discounts = $cart->getDiscounts(); + $discountsList = ''; + $total_discount_value = 0; + $shrunk = false; + foreach ($discounts AS $discount) { $value = $cartRule->getContextualValue(true); // Todo : has not been tested because order processing wasn't functionnal @@ -326,19 +453,19 @@ abstract class PaymentModuleCore extends Module Mail::Send((int)$order->id_lang, 'voucher', Mail::l('New voucher regarding your order #').$order->id, $params, $customer->email, $customer->firstname.' '.$customer->lastname); } } - + $order->addCartRule($cartRule->id, $cartRule->name, $value); if ($id_order_state != Configuration::get('PS_OS_ERROR') AND $id_order_state != Configuration::get('PS_OS_CANCELED')) $cartRule->quantity = $cartRule->quantity - 1; $cartRule->update(); - + $cartRulesList .= ' '.$this->l('Voucher name:').' '.$cartRule->name.' '.($value != 0.00 ? '-' : '').Tools::displayPrice($value, $currency, false).' '; } - + // Specify order id for message $oldMessage = Message::getMessageByCartId((int)($cart->id)); if ($oldMessage) @@ -347,7 +474,7 @@ abstract class PaymentModuleCore extends Module $message->id_order = (int)$order->id; $message->update(); } - + // Hook validate order $orderStatus = new OrderState((int)$id_order_state, (int)$order->id_lang); if (Validate::isLoadedObject($orderStatus)) @@ -357,7 +484,7 @@ abstract class PaymentModuleCore extends Module if ($orderStatus->logable) ProductSale::addProductSale((int)$product['id_product'], (int)$product['cart_quantity']); } - + if (Configuration::get('PS_STOCK_MANAGEMENT') && $order_detail->getStockState()) { $history = new OrderHistory(); @@ -374,7 +501,7 @@ abstract class PaymentModuleCore extends Module $new_history->addWithemail(true, $extraVars); unset($order_detail, $pcc); - + // Order is reloaded because the status just changed $order = new Order($order->id); @@ -385,7 +512,7 @@ abstract class PaymentModuleCore extends Module $delivery = new Address((int)($order->id_address_delivery)); $delivery_state = $delivery->id_state ? new State((int)($delivery->id_state)) : false; $invoice_state = $invoice->id_state ? new State((int)($invoice->id_state)) : false; - + $data = array( '{firstname}' => $customer->firstname, '{lastname}' => $customer->lastname, @@ -434,10 +561,10 @@ abstract class PaymentModuleCore extends Module '{total_discounts}' => Tools::displayPrice($order->total_discounts, $currency, false), '{total_shipping}' => Tools::displayPrice($order->total_shipping, $currency, false), '{total_wrapping}' => Tools::displayPrice($order->total_wrapping, $currency, false)); - + if (is_array($extraVars)) $data = array_merge($data, $extraVars); - + // Join PDF invoice if ((int)(Configuration::get('PS_INVOICE')) AND Validate::isLoadedObject($orderStatus) AND $orderStatus->invoice AND $order->invoice_number) { @@ -447,7 +574,7 @@ abstract class PaymentModuleCore extends Module } else $fileAttachment = NULL; - + if (Validate::isEmail($customer->email)) Mail::Send((int)$order->id_lang, 'order_conf', Mail::l('Order confirmation', (int)$order->id_lang), $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); } @@ -470,7 +597,7 @@ abstract class PaymentModuleCore extends Module die($errorMessage); } } - + /** * Add new PaymentCC to the order * @var int id_order diff --git a/classes/Product.php b/classes/Product.php index b901c04e4..42e854a31 100644 --- a/classes/Product.php +++ b/classes/Product.php @@ -265,6 +265,7 @@ class ProductCore extends ObjectModel protected $identifier = 'id_product'; protected $webserviceParameters = array( + 'objectMethods' => array('add' => 'addWs', 'update' => 'updateWs'), 'objectNodeNames' => 'products', 'fields' => array( 'id_manufacturer' => array('xlink_resource' => 'manufacturers'), @@ -930,13 +931,13 @@ class ProductCore extends ObjectModel * @deprecated */ public function addProductAttribute($price, $weight, $unit_impact, $ecotax, $quantity, $id_images, $reference, - $supplier_reference = null, $ean13, $default, $location = null, $upc = null) + $supplier_reference = null, $ean13, $default, $location = null, $upc = null, $minimal_quantity = 1) { Tools::displayAsDeprecated(); $id_product_attribute = $this->addAttribute( $price, $weight, $unit_impact, $ecotax, $id_images, - $reference, $ean13, $default, $location, $upc + $reference, $ean13, $default, $location, $upc, $minimal_quantity ); if (!$id_product_attribute) @@ -996,9 +997,10 @@ class ProductCore extends ObjectModel * @param string $location Location * @param string $ean13 Ean-13 barcode * @param boolean $default Is default attribute for product + * @param integer $minimal_quantity Minimal quantity to add to cart * @return mixed $id_product_attribute or false */ - public function addAttribute($price, $weight, $unit_impact, $ecotax, $id_images, $reference, $ean13, $default, $location = null, $upc = null) + public function addAttribute($price, $weight, $unit_impact, $ecotax, $id_images, $reference, $ean13, $default, $location = null, $upc = null, $minimal_quantity = 1) { if (!$this->id) return; @@ -1017,7 +1019,8 @@ class ProductCore extends ObjectModel 'location' => pSQL($location), 'ean13' => pSQL($ean13), 'upc' => pSQL($upc), - 'default_on' => (int)$default + 'default_on' => (int)$default, + 'minimal_quantity' => (int)$minimal_quantity, ), 'INSERT'); $id_product_attribute = Db::getInstance()->Insert_ID(); @@ -1042,11 +1045,11 @@ class ProductCore extends ObjectModel * @param string $supplier_reference DEPRECATED */ public function addCombinationEntity($wholesale_price, $price, $weight, $unit_impact, $ecotax, $quantity, - $id_images, $reference, $supplier_reference, $ean13, $default, $location = null, $upc = null) + $id_images, $reference, $supplier_reference, $ean13, $default, $location = null, $upc = null, $minimal_quantity = 1) { $id_product_attribute = $this->addProductAttribute( $price, $weight, $unit_impact, $ecotax, $quantity, $id_images, - $reference, $supplier_reference, $ean13, $default, $location, $upc + $reference, $supplier_reference, $ean13, $default, $location, $upc, $minimal_quantity ); $result = Db::getInstance()->execute( @@ -4106,5 +4109,19 @@ class ProductCore extends ObjectModel return Db::getInstance()->getValue($query); } -} + public function addWs($autodate = true, $nullValues = false) + { + $success = parent::add($autodate, $nullValues); + if ($success) + Search::indexation(false, $this->id); + return $success; + } + public function updateWs($nullValues = false) + { + $success = parent::update($nullValues); + if ($success) + Search::indexation(false, $this->id); + return $success; + } +} diff --git a/classes/Tab.php b/classes/Tab.php index 2521b1135..e1b526ccb 100644 --- a/classes/Tab.php +++ b/classes/Tab.php @@ -115,11 +115,13 @@ class TabCore extends ObjectModel '); if (!$profiles || empty($profiles)) return false; + /* Query definition */ // note : insert ignore should be avoided $query = 'INSERT IGNORE INTO `'._DB_PREFIX_.'access` (`id_profile`, `id_tab`, `view`, `add`, `edit`, `delete`) VALUES '; // default admin $query .= '(1, '.(int)$id_tab.', 1, 1, 1, 1),'; + foreach ($profiles as $profile) { // no cast needed for profile[id_profile], which cames from db @@ -251,7 +253,7 @@ class TabCore extends ObjectModel public static function getNewLastPosition($id_parent) { return (Db::getInstance()->getValue(' - SELECT MAX(position)+1 + SELECT IFNULL(MAX(position),0)+1 FROM `'._DB_PREFIX_.'tab` WHERE `id_parent` = '.(int)$id_parent )); diff --git a/classes/Tools.php b/classes/Tools.php index 7311aeee6..438c313a5 100644 --- a/classes/Tools.php +++ b/classes/Tools.php @@ -643,7 +643,7 @@ class ToolsCore * @param integer $id_lang Language id * @return array Meta tags */ - public static function getMetaTags($id_lang, $page_name) + public static function getMetaTags($id_lang, $page_name, $title = '') { global $maintenance; @@ -670,6 +670,8 @@ class ToolsCore /* Categories specifics meta tags */ elseif ($id_category = self::getValue('id_category')) { + if (!empty($title)) + $title = ' - '.$title; $page_number = (int)self::getValue('p'); $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT `name`, `meta_title`, `meta_description`, `meta_keywords`, `description` @@ -682,10 +684,13 @@ class ToolsCore // Paginate title if (!empty($row['meta_title'])) - $row['meta_title'] = $row['meta_title'].(!empty($page_number) ? ' ('.$page_number.')' : '').' - '.Configuration::get('PS_SHOP_NAME'); + $row['meta_title'] = $title.$row['meta_title'].(!empty($page_number) ? ' ('.$page_number.')' : '').' - '.Configuration::get('PS_SHOP_NAME'); else $row['meta_title'] = $row['name'].(!empty($page_number) ? ' ('.$page_number.')' : '').' - '.Configuration::get('PS_SHOP_NAME'); + if (!empty($title)) + $row['meta_title'] = $title.(!empty($page_number) ? ' ('.$page_number.')' : '').' - '.Configuration::get('PS_SHOP_NAME'); + return self::completeMetaTags($row, $row['name']); } } @@ -1227,10 +1232,12 @@ class ToolsCore return false; } - /** - * @deprecated as of 1.5 use Media::minifyHTML() - */ + public static $a = 0; + + /** + * @deprecated as of 1.5 use Media::minifyHTML() + */ public static function minifyHTML($html_content) { Tools::displayAsDeprecated(); @@ -1276,8 +1283,21 @@ class ToolsCore */ public static function minifyHTMLpregCallback($preg_matches) { +<<<<<<< .working Tools::displayAsDeprecated(); return Media::minifyHTMLpregCallback($preg_matches); +======= + $args = array(); + preg_match_all('/[a-zA-Z0-9]+=[\"\\\'][^\"\\\']*[\"\\\']/is', $preg_matches[2], $args); + $args = $args[0]; + sort($args); + // if there is no args in the balise, we don't write a space (avoid previous : , now : <title>) + if (empty($args)) + $output = $preg_matches[1].'>'; + else + $output = $preg_matches[1].' '.implode(' ', $args).'>'; + return $output; +>>>>>>> .merge-right.r10309 } /** @@ -1285,8 +1305,25 @@ class ToolsCore */ public static function packJSinHTML($html_content) { +<<<<<<< .working Tools::displayAsDeprecated(); return Media::packJSinHTML($html_content); +======= + if (strlen($html_content) > 0) + { + $htmlContentCopy = $html_content; + $html_content = preg_replace_callback( + '/\\s*(<script\\b[^>]*?>)([\\s\\S]*?)(<\\/script>)\\s*/i' + ,array('Tools', 'packJSinHTMLpregCallback') + ,$html_content); + + // If the string is too big preg_replace return null: http://php.net/manual/en/function.preg-replace-callback.php + // In this case, we don't compress the content + if ($html_content === null) + { + error_log('Error occured in function packJSinHTML'); + return $htmlContentCopy; +>>>>>>> .merge-right.r10309 } /** @@ -1796,11 +1833,11 @@ FileETag INode MTime Size $orderByPrefix = ''; if ($prefix) { - if ($value == 'id_product' || $value == 'date_add' || $value == 'price') + if ($value == 'id_product' || $value == 'date_add' || $value == 'date_upd' || $value == 'price') $orderByPrefix = 'p.'; elseif ($value == 'name') $orderByPrefix = 'pl.'; - elseif ($value == 'manufacturer') + elseif ($value == 'manufacturer_name') $orderByPrefix = 'm.'; elseif ($value == 'position' || empty($value)) $orderByPrefix = 'cp.'; diff --git a/classes/Upgrader.php b/classes/Upgrader.php index 6b0116ba7..6d2c28c55 100644 --- a/classes/Upgrader.php +++ b/classes/Upgrader.php @@ -1,6 +1,6 @@ <?php /* -* 2007-2011 PrestaShop +* 2007-2011 PrestaShop * * NOTICE OF LICENSE * @@ -39,12 +39,14 @@ class UpgraderCore public $version_name; public $version_num; + public $version_is_modified = null; /** * @var string contains hte url where to download the file */ public $link; public $autoupgrade; public $autoupgrade_module; + public $autoupgrade_last_version; public $changelog; public $md5; @@ -65,7 +67,7 @@ class UpgraderCore /** * downloadLast download the last version of PrestaShop and save it in $dest/$filename - * + * * @param string $dest directory where to save the file * @param string $filename new filename * @return boolean @@ -94,13 +96,12 @@ class UpgraderCore /** * checkPSVersion ask to prestashop.com if there is a new version. return an array if yes, false otherwise - * + * * @return mixed */ public function checkPSVersion($force = false) { - if (empty($this->link)) - { + if (class_exists('Configuration')) $last_check = Configuration::get('PS_LAST_VERSION_CHECK'); else @@ -112,7 +113,6 @@ class UpgraderCore libxml_set_streams_context(@stream_context_create(array('http' => array('timeout' => 3)))); if ($feed = @simplexml_load_file($this->rss_version_link)) { - $this->version_name = (string)$feed->version->name; $this->version_num = (string)$feed->version->num; $this->link = (string)$feed->download->link; @@ -120,6 +120,7 @@ class UpgraderCore $this->changelog = (string)$feed->download->changelog; $this->autoupgrade = (int)$feed->autoupgrade; $this->autoupgrade_module = (int)$feed->autoupgrade_module; + $this->autoupgrade_last_version = (string)$feed->autoupgrade_last_version; $this->desc = (string)$feed->desc ; $config_last_version = array( 'name' => $this->version_name, @@ -128,6 +129,7 @@ class UpgraderCore 'md5' => $this->md5, 'autoupgrade' => $this->autoupgrade, 'autoupgrade_module' => $this->autoupgrade_module, + 'autoupgrade_last_version' => $this->autoupgrade_last_version, 'changelog' => $this->changelog, 'desc' => $this->desc ); @@ -139,8 +141,7 @@ class UpgraderCore } } else - $this->loadFromConfig(); - } + $this->loadFromConfig(); // retro-compatibility : // return array(name,link) if you don't use the last version // false otherwise @@ -155,7 +156,7 @@ class UpgraderCore /** * load the last version informations stocked in base - * + * * @return $this */ public function loadFromConfig() @@ -173,6 +174,8 @@ class UpgraderCore $this->autoupgrade = $last_version_check['autoupgrade']; if (isset($last_version_check['autoupgrade_module'])) $this->autoupgrade_module = $last_version_check['autoupgrade_module']; + if (isset($last_version_check['autoupgrade_last_version'])) + $this->autoupgrade_last_version = $last_version_check['autoupgrade_last_version']; if (isset($last_version_check['md5'])) $this->md5 = $last_version_check['md5']; if (isset($last_version_check['desc'])) @@ -184,17 +187,19 @@ class UpgraderCore } /** - * return an array of files + * return an array of files * that the md5file does not match to the original md5file (provided by $rss_md5file_link_dir ) * @return void */ public function getChangedFilesList() { - if (count($this->changed_files) == 0) + if (is_array($this->changed_files) && count($this->changed_files) == 0) { $checksum = @simplexml_load_file($this->rss_md5file_link_dir._PS_VERSION_.'.xml'); - if ($checksum === false) - return false; + if ($checksum == false) + { + $this->changed_files = false; + } else $this->browseXmlAndCompare($checksum->ps_root_dir[0]); } @@ -202,13 +207,13 @@ class UpgraderCore } /** populate $this->changed_files with $path - * in sub arrays mail, translation and core items + * in sub arrays mail, translation and core items * @param string $path filepath to add, relative to _PS_ROOT_DIR_ */ protected function addChangedFile($path) { $this->version_is_modified = true; - + if (strpos($path, 'mails/') !== false) $this->changed_files['mail'][] = $path; else if ( @@ -254,7 +259,7 @@ class UpgraderCore $fullpath = str_replace('ps_root_dir', _PS_ROOT_DIR_, $fullpath); - // replace default admin dir by current one + // replace default admin dir by current one $fullpath = str_replace(_PS_ROOT_DIR_.'/admin', _PS_ADMIN_DIR_, $fullpath); if (!file_exists($fullpath)) $this->addMissingFile($relative_path); @@ -274,6 +279,7 @@ class UpgraderCore public function isAuthenticPrestashopVersion() { + $this->getChangedFilesList(); return !$this->version_is_modified; } diff --git a/classes/Validate.php b/classes/Validate.php index ef7b5528f..a02c98e21 100644 --- a/classes/Validate.php +++ b/classes/Validate.php @@ -43,7 +43,7 @@ class ValidateCore * @param string $email e-mail address to validate * @return boolean Validity is ok or not */ - public static function isEmail($email) + public static function isEmail($email, $required = true) { return !empty($email) AND preg_match('/^[a-z0-9!#$%&\'*+\/=?^`{}|~_-]+[.a-z0-9!#$%&\'*+\/=?^`{}|~_-]*@[a-z0-9]+[._a-z0-9-]*\.[a-z0-9]+$/ui', $email); } diff --git a/classes/order/Order.php b/classes/order/Order.php index e8d6c0e3e..063836207 100644 --- a/classes/order/Order.php +++ b/classes/order/Order.php @@ -1115,7 +1115,11 @@ class OrderCore extends ObjectModel return $result; } - public function setCurrentState($id_order_state, $id_employee) + /** Set current order state + * @param int $id_order_state + * @param int $id_employee (/!\ not optional except for Webservice. + */ + public function setCurrentState($id_order_state, $id_employee = 0) { if (empty($id_order_state)) return false; diff --git a/classes/order/OrderHistory.php b/classes/order/OrderHistory.php index 5749d8268..6412fa58e 100644 --- a/classes/order/OrderHistory.php +++ b/classes/order/OrderHistory.php @@ -122,7 +122,8 @@ class OrderHistoryCore extends ObjectModel if ($newOS->invoice AND !$order->invoice_number) $order->setInvoice(); - if ($newOS->delivery AND !$order->delivery_number) + // Update delivery date even if it was already set by another state change + if ($newOS->delivery) $order->setDelivery(); Hook::postUpdateOrderStatus((int)($new_order_state), (int)($id_order)); } diff --git a/config/defines.inc.php b/config/defines.inc.php index 9f6397917..a2bfa6dd2 100755 --- a/config/defines.inc.php +++ b/config/defines.inc.php @@ -27,7 +27,6 @@ define('_PS_MODE_DEV_', true); define('_PS_MODE_DEMO_', false); -define('_PS_DEMO_MAIN_BO_ACCOUNT_', 1); $currentDir = dirname(__FILE__); diff --git a/config/smarty.config.inc.php b/config/smarty.config.inc.php index b0b3075c7..5afbc94bd 100644 --- a/config/smarty.config.inc.php +++ b/config/smarty.config.inc.php @@ -115,7 +115,7 @@ function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_wo $length -= min($length, Tools::strlen($etc)); if (!$break_words && !$middle) $string = preg_replace('/\s+?(\S+)?$/u', '', Tools::substr($string, 0, $length+1, $charset)); - return !$middle ? Tools::substr($string, 0, $length, $charset).$etc : Tools::substr($string, 0, $length/2, $charset).$etc.Tools::substr($string, -$length/2, $charset); + return !$middle ? Tools::substr($string, 0, $length, $charset).$etc : Tools::substr($string, 0, $length/2, $charset).$etc.Tools::substr($string, -$length/2, $length, $charset); } else return $string; diff --git a/controllers/front/AuthController.php b/controllers/front/AuthController.php index 656e0abce..7c03f2b63 100644 --- a/controllers/front/AuthController.php +++ b/controllers/front/AuthController.php @@ -262,6 +262,7 @@ class AuthControllerCore extends FrontController } else { + $this->context->cookie->id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare: CompareProduct::getIdCompareByIdCustomer($customer->id); $this->context->cookie->id_customer = (int)($customer->id); $this->context->cookie->customer_lastname = $customer->lastname; $this->context->cookie->customer_firstname = $customer->firstname; @@ -278,10 +279,10 @@ class AuthControllerCore extends FrontController $this->context->cart->id_address_invoice = Address::getFirstCustomerAddressId((int)($customer->id)); $this->context->cart->update(); Hook::exec('authentication'); - + // Login information have changed, so we check if the cart rules still apply CartRule::autoRemoveFromCart(); - + if (!$this->ajax) { if ($back = Tools::getValue('back')) @@ -618,15 +619,15 @@ class AuthControllerCore extends FrontController protected function sendConfirmationMail(Customer $customer) { return Mail::Send( - $this->context->language->id, - 'account', + $this->context->language->id, + 'account', Mail::l('Welcome!'), array( - '{firstname}' => $customer->firstname, - '{lastname}' => $customer->lastname, - '{email}' => $customer->email, - '{passwd}' => Tools::getValue('passwd')), - $customer->email, + '{firstname}' => $customer->firstname, + '{lastname}' => $customer->lastname, + '{email}' => $customer->email, + '{passwd}' => Tools::getValue('passwd')), + $customer->email, $customer->firstname.' '.$customer->lastname ); } diff --git a/controllers/front/CartController.php b/controllers/front/CartController.php index f6f9d814e..4273e309a 100644 --- a/controllers/front/CartController.php +++ b/controllers/front/CartController.php @@ -112,19 +112,19 @@ class CartControllerCore extends FrontController } CartRule::autoRemoveFromCart(); } - + protected function processChangeProductAddressDelivery() { $old_id_address_delivery = (int)Tools::getValue('old_id_address_delivery'); $new_id_address_delivery = (int)Tools::getValue('new_id_address_delivery'); - + $this->context->cart->setProductAddressDelivery( $this->id_product, $this->id_product_attribute, $old_id_address_delivery, $new_id_address_delivery); } - + protected function processDuplicateProduct() { if ( @@ -249,6 +249,7 @@ class CartControllerCore extends FrontController $id_country = (isset($deliveryAddress) && $deliveryAddress->id) ? $deliveryAddress->id_country : Configuration::get('PS_COUNTRY_DEFAULT'); $result['carriers'] = Carrier::getCarriersForOrder(Country::getIdZone($id_country), $groups); //$result['checked'] = Carrier::getDefaultCarrierSelection($result['carriers'], (int)$this->cart->id_carrier); + $result['HOOK_EXTRACARRIER'] = Module::hookExec('extraCarrier', array('address' => (isset($deliveryAddress) && (int)$deliveryAddress->id) ? $deliveryAddress : null)); } $result['summary'] = $this->context->cart->getSummaryDetails(); $result['customizedDatas'] = Product::getAllCustomizedDatas($this->context->cart->id, null, true); diff --git a/controllers/front/CategoryController.php b/controllers/front/CategoryController.php index c87e421a8..11f6691af 100644 --- a/controllers/front/CategoryController.php +++ b/controllers/front/CategoryController.php @@ -83,15 +83,14 @@ class CategoryControllerCore extends FrontController public function initContent() { - if (isset($this->context->customer->id)) - $this->context->smarty->assign('compareProducts', CompareProduct::getCustomerCompareProducts($this->context->customer->id)); - else if (isset($this->context->customer->id_guest)) - $this->context->smarty->assign('compareProducts', CompareProduct::getGuestCompareProducts($this->context->customer->id_guest)); + if (isset($this->context->cookie->id_compare)) + $this->context->smarty->assign('compareProducts', CompareProduct::getCompareProducts((int)$this->context->cookie->id_compare)); + $this->assignScenes(); if ($this->category->id != 1) $this->assignProductList(); - + $this->productSort(); $this->context->smarty->assign(array( 'category' => $this->category, diff --git a/controllers/front/CompareController.php b/controllers/front/CompareController.php index 9829759f5..b63916036 100644 --- a/controllers/front/CompareController.php +++ b/controllers/front/CompareController.php @@ -43,32 +43,21 @@ class CompareControllerCore extends FrontController */ public function displayAjax() { - //Add or remove product with Ajax - if (Tools::getValue('id_product') && Tools::getValue('action')) + // Add or remove product with Ajax + if (Tools::getValue('ajax') && Tools::getValue('id_product') && Tools::getValue('action')) { if (Tools::getValue('action') == 'add') { - if (isset($this->context->customer->id)) - { - if (CompareProduct::getCustomerNumberProducts($this->context->customer->id) < Configuration::get('PS_COMPARATOR_MAX_ITEM')) - CompareProduct::addCustomerCompareProduct((int)$this->context->customer->id, (int)Tools::getValue('id_product')); - else - die('0'); - } + $id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare: false; + if (CompareProduct::getNumberProducts($id_compare) < Configuration::get('PS_COMPARATOR_MAX_ITEM')) + CompareProduct::addCompareProduct($id_compare, (int)Tools::getValue('id_product')); else - { - if ((isset($this->context->customer->id_guest) && CompareProduct::getGuestNumberProducts($this->context->customer->id_guest) < Configuration::get('PS_COMPARATOR_MAX_ITEM'))) - CompareProduct::addGuestCompareProduct((int)$this->context->customer->id_guest, (int)Tools::getValue('id_product')); - else - die('0'); - } + die('0'); } else if (Tools::getValue('action') == 'remove') { - if (isset($this->context->customer->id)) - CompareProduct::removeCustomerCompareProduct((int)$this->context->customer->id, (int)Tools::getValue('id_product')); - else if (isset($this->context->customer->id_guest)) - CompareProduct::removeGuestCompareProduct((int)$this->context->customer->id_guest, (int)Tools::getValue('id_product')); + if (isset(self::$cookie->id_compare)) + CompareProduct::removeCompareProduct((int)$this->context->cookie->id_compare, (int)Tools::getValue('id_product')); else die('0'); } @@ -95,10 +84,8 @@ class CompareControllerCore extends FrontController if ($product_list = Tools::getValue('compare_product_list') && ($postProducts = (isset($product_list) ? rtrim($product_list, '|') : ''))) $ids = array_unique(explode('|', $postProducts)); - else if (isset($this->context->customer->id)) - $ids = CompareProduct::getCustomerCompareProducts($this->context->customer->id); - else if (isset($this->context->customer->id_guest)) - $ids = CompareProduct::getGuestCompareProducts($this->context->customer->id_guest); + else if (isset(self::$cookie->id_compare)) + $ids = CompareProduct::getCompareProducts($this->context->cookie->id_compare); else $ids = null; diff --git a/controllers/front/OrderController.php b/controllers/front/OrderController.php index f48d445b6..37b7ee071 100644 --- a/controllers/front/OrderController.php +++ b/controllers/front/OrderController.php @@ -64,18 +64,26 @@ class OrderControllerCore extends ParentOrderController if (!$this->context->customer->isLogged(true) && in_array($this->step, array(1, 2, 3))) Tools::redirect('index.php?controller=authentication&back='.urlencode('order.php&step='.$this->step)); - + if (Tools::getValue('multi-shipping') == 1) $this->context->smarty->assign('multi_shipping', true); else $this->context->smarty->assign('multi_shipping', false); - + if ($this->context->customer->id) $this->context->smarty->assign('address_list', $this->context->customer->getAddresses($this->context->language->id)); else $this->context->smarty->assign('address_list', array()); } + public function postProcess() + { + // Update carrier selected on preProccess in order to fix a bug of + // block cart when it's hooked on leftcolumn + if ($this->step == 3 && Tools::isSubmit('processCarrier')) + $this->processCarrier(); + } + /** * Assign template vars related to page content * @see FrontController::initContent() @@ -94,7 +102,7 @@ class OrderControllerCore extends ParentOrderController $this->context->smarty->assign('empty', 1); $this->setTemplate(_PS_THEME_DIR_.'shopping-cart.tpl'); break; - + case 1: $this->_assignAddress(); $this->processAddressFormat(); @@ -118,11 +126,9 @@ class OrderControllerCore extends ParentOrderController case 3: // Test that the conditions (so active) were accepted by the customer $cgv = Tools::getValue('cgv'); - if (Configuration::get('PS_CONDITIONS') && (!Validate::isBool($cgv))) + if (Configuration::get('PS_CONDITIONS') && (!Validate::isBool($cgv) || $cgv == false)) Tools::redirect('index.php?controller=order&step=2'); - if (Tools::isSubmit('processCarrier')) - $this->processCarrier(); $this->autoStep(); // Bypass payment step if total is 0 @@ -201,9 +207,9 @@ class OrderControllerCore extends ParentOrderController { if (!Tools::getValue('multi-shipping')) $this->context->cart->setNoMultishipping(); - + // Add checking for all addresses - + if (!Tools::isSubmit('id_address_delivery') || !Address::isCountryActiveById((int)Tools::getValue('id_address_delivery'))) $this->errors[] = Tools::displayError('This address is not in a valid area.'); else @@ -247,7 +253,7 @@ class OrderControllerCore extends ParentOrderController } $orderTotal = $this->context->cart->getOrderTotal(); } - + /** * Address step */ @@ -257,7 +263,7 @@ class OrderControllerCore extends ParentOrderController if (Tools::getValue('multi-shipping')) $this->context->cart->autosetProductAddress(); - + $this->context->smarty->assign('cart', $this->context->cart); if ($this->context->customer->is_guest) Tools::redirect('index.php?controller=order&step=2'); diff --git a/controllers/front/ProductController.php b/controllers/front/ProductController.php index 06f46c0cd..3416d233e 100644 --- a/controllers/front/ProductController.php +++ b/controllers/front/ProductController.php @@ -207,10 +207,13 @@ class ProductControllerCore extends FrontController protected function assignPriceAndTax() { $id_customer = (isset($this->context->customer) ? (int)$this->context->customer->id : 0); - $group_reduction = (100 - Group::getReduction($id_customer)) / 100; $id_group = (isset($this->context->customer) ? $this->context->customer->id_default_group : _PS_DEFAULT_CUSTOMER_GROUP_); $id_country = (int)$id_customer ? Customer::getCurrentCountry($id_customer) : Configuration::get('PS_COUNTRY_DEFAULT'); + $group_reduction = GroupReduction::getValueForProduct($this->product->id, $id_group); + if ($group_reduction == 0) + $group_reduction = Group::getReduction((int)$this->context->cookie->id_customer) / 100; + // Tax $tax = (float)$this->product->getTaxesRate(new Address((int)$this->context->cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')})); $this->context->smarty->assign('tax_rate', $tax); @@ -228,7 +231,7 @@ class ProductControllerCore extends FrontController $id_currency = (int)$this->context->cookie->id_currency; $id_product = (int)$this->product->id; $id_shop = $this->context->shop->getID(true); - + $quantity_discounts = SpecificPrice::getQuantityDiscounts($id_product, $id_shop, $id_currency, $id_country, $id_group, null, true); foreach($quantity_discounts as &$quantity_discount) if ($quantity_discount['id_product_attribute']) @@ -239,7 +242,7 @@ class ProductControllerCore extends FrontController $quantity_discount['attributes'] = $attribute['name'].' - '; $quantity_discount['attributes'] = rtrim($quantity_discount['attributes'], ' - '); } - + $product_price = $this->product->getPrice(Product::$_taxCalculationMethod == PS_TAX_INC, false); $address = new Address($this->context->cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')}); $this->context->smarty->assign(array( @@ -248,7 +251,7 @@ class ProductControllerCore extends FrontController 'ecotax_tax_exc' => Tools::ps_round($this->product->ecotax, 2), 'ecotaxTax_rate' => $ecotax_rate, 'productPriceWithoutEcoTax' => (float)$product_price_without_eco_tax, - 'group_reduction' => $group_reduction, + 'group_reduction' => (1 - $group_reduction),, 'no_tax' => Tax::excludeTaxeOption() || !$this->product->getTaxesRate($address), 'ecotax' => (!count($this->errors) && $this->product->ecotax > 0 ? Tools::convertPrice((float)$this->product->ecotax) : 0), 'tax_enabled' => Configuration::get('PS_TAX') @@ -295,13 +298,13 @@ class ProductControllerCore extends FrontController { $colors = array(); $groups = array(); - + // @todo (RM) should only get groups and not all declination ? $attributes_groups = $this->product->getAttributesGroups($this->context->language->id); if (is_array($attributes_groups) && $attributes_groups) { $combination_images = $this->product->getCombinationImages($this->context->language->id); - + foreach ($attributes_groups as $k => $row) { // Color management @@ -319,7 +322,7 @@ class ProductControllerCore extends FrontController 'group_type' => $row['group_type'], 'default' => -1, ); - + $groups[$row['id_attribute_group']]['attributes'][$row['id_attribute']] = $row['attribute_name']; if ($row['default_on'] && $groups[$row['id_attribute_group']]['default'] == -1) $groups[$row['id_attribute_group']]['default'] = (int)$row['id_attribute']; @@ -344,7 +347,7 @@ class ProductControllerCore extends FrontController $combinations[$row['id_product_attribute']]['unit_impact'] = $row['unit_price_impact']; $combinations[$row['id_product_attribute']]['minimal_quantity'] = $row['minimal_quantity']; $combinations[$row['id_product_attribute']]['available_date'] = $available_date; - + if (isset($combination_images[$row['id_product_attribute']][0]['id_image'])) $combinations[$row['id_product_attribute']]['id_image'] = $combination_images[$row['id_product_attribute']][0]['id_image']; else diff --git a/docs/csv_import/addresses_import.csv b/docs/csv_import/addresses_import.csv index 54bb4054d..dce9b0a27 100644 --- a/docs/csv_import/addresses_import.csv +++ b/docs/csv_import/addresses_import.csv @@ -1,4 +1,4 @@ -ID;Alias*;Active (0/1);Customer e-mail;Manufacturer;Supplier;Company;Lastname*;Firstname*;Address 1*;Address 2;Postcode* / Zipcode*;City*;Country*;State;Other;Phone;Mobile Phone;VAT number +id;Alias*;Active (0/1);Customer e-mail;Manufacturer;Supplier;Company;Lastname*;Firstname*;Address 1*;Address 2;Postcode* / Zipcode*;City*;Country*;State;Other;Phone;Mobile Phone;VAT number 1;My Adress;1;johndoe@prestashop.com;;;;Doe;John;16, Main street;2nd floor;75000;PARIS ;France;;;140138844;; 2;My work;1;johndoe@prestashop.com;;;My Company;Doe;John;535, Baker street;;13000;Marseile;France;;;235445588;; 3;My work;0;;Apple Computer, Inc;;;Jobs;Steve;1 Infinite Loop;;95014;CUPERTINO;United States;California;;(800) 275-2273;; \ No newline at end of file diff --git a/docs/csv_import/categories_import.csv b/docs/csv_import/categories_import.csv index 60239991b..812322e98 100644 --- a/docs/csv_import/categories_import.csv +++ b/docs/csv_import/categories_import.csv @@ -1,4 +1,4 @@ -ID;Active (0/1);Name*;Parent Category;Description;Meta-title;Meta-keywords;Meta-description;URL rewritten;Image URL +id;Active (0/1);Name*;Parent Category;Description;Meta-title;Meta-keywords;Meta-description;URL rewritten;Image URL 2;1;iPods;Home;Now that you can buy movies from the iTunes Store and sync them to your iPod, the whole world is your theater.;;;;music-ipods;http://youlinktotheimage.com/img1000.jpg 3;1;Accessories;Home;Wonderful accessories for your iPod;;;;accessories-ipod;http://youlinktotheimage.com/img1001.jpg 4;1;Laptops;Home;The latest Intel processor, a bigger hard drive, plenty of memory, and even more new features all fit inside just one liberating inch. The new Mac laptops have the performance, power, and connectivity of a desktop computer. Without the desk part.;Apple laptops;Apple laptops MacBook Air;Powerful and chic Apple laptops;laptops;http://youlinktotheimage.com/img1002.jpg \ No newline at end of file diff --git a/docs/csv_import/customers_import.csv b/docs/csv_import/customers_import.csv index 527f2bfce..904fe394d 100644 --- a/docs/csv_import/customers_import.csv +++ b/docs/csv_import/customers_import.csv @@ -1,3 +1,3 @@ -ID;Active (0/1);Gender ID (Mr=1, Ms=2, else 9);E-mail*;Password*;Birthday;Lastname*;Firstname*;Newletter (0/1);Opt-in (0/1) +id;Active (0/1);Gender ID (Mr=1, Ms=2, else 9);E-mail*;Password*;Birthday;Lastname*;Firstname*;Newletter (0/1);Opt-in (0/1) 1;1;1;johndoe@prestashop.com;#res152EDRF;sous quelle forme ? ;Doe;John;1;1 2;1;2;mariedoe@prestashop.com;58@ret26#;sous quelle forme ? ;Doe;Marie;0;1 \ No newline at end of file diff --git a/docs/csv_import/manufacturers_import.csv b/docs/csv_import/manufacturers_import.csv index e91c6b113..6c8ea7cd0 100644 --- a/docs/csv_import/manufacturers_import.csv +++ b/docs/csv_import/manufacturers_import.csv @@ -1,3 +1,3 @@ -ID;Active (0/1);Name*;Description;Short description;Meta-title;Meta-keywords;Meta-description +id;Active (0/1);Name*;Description;Short description;Meta-title;Meta-keywords;Meta-description 1;1;Apple Computer, Inc;;;;; 2;1;Shure Incorporated;;;;; \ No newline at end of file diff --git a/docs/csv_import/products_import.csv b/docs/csv_import/products_import.csv index 7202a63ef..b49f79225 100644 --- a/docs/csv_import/products_import.csv +++ b/docs/csv_import/products_import.csv @@ -1,3 +1,3 @@ -ID;Active (0/1);Name*;Categories (x,y,z,...);Price tax excl. Or Price tax excl;Tax rules id;Wholesale price;On sale (0/1);Discount amount;Discount percent;Discount from (yyy-mm-dd);Discount to (yyy-mm-dd);Reference #;Supplier reference #;Supplier;Manufacturer;EAN13;UPC;Ecotax;Weight;Quantity;Short description;Description;Tags (x,y,z,...);Meta-title;Meta-keywords;Meta-description;URL rewritten;Text when in-stock;Text if back-order allowed;Image URLs (x,y,z,...);Feature;Only available online +id;Active (0/1);Name*;Categories (x,y,z,...);Price tax excl. Or Price tax excl;Tax rules id;Wholesale price;On sale (0/1);Discount amount;Discount percent;Discount from (yyy-mm-dd);Discount to (yyy-mm-dd);Reference #;Supplier reference #;Supplier;Manufacturer;EAN13;UPC;Ecotax;Weight;Quantity;Short description;Description;Tags (x,y,z,...);Meta-title;Meta-keywords;Meta-description;URL rewritten;Text when in-stock;Text if back-order allowed;Image URLs (x,y,z,...);Feature;Only available online 1;1;iPod Nano;Home, iPods;49;1;;1;;;;;92458844;54778855;AppleStore;Apple Computer, Inc;;;;0.5;800;New design. New features. Now i….;Curved ahead of the curve. For those about to rock, we give you nine amazing colors. But that's only part of the story. Feel the curved, all-aluminum and glass de...;apple, ipod, nano;;;;ipod-nano;In stock;;http://youdomain.com/img.jpg, http://yourdomain.com/img1.jpg;; 2;1;iPod shuffle;Home, iPods;66.05;1;79;1;;;;;92458845;54778855;AppleStore;Apple Computer, Inc;;;;0;500;iPod shuffle, the world’s most wearabl….;;ipod, shuffle;;;;ipod-shuffle;In stock;;http://youdomain.com/img25.jpg, http://yourdomain.com/img30.jpg;; \ No newline at end of file diff --git a/docs/csv_import/suppliers_import.csv b/docs/csv_import/suppliers_import.csv index b43d7a3a7..db319c908 100644 --- a/docs/csv_import/suppliers_import.csv +++ b/docs/csv_import/suppliers_import.csv @@ -1,3 +1,3 @@ -ID;Active (0/1);Name*;Description;Short description;Meta-title;Meta-keywords;Meta-description +id;Active (0/1);Name*;Description;Short description;Meta-title;Meta-keywords;Meta-description 1;1;Applestore;;;;; 2;1;Shure Online Store;;;;; \ No newline at end of file diff --git a/images.inc.php b/images.inc.php index 6af0eada7..d7321dd3e 100644 --- a/images.inc.php +++ b/images.inc.php @@ -251,6 +251,7 @@ function imageResize($sourceFile, $destFile, $destWidth = NULL, $destHeight = NU } imagecopyresampled($destImage, $sourceImage, (int)(($destWidth - $nextWidth) / 2), (int)(($destHeight - $nextHeight) / 2), 0, 0, $nextWidth, $nextHeight, $sourceWidth, $sourceHeight); + return (returnDestImage($fileType, $destImage, $destFile)); } @@ -326,6 +327,7 @@ function returnDestImage($type, $ressource, $filename) $quality = (Configuration::get('PS_PNG_QUALITY') === false ? 7 : Configuration::get('PS_PNG_QUALITY')); $flag = imagepng($ressource, $filename, (int)$quality); break; + case 'jpg': case 'jpeg': default: $quality = (Configuration::get('PS_JPEG_QUALITY') === false ? 90 : Configuration::get('PS_JPEG_QUALITY')); diff --git a/install-dev/index.php b/install-dev/index.php index 91c748e65..623f590bb 100644 --- a/install-dev/index.php +++ b/install-dev/index.php @@ -355,9 +355,9 @@ if ($lm->getIncludeTradFilename()) <h2><?php echo lang('What do you want to do?')?></h2> <form id="formSetMethod" action="<?php $_SERVER['REQUEST_URI']; ?>" method="post"> - <p><input <?php echo (!($oldversion AND !$tooOld AND !$sameVersions AND !$installOfOldVersion)) ? 'checked="checked"' : '' ?> type="radio" value="install" name="typeInstall" id="typeInstallInstall" style="vertical-align: middle;" /> <label for="typeInstallInstall"><?php echo lang('I want to').' <b>'.lang('install').'</b> '.lang('a new online shop with PrestaShop'); ?></label></p> + <p><input <?php echo (!($oldversion AND !$tooOld AND !$sameVersions AND !$installOfOldVersion)) ? 'checked="checked"' : '' ?> type="radio" value="install" name="typeInstall" id="typeInstallInstall" style="vertical-align: middle;" /> <label for="typeInstallInstall"><?php echo lang('I want to <b>install</b> a new online shop with PrestaShop'); ?></label></p> <p style="font-style: italic;"><?php echo lang('- or -'); ?></p> - <p <?php echo ($oldversion AND !$tooOld AND !$sameVersions AND !$installOfOldVersion) ? '' : 'class="disabled"'; ?>><input <?php echo ($oldversion AND !$tooOld AND !$sameVersions AND !$installOfOldVersion) ? 'checked="checked"' : 'disabled="disabled"'; ?> type="radio" value="upgrade" name="typeInstall" id="typeInstallUpgrade" style="vertical-align: middle;" /> <label <?php echo ($oldversion === false) ? 'class="disabled"' : ''; ?> for="typeInstallUpgrade"><?php echo lang('I want to').' <b>'.lang('update').'</b> '.lang('my existing PrestaShop to a newer version'); ?> <?php echo ($oldversion === false) ? lang('(No previous version detected)') : ("(".(($tooOld) ? lang('Your current version is too old, updates are possible only from version').' '.MINIMUM_VERSION_TO_UPDATE.' '.lang('and higher') : ($installOfOldVersion ? lang('Your current version is already up-to-date') : lang('Currently installed version detected:').' <b>v'.$oldversion.'</b>')).")") ?></label></p> + <p <?php echo ($oldversion AND !$tooOld AND !$sameVersions AND !$installOfOldVersion) ? '' : 'class="disabled"'; ?>><input <?php echo ($oldversion AND !$tooOld AND !$sameVersions AND !$installOfOldVersion) ? 'checked="checked"' : 'disabled="disabled"'; ?> type="radio" value="upgrade" name="typeInstall" id="typeInstallUpgrade" style="vertical-align: middle;" /> <label <?php echo ($oldversion === false) ? 'class="disabled"' : ''; ?> for="typeInstallUpgrade"><?php echo lang('I want to <b>update</b> my existing PrestaShop to a newer version'); ?> <?php echo ($oldversion === false) ? lang('(No previous version detected)') : ("(".(($tooOld) ? lang('Your current version is too old, updates are possible only from version').' '.MINIMUM_VERSION_TO_UPDATE.' '.lang('and higher') : ($installOfOldVersion ? lang('Your current version is already up-to-date') : lang('Currently installed version detected:').' <b>v'.$oldversion.'</b>')).")") ?></label></p> </form> <h2><?php echo lang('License Agreement')?></h2> <div style="height:200px; border:1px solid #ccc; margin-bottom:8px; padding:5px; background:#fff; overflow: auto; overflow-x:hidden; overflow-y:scroll;"> @@ -1363,4 +1363,5 @@ if ($lm->getIncludeTradFilename()) <li>© 2007-<?php echo date('Y'); ?></li> </ul> </body> -</html> \ No newline at end of file +</html> + diff --git a/install-dev/langs/de.php b/install-dev/langs/de.php index f5eb6869f..b7d5a366e 100644 --- a/install-dev/langs/de.php +++ b/install-dev/langs/de.php @@ -277,12 +277,9 @@ $_LANG['Other activity...'] = 'Andere activiteit...'; $_LANG['Modules'] = 'Módulos'; $_LANG['Benefits'] = 'Vorteile'; $_LANG['Create a MySQL database using phpMyAdmin (or by asking your hosting provider)'] = ''; -$_LANG['- or -'] = ''; -$_LANG['I want to'] = ''; -$_LANG['install'] = ''; -$_LANG['a new online shop with PrestaShop'] = ''; -$_LANG['update'] = ''; -$_LANG['my existing PrestaShop to a newer version'] = ''; +$_LANG['- or -'] = '- oder -'; +$_LANG['I want to <b>install</b> a new online shop with PrestaShop'] = 'Ich möchte einen neuen PrestaShop <b>installieren</b>'; +$_LANG['I want to <b>update</b> my existing PrestaShop to a newer version'] = 'Ich möchte meinen <b>aktuellen</b> PrestaShop mit einer neueren Version aktualisieren'; $_LANG['Your current version is too old, updates are possible only from version'] = ''; $_LANG['and higher'] = ''; $_LANG['PHP settings (for assistance, ask your hosting provider):'] = ''; @@ -290,4 +287,4 @@ $_LANG['Database Configuration'] = ''; $_LANG['Database login:'] = ''; $_LANG['Database password:'] = ''; $_LANG['Please create a MySQL database and then verify your settings below. If you need assistance, please ask your hosting provider for this information.'] = ''; -$_LANG['No more information'] = ''; \ No newline at end of file +$_LANG['No more information'] = ''; diff --git a/install-dev/langs/es.php b/install-dev/langs/es.php index 81000a1e7..8587e4dd8 100644 --- a/install-dev/langs/es.php +++ b/install-dev/langs/es.php @@ -281,11 +281,8 @@ $_LANG['Modules'] = 'Módulos'; $_LANG['Benefits'] = 'Beneficios'; $_LANG['Create a MySQL database using phpMyAdmin (or by asking your hosting provider)'] = 'Crear un base de datos MySQL usando phpMyAdmin (o preguntele a su proveedor de alojamiento web)'; $_LANG['- or -'] = ' - o -'; -$_LANG['I want to'] = 'Yo quiero'; -$_LANG['install'] = 'installar'; -$_LANG['a new online shop with PrestaShop'] = 'una nueva tienda online con PrestaShop'; -$_LANG['update'] = 'actualizar'; -$_LANG['my existing PrestaShop to a newer version'] = 'mi tienda PrestaShop actual a una nueva version'; +$_LANG['I want to <b>install</b> a new online shop with PrestaShop'] = 'Yo quiero <b>installar</b> una nueva tienda online con PrestaShop'; +$_LANG['I want to <b>update</b> my existing PrestaShop to a newer version'] = 'Quiero actualizar mi actual PrestaShop, a una nueva versión más reciente'; $_LANG['Your current version is too old, updates are possible only from version'] = 'Su version actual esta antigua, actualizaciones solo estan disponibles desde la version'; $_LANG['and higher'] = 'y en adelante'; $_LANG['PHP settings (for assistance, ask your hosting provider):'] = 'PHP parámetros (para assistencia, preguntale a su proveedor de alojamiento web)'; diff --git a/install-dev/langs/fr.php b/install-dev/langs/fr.php index 7dd908c73..66e12407a 100644 --- a/install-dev/langs/fr.php +++ b/install-dev/langs/fr.php @@ -287,11 +287,8 @@ $_LANG['Modules'] = 'Modules'; $_LANG['Benefits'] = 'Avantages'; $_LANG['Create a MySQL database using phpMyAdmin (or by asking your hosting provider)'] = 'Créer une base de données MySQL en utilisant phpMyAdmin (ou en demandant à votre hébergeur)'; $_LANG['- or -'] = '- ou -'; -$_LANG['I want to'] = 'Je souhaite'; -$_LANG['install'] = 'installer'; -$_LANG['a new online shop with PrestaShop'] = 'une nouvelle boutique avec PrestaShop'; -$_LANG['update'] = 'mettre à jour'; -$_LANG['my existing PrestaShop to a newer version'] = 'ma boutique PrestaShop vers une nouvelle version'; +$_LANG['I want to <b>install</b> a new online shop with PrestaShop'] = 'Je souhaite <b>installer</b> une nouvelle boutique avec PrestaShop'; +$_LANG['I want to <b>update</b> my existing PrestaShop to a newer version'] = 'Je veux <b>mettre à jour</b> ma boutique PrestaShop vers une nouvelle version'; $_LANG['Your current version is too old, updates are possible only from version'] = 'Votre version actuelle est trop ancienne, les mises à jour sont autorisées à partir de la version'; $_LANG['and higher'] = 'et versions supérieures'; $_LANG['PHP settings (for assistance, ask your hosting provider):'] = 'Paramètres PHP (Demandez de l\'aide à votre hébergeur si nécessaire)'; diff --git a/install-dev/langs/it.php b/install-dev/langs/it.php index a19e86fb0..fc60f8e75 100644 --- a/install-dev/langs/it.php +++ b/install-dev/langs/it.php @@ -266,12 +266,9 @@ $_LANG['Other activity...'] = 'Altre attività ...'; $_LANG['Modules'] = 'Moduli'; $_LANG['Benefits'] = 'Vantaggi'; $_LANG['Create a MySQL database using phpMyAdmin (or by asking your hosting provider)'] = ''; -$_LANG['- or -'] = ''; -$_LANG['I want to'] = ''; -$_LANG['install'] = ''; -$_LANG['a new online shop with PrestaShop'] = ''; -$_LANG['update'] = ''; -$_LANG['my existing PrestaShop to a newer version'] = ''; +$_LANG['- or -'] = '- o -'; +$_LANG['I want to <b>install</b> a new online shop with PrestaShop'] = 'Voglio <b>installare</b> un nuovo shop con PrestaShop'; +$_LANG['I want to <b>update</b> my existing PrestaShop to a newer version'] = 'Voglio <b>aggiornare</b> il mio PrestaShop esistente alla nuova versione'; $_LANG['Your current version is too old, updates are possible only from version'] = ''; $_LANG['and higher'] = ''; $_LANG['PHP settings (for assistance, ask your hosting provider):'] = ''; @@ -282,4 +279,6 @@ $_LANG['Please create a MySQL database and then verify your settings below. If y $_LANG['Ok, please deactivate the following modules, I will reactivate them later:'] = ''; $_LANG['You will be able to manually reactivate them in your Back Office once the update process has succeeded.'] = ''; $_LANG['No more information'] = ''; -$_LANG['If your theme is not valid, you may experience some problems in your front-office aspect, but don\'t panic ! To solve this, you can make it compatible by correcting the validators errors or by using a theme compatible with '] = ''; \ No newline at end of file +$_LANG['If your theme is not valid, you may experience some problems in your front-office aspect, but don\'t panic ! To solve this, you can make it compatible by correcting the validators errors or by using a theme compatible with '] = ''; +$_LANG['-- Select your country --'] = '-- scegliere il paese --'; +$_LANG['-- Select your timezone --'] = '-- Scegli il fuso orario --'; \ No newline at end of file diff --git a/install-dev/model.php b/install-dev/model.php index 4bab61cf6..16c43f69d 100644 --- a/install-dev/model.php +++ b/install-dev/model.php @@ -115,3 +115,4 @@ if (isset($_GET['method'])) break; } } + diff --git a/install-dev/php/hook_blocksearch_on_header.php b/install-dev/php/hook_blocksearch_on_header.php new file mode 100644 index 000000000..8a89f44bc --- /dev/null +++ b/install-dev/php/hook_blocksearch_on_header.php @@ -0,0 +1,49 @@ +<?php +/* +* 2007-2011 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Open Software License (OSL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/osl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA <contact@prestashop.com> +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision$ +* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +function hook_blocksearch_on_header() +{ + if ($id_module = Db::getInstance()->getValue('SELECT `id_module` FROM `'._DB_PREFIX_.'module` WHERE `name` = \'blocksearch\'')) + { + $id_hook = Db::getInstance()->getValue(' + SELECT `id_hook` + FROM `'._DB_PREFIX_.'hook` + WHERE `name` = \'header\' + '); + + $position = Db::getInstance()->getValue(' + SELECT MAX(`position`) + FROM `'._DB_PREFIX_.'hook_module` + WHERE `id_hook` = '.(int)$id_hook.' + '); + + Db::getInstance()->Execute(' + INSERT INTO `'._DB_PREFIX_.'hook_module` (`id_module`, `id_hook`, `position`) + VALUES ('.(int)$id_module.', '.(int)$id_hook.', '.($position+1).') + '); + } +} \ No newline at end of file diff --git a/install-dev/php/update_order_canada.php b/install-dev/php/update_order_canada.php new file mode 100644 index 000000000..692accddb --- /dev/null +++ b/install-dev/php/update_order_canada.php @@ -0,0 +1,97 @@ +<?php +/* +* 2007-2011 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Open Software License (OSL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/osl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA <contact@prestashop.com> +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision$ +* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +function update_order_canada() + { + $sql ='SHOW TABLES LIKE \''._DB_PREFIX_.'order_tax\''; + $table = Db::getInstance()->ExecuteS($sql); + + if (!count($table)) + { + Db::getInstance()->Execute(' + CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'order_tax` ( + `id_order` int(11) NOT NULL, + `tax_name` varchar(40) NOT NULL, + `tax_rate` decimal(6,3) NOT NULL, + `amount` decimal(20,6) NOT NULL + ) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8'); + + + $address_field = Configuration::get('PS_TAX_ADDRESS_TYPE'); + $sql = 'SELECT `id_order` + FROM `'._DB_PREFIX_.'orders` o + LEFT JOIN `'._DB_PREFIX_.'address` a ON (a.`id_address` = o.`'.bqSQL($address_field).'`) + LEFT JOIN `'._DB_PREFIX_.'country` c ON (c.`id_country` = a.`id_country`) + WHERE c.`iso_code` = "CA"'; + + $id_order_list = Db::getInstance()->ExecuteS($sql); + + $values = ''; + foreach ($id_order_list as $id_order) + { + $amount = array(); + $id_order = $id_order['id_order']; + $order = new Order((int)$id_order); + if (!Validate::isLoadedObject($order)) + continue; + + $products = $order->getProducts(); + foreach ($products as $product) + { + if (!array_key_exists($product['tax_name'], $amount)) + $amount[$product['tax_name']] = array('amount' => 0, 'rate' => $product['tax_rate']); + + if ($order->getTaxCalculationMethod() == PS_TAX_EXC) + { + $total_product = $product['product_price'] * $product['product_quantity']; + $amount_tmp = Tools::ps_round($total_product * ($product['tax_rate'] / 100), 2); + $amount[$product['tax_name']]['amount'] += Tools::ps_round($total_product * ($product['tax_rate'] / 100), 2); + } + else + { + $total_product = $product['product_price'] * $product['product_quantity']; + $amount_tmp = Tools::ps_round($total_product - ($total_product / (1 + ($product['tax_rate'] / 100))), 2); + $amount[$product['tax_name']]['amount'] += Tools::ps_round($total_product - ($total_product / (1 + ($product['tax_rate'] / 100))), 2); + } + } + + foreach ($amount as $tax_name => $tax_infos) + $values .= '('.(int)$order->id.', \''.pSQL($tax_name).'\', \''.pSQL($tax_infos['rate']).'\', '.(float)$tax_infos['amount'].'),'; + unset($order); + } + + if (!empty($values)) + { + $values = rtrim($values, ","); + + Db::getInstance()->Execute(' + INSERT INTO `'._DB_PREFIX_.'order_tax` (id_order, tax_name, tax_rate, amount) + VALUES '.$values); + } + } +} + diff --git a/install-dev/sql/db.sql b/install-dev/sql/db.sql index a038bb6ba..d2d80d1ba 100644 --- a/install-dev/sql/db.sql +++ b/install-dev/sql/db.sql @@ -380,14 +380,18 @@ CREATE TABLE `PREFIX_cms_category_lang` ( KEY `category_name` (`name`) ) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8; -CREATE TABLE `PREFIX_compare_product` ( - `id_compare_product` int(10) unsigned NOT NULL AUTO_INCREMENT, - `id_product` int(10) unsigned NOT NULL, - `id_guest` int(10) unsigned NOT NULL, +CREATE TABLE `PREFIX_compare` ( + `id_compare` int(10) unsigned NOT NULL auto_increment, `id_customer` int(10) unsigned NOT NULL, + PRIMARY KEY (`id_compare`) +) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8; + +CREATE TABLE `PREFIX_compare_product` ( + `id_compare` int(10) unsigned NOT NULL, + `id_product` int(10) unsigned NOT NULL, `date_add` datetime NOT NULL, `date_upd` datetime NOT NULL, - PRIMARY KEY (`id_compare_product`) + PRIMARY KEY (`id_compare`,`id_product`) ) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8; CREATE TABLE `PREFIX_configuration` ( @@ -1095,6 +1099,12 @@ CREATE TABLE `PREFIX_order_detail` ( KEY `id_order_id_order_detail` (`id_order`, `id_order_detail`) ) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8; +CREATE TABLE IF NOT EXISTS `PREFIX_order_tax` ( + `id_order` int(11) NOT NULL, + `tax_name` varchar(40) NOT NULL, + `tax_rate` decimal(6,3) NOT NULL, + `amount` decimal(20,6) NOT NULL +) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8; CREATE TABLE `PREFIX_order_cart_rule` ( `id_order_cart_rule` int(10) unsigned NOT NULL auto_increment, @@ -1544,7 +1554,7 @@ CREATE TABLE `PREFIX_specific_price` ( `id_group` INT UNSIGNED NOT NULL, `id_product_attribute` INT UNSIGNED NOT NULL, `price` DECIMAL(20, 6) NOT NULL, - `from_quantity` SMALLINT UNSIGNED NOT NULL, + `from_quantity` mediumint(8) UNSIGNED NOT NULL, `reduction` DECIMAL(20, 6) NOT NULL, `reduction_type` ENUM('amount', 'percentage') NOT NULL, `from` DATETIME NOT NULL, @@ -1668,8 +1678,8 @@ CREATE TABLE `PREFIX_store` ( `address2` varchar(128) DEFAULT NULL, `city` varchar(64) NOT NULL, `postcode` varchar(12) NOT NULL, - `latitude` decimal(10,8) DEFAULT NULL, - `longitude` decimal(10,8) DEFAULT NULL, + `latitude` decimal(11,8) DEFAULT NULL, + `longitude` decimal(11,8) DEFAULT NULL, `hours` varchar(254) DEFAULT NULL, `phone` varchar(16) DEFAULT NULL, `fax` varchar(16) DEFAULT NULL, @@ -1857,6 +1867,12 @@ PRIMARY KEY (`id_carrier`, `id_shop`), KEY `id_shop` (`id_shop`) ) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8; +CREATE TABLE `PREFIX_address_format` ( + `id_country` int(10) unsigned NOT NULL, + `format` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id_country`) +) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8; + CREATE TABLE `PREFIX_cms_shop` ( `id_cms` INT( 11 ) UNSIGNED NOT NULL, `id_shop` INT( 11 ) UNSIGNED NOT NULL , @@ -2235,4 +2251,4 @@ CREATE TABLE `PREFIX_accounting_product_zone_shop` ( `account_number` varchar(64) NOT NULL, PRIMARY KEY (`id_accounting_product_zone_shop`), UNIQUE KEY `id_product` (`id_product`,`id_shop`,`id_zone`) -) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8; +) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8; \ No newline at end of file diff --git a/install-dev/sql/db_settings_extends.sql b/install-dev/sql/db_settings_extends.sql index e1bcc62f4..3afaa0ddd 100644 --- a/install-dev/sql/db_settings_extends.sql +++ b/install-dev/sql/db_settings_extends.sql @@ -72,7 +72,7 @@ INSERT INTO `PREFIX_hook_module` (`id_module`, `id_hook`, `position`) VALUES (3, (35, 33, 2),(36, 33, 3),(37, 33, 4),(39, 37, 1),(40, 32, 8),(41, 32, 9),(42, 32, 10),(43, 32, 11),(42, 14, 6),(43, 14, 7),(44, 32, 12),(45, 32, 13),(46, 32, 15), (47, 32, 14),(48, 32, 16),(49, 32, 17),(55, 32, 22),(50, 32, 18),(51, 32, 19),(51, 45, 1),(25, 25, 1),(41, 20, 2),(52, 32, 20),(53, 32, 21),(17, 9, 2),(18, 9, 3),(24, 9, 4),(9, 9, 5), (15, 9, 6),(5, 9, 7),(8, 9, 8),(10, 9, 9),(20, 9, 10),(11, 9, 11),(16, 9, 12),(22, 9, 13),(13, 9, 14),(14, 9, 15),(12, 9, 16),(7, 9, 17),(21, 9, 18),(10, 60, 1),(10, 61, 1),(10, 62, 1), -(54, 9, 19),(10,66,1); +(54, 9, 19),(10,66,1),(19,9,20); CREATE TABLE `PREFIX_pagenotfound` ( `id_pagenotfound` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, @@ -866,6 +866,85 @@ INSERT INTO `PREFIX_search_word` (`id_word`, `id_lang`, `word`) VALUES (1, 1, 'i INSERT INTO `PREFIX_access` (`id_profile`, `id_tab`, `view`, `add`, `edit`, `delete`) (SELECT 2, id_tab, 1, 1, 1, 1 FROM PREFIX_tab); INSERT INTO `PREFIX_access` (`id_profile`, `id_tab`, `view`, `add`, `edit`, `delete`) VALUES +(2, 1, 1, 1, 1, 1), +(2, 2, 1, 1, 1, 1), +(2, 3, 1, 1, 1, 1), +(2, 4, 0, 0, 0, 0), +(2, 5, 1, 1, 1, 1), +(2, 6, 0, 0, 0, 0), +(2, 7, 0, 0, 0, 0), +(2, 8, 0, 0, 0, 0), +(2, 9, 0, 0, 0, 0), +(2, 10, 0, 0, 0, 0), +(2, 11, 0, 0, 0, 0), +(2, 12, 1, 1, 1, 1), +(2, 13, 1, 1, 1, 1), +(2, 14, 0, 0, 0, 0), +(2, 15, 0, 0, 0, 0), +(2, 16, 0, 0, 0, 0), +(2, 17, 1, 1, 1, 1), +(2, 18, 0, 0, 0, 0), +(2, 19, 0, 0, 0, 0), +(2, 20, 1, 1, 1, 1), +(2, 21, 1, 1, 1, 1), +(2, 22, 0, 0, 0, 0), +(2, 23, 0, 0, 0, 0), +(2, 24, 0, 0, 0, 0), +(2, 26, 0, 0, 0, 0), +(2, 27, 0, 0, 0, 0), +(2, 28, 0, 0, 0, 0), +(2, 29, 0, 0, 0, 0), +(2, 30, 0, 0, 0, 0), +(2, 31, 0, 0, 0, 0), +(2, 32, 0, 0, 0, 0), +(2, 33, 0, 0, 0, 0), +(2, 34, 1, 1, 1, 1), +(2, 35, 0, 0, 0, 0), +(2, 36, 0, 0, 0, 0), +(2, 37, 0, 0, 0, 0), +(2, 38, 0, 0, 0, 0), +(2, 39, 0, 0, 0, 0), +(2, 40, 0, 0, 0, 0), +(2, 41, 0, 0, 0, 0), +(2, 42, 1, 1, 1, 1), +(2, 43, 0, 0, 0, 0), +(2, 44, 0, 0, 0, 0), +(2, 46, 0, 0, 0, 0), +(2, 47, 1, 1, 1, 1), +(2, 48, 0, 0, 0, 0), +(2, 49, 1, 1, 1, 1), +(2, 51, 0, 0, 0, 0), +(2, 52, 0, 0, 0, 0), +(2, 53, 0, 0, 0, 0), +(2, 54, 0, 0, 0, 0), +(2, 55, 1, 1, 1, 1), +(2, 56, 0, 0, 0, 0), +(2, 57, 0, 0, 0, 0), +(2, 58, 0, 0, 0, 0), +(2, 59, 1, 1, 1, 1), +(2, 60, 1, 1, 1, 1), +(2, 61, 0, 0, 0, 0), +(2, 62, 0, 0, 0, 0), +(2, 63, 0, 0, 0, 0), +(2, 64, 0, 0, 0, 0), +(2, 65, 0, 0, 0, 0), +(2, 66, 0, 0, 0, 0), +(2, 67, 0, 0, 0, 0), +(2, 68, 0, 0, 0, 0), +(2, 69, 0, 0, 0, 0), +(2, 70, 0, 0, 0, 0), +(2, 71, 0, 0, 0, 0), +(2, 72, 0, 0, 0, 0), +(2, 73, 1, 1, 1, 1), +(2, 80, 0, 0, 0, 0), +(2, 81, 0, 0, 0, 0), +(2, 82, 0, 0, 0, 0), +(2, 83, 0, 0, 0, 0), +(2, 84, 0, 0, 0, 0), +(2, 85, 0, 0, 0, 0), +(2, 86, 0, 0, 0, 0), +(2, 87, 0, 0, 0, 0), +(2, 88, 1, 1, 1, 1), (3, 1, 1, 1, 1, 1), (3, 2, 1, 1, 1, 1), (3, 3, 1, 1, 1, 1), @@ -945,7 +1024,6 @@ INSERT INTO `PREFIX_access` (`id_profile`, `id_tab`, `view`, `add`, `edit`, `del (3, 86, 0, 0, 0, 0), (3, 87, 0, 0, 0, 0), (3, 88, 0, 0, 0, 0), -(3, 89, 0, 0, 0, 0), (3, 90, 0, 0, 0, 0), (3, 91, 0, 0, 0, 0), (3, 92, 0, 0, 0, 0), @@ -1041,6 +1119,7 @@ INSERT INTO `PREFIX_access` (`id_profile`, `id_tab`, `view`, `add`, `edit`, `del (4, 85, 0, 0, 0, 0), (4, 86, 0, 0, 0, 0), (4, 87, 0, 0, 0, 0), +<<<<<<< .working (4, 88, 0, 0, 0, 0), (4, 89, 0, 0, 0, 0), (4, 90, 0, 0, 0, 0), @@ -1156,7 +1235,9 @@ INSERT INTO `PREFIX_access` (`id_profile`, `id_tab`, `view`, `add`, `edit`, `del (5, 103, 1, 1, 1, 1), (5, 104, 1, 1, 1, 1), (5, 105, 0, 0, 0, 0), -(5, 106, 0, 0, 0, 0); +(5, 106, 0, 0, 0, 0), +(4, 88, 1, 1, 1, 1); +>>>>>>> .merge-right.r10309 INSERT INTO `PREFIX_module_access` (`id_profile`, `id_module`, `configure`, `view`) (SELECT 2, id_module, 0, 1 FROM PREFIX_module); INSERT INTO `PREFIX_module_access` (`id_profile`, `id_module`, `configure`, `view`) (SELECT 3, id_module, 0, 1 FROM PREFIX_module); diff --git a/install-dev/sql/db_settings_lite.sql b/install-dev/sql/db_settings_lite.sql index 9069821cb..e2ee7f1db 100644 --- a/install-dev/sql/db_settings_lite.sql +++ b/install-dev/sql/db_settings_lite.sql @@ -1052,8 +1052,8 @@ INSERT INTO `PREFIX_tab_lang` (`id_lang`, `id_tab`, `name`) VALUES INSERT INTO `PREFIX_tab_lang` (`id_lang`, `id_tab`, `name`) VALUES (4, 1, 'Katalog'),(4, 2, 'Kunden'),(4, 3, 'Bestellungen'),(4, 4, 'Zahlung'), (4, 5, 'Versandkosten'),(4, 6, 'Statistik'),(4, 7, 'Module'),(4, 8, 'Voreinstellungen'),(4, 9, 'Tools'),(4, 10, 'Hersteller'),(4, 11, 'Attribute und Gruppen'), -(4, 12, 'Adressen'),(4, 13, 'Status'),(4, 14, 'Gutscheine'),(4, 15, 'Währungen'),(4, 16, 'Steuern'),(4, 17, 'Lieferanten'),(4, 18, 'Länder'), -(4, 19, 'Zonen'),(4, 20, 'Preislagen'),(4, 21, 'Gewichtsklassen'),(4, 22, 'Positionen'),(4, 23, 'Datenbank'),(4, 24, 'E-Mail'),(4, 26, 'Bild'), +(4, 12, 'Adressen'),(4, 13, 'Status'),(4, 14, 'Gutscheine'),(4, 15, 'Währungen'),(4, 16, 'Steuern'),(4, 17, 'Versanddienst'),(4, 18, 'Länder'), +(4, 19, 'Zonen'),(4, 20, 'Preisspanne'),(4, 21, 'Gewichtsklassen'),(4, 22, 'Positionen'),(4, 23, 'Datenbank'),(4, 24, 'E-Mail'),(4, 26, 'Bild'), (4, 27, 'Produkte'),(4, 28, 'Kontakte'),(4, 29, 'Mitarbeiter'),(4, 30, 'Profile'),(4, 31, 'Berechtigungen'),(4, 32, 'Sprachen'),(4, 33, 'Übersetzungen'), (4, 34, 'Zulieferer'),(4, 35, 'Tabs'),(4, 36, 'Funktionen'),(4, 37, 'Schnellzugriff'),(4, 38, 'Themen'),(4, 39, 'Kontaktinformation'),(4, 40, 'Alias'), (4, 41, 'Import'),(4, 42, 'Rechnungen'),(4, 43, 'Suche'),(4, 44, 'Lokalisierung'),(4, 46, 'Staaten'),(4, 47, 'Warenrücksendungen'),(4, 48, 'PDF'), @@ -1061,6 +1061,7 @@ INSERT INTO `PREFIX_tab_lang` (`id_lang`, `id_tab`, `name`) VALUES (4, 55, 'Lieferscheine'),(4, 56, 'SEO & URLs'),(4, 57, 'CMS'),(4, 58, 'Image Mapping'),(4, 59, 'Kundennachrichten'),(4, 60, 'Tracking'), (4, 61, 'Suchmaschinen'),(4, 62, 'Referrer'),(4, 63, 'Gruppen'),(4, 64, 'Generatoren'),(4, 65, 'Warenkörbe'),(4, 66, 'Tags'),(4, 67, 'Suche'), (4, 68, 'Anhänge'),(4, 69, 'Konfigurationsinformationen'),(4, 70, 'Leistung'),(4, 71, 'Kundenservice'),(4, 72, 'Webservice'),(4, 73, 'Lagerbewegungen'), +<<<<<<< .working (4, 80, 'Module und Themenkatalog'),(4, 81, 'Mein Konto'),(4, 82, 'Shops'),(4, 83, 'Themen'),(4, 84, 'Geotargeting'),(4, 85, 'Steuerregeln'),(4, 86, 'Log'), (4, 87,'Home'), (4, 88, 'Shops'), (4, 89, 'Group Shops'), (4, 90, 'Shop Urls'),(4, 91, 'Genders'),(4, 92, 'SQL Manager'), (4, 93, 'Products'), diff --git a/install-dev/sql/upgrade/1.4.6.0.sql b/install-dev/sql/upgrade/1.4.6.0.sql new file mode 100644 index 000000000..11a9fee16 --- /dev/null +++ b/install-dev/sql/upgrade/1.4.6.0.sql @@ -0,0 +1,25 @@ +SET NAMES 'utf8'; + +/* PHP:update_order_canada(); */; + +CREATE TABLE IF NOT EXISTS `PREFIX_compare` ( + `id_compare` int(10) unsigned NOT NULL AUTO_INCREMENT, + `id_customer` int(10) unsigned NOT NULL, + PRIMARY KEY (`id_compare`) +) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8; + +ALTER TABLE `PREFIX_compare_product` DROP `id_compare_product` , DROP `id_guest` , DROP `id_customer` ; + +ALTER TABLE `PREFIX_compare_product` + ADD `id_compare` int(10) unsigned NOT NULL, + ADD PRIMARY KEY( + `id_compare`, + `id_product`); + +ALTER TABLE `PREFIX_store` CHANGE `latitude` `latitude` DECIMAL(11, 8) NULL DEFAULT NULL; +ALTER TABLE `PREFIX_store` CHANGE `longitude` `longitude` DECIMAL(11, 8) NULL DEFAULT NULL; + +ALTER TABLE `PREFIX_address_format` ADD PRIMARY KEY (`id_country`); +ALTER TABLE `PREFIX_address_format` DROP INDEX `country`; + +/* PHP:hook_blocksearch_on_header(); */; diff --git a/install-dev/xml/doUpgrade.php b/install-dev/xml/doUpgrade.php index 627d022d4..fa5a06ad8 100644 --- a/install-dev/xml/doUpgrade.php +++ b/install-dev/xml/doUpgrade.php @@ -141,6 +141,10 @@ require_once(_PS_INSTALLER_PHP_UPGRADE_DIR_.'update_feature_detachable_cache.php require_once(_PS_INSTALLER_PHP_UPGRADE_DIR_.'add_accounting_tab.php'); +require_once(_PS_INSTALLER_PHP_UPGRADE_DIR_.'hook_blocksearch_on_header.php'); + +require_once(_PS_INSTALLER_PHP_UPGRADE_DIR_.'update_order_canada.php'); + //old version detection global $oldversion, $logger; $oldversion = false; diff --git a/js/attributesBack.js b/js/attributesBack.js index ae3a8a2a9..eab86ba2d 100644 --- a/js/attributesBack.js +++ b/js/attributesBack.js @@ -39,11 +39,9 @@ virtual_product_nb_days, is_shareable) $('#attribute_quantity').html(quantity); $('#attribute_quantity').show(); $('#attr_qty_stock').show(); - if(available_date != undefined) - getE('available_date').value = available_date; - else - getE('available_date').value = '0000-00-00'; - getE('minimal_quantity').value = minimal_quantity; + + $('#attribute_minimal_quantity').val(minimal_quantity); + getE('attribute_reference').value = reference; getE('virtual_product_name_attribute').value = virtual_product_name_attribute; diff --git a/js/hookLiveEdit.js b/js/hookLiveEdit.js index b1edb04af..d9a401908 100644 --- a/js/hookLiveEdit.js +++ b/js/hookLiveEdit.js @@ -3,7 +3,6 @@ var hooks_list = new Array(); var hookable_list = new Array(); var timer; $(document).ready(function() { - $('body').css('margin-bottom', '45px'); $('#fancy').fancybox({ autoDimensions: true, @@ -23,8 +22,7 @@ $(document).ready(function() { if (href != undefined && href != '#' && href.substr(0, baseDir.length) == baseDir) { if (search.length == 0) { $(this).attr('search', hrefAdd); - } - else { + } else { $(this).attr('search', search + '&' + hrefAdd); } } @@ -37,23 +35,19 @@ $(document).ready(function() { }); return false; }); - $('#cancelMove').unbind('click').click(function() { $('#' + cancelMove + '').sortable('cancel'); return false; }); - $('#saveLiveEdit').unbind('click').click(function() { saveModulePosition(); return false; }); - $('#closeLiveEdit').unbind('click').click(function() { $("#live_edit_feedback_str").html('<div style="padding:10px;"><p style="margin-bottom:10px;">' + confirmClose + '</p><p style="height:1.6em;display:block"><a style="margin:auto;float:left" class="button" href="#" onclick="closeLiveEdit();">' + confirm + '</a><a style="margin:auto;float:right;" class="button" href="#" onclick="closeFancybox();">' + cancel + '</a></p></div>'); $("#fancy").attr('href', '#live_edit_feedback'); $("#fancy").trigger("click"); }); - $('.add_module_live_edit').unbind('click').click(function() { $("#live_edit_feedback_str").html('<div style="padding:10px"><img src="img/loadingAnimation.gif"></div>'); $("#fancy").attr('href', '#live_edit_feedback'); @@ -62,17 +56,14 @@ $(document).ready(function() { getHookableModuleList(id.substr(4, id.length)); return false; }); - $('.dndHook').each(function() { var id_hook = $(this).attr('id'); var new_target = ''; var old_target = ''; var cancel = false; - $('#' + id_hook + '').sortable({ opacity: 0.5, cursor: 'move', - connectWith: '.dndHook', receive: function(event, ui) { if (new_target == '') { @@ -83,11 +74,9 @@ $(document).ready(function() { new_target = ui.item[0].parentNode.id; }, stop: function(event, ui) { - if (cancel) { $(this).sortable('cancel'); - } - else { + } else { old_target = event.target.id; cancelMove = old_target; if (new_target == '') new_target = old_target; @@ -103,8 +92,7 @@ $(document).ready(function() { border: '1px solid #72CB67', background: '#DFFAD3' }); - } - else { + } else { ui.placeholder.css({ visibility: 'visible', border: '1px solid #EC9B9B', @@ -126,17 +114,12 @@ function getHookableList() { dataType: 'json', data: 'ajax=true&getHookableList&hooks_list=' + hooks_list + '&modules_list=' + modules_list + '&id_shop=' + get('id_shop'), success: function(jsonData) { - if (jsonData.hasError) - { + if (jsonData.hasError) { var errors = ''; - for(error in jsonData.errors) - //IE6 bug fix - if(error != 'indexOf') - errors += jsonData.errors[error] + "\n"; + for (error in jsonData.errors) //IE6 bug fix + if (error != 'indexOf') errors += jsonData.errors[error] + "\n"; alert(errors); - } - else - hookable_list = jsonData; + } else hookable_list = jsonData; }, error: function(XMLHttpRequest, textStatus, errorThrown) { $('#live_edit_feedback_str').html('<div class="live_edit_feed_back_ko"><img src="img/admin/error.png"><h3>TECHNICAL ERROR:</h3>' + loadFail + '<br><br><a style="margin:auto" class="button" href="#" onclick="closeFancybox();">' + close + '</a></div>'); @@ -145,9 +128,7 @@ function getHookableList() { } }); } - function getHookableModuleList(hook) { - $.ajax({ type: 'GET', url: baseDir + ad + '/ajax.php', @@ -155,7 +136,6 @@ function getHookableModuleList(hook) { dataType: 'json', data: 'ajax=true&getHookableModuleList&hook=' + hook + '&id_shop=' + get('id_shop'), success: function(jsonData) { - var select = '<select id="select_module">'; for (var i = 0; i < jsonData.length; i++) { select += '<option value="' + jsonData[i].id + '">' + jsonData[i].name + '</option>'; @@ -168,7 +148,6 @@ function getHookableModuleList(hook) { } }); } - function saveModulePosition() { $("#live_edit_feedback_str").html('<div style="padding:10px"><img src="img/loadingAnimation.gif"></div>'); $("#fancy").attr('href', '#live_edit_feedback'); @@ -197,17 +176,14 @@ function saveModulePosition() { } }); } - function closeFancybox() { clearTimeout(timer); $.fancybox.close(); $('#live_edit_feedback_str').html(''); } - function closeLiveEdit(){ window.location.href = window.location.protocol+'//'+window.location.host+window.location.pathname; } - function hideFeedback() { $('#live_edit_feed_back').fadeOut('slow', function() { $.fancybox.close(); @@ -221,8 +197,7 @@ function get(name) { var results = regex.exec(window.location.href); if (results == null) { return ""; - } - else { + } else { return results[1]; } } diff --git a/js/jquery/jquery.validate.creditcard2-1.0.1.js b/js/jquery/jquery.validate.creditcard2-1.0.1.js new file mode 100644 index 000000000..47e2b46d5 --- /dev/null +++ b/js/jquery/jquery.validate.creditcard2-1.0.1.js @@ -0,0 +1,95 @@ +/* +* jQuery creditcard2 extension for the jQuery Validation plugin (http://plugins.jquery.com/project/validate). +* Ported from http://www.braemoor.co.uk/software/creditcard.shtml by John Gardner, with some enhancements. +* +* Author: Jack Killpatrick +* Copyright (c) 2010 iHwy, Inc. +* +* Version 1.0.1 (1/12/2010) +* Tested with jquery 1.2.6, but will probably work with earlier versions. +* +* History: +* 1.0.0 - released 2008-11-17 +* 1.0.1 - released 2010-01-12 -> updated card prefixes based on data at: http://en.wikipedia.org/wiki/Credit_card_number and added support for LaserCard +* +* Visit http://www.ihwy.com/labs/jquery-validate-credit-card-extension.aspx for usage information +* +* Dual licensed under the MIT and GPL licenses: +* http://www.opensource.org/licenses/mit-license.php +* http://www.gnu.org/licenses/gpl.html +*/ + +function validateCC(cardNo, cardName) +{ +//jQuery.validator.addMethod("creditcard2", function(value, element, param) { + var cards = new Array(); + cards[0] = { cardName: "Visa", lengths: "13,16", prefixes: "4", checkdigit: true }; + cards[1] = { cardName: "MasterCard", lengths: "16", prefixes: "51,52,53,54,55", checkdigit: true }; + cards[2] = { cardName: "DinersClub", lengths: "14,16", prefixes: "305,36,38,54,55", checkdigit: true }; + cards[3] = { cardName: "CarteBlanche", lengths: "14", prefixes: "300,301,302,303,304,305", checkdigit: true }; + cards[4] = { cardName: "AmEx", lengths: "15", prefixes: "34,37", checkdigit: true }; + cards[5] = { cardName: "Discover", lengths: "16", prefixes: "6011,622,64,65", checkdigit: true }; + cards[6] = { cardName: "JCB", lengths: "16", prefixes: "35", checkdigit: true }; + cards[7] = { cardName: "enRoute", lengths: "15", prefixes: "2014,2149", checkdigit: true }; + cards[8] = { cardName: "Solo", lengths: "16,18,19", prefixes: "6334, 6767", checkdigit: true }; + cards[9] = { cardName: "Switch", lengths: "16,18,19", prefixes: "4903,4905,4911,4936,564182,633110,6333,6759", checkdigit: true }; + cards[10] = { cardName: "Maestro", lengths: "12,13,14,15,16,18,19", prefixes: "5018,5020,5038,6304,6759,6761", checkdigit: true }; + cards[11] = { cardName: "VisaElectron", lengths: "16", prefixes: "417500,4917,4913,4508,4844", checkdigit: true }; + cards[12] = { cardName: "LaserCard", lengths: "16,17,18,19", prefixes: "6304,6706,6771,6709", checkdigit: true }; + + var cardType = -1; + for (var i = 0; i < cards.length; i++) { + if (cardName.toLowerCase() == cards[i].cardName.toLowerCase()) { + cardType = i; + break; + } + } + if (cardType == -1) { return false; } // card type not found + + cardNo = cardNo.replace(/[\s-]/g, ""); // remove spaces and dashes + if (cardNo.length == 0) { return false; } // no length + + var cardexp = /^[0-9]{13,19}$/; + if (!cardexp.exec(cardNo)) { return false; } // has chars or wrong length + + cardNo = cardNo.replace(/\D/g, ""); // strip down to digits + + if (cards[cardType].checkdigit) { + var checksum = 0; + var mychar = ""; + var j = 1; + + var calc; + for (i = cardNo.length - 1; i >= 0; i--) { + calc = Number(cardNo.charAt(i)) * j; + if (calc > 9) { + checksum = checksum + 1; + calc = calc - 10; + } + checksum = checksum + calc; + if (j == 1) { j = 2 } else { j = 1 }; + } + + if (checksum % 10 != 0) { return false; } // not mod10 + } + + var lengthValid = false; + var prefixValid = false; + var prefix = new Array(); + var lengths = new Array(); + + prefix = cards[cardType].prefixes.split(","); + for (i = 0; i < prefix.length; i++) { + var exp = new RegExp("^" + prefix[i]); + if (exp.test(cardNo)) prefixValid = true; + } + if (!prefixValid) { return false; } // invalid prefix + + lengths = cards[cardType].lengths.split(","); + for (j = 0; j < lengths.length; j++) { + if (cardNo.length == lengths[j]) lengthValid = true; + } + if (!lengthValid) { return false; } // wrong length + + return true; +} diff --git a/localization/ca.xml b/localization/ca.xml index f1a670034..5ede757a5 100644 --- a/localization/ca.xml +++ b/localization/ca.xml @@ -51,5 +51,9 @@ <unit type="base_distance" value="ft" /> <unit type="long_distance" value="mi" /> </units> + <configurations> + <configuration name="PS_TAX_DISPLAY" value="1" /> + </configurations> + <group_default price_display_method="1" /> </localizationPack> diff --git a/modules/authorizeaim/authorizeaim.php b/modules/authorizeaim/authorizeaim.php index 116f1706f..2d9e784b3 100755 --- a/modules/authorizeaim/authorizeaim.php +++ b/modules/authorizeaim/authorizeaim.php @@ -1,6 +1,6 @@ <?php /* -* 2007-2011 PrestaShop +* 2007-2011 PrestaShop * * NOTICE OF LICENSE * @@ -27,7 +27,7 @@ if (!defined('_PS_VERSION_')) exit; - + class authorizeAIM extends PaymentModule { public function __construct() @@ -46,19 +46,19 @@ class authorizeAIM extends PaymentModule /* For 1.4.3 and less compatibility */ $updateConfig = array( - 'PS_OS_CHEQUE' => 1, - 'PS_OS_PAYMENT' => 2, - 'PS_OS_PREPARATION' => 3, - 'PS_OS_SHIPPING' => 4, - 'PS_OS_DELIVERED' => 5, + 'PS_OS_CHEQUE' => 1, + 'PS_OS_PAYMENT' => 2, + 'PS_OS_PREPARATION' => 3, + 'PS_OS_SHIPPING' => 4, + 'PS_OS_DELIVERED' => 5, 'PS_OS_CANCELED' => 6, - 'PS_OS_REFUND' => 7, - 'PS_OS_ERROR' => 8, - 'PS_OS_OUTOFSTOCK' => 9, - 'PS_OS_BANKWIRE' => 10, - 'PS_OS_PAYPAL' => 11, + 'PS_OS_REFUND' => 7, + 'PS_OS_ERROR' => 8, + 'PS_OS_OUTOFSTOCK' => 9, + 'PS_OS_BANKWIRE' => 10, + 'PS_OS_PAYPAL' => 11, 'PS_OS_WS_PAYMENT' => 12); - + foreach ($updateConfig as $u => $v) if (!Configuration::get($u) || (int)Configuration::get($u) < 1) { @@ -75,8 +75,8 @@ class authorizeAIM extends PaymentModule public function install() { - return (parent::install() AND $this->registerHook('orderConfirmation') AND - $this->registerHook('payment') AND Configuration::updateValue('AUTHORIZE_AIM_DEMO', 1)); + return (parent::install() && $this->registerHook('orderConfirmation') && $this->registerHook('payment') + AND $this->registerHook('header') && Configuration::updateValue('AUTHORIZE_AIM_DEMO', 1)); } public function uninstall() @@ -94,15 +94,15 @@ class authorizeAIM extends PaymentModule public function hookOrderConfirmation($params) { - if ($params['objOrder']->module != $this->name) + if ($params['objOrder']->module != $this->name) return; - if ($params['objOrder']->getCurrentState() != Configuration::get('PS_OS_ERROR')) + if ($params['objOrder']->getCurrentState() != Configuration::get('PS_OS_ERROR')) $this->context->smarty->assign(array('status' => 'ok', 'id_order' => intval($params['objOrder']->id))); else $this->context->smarty->assign('status', 'failed'); - return $this->display(__FILE__, 'hookorderconfirmation.tpl'); + return $this->display(__FILE__, 'hookorderconfirmation.tpl'); } public function getContent() @@ -165,7 +165,7 @@ class authorizeAIM extends PaymentModule if (Configuration::get('PS_SSL_ENABLED') || (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off')) { $invoiceAddress = new Address((int)$params['cart']->id_address_invoice); - + $authorizeAIMParams = array(); $authorizeAIMParams['x_login'] = Configuration::get('AUTHORIZE_AIM_LOGIN_ID'); $authorizeAIMParams['x_tran_key'] = Configuration::get('AUTHORIZE_AIM_KEY'); @@ -182,7 +182,7 @@ class authorizeAIM extends PaymentModule $authorizeAIMParams['x_zip'] = $invoiceAddress->postcode; $authorizeAIMParams['x_first_name'] = $this->context->customer->firstname; $authorizeAIMParams['x_last_name'] = $this->context->customer->lastname; - + $isFailed = Tools::getValue('aimerror'); $cards = array(); @@ -198,31 +198,35 @@ class authorizeAIM extends PaymentModule return $this->display(__FILE__, 'authorizeaim.tpl'); } } - - /** - * Set the detail of a payment - Call before the validate order init - * correctly the pcc object - * See Authorize documentation to know the associated key => value - * @param array fields - */ - public function setTransactionDetail($response) - { - // If Exist we can store the details - if (isset($this->pcc)) - { - $this->pcc->transaction_id = (string)$response[6]; - + + public function hookHeader() + { + Tools::addJS(_PS_JS_DIR_.'jquery/jquery.validate.creditcard2-1.0.1.js'); + } + + /** + * Set the detail of a payment - Call before the validate order init + * correctly the pcc object + * See Authorize documentation to know the associated key => value + * @param array fields + */ + public function setTransactionDetail($response) + { + // If Exist we can store the details + if (isset($this->pcc)) + { + $this->pcc->transaction_id = (string)$response[6]; + // 50 => Card number (XXXX0000) $this->pcc->card_number = (string)substr($response[50], -4); - + // 51 => Card Mark (Visa, Master card) $this->pcc->card_brand = (string)$response[51]; - + $this->pcc->card_expiration = (string)Tools::getValue('x_exp_date'); - + // 68 => Owner name $this->pcc->card_holder = (string)$response[68]; - } - } + } + } } -?> diff --git a/modules/authorizeaim/authorizeaim.tpl b/modules/authorizeaim/authorizeaim.tpl index 41ef2305c..47df17b28 100755 --- a/modules/authorizeaim/authorizeaim.tpl +++ b/modules/authorizeaim/authorizeaim.tpl @@ -30,22 +30,14 @@ <p style="color: red;">{l s='Error, please verify the card information' mod='authorizeaim'}</p> {/if} - <form id="aut" name="authorizeaim_form" action="{$module_dir}validation.php" method="post"> + <form id="aut" name="authorizeaim_form" id="authorizeaim_form" action="{$module_dir}validation.php" method="post"> <span style="border: 1px solid #595A5E;display: block;padding: 0.6em;text-decoration: none;margin-left: 0.7em;"> - <a id="click_authorizeaim" href="#" title="{l s='Pay with authorizeaim' mod='authorizeaim'}" style="display: block;text-decoration: none;"> - {if $cards.visa == 1} - <img src="{$module_dir}cards/visa.gif" alt="{l s='visa logo' mod='authorizeaim'}" /> - {/if} - {if $cards.mastercard == 1} - <img src="{$module_dir}cards/mastercard.gif" alt="{l s='mastercard logo' mod='authorizeaim'}" /> - {/if} - {if $cards.discover == 1} - <img src="{$module_dir}cards/discover.gif" alt="{l s='discover logo' mod='authorizeaim'}" /> - {/if} - {if $cards.ax == 1} - <img src="{$module_dir}cards/ax.gif" alt="{l s='american express logo' mod='authorizeaim'}" /> - {/if} - {l s='Secured credit card payment with Authorize.net' mod='authorizeaim'} + <a id="click_authorizeaim" href="#" title="{l s='Pay with authorizeaim' mod='authorizeaim'}" style="display: block;text-decoration: none; font-weight: bold;"> + {if $cards.visa == 1}<img src="{$module_dir}cards/visa.gif" alt="{l s='visa logo' mod='authorizeaim'}" style="vertical-align: middle;" />{/if} + {if $cards.mastercard == 1}<img src="{$module_dir}cards/mastercard.gif" alt="{l s='mastercard logo' mod='authorizeaim'}" style="vertical-align: middle;" />{/if} + {if $cards.discover == 1}<img src="{$module_dir}cards/discover.gif" alt="{l s='discover logo' mod='authorizeaim'}" style="vertical-align: middle;" />{/if} + {if $cards.ax == 1}<img src="{$module_dir}cards/ax.gif" alt="{l s='american express logo' mod='authorizeaim'}" style="vertical-align: middle;" />{/if} +   {l s='Secured credit card payment with Authorize.net' mod='authorizeaim'} </a> {if $isFailed == 0} @@ -53,16 +45,28 @@ {else} <div id="aut2"> {/if} - <br /> + <br /><br /> - <img src="{$module_dir}logoa.gif" alt="secure payment" style="float: left;margin-top:40px;"/> + <div style="width: 136px; height: 165px; float: left; padding-top:40px; padding-right: 20px; border-right: 1px solid #DDD;"> + <img src="{$module_dir}logoa.gif" alt="secure payment" /> + </div> {foreach from=$p key=k item=v} <input type="hidden" name="{$k}" value="{$v}" /> {/foreach} - <label style="margin-left: 50px;display: block;width: 85px;float: left;">{l s='Full name' mod='authorizeaim'}</label> <input type="text" name="name" size="20" maxlength="25S" /><img src="{$module_dir}secure.png" alt="" style="margin-left: 5px;" /><br /><br /> - <label style="margin-left: 50px;display: block;width: 85px;float: left;">{l s='Card number' mod='authorizeaim'}</label> <input type="text" id="ccn" name="x_card_num" size="16" maxlength="16" autocomplete="Off"/><img src="{$module_dir}secure.png" alt="" style="margin-left: 5px;" /><br /><br /> - <label style="margin-left: 50px;display: block;width: 85px;float: left;">{l s='Expiration date' mod='authorizeaim'}</label> + <label style="margin-top: 4px; margin-left: 40px;display: block;width: 90px;float: left;">{l s='Full name' mod='authorizeaim'}</label> <input type="text" name="name" id="fullname" size="30" maxlength="25S" /><img src="{$module_dir}secure.png" alt="" style="margin-left: 5px;" /><br /><br /> + + <label style="margin-top: 4px; margin-left: 40px;display: block;width: 90px;float: left;">{l s='Card Type' mod='authorizeaim'}</label> + <select id="cardType"> + {if $cards.ax == 1}<option value="AmEx">American Express</option>{/if} + {if $cards.visa == 1}<option value="Visa">Visa</option>{/if} + {if $cards.mastercard == 1}<option value="MasterCard">MasterCard</option>{/if} + {if $cards.discover == 1}<option value="Discover">Discover</option>{/if} + </select> + <img src="{$module_dir}secure.png" alt="" style="margin-left: 5px;" /><br /><br /> + + <label style="margin-top: 4px; margin-left: 40px;display: block;width: 90px;float: left;">{l s='Card number' mod='authorizeaim'}</label> <input type="text" name="x_card_num" id="cardnum" size="30" maxlength="16" autocomplete="Off" /><img src="{$module_dir}secure.png" alt="" style="margin-left: 5px;" /><br /><br /> + <label style="margin-top: 4px; margin-left: 40px;display: block;width: 90px;float: left;">{l s='Expiration date' mod='authorizeaim'}</label> <select id="x_exp_date_m" name="x_exp_date_m" style="width:60px;">{section name=date_m start=01 loop=13} <option value="{$smarty.section.date_m.index}">{$smarty.section.date_m.index}</option>{/section} </select> @@ -71,15 +75,16 @@ <option value="{$smarty.section.date_y.index}">20{$smarty.section.date_y.index}</option>{/section} </select> <img src="{$module_dir}secure.png" alt="" style="margin-left: 5px;" /><br /><br /> - <label style="margin-left: 186px;display: block;width: 85px;float: left;">{l s='CVV' mod='authorizeaim'}</label> <input type="text" name="x_card_code" size="4" maxlength="4" /><img src="{$module_dir}secure.png" alt="" style="margin-left: 5px;"/> <img src="{$module_dir}help.png" id="cvv_help" title="{l s='the 3 last digits on the back of your credit card' mod='authorizeaim'}" alt="" /><br /><br /> + <label style="margin-top: 4px; margin-left: 40px;display: block;width: 90px;float: left;">{l s='CVV' mod='authorizeaim'}</label> <input type="text" name="x_card_code" id="x_card_code" size="4" maxlength="4" /><img src="{$module_dir}secure.png" alt="" style="margin-left: 5px;"/> <img src="{$module_dir}help.png" id="cvv_help" title="{l s='the 3 last digits on the back of your credit card' mod='authorizeaim'}" alt="" /><br /><br /> <img src="{$module_dir}cvv.png" id="cvv_help_img" alt=""style="display: none;margin-left: 211px;" /> - <input type="button" id="asubmit" value="{l s='Validate order' mod='authorizeaim'}" style="margin-left: 236px;" class="button"/> + <input type="button" id="asubmit" value="{l s='Validate order' mod='authorizeaim'}" style="margin-left: 129px; padding-left: 25px; padding-right: 25px;" class="button" /> </div> </span> </form> </p> <script type="text/javascript"> - var mess_error = "{l s='Your card number is false' mod='authorizeaim' js=1}"; + var mess_error = "{l s='Please check your credit card information (Credit card type, number and expiration date)' mod='authorizeaim' js=1}"; + var mess_error2 = "{l s='Please specify your Full Name' mod='authorizeaim' js=1}"; {literal} $(document).ready(function(){ $('#x_exp_date_m').children('option').each(function() @@ -107,9 +112,14 @@ $('#cvv_help').unbind(); }); - $('#asubmit').click(function(){ - if ($('#ccn').val() < 13) + $('#asubmit').click(function() { + if ($('#fullname').val() == '') + { + alert(mess_error2); + } + else if (!validateCC($('#cardnum').val(), $('#cardType').val()) || $('#x_card_code').val() == '') + { alert(mess_error); } else @@ -118,5 +128,6 @@ } }); }); + {/literal} -</script> +</script> \ No newline at end of file diff --git a/modules/autoupgrade/AdminSelfUpgrade.php b/modules/autoupgrade/AdminSelfUpgrade.php index 8aeb8c242..c945baaee 100644 --- a/modules/autoupgrade/AdminSelfUpgrade.php +++ b/modules/autoupgrade/AdminSelfUpgrade.php @@ -49,7 +49,7 @@ if(empty($_POST['action']) OR !in_array($_POST['action'],array('upgradeDb'))) // Add Upgrader class : if > 1.4.5.0 , uses core class // otherwise, use Upgrader.php in modules. // in both cases, use override if files exists - if (!version_compare(_PS_VERSION_,'1.4.5.0','<') && file_exists(_PS_ROOT_DIR_.'/classes/Upgrader.php')) + if (!version_compare(_PS_VERSION_,'1.4.6.0','<') && file_exists(_PS_ROOT_DIR_.'/classes/Upgrader.php')) require_once(_PS_ROOT_DIR_.'/classes/Upgrader.php'); else require_once(dirname(__FILE__).'/Upgrader.php'); @@ -118,6 +118,8 @@ class AdminSelfUpgrade extends AdminSelfTab public $prodRootDir = ''; public $adminDir = ''; public $rootWritable = false; + + public $lastAutoupgradeVersion = ''; public $svnDir = 'svn'; public $destDownloadFilename = 'prestashop.zip'; public $toUpgradeFileList = 'filesToUpgrade.list'; @@ -156,7 +158,7 @@ class AdminSelfUpgrade extends AdminSelfTab * value = the next step you want instead * example : public static $skipAction = array('download' => 'upgradeFiles'); */ - public static $skipAction; + public static $skipAction = array(); public $useSvn; protected $_includeContainer = false; @@ -276,14 +278,42 @@ class AdminSelfUpgrade extends AdminSelfTab public function configOk() { - $allowed = (ConfigurationTest::test_fopen() && $this->rootWritable); - $allowed &= !Configuration::get('PS_SHOP_ENABLE'); - $allowed &= $this->upgrader->autoupgrade; - $allowed &= (Configuration::get('PS_AUTOUP_KEEP_TRAD') !== false); - + $allowed_array = $this->getCheckCurrentConfig(); + $allowed = array_product($allowed_array); return $allowed; } + public function getcheckCurrentConfig() + { + static $allowed_array; + + if(empty($allowed_array)) + { + $allowed_array = array(); + $allowed_array['fopen'] = ConfigurationTest::test_fopen(); + $allowed_array['root_writable'] = $this->rootWritable; + $allowed_array['shop_enabled'] = !Configuration::get('PS_SHOP_ENABLE'); + $allowed_array['autoupgrade_allowed'] = $this->upgrader->autoupgrade; + $module_version = '0.1'; + if ($module_version = simplexml_load_file(dirname(__FILE__).'/config.xml')) + $module_version = (string)$module_version->version; + $allowed_array['module_version_ok'] = version_compare($module_version, $this->upgrader->autoupgrade_last_version, '>='); + // if one option has been defined, all options are. + $allowed_array['module_configured'] = (Configuration::get('PS_AUTOUP_KEEP_TRAD') !== false); + } + return $allowed_array; + } + + + public function checkAutoupgradeLastVersion(){ + if ($module_version = simplexml_load_file(_PS_MODULE_DIR_.'autoupgrade'.'/config.xml')) + $module_version = (string)$module_version['version']; + else + $module_version = ''; + + return version_compare($this->upgrader->autoupgrade_last_version, $module_version, '=='); + } + /** * isUpgradeAllowed checks if all server configuration is valid for upgrade * @@ -315,7 +345,7 @@ class AdminSelfUpgrade extends AdminSelfTab $this->action = empty($_REQUEST['action'])?null:$_REQUEST['action']; $this->currentParams = empty($_REQUEST['params'])?null:$_REQUEST['params']; // test writable recursively - if(version_compare(_PS_VERSION_,'1.4.5.0','<')) + if(version_compare(_PS_VERSION_,'1.4.6.0','<') || !class_exists('ConfigurationTest', false)) { require_once('ConfigurationTest.php'); if(!class_exists('ConfigurationTest', false) AND class_exists('ConfigurationTestCore')) @@ -324,8 +354,9 @@ class AdminSelfUpgrade extends AdminSelfTab if (ConfigurationTest::test_dir($this->prodRootDir,true)) $this->rootWritable = true; - if (!in_array($this->action,array('upgradeFile', 'upgradeDb', 'upgradeComplete','rollback','restoreFiles','restoreDb'))) + if (!in_array($this->action, array('upgradeFile', 'upgradeDb', 'upgradeComplete','rollback','restoreFiles','restoreDb', 'checkFilesVersion'))) { + $this->upgrader = new Upgrader(); $this->upgrader->checkPSVersion(); $this->nextParams['install_version'] = $this->upgrader->version_num; @@ -464,8 +495,21 @@ class AdminSelfUpgrade extends AdminSelfTab } public function ajaxProcessCheckFilesVersion() { - if ($this->upgrader->isAuthenticPrestashopVersion() !== false) + $this->_loadDbRelatedClasses(); + $this->upgrader = new Upgrader(); + + $changedFileList = $this->upgrader->getChangedFilesList(); + if ($this->upgrader->isAuthenticPrestashopVersion() == true + && !is_array($changedFileList) ) { + $this->nextParams['status'] = 'error'; + $this->nextParams['msg'] = '[TECHNICAL ERROR] Unable to check files'; + $testOrigCore = false; + } + else + { + if ($this->upgrader->isAuthenticPrestashopVersion() != false) + { $this->nextParams['status'] = 'ok'; $testOrigCore = true; } @@ -475,7 +519,6 @@ class AdminSelfUpgrade extends AdminSelfTab $this->nextParams['status'] = 'warn'; } - $changedFileList = $this->upgrader->getChangedFilesList(); if (!isset($changedFileList['core'])) $changedFileList['core'] = array(); if (!isset($changedFileList['translation'])) @@ -495,6 +538,7 @@ class AdminSelfUpgrade extends AdminSelfTab } $this->nextParams['result'] = $changedFileList; } + } public function ajaxProcessUpgradeNow() { @@ -551,7 +595,7 @@ class AdminSelfUpgrade extends AdminSelfTab /** * extract last version into admin/autoupgrade/latest directory - * + * * @return void */ public function ajaxProcessUnzip(){ @@ -938,7 +982,7 @@ class AdminSelfUpgrade extends AdminSelfTab } /** - * ajaxProcessRestoreFiles restore the previously saved files, + * ajaxProcessRestoreFiles restore the previously saved files, * and delete files that weren't archived * * @return boolean true if succeed @@ -947,13 +991,13 @@ class AdminSelfUpgrade extends AdminSelfTab { $this->next = 'restoreFiles'; // @TODO : workaround max_execution_time / ajax batch unzip - // very first restoreFiles step : extract backup + // very first restoreFiles step : extract backup if (!empty($this->backupFilesFilename) AND file_exists($this->backupFilesFilename)) { // cleanup current PS tree $fromArchive = $this->_listArchivedFiles(); file_put_contents($this->autoupgradePath.DIRECTORY_SEPARATOR.$this->fromArchiveFileList, serialize($fromArchive)); - + //$this->_cleanUp($this->prodRootDir.'/'); $this->nextQuickInfo[] = $this->l('root directory cleaned.'); @@ -963,7 +1007,7 @@ class AdminSelfUpgrade extends AdminSelfTab if (self::ZipExtract($filepath, $destExtract)) { $this->next = 'restoreFiles'; - // get new file list + // get new file list $this->nextDesc = $this->l('Files restored. Removing files added by upgrade ...'); // once it's restored, do not delete the archive file. This has to be done manually // but we can empty the var, to avoid loop. @@ -977,9 +1021,9 @@ class AdminSelfUpgrade extends AdminSelfTab return false; } } - + // very second restoreFiles step : remove new files that shouldn't be there - // for that, we will make a diff between the current filelist in root dir + // for that, we will make a diff between the current filelist in root dir // and the archive file list we previously saved // files to remove : differences between complete list and archive list if (!file_exists($this->autoupgradePath.DIRECTORY_SEPARATOR.$this->toRemoveFileList)) @@ -989,7 +1033,7 @@ class AdminSelfUpgrade extends AdminSelfTab $toRemove = array_diff($this->_listFilesInDir($this->prodRootDir), $fromArchive); file_put_contents($this->autoupgradePath.DIRECTORY_SEPARATOR.$this->toRemoveFileList,serialize($toRemove)); } - + if (!isset($toRemove)) $toRemove = unserialize(file_get_contents($this->toRemoveFileList)); @@ -1007,8 +1051,8 @@ class AdminSelfUpgrade extends AdminSelfTab else { $checkFile = array_shift($toRemove); - // - if (in_array($checkFile, $toRemove) + // + if (in_array($checkFile, $toRemove) && !$this->_skipFile('', $path.$file, 'backup') && !$this->_skipFile('', $path.$file, 'upgrade') ) @@ -1461,8 +1505,7 @@ class AdminSelfUpgrade extends AdminSelfTab */ public function displayConf() { - - if (version_compare(_PS_VERSION_,'1.4.6.0','<') AND false) + if (version_compare(_PS_VERSION_,'1.4.5.0','<') AND false) $this->_errors[] = Tools::displayError('This class depends of several files modified in 1.4.5.0 version and should not be used in an older version'); parent::displayConf(); } @@ -1470,10 +1513,10 @@ class AdminSelfUpgrade extends AdminSelfTab public function ajaxPreProcess() { /* PrestaShop demo mode */ - if (_PS_MODE_DEMO_) + if (defined('_PS_MODE_DEMO_') && _PS_MODE_DEMO_) return; /* PrestaShop demo mode*/ - + if (!empty($_POST['responseType']) AND $_POST['responseType'] == 'json') header('Content-Type: application/json'); @@ -1587,7 +1630,7 @@ txtError[37] = "'.$this->l('The config/defines.inc.php file was not found. Where } /** this returns fieldset containing the configuration points you need to use autoupgrade - * @return string + * @return string */ private function getCurrentConfiguration() { @@ -1597,6 +1640,19 @@ txtError[37] = "'.$this->l('The config/defines.inc.php file was not found. Where <p>'.$this->l('All the following points must be ok in order to allow the upgrade.').'</p> <b>'.$this->l('Root directory').' : </b>'.$this->prodRootDir.'<br/><br/>'; + if ($this->checkAutoupgradeLastVersion()) + $srcModuleVersion = '../img/admin/enabled.gif'; + else + $srcModuleVersion = '../img/admin/disabled.gif'; + + if ($module_version = simplexml_load_file(dirname(__FILE__).'/config.xml')) + $module_version = (string)$module_version->version; + + $content .= '<b>'.$this->l('Module version').' : </b>' + .'<img src="'.$srcModuleVersion.'" /> ' + .sprintf($this->lastAutoupgradeVersion? + $this->l('You have the last version (%s)'):$this->l('You currently use the version %1$s of the autoupgrade module. Please install the last version (%2$s)'), $module_version, $this->upgrader->autoupgrade_last_version).'<br/><br/>'; + if ($this->rootWritable) $srcRootWritable = '../img/admin/enabled.gif'; else @@ -1645,7 +1701,7 @@ txtError[37] = "'.$this->l('The config/defines.inc.php file was not found. Where $configurationDone = '../img/admin/enabled.gif'; else $configurationDone = '../img/admin/disabled.gif'; - $content .= '<b>'.$this->l('Options chosen').' : </b>'.'<img src="'.$configurationDone.'" /> + $content .= '<b>'.$this->l('Options chosen').' : </b>'.'<img src="'.$configurationDone.'" /> <a class="button" id="scrollToOptions" href="#options">' .($testConfigDone ?$this->l('autoupgrade configuration ok').' - '.$this->l('Modify your options') @@ -1673,7 +1729,7 @@ txtError[37] = "'.$this->l('The config/defines.inc.php file was not found. Where $content .= '<script type="text/javascript"> $("#currentConfigurationToggle").click(function(e){e.preventDefault();$("#currentConfiguration").toggle()});' .($this->configOk()?'$("#currentConfiguration").hide();$("#currentConfigurationToggle").after("<img src=\"../img/admin/enabled.gif\" />");':'').'</script>'; - $content .= '<div style="float:left"> + $content .= '<div style="clear:left"> </div><div style="float:left"> <h1>'.sprintf($this->l('Your current prestashop version : %s '),_PS_VERSION_).'</h1>'; $content .= '<p>'.sprintf($this->l('Last version is %1$s (%2$s) '), $this->upgrader->version_name, $this->upgrader->version_num).'</p>'; @@ -1700,10 +1756,10 @@ txtError[37] = "'.$this->l('The config/defines.inc.php file was not found. Where { $content .= '<span class="button-autoupgrade upgradestep" >'.$this->l('Your shop is already up to date.').'</span> '; } - $content .= '<br/><br/><small>'.sprintf($this->l('last datetime check : %s '),date('Y-m-d H:i:s',Configuration::get('PS_LAST_VERSION_CHECK'))).'</span> + $content .= '<br/><br/><small>'.sprintf($this->l('last datetime check : %s '),date('Y-m-d H:i:s',Configuration::get('PS_LAST_VERSION_CHECK'))).'</span> <a class="button" href="index.php?tab=AdminSelfUpgrade&token='.Tools::getAdminToken('AdminSelfUpgrade'.(int)(Tab::getIdFromClassName(get_class($this))).(int)$cookie->id_employee).'&refreshCurrentVersion=1">'.$this->l('Please click to refresh').'</a> </small>'; - + $content .= '</div> <div id="currentlyProcessing" style="display:none;float:right"><h4>Currently processing <img id="pleaseWait" src="'.__PS_BASE_URI__.'img/loader.gif"/></h4> @@ -1747,7 +1803,7 @@ txtError[37] = "'.$this->l('The config/defines.inc.php file was not found. Where else $content .= '<p>'.$this->l('Your current configuration does not allow upgrade.').'</p>'; - $content .= '<br/><br/><small>'.sprintf($this->l('last datetime check : %s '),date('Y-m-d H:i:s',Configuration::get('PS_LAST_VERSION_CHECK'))).'</span> + $content .= '<br/><br/><small>'.sprintf($this->l('last datetime check : %s '),date('Y-m-d H:i:s',Configuration::get('PS_LAST_VERSION_CHECK'))).'</span> <a class="button" href="index.php?tab=AdminSelfUpgrade&token='.Tools::getAdminToken('AdminSelfUpgrade'.(int)(Tab::getIdFromClassName(get_class($this))).(int)$cookie->id_employee).'&refreshCurrentVersion=1">'.$this->l('Please click to refresh').'</a> </small>'; @@ -1773,14 +1829,13 @@ txtError[37] = "'.$this->l('The config/defines.inc.php file was not found. Where public function display() { /* PrestaShop demo mode */ - if (_PS_MODE_DEMO_) + if (defined('_PS_MODE_DEMO_') && _PS_MODE_DEMO_) { echo '<div class="error">'.Tools::displayError('This functionnality has been disabled.').'</div>'; return; } /* PrestaShop demo mode*/ - if(isset($_GET['refreshCurrentVersion'])) { $upgrader = new Upgrader(); @@ -1823,7 +1878,7 @@ txtError[37] = "'.$this->l('The config/defines.inc.php file was not found. Where $this->_displayForm('autoUpgradeOptions',$this->_fieldsAutoUpgrade,'<a href="" name="options" id="options">'.$this->l('Options').'</a>', '','prefs'); // @todo manual upload with a form - // We need jquery 1.6 for json + // We need jquery 1.6 for json echo '<script type="text/javascript"> jq13 = jQuery.noConflict(true); </script> @@ -2225,7 +2280,7 @@ function handleError(res) $("#cchangedList").append("<br/>"); }'; - + $js.= '$(document).ready(function(){ $.ajax({ type:"POST", @@ -2264,6 +2319,7 @@ function handleError(res) , error: function(res,textStatus,jqXHR) { + //$("#checkPrestaShopFilesVersion").html("<img src=\"../img/admin/warning.gif\" /> "+textStatus); if (textStatus == "timeout" && action == "download") { updateInfoStep("'.$this->l('Your server can\'t download the file. Please upload it first by ftp in your admin/autoupgrade directory').'"); @@ -2299,7 +2355,7 @@ function handleError(res) $zip = new ZipArchive(); if ($zip->open($fromFile) === true) { - if (@$zip->extractTo($toDir.'/') + if (@$zip->extractTo($toDir.'/') && $zip->close() ) { diff --git a/modules/autoupgrade/Upgrader.php b/modules/autoupgrade/Upgrader.php index c4c4c1327..8a7ae8330 100644 --- a/modules/autoupgrade/Upgrader.php +++ b/modules/autoupgrade/Upgrader.php @@ -39,15 +39,26 @@ class UpgraderCore public $version_name; public $version_num; + public $version_is_modified = null; /** * @var string contains hte url where to download the file */ public $link; public $autoupgrade; public $autoupgrade_module; + public $autoupgrade_last_version; public $changelog; public $md5; + public function __construct($autoload = false) + { + if ($autoload) + { + $this->loadFromConfig(); + // checkPSVersion to get need_upgrade + $this->checkPSVersion(); + } + } public function __get($var) { if ($var == 'need_upgrade') @@ -90,8 +101,7 @@ class UpgraderCore */ public function checkPSVersion($force = false) { - if (empty($this->link)) - { + if (class_exists('Configuration')) $last_check = Configuration::get('PS_LAST_VERSION_CHECK'); else @@ -103,7 +113,6 @@ class UpgraderCore libxml_set_streams_context(@stream_context_create(array('http' => array('timeout' => 3)))); if ($feed = @simplexml_load_file($this->rss_version_link)) { - $this->version_name = (string)$feed->version->name; $this->version_num = (string)$feed->version->num; $this->link = (string)$feed->download->link; @@ -111,6 +120,7 @@ class UpgraderCore $this->changelog = (string)$feed->download->changelog; $this->autoupgrade = (int)$feed->autoupgrade; $this->autoupgrade_module = (int)$feed->autoupgrade_module; + $this->autoupgrade_last_version = (string)$feed->autoupgrade_last_version; $this->desc = (string)$feed->desc ; $config_last_version = array( 'name' => $this->version_name, @@ -119,6 +129,7 @@ class UpgraderCore 'md5' => $this->md5, 'autoupgrade' => $this->autoupgrade, 'autoupgrade_module' => $this->autoupgrade_module, + 'autoupgrade_last_version' => $this->autoupgrade_last_version, 'changelog' => $this->changelog, 'desc' => $this->desc ); @@ -130,8 +141,29 @@ class UpgraderCore } } else + $this->loadFromConfig(); + // retro-compatibility : + // return array(name,link) if you don't use the last version + // false otherwise + if (version_compare(_PS_VERSION_, $this->version_num, '<')) { + $this->need_upgrade = true; + return array('name' => $this->version_name, 'link' => $this->link); + } + else + return false; + } + + /** + * load the last version informations stocked in base + * + * @return $this + */ + public function loadFromConfig() + { $last_version_check = @unserialize(Configuration::get('PS_LAST_VERSION')); + if($last_version_check) + { if (isset($last_version_check['name'])) $this->version_name = $last_version_check['name']; if (isset($last_version_check['num'])) @@ -142,6 +174,8 @@ class UpgraderCore $this->autoupgrade = $last_version_check['autoupgrade']; if (isset($last_version_check['autoupgrade_module'])) $this->autoupgrade_module = $last_version_check['autoupgrade_module']; + if (isset($last_version_check['autoupgrade_last_version'])) + $this->autoupgrade_last_version = $last_version_check['autoupgrade_last_version']; if (isset($last_version_check['md5'])) $this->md5 = $last_version_check['md5']; if (isset($last_version_check['desc'])) @@ -149,26 +183,23 @@ class UpgraderCore if (isset($last_version_check['changelog'])) $this->changelog = $last_version_check['changelog']; } + return $this; } - // retro-compatibility : - // return array(name,link) if you don't use the last version - // false otherwise - if (version_compare(_PS_VERSION_, $this->version_num, '<')) - { - $this->need_upgrade = true; - return array('name' => $this->version_name, 'link' => $this->link); - } - else - return false; - } + /** + * return an array of files + * that the md5file does not match to the original md5file (provided by $rss_md5file_link_dir ) + * @return void + */ public function getChangedFilesList() { - if (count($this->changed_files) == 0) + if (is_array($this->changed_files) && count($this->changed_files) == 0) { $checksum = @simplexml_load_file($this->rss_md5file_link_dir._PS_VERSION_.'.xml'); - if ($checksum === false) - return false; + if ($checksum == false) + { + $this->changed_files = false; + } else $this->browseXmlAndCompare($checksum->ps_root_dir[0]); } @@ -248,6 +279,7 @@ class UpgraderCore public function isAuthenticPrestashopVersion() { + $this->getChangedFilesList(); return !$this->version_is_modified; } diff --git a/modules/autoupgrade/autoupgrade.php b/modules/autoupgrade/autoupgrade.php index 0329546c4..cfe050d50 100644 --- a/modules/autoupgrade/autoupgrade.php +++ b/modules/autoupgrade/autoupgrade.php @@ -31,7 +31,10 @@ class Autoupgrade extends Module { $this->name = 'autoupgrade'; $this->tab = 'administration'; - $this->version = 0.1; + // version number x.y.z + // y+1 means a major bugfix or improvement + // z+1 means a bugfix + $this->version = '0.2.1'; if (!defined('_PS_ADMIN_DIR_')) { @@ -53,7 +56,6 @@ class Autoupgrade extends Module public function install() { - $res = true; // before adding AdminSelfUpgrade, we should remove AdminUpgrade $idTab = Tab::getIdFromClassName('AdminUpgrade'); @@ -72,7 +74,9 @@ class Autoupgrade extends Module $tab->class_name = 'AdminSelfUpgrade'; $tab->module = 'autoupgrade'; $tab->id_parent = 9; - $tab->name = array_fill(1, sizeof(Language::getLanguages(false)), 'Upgrade'); + $languages = Language::getLanguages(false); + foreach ($languages as $lang) + $tab->name[$lang['id_lang']] = 'Upgrade'; $res &= $tab->save(); } else @@ -103,12 +107,18 @@ class Autoupgrade extends Module public function uninstall() { - $idtab = Configuration::get('PS_AUTOUPDATE_MODULE_IDTAB'); - $tab = new Tab($idtab,1); + $id_tab = Configuration::get('PS_AUTOUPDATE_MODULE_IDTAB'); + if ($id_tab) + { + $tab = new Tab($id_tab,1); $res = $tab->delete(); + } + else + $res = true; + // for people in 1.4.4.0 or 1.4.4.1, we have to remove that file + // and of course delete it in the database. if (file_exists(_PS_ADMIN_DIR_.DIRECTORY_SEPARATOR.'tabs'.'AdminUpgrade.php')) { - // Should we create the correct AdminUpgrade tab (not the module) if($idOldTab = Tab::getIdFromClassName('AdminUpgrade')) { $tab = new Tab($idOldTab); diff --git a/modules/autoupgrade/config.xml b/modules/autoupgrade/config.xml index ddaa5099f..bb4fe09e7 100644 --- a/modules/autoupgrade/config.xml +++ b/modules/autoupgrade/config.xml @@ -2,7 +2,7 @@ <module> <name>autoupgrade</name> <displayName><![CDATA[Autoupgrade module]]></displayName> - <version><![CDATA[0.1]]></version> + <version><![CDATA[0.2.1]]></version> <description><![CDATA[Provides an automated method to upgrade your shop to the last PrestaShop version. Caution : custom theme are not updated.]]></description> <author><![CDATA[]]></author> <tab><![CDATA[administration]]></tab> diff --git a/modules/autoupgrade/fr.php b/modules/autoupgrade/fr.php index 8e7b106a3..6f5aecc2b 100644 --- a/modules/autoupgrade/fr.php +++ b/modules/autoupgrade/fr.php @@ -21,7 +21,7 @@ $_MODULE['<{autoupgrade}prestashop>adminselfupgrade_8d8e0207549d32c6f86424640303 $_MODULE['<{autoupgrade}prestashop>adminselfupgrade_c62f82b25de72c3b0bb07225c49fe9d0'] = '%1$s fichier(s) du coeur a été modifié (sur %2$s au total)'; $_MODULE['<{autoupgrade}prestashop>adminselfupgrade_7b2f224649ef2ad10a2d73595d67a876'] = 'Démarrage mise à niveau ...'; $_MODULE['<{autoupgrade}prestashop>adminselfupgrade_6b2d0404b7faba0e791e15a52586a149'] = 'Basculer vers svn checkout (useSvn activé)'; -$_MODULE['<{autoupgrade}prestashop>adminselfupgrade_f0e38ac0c558a7f216ae98382b9e58f5'] = 'Site désactivé. Téléchargement en cours (peut prendre '; +$_MODULE['<{autoupgrade}prestashop>adminselfupgrade_13b35313a987313838f0105902bb6742'] = 'Boutique désactivée. Téléchargement en cours... (ce qui peut prendre un certain temps) ...'; $_MODULE['<{autoupgrade}prestashop>adminselfupgrade_6824d57b7af37f605bd97d34defc3761'] = 'Exportation svn terminée. Suppression des fichiers exemples...'; $_MODULE['<{autoupgrade}prestashop>adminselfupgrade_f70307d8297e48a8783d41e6f3313d51'] = 'Erreur lors de l\'export SVN'; $_MODULE['<{autoupgrade}prestashop>adminselfupgrade_4eecd9c195e46c054ef7da6d9d1a738b'] = 'Extraction terminée. Suppression des fichiers exemples...'; @@ -144,7 +144,7 @@ $_MODULE['<{autoupgrade}prestashop>adminselfupgrade_af566be1636d11ecc8ddb728a155 $_MODULE['<{autoupgrade}prestashop>adminselfupgrade_ea4d3af79ad2392b7c0cca4b8ddd7028'] = 'Vous avez déjà la dernière version disponible.'; $_MODULE['<{autoupgrade}prestashop>adminselfupgrade_bafd7322c6e97d25b6299b5d6fe8920b'] = 'Non'; $_MODULE['<{autoupgrade}prestashop>adminselfupgrade_93cba07454f06a4a960172bbd6e2a435'] = 'Oui'; -$_MODULE['<{autoupgrade}prestashop>adminselfupgrade_3d9f7f5927158b5a7dac0d65b4537265'] = 'Boutique désactivée'; +$_MODULE['<{autoupgrade}prestashop>adminselfupgrade_69af703e1b0af65d0eb16b85e3ebd738'] = 'Boutique désactivée'; $_MODULE['<{autoupgrade}prestashop>adminselfupgrade_94af5df6182efd3591d0ccccaa04bd5c'] = 'Limite de temps PHP'; $_MODULE['<{autoupgrade}prestashop>adminselfupgrade_075ae3d2fc31640504f814f60e5ef713'] = 'désactivée'; $_MODULE['<{autoupgrade}prestashop>adminselfupgrade_783e8e29e6a8c3e22baa58a19420eb4f'] = 'secondes'; diff --git a/modules/blockcart/ajax-cart.js b/modules/blockcart/ajax-cart.js index 50301579b..91d69444c 100644 --- a/modules/blockcart/ajax-cart.js +++ b/modules/blockcart/ajax-cart.js @@ -274,7 +274,8 @@ return; var removedProductData = null; var removedProductDomId = null; //look for a product to delete... - $('#'+parentId+' #cart_block_list dl.products dt').each(function(){ + $('#'+parentId+' #cart_block_list dl.products dt').each(function() + { //retrieve idProduct and idCombination from the displayed product in the block cart var domIdProduct = $(this).attr('id'); var firstCut = domIdProduct.replace('cart_block_product_', ''); @@ -299,7 +300,6 @@ return; removedProductId = $(this).attr('id'); //return false; // Regarding that the customer can only remove products one by one, we break the loop } - }); //if there is a removed product, delete it from the displayed block cart if (removedProductId != null) @@ -324,6 +324,7 @@ return; }); }); } + }); } }); }, diff --git a/modules/blocklayered/blocklayered-no-products.tpl b/modules/blocklayered/blocklayered-no-products.tpl index 7f0de7883..44d70f1da 100644 --- a/modules/blocklayered/blocklayered-no-products.tpl +++ b/modules/blocklayered/blocklayered-no-products.tpl @@ -24,5 +24,5 @@ * International Registred Trademark & Property of PrestaShop SA *} <div id="product_list" class="clear"> - <p class="warning">{l s='There are no products.'}</p> + <p class="warning">{l s='There are no products.' mod='blocklayered'}</p> </div> diff --git a/modules/blocklayered/blocklayered.php b/modules/blocklayered/blocklayered.php index 29fa942a3..cede56862 100644 --- a/modules/blocklayered/blocklayered.php +++ b/modules/blocklayered/blocklayered.php @@ -1,6 +1,6 @@ <?php /* -* 2007-2011 PrestaShop +* 2007-2011 PrestaShop * * NOTICE OF LICENSE * @@ -20,7 +20,7 @@ * * @author PrestaShop SA <contact@prestashop.com> * @copyright 2007-2011 PrestaShop SA -* @version Release: $Revision: 9630 $ +* @version Release: $Revision$ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registred Trademark & Property of PrestaShop SA */ @@ -46,7 +46,7 @@ class BlockLayered extends Module $this->displayName = $this->l('Layered navigation block'); $this->description = $this->l('Displays a block with layered navigation filters.'); } - + public function install() { if (parent::install() && $this->registerHook('leftColumn') && $this->registerHook('header') && $this->registerHook('footer') @@ -60,20 +60,20 @@ class BlockLayered extends Module { Configuration::updateValue('PS_LAYERED_HIDE_0_VALUES', 0); Configuration::updateValue('PS_LAYERED_SHOW_QTIES', 1); - + $this->rebuildLayeredStructure(); $this->rebuildLayeredCache(); self::installPriceIndexTable(); $this->installFriendlyUrlTable(); $this->installIndexableAttributeTable(); $this->installProductAttributeTable(); - + $this->indexUrl(); $this->indexAttribute(); - + if (Db::getInstance()->getValue('SELECT COUNT(*) FROM `'._DB_PREFIX_.'product`') < 10000) // Lock price indexation if too many products self::fullPricesIndexProcess(); - + return true; } else @@ -90,35 +90,35 @@ class BlockLayered extends Module Configuration::deleteByName('PS_LAYERED_HIDE_0_VALUES'); Configuration::deleteByName('PS_LAYERED_SHOW_QTIES'); Configuration::deleteByName('PS_LAYERED_INDEXED'); - - Db::getInstance()->execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_price_index'); - Db::getInstance()->execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_friendly_url'); - Db::getInstance()->execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_indexable_attribute_group'); - Db::getInstance()->execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_indexable_feature'); - Db::getInstance()->execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_indexable_attribute_group_lang_value'); - Db::getInstance()->execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_indexable_feature_lang_value'); - Db::getInstance()->execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_category'); - Db::getInstance()->execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_filter'); - Db::getInstance()->execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_product_attribute'); + + Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_price_index'); + Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_friendly_url'); + Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_indexable_attribute_group'); + Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_indexable_feature'); + Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_indexable_attribute_group_lang_value'); + Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_indexable_feature_lang_value'); + Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_category'); + Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_filter'); + Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_product_attribute'); return parent::uninstall(); } - + private static function installPriceIndexTable() { - Db::getInstance()->execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_price_index`'); - - Db::getInstance()->execute(' + Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_price_index`'); + + Db::getInstance()->Execute(' CREATE TABLE `'._DB_PREFIX_.'layered_price_index` ( `id_product` INT NOT NULL, `id_currency` INT NOT NULL, `price_min` INT NOT NULL, `price_max` INT NOT NULL, PRIMARY KEY (`id_product`, `id_currency`), INDEX `id_currency` (`id_currency`), INDEX `price_min` (`price_min`), INDEX `price_max` (`price_max`)) ENGINE = '._MYSQL_ENGINE_); } - + private function installFriendlyUrlTable() { - Db::getInstance()->execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_friendly_url`'); - Db::getInstance()->execute(' + Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_friendly_url`'); + Db::getInstance()->Execute(' CREATE TABLE `'._DB_PREFIX_.'layered_friendly_url` ( `id_layered_friendly_url` INT NOT NULL AUTO_INCREMENT, `url_key` varchar(32) NOT NULL, @@ -127,66 +127,66 @@ class BlockLayered extends Module PRIMARY KEY (`id_layered_friendly_url`), INDEX `id_lang` (`id_lang`)) ENGINE = '._MYSQL_ENGINE_); - Db::getInstance()->execute('CREATE INDEX `url_key` ON `'._DB_PREFIX_.'layered_friendly_url`(url_key(5))'); + Db::getInstance()->Execute('CREATE INDEX `url_key` ON `'._DB_PREFIX_.'layered_friendly_url`(url_key(5))'); } - + private function installIndexableAttributeTable() { // Attributes Groups - Db::getInstance()->execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_attribute_group`'); - Db::getInstance()->execute(' + Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_attribute_group`'); + Db::getInstance()->Execute(' CREATE TABLE `'._DB_PREFIX_.'layered_indexable_attribute_group` ( `id_attribute_group` INT NOT NULL, `indexable` BOOL NOT NULL DEFAULT 0, PRIMARY KEY (`id_attribute_group`)) ENGINE = '._MYSQL_ENGINE_); - Db::getInstance()->execute(' + Db::getInstance()->Execute(' INSERT INTO `'._DB_PREFIX_.'layered_indexable_attribute_group` SELECT id_attribute_group, 1 FROM `'._DB_PREFIX_.'attribute_group`'); - - Db::getInstance()->execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_attribute_group_lang_value`'); - Db::getInstance()->execute(' + + Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_attribute_group_lang_value`'); + Db::getInstance()->Execute(' CREATE TABLE `'._DB_PREFIX_.'layered_indexable_attribute_group_lang_value` ( `id_attribute_group` INT NOT NULL, `id_lang` INT NOT NULL, `url_name` VARCHAR(20), `meta_title` VARCHAR(20), PRIMARY KEY (`id_attribute_group`, `id_lang`)) ENGINE = '._MYSQL_ENGINE_); - + // Attributes - Db::getInstance()->execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_attribute_lang_value`'); - Db::getInstance()->execute(' + Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_attribute_lang_value`'); + Db::getInstance()->Execute(' CREATE TABLE `'._DB_PREFIX_.'layered_indexable_attribute_lang_value` ( `id_attribute` INT NOT NULL, `id_lang` INT NOT NULL, `url_name` VARCHAR(20), `meta_title` VARCHAR(20), PRIMARY KEY (`id_attribute`, `id_lang`)) ENGINE = '._MYSQL_ENGINE_); - - + + // Features - Db::getInstance()->execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_feature`'); - Db::getInstance()->execute(' + Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_feature`'); + Db::getInstance()->Execute(' CREATE TABLE `'._DB_PREFIX_.'layered_indexable_feature` ( `id_feature` INT NOT NULL, `indexable` BOOL NOT NULL DEFAULT 0, PRIMARY KEY (`id_feature`)) ENGINE = '._MYSQL_ENGINE_); - - Db::getInstance()->execute(' + + Db::getInstance()->Execute(' INSERT INTO `'._DB_PREFIX_.'layered_indexable_feature` SELECT id_feature, 1 FROM `'._DB_PREFIX_.'feature`'); - - Db::getInstance()->execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_feature_lang_value`'); - Db::getInstance()->execute(' + + Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_feature_lang_value`'); + Db::getInstance()->Execute(' CREATE TABLE `'._DB_PREFIX_.'layered_indexable_feature_lang_value` ( `id_feature` INT NOT NULL, `id_lang` INT NOT NULL, `url_name` VARCHAR(20) NOT NULL, `meta_title` VARCHAR(20), PRIMARY KEY (`id_feature`, `id_lang`)) ENGINE = '._MYSQL_ENGINE_); - + // Features values - Db::getInstance()->execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_feature_value_lang_value`'); - Db::getInstance()->execute(' + Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_indexable_feature_value_lang_value`'); + Db::getInstance()->Execute(' CREATE TABLE `'._DB_PREFIX_.'layered_indexable_feature_value_lang_value` ( `id_feature_value` INT NOT NULL, `id_lang` INT NOT NULL, @@ -194,15 +194,15 @@ class BlockLayered extends Module `meta_title` VARCHAR(20), PRIMARY KEY (`id_feature_value`, `id_lang`)) ENGINE = '._MYSQL_ENGINE_); } - + /** - * + * * create table product attribute */ public function installProductAttributeTable() { - Db::getInstance()->execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_product_attribute`'); - Db::getInstance()->execute(' + Db::getInstance()->Execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_product_attribute`'); + Db::getInstance()->Execute(' CREATE TABLE `'._DB_PREFIX_.'layered_product_attribute` ( `id_attribute` int(10) unsigned NOT NULL, `id_product` int(10) unsigned NOT NULL, @@ -210,9 +210,9 @@ class BlockLayered extends Module KEY `id_attribute` (`id_attribute`) ) ENGINE= '._MYSQL_ENGINE_); } - + /** - * + * * Generate data product attribute */ public function indexAttribute($id_product = null) @@ -221,16 +221,16 @@ class BlockLayered extends Module Db::getInstance()->execute('TRUNCATE '._DB_PREFIX_.'layered_product_attribute'); else Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'layered_product_attribute WHERE id_product = '.(int)$id_product); - - Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'layered_product_attribute` (`id_attribute`, `id_product`, `id_attribute_group`) - SELECT pac.id_attribute, pa.id_product, ag.id_attribute_group - FROM '._DB_PREFIX_.'product_attribute pa - INNER JOIN '._DB_PREFIX_.'product_attribute_combination pac ON pac.id_product_attribute = pa.id_product_attribute - INNER JOIN '._DB_PREFIX_.'attribute a ON (a.id_attribute = pac.id_attribute) + + Db::getInstance()->Execute('INSERT INTO `'._DB_PREFIX_.'layered_product_attribute` (`id_attribute`, `id_product`, `id_attribute_group`) + SELECT pac.id_attribute, pa.id_product, ag.id_attribute_group + FROM '._DB_PREFIX_.'product_attribute pa + INNER JOIN '._DB_PREFIX_.'product_attribute_combination pac ON pac.id_product_attribute = pa.id_product_attribute + INNER JOIN '._DB_PREFIX_.'attribute a ON (a.id_attribute = pac.id_attribute) INNER JOIN '._DB_PREFIX_.'attribute_group ag ON ag.id_attribute_group = a.id_attribute_group '.(is_null($id_product) ? '' : 'AND pa.id_product = '.(int)$id_product).' GROUP BY a.id_attribute, pa.id_product'); - + return 1; } /* @@ -240,9 +240,9 @@ class BlockLayered extends Module { if ($truncate) Db::getInstance()->execute('TRUNCATE '._DB_PREFIX_.'layered_friendly_url'); - + $attributeValuesByLang = array(); - $filters = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT lc.*, id_lang, name, link_rewrite, cl.id_category + $filters = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('SELECT lc.*, id_lang, name, link_rewrite, cl.id_category FROM '._DB_PREFIX_.'layered_category lc INNER JOIN '._DB_PREFIX_.'category_lang cl ON (cl.id_category = lc.id_category AND lc.id_category <> 1 ) GROUP BY type, id_value, id_lang'); @@ -253,7 +253,7 @@ class BlockLayered extends Module switch ($filter['type']) { case 'id_attribute_group': - $attributes = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' + $attributes = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT agl.public_name name, a.id_attribute_group id_name, al.name value, a.id_attribute id_value, al.id_lang, liagl.url_name name_url_name, lial.url_name value_url_name FROM '._DB_PREFIX_.'attribute_group ag @@ -282,9 +282,9 @@ class BlockLayered extends Module 'type' => $filter['type']); } break; - + case 'id_feature': - $features = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' + $features = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT fl.name name, fl.id_feature id_name, fvl.id_feature_value id_value, fvl.value value, fl.id_lang, fl.id_lang, lifl.url_name name_url_name, lifvl.url_name value_url_name FROM '._DB_PREFIX_.'feature_lang fl @@ -312,9 +312,9 @@ class BlockLayered extends Module 'type' => $filter['type']); } break; - + case 'category': - $categories = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' + $categories = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT cl.name, cl.id_lang, c.id_category FROM '._DB_PREFIX_.'category c INNER JOIN '._DB_PREFIX_.'category_lang cl ON (c.id_category = cl.id_category) @@ -330,13 +330,13 @@ class BlockLayered extends Module 'category_name' => $filter['link_rewrite'], 'type' => $filter['type']); } break; - + case 'manufacturer': - $manufacturers = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' + $manufacturers = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT m.name as name,l.id_lang as id_lang, id_manufacturer FROM '._DB_PREFIX_.'manufacturer m , '._DB_PREFIX_.'lang l WHERE l.id_lang = '.(int)$filter['id_lang'].' '); - + foreach ($manufacturers as $manufacturer) { if (!isset($attributeValuesByLang[$manufacturer['id_lang']])) @@ -348,7 +348,7 @@ class BlockLayered extends Module 'category_name' => $filter['link_rewrite'], 'type' => $filter['type']); } break; - + case 'quantity': $avaibility_list = array( $this->translateWord('Not available', (int)$filter['id_lang']), @@ -359,7 +359,7 @@ class BlockLayered extends Module 'id_name' => null, 'value' => $quantity, 'id_value' => $key, 'id_id_value' => 0, 'category_name' => $filter['link_rewrite'], 'type' => $filter['type']); break; - + case 'condition': $condition_list = array( 'new' => $this->translateWord('New', (int)$filter['id_lang']), @@ -372,37 +372,37 @@ class BlockLayered extends Module 'category_name' => $filter['link_rewrite'], 'type' => $filter['type']); break; } - + // Foreach langs foreach ($attributeValuesByLang as $id_lang => $attributeValues) { // Foreach attributes generate a couple "/<attribute_name>_<atttribute_value>". For example: color_blue foreach ($attributeValues as $attribute) - foreach ($attribute as $param) - { - $selectedFilters = array(); - $link = '/'.str_replace('-', '_', Tools::link_rewrite($param['name'])).'-'.str_replace('-', '_', Tools::link_rewrite($param['value'])); - $selectedFilters[$param['type']] = array(); - if (!isset($param['id_id_value'])) - $param['id_id_value'] = $param['id_value']; - $selectedFilters[$param['type']][$param['id_id_value']] = $param['id_value']; - $urlKey = md5($link); - $idLayeredFriendlyUrl = Db::getInstance()->getValue('SELECT id_layered_friendly_url - FROM `'._DB_PREFIX_.'layered_friendly_url` WHERE `id_lang` = '.$id_lang.' AND `url_key` = \''.$urlKey.'\''); - if ($idLayeredFriendlyUrl == false) + foreach ($attribute as $param) { - Db::getInstance()->AutoExecute(_DB_PREFIX_.'layered_friendly_url', array('url_key' => $urlKey, 'data' => serialize($selectedFilters), 'id_lang' => $id_lang), 'INSERT'); - $idLayeredFriendlyUrl = Db::getInstance()->Insert_ID(); + $selectedFilters = array(); + $link = '/'.str_replace('-', '_', Tools::link_rewrite($param['name'])).'-'.str_replace('-', '_', Tools::link_rewrite($param['value'])); + $selectedFilters[$param['type']] = array(); + if (!isset($param['id_id_value'])) + $param['id_id_value'] = $param['id_value']; + $selectedFilters[$param['type']][$param['id_id_value']] = $param['id_value']; + $urlKey = md5($link); + $idLayeredFriendlyUrl = Db::getInstance()->getValue('SELECT id_layered_friendly_url + FROM `'._DB_PREFIX_.'layered_friendly_url` WHERE `id_lang` = '.$id_lang.' AND `url_key` = \''.$urlKey.'\''); + if ($idLayeredFriendlyUrl == false) + { + Db::getInstance()->AutoExecute(_DB_PREFIX_.'layered_friendly_url', array('url_key' => $urlKey, 'data' => serialize($selectedFilters), 'id_lang' => $id_lang), 'INSERT'); + $idLayeredFriendlyUrl = Db::getInstance()->Insert_ID(); + } } - } } if ($ajax) return '{"result": 1}'; else return 1; } - - public function translateWord($string, $id_lang ) + + public function translateWord($string, $id_lang ) { static $_MODULES = array(); global $_MODULE; @@ -423,7 +423,7 @@ class BlockLayered extends Module $_MODULES[$id_lang] = array_change_key_case($_MODULES[$id_lang]); $currentKey = '<{'.strtolower( $this->name).'}'.strtolower(_THEME_NAME_).'>'.strtolower($this->name).'_'.md5($string); $defaultKey = '<{'.strtolower( $this->name).'}prestashop>'.strtolower($this->name).'_'.md5($string); - + if (isset($_MODULES[$id_lang][$currentKey])) $ret = stripslashes($_MODULES[$id_lang][$currentKey]); else if (isset($_MODULES[$id_lang][Tools::strtolower($currentKey)])) @@ -437,7 +437,7 @@ class BlockLayered extends Module return str_replace('"', '"', $ret); } - + public function hookProductListAssign($params) { global $smarty; @@ -453,18 +453,18 @@ class BlockLayered extends Module if (is_array($filterBlock['title_values'])) foreach ($filterBlock['title_values'] as $key => $val) $title .= ' – '.$key.' '.implode('/', $val); - + $smarty->assign('categoryNameComplement', $title); $this->getProducts($selectedFilters, $params['catProducts'], $params['nbProducts'], $p, $n, $pages_nb, $start, $stop, $range); // Need a nofollow on the pagination links? $smarty->assign('no_follow', $filterBlock['nofollow']); } - + public function hookAfterSaveProduct($params) { if (!$params['id_product']) return; - + self::indexProductPrices((int)$params['id_product']); $this->indexAttribute((int)$params['id_product']); } @@ -473,16 +473,16 @@ class BlockLayered extends Module { if (!$params['id_feature'] || Tools::getValue('layered_indexable') === false) return; - - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_feature WHERE id_feature = '.(int)$params['id_feature']); - Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_feature VALUES ('.(int)$params['id_feature'].', '.(int)Tools::getValue('layered_indexable').')'); - - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_feature_lang_value WHERE id_feature = '.(int)$params['id_feature']); // don't care about the id_lang + + Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_feature WHERE id_feature = '.(int)$params['id_feature']); + Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_feature VALUES ('.(int)$params['id_feature'].', '.(int)Tools::getValue('layered_indexable').')'); + + Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_feature_lang_value WHERE id_feature = '.(int)$params['id_feature']); // don't care about the id_lang foreach (Language::getLanguages(false) as $language) { // Data are validated by method "hookPostProcessFeature" $id_lang = (int)$language['id_lang']; - Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_feature_lang_value + Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_feature_lang_value VALUES ('.(int)$params['id_feature'].', '.$id_lang.', \''.pSQL(Tools::link_rewrite(Tools::getValue('url_name_'.$id_lang))).'\', \''.pSQL(Tools::safeOutput(Tools::getValue('meta_title_'.$id_lang), true)).'\')'); } @@ -492,37 +492,37 @@ class BlockLayered extends Module { if (!$params['id_feature_value']) return; - - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_feature_value_lang_value WHERE id_feature_value = '.(int)$params['id_feature_value']); // don't care about the id_lang + + Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_feature_value_lang_value WHERE id_feature_value = '.(int)$params['id_feature_value']); // don't care about the id_lang foreach (Language::getLanguages(false) as $language) { // Data are validated by method "hookPostProcessFeatureValue" $id_lang = (int)$language['id_lang']; - Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_feature_value_lang_value + Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_feature_value_lang_value VALUES ('.(int)$params['id_feature_value'].', '.$id_lang.', \''.pSQL(Tools::link_rewrite(Tools::getValue('url_name_'.$id_lang))).'\', \''.pSQL(Tools::safeOutput(Tools::getValue('meta_title_'.$id_lang), true)).'\')'); } } - + public function hookAfterDeleteFeatureValue($params) { if (!$params['id_feature_value']) return; - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_feature_value_lang_value WHERE id_feature_value = '.(int)$params['id_feature_value']); + Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_feature_value_lang_value WHERE id_feature_value = '.(int)$params['id_feature_value']); } - + public function hookPostProcessFeatureValue($params) { $this->hookPostProcessAttributeGroup($params); } - + public function hookFeatureValueForm($params) { $languages = Language::getLanguages(false); $default_form_language = (int)(Configuration::get('PS_LANG_DEFAULT')); $langValue = array(); - - $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS( + + $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS( 'SELECT url_name, meta_title, id_lang FROM '._DB_PREFIX_.'layered_indexable_feature_value_lang_value WHERE id_feature_value = '.(int)$params['id_feature_value']); if ($result) @@ -559,42 +559,42 @@ class BlockLayered extends Module </div>'; return $return; } - + public function hookAfterSaveAttribute($params) { if (!$params['id_attribute']) return; - - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_lang_value WHERE id_attribute = '.(int)$params['id_attribute']); // don't care about the id_lang + + Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_lang_value WHERE id_attribute = '.(int)$params['id_attribute']); // don't care about the id_lang foreach (Language::getLanguages(false) as $language) { // Data are validated by method "hookPostProcessAttribute" $id_lang = (int)$language['id_lang']; - Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_attribute_lang_value + Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_attribute_lang_value VALUES ('.(int)$params['id_attribute'].', '.$id_lang.', \''.pSQL(Tools::link_rewrite(Tools::getValue('url_name_'.$id_lang))).'\', \''.pSQL(Tools::safeOutput(Tools::getValue('meta_title_'.$id_lang), true)).'\')'); } } - + public function hookAfterDeleteAttribute($params) { if (!$params['id_attribute']) return; - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_lang_value WHERE id_attribute = '.(int)$params['id_attribute']); + Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_lang_value WHERE id_attribute = '.(int)$params['id_attribute']); } - + public function hookPostProcessAttribute($params) { $this->hookPostProcessAttributeGroup($params); } - + public function hookAttributeForm($params) { $languages = Language::getLanguages(false); $default_form_language = (int)(Configuration::get('PS_LANG_DEFAULT')); $langValue = array(); - - $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS( + + $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS( 'SELECT url_name, meta_title, id_lang FROM '._DB_PREFIX_.'layered_indexable_attribute_lang_value WHERE id_attribute = '.(int)$params['id_attribute']); if ($result) @@ -631,7 +631,7 @@ class BlockLayered extends Module </div>'; return $return; } - + public function hookPostProcessFeature($params) { $this->hookPostProcessAttributeGroup($params); @@ -641,28 +641,28 @@ class BlockLayered extends Module { if (!$params['id_feature']) return; - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_feature WHERE id_feature = '.(int)$params['id_feature']); + Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_feature WHERE id_feature = '.(int)$params['id_feature']); } - + public function hookAfterSaveAttributeGroup($params) { if (!$params['id_attribute_group'] || Tools::getValue('layered_indexable') === false) return; + + Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_group WHERE id_attribute_group = '.(int)$params['id_attribute_group']); + Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_attribute_group VALUES ('.(int)$params['id_attribute_group'].', '.(int)Tools::getValue('layered_indexable').')'); - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_group WHERE id_attribute_group = '.(int)$params['id_attribute_group']); - Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_attribute_group VALUES ('.(int)$params['id_attribute_group'].', '.(int)Tools::getValue('layered_indexable').')'); - - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_group_lang_value WHERE id_attribute_group = '.(int)$params['id_attribute_group']); // don't care about the id_lang + Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_group_lang_value WHERE id_attribute_group = '.(int)$params['id_attribute_group']); // don't care about the id_lang foreach (Language::getLanguages(false) as $language) { // Data are validated by method "hookPostProcessAttributeGroup" $id_lang = (int)$language['id_lang']; - Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_attribute_group_lang_value + Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'layered_indexable_attribute_group_lang_value VALUES ('.(int)$params['id_attribute_group'].', '.$id_lang.', \''.pSQL(Tools::link_rewrite(Tools::getValue('url_name_'.$id_lang))).'\', \''.pSQL(Tools::safeOutput(Tools::getValue('meta_title_'.$id_lang), true)).'\')'); } } - + public function hookPostProcessAttributeGroup($params) { // Limit to one call @@ -670,7 +670,7 @@ class BlockLayered extends Module if ($once) return; $once = true; - + $errors = array(); foreach (Language::getLanguages(false) as $language) { @@ -683,16 +683,16 @@ class BlockLayered extends Module } } } - + public function hookAfterDeleteAttributeGroup($params) { if (!$params['id_attribute_group']) return; - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_group WHERE id_attribute_group = '.(int)$params['id_attribute_group']); - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_group_lang_value WHERE id_attribute_group = '.(int)$params['id_attribute_group']); + Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_group WHERE id_attribute_group = '.(int)$params['id_attribute_group']); + Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_indexable_attribute_group_lang_value WHERE id_attribute_group = '.(int)$params['id_attribute_group']); } - + public function hookAttributeGroupForm($params) { $languages = Language::getLanguages(false); @@ -700,8 +700,8 @@ class BlockLayered extends Module $indexable = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT indexable FROM '._DB_PREFIX_.'layered_indexable_attribute_group WHERE id_attribute_group = '.(int)$params['id_attribute_group']); $langValue = array(); - - $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS( + + $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS( 'SELECT url_name, meta_title, id_lang FROM '._DB_PREFIX_.'layered_indexable_attribute_group_lang_value WHERE id_attribute_group = '.(int)$params['id_attribute_group']); if ($result) @@ -752,27 +752,27 @@ class BlockLayered extends Module </div>'; return $return; } - + public function hookFeatureForm($params) { $languages = Language::getLanguages(false); $default_form_language = (int)(Configuration::get('PS_LANG_DEFAULT')); $indexable = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT indexable FROM '._DB_PREFIX_.'layered_indexable_feature WHERE id_feature = '.(int)$params['id_feature']); $langValue = array(); - - $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS( + + $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS( 'SELECT url_name, meta_title, id_lang FROM '._DB_PREFIX_.'layered_indexable_feature_lang_value WHERE id_feature = '.(int)$params['id_feature']); if ($result) foreach ($result as $data) $langValue[$data['id_lang']] = array('url_name' => $data['url_name'], 'meta_title' => $data['meta_title']); - - + + if ($indexable === false) $on = true; else $on = (bool)$indexable; - + $return = '<div class="clear"></div> <label>'.$this->l('Url:').'</label> <div class="margin-form"> @@ -812,7 +812,7 @@ class BlockLayered extends Module </div>'; return $return; } - + /* * $cursor $cursor in order to restart indexing from the last state */ @@ -820,10 +820,10 @@ class BlockLayered extends Module { if ($cursor == 0 && !$smart) self::installPriceIndexTable(); - + return self::indexPrices($cursor, true, $ajax, $smart); } - + /* * $cursor $cursor in order to restart indexing from the last state */ @@ -831,7 +831,7 @@ class BlockLayered extends Module { return self::indexPrices($cursor, false, $ajax); } - + private static function indexPrices($cursor = null, $full = false, $ajax = false, $smart = false) { if ($full) @@ -841,25 +841,24 @@ class BlockLayered extends Module 'SELECT COUNT(*) FROM `'._DB_PREFIX_.'product` p LEFT JOIN `'._DB_PREFIX_.'layered_price_index` psi ON (psi.id_product = p.id_product) WHERE `active` = 1 AND psi.id_product IS NULL'); - + $maxExecutionTime = @ini_get('max_execution_time'); if ($maxExecutionTime > 5 || $maxExecutionTime <= 0) $maxExecutionTime = 5; - + $startTime = microtime(true); - + do { $cursor = (int)self::indexPricesUnbreakable((int)$cursor, $full, $smart); $timeElapsed = microtime(true) - $startTime; } while ($cursor < $nbProducts && (Tools::getMemoryLimit()) > memory_get_peak_usage() && $timeElapsed < $maxExecutionTime); - + if (($nbProducts > 0 && !$full || $cursor < $nbProducts && $full) && !$ajax) { $token = substr(Tools::encrypt('blocklayered/index'), 0, 10); - if (!Tools::file_get_contents(Tools::getCurrentUrlProtocolPrefix().Tools::getHttpHost(). - __PS_BASE_URI__.'modules/blocklayered/blocklayered-price-indexer.php?token='.$token.'&cursor='.(int)$cursor.'&full='.(int)$full)) + if (!Tools::file_get_contents(Tools::getCurrentUrlProtocolPrefix().Tools::getHttpHost().__PS_BASE_URI__.'modules/blocklayered/blocklayered-price-indexer.php?token='.$token.'&cursor='.(int)$cursor.'&full='.(int)$full)) self::indexPrices((int)$cursor, (int)$full); return $cursor; } @@ -876,17 +875,17 @@ class BlockLayered extends Module return -1; } } - + /* * $cursor $cursor in order to restart indexing from the last state */ private static function indexPricesUnbreakable($cursor, $full = false, $smart = false) { static $length = 100; // Nb of products to index - + if (is_null($cursor)) $cursor = 0; - + if ($full) $query = ' SELECT id_product @@ -900,34 +899,34 @@ class BlockLayered extends Module LEFT JOIN `'._DB_PREFIX_.'layered_price_index` psi ON (psi.id_product = p.id_product) WHERE `active` = 1 AND psi.id_product is null ORDER by id_product LIMIT 0,'.(int)$length; - - foreach (Db::getInstance()->executeS($query) as $product) + + foreach (Db::getInstance()->ExecuteS($query) as $product) self::indexProductPrices((int)$product['id_product'], ($smart && $full)); return (int)($cursor + $length); } - + public static function indexProductPrices($idProduct, $smart = true) { static $groups = null; if (is_null($groups)) { - $groups = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT id_group FROM `'._DB_PREFIX_.'group_reduction`'); + $groups = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('SELECT id_group FROM `'._DB_PREFIX_.'group_reduction`'); if (!$groups) $groups = array(); } - + static $currencyList = null; if (is_null($currencyList)) $currencyList = Currency::getCurrencies(); - + $minPrice = array(); $maxPrice = array(); - + if ($smart) Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'layered_price_index` WHERE `id_product` = '.(int)$idProduct); - + $maxTaxRate = Db::getInstance()->getValue(' SELECT max(t.rate) max_rate FROM `'._DB_PREFIX_.'product` p @@ -936,19 +935,19 @@ class BlockLayered extends Module LEFT JOIN `'._DB_PREFIX_.'tax` t ON (t.id_tax = tr.id_tax AND t.active = 1) WHERE id_product = '.(int)$idProduct.' GROUP BY id_product'); - - $productMinPrices = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' + + $productMinPrices = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT id_shop, id_currency, id_country, id_group, from_quantity FROM `'._DB_PREFIX_.'specific_price` WHERE id_product = '.(int)$idProduct); - + // Get min price foreach ($currencyList as $currency) { $price = Product::priceCalculation(null, (int)$idProduct, null, null, null, null, $currency['id_currency'], null, null, false, true, false, true, true, $specificPriceOutput, true); - + if (!isset($maxPrice[$currency['id_currency']])) $maxPrice[$currency['id_currency']] = 0; if (!isset($minPrice[$currency['id_currency']])) @@ -960,7 +959,7 @@ class BlockLayered extends Module if (is_null($minPrice[$currency['id_currency']]) || $price < $minPrice[$currency['id_currency']]) $minPrice[$currency['id_currency']] = $price; } - + foreach ($productMinPrices as $specificPrice) foreach ($currencyList as $currency) { @@ -970,7 +969,7 @@ class BlockLayered extends Module null, (($specificPrice['id_country'] == 0) ? null : $specificPrice['id_country']), null, null, $currency['id_currency'], (($specificPrice['id_group'] == 0) ? null : $specificPrice['id_group']), $specificPrice['from_quantity'], false, true, false, true, true, $specificPriceOutput, true); - + if (!isset($maxPrice[$currency['id_currency']])) $maxPrice[$currency['id_currency']] = 0; if (!isset($minPrice[$currency['id_currency']])) @@ -982,13 +981,13 @@ class BlockLayered extends Module if (is_null($minPrice[$currency['id_currency']]) || $price < $minPrice[$currency['id_currency']]) $minPrice[$currency['id_currency']] = $price; } - + foreach ($groups as $group) foreach ($currencyList as $currency) { $price = Product::priceCalculation(null, (int)$idProduct, null, null, null, null, (int)$currency['id_currency'], (int)$group['id_group'], null, false, true, false, true, true, $specificPriceOutput, true); - + if (!isset($maxPrice[$currency['id_currency']])) $maxPrice[$currency['id_currency']] = 0; if (!isset($minPrice[$currency['id_currency']])) @@ -1000,13 +999,13 @@ class BlockLayered extends Module if (is_null($minPrice[$currency['id_currency']]) || $price < $minPrice[$currency['id_currency']]) $minPrice[$currency['id_currency']] = $price; } - + $values = array(); foreach ($currencyList as $currency) $values[] = '('.(int)$idProduct.', '.(int)$currency['id_currency'].', '.(int)$minPrice[$currency['id_currency']].', '.(int)($maxPrice[$currency['id_currency']] * (100 + $maxTaxRate) / 100).')'; - - Db::getInstance()->execute(' + + Db::getInstance()->Execute(' INSERT INTO `'._DB_PREFIX_.'layered_price_index` (id_product, id_currency, price_min, price_max) VALUES '.implode(',', $values).' ON DUPLICATE KEY UPDATE id_product = id_product # avoid duplicate keys'); @@ -1025,19 +1024,17 @@ class BlockLayered extends Module public function hookHeader($params) { global $smarty, $cookie; - + // No filters => module disable if ($filterBlock = $this->getFilterBlock($this->getSelectedFilters())) if ($filterBlock['nbr_filterBlocks'] == 0) return false; - + if (Tools::getValue('id_category', Tools::getValue('id_category_layered', 1)) == 1) return; - + $idLang = (int)$cookie->id_lang; $category = new Category((int)Tools::getValue('id_category')); - $categoryMetas = Tools::getMetaTags($idLang, ''); - $categoryTitle = (empty($category->meta_title[$idLang]) ? $category->name[$idLang] : $category->meta_title[$idLang]); // Generate meta title and meta description $title = ''; @@ -1045,25 +1042,28 @@ class BlockLayered extends Module foreach ($filterBlock['title_values'] as $key => $val) $title .= $key.' '.implode('/', $val).' – '; $title = rtrim($title, ' – '); - + $categoryMetas = Tools::getMetaTags($idLang, '', $title); + $categoryTitle = (empty($category->meta_title[$idLang]) ? $category->name[$idLang] : $category->meta_title[$idLang]); + if (!empty($title)) { - $smarty->assign('meta_title', ucfirst(strtolower(preg_replace('/^'.$categoryTitle.'/', $categoryTitle.' – '.$title, $categoryMetas['meta_title'])))); - $smarty->assign('meta_description', rtrim($categoryTitle.' – '.$title.' – '.$categoryMetas['meta_description'], ' – ')); + $smarty->assign('meta_title', $categoryTitle.$categoryMetas['meta_title']); + $smarty->assign('meta_description', $categoryTitle.$categoryMetas['meta_description']); } else - $smarty->assign('meta_title', ucfirst(strtolower($categoryMetas['meta_title']))); - + $smarty->assign('meta_title', $categoryMetas['meta_title']); + $metaKeyWordsComplement = substr(str_replace(' – ', ', ', strtolower($title)), 1000); if (!empty($metaKeyWordsComplement)) $smarty->assign('meta_keywords', rtrim($categoryTitle.', '.$metaKeyWordsComplement.', '.$categoryMetas['meta_keywords'], ', ')); - - $this->context->controller->addJs($this->_path.'blocklayered.js'); - $this->context->controller->addJqueryUI('ui.slider'); - $this->context->controller->addCSS($this->_path.'blocklayered.css', 'all'); + + Tools::addJS(($this->_path).'blocklayered.js'); + Tools::addJS(_PS_JS_DIR_.'jquery/jquery-ui-1.8.10.custom.min.js'); + Tools::addCSS(_PS_CSS_DIR_.'jquery-ui-1.8.10.custom.css', 'all'); + Tools::addCSS(($this->_path).'blocklayered.css', 'all'); Tools::addJS(_PS_JS_DIR_.'jquery/jquery.scrollTo-1.4.2-min.js'); } - + public function hookFooter($params) { if (basename($_SERVER['PHP_SELF']) == 'category.php') @@ -1095,7 +1095,7 @@ class BlockLayered extends Module public function hookCategoryDeletion($params) { - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'layered_category WHERE id_category = '.(int)$params['category']->id); + Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_category WHERE id_category = '.(int)$params['category']->id); } public function getContent() @@ -1117,29 +1117,29 @@ class BlockLayered extends Module else { if (isset($_POST['id_layered_filter']) && $_POST['id_layered_filter']) - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'layered_filter WHERE id_layered_filter = '.(int)Tools::getValue('id_layered_filter')); - + Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_filter WHERE id_layered_filter = '.(int)Tools::getValue('id_layered_filter')); + if (Tools::getValue('scope') == 1) { - Db::getInstance()->execute('TRUNCATE TABLE '._DB_PREFIX_.'layered_filter'); - $categories = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT id_category FROM '._DB_PREFIX_.'category'); + Db::getInstance()->Execute('TRUNCATE TABLE '._DB_PREFIX_.'layered_filter'); + $categories = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('SELECT id_category FROM '._DB_PREFIX_.'category'); foreach ($categories as $category) $_POST['categoryBox'][] = (int)$category['id_category']; } - + if (count($_POST['categoryBox'])) { /* Clean categoryBox before use */ if (isset($_POST['categoryBox']) && is_array($_POST['categoryBox'])) foreach ($_POST['categoryBox'] as &$categoryBoxTmp) $categoryBoxTmp = (int)$categoryBoxTmp; - - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'layered_category WHERE id_category IN ('.implode(',', array_map('intval', $_POST['categoryBox'])).')'); - + + Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_category WHERE id_category IN ('.implode(',', array_map('intval', $_POST['categoryBox'])).')'); + $filterValues = array(); foreach ($_POST['categoryBox'] as $idc) $filterValues['categories'][] = (int)$idc; - + $sqlToInsert = 'INSERT INTO '._DB_PREFIX_.'layered_category (id_category, id_value, type, position) VALUES '; foreach ($_POST['categoryBox'] as $id_category_layered) { @@ -1167,9 +1167,9 @@ class BlockLayered extends Module $sqlToInsert .= '('.(int)$id_category_layered.','.(int)str_replace('layered_selection_feat_', '', $key).',\'id_feature\','.(int)$n.'),'; } } - - Db::getInstance()->execute(rtrim($sqlToInsert, ',')); - + + Db::getInstance()->Execute(rtrim($sqlToInsert, ',')); + $valuesToInsert = array( 'name' => pSQL(Tools::getValue('layered_tpl_name')), 'filters' => pSQL(serialize($filterValues)), @@ -1177,10 +1177,10 @@ class BlockLayered extends Module 'date_add' => date('Y-m-d H:i:s')); if (isset($_POST['id_layered_filter']) && $_POST['id_layered_filter']) $valuesToInsert['id_layered_filter'] = (int)Tools::getValue('id_layered_filter'); - + Db::getInstance()->AutoExecute(_DB_PREFIX_.'layered_filter', $valuesToInsert, 'INSERT'); - - echo '<div class="conf"> + + echo '<div class="conf"><img src="../img/admin/ok2.png" alt="" /> '.$this->l('Your filter').' "'.Tools::safeOutput(Tools::getValue('layered_tpl_name')).'" '. ((isset($_POST['id_layered_filter']) && $_POST['id_layered_filter']) ? $this->l('was updated successfully.') : $this->l('was added successfully.')).'</div>'; } @@ -1190,26 +1190,26 @@ class BlockLayered extends Module { Configuration::updateValue('PS_LAYERED_HIDE_0_VALUES', Tools::getValue('ps_layered_hide_0_values')); Configuration::updateValue('PS_LAYERED_SHOW_QTIES', Tools::getValue('ps_layered_show_qties')); - + $html .= ' <div class="conf"> - '.$this->l('Settings saved successfully').' + <img src="../img/admin/ok2.png" alt="" /> '.$this->l('Settings saved successfully').' </div>'; } else if (isset($_GET['deleteFilterTemplate'])) { $layeredValues = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue(' - SELECT filters - FROM '._DB_PREFIX_.'layered_filter + SELECT filters + FROM '._DB_PREFIX_.'layered_filter WHERE id_layered_filter = '.(int)$_GET['id_layered_filter']); - + if ($layeredValues) { - Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'layered_filter WHERE id_layered_filter = '.(int)$_GET['id_layered_filter'].' LIMIT 1'); - + Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'layered_filter WHERE id_layered_filter = '.(int)$_GET['id_layered_filter'].' LIMIT 1'); + $html .= ' <div class="conf"> - '.$this->l('Filters template deleted, categories updated (reverted to default Filters template).').' + <img src="../img/admin/ok2.png" alt="" /> '.$this->l('Filters template deleted, categories updated (reverted to default Filters template).').' </div>'; } else @@ -1220,10 +1220,10 @@ class BlockLayered extends Module </div>'; } } - + $html .= ' <div id="ajax-message-ok" class="conf ajax-message" style="display: none"> - <span class="message"></span> + <img alt="" src="../img/admin/ok2.png"><span class="message"></span> </div> <div id="ajax-message-ko" class="error ajax-message" style="display: none"> <img src="../img/admin/error2.png" alt="" /><span class="message"></span> @@ -1241,68 +1241,67 @@ class BlockLayered extends Module $(\'#full-index\').click(); }); </script>'; - + $categoryList = array(); - foreach (Db::getInstance()->executeS('SELECT id_category FROM `'._DB_PREFIX_.'category`') as $category) + foreach (Db::getInstance()->ExecuteS('SELECT id_category FROM `'._DB_PREFIX_.'category`') as $category) if ($category['id_category'] != 1) $categoryList[] = $category['id_category']; - - $base_url = Tools::getCurrentUrlProtocolPrefix().Tools::getHttpHost().__PS_BASE_URI__; + $html .= ' <a class="bold ajaxcall-recurcive" style="width: 250px; text-align:center;display:block;border:1px solid #aaa;text-decoration:none;background-color:#fafafa;color:#123456;margin:2px;padding:2px" - href="'.$base_url.'modules/blocklayered/blocklayered-price-indexer.php'.'?token='.substr(Tools::encrypt('blocklayered/index'), 0, 10).'">'. + href="'.Tools::getCurrentUrlProtocolPrefix().Tools::getHttpHost().__PS_BASE_URI__.'modules/blocklayered/blocklayered-price-indexer.php'.'?token='.substr(Tools::encrypt('blocklayered/index'), 0, 10).'">'. $this->l('Index all missing prices').'</a> <br /> <a class="bold ajaxcall-recurcive" style="width: 250px; text-align:center;display:block;border:1px solid #aaa;text-decoration:none;background-color:#fafafa;color:#123456;margin:2px;padding:2px" id="full-index" - href="'.$base_url.'modules/blocklayered/blocklayered-price-indexer.php'.'?token='.substr(Tools::encrypt('blocklayered/index'), 0, 10).'&full=1">'. + href="'.Tools::getCurrentUrlProtocolPrefix().Tools::getHttpHost().__PS_BASE_URI__.'modules/blocklayered/blocklayered-price-indexer.php'.'?token='.substr(Tools::encrypt('blocklayered/index'), 0, 10).'&full=1">'. $this->l('Re-build entire price index').'</a> <br /> <a class="bold ajaxcall" id="attribute-indexer" style="width: 250px; text-align:center;display:block;border:1px solid #aaa;text-decoration:none;background-color:#fafafa;color:#123456;margin:2px;padding:2px" id="full-index" - href="'.$base_url.'modules/blocklayered/blocklayered-attribute-indexer.php'.'?token='.substr(Tools::encrypt('blocklayered/index'), 0, 10).'">'. + href="'.Tools::getCurrentUrlProtocolPrefix().Tools::getHttpHost().__PS_BASE_URI__.'modules/blocklayered/blocklayered-attribute-indexer.php'.'?token='.substr(Tools::encrypt('blocklayered/index'), 0, 10).'">'. $this->l('Build attribute index').'</a> <br /> <a class="bold ajaxcall" id="url-indexer" style="width: 250px; text-align:center;display:block;border:1px solid #aaa;text-decoration:none;background-color:#fafafa;color:#123456;margin:2px;padding:2px" id="full-index" - href="'.$base_url.'modules/blocklayered/blocklayered-url-indexer.php'.'?token='.substr(Tools::encrypt('blocklayered/index'), 0, 10).'&truncate=1">'. + href="'.Tools::getCurrentUrlProtocolPrefix().Tools::getHttpHost().__PS_BASE_URI__.'modules/blocklayered/blocklayered-url-indexer.php'.'?token='.substr(Tools::encrypt('blocklayered/index'), 0, 10).'&truncate=1">'. $this->l('Build url index').'</a> <br /> <br /> '.$this->l('You can set a cron job that will re-build price index using the following URL:').'<br /><b>'. - $base_url.'modules/blocklayered/blocklayered-price-indexer.php'.'?token='.substr(Tools::encrypt('blocklayered/index'), 0, 10).'&full=1</b> + Tools::getCurrentUrlProtocolPrefix().Tools::getHttpHost().__PS_BASE_URI__.'modules/blocklayered/blocklayered-price-indexer.php'.'?token='.substr(Tools::encrypt('blocklayered/index'), 0, 10).'&full=1</b> <br /> '.$this->l('You can set a cron job that will re-build url index using the following URL:').'<br /><b>'. - $base_url.'modules/blocklayered/blocklayered-url-indexer.php'.'?token='.substr(Tools::encrypt('blocklayered/index'), 0, 10).'&truncate=1</b> + Tools::getCurrentUrlProtocolPrefix().Tools::getHttpHost().__PS_BASE_URI__.'modules/blocklayered/blocklayered-url-indexer.php'.'?token='.substr(Tools::encrypt('blocklayered/index'), 0, 10).'&truncate=1</b> <br /> '.$this->l('You can set a cron job that will re-build attribute index using the following URL:').'<br /><b>'. - $base_url.'modules/blocklayered/blocklayered-attribute-indexer.php'.'?token='.substr(Tools::encrypt('blocklayered/index'), 0, 10).'</b> + Tools::getCurrentUrlProtocolPrefix().Tools::getHttpHost().__PS_BASE_URI__.'modules/blocklayered/blocklayered-attribute-indexer.php'.'?token='.substr(Tools::encrypt('blocklayered/index'), 0, 10).'</b> <br /><br /> '.$this->l('A nightly rebuild is recommended.').' <script type="text/javascript"> $(\'.ajaxcall\').click(function() { if (this.legend == undefined) this.legend = $(this).html(); - + if (this.running == undefined) this.running = false; - + if (this.running == true) return false; - + $(\'.ajax-message\').hide(); - + this.running = true; - + if (typeof(this.restartAllowed) == \'undefined\' || this.restartAllowed) { $(this).html(this.legend+\' '.addslashes($this->l('(in progress)')).'\'); $(\'#indexing-warning\').show(); } - + this.restartAllowed = false; - + $.ajax({ url: this.href+\'&ajax=1\', context: this, @@ -1325,7 +1324,7 @@ class BlockLayered extends Module $(\'#ajax-message-ko span\').html(\''.addslashes($this->l('Url indexation failed')).'\'); $(\'#ajax-message-ko\').show(); $(this).html(this.legend); - + this.running = false; } }); @@ -1335,28 +1334,28 @@ class BlockLayered extends Module $(elm).click(function() { if (this.cursor == undefined) this.cursor = 0; - + if (this.legend == undefined) this.legend = $(this).html(); - + if (this.running == undefined) this.running = false; - + if (this.running == true) return false; - + $(\'.ajax-message\').hide(); - + this.running = true; - + if (typeof(this.restartAllowed) == \'undefined\' || this.restartAllowed) { $(this).html(this.legend+\' '.addslashes($this->l('(in progress)')).'\'); $(\'#indexing-warning\').show(); } - + this.restartAllowed = false; - + $.ajax({ url: this.href+\'&ajax=1&cursor=\'+this.cursor, context: this, @@ -1385,7 +1384,7 @@ class BlockLayered extends Module $(\'#ajax-message-ko span\').html(\''.addslashes($this->l('Price indexation failed')).'\'); $(\'#ajax-message-ko\').show(); $(this).html(this.legend); - + this.cursor = 0; this.running = false; } @@ -1398,8 +1397,8 @@ class BlockLayered extends Module <br /> <fieldset class="width4"> <legend><img src="../img/admin/cog.gif" alt="" />'.$this->l('Existing filters templates').'</legend>'; - - $filtersTemplates = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT * FROM '._DB_PREFIX_.'layered_filter ORDER BY date_add DESC'); + + $filtersTemplates = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('SELECT * FROM '._DB_PREFIX_.'layered_filter ORDER BY date_add DESC'); if (count($filtersTemplates)) { $html .= '<p>'.count($filtersTemplates).' '.$this->l('filters templates are configured:').'</p> @@ -1411,12 +1410,12 @@ class BlockLayered extends Module <th>'.$this->l('Created on').'</th> <th>'.$this->l('Actions').'</th> </tr>'; - + foreach ($filtersTemplates as $filtersTemplate) { /* Clean request URI first */ $_SERVER['REQUEST_URI'] = preg_replace('/&deleteFilterTemplate=[0-9]*&id_layered_filter=[0-9]*/', '', $_SERVER['REQUEST_URI']); - + $html .= ' <tr> <td>'.(int)$filtersTemplate['id_layered_filter'].'</td> @@ -1425,20 +1424,20 @@ class BlockLayered extends Module <td>'.Tools::displayDate($filtersTemplate['date_add'], (int)$cookie->id_lang, true).'</td> <td> <a href="#" onclick="updElements('.($filtersTemplate['n_categories'] ? 0 : 1).', '.(int)$filtersTemplate['id_layered_filter'].');"> - <img src="../img/admin/edit.gif" alt="" title="'.$this->l('Edit').'" /></a> + <img src="../img/admin/edit.gif" alt="" title="'.$this->l('Edit').'" /></a> <a href="'.Tools::safeOutput($_SERVER['REQUEST_URI']).'&deleteFilterTemplate=1&id_layered_filter='.(int)$filtersTemplate['id_layered_filter'].'" onclick="return confirm(\''.addslashes($this->l('Delete filter template #')).(int)$filtersTemplate['id_layered_filter'].$this->l('?').'\');"> <img src="../img/admin/delete.gif" alt="" title="'.$this->l('Delete').'" /></a> </td> </tr>'; } - + $html .= ' </table>'; } else $html .= $this->l('No filter template found.'); - + $html .= ' </fieldset><br /> <fieldset class="width4"> @@ -1460,13 +1459,13 @@ class BlockLayered extends Module #table-filter-templates tr th, #table-filter-templates tr td { text-align: center; } </style> <form action="'.Tools::safeOutput($_SERVER['REQUEST_URI']).'" method="post" onsubmit="return checkForm();">'; - + $html .= ' <h2>'.$this->l('Step 1/3 - Select categories').'</h2> <p style="margin-top: 20px;">'.$this->l('Use this template for:').' - <input type="radio" id="scope_1" name="scope" value="1" style="margin-left: 15px;" onclick="$(\'#error-treeview\').hide(); $(\'#layered-step-2\').show(); updElements(1, 0);" /> + <input type="radio" id="scope_1" name="scope" value="1" style="margin-left: 15px;" onclick="$(\'#error-treeview\').hide(); $(\'#layered-step-2\').show(); updElements(1, 0);" /> <label for="scope_1" style="float: none;">'.$this->l('All categories').'</label> - <input type="radio" id="scope_2" name="scope" value="2" style="margin-left: 15px;" onclick="$(\'label a#inline\').click(); $(\'#layered-step-2\').show();" /> + <input type="radio" id="scope_2" name="scope" value="2" style="margin-left: 15px;" onclick="$(\'label a#inline\').click(); $(\'#layered-step-2\').show();" /> <label for="scope_2" style="float: none;"><a id="inline" href="#layered-categories-selection" style="text-decoration: underline;">'.$this->l('Specific').'</a> '.$this->l('categories').' (<span id="layered-cat-counter"></span> '.$this->l('selected').')</label> </p> @@ -1481,19 +1480,12 @@ class BlockLayered extends Module <li>'.$this->l('Press "Save this selection" or close the window to save').'</li> </ol>'; + $trads = array(); $selectedCat = array(); - // Translations are not automatic for the moment ;) - $trads = array( - 'Home' => $this->l('Home'), - 'selected' => $this->l('selected'), - 'Collapse All' => $this->l('Collapse All'), - 'Expand All' => $this->l('Expand All'), - 'Check All' => $this->l('Check All'), - 'Uncheck All' => $this->l('Uncheck All'), - 'search' => $this->l('Search a category') - ); + foreach (Helper::$translationsKeysForAdminCategorieTree as $key) + $trads[$key] = $this->l($key); $html .= Helper::renderAdminCategorieTree($trads, $selectedCat, 'categoryBox'); - + $html .= ' <br /> <center><input type="button" class="button" value="'.$this->l('Save this selection').'" onclick="$.fancybox.close();" /></center> @@ -1518,12 +1510,12 @@ class BlockLayered extends Module <script type="text/javascript" src="'.__PS_BASE_URI__.'js/jquery/jquery.fancybox-1.3.4.js"></script> <link type="text/css" rel="stylesheet" href="'.__PS_BASE_URI__.'css/jquery.fancybox-1.3.4.css" /> <script type="text/javascript"> - + function updLayCounters() { $(\'#num_sel_filters\').html(\'(\'+$(\'ul#selected_filters\').find(\'li\').length+\')\'); $(\'#num_avail_filters\').html(\'(\'+$(\'#layered_container_right ul\').find(\'li\').length+\')\'); - + if ($(\'ul#selected_filters\').find(\'li\').length >= 1) $(\'#layered-step-3\').show(); else @@ -1559,7 +1551,7 @@ class BlockLayered extends Module $(\'#layered-ajax-refresh\').css(\'opacity\', \'0.2\'); $(\'#layered-ajax-refresh\').html(\'<div style="margin: 0 auto; padding: 10px; text-align: center;">\' +\'<img src="../img/admin/ajax-loader-big.gif" alt="" /><br /><p style="color: white;">'.addslashes($this->l('Loading...')).'</p></div>\'); - + $.ajax( { type: \'GET\', @@ -1572,18 +1564,18 @@ class BlockLayered extends Module $(\'#layered-ajax-refresh\').css(\'background-color\', \'transparent\'); $(\'#layered-ajax-refresh\').css(\'opacity\', \'1\'); $(\'#layered-ajax-refresh\').html(result); - + $(\'#layered_container_right li input\').each(function() { if ($(\'#layered_container_left\').find(\'input[id="\'+$(this).attr(\'id\')+\'"]\').length > 0) $(this).parent().remove(); }); - + updHeight(); updLayCounters(); } }); } - + function checkForm() { if ($(\'#layered_tpl_name\').val() == \'\') @@ -1618,7 +1610,7 @@ class BlockLayered extends Module else { $(this).parent().css(\'background\', \'url("../img/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png") repeat-x scroll 50% 50% #F6F6F6\'); - $(this).effect(\'transfer\', { to: $(\'#layered_container_right ul#all_filters\') }, 300, function() { + $(this).effect(\'transfer\', { to: $(\'#layered_container_right ul#all_filters\') }, 300, function() { $(this).parent().removeClass(\'layered_left\'); $(this).parent().addClass(\'layered_right\'); $(this).parent().appendTo(\'ul#all_filters\'); @@ -1631,8 +1623,8 @@ class BlockLayered extends Module } enableSortable(); }); - - $(\'label a#inline\').fancybox({ + + $(\'label a#inline\').fancybox({ \'hideOnContentClick\': false, \'onClosed\': function() { updCatCounter(); @@ -1665,7 +1657,7 @@ class BlockLayered extends Module updCatCounter(); enableSortable(); } - + function enableSortable() { $(function() { @@ -1705,7 +1697,7 @@ class BlockLayered extends Module </fieldset><br /> <fieldset class="width2"> <legend><img src="../img/admin/cog.gif" alt="" /> '.$this->l('Configuration').'</legend> - <form action="'.Tools::safeOutput($_SERVER['REQUEST_URI']).'" method="post"> + <form action="'.Tools::safeOutput($_SERVER['REQUEST_URI']).'" method="post"> <table border="0" style="font-size: 11px; width: 100%; margin: 0 auto;" class="table"> <tr> <th style="text-align: center;">'.$this->l('Option').'</th> @@ -1742,7 +1734,7 @@ class BlockLayered extends Module $id_parent = (int)Tools::getValue('id_category', Tools::getValue('id_category_layered', 1)); if ($id_parent == 1) return; - + // Force attributes selection (by url '.../2-mycategory/color-blue' or by get parameter 'selected_filters') if (strpos($_SERVER['SCRIPT_FILENAME'], 'blocklayered-ajax.php') === false || Tools::getValue('selected_filters') !== false) { @@ -1750,7 +1742,7 @@ class BlockLayered extends Module $url = Tools::getValue('selected_filters'); else $url = preg_replace('/\/(?:\w*)\/(?:[0-9]+[-\w]*)([^\?]*)\??.*/', '$1', Tools::safeOutput($_SERVER['REQUEST_URI'], true)); - + $urlAttributes = explode('/', $url); array_shift($urlAttributes); $selectedFilters = array('category' => array()); @@ -1838,7 +1830,7 @@ class BlockLayered extends Module $queryFiltersWhere = ' AND p.active = 1'; $queryFiltersFrom = ''; - + $parent = new Category((int)$id_parent); if (!count($selectedFilters['category'])) $queryFiltersFrom .= ' INNER JOIN '._DB_PREFIX_.'category_product cp @@ -1874,8 +1866,8 @@ class BlockLayered extends Module case 'id_attribute_group': $subQueries = array(); - - + + foreach ($filterValues as $filterValue) { $filterValueArray = explode('_', $filterValue); @@ -1938,8 +1930,8 @@ class BlockLayered extends Module break; } } - - $idCurrency = (int)$this->context->currency->id; + + $idCurrency = Currency::getCurrent()->id; $priceFilterQueryIn = ''; // All products with price range between price filters limits $priceFilterQueryOut = ''; // All products with a price filters limit on it price range if (isset($priceFilter) && $priceFilter) @@ -1949,24 +1941,24 @@ class BlockLayered extends Module AND psi.price_max <= '.(int)$priceFilter['max'].' AND psi.`id_product` = p.`id_product` AND psi.`id_currency` = '.(int)$idCurrency; - + $priceFilterQueryOut = 'INNER JOIN `'._DB_PREFIX_.'layered_price_index` psi - ON + ON ((psi.price_min <= '.(int)$priceFilter['min'].' AND psi.price_max >= '.(int)$priceFilter['min'].') OR (psi.price_max >= '.(int)$priceFilter['max'].' AND psi.price_min <= '.(int)$priceFilter['max'].')) AND psi.`id_product` = p.`id_product` AND psi.`id_currency` = '.(int)$idCurrency; } - - $allProductsOut = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' + + $allProductsOut = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT p.`id_product` id_product FROM `'._DB_PREFIX_.'product` p '.$priceFilterQueryOut.' '.$queryFiltersFrom.' WHERE 1 '.$queryFiltersWhere.' GROUP BY id_product', false); - - $allProductsIn = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' + + $allProductsIn = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT p.`id_product` id_product FROM `'._DB_PREFIX_.'product` p '.$priceFilterQueryIn.' @@ -1974,7 +1966,7 @@ class BlockLayered extends Module WHERE 1 '.$queryFiltersWhere.' GROUP BY id_product', false); $productIdList = array(); - + while ($product = DB::getInstance()->nextRow($allProductsIn)) $productIdList[] = (int)$product['id_product']; @@ -1987,13 +1979,13 @@ class BlockLayered extends Module $productIdList[] = (int)$product['id_product']; } $this->nbr_products = count($productIdList); - + if ($this->nbr_products == 0) $this->products = array(); else { $n = (int)Tools::getValue('n', Configuration::get('PS_PRODUCTS_PER_PAGE')); - $this->products = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' + $this->products = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT p.id_product, p.on_sale, p.out_of_stock, p.available_for_order, p.quantity, p.minimal_quantity, p.id_category_default, p.customizable, p.show_price, p.`weight`, p.ean13, pl.available_later, pl.description_short, pl.link_rewrite, pl.name, i.id_image, il.legend, m.name manufacturer_name, p.condition, p.id_manufacturer, DATEDIFF(p.`date_add`, @@ -2012,23 +2004,23 @@ class BlockLayered extends Module } return $this->products; } - + public function getFilterBlock($selectedFilters = array()) { global $cookie; static $cache = null; - + if (is_array($cache)) return $cache; - + $id_parent = (int)Tools::getValue('id_category', Tools::getValue('id_category_layered', 1)); if ($id_parent == 1) return; - + $parent = new Category((int)$id_parent); - + /* Get the filters for the current category */ - $filters = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT * FROM '._DB_PREFIX_.'layered_category WHERE id_category = '.(int)$id_parent.' + $filters = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('SELECT * FROM '._DB_PREFIX_.'layered_category WHERE id_category = '.(int)$id_parent.' GROUP BY `type`, id_value ORDER BY position ASC'); // Remove all empty selected filters foreach ($selectedFilters as $key => $value) @@ -2044,7 +2036,7 @@ class BlockLayered extends Module unset($selectedFilters[$key]); break; } - + $filterBlocks = array(); foreach ($filters as $filter) { @@ -2112,7 +2104,7 @@ class BlockLayered extends Module $sqlQuery['group'] = ' GROUP BY lpa.id_attribute ORDER BY id_attribute_group, id_attribute '; - + break; case 'id_feature': @@ -2151,6 +2143,7 @@ class BlockLayered extends Module WHERE c.id_parent = '.(int)$id_parent.' GROUP BY c.id_category ORDER BY level_depth, c.position'; } + foreach ($filters as $filterTmp) { $methodName = 'get'.ucfirst($filterTmp['type']).'FilterSubQuery'; @@ -2171,11 +2164,11 @@ class BlockLayered extends Module $sqlQuery[$key] .= $value; } } - + $products = false; if (!empty($sqlQuery['from'])) - $products = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sqlQuery['select']."\n".$sqlQuery['from']."\n".$sqlQuery['join']."\n".$sqlQuery['where']."\n".$sqlQuery['group']); - + $products = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS($sqlQuery['select']."\n".$sqlQuery['from']."\n".$sqlQuery['join']."\n".$sqlQuery['where']."\n".$sqlQuery['group']); + foreach ($filters as $filterTmp) { $methodName = 'filterProductsBy'.ucfirst($filterTmp['type']); @@ -2191,7 +2184,7 @@ class BlockLayered extends Module { case 'price': $priceArray = array('type_lite' => 'price', 'type' => 'price', 'id_key' => 0, 'name' => $this->l('Price'), - 'slider' => true, 'max' => '0', 'min' => null, 'values' => array ('1' => 0), 'unit' => (int)$this->context->currency->sign); + 'slider' => true, 'max' => '0', 'min' => null, 'values' => array ('1' => 0), 'unit' => Currency::getCurrent()->sign); if (isset($products) && $products) foreach ($products as $product) { @@ -2205,14 +2198,14 @@ class BlockLayered extends Module $priceArray['min'] = $product['price_min']; $priceArray['values'][0] = $product['price_min']; } - + if ($priceArray['max'] < $product['price_max']) { $priceArray['max'] = $product['price_max']; $priceArray['values'][1] = $product['price_max']; } } - + if ($priceArray['max'] != $priceArray['min'] && $priceArray['min'] != null) { if (isset($selectedFilters['price']) && isset($selectedFilters['price'][0]) @@ -2241,7 +2234,7 @@ class BlockLayered extends Module $weightArray['min'] = $product['weight']; $weightArray['values'][0] = $product['weight']; } - + if ($weightArray['max'] < $product['weight']) { $weightArray['max'] = $product['weight']; @@ -2261,7 +2254,7 @@ class BlockLayered extends Module break; case 'condition': - $conditionArray = array('new' => array('name' => $this->l('New'), 'nbr' => 0), + $conditionArray = array('new' => array('name' => $this->l('New'), 'nbr' => 0), 'used' => array('name' => $this->l('Used'), 'nbr' => 0), 'refurbished' => array('name' => $this->l('Refurbished'), 'nbr' => 0)); if (isset($products) && $products) foreach ($products as $product) @@ -2276,7 +2269,7 @@ class BlockLayered extends Module $conditionArray[$product['condition']]['nbr']++; $filterBlocks[] = array('type_lite' => 'condition', 'type' => 'condition', 'id_key' => 0, 'name' => $this->l('Condition'), 'values' => $conditionArray); break; - + case 'quantity': $quantityArray = array (0 => array('name' => $this->l('Not available'), 'nbr' => 0), 1 => array('name' => $this->l('In stock'), 'nbr' => 0)); foreach ($quantityArray as $key => $quantity) @@ -2313,7 +2306,7 @@ class BlockLayered extends Module 'type' => 'id_attribute_group', 'id_key' => (int)$attributes['id_attribute_group'], 'name' => $attributes['attribute_group_name'], 'is_color_group' => (bool)$attributes['is_color_group'], 'values' => array(), 'url_name' => $attributes['name_url_name'], 'meta_title' => $attributes['name_meta_title']); - + $attributesArray[$attributes['id_attribute_group']]['values'][$attributes['id_attribute']] = array( 'color' => $attributes['color'], 'name' => $attributes['attribute_name'], 'nbr' => (int)$attributes['nbr'], 'url_name' => $attributes['value_url_name'], 'meta_title' => $attributes['value_meta_title']); @@ -2356,15 +2349,15 @@ class BlockLayered extends Module $filterBlocks[] = array ('type_lite' => 'category', 'type' => 'category', 'id_key' => 0, 'name' => $this->l('Categories'), 'values' => $tmpArray); } break; - + } } - + // All non indexable attribute and feature $nonIndexable = array(); - + // Get all non indexable attribute groups - foreach (Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' + foreach (Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT public_name FROM `'._DB_PREFIX_.'attribute_group_lang` agl LEFT JOIN `'._DB_PREFIX_.'layered_indexable_attribute_group` liag @@ -2372,9 +2365,9 @@ class BlockLayered extends Module WHERE indexable IS NULL OR indexable = 0 AND id_lang = '.(int)$cookie->id_lang) as $attribute) $nonIndexable[] = Tools::link_rewrite($attribute['public_name']); - + // Get all non indexable features - foreach (Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' + foreach (Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT name FROM `'._DB_PREFIX_.'feature_lang` fl LEFT JOIN `'._DB_PREFIX_.'layered_indexable_feature` lif @@ -2385,20 +2378,19 @@ class BlockLayered extends Module //generate SEO link $paramSelected = ''; - $param_product_url = ''; $optionCheckedArray = array(); $paramGroupSelectedArray = array(); $titleValues = array(); $link = new Link(); - + $linkBase = $link->getCategoryLink($id_parent, Category::getLinkRewrite($id_parent, (int)($cookie->id_lang)), (int)($cookie->id_lang)); $filterBlockList = array(); - + //get filters checked by group foreach ($filterBlocks as $typeFilter) { $filterName = (!empty($typeFilter['url_name']) ? $typeFilter['url_name'] : $typeFilter['name']); - + $paramGroupSelected = ''; foreach ($typeFilter['values'] as $key => $value) { @@ -2407,7 +2399,7 @@ class BlockLayered extends Module $valueName = !empty($value['url_name']) ? $value['url_name'] : $value['name']; $paramGroupSelected .= '-'.str_replace('-', '_', Tools::link_rewrite($valueName)); $paramGroupSelectedArray[Tools::link_rewrite($filterName)][] = Tools::link_rewrite($valueName); - + if (!isset($titleValues[$filterName])) $titleValues[$filterName] = array(); $titleValues[$filterName][] = $valueName; @@ -2420,9 +2412,6 @@ class BlockLayered extends Module $paramSelected .= '/'.str_replace('-', '_', Tools::link_rewrite($filterName)).$paramGroupSelected; $optionCheckedArray[Tools::link_rewrite($filterName)] = $paramGroupSelected; } - // select only attribute and group attribute to display an unique product combination link - if (!empty($paramGroupSelected) && $typeFilter['type'] == 'id_attribute_group') - $param_product_url .= '/'.str_replace('-', '_', Tools::link_rewrite($filterName)).$paramGroupSelected; } $blackList = array('weight','price'); @@ -2430,14 +2419,14 @@ class BlockLayered extends Module foreach ($filterBlocks as &$typeFilter) { $filterName = (!empty($typeFilter['url_name']) ? $typeFilter['url_name'] : $typeFilter['name']); - + if (count($typeFilter) > 0 && !in_array($typeFilter['type'], $blackList)) { foreach ($typeFilter['values'] as $key => $values) { $nofollow = false; $optionCheckedCloneArray = $optionCheckedArray; - + //if not filters checked, add parameter $valueName = !empty($values['url_name']) ? $values['url_name'] : $values['name']; if (!in_array(Tools::link_rewrite($valueName), $paramGroupSelectedArray[Tools::link_rewrite($filterName)])) @@ -2454,16 +2443,14 @@ class BlockLayered extends Module else { // Remove selected parameters - $optionCheckedCloneArray[Tools::link_rewrite($filterName)] = str_replace( - '-'.str_replace('-', '_', Tools::link_rewrite($valueName)), - '', - $optionCheckedCloneArray[Tools::link_rewrite($filterName)]); + $optionCheckedCloneArray[Tools::link_rewrite($filterName)] = str_replace('-'.str_replace('-', '_', Tools::link_rewrite($valueName)), '', $optionCheckedCloneArray[Tools::link_rewrite($filterName)]); if (empty($optionCheckedCloneArray[Tools::link_rewrite($filterName)])) unset($optionCheckedCloneArray[Tools::link_rewrite($filterName)]); } $parameters = ''; foreach ($optionCheckedCloneArray as $keyGroup => $valueGroup) $parameters .= '/'.str_replace('-', '_', $keyGroup).$valueGroup; + // Check if there is an non indexable attribute or feature in the url foreach ($nonIndexable as $value) if (strpos($parameters, '/'.$value) !== false) @@ -2473,12 +2460,12 @@ class BlockLayered extends Module $typeFilter['values'][$key]['link'] = $linkBase.'&selected_filters='.$parameters; else $typeFilter['values'][$key]['link'] = $linkBase.$parameters; - + $typeFilter['values'][$key]['rel'] = ($nofollow) ? 'nofollow' : ''; } } } - + $nFilters = 0; if (isset($selectedFilters['price'])) if ($priceArray['min'] == $selectedFilters['price'][0] && $priceArray['max'] == $selectedFilters['price'][1]) @@ -2486,17 +2473,17 @@ class BlockLayered extends Module if (isset($selectedFilters['weight'])) if ($weightArray['min'] == $selectedFilters['weight'][0] && $weightArray['max'] == $selectedFilters['weight'][1]) unset($selectedFilters['weight']); - + foreach ($selectedFilters as $filters) $nFilters += count($filters); - + $cache = array('layered_show_qties' => (int)Configuration::get('PS_LAYERED_SHOW_QTIES'), 'id_category_layered' => (int)$id_parent, 'selected_filters' => $selectedFilters, 'n_filters' => (int)$nFilters, 'nbr_filterBlocks' => count($filterBlocks), 'filters' => $filterBlocks, - 'title_values' => $titleValues, 'current_friendly_url' => htmlentities($paramSelected), 'param_product_url' => htmlentities($param_product_url), 'nofollow' => !empty($paramSelected) || $nofollow); - + 'title_values' => $titleValues, 'current_friendly_url' => htmlentities($paramSelected), 'nofollow' => !empty($paramSelected) || $nofollow); + return $cache; } - + public function cleanFilterByIdValue($attributes, $id_value) { $selected_filters = array(); @@ -2509,7 +2496,7 @@ class BlockLayered extends Module } return $selected_filters; } - + public function generateFiltersBlock($selectedFilters) { global $smarty; @@ -2517,35 +2504,37 @@ class BlockLayered extends Module { if ($filterBlock['nbr_filterBlocks'] == 0) return false; - + $smarty->assign($filterBlock); - + return $this->display(__FILE__, 'blocklayered.tpl'); } else return false; } - + private static function getPriceFilterSubQuery($filterValue) { - $idCurrency = (int)Context::getContext()->currency->id; + $idCurrency = (int)Currency::getCurrent()->id; $priceFilterQuery = ''; if (isset($filterValue) && $filterValue) { + $idCurrency = Currency::getCurrent()->id; $priceFilterQuery = ' INNER JOIN `'._DB_PREFIX_.'layered_price_index` psi ON (psi.id_product = p.id_product AND psi.id_currency = '.(int)$idCurrency.' AND psi.price_min <= '.(int)$filterValue[1].' AND psi.price_max >= '.(int)$filterValue[0].') '; } else { + $idCurrency = Currency::getCurrent()->id; $priceFilterQuery = ' - INNER JOIN `'._DB_PREFIX_.'layered_price_index` psi + INNER JOIN `'._DB_PREFIX_.'layered_price_index` psi ON (psi.id_product = p.id_product AND psi.id_currency = '.(int)$idCurrency.') '; } - + return array('join' => $priceFilterQuery, 'select' => ', psi.price_min, psi.price_max'); } - + private static function filterProductsByPrice($filterValue, $productCollection) { if (empty($filterValue)) @@ -2563,16 +2552,16 @@ class BlockLayered extends Module } return $productCollection; } - + private static function getWeightFilterSubQuery($filterValue, $ignoreJoin) { if (isset($filterValue) && $filterValue) if ($filterValue[0] != 0 || $filterValue[1] != 0) return array('where' => ' AND p.`weight` BETWEEN '.(float)($filterValue[0] - 0.001).' AND '.(float)($filterValue[1] + 0.001).' '); - + return array(); } - + private static function getId_featureFilterSubQuery($filterValue, $ignoreJoin) { if (empty($filterValue)) @@ -2581,7 +2570,7 @@ class BlockLayered extends Module foreach ($filterValue as $filterVal) $queryFilters .= 'fp.`id_feature_value` = '.(int)$filterVal.' OR '; $queryFilters = rtrim($queryFilters, 'OR ').') '; - + return array('where' => $queryFilters); } private static function getId_attribute_groupFilterSubQuery($filterValue, $ignoreJoin) @@ -2593,14 +2582,14 @@ class BlockLayered extends Module FROM `'._DB_PREFIX_.'product_attribute_combination` pac LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON (pa.`id_product_attribute` = pac.`id_product_attribute`) WHERE '; - + foreach ($filterValue as $filterVal) $queryFilters .= 'pac.`id_attribute` = '.(int)$filterVal.' OR '; $queryFilters = rtrim($queryFilters, 'OR ').') '; - + return array('where' => $queryFilters); } - + private static function getCategoryFilterSubQuery($filterValue, $ignoreJoin) { if (empty($filterValue)) @@ -2610,19 +2599,19 @@ class BlockLayered extends Module foreach ($filterValue as $id_category) $queryFiltersWhere .= 'cp.`id_category` = '.(int)$id_category.' OR '; $queryFiltersWhere = rtrim($queryFiltersWhere, 'OR ').') '; - + return array('where' => $queryFiltersWhere, 'join' => $queryFiltersJoin); } - + private static function getQuantityFilterSubQuery($filterValue, $ignoreJoin) { if (count($filterValue) == 2 || empty($filterValue)) return array(); $queryFilters = ' AND p.quantity '.(!$filterValue[0] ? '=' : '>').' 0 '; - + return array('where' => $queryFilters); } - + private static function getManufacturerFilterSubQuery($filterValue, $ignoreJoin) { if (empty($filterValue)) @@ -2637,7 +2626,7 @@ class BlockLayered extends Module else return array('where' => $queryFilters, 'select' => ', m.name', 'join' => 'LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON (m.id_manufacturer = p.id_manufacturer) '); } - + private static function getConditionFilterSubQuery($filterValue, $ignoreJoin) { if (count($filterValue) == 3 || empty($filterValue)) @@ -2646,14 +2635,14 @@ class BlockLayered extends Module foreach ($filterValue as $cond) $queryFilters .= '\''.$cond.'\','; $queryFilters = rtrim($queryFilters, ',').') '; - + return array('where' => $queryFilters); } - + public function ajaxCallBackOffice($categoryBox = array(), $id_layered_filter = null) { global $cookie; - + if (!empty($id_layered_filter)) { $layeredFilter = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('SELECT * FROM '._DB_PREFIX_.'layered_filter WHERE id_layered_filter = '.(int)$id_layered_filter); @@ -2663,13 +2652,13 @@ class BlockLayered extends Module foreach ($layeredValues['categories'] as $id_category) $categoryBox[] = (int)$id_category; } - + /* Clean categoryBox before use */ if (isset($categoryBox) && is_array($categoryBox)) foreach ($categoryBox as &$value) $value = (int)$value; - - $attributeGroups = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' + + $attributeGroups = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT ag.id_attribute_group, ag.is_color_group, agl.name, COUNT(DISTINCT(a.id_attribute)) n FROM '._DB_PREFIX_.'attribute_group ag LEFT JOIN '._DB_PREFIX_.'attribute_group_lang agl ON (agl.id_attribute_group = ag.id_attribute_group) @@ -2681,22 +2670,22 @@ class BlockLayered extends Module WHERE agl.id_lang = '.(int)$cookie->id_lang. (count($categoryBox) ? ' AND cp.id_category IN ('.implode(',', $categoryBox).')' : '').' GROUP BY ag.id_attribute_group'); - - $features = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' + + $features = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT fl.id_feature, fl.name, COUNT(DISTINCT(fv.id_feature_value)) n FROM '._DB_PREFIX_.'feature_lang fl LEFT JOIN '._DB_PREFIX_.'feature_value fv ON (fv.id_feature = fl.id_feature) '.(count($categoryBox) ? ' LEFT JOIN '._DB_PREFIX_.'feature_product fp ON (fp.id_feature = fv.id_feature) - LEFT JOIN '._DB_PREFIX_.'category_product cp ON (cp.id_product = fp.id_product)' : '').' + LEFT JOIN '._DB_PREFIX_.'category_product cp ON (cp.id_product = fp.id_product)' : '').' WHERE (fv.custom IS NULL OR fv.custom = 0) AND fl.id_lang = '.(int)$cookie->id_lang. (count($categoryBox) ? ' AND cp.id_category IN ('.implode(',', $categoryBox).')' : '').' GROUP BY fl.id_feature'); - + $nElements = count($attributeGroups) + count($features) + 4; if ($nElements > 20) $nElements = 20; - + $html = ' <div id="layered_container_right" style="width: 360px; float: left; margin-left: 20px; height: '.(int)(30 + $nElements * 38).'px; overflow-y: auto;"> <h3>'.$this->l('Available filters').' <span id="num_avail_filters">(0)</span></h3> @@ -2740,7 +2729,7 @@ class BlockLayered extends Module <span class="position"></span>'.$this->l('Product price filter (slider)').' </li> </ul>'; - + if (count($attributeGroups)) { $html .= '<ul>'; @@ -2772,7 +2761,7 @@ class BlockLayered extends Module $html .= ' </div>'; - + if (isset($layeredValues)) { $html .= ' @@ -2782,11 +2771,11 @@ class BlockLayered extends Module { $(\'#selected_filters li\').remove(); '; - + foreach ($layeredValues as $key => $layeredValue) if ($key != 'categories') $html .= '$(\'#'.$key.'\').click();'."\n"; - + if (isset($layeredValues['categories']) && count($layeredValues['categories'])) { foreach ($layeredValues['categories'] as $id_category) @@ -2802,11 +2791,11 @@ class BlockLayered extends Module $(\'#scope_2\').attr(\'checked\', \'\'); $(\'#scope_1\').attr(\'checked\', \'checked\'); '; - + $html .= ' $(\'#layered_tpl_name\').val(\''.addslashes($layeredFilter['name']).'\'); $(\'#id_layered_filter\').val(\''.(int)$layeredFilter['id_layered_filter'].'\')'; - + $html .= ' }); </script>'; @@ -2814,15 +2803,15 @@ class BlockLayered extends Module return $html; } - + public function ajaxCall() { global $smarty; $selectedFilters = $this->getSelectedFilters(); - + $this->getProducts($selectedFilters, $products, $nbProducts, $p, $n, $pages_nb, $start, $stop, $range); - + $smarty->assign('nb_products', $nbProducts); $smarty->assign('category', (object)array('id' => Tools::getValue('id_category_layered', 1))); $pagination_infos = array('pages_nb' => (int)($pages_nb), 'p' => (int)$p, 'n' => (int)$n, 'range' => (int)$range, 'start' => (int)$start, 'stop' => (int)$stop, @@ -2831,7 +2820,7 @@ class BlockLayered extends Module $smarty->assign('comparator_max_item', (int)(Configuration::get('PS_COMPARATOR_MAX_ITEM'))); $smarty->assign('products', $products); $smarty->assign('products_per_page', (int)Configuration::get('PS_PRODUCTS_PER_PAGE')); - + // Prevent bug with old template where category.tpl contain the title of the category and category-count.tpl do not exists if (file_exists(_PS_THEME_DIR_.'category-count.tpl')) $categoryCount = $smarty->fetch(_PS_THEME_DIR_.'category-count.tpl'); @@ -2839,34 +2828,34 @@ class BlockLayered extends Module $categoryCount = ''; if ($nbProducts == 0) - $product_list_tpl = 'blocklayered-no-products.tpl'; + $product_list = $this->display(__FILE__, 'blocklayered-no-products.tpl'); else - $product_list_tpl = _PS_THEME_DIR_.'product-list.tpl'; - + $product_list = $smarty->fetch(_PS_THEME_DIR_.'product-list.tpl'); + /* We are sending an array in jSon to the .js controller, it will update both the filters and the products zones */ return Tools::jsonEncode(array( 'filtersBlock' => $this->generateFiltersBlock($selectedFilters), - 'productList' => $smarty->fetch($product_list_tpl), + 'productList' => $product_list, 'pagination' => $smarty->fetch(_PS_THEME_DIR_.'pagination.tpl'), 'categoryCount' => $categoryCount)); } - + public function getProducts($selectedFilters, &$products, &$nbProducts, &$p, &$n, &$pages_nb, &$start, &$stop, &$range) { global $cookie; - + $products = $this->getProductByFilters($selectedFilters); $products = Product::getProductsProperties((int)$cookie->id_lang, $products); - + $nbProducts = $this->nbr_products; $range = 2; /* how many pages around page selected */ - + $n = (int)Tools::getValue('n', Configuration::get('PS_PRODUCTS_PER_PAGE')); $p = Tools::getValue('p', 1); - + if ($p < 0) $p = 0; - + if ($p > ($nbProducts / $n)) $p = ceil($nbProducts / $n); $pages_nb = ceil($nbProducts / (int)($n)); @@ -2874,7 +2863,7 @@ class BlockLayered extends Module $start = (int)($p - $range); if ($start < 1) $start = 1; - + $stop = (int)($p + $range); if ($stop > $pages_nb) $stop = (int)($pages_nb); @@ -2883,15 +2872,15 @@ class BlockLayered extends Module public function rebuildLayeredStructure() { @set_time_limit(0); - + /* Set memory limit to 128M only if current is lower */ $memory_limit = @ini_get('memory_limit'); if (substr($memory_limit, -1) != 'G' && ((substr($memory_limit, -1) == 'M' && substr($memory_limit, 0, -1) < 128) || is_numeric($memory_limit) && (intval($memory_limit) < 131072))) @ini_set('memory_limit', '128M'); /* Delete and re-create the layered categories table */ - Db::getInstance()->execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_category'); - Db::getInstance()->execute(' + Db::getInstance()->Execute('DROP TABLE IF EXISTS '._DB_PREFIX_.'layered_category'); + Db::getInstance()->Execute(' CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'layered_category` ( `id_layered_category` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `id_category` INT(10) UNSIGNED NOT NULL, @@ -2901,8 +2890,8 @@ class BlockLayered extends Module PRIMARY KEY (`id_layered_category`), KEY `id_category` (`id_category`,`type`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;'); /* MyISAM + latin1 = Smaller/faster */ - - Db::getInstance()->execute(' + + Db::getInstance()->Execute(' CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'layered_filter` ( `id_layered_filter` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(64) NOT NULL, @@ -2910,11 +2899,11 @@ class BlockLayered extends Module `n_categories` INT(10) UNSIGNED NOT NULL, `date_add` DATETIME NOT NULL)'); } - + public function rebuildLayeredCache($productsIds = array(), $categoriesIds = array()) { @set_time_limit(0); - + /* Set memory limit to 128M only if current is lower */ $memory_limit = @ini_get('memory_limit'); if (substr($memory_limit, -1) != 'G' && ((substr($memory_limit, -1) == 'M' && substr($memory_limit, 0, -1) < 128) || is_numeric($memory_limit) && (intval($memory_limit) < 131072))) @@ -2924,7 +2913,7 @@ class BlockLayered extends Module $nCategories = array(); $doneCategories = array(); - $attributeGroups = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' + $attributeGroups = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT a.id_attribute, a.id_attribute_group FROM '._DB_PREFIX_.'attribute a LEFT JOIN '._DB_PREFIX_.'product_attribute_combination pac ON (pac.id_attribute = a.id_attribute) @@ -2939,7 +2928,7 @@ class BlockLayered extends Module while ($row = $db->nextRow($attributeGroups)) $attributeGroupsById[(int)$row['id_attribute']] = (int)$row['id_attribute_group']; - $features = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' + $features = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT fv.id_feature_value, fv.id_feature FROM '._DB_PREFIX_.'feature_value fv LEFT JOIN '._DB_PREFIX_.'feature_product fp ON (fp.id_feature_value = fv.id_feature_value) @@ -2953,7 +2942,7 @@ class BlockLayered extends Module while ($row = $db->nextRow($features)) $featuresById[(int)$row['id_feature_value']] = (int)$row['id_feature']; - $result = $db->executeS(' + $result = $db->ExecuteS(' SELECT p.id_product, GROUP_CONCAT(DISTINCT fv.id_feature_value) features, GROUP_CONCAT(DISTINCT cp.id_category) categories, GROUP_CONCAT(DISTINCT pac.id_attribute) attributes FROM '._DB_PREFIX_.'product p LEFT JOIN '._DB_PREFIX_.'category_product cp ON (cp.id_product = p.id_product) @@ -3034,7 +3023,7 @@ class BlockLayered extends Module } } if ($toInsert) - Db::getInstance()->execute(rtrim($queryCategory, ',')); + Db::getInstance()->Execute(rtrim($queryCategory, ',')); } } } diff --git a/modules/blocklayered/blocklayered.tpl b/modules/blocklayered/blocklayered.tpl index edec30ee5..9db5779c2 100644 --- a/modules/blocklayered/blocklayered.tpl +++ b/modules/blocklayered/blocklayered.tpl @@ -97,7 +97,7 @@ param_product_url = '#{$param_product_url}'; </li> {/foreach} {else} - <label for="{$filter.type}">{l s='Range:'}</label> <span id="layered_{$filter.type}_range"></span> + <label for="{$filter.type}">{l s='Range:' mod='blocklayered'}</label> <span id="layered_{$filter.type}_range"></span> <div style="margin: 6px 0 6px 6px; width: 93%;"> <div style="margin-top:5px;" class="layered_slider" id="layered_{$filter.type}_slider"></div> </div> diff --git a/modules/blocksearch/blocksearch.php b/modules/blocksearch/blocksearch.php index 092c9da2d..f0fa3e0fd 100644 --- a/modules/blocksearch/blocksearch.php +++ b/modules/blocksearch/blocksearch.php @@ -46,11 +46,21 @@ class BlockSearch extends Module public function install() { - if (!parent::install() || !$this->registerHook('top')) + if (!parent::install() || !$this->registerHook('top') || !$this->registerHook('header')) return false; return true; } + public function hookHeader($params) + { + if (Configuration::get('PS_SEARCH_AJAX')) + { + Tools::addCSS(_PS_CSS_DIR_.'jquery.autocomplete.css'); + Tools::addJS(_PS_JS_DIR_.'jquery/jquery.autocomplete.js'); + } + Tools::addCSS(_THEME_CSS_DIR_.'product_list.css'); + Tools::addCSS(($this->_path).'blocksearch.css', 'all'); + } public function hookLeftColumn($params) { @@ -79,15 +89,9 @@ class BlockSearch extends Module { $this->context->smarty->assign('ENT_QUOTES', ENT_QUOTES); $this->context->smarty->assign('search_ssl', Tools::usingSecureMode()); + $this->context->smarty->assign('ajaxsearch', Configuration::get('PS_SEARCH_AJAX')); + $this->context->smarty->assign('instantsearch', Configuration::get('PS_INSTANT_SEARCH')); - $ajax_search = (int)Configuration::get('PS_SEARCH_AJAX'); - $this->context->smarty->assign('ajaxsearch', $ajax_search); - - $instant_search = (int)(Configuration::get('PS_INSTANT_SEARCH')); - $this->context->smarty->assign('instantsearch', $instant_search); - if ($ajax_search) - $this->context->controller->addJqueryPlugin('autocomplete'); - $this->context->controller->addCSS(_THEME_CSS_DIR_.'product_list.css'); - $this->context->controller->addCSS(($this->_path).'blocksearch.css', 'all'); + return true; } } diff --git a/modules/blockstore/en.php b/modules/blockstore/en.php new file mode 100644 index 000000000..601358d4f --- /dev/null +++ b/modules/blockstore/en.php @@ -0,0 +1,4 @@ +<?php + +global $_MODULE; +$_MODULE = array(); diff --git a/modules/blockwishlist/managewishlist.tpl b/modules/blockwishlist/managewishlist.tpl index bb7d8c433..71bd61ebd 100644 --- a/modules/blockwishlist/managewishlist.tpl +++ b/modules/blockwishlist/managewishlist.tpl @@ -60,8 +60,10 @@ </span> <a href="javascript:;" class="clear button" onclick="WishlistProductManage('wlp_bought', 'delete', '{$id_wishlist}', '{$product.id_product}', '{$product.id_product_attribute}', $('#quantity_{$product.id_product}_{$product.id_product_attribute}').val(), $('#priority_{$product.id_product}_{$product.id_product_attribute}').val());" title="{l s='Delete' mod='blockwishlist'}">{l s='Delete' mod='blockwishlist'}</a> <a href="javascript:;" class="exclusive" onclick="WishlistProductManage('wlp_bought_{$product.id_product_attribute}', 'update', '{$id_wishlist}', '{$product.id_product}', '{$product.id_product_attribute}', $('#quantity_{$product.id_product}_{$product.id_product_attribute}').val(), $('#priority_{$product.id_product}_{$product.id_product_attribute}').val());" title="{l s='Save' mod='blockwishlist'}">{l s='Save' mod='blockwishlist'}</a> + <br /> </li> </ul> + <div class="clear"> </div> {/foreach} </div> <div class="clear"></div> diff --git a/modules/blockwishlist/view.tpl b/modules/blockwishlist/view.tpl index 81cbecc7c..769a10e4d 100644 --- a/modules/blockwishlist/view.tpl +++ b/modules/blockwishlist/view.tpl @@ -87,6 +87,7 @@ </li> </div> </ul> + <div class="clear"> </div> {/foreach} <p class="clear" /> </div> diff --git a/modules/dibs/dibs.php b/modules/dibs/dibs.php index a628cd287..5d72fcb48 100644 --- a/modules/dibs/dibs.php +++ b/modules/dibs/dibs.php @@ -35,21 +35,21 @@ class dibs extends PaymentModule * @staticvar */ public static $ID_MERCHANT; - + /** * The URL of the page to be displayed if the purchase is approved. * @var string * @staticvar */ private static $ACCEPTED_URL = ''; - + /** * The URL of the page to be displayed if the customer cancels the payment. * @var string * @staticvar */ private static $CANCELLED_URL = ''; - + /** * Set the testing mode. * @var string @@ -61,19 +61,19 @@ class dibs extends PaymentModule * @var array */ public static $MORE_SETTINGS; - + /** * @var string * @staticvar */ private static $site_url; - + /** * Only this langs array are allowed in DIBS API * @var array */ private static $accepted_lang = array('da','en','es','fi','fo','fr','it','nl','no','pl','sv'); - + /** * Formular link to DIBS subscription * @var array @@ -97,7 +97,7 @@ class dibs extends PaymentModule $this->displayName = $this->l('DIBS'); $this->description = $this->l('DIBS payment API'); - + if (self::$site_url === NULL) { if(method_exists('Tools', 'getProtocol')) @@ -105,13 +105,13 @@ class dibs extends PaymentModule else self::$site_url = Tools::htmlentitiesutf8((!is_null($use_ssl) && $use_ssl ? 'https://' : 'http://').$_SERVER['HTTP_HOST'].__PS_BASE_URI__); } - + self::$ID_MERCHANT = Configuration::get('DIBS_ID_MERCHANT'); self::$ACCEPTED_URL = Configuration::get('DIBS_ACCEPTED_URL'); self::$CANCELLED_URL = Configuration::get('DIBS_CANCELLED_URL'); self::$TESTING = (int)Configuration::get('DIBS_TESTING'); self::$MORE_SETTINGS = Configuration::get('DIBS_MORE_SETTINGS') != '' ? unserialize(Tools::htmlentitiesDecodeUTF8(Configuration::get('DIBS_MORE_SETTINGS'))) : array(); - + if (!isset(self::$MORE_SETTINGS['k1']) OR (isset(self::$MORE_SETTINGS['k1']) AND (self::$MORE_SETTINGS['k1'] === '' OR self::$MORE_SETTINGS['k2'] === '') )) $this->warning = $this->l('For security reasons, you must set key #1 and key #2 used by MD5 control of DIBS API.'); @@ -128,9 +128,9 @@ class dibs extends PaymentModule public function install() { - return (parent::install() - AND $this->registerHook('orderConfirmation') - AND $this->registerHook('payment') + return (parent::install() + AND $this->registerHook('orderConfirmation') + AND $this->registerHook('payment') AND Configuration::updateValue('DIBS_ACCEPTED_URL', self::$site_url.(substr(trim(self::$site_url), -1, 1) === '/' ? '' : '/').'order-confirmation.php') AND Configuration::updateValue('DIBS_CANCELLED_URL', self::$site_url) AND Configuration::updateValue('DIBS_TESTING', 1) @@ -153,7 +153,7 @@ class dibs extends PaymentModule return; if ($params['objOrder']->module != $this->name) return; - + if ($params['objOrder']->valid) $this->context->smarty->assign(array('status' => 'ok', 'id_order' => $params['objOrder']->id)); else @@ -173,17 +173,17 @@ class dibs extends PaymentModule self::$MORE_SETTINGS['logo_color'] = Tools::getValue('logo_color'); self::$MORE_SETTINGS['k1'] = Tools::getValue('k1'); self::$MORE_SETTINGS['k2'] = Tools::getValue('k2'); - + Configuration::updateValue('DIBS_ID_MERCHANT', self::$ID_MERCHANT); Configuration::updateValue('DIBS_ACCEPTED_URL', self::$ACCEPTED_URL); Configuration::updateValue('DIBS_CANCELLED_URL', self::$CANCELLED_URL); Configuration::updateValue('DIBS_TESTING', self::$TESTING); Configuration::updateValue('DIBS_MORE_SETTINGS', Tools::htmlentitiesUTF8(serialize(self::$MORE_SETTINGS))); - + $data_sync = ''; if(self::$ID_MERCHANT !== '' AND self::$TESTING !== 1 AND self::$MORE_SETTINGS['k1'] !== '' AND self::$MORE_SETTINGS['k2'] !== '') $data_sync = '<img src="http://www.prestashop.com/modules/dibs.png?site_id='.urlencode(self::$ID_MERCHANT).'" style="float:right" />'; - + echo '<div class="conf confirm"><img src="../img/admin/ok.gif"/>'.$this->l('Configuration updated').$data_sync.'</div>'; } } @@ -219,7 +219,7 @@ class dibs extends PaymentModule public function getContent() { $this->preProcess(); - + $flexwin_colors = array('sand', 'grey', 'blue'); $logo_colors = array('yellow', 'grey', 'blue', 'black', 'purple', 'green'); $str = '<h2>'.$this->displayName.'</h2>' @@ -282,7 +282,7 @@ class dibs extends PaymentModule public function hookPayment($params) { - if ((self::$ID_MERCHANT === false || self::$ID_MERCHANT === '' || self::$ID_MERCHANT === NULL) + if ((self::$ID_MERCHANT === false || self::$ID_MERCHANT === '' || self::$ID_MERCHANT === NULL) || (self::$ACCEPTED_URL === false || self::$ACCEPTED_URL === '' || self::$ACCEPTED_URL === NULL)) return ''; @@ -298,7 +298,7 @@ class dibs extends PaymentModule // Required $dibsParams['merchant'] = self::$ID_MERCHANT; // id merchant send from DIBS e-mail - // don't cast to int !! It has strange behaviour (really strange) + // don't cast to int !! It has strange behaviour (really strange) // for example : When calculate a total amount of 557.05, the result is 55704 after casting !! $dibsParams['amount'] = $params['cart']->getOrderTotal(true, Cart::BOTH) * 100; // The smallest unit of an amount, cent for EUR $dibsParams['accepturl'] = self::$ACCEPTED_URL.'?id_cart='.(int)($params['cart']->id).'&id_module='.(int)($this->id).'&key='.$customer->secure_key; // The URL of the page to be displayed if the purchase is approved. @@ -333,12 +333,12 @@ class dibs extends PaymentModule if(self::$TESTING === 1) $dibsParams['test'] = 'yes'; // optional - This field is used when tests are being conducted on the shop (e.g. test=yes). When this field is declared, the transaction is not dispatched to the card issuer, but is instead handled by the DIBS test module. See also Step 5 of the 10 Step Guide for more information. During your initial integration with DIBS, there is no need to insert this parameter, since all default transactions will hit the DIBS test system until DIBS has approved integration. Should the test system be used at a later date, this will be activated at DIBS (contact DIBS support for reactivating the test mode of your shop). $dibsParams['lang'] = in_array(strtolower($lang->iso_code), self::$accepted_lang) ? $lang->iso_code : ''; // optional - This parameter determines the language in which the page will be opened. The following values are accepted: da=Danish en=English es=Spanish fi=Finnish fo=Faroese fr=French it=Italian nl=Dutch no=Norwegian pl=Polish (simplified) sv=Swedish Default language is Danish. - $dibsParams['color'] = self::$MORE_SETTINGS['flexwin_color']; // optional - The basic color theme of FlexWin. There is currently a choice of "sand", "grey" and "blue". The default value is "blue". + $dibsParams['color'] = self::$MORE_SETTINGS['flexwin_color']; // optional - The basic color theme of FlexWin. There is currently a choice of "sand", "grey" and "blue". The default value is "blue". $dibsParams['cancelurl'] = self::$CANCELLED_URL; // optional - The URL of the page to be displayed if the customer cancels the payment. $dibsParams['uniqueoid'] = (int)($params['cart']->id).'_'.date('YmdHis').'_'.$params['cart']->secure_key; // optional - If this field exists, the orderid-field must be unique, i.e. there is no existing transaction with DIBS with the same order number. If such a transaction already exists, payment will be rejected with reason=7. Unless you are unable to generate unique order numbers, we strongly urge you to utilize this field.Note: Order numbers can be composed of a maximum of 50 characters (DIBS automatically removes surplus characters) and that uniqueoid is therefore unable to work as intended if order numbers consisting of more than 50 characters are used. $dibsParams['callbackurl'] = self::$site_url.'modules/'.$this->name.'/validation.php'; // optional - An optional �server-to-server� call which tells the shop�s server that payment was a success. Can be used for many purposes, the most important of these being the ability to register the order in your own system without depending on the customer�s browser hitting a specific page of the shop. See also HTTP_COOKIE. $md5_params = 'merchant='.self::$ID_MERCHANT.'&orderid='.$dibsParams['orderid'].'¤cy='.$dibsParams['currency'].'&amount='.$dibsParams['amount']; - $dibsParams['md5key'] = md5(self::$MORE_SETTINGS['k2'].md5(self::$MORE_SETTINGS['k1'].$md5_params)); // optional - This variable enables a MD5 key control of the values received by DIBS. This control confirms that the values sent to DIBS has not been tampered with during the transfer. The MD5 key is calculated as: MD5(key2 + MD5(key1 + "merchant=&orderid=&transact=")) Where key1 and key2 are shop specific keys available through the DIBS administration interface, and + is the concatenation operator. NB! MD5 key check must also be enabled through the DIBS administration interface in order to work. Further details on MD5-key control. + $dibsParams['md5key'] = md5(self::$MORE_SETTINGS['k2'].md5(self::$MORE_SETTINGS['k1'].$md5_params)); // optional - This variable enables a MD5 key control of the values received by DIBS. This control confirms that the values sent to DIBS has not been tampered with during the transfer. The MD5 key is calculated as: MD5(key2 + MD5(key1 + "merchant=&orderid=&transact=")) Where key1 and key2 are shop specific keys available through the DIBS administration interface, and + is the concatenation operator. NB! MD5 key check must also be enabled through the DIBS administration interface in order to work. Further details on MD5-key control. // @todo need more infos. $dibsParams['account'] = ''; // optional - If multiple departments utilize the company's acquirer agreement with PBS, it may prove practical to keep the transactions separate at DIBS. An "account number" may be inserted in this field, so as to separate transactions at DIBS. @@ -346,12 +346,12 @@ class dibs extends PaymentModule $dibsParams['capturenow'] = ''; // optional - If this field exists, an "instant capture" is carried out, i.e. the amount is immediately transferred from the customer's account to the shop's account. This function can only be utilized in the event that there is no actual physical delivery of any items. Contact DIBS when using this function. (Note that instant capture requires unique order numbers - also see the description of uniqueoid above). $dibsParams['ip'] = ''; // optional - DIBS retains the IP-number from which a card transaction is carried out. The IP-number is used for �fraud control�, etc. Some implementations may send the IP number of the shop to DIBS rather than that of the customer's machine. In order to provide the same services to shops which utilize such a program for their DIBS hookup, we offer the option of sending the "ip" parameter. $dibsParams['paytype'] = ''; // optional - Regarding the start-up of the DIBS FlexWin, the user can be limited to the use of just one particular payment form. This is accomplished by using the parameter "paytype". This function can be used if you wish for example to use integration method 3 for payment cards and method 1 for eDankort. Furthermore, this function can be used if you wish to control the user's selections of method of payment from your own website. You can also specify a list of payment methods that will be shown in the Flexwin. This list should be a comma separated with no spaces in between. Example: See our list of possible paytypes. - $dibsParams['maketicket'] = ''; // optional - This parameter is intended for FlexWin, and actually performs two transactions. First it performs a regular authorisation. If, and only if, it is accepted, it is followed by a ticket registration. Both a transaction and a ticket value are returned to "accepturl" if it is specified. If "callbackurl" is specified, DIBS will perform two separate calls, corresponding to performing two transactions - one call to the regular authorisation, and another to the ticket registration. Both cases return a "transact" parameter value (e.g. transact="78901234"). In calls to "callbackurl" containing "preauth", the ticket value is composed of the "transact" parameter value. "maketicket" implicitly sets the "preauth" parameter - however, you should avoid to explicitly specify any "preauth" parameter. You cannot use "uniqueoid", "capturenow" or "md5key" along with "maketicket". Currently "maketicket" does not work with 3Dsecure. + $dibsParams['maketicket'] = ''; // optional - This parameter is intended for FlexWin, and actually performs two transactions. First it performs a regular authorisation. If, and only if, it is accepted, it is followed by a ticket registration. Both a transaction and a ticket value are returned to "accepturl" if it is specified. If "callbackurl" is specified, DIBS will perform two separate calls, corresponding to performing two transactions - one call to the regular authorisation, and another to the ticket registration. Both cases return a "transact" parameter value (e.g. transact="78901234"). In calls to "callbackurl" containing "preauth", the ticket value is composed of the "transact" parameter value. "maketicket" implicitly sets the "preauth" parameter - however, you should avoid to explicitly specify any "preauth" parameter. You cannot use "uniqueoid", "capturenow" or "md5key" along with "maketicket". Currently "maketicket" does not work with 3Dsecure. $dibsParams['postype'] = ''; // optional - "postype" (one 't') is used when one wishes to register the transaction origin. For normal internet transaction it is not required to include "postype", as it is automatically set to SSL. Possible values are: ssl = internet transactions, magnetic = magnetic stripe read, and signature is available, magnosig = magnetic stripe read, and no signature is available, mail = mail order, manual = manually entered, phone = phone order, signature = card and signature available, manually entered. $dibsParams['ticketrule'] = ''; // optional - Set the value of this parameter to the same as defined by you in DIBS Admin. $dibsParams['preauth'] = ''; // optional - When preauth=true is sent as part of the request to auth.cgi the DIBS server identifies the authorisation as a ticket authorisation rather than a normal transaction. Please note that the pre-authorised transaction is NOT available among the transactions in the DIBS administration interface. When using MD5 the Authkey must be calculated from the string transact=12345678&preauth=true¤cy=123 - // @todo Since Prestashop manage vouchers, ask if necessary to use this params + // @todo Since Prestashop manage vouchers, ask if necessary to use this params $dibsParams['voucher'] = ''; // optional - If set to "yes", then the list of payment types on the first page of FlexWin will contain vouchers, too. If FlexWin is called with a paytype, which would lead directly to the payment form, the customer is given the choice of entering a voucher code first. $dibsParams['split'] = ''; // optional - "split" is used for splitting up a transaction into two or more sub-transactions. This enables part of an order to be paid for when shipped in part. It requires that the amount and currency of the part payments are known at the time of the order, and are posted to the DIBS server as: split=2&amount1=&amount2= @@ -404,9 +404,9 @@ class dibs extends PaymentModule $this->context->smarty->assign('logo_color', self::$MORE_SETTINGS['logo_color']); return $this->display(__FILE__, 'dibs.tpl'); } - + /** - * Set the detail of a payment to prepare the validate order + * Set the detail of a payment - Call after un validateOrder * See Authorize documentation to know the associated key => value * @param array fields * @return bool success state @@ -417,18 +417,17 @@ class dibs extends PaymentModule if (isset($this->pcc)) { $this->pcc->transaction_id = (string)$response['transact']; - + // 50 => Card number (XXXX0000) $this->pcc->card_number = (string)substr($response['cardnomask'], -4); - + // 51 => Card Mark (Visa, Master card) $this->pcc->card_brand = (string)$response['paytype']; - + $this->pcc->card_expiration = '0000'; - + // 68 => Owner name $this->pcc->card_holder = ''; } - } -} +} \ No newline at end of file diff --git a/modules/dibs/validation.php b/modules/dibs/validation.php index 2ddda5379..a8f3f406e 100644 --- a/modules/dibs/validation.php +++ b/modules/dibs/validation.php @@ -1,5 +1,5 @@ <?php - + include(dirname(__FILE__). '/../../config/config.inc.php'); include(dirname(__FILE__).'/dibs.php'); @@ -19,7 +19,7 @@ if (count($_POST)) $secure_cart = explode('_', $posted_values['uniqueoid']); $arr_order_id = explode('_',$posted_values['orderid']); $posted_values['orderid'] = $arr_order_id[0]; - + if ((string)$posted_values['merchant'] !== (string)dibs::$ID_MERCHANT) $errors[] = Tools::displayError('You did not use the correct merchant ID.'); @@ -42,11 +42,10 @@ if (count($_POST)) $message = nl2br(strip_tags($message)); if ($valid_order === true) { - $obj_dibs->setTransactionDetail($posted_values); - $obj_dibs->validateOrder((int)$posted_values['orderid'], Configuration::get('PS_OS_PAYMENT'), + $obj_dibs->setTransactionDetail($posted_values); + $obj_dibs->validateOrder((int)$posted_values['orderid'], Configuration::get('PS_OS_PAYMENT'), (float)((int)$posted_values['amount'] / 100), $obj_dibs->displayName, $message, array(), NULL, false, $secure_cart[2]); } else if ($valid_order === false) - $obj_dibs->validateOrder((int)$posted_values['orderid'], Configuration::get('PS_OS_ERROR'), 0, $obj_dibs->displayName, - $message, array(), NULL, false, $secure_cart[2]); -} \ No newline at end of file + $obj_dibs->validateOrder((int)$posted_values['orderid'], Configuration::get('PS_OS_ERROR'), 0, $obj_dibs->displayName, $message, array(), NULL, false, $secure_cart[2]); +} diff --git a/modules/ebay/config.xml b/modules/ebay/config.xml index d6c4bfd6e..6dc9dfc3c 100755 --- a/modules/ebay/config.xml +++ b/modules/ebay/config.xml @@ -2,7 +2,7 @@ <module> <name>ebay</name> <displayName><![CDATA[eBay]]></displayName> - <version><![CDATA[1.3.1]]></version> + <version><![CDATA[1.3.5]]></version> <description><![CDATA[Open your shop on the eBay market place !]]></description> <author><![CDATA[PrestaShop]]></author> <tab><![CDATA[market_place]]></tab> diff --git a/modules/ebay/eBayRequest.php b/modules/ebay/eBayRequest.php index 4828dd5e5..ffa9bd3ed 100755 --- a/modules/ebay/eBayRequest.php +++ b/modules/ebay/eBayRequest.php @@ -1140,7 +1140,9 @@ class eBayRequest else $reference = $skuItem; } - + $reference = trim($reference); + if (!empty($reference)) + { $id_product = Db::getInstance()->getValue(' SELECT `id_product` FROM `'._DB_PREFIX_.'product` WHERE `reference` = \''.pSQL($reference).'\''); @@ -1156,6 +1158,7 @@ class eBayRequest } } } + } $orderList[] = array( 'id_order_ref' => (string)$order->OrderID, diff --git a/modules/ebay/ebay.php b/modules/ebay/ebay.php index 154869f75..40b970606 100755 --- a/modules/ebay/ebay.php +++ b/modules/ebay/ebay.php @@ -59,7 +59,7 @@ class Ebay extends Module { $this->name = 'ebay'; $this->tab = 'market_place'; - $this->version = '1.3.1'; + $this->version = '1.3.5'; $this->author = 'PrestaShop'; parent::__construct (); $this->displayName = $this->l('eBay'); @@ -93,12 +93,17 @@ class Ebay extends Module if (!Configuration::get('EBAY_SECURITY_TOKEN')) Configuration::updateValue('EBAY_SECURITY_TOKEN', Tools::passwdGen(30)); - /* For 1.4.3 and less compatibility */ - $updateConfig = array('PS_OS_CHEQUE', 'PS_OS_PAYMENT', 'PS_OS_PREPARATION', 'PS_OS_SHIPPING', 'PS_OS_CANCELED', 'PS_OS_REFUND', 'PS_OS_ERROR', 'PS_OS_OUTOFSTOCK', 'PS_OS_BANKWIRE', 'PS_OS_PAYPAL', 'PS_OS_WS_PAYMENT'); - if (!Configuration::get('PS_OS_PAYMENT')) - foreach ($updateConfig as $u) - if (!Configuration::get($u) && defined('_'.$u.'_')) + // For 1.4.3 and less compatibility + $updateConfig = array('PS_OS_CHEQUE' => 1, 'PS_OS_PAYMENT' => 2, 'PS_OS_PREPARATION' => 3, 'PS_OS_SHIPPING' => 4, 'PS_OS_DELIVERED' => 5, 'PS_OS_CANCELED' => 6, + 'PS_OS_REFUND' => 7, 'PS_OS_ERROR' => 8, 'PS_OS_OUTOFSTOCK' => 9, 'PS_OS_BANKWIRE' => 10, 'PS_OS_PAYPAL' => 11, 'PS_OS_WS_PAYMENT' => 12); + foreach ($updateConfig as $u => $v) + if (!Configuration::get($u) || (int)Configuration::get($u) < 1) + { + if (defined('_'.$u.'_') && (int)constant('_'.$u.'_') > 0) Configuration::updateValue($u, constant('_'.$u.'_')); + else + Configuration::updateValue($u, $v); + } // Check if installed if (self::isInstalled($this->name)) @@ -326,6 +331,9 @@ class Ebay extends Module if (!Configuration::get('EBAY_PAYPAL_EMAIL')) return false; + // Fix hook update product attribute + $this->hookupdateProductAttributeEbay(); + // If no update yet if (!Configuration::get('EBAY_ORDER_LAST_UPDATE')) Configuration::updateValue('EBAY_ORDER_LAST_UPDATE', date('Y-m-d').'T'.date('H:i:s').'.000Z'); @@ -361,8 +369,6 @@ class Ebay extends Module { if (!Db::getInstance()->getValue('SELECT `id_ebay_order` FROM `'._DB_PREFIX_.'ebay_order` WHERE `id_order_ref` = \''.pSQL($order['id_order_ref']).'\'')) { - $id_customer = (int)Db::getInstance()->getValue('SELECT `id_customer` FROM `'._DB_PREFIX_.'customer` WHERE `active` = 1 AND `email` = \''.pSQL($order['email']).'\' AND `deleted` = 0'.(substr(_PS_VERSION_, 0, 3) == '1.3' ? '' : ' AND `is_guest` = 0')); - // Check for empty name $order['firstname'] = trim($order['firstname']); $order['familyname'] = trim($order['familyname']); @@ -375,6 +381,9 @@ class Ebay extends Module if (Validate::isEmail($order['email']) && !empty($order['firstname']) && !empty($order['familyname'])) { + // Getting the customer + $id_customer = (int)Db::getInstance()->getValue('SELECT `id_customer` FROM `'._DB_PREFIX_.'customer` WHERE `active` = 1 AND `email` = \''.pSQL($order['email']).'\' AND `deleted` = 0'.(substr(_PS_VERSION_, 0, 3) == '1.3' ? '' : ' AND `is_guest` = 0')); + // Add customer if he doesn't exist if ($id_customer < 1) { @@ -434,7 +443,7 @@ class Ebay extends Module $cartAdd->id_customer = $id_customer; $cartAdd->id_address_invoice = $id_address; $cartAdd->id_address_delivery = $id_address; - $cartAdd->id_carrier = 1; + $cartAdd->id_carrier = 0; $cartAdd->id_lang = $this->id_lang; $cartAdd->id_currency = Currency::getIdByIsoCode('EUR'); $cartAdd->recyclable = 0; @@ -446,7 +455,7 @@ class Ebay extends Module $cartAdd->update(); // Check number of products in the cart - if ($cartNbProducts > 0) + if ($cartNbProducts > 0 && !Db::getInstance()->getValue('SELECT `id_ebay_order` FROM `'._DB_PREFIX_.'ebay_order` WHERE `id_order_ref` = \''.pSQL($order['id_order_ref']).'\'')) { // Fix on sending e-mail Db::getInstance()->autoExecute(_DB_PREFIX_.'customer', array('email' => 'NOSEND-EBAY'), 'UPDATE', '`id_customer` = '.(int)$id_customer); @@ -466,16 +475,19 @@ class Ebay extends Module Db::getInstance()->autoExecute(_DB_PREFIX_.'customer', array('email' => pSQL($order['email'])), 'UPDATE', '`id_customer` = '.(int)$id_customer); // Update price (because of possibility of price impact) + foreach ($order['product_list'] as $product) + { + $tax_rate = Db::getInstance()->getValue('SELECT `tax_rate` FROM `'._DB_PREFIX_.'order_detail` WHERE `id_order` = '.(int)$id_order.' AND `product_id` = '.(int)$product['id_product'].' AND `product_attribute_id` = '.(int)$product['id_product_attribute']); + Db::getInstance()->autoExecute(_DB_PREFIX_.'order_detail', array('product_price' => floatval($product['price'] / (1 + ($tax_rate / 100))), 'reduction_percent' => 0), 'UPDATE', '`id_order` = '.(int)$id_order.' AND `product_id` = '.(int)$product['id_product'].' AND `product_attribute_id` = '.(int)$product['id_product_attribute']); + } $updateOrder = array( 'total_paid' => floatval($order['amount']), 'total_paid_real' => floatval($order['amount']), - 'total_products' => floatval($order['amount']), - 'total_products_wt' => floatval($order['amount']), + 'total_products' => floatval(Db::getInstance()->getValue('SELECT SUM(`product_price`) FROM `'._DB_PREFIX_.'order_detail` WHERE `id_order` = '.(int)$id_order)), + 'total_products_wt' => floatval($order['amount'] - $order['shippingServiceCost']), 'total_shipping' => floatval($order['shippingServiceCost']), ); Db::getInstance()->autoExecute(_DB_PREFIX_.'orders', $updateOrder, 'UPDATE', '`id_order` = '.(int)$id_order); - foreach ($order['product_list'] as $product) - Db::getInstance()->autoExecute(_DB_PREFIX_.'order_detail', array('product_price' => floatval($product['price']), 'tax_rate' => 0, 'reduction_percent' => 0), 'UPDATE', '`id_order` = '.(int)$id_order.' AND `product_id` = '.(int)$product['id_product'].' AND `product_attribute_id` = '.(int)$product['id_product_attribute']); // Register the ebay order ref Db::getInstance()->autoExecute(_DB_PREFIX_.'ebay_order', array('id_order_ref' => pSQL($order['id_order_ref']), 'id_order' => (int)$id_order), 'INSERT'); @@ -511,11 +523,20 @@ class Ebay extends Module // Alias public function hookupdateproduct($params) { $this->hookaddproduct($params); } - public function hookupdateProductAttribute($params) + public function hookupdateProductAttribute($params) { } + public function hookupdateProductAttributeEbay() { + if (isset($_POST['submitProductAttribute']) && isset($_POST['id_product_attribute'])) + { + $params = array(); + $params['id_product_attribute'] = (int)$_POST['id_product_attribute']; + if ($params['id_product_attribute'] > 0) + { $id_product = Db::getInstance()->getValue('SELECT `id_product` FROM `'._DB_PREFIX_.'product_attribute` WHERE `id_product_attribute` = '.(int)$params['id_product_attribute']); $params['product'] = new Product($id_product); $this->hookaddproduct($params); + } + } } public function hookdeleteproduct($params) { $this->hookaddproduct($params); } public function hookheader($params) { $this->hookbackOfficeTop($params); } @@ -1633,6 +1654,31 @@ class Ebay extends Module 'picturesLarge' => $picturesLarge, ); + // Fix hook update product + if (isset($this->context->employee) && $this->context->employee->id > 0 && isset($_POST['submitProductAttribute']) && isset($_POST['id_product_attribute']) && isset($_POST['attribute_mvt_quantity']) && isset($_POST['id_mvt_reason'])) + { + if (substr(_PS_VERSION_, 0, 3) == '1.3') + { + $id_product_attribute_fix = (int)$_POST['id_product_attribute']; + $quantity_fix = (int)$_POST['attribute_quantity']; + if ($id_product_attribute_fix > 0 && $quantity_fix > 0 && isset($datas['variations'][$product->id.'-'.$id_product_attribute_fix]['quantity'])) + $datas['variations'][$product->id.'-'.$id_product_attribute_fix]['quantity'] = (int)$quantity_fix; + } + else + { + $action = Db::getInstance()->getValue('SELECT `sign` FROM `'._DB_PREFIX_.'stock_mvt_reason` WHERE `id_stock_mvt_reason` = '.(int)$_POST['id_mvt_reason']); + $id_product_attribute_fix = (int)$_POST['id_product_attribute']; + $quantity_fix = (int)$_POST['attribute_mvt_quantity']; + if ($id_product_attribute_fix > 0 && $quantity_fix > 0 && isset($datas['variations'][$product->id.'-'.$id_product_attribute_fix]['quantity'])) + { + if ($action > 0) + $datas['variations'][$product->id.'-'.$id_product_attribute_fix]['quantity'] += (int)$quantity_fix; + if ($action < 0) + $datas['variations'][$product->id.'-'.$id_product_attribute_fix]['quantity'] -= (int)$quantity_fix; + } + } + } + // Price Update if (isset($p['noPriceUpdate'])) $datas['noPriceUpdate'] = $p['noPriceUpdate']; @@ -1646,9 +1692,14 @@ class Ebay extends Module // Load eBay Description + $features = $product->getFrontFeatures((int)($this->id_lang)); + $featuresHtml = ''; + if (isset($features)) + foreach ($features as $f) + $featuresHtml .= '<b>'.$f['name'].'</b> : '.$f['value'].'<br/>'; $datas['description'] = str_replace( - array('{DESCRIPTION_SHORT}', '{DESCRIPTION}', '{EBAY_IDENTIFIER}', '{EBAY_SHOP}', '{SLOGAN}', '{PRODUCT_NAME}'), - array($datas['description_short'], $datas['description'], Configuration::get('EBAY_IDENTIFIER'), Configuration::get('EBAY_SHOP'), '', $product->name), + array('{DESCRIPTION_SHORT}', '{DESCRIPTION}', '{FEATURES}', '{EBAY_IDENTIFIER}', '{EBAY_SHOP}', '{SLOGAN}', '{PRODUCT_NAME}'), + array($datas['description_short'], $datas['description'], $featuresHtml, Configuration::get('EBAY_IDENTIFIER'), Configuration::get('EBAY_SHOP'), '', $product->name), Configuration::get('EBAY_PRODUCT_TEMPLATE') ); diff --git a/modules/ekomi/config.xml b/modules/ekomi/config.xml index d644e95b9..20408792a 100644 --- a/modules/ekomi/config.xml +++ b/modules/ekomi/config.xml @@ -2,9 +2,9 @@ <module> <name>ekomi</name> <displayName><![CDATA[eKomi]]></displayName> - <version><![CDATA[1.1]]></version> + <version><![CDATA[1.2]]></version> <description><![CDATA[Adds an eKomi block]]></description> - <author><![CDATA[]]></author> + <author><![CDATA[PrestaShop]]></author> <tab><![CDATA[advertising_marketing]]></tab> <is_configurable>1</is_configurable> <need_instance>0</need_instance> diff --git a/modules/ekomi/ekomi.php b/modules/ekomi/ekomi.php index d410c863d..6678042d0 100755 --- a/modules/ekomi/ekomi.php +++ b/modules/ekomi/ekomi.php @@ -33,17 +33,31 @@ class Ekomi extends Module private $_html = ''; private $_postErrors = array(); + public $id_lang; + public $iso_lang; + function __construct() { $this->name = 'ekomi'; $this->tab = 'advertising_marketing'; - $this->version = 1.1; + $this->author = 'PrestaShop'; + $this->version = 1.2; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->l('eKomi'); $this->description = $this->l('Adds an eKomi block'); + + if (self::isInstalled($this->name)) + { + $this->id_lang = (int)Configuration::get('PS_LANG_DEFAULT'); + $this->iso_lang = pSQL(Language::getIsoById($this->id_lang)); + + /* Check Mail Directory */ + if (!file_exists(dirname(__FILE__.'/'.$this->iso_lang.'/'))) + $this->warning .= $this->l('directory').' "'.$this->iso_lang.'" does not exist '; + } } public function install() @@ -115,6 +129,10 @@ class Ekomi extends Module if (!Configuration::get('PS_EKOMI_EMAIL')) return true; + /* Check Mail Directory */ + if (!file_exists(dirname(__FILE__.'/'.$this->iso_lang.'/'))) + return true; + /* Email generation */ $subject = '[Ekomi-Prestashop] '.Configuration::get('PS_SHOP_NAME'); $templateVars = array( @@ -125,8 +143,9 @@ class Ekomi extends Module ); /* Email sending */ - if (!Mail::Send(1, 'ekomi', $subject, $templateVars, Configuration::get('PS_EKOMI_EMAIL'), NULL, $params['customer']->email, Configuration::get('PS_SHOP_NAME'), NULL, NULL, dirname(__FILE__).'/mails/')) + if (!Mail::Send((int)$this->id_lang, 'ekomi', $subject, $templateVars, Configuration::get('PS_EKOMI_EMAIL'), NULL, $params['customer']->email, Configuration::get('PS_SHOP_NAME'), NULL, NULL, dirname(__FILE__).'/mails/')) return true; + return true; } } diff --git a/modules/ekomi/fr.php b/modules/ekomi/fr.php index 01a3fe1d0..1e1c97b59 100644 --- a/modules/ekomi/fr.php +++ b/modules/ekomi/fr.php @@ -4,6 +4,7 @@ global $_MODULE; $_MODULE = array(); $_MODULE['<{ekomi}prestashop>ekomi_c0858307dfd3d91768c79ec116820b60'] = 'eKomi'; $_MODULE['<{ekomi}prestashop>ekomi_d245187b3591f5f6f723ece2217bb637'] = 'Ajouter un bloc eKomi'; +$_MODULE['<{ekomi}prestashop>ekomi_5f8f22b8cdbaeee8cf857673a9b6ba20'] = 'répertoire'; $_MODULE['<{ekomi}prestashop>ekomi_f4d1ea475eaa85102e2b4e6d95da84bd'] = 'Confirmation'; $_MODULE['<{ekomi}prestashop>ekomi_c888438d14855d7d96a2724ee9c306bd'] = 'Configuration mise à jour'; $_MODULE['<{ekomi}prestashop>ekomi_f4f70727dc34561dfde1a3c529b6205c'] = 'Configuration'; diff --git a/modules/envoimoinscher/AdminEnvoiMoinsCher.php b/modules/envoimoinscher/AdminEnvoiMoinsCher.php index fced78888..f1327ea1d 100755 --- a/modules/envoimoinscher/AdminEnvoiMoinsCher.php +++ b/modules/envoimoinscher/AdminEnvoiMoinsCher.php @@ -112,6 +112,7 @@ class AdminEnvoiMoinsCher extends AdminTab private function displayOrders($orders) { + $emc = new Envoimoinscher(); echo '<table cellspacing="0" cellpadding="0" class="table" align="center" style="margin:10px 0px 0px 25px;"> <tr> <th><input type="checkbox" name="checkme" class="noborder" onclick="checkDelBoxes(this.form, \'ordersBox[]\', this.checked)" /></th> diff --git a/modules/fedexcarrier/config.xml b/modules/fedexcarrier/config.xml index 96a8bb917..1a7aaa65a 100755 --- a/modules/fedexcarrier/config.xml +++ b/modules/fedexcarrier/config.xml @@ -2,7 +2,7 @@ <module> <name>fedexcarrier</name> <displayName><![CDATA[Fedex Carrier]]></displayName> - <version><![CDATA[1.2.4]]></version> + <version><![CDATA[1.2.5]]></version> <description><![CDATA[Offer your customers, different delivery methods with Fedex]]></description> <author><![CDATA[PrestaShop]]></author> <tab><![CDATA[shipping_logistics]]></tab> diff --git a/modules/fedexcarrier/fedexcarrier.php b/modules/fedexcarrier/fedexcarrier.php index 49295c9f0..02bde5684 100644 --- a/modules/fedexcarrier/fedexcarrier.php +++ b/modules/fedexcarrier/fedexcarrier.php @@ -56,7 +56,7 @@ class FedexCarrier extends CarrierModule { $this->name = 'fedexcarrier'; $this->tab = 'shipping_logistics'; - $this->version = '1.2.4'; + $this->version = '1.2.5'; $this->author = 'PrestaShop'; $this->limited_countries = array('us'); @@ -349,6 +349,10 @@ class FedexCarrier extends CarrierModule $alert['webserviceTest'] = 1; if (!extension_loaded('soap')) $alert['soap'] = 1; + if (!ini_get('allow_url_fopen')) + $alert['url_fopen'] = 1; + if (!extension_loaded('openssl')) + $alert['openssl'] = 1; if (!count($alert)) @@ -360,6 +364,8 @@ class FedexCarrier extends CarrierModule $this->_html .= '<br />'.(isset($alert['deliveryServices']) ? '<img src="'._PS_IMG_.'admin/warn2.png" />' : '<img src="'._PS_IMG_.'admin/module_install.png" />').' 2) '.$this->l('Select your available delivery service'); $this->_html .= '<br />'.(isset($alert['webserviceTest']) ? '<img src="'._PS_IMG_.'admin/warn2.png" />' : '<img src="'._PS_IMG_.'admin/module_install.png" />').' 3) '.$this->l('Webservice test connection').($this->_webserviceError ? ' : '.$this->_webserviceError : ''); $this->_html .= '<br />'.(isset($alert['soap']) ? '<img src="'._PS_IMG_.'admin/warn2.png" />' : '<img src="'._PS_IMG_.'admin/module_install.png" />').' 4) '.$this->l('Soap is enabled'); + $this->_html .= '<br />'.(isset($alert['url_fopen']) ? '<img src="'._PS_IMG_.'admin/warn2.png" />' : '<img src="'._PS_IMG_.'admin/module_install.png" />').' 5) '.$this->l('Url fopen is enabled'); + $this->_html .= '<br />'.(isset($alert['openssl']) ? '<img src="'._PS_IMG_.'admin/warn2.png" />' : '<img src="'._PS_IMG_.'admin/module_install.png" />').' 6) '.$this->l('OpenSSL is enabled'); } diff --git a/modules/gsitemap/config.xml b/modules/gsitemap/config.xml index 4e9c57055..33f7a8401 100755 --- a/modules/gsitemap/config.xml +++ b/modules/gsitemap/config.xml @@ -2,7 +2,7 @@ <module> <name>gsitemap</name> <displayName><![CDATA[Google sitemap]]></displayName> - <version><![CDATA[1.7]]></version> + <version><![CDATA[1.8]]></version> <description><![CDATA[Generate your Google sitemap file]]></description> <author><![CDATA[PrestaShop]]></author> <tab><![CDATA[seo]]></tab> diff --git a/modules/gsitemap/gsitemap.php b/modules/gsitemap/gsitemap.php index 5a05d4172..48a33d4e9 100644 --- a/modules/gsitemap/gsitemap.php +++ b/modules/gsitemap/gsitemap.php @@ -156,73 +156,13 @@ XML; $xml = new SimpleXMLElement($xmlString); - if (Configuration::get('PS_REWRITING_SETTINGS') AND sizeof($langs) > 1) + if (Configuration::get('PS_REWRITING_SETTINGS') && count($langs) > 1) foreach($langs as $lang) $this->_addSitemapNode($xml, Tools::getShopDomain(true, true).__PS_BASE_URI__.$lang['iso_code'].'/', '1.00', 'daily', date('Y-m-d')); else $this->_addSitemapNode($xml, Tools::getShopDomain(true, true).__PS_BASE_URI__, '1.00', 'daily', date('Y-m-d')); - /* CMS Generator */ - if (Configuration::get('GSITEMAP_ALL_CMS') OR !Module::isInstalled('blockcms')) - $sql = 'SELECT DISTINCT '.(Configuration::get('PS_REWRITING_SETTINGS') ? 'cl.id_cms, cl.link_rewrite, cl.id_lang' : 'cl.id_cms').' - FROM '._DB_PREFIX_.'cms_lang cl - LEFT JOIN '._DB_PREFIX_.'lang l ON (cl.id_lang = l.id_lang) - LEFT JOIN '._DB_PREFIX_.'cms_shop cs ON cs.id_cms = cl.id_cms - WHERE l.`active` = 1 - AND cs.id_shop = '.$shopID.' - ORDER BY cl.id_cms, cl.id_lang ASC'; - else if (Module::isInstalled('blockcms')) - $sql = 'SELECT DISTINCT '.(Configuration::get('PS_REWRITING_SETTINGS') ? 'cl.id_cms, cl.link_rewrite, cl.id_lang' : 'cl.id_cms').' - FROM '._DB_PREFIX_.'cms_block_page b - LEFT JOIN '._DB_PREFIX_.'cms_lang cl ON (b.id_cms = cl.id_cms) - LEFT JOIN '._DB_PREFIX_.'lang l ON (cl.id_lang = l.id_lang) - LEFT JOIN '._DB_PREFIX_.'cms_shop cs ON cs.id_cms = cl.id_cms - WHERE l.`active` = 1 - AND cs.id_shop = '.$shopID.' - ORDER BY cl.id_cms, cl.id_lang ASC'; - - $cmss = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql); - foreach ($cmss AS $cms) - { - $tmpLink = Configuration::get('PS_REWRITING_SETTINGS') ? $this->context->link->getCMSLink((int)$cms['id_cms'], $cms['link_rewrite'], false, (int)$cms['id_lang']) : $this->context->link->getCMSLink((int)$cms['id_cms']); - $this->_addSitemapNode($xml, $tmpLink, '0.8', 'daily'); - } - - /* Categories Generator */ - $limits = Category::getInterval($shop->getCategory()); - if (Configuration::get('PS_REWRITING_SETTINGS')) - { - $sql = 'SELECT c.id_category, c.level_depth, link_rewrite, DATE_FORMAT(IF(date_upd,date_upd,date_add), \'%Y-%m-%d\') AS date_upd, cl.id_lang - FROM '._DB_PREFIX_.'category c - LEFT JOIN '._DB_PREFIX_.'category_lang cl ON c.id_category = cl.id_category AND cl.id_shop = '.$shopID.' - LEFT JOIN '._DB_PREFIX_.'lang l ON cl.id_lang = l.id_lang - WHERE l.`active` = 1 - AND c.`active` = 1 - AND c.id_category != 1 - AND nleft >= '.$limits['nleft'].' - AND nright <= '.$limits['nright'].' - ORDER BY cl.id_category, cl.id_lang ASC'; - $categories = Db::getInstance()->executeS($sql); - } - else - { - $sql = 'SELECT c.id_category, c.level_depth, DATE_FORMAT(IF(date_upd,date_upd,date_add), \'%Y-%m-%d\') AS date_upd - FROM '._DB_PREFIX_.'category c - WHERE nleft >= '.$limits['nleft'].' - AND nright <= '.$limits['nright'].' - ORDER BY c.id_category ASC'; - $categories = Db::getInstance()->executeS($sql); - } - - foreach($categories as $category) - { - if (($priority = 0.9 - ($category['level_depth'] / 10)) < 0.1) - $priority = 0.1; - - $tmpLink = Configuration::get('PS_REWRITING_SETTINGS') ? $this->context->link->getCategoryLink((int)$category['id_category'], $category['link_rewrite'], (int)$category['id_lang']) : $this->context->link->getCategoryLink((int)$category['id_category']); - $this->_addSitemapNode($xml, $tmpLink, $priority, 'weekly', substr($category['date_upd'], 0, 10)); - } - + /* Product Generator */ $sql = 'SELECT p.id_product, pl.link_rewrite, DATE_FORMAT(IF(date_upd,date_upd,date_add), \'%Y-%m-%d\') date_upd, pl.id_lang, cl.`link_rewrite` category, ean13, i.id_image, il.legend legend_image, ( SELECT MIN(level_depth) FROM '._DB_PREFIX_.'product p2 @@ -245,7 +185,7 @@ XML; $tmp = null; $res = null; - foreach($products AS $product) + foreach ($products as $product) { if ($tmp == $product['id_product']) $res[$tmp]['images'] []= array('id_image' => $product['id_image'], 'legend_image' => $product['legend_image']); @@ -268,18 +208,65 @@ XML; $sitemap = $this->_addSitemapNodeImage($sitemap, $product); } + /* Categories Generator */ + if (Configuration::get('PS_REWRITING_SETTINGS')) + $categories = Db::getInstance()->ExecuteS(' + SELECT c.id_category, c.level_depth, link_rewrite, DATE_FORMAT(IF(date_upd,date_upd,date_add), \'%Y-%m-%d\') AS date_upd, cl.id_lang + FROM '._DB_PREFIX_.'category c + LEFT JOIN '._DB_PREFIX_.'category_lang cl ON c.id_category = cl.id_category + LEFT JOIN '._DB_PREFIX_.'lang l ON cl.id_lang = l.id_lang + WHERE l.`active` = 1 AND c.`active` = 1 AND c.id_category != 1 + ORDER BY cl.id_category, cl.id_lang ASC'); + else + $categories = Db::getInstance()->ExecuteS( + 'SELECT c.id_category, c.level_depth, DATE_FORMAT(IF(date_upd,date_upd,date_add), \'%Y-%m-%d\') AS date_upd + FROM '._DB_PREFIX_.'category c + ORDER BY c.id_category ASC'); + + + foreach($categories as $category) + { + if (($priority = 0.9 - ($category['level_depth'] / 10)) < 0.1) + $priority = 0.1; + + $tmpLink = Configuration::get('PS_REWRITING_SETTINGS') ? $link->getCategoryLink((int)$category['id_category'], $category['link_rewrite'], (int)$category['id_lang']) : $link->getCategoryLink((int)$category['id_category']); + $this->_addSitemapNode($xml, htmlspecialchars($tmpLink), $priority, 'weekly', substr($category['date_upd'], 0, 10)); + } + + /* CMS Generator */ + if (Configuration::get('GSITEMAP_ALL_CMS') || !Module::isInstalled('blockcms')) + $sql_cms = ' + SELECT DISTINCT '.(Configuration::get('PS_REWRITING_SETTINGS') ? 'cl.id_cms, cl.link_rewrite, cl.id_lang' : 'cl.id_cms'). + ' FROM '._DB_PREFIX_.'cms_lang cl + LEFT JOIN '._DB_PREFIX_.'lang l ON (cl.id_lang = l.id_lang) + WHERE l.`active` = 1 + ORDER BY cl.id_cms, cl.id_lang ASC'; + else if (Module::isInstalled('blockcms')) + $sql_cms = ' + SELECT DISTINCT '.(Configuration::get('PS_REWRITING_SETTINGS') ? 'cl.id_cms, cl.link_rewrite, cl.id_lang' : 'cl.id_cms'). + ' FROM '._DB_PREFIX_.'cms_block_page b + LEFT JOIN '._DB_PREFIX_.'cms_lang cl ON (b.id_cms = cl.id_cms) + LEFT JOIN '._DB_PREFIX_.'lang l ON (cl.id_lang = l.id_lang) + WHERE l.`active` = 1 + ORDER BY cl.id_cms, cl.id_lang ASC'; + + $cmss = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS($sql_cms); + foreach($cmss as $cms) + { + $tmpLink = Configuration::get('PS_REWRITING_SETTINGS') ? $link->getCMSLink((int)$cms['id_cms'], $cms['link_rewrite'], false, (int)$cms['id_lang']) : $link->getCMSLink((int)$cms['id_cms']); + $this->_addSitemapNode($xml, $tmpLink, '0.8', 'daily'); + } + /* Add classic pages (contact, best sales, new products...) */ $pages = array( - 'authentication' => true, - 'best-sales' => false, - 'contact' => true, - 'discount' => false, - 'index' => false, + 'supplier' => false, 'manufacturer' => false, 'new-products' => false, 'prices-drop' => false, - 'supplier' => false, - 'store' => false); + 'stores' => false, + 'authentication' => true, + 'best-sales' => false, + 'contact-form' => true); // Don't show suppliers and manufacturers if they are disallowed if (!Module::getInstanceByName('blockmanufacturer')->id && !Configuration::get('PS_DISPLAY_SUPPLIERS')) @@ -290,11 +277,11 @@ XML; // Generate nodes for pages if(Configuration::get('PS_REWRITING_SETTINGS')) - foreach ($pages AS $page => $ssl) + foreach ($pages as $page => $ssl) foreach($langs as $lang) $this->_addSitemapNode($xml, $this->context->link->getPageLink($page, $ssl, $lang['id_lang']), '0.5', 'monthly'); else - foreach($pages AS $page => $ssl) + foreach($pages as $page => $ssl) $this->_addSitemapNode($xml, $this->context->link->getPageLink($page, $ssl), '0.5', 'monthly'); $xmlString = $xml->asXML(); @@ -344,14 +331,14 @@ XML; private function _displaySitemap() { - if (file_exists(GSITEMAP_FILE) AND filesize(GSITEMAP_FILE)) + if (file_exists(GSITEMAP_FILE) && filesize(GSITEMAP_FILE)) { $fp = fopen(GSITEMAP_FILE, 'r'); $fstat = fstat($fp); fclose($fp); $xml = simplexml_load_file(GSITEMAP_FILE); - $nbPages = sizeof($xml->url); + $nbPages = count($xml->url); $this->_html .= '<p>'.$this->l('Your Google sitemap file is online at the following address:').'<br /> <a href="'.Tools::getShopDomain(true, true).__PS_BASE_URI__.'sitemap.xml" target="_blank"><b>'.Tools::getShopDomain(true, true).__PS_BASE_URI__.'sitemap.xml</b></a></p><br />'; @@ -380,15 +367,15 @@ XML; public function getContent() { $this->_html .= '<h2>'.$this->l('Search Engine Optimization').'</h2> - '.$this->l('See').' <a href="https://www.google.com/webmasters/tools/docs/en/about.html" style="font-weight:bold;text-decoration:underline;" target="_blank"> + '.$this->l('See').' <a href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156184&from=40318&rd=1" style="font-weight:bold;text-decoration:underline;" target="_blank"> '.$this->l('this page').'</a> '.$this->l('for more information').'<br /><br />'; if (Tools::isSubmit('btnSubmit')) { $this->_postValidation(); - if (!sizeof($this->_postErrors)) + if (!count($this->_postErrors)) $this->_postProcess(); else - foreach ($this->_postErrors AS $err) + foreach ($this->_postErrors as $err) $this->_html .= '<div class="alert error">'.$err.'</div>'; } diff --git a/modules/importerosc/ajax.php b/modules/importerosc/ajax.php new file mode 100644 index 000000000..3e6c316d1 --- /dev/null +++ b/modules/importerosc/ajax.php @@ -0,0 +1,17 @@ +<?php +include_once('../../config/config.inc.php'); +include_once('../../init.php'); +include_once('../../modules/importerosc/importerosc.php'); + + +if (!Tools::getValue('ajax') || Tools::getValue('token') != sha1(_COOKIE_KEY_.'importosc')) + die('INVALID TOKEN'); + +$importOsc = new importerosc(); +$importOsc->server = Tools::getValue('server'); +$importOsc->user = Tools::getValue('user'); +$importOsc->passwd = Tools::getValue('password'); +$importOsc->database = Tools::getValue('database'); +$importOsc->prefix = Tools::getValue('prefix'); + +die($importOsc->createLevelAndCalculate()); \ No newline at end of file diff --git a/modules/importerosc/fr.php b/modules/importerosc/fr.php index d3533b994..f90b865c8 100644 --- a/modules/importerosc/fr.php +++ b/modules/importerosc/fr.php @@ -20,3 +20,8 @@ $_MODULE['<{importerosc}prestashop>importerosc_14ae0ea02f571a833786d13d9ca6a897' $_MODULE['<{importerosc}prestashop>importerosc_e307db07b3975fef922a80d07455ee5e'] = 'Base de données'; $_MODULE['<{importerosc}prestashop>importerosc_dac130bdd2c5492a8108a4145bd9f04a'] = 'Préfixe base de données'; $_MODULE['<{importerosc}prestashop>importerosc_6bdc02625540b5264cffe801c37a82dd'] = '(Le préfixe est optionnel. Si toute votre base de données commence par \"pref_\", votre préfixe est \"pref_\")'; +$_MODULE['<{importerosc}prestashop>importerosc_4685343b5e2e0f0fbee63dddafde693f'] = 'Vous essayez d\'importer des catégories et nous avons détecté que votre base de données osCommerce n\'ont pas le champs \"niveau\" dans la table catégorie. Vous devez avoir ce champs pour continuer l\'importation de catégories.'; +$_MODULE['<{importerosc}prestashop>importerosc_16f35420186575c2a1d9c0b59edf6ad3'] = 'Cliquez ici pour ajouter et de calculer le champs niveau'; +$_MODULE['<{importerosc}prestashop>importerosc_fced104d747e0855ceff3020653104ab'] = 'Le champ \"niveau\" a été créé et calculé, vous pouvez continuer'; +$_MODULE['<{importerosc}prestashop>importerosc_b405d0bebeedbdc1773a44ac36b8ffc4'] = 'Il est fortement recommandé de sauvegarder votre base de données avant de continuer. Avez-vous fait une sauvegarde?'; +$_MODULE['<{importerosc}prestashop>importerosc_9f95fc55011203d91d50a0ed512f805f'] = 'Impossible de \"ALTER TABLE\"'; diff --git a/modules/importerosc/importerosc.php b/modules/importerosc/importerosc.php index e7e6b9ae1..d7da7f636 100644 --- a/modules/importerosc/importerosc.php +++ b/modules/importerosc/importerosc.php @@ -61,10 +61,14 @@ class importerosc extends ImportModule public function displaySpecificOptions() { + $html = ''; + if (!$this->checkCategoriesLevel()) + $html .= $this->displayCategoriesLevelConf(); + $langagues = $this->executeS('SELECT * FROM `'.bqSQL($this->prefix).'languages`'); $curencies = $this->executeS('SELECT * FROM `'.bqSQL($this->prefix).'currencies`'); - $html = '<label style=\'width:220px\'>'.$this->l('Default osCommerce language : ').'</label> + $html .= '<label style=\'width:220px\'>'.$this->l('Default osCommerce language : ').'</label> <div class="margin-form"> <select name=\'defaultOscLang\'><option value=\'0\'>------</option>'; foreach($langagues AS $lang) @@ -148,9 +152,10 @@ class importerosc extends ImportModule $identifier = 'id_country'; $defaultIdLang = $this->getDefaultIdLang(); $countries = $this->executeS(' - SELECT countries_id as id_country, countries_name as name, countries_iso_code_2 as iso_code, `'.bqSQL($defaultIdLang).'Ì€ as id_lang, + SELECT countries_id as id_country, countries_name as name, countries_iso_code_2 as iso_code, '.(int)$defaultIdLang.' as id_lang, 1 as id_zone, 0 as id_currency, 1 as contains_states, 1 as need_identification_number, 1 as active, 1 as display_tax_label FROM `'.bqSQL($this->prefix).'countries` as c LIMIT '.(int)($limit).' , '.(int)$nrb_import); + return $this->autoFormat($countries, $identifier, $keyLanguage, $multiLangFields); } @@ -219,19 +224,19 @@ class importerosc extends ImportModule $multiLangFields = array('name', 'link_rewrite'); $keyLanguage = 'id_lang'; $identifier = 'id_category'; - $categories = $this->executeS(' - SELECT c.categories_id as id_category, c.parent_id as id_parent, 0 as level_depth, cd.language_id as id_lang, cd.categories_name as name , 1 as active, categories_image as images + SELECT c.categories_id as id_category, c.parent_id as id_parent, level as level_depth, cd.language_id as id_lang, cd.categories_name as name , 1 as active, categories_image as images FROM `'.bqSQL($this->prefix).'categories` c LEFT JOIN `'.bqSQL($this->prefix).'categories_description` cd ON (c.categories_id = cd.categories_id) WHERE cd.categories_name IS NOT NULL AND cd.language_id IS NOT NULL - ORDER BY c.categories_id, cd.language_id + ORDER BY c.level ASC , c.`categories_id` LIMIT '.(int)($limit).' , '.(int)$nrb_import); foreach($categories as& $cat) { $cat['link_rewrite'] = Tools::link_rewrite($cat['name']); $cat['images'] = array(Tools::getProtocol().Tools::getValue('shop_url').'/images/'.$cat['images']); } + return $this->autoFormat($categories, $identifier, $keyLanguage, $multiLangFields); } @@ -256,6 +261,7 @@ class importerosc extends ImportModule SELECT p.`products_options_values_id` as id_attribute, p.`products_options_values_name` as name, p.`language_id` as id_lang , po.`products_options_id` as id_attribute_group FROM `'.bqSQL($this->prefix).'products_options_values` p LEFT JOIN `'.bqSQL($this->prefix).'products_options_values_to_products_options` po ON (po.products_options_values_id = p.products_options_values_id) + ORDER BY p.`products_options_values_id` LIMIT '.(int)($limit).' , '.(int)$nrb_import); return $this->autoFormat($countries, $identifier, $keyLanguage, $multiLangFields); } @@ -274,6 +280,7 @@ class importerosc extends ImportModule FROM `'.bqSQL($this->prefix).'products` p LEFT JOIN `'.bqSQL($this->prefix).'products_description` pd ON (p.products_id = pd.products_id) WHERE pd.products_name IS NOT NULL AND pd.language_id IS NOT NULL + ORDER BY p.`products_id` LIMIT '.(int)($limit).' , '.(int)$nrb_import); $this->Execute('CREATE TABLE IF NOT EXISTS`products_images` ( @@ -293,8 +300,8 @@ class importerosc extends ImportModule $images[] = Tools::getProtocol().Tools::getValue('shop_url').'/images/'.$res['image']; $product['images'] = array_merge(array($product['images']), $images); $product['link_rewrite'] = Tools::link_rewrite($product['name']); - - + + $result = $this->ExecuteS('SELECT `categories_id` FROM `'.bqSQL($this->prefix).'products_to_categories` WHERE products_id = '.(int)$product['id_product']); $category_product = array('category_product' => array($product['id_category_default'] => $product['id_product'])); foreach($result as $res) @@ -462,7 +469,8 @@ class importerosc extends ImportModule public function displayConfigConnector() { - $content = '<label>'.$this->l('Server').' : </label> + $content = '<script>var type_connector = "db";</script> + <label>'.$this->l('Server').' : </label> <div class="margin-form"> <input type="text" name="server" id="server" value=""> <p>'.$this->l('(eg : mysql.mydomain.com)').'</p> @@ -488,6 +496,137 @@ class importerosc extends ImportModule return $content; } + public function checkCategoriesLevel() + { + $columns = $this->ExecuteS('SHOW COLUMNS FROM `'.bqSQL($this->prefix).'categories` '); + foreach($columns as $field) + if ($field['Field'] == 'level') + return true; + return false; +} + + public function displayCategoriesLevelConf() + { + $html = '<div class="warn" id="warn_category_level" style="width:450px;display:none"> + <img src="../img/admin/warn2.png"> + '.$this->l('You are trying to import categories and we\'ve detected, that your oscommerce database don\'t have the field "level" in the table categorie. You must have this field to continue the import of categories.'); + + $html .= '<button class="button" onclick="addAndCalculateLevel();" style="padding:10px;font-size:13px;text:align:center">'.$this->l('Click to add and calculate the filed "level" .').'</button> <span id="loading" style="display:none"><img src="../img/loader.gif"></span></div> + <div class="conf" id="conf_category_level" style="width:450px;display:none"><img src="../img/admin/ok2.png">'.$this->l('Level field\'s has been created and calculated, You can continue').'</div>'; + + $html .= ' + <script> + $(document).ready(function (){ + + function checkCategorySelected() + { + if ($(\'#id_category_on:radio\').attr(\'checked\')) + { + $(\'#warn_category_level\').show(); + $(\'#checkAndSaveConfig\').attr(\'disabled\', \'disabled\'); + $(\'#checkAndSaveConfig\').hide(); + } + else + { + $(\'#warn_category_level\').hide(); + $(\'#checkAndSaveConfig\').removeAttr(\'disabled\'); + $(\'#checkAndSaveConfig\').show(); + } + + } + checkCategorySelected(); + $(\'input[name="getCategories"]\').change( function () { + checkCategorySelected(); + }); + + }); + + function addAndCalculateLevel() + { + if (confirm(\''.$this->l('It is highly recommended to backup your database before proceeding. Did you make a backup?').'\')) + { + $(\'#loading\').show(); + $.ajax({ + type: "GET", + url: "../modules/importerosc/ajax.php", + async: false, + cache: false, + dataType : "json", + data: "ajax=true&token='.sha1(_COOKIE_KEY_.'importosc').'&server="+$(\'#server\').val()+"&user="+$(\'#user\').val()+"&password="+$(\'#password\').val()+"&database="+$(\'#database\').val()+"&prefix="+$(\'#prefix\').val() , + success: function (jsonData) + { + if (jsonData.hasError) + alert(jsonData.error); + else + { + $(\'#warn_category_level\').remove(); + $(\'#checkAndSaveConfig\').removeAttr(\'disabled\'); + $(\'#checkAndSaveConfig\').show(); + $(\'#conf_category_level\').show(); + } + }, + error: function (XMLHttpRequest, textStatus, errorThrown) + { + + } + }); + } + return false; + } + </script>'; + + return $html; + } + + public function createLevelAndCalculate() + { + if ($this->checkCategoriesLevel()) + die('{"hasError" : false}'); + + if ($this->createLevel()) + $this->calculateLevel(); + else + die('{"hasError" : true, "error" : "'.$this->l('Can not ALTER TABLE').'"}'); + } + + public function createLevel() + { + return $this->Execute('ALTER TABLE `'.bqSQL($this->prefix).'categories` ADD `level` INT NOT NULL'); + } + + public function calculateLevel() + { + $this->updateLevel($this->getSubCat(0), 1); + die('{"hasError" : false}'); + } + + public function updateLevel($ids_cat, $level = 1) + { + $this->Execute(' + UPDATE `'.bqSQL($this->prefix).'categories` + SET level = '.(int)$level.' + WHERE categories_id IN ('.implode(',', $ids_cat).')'); + foreach($ids_cat as $id) + if ($sub_cat = $this->getSubCat($id)) + $this->updateLevel($sub_cat, $level + 1); + + } + + public function getSubCat($id_parent) + { + $result = $this->ExecuteS('SELECT `categories_id` FROM `'.bqSQL($this->prefix).'categories` WHERE `parent_id`='.(int)$id_parent); + if (!is_array($result) OR empty($result)) + return false; + return $this->formatCategoriesIds($result); + } + + public function formatCategoriesIds($result) + { + $return = array(); + foreach($result as $key => $val) + $return[] = $val['categories_id']; + return $return; + } } ?> diff --git a/modules/loyalty/loyalty.php b/modules/loyalty/loyalty.php index fa0129910..5004198c9 100644 --- a/modules/loyalty/loyalty.php +++ b/modules/loyalty/loyalty.php @@ -544,7 +544,7 @@ class Loyalty extends Module $loyalty->id_customer = (int)$params['customer']->id; $loyalty->id_order = (int)$params['order']->id; $loyalty->points = LoyaltyModule::getOrderNbPoints($params['order']); - if ((int)(Configuration::get('PS_LOYALTY_NONE_AWARD')) AND (int)($loyalty->points) == 0) + if (!Configuration::get('PS_LOYALTY_NONE_AWARD') AND (int)$loyalty->points == 0) $loyalty->id_loyalty_state = LoyaltyStateModule::getNoneAwardId(); else $loyalty->id_loyalty_state = LoyaltyStateModule::getDefaultId(); @@ -569,7 +569,7 @@ class Loyalty extends Module { if (!Validate::isLoadedObject($loyalty = new LoyaltyModule(LoyaltyModule::getByOrderId($order->id)))) return false; - if ((int)(Configuration::get('PS_LOYALTY_NONE_AWARD')) AND $loyalty->id_loyalty_state == LoyaltyStateModule::getNoneAwardId()) + if ((int)Configuration::get('PS_LOYALTY_NONE_AWARD') AND $loyalty->id_loyalty_state == LoyaltyStateModule::getNoneAwardId()) return true; if ($newOrder->id == $this->loyaltyStateValidation->id_order_state) diff --git a/modules/mailjet/ajax-mailjet.gif b/modules/mailjet/ajax-mailjet.gif new file mode 100755 index 0000000000000000000000000000000000000000..94b14599b475e88a764e4e29f3de78aab9438fa3 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Ns9#>uvwOzVPR8K9KR}Z2RBq^Z(vit@xkY&ow02*)hP? zNY8+ok%56h@t>4)QEFmIYKlU6W=V!ZVpd{BPJUvFUS?ieK7-;<7EUgpDjgsO8ZE%U zz--L1>&`!eQ=Zwv$sAT3l5^PoW~6btZZtf!OJwH3ZF&hu4i#R|jh3*yyNumZf`{EJ z`?&|u7EE(YK<4=MC@M&|@a*33tjnd)DKI3#P*Nem$2D4NMUBkX()(`{CD<Dju1h>> zbC%qss-h)?%^)+5T}H~<ryNgAI5Q<opRF}nhVP4{-$zfU#2Kp#WIk}6*}PZg*a~f? z$hYEu7@H6C8?8){n!ld~n^8c&C8=tkGHRRnW=>dqYxgqFRz)5bLznhM8NpR<O&c!C zGbaVbezui2u+Wj}Ke439(g&;Gj5u}`scU;ZPZ9Yb@!6-5N3HB|LQGP~l-8D=av70M zn&(eB2r$dNw2?oo1~w;X5>{h?&QUlt!BYHj$@4w8<{3yHmwBM5=d^9^sqi(640+hN zMT!%5Z!rBnm9f!a183*%`MH{2Sj_=C=gz+moPsy!gvQQde0Qs`U}{3g-NZR}O{TRv zx*atTnUFAh8zV2vAqRokh7E_Votuc;7+}n=PIbC6NAtQI2ghNBzT<^_EQSUvPi<Hi eAaMv7U17JDGAWcMNi@xi7M#GqU=2z*U;qG`z}k`k literal 0 HcmV?d00001 diff --git a/modules/mailjet/ajax.js b/modules/mailjet/ajax.js new file mode 100755 index 000000000..bf3553ac1 --- /dev/null +++ b/modules/mailjet/ajax.js @@ -0,0 +1,47 @@ +// JavaScript Document +$(document).ready(function() { + + $('#button_test_mailjet').click(function() { + $("#mailjet_test_ok").hide(); + $("#mailjet_test_ko").hide(); + $("#div_email_test").show(500); + }); + + $('#button_send_mailjet').click(function() { + var token = $(this).attr('rel'); + $("#button_test_mailjet").hide(); + $("#image_ajax_mailjet").show(); + $("#div_email_test").hide(); + $.ajax({ + type: 'GET', + url: "../modules/mailjet/ajax.php", + async: true, + cache: false, + dataType : "html", + data: 'token=' + token + '&mailjet_api_key=' + $("#mailjet_api_key").val() + '&mailjet_secret_key=' + $("#mailjet_secret_key").val() + '&email_from=' + escape($("#email_from").val()), + success: function(html) + { + $("#button_test_mailjet").show(); + $("#image_ajax_mailjet").hide(); + var retour = html.split("|"); + + if (retour[0] == "true") + { + $("#mailjet_test_ok").show(500); + } else { + $("#mailjet_activation_no").attr('checked', true); + $("#mailjet_error_message").html(retour[1]); + $("#mailjet_test_ko").show(500); + + } + }, + error: function(jqxhr, status, errorThrown) + { + $("#mailjet_activation_no").attr('checked', true); + $("#mailjet_error_message").html(errorThrown); + $("#mailjet_test_ko").show(500); + } + }); + }); + +}); diff --git a/modules/mailjet/ajax.php b/modules/mailjet/ajax.php new file mode 100755 index 000000000..5223c95fd --- /dev/null +++ b/modules/mailjet/ajax.php @@ -0,0 +1,67 @@ +<?php +/* +* Copyright (c) 2011 Mailjet SAS +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +* +* @author Dream me up +* @copyright 2011 Mailjet SAS +* @version Release: $Revision: 1.4 $ +* @license hhttp://opensource.org/licenses/mit-license MIT License +* International Registred Trademark & Property of Mailjet SAS +*/ + +require('../../config/config.inc.php'); +require('mailjet.php'); + +if (Tools::getValue('token') == '' || Tools::getValue('token') != Configuration::get('MAILJET_TOKEN')) + die('Invalid Token'); + +$obj_mailjet = new Mailjet(); +$email_from = urldecode($_GET['email_from']); +try { + $sujet = $obj_mailjet->l('Mailjet Test E-mail'); + $message = $obj_mailjet->l('Hello').",\r\n\r\n".$obj_mailjet->l('This E-mail confirms you that Mailjet has successfully been installed on your shop.'); + $result = Mail::sendMailTest(true, "in.mailjet.com", $message, $sujet, "text/plain", $email_from, $email_from, $_GET['mailjet_api_key'], $_GET['mailjet_secret_key'], $smtpPort = 465, "tls"); + + if ($result === true) + echo "true"; + else + { + if ($result == 999) + $result = $obj_mailjet->l('The E-mail was not successfully sent'); + echo "false|".$result; + reset_config_mailjet(); + } +} catch(Exception $e) { + echo "false|".$e->getMessage(); + reset_config_mailjet(); +} + +function reset_config_mailjet() +{ + Configuration::updateValue('MAILJET_ACTIVATE', 0); + Configuration::updateValue('PS_MAIL_METHOD', 1); + Configuration::updateValue('PS_MAIL_SERVER', ""); + Configuration::updateValue('PS_MAIL_USER', ""); + Configuration::updateValue('PS_MAIL_PASSWD', ""); + Configuration::updateValue('PS_MAIL_SMTP_ENCRYPTION', ""); + Configuration::updateValue('PS_MAIL_SMTP_PORT', 25); +} + diff --git a/modules/mailjet/config.xml b/modules/mailjet/config.xml new file mode 100755 index 000000000..ff8c3a5e4 --- /dev/null +++ b/modules/mailjet/config.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<module> + <name>mailjet</name> + <displayName><![CDATA[Mailjet]]></displayName> + <version><![CDATA[1.0]]></version> + <description><![CDATA[This modules sends through Mailjet all email coming from your Prestashop installation]]></description> + <author><![CDATA[]]></author> + <tab><![CDATA[front_office_features]]></tab> + <is_configurable>1</is_configurable> + <need_instance>1</need_instance> + <limited_countries></limited_countries> +</module> \ No newline at end of file diff --git a/modules/mailjet/fr.php b/modules/mailjet/fr.php new file mode 100755 index 000000000..211e20dea --- /dev/null +++ b/modules/mailjet/fr.php @@ -0,0 +1,29 @@ +<?php + +global $_MODULE; +$_MODULE = array(); +$_MODULE['<{mailjet}prestashop>ajax_64b88c69849c8b362e7f97c6eaab574d'] = 'E-mail de test'; +$_MODULE['<{mailjet}prestashop>ajax_8b1a9953c4611296a827abf8c47804d7'] = 'Bonjour'; +$_MODULE['<{mailjet}prestashop>ajax_c38b28d6adf75b2b2936de1f2168b6e6'] = 'Cet e-mail vous confirme que Mailjet a été correctement installé sur votre boutique.'; +$_MODULE['<{mailjet}prestashop>ajax_cfc9dca01a0503813a5f9585ba6780d1'] = 'L\'e-mail n\'a pas pu être envoyé'; +$_MODULE['<{mailjet}prestashop>mailjet_c127c5641733ecedcce7c33ed849401e'] = 'Ce module vous permet d\'envoyer vos e-mail PrestaShop via Mailjet'; +$_MODULE['<{mailjet}prestashop>mailjet_9ccb2eaeed6c7e95ecaf108373619300'] = 'Ce module est activé mais la clé API ou la clé secrète ne sont pas correctement remplies.'; +$_MODULE['<{mailjet}prestashop>mailjet_64b88c69849c8b362e7f97c6eaab574d'] = 'E-mail de test'; +$_MODULE['<{mailjet}prestashop>mailjet_8b1a9953c4611296a827abf8c47804d7'] = 'Bonjour'; +$_MODULE['<{mailjet}prestashop>mailjet_c38b28d6adf75b2b2936de1f2168b6e6'] = 'Cet e-mail vous confirme que Mailjet a été correctement installé sur votre boutique.'; +$_MODULE['<{mailjet}prestashop>mailjet_cfc9dca01a0503813a5f9585ba6780d1'] = 'L\'e-mail n\'a pas pu être envoyé'; +$_MODULE['<{mailjet}prestashop>mailjet_c888438d14855d7d96a2724ee9c306bd'] = 'Configuraiton mise à jour'; +$_MODULE['<{mailjet}prestashop>mailjet_9e3f29ea93d121e237085def4ee29f74'] = 'Ce module vous permet d\'envoyer vos e-mail PrestaShop (et ceux de la plupart de vos modules) via Mailjet'; +$_MODULE['<{mailjet}prestashop>mailjet_f4f70727dc34561dfde1a3c529b6205c'] = 'Configuration'; +$_MODULE['<{mailjet}prestashop>mailjet_6ad7efc596f5720291e748ff2185733f'] = 'Clé API Mailjet'; +$_MODULE['<{mailjet}prestashop>mailjet_a02496bddaea8e6616bf285fc37973be'] = 'Clé secrète Mailjet'; +$_MODULE['<{mailjet}prestashop>mailjet_ed1d12d25d1a1ec139c84015ae766a7f'] = 'Envoyer vos e-mails via Mailjet'; +$_MODULE['<{mailjet}prestashop>mailjet_93cba07454f06a4a960172bbd6e2a435'] = 'Oui'; +$_MODULE['<{mailjet}prestashop>mailjet_bafd7322c6e97d25b6299b5d6fe8920b'] = 'Non'; +$_MODULE['<{mailjet}prestashop>mailjet_63ade95d66cda885393aab6f5f5e4e76'] = 'Authentification réussie ! Votre configuration est correcte.'; +$_MODULE['<{mailjet}prestashop>mailjet_424ab525513861737da68b0700b5cd20'] = 'Une erreur est survenue :'; +$_MODULE['<{mailjet}prestashop>mailjet_79dfc1f365ed194bb9fc0da20f1a3857'] = 'Si vous ne comprenez pas cette erreur, veuillez contacter'; +$_MODULE['<{mailjet}prestashop>mailjet_d496cec7c628e4438ee719315942e2d6'] = ' E-mail de / à :'; +$_MODULE['<{mailjet}prestashop>mailjet_94966d90747b97d1f0f206c98a8b1ac3'] = 'Envoyer'; +$_MODULE['<{mailjet}prestashop>mailjet_540caa299a719ee320cf416ffae7adca'] = 'Test de configuration'; +$_MODULE['<{mailjet}prestashop>mailjet_d4dccb8ca2dac4e53c01bd9954755332'] = 'Sauvegarder la configuration'; diff --git a/modules/mailjet/logo-mailjet.jpg b/modules/mailjet/logo-mailjet.jpg new file mode 100755 index 0000000000000000000000000000000000000000..b28eeca958d9089ed57ee79592513e8e388e8607 GIT binary patch literal 18311 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 literal 0 HcmV?d00001 diff --git a/modules/mailjet/logo.gif b/modules/mailjet/logo.gif new file mode 100755 index 0000000000000000000000000000000000000000..eae7ebf58ab1082d09ce3e2afb1fe461f627b7bf GIT binary patch literal 1553 zcmZ?wbhEHb6krfwc*el+|NsAgKR*5a`{(zoYrlT|3JMB+wN(4ht5g5}{d;+;Xa2ld z|Ni{^_U+s3IdgwKJ@n;J_pMvEz8uP4y?SkWM%Js>uRnkO^zh-MpFh5Q-tDw-{;Zd? z%-^o_4hxI?_3ho8b$SJb<$wPC_VV`ocp&P>t@VFi-<&sR`iooB-!9S0$SQDh@%wlo z=i8Te0f8aEfBigh^5oH@$7<{9|Nr~@_xroTlFHBf4gY?5asArGAICi=PoDhc)YLC8 zFZ_CX{Oj5Nv&VOQKcfHs{fBQSo1RZsdGqqY!96RTUA(VfSaJ96y)P%Tf4{o=_v@Q~ zzrOze^NV2+1I7Q`5xxNmE{P?HK-$K>q98FjJGDe1DK$Ma&sORE?)^#%nJKnP;ikR@ zz6H*y8JQkcMXAA6ej&+K*~ykEO7?aNHWgMCxdpkYC5Z|ZxjA{oRu#5Ni7EL>sa8NX zNLXJ<0j#7X+g8aDB%uJZ(>cE=Rl!uxKsVXI%s|1+P|wiV#N6CmN5ROz&_Lh7NZ-&% z*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj%k|2Q_413-^$jg8EkR}& z8R-I5=oVMzl_XZ^<`pZ$OmImpPA<wUD9OyvQvjKmn3P{yVygsnDZ~r81#n~YiuJ(W z(M!(H)vrh_&^OdG0C@?f(AO8g(%f9Q>f(~1RD^r68eAMwS&*t9lv<o$T9lj$RIUuN zs=&&*C^fMpzbGU>KL-|y0U7xv`NbLe1q#l=rV8Pic`5nj#bDLGzE+-j#U+V($*G<$ zwn{+#dYPFiRz_x)7G{RVX2wQNPKJiA2A0N7j;=<IF6O3g=1y*IZZN$r`N^fZsd*(Z zy(tL2<~a3&5<+eP&}Ns^qRg_?6t|-MTm`U)tuk@D#RR8$P`xR*-C~MUuRhQ*`k-h< zie{J)FztYt@I(vbz>|Gy9x$yJ0TVSNuoU<MEERry|MvCE=T9F$ynpxh&Ffb$Up#;I z^vUB#4<FpWclXZiTQ_f9zjpP?<x3YYoIiK=%;{4nPaHpX^vK~u2M_Guw|CF(T|0Md z-?nwj=1m(ntY5cw&FWPvS1ez)bjjjH3m43vH+RnLSu<x$pEh;M<Vh1J^!N4lba!=j zw70dkG&eOi)YsM4R9972l$Vv36c-g1<mct)WM^e&q^G5(Bqt>%#K*<PL`OwNgolNO z1P28M`1|?#czbzzxVyQ!I6FBy*xT9KSX)_In46gbgBX~h^mKK!wKO%<)l^lKl@t}^ z<z!`~r6eW9#Y9Dfg#-oo`FMG_xi~r4*;rYanHU)u6o0Y+Nd^WT5CJN!8Q4P_7@C?} zTHD$?I$PZI#JXB|g$*o(^aVsZoFrvfbrfARHMnf8_*%{6ja8jp)wCoWIyl|U?Mwt! iI@s0O<dm$tY#gPP`#q#A`<wWgPn|n|;bKc8gEauFjy=o( literal 0 HcmV?d00001 diff --git a/modules/mailjet/mailjet.php b/modules/mailjet/mailjet.php new file mode 100755 index 000000000..8b97b2a3d --- /dev/null +++ b/modules/mailjet/mailjet.php @@ -0,0 +1,213 @@ +<?php +/* +* Copyright (c) 2011 Mailjet SAS +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +* +* @author Dream me up +* @copyright 2011 Mailjet SAS +* @version Release: $Revision: 1.4 $ +* @license hhttp://opensource.org/licenses/mit-license MIT License +* International Registred Trademark & Property of Mailjet SAS +*/ + + +// Security +if (!defined('_PS_VERSION_')) + exit; + +class Mailjet extends Module +{ + + /* + ** Construct Method + ** + */ + + public function __construct() + { + $this->name = 'mailjet'; + $this->tab = 'front_office_features'; + $this->version = '1.0'; + $this->displayName = 'Mailjet'; + + parent::__construct(); + + $this->description = $this->l('This modules sends through Mailjet all email coming from your Prestashop installation'); + + if (Configuration::get('MAILJET_ACTIVATE') == 1 && (strlen(Configuration::get('MAILJET_API_KEY')) < 3 || strlen(Configuration::get('MAILJET_SECRET_KEY')) < 3)) + $this->warning = $this->l('The module is activated but api key or secret key are not correctly set.'); + + // Defines ajax lang variables in way to translate them + $this->l('Mailjet Test E-mail'); + $this->l('Hello'); + $this->l('This E-mail confirms you that Mailjet has successfully been installed on your shop.'); + $this->l('The E-mail was not successfully sent'); + } + + + /* + ** Install / Uninstall Methods + ** + */ + + public function install() + { + // Can't do anything else for retrocompatibility + if (md5_file(dirname(__FILE__).'/override/Message.php') != md5_file(dirname(__FILE__).'/../../tools/swift/Swift/Message.php')) + return false; + if (!@copy(dirname(__FILE__).'/override/Message-mailjet.php', dirname(__FILE__).'/../../tools/swift/Swift/Message.php')) + return false; + + // Create Token + Configuration::updateValue('MAILJET_TOKEN', md5(rand())); + + // Install module + if (!parent::install()) + return false; + + return true; + } + + public function uninstall() + { + // Can't do anything else for retrocompatibility + if (md5_file(dirname(__FILE__).'/override/Message-mailjet.php') != md5_file(dirname(__FILE__).'/../../tools/swift/Swift/Message.php')) + return false; + if (!@copy(dirname(__FILE__).'/override/Message.php', dirname(__FILE__).'/../../tools/swift/Swift/Message.php')) + return false; + + // Uninstall module + Configuration::updateValue('PS_MAIL_METHOD', 1); + Configuration::updateValue('PS_MAIL_SERVER', ""); + Configuration::updateValue('PS_MAIL_USER', ""); + Configuration::updateValue('PS_MAIL_PASSWD', ""); + Configuration::updateValue('PS_MAIL_SMTP_ENCRYPTION', ""); + Configuration::updateValue('PS_MAIL_SMTP_PORT', 25); + if (!Configuration::deleteByName('MAILJET_TOKEN') OR !Configuration::deleteByName('MAILJET_SECRET_KEY') OR !Configuration::deleteByName('MAILJET_API_KEY') OR !parent::uninstall()) + return false; + + return true; + } + + + /* + ** Form Config Methods + ** + */ + + public function getContent() + { + global $cookie; + + $lang = new Language((int)($cookie->id_lang)); + if (!in_array($lang->iso_code, array('fr', 'en', 'es'))) + $lang->iso_code = 'en'; + + $output = '<script type="text/javascript" src="'.__PS_BASE_URI__.'modules/'.$this->name.'/ajax.js"></script> + <p style="margin-bottom: 5px;"><img src="'.__PS_BASE_URI__.'modules/'.$this->name.'/logo-mailjet.jpg" alt="" /></p>'; + + if (Tools::isSubmit('submitMailjet')) + { + Configuration::updateValue('MAILJET_API_KEY', pSQL(Tools::getValue('mailjet_api_key'))); + Configuration::updateValue('MAILJET_SECRET_KEY', pSQL(Tools::getValue('mailjet_secret_key'))); + Configuration::updateValue('MAILJET_ACTIVATE', (int)(Tools::getValue('mailjet_activation'))); + + // If mailjet activation, let's configure + if ((int)Tools::getValue('mailjet_activation') == 1) + { + Configuration::updateValue('PS_MAIL_METHOD', 2); + Configuration::updateValue('PS_MAIL_SERVER', "in.mailjet.com"); + Configuration::updateValue('PS_MAIL_USER', pSQL(Configuration::get('MAILJET_API_KEY'))); + Configuration::updateValue('PS_MAIL_PASSWD', pSQL(Configuration::get('MAILJET_SECRET_KEY'))); + Configuration::updateValue('PS_MAIL_SMTP_ENCRYPTION', "tls"); + Configuration::updateValue('PS_MAIL_SMTP_PORT', 465); + } + else + { + Configuration::updateValue('PS_MAIL_METHOD', 1); + Configuration::updateValue('PS_MAIL_SERVER', ""); + Configuration::updateValue('PS_MAIL_USER', ""); + Configuration::updateValue('PS_MAIL_PASSWD', ""); + Configuration::updateValue('PS_MAIL_SMTP_ENCRYPTION', ""); + Configuration::updateValue('PS_MAIL_SMTP_PORT', 25); + } + + $output .= ' + <div class="conf confirm"> + <img src="../img/admin/ok.gif" alt="" title="" /> + '.$this->l('Settings updated').' + </div>'; + } + + $chk_yes = ""; + $chk_no = " checked=\"checked\""; + + if ((int)(Tools::getValue('mailjet_activation', Configuration::get('MAILJET_ACTIVATE'))) == 1) + { + $chk_yes = ' checked="checked"'; + $chk_no = ''; + } + + $output .= ' + <div> + <p style="margin-bottom:10px;"> + <b>'.$this->l('This module sends through Mailjet all email coming from your Prestashop installation (and most third party modules)').'.</b> + </p> + <form action="'.htmlentities($_SERVER['REQUEST_URI']).'" method="post"> + <fieldset> + <legend><img src="../img/admin/cog.gif" alt="" class="middle" />'.$this->l('Settings').'</legend> + <label>'.$this->l('Mailjet API Key:').'</label> + <div class="margin-form"> + <input type="text" name="mailjet_api_key" id="mailjet_api_key" size="30" value="'.htmlentities(Tools::getValue('mailjet_api_key', Configuration::get('MAILJET_API_KEY'))).'" /> + </div> + <hr size="1" style="margin-bottom: 20px;" noshade /> + <label>'.$this->l('Mailjet Secret Key').'</label> + <div class="margin-form"> + <input type="text" name="mailjet_secret_key" id="mailjet_secret_key" size="30" value="'.htmlentities(Tools::getValue('mailjet_secret_key', Configuration::get('MAILJET_SECRET_KEY'))).'" /> + </div> + <hr size="1" style="margin-bottom: 20px;" noshade /> + <label style="vertical-align: middle;">'.$this->l('Send Email through Mailjet:').'</label> + <div class="margin-form" style="margin-top: 5px;"> + <input type="radio" name="mailjet_activation" value="1" style="vertical-align: middle;" '.$chk_yes.' /> '.$this->l('Yes').'  + <input type="radio" name="mailjet_activation" id="mailjet_activation_no" value="0" style="vertical-align: middle;" '.$chk_no.' /> '.$this->l('No').' + </div> + <hr size="1" style="margin-bottom: 20px;" noshade /> + <div class="conf confirm" id="mailjet_test_ok" style="display:none"> + <img src="../img/admin/ok.gif" alt="" title="" /> + '.$this->l('Authentication successful ! Your configuration is correct.').' + </div> + <div class="conf error" id="mailjet_test_ko" style="display:none"> + <img src="../img/admin/forbbiden.gif" alt="" title="" /> + '.$this->l('An Error has occured : ').'<span id="mailjet_error_message"></span> + <p>'.$this->l('If you don\'t understand this error please contact').' <a href="http://fr.mailjet.com/support" target="_blank">Mailjet Support</a></p> + </div> + <div id="div_email_test" style="display:none"> + <p style="text-align:center">'.$this->l('E-mail From / to :').' <input type="text" id="email_from" value="'.htmlentities(Configuration::get('PS_SHOP_EMAIL')).'" size="40" /> <input type="button" name="sendTestMailjet" value="'.$this->l('Send').'" class="button" rel="'.htmlentities(Configuration::get('MAILJET_TOKEN')).'" id="button_send_mailjet" /></p> + <hr size="1" style="margin-bottom: 20px;" noshade /> + </div> + <center><input type="button" name="testMailjet" value="'.$this->l('Test Configuration').'" class="button" id="button_test_mailjet" /><img src="'.__PS_BASE_URI__.'modules/'.$this->name.'/ajax-mailjet.gif" id="image_ajax_mailjet" style="display:none" /> <input type="submit" name="submitMailjet" value="'.$this->l('Save settings').'" class="button" /></center> + </fieldset> + </form> + </div>'; + + return $output; + } +} + diff --git a/modules/mailjet/override/Message-mailjet.php b/modules/mailjet/override/Message-mailjet.php new file mode 100755 index 000000000..cc04474ef --- /dev/null +++ b/modules/mailjet/override/Message-mailjet.php @@ -0,0 +1,798 @@ +<?php + +/** + * Swift Mailer Message Component + * Composes MIME 1.0 messages meeting various RFC standards + * Deals with attachments, embedded images, multipart bodies, forwarded messages... + * Please read the LICENSE file + * @copyright Chris Corbyn <chris@w3style.co.uk> + * @author Chris Corbyn <chris@w3style.co.uk> + * @package Swift_Message + * @license GNU Lesser General Public License + */ + +require_once dirname(__FILE__) . "/ClassLoader.php"; +Swift_ClassLoader::load("Swift_Address"); +Swift_ClassLoader::load("Swift_Message_Mime"); +Swift_ClassLoader::load("Swift_Message_Image"); +Swift_ClassLoader::load("Swift_Message_Part"); + + +/** + * Swift Message class + * @package Swift_Message + * @author Chris Corbyn <chris@w3style.co.uk> + */ +class Swift_Message extends Swift_Message_Mime +{ + /** + * Constant from a high priority message (pretty meaningless) + */ + const PRIORITY_HIGH = 1; + /** + * Constant for a low priority message + */ + const PRIORITY_LOW = 5; + /** + * Constant for a normal priority message + */ + const PRIORITY_NORMAL = 3; + /** + * The MIME warning for client not supporting multipart content + * @var string + */ + protected $mimeWarning = null; + /** + * The version of the library (Swift) if known. + * @var string + */ + protected $libVersion = ""; + /** + * A container for references to other objects. + * This is used in some very complex logic when sub-parts get shifted around. + * @var array + */ + protected $references = array( + "parent" => array("alternative" => null, "mixed" => null, "related" => null), + "alternative" => array(), + "mixed" => array(), + "related" => array() + ); + + /** + * Ctor. + * @param string Message subject + * @param string Body + * @param string Content-type + * @param string Encoding + * @param string Charset + */ + public function __construct($subject="", $body=null, $type="text/plain", $encoding=null, $charset=null) + { + parent::__construct(); + if (function_exists("date_default_timezone_set") && function_exists("date_default_timezone_get")) + { + date_default_timezone_set(@date_default_timezone_get()); + } + $this->setReturnPath(null); + $this->setTo(""); + $this->setFrom(""); + $this->setCc(null); + $this->setBcc(null); + $this->setReplyTo(null); + $this->setSubject($subject); + $this->setDate(time()); + if (defined("Swift::VERSION")) + { + $this->libVersion = Swift::VERSION; + $this->headers->set("X-LibVersion", $this->libVersion); + } + $this->headers->set("MIME-Version", "1.0"); + $this->headers->set("X-Mailjet-Partner", "prestashop"); + $this->setContentType($type); + $this->setCharset($charset); + $this->setFlowed(true); + $this->setEncoding($encoding); + + foreach (array_keys($this->references["parent"]) as $key) + { + $this->setReference("parent", $key, $this); + } + + $this->setMimeWarning( + "This is a message in multipart MIME format. Your mail client should not be displaying this. " . + "Consider upgrading your mail client to view this message correctly." + ); + + if ($body !== null) + { + $this->setData($body); + if ($charset === null) + { + Swift_ClassLoader::load("Swift_Message_Encoder"); + if (Swift_Message_Encoder::instance()->isUTF8($body)) $this->setCharset("utf-8"); + else $this->setCharset("iso-8859-1"); + } + } + } + /** + * Sets a reference so when nodes are nested, operations can be redirected. + * This really should be refactored to use just one array rather than dynamic variables. + * @param string Key 1 + * @param string Key 2 + * @param Object Reference + */ + protected function setReference($where, $key, $ref) + { + if ($ref === $this) $this->references[$where][$key] = false; + else $this->references[$where][$key] = $ref; + } + /** + * Get a reference to an object (for complex reasons). + * @param string Key 1 + * @param string Key 2 + * @return Object + */ + protected function getReference($where, $key) + { + if (!$this->references[$where][$key]) return $this; + else return $this->references[$where][$key]; + } + /** + * Get the level in the MIME hierarchy at which this section should appear. + * @return string + */ + public function getLevel() + { + return Swift_Message_Mime::LEVEL_TOP; + } + /** + * Set the message id literally. + * Unless you know what you are doing you should be using generateId() rather than this method, + * otherwise you may break compliancy with RFC 2822. + * @param string The message ID string. + */ + public function setId($id) + { + $this->headers->set("Message-ID", $id); + } + /** + * Create a RFC 2822 compliant message id, optionally based upon $idstring. + * The message ID includes information about the current time, the server and some random characters. + * @param string An optional string the base the ID on + * @return string The generated message ID, including the <> quotes. + * @author Cristian Rodriguez <judas.iscariote@flyspray.org> + */ + public function generateId($idstring=null) + { + $midparams = array( + "utctime" => gmstrftime("%Y%m%d%H%M%S"), + "pid" => getmypid(), + "randint" => mt_rand(), + "customstr" => (preg_match("/^(?<!\\.)[a-z0-9\\.]+(?!\\.)\$/iD", $idstring) ? $idstring : "swift") , + "hostname" => (isset($_SERVER["SERVER_NAME"]) ? $_SERVER["SERVER_NAME"] : php_uname("n")), + ); + $this->setId(vsprintf("<%s.%d.%d.%s@%s>", $midparams)); + return $this->getId(); + } + /** + * Get the generated message ID for this message, including the <> quotes. + * If generated automatically, or using generateId() this method returns a RFC2822 compliant Message-ID. + * @return string + * @author Cristian Rodriguez <judas.iscariote@flyspray.org> + */ + public function getId() + { + return $this->headers->has("Message-ID") ? $this->headers->get("Message-ID") : null; + } + /** + * Set the address in the Return-Path: header + * @param string The bounce-detect address + */ + public function setReturnPath($address) + { + if ($address instanceof Swift_Address) $address = $address->build(true); + $this->headers->set("Return-Path", $address); + } + /** + * Return the address used in the Return-Path: header + * @return string + * @param boolean Return the address for SMTP command + */ + public function getReturnPath($smtp=false) + { + if ($this->headers->has("Return-Path")) + { + if (!$smtp) return $this->headers->get("Return-Path"); + else + { + $path = $this->headers->get("Return-Path"); + if (strpos($path, ">") > strpos($path, "<")) return substr($path, ($start = strpos($path, "<")), ($start + strrpos($path, ">") + 1)); + else return "<" . $path . ">"; + } + } + } + /** + * Set the address in the From: header + * @param string The address to set as From + */ + public function setFrom($from) + { + if ($from instanceof Swift_Address) $from = $from->build(); + $this->headers->set("From", $from); + } + /** + * Get the address used in the From: header + * @return string + */ + public function getFrom() + { + if ($this->headers->has("From")) return $this->headers->get("From"); + } + /** + * Set the list of recipients in the To: header + * @param mixed An array or a string + */ + public function setTo($to) + { + if ($to) + { + if (!is_array($to)) $to = array($to); + foreach ($to as $key => $value) + { + if ($value instanceof Swift_Address) $to[$key] = $value->build(); + } + } + $this->headers->set("To", $to); + } + /** + * Return the list of recipients in the To: header + * @return array + */ + public function getTo() + { + if ($this->headers->has("To")) + { + $to = $this->headers->get("To"); + if ($to == "") return array(); + else return (array) $to; + } + } + /** + * Set the list of recipients in the Reply-To: header + * @param mixed An array or a string + */ + public function setReplyTo($replyto) + { + if ($replyto) + { + if (!is_array($replyto)) $replyto = array($replyto); + foreach ($replyto as $key => $value) + { + if ($value instanceof Swift_Address) $replyto[$key] = $value->build(); + } + } + $this->headers->set("Reply-To", $replyto); + } + /** + * Return the list of recipients in the Reply-To: header + * @return array + */ + public function getReplyTo() + { + if ($this->headers->has("Reply-To")) + { + $reply_to = $this->headers->get("Reply-To"); + if ($reply_to == "") return array(); + else return (array) $reply_to; + } + } + /** + * Set the list of recipients in the Cc: header + * @param mixed An array or a string + */ + public function setCc($cc) + { + if ($cc) + { + if (!is_array($cc)) $cc = array($cc); + foreach ($cc as $key => $value) + { + if ($value instanceof Swift_Address) $cc[$key] = $value->build(); + } + } + $this->headers->set("Cc", $cc); + } + /** + * Return the list of recipients in the Cc: header + * @return array + */ + public function getCc() + { + if ($this->headers->has("Cc")) + { + $cc = $this->headers->get("Cc"); + if ($cc == "") return array(); + else return (array) $cc; + } + } + /** + * Set the list of recipients in the Bcc: header + * @param mixed An array or a string + */ + public function setBcc($bcc) + { + if ($bcc) + { + if (!is_array($bcc)) $bcc = array($bcc); + foreach ($bcc as $key => $value) + { + if ($value instanceof Swift_Address) $bcc[$key] = $value->build(); + } + } + $this->headers->set("Bcc", $bcc); + } + /** + * Return the list of recipients in the Bcc: header + * @return array + */ + public function getBcc() + { + if ($this->headers->has("Bcc")) + { + $bcc = $this->headers->get("Bcc"); + if ($bcc == "") return array(); + else return (array) $bcc; + } + } + /** + * Set the subject in the headers + * @param string The subject of the email + */ + public function setSubject($subject) + { + $this->headers->set("Subject", $subject); + } + /** + * Get the current subject used in the headers + * @return string + */ + public function getSubject() + { + return $this->headers->get("Subject"); + } + /** + * Set the date in the headers in RFC 2822 format + * @param int The time as a UNIX timestamp + */ + public function setDate($date) + { + $this->headers->set("Date", date("r", $date)); + } + /** + * Get the date as it looks in the headers + * @return string + */ + public function getDate() + { + return strtotime($this->headers->get("Date")); + } + /** + * Set the charset of the document + * @param string The charset used + */ + public function setCharset($charset) + { + $this->headers->setAttribute("Content-Type", "charset", $charset); + if (($this->getEncoding() == "7bit") && (strtolower($charset) == "utf-8" || strtolower($charset) == "utf8")) $this->setEncoding("8bit"); + } + /** + * Get the charset used in the document + * Returns null if none is set + * @return string + */ + public function getCharset() + { + if ($this->headers->hasAttribute("Content-Type", "charset")) + { + return $this->headers->getAttribute("Content-Type", "charset"); + } + else + { + return null; + } + } + /** + * Set the "format" attribute to flowed + * @param boolean On or Off + */ + public function setFlowed($flowed=true) + { + $value = null; + if ($flowed) $value = "flowed"; + $this->headers->setAttribute("Content-Type", "format", $value); + } + /** + * Check if the message format is set as flowed + * @return boolean + */ + public function isFlowed() + { + if ($this->headers->hasAttribute("Content-Type", "format") + && $this->headers->getAttribute("Content-Type", "format") == "flowed") + { + return true; + } + else return false; + } + /** + * Set the message prioirty in the mail client (don't rely on this) + * @param int The priority as a value between 1 (high) and 5 (low) + */ + public function setPriority($priority) + { + $priority = (int) $priority; + if ($priority > self::PRIORITY_LOW) $priority = self::PRIORITY_LOW; + if ($priority < self::PRIORITY_HIGH) $priority = self::PRIORITY_HIGH; + $label = array(1 => "High", 2 => "High", 3 => "Normal", 4 => "Low", 5 => "Low"); + $this->headers->set("X-Priority", $priority); + $this->headers->set("X-MSMail-Priority", $label[$priority]); + $this->headers->set("X-MimeOLE", "Produced by SwiftMailer " . $this->libVersion); + } + /** + * Request that the client send back a read-receipt (don't rely on this!) + * @param string Request address + */ + public function requestReadReceipt($request) + { + if ($request instanceof Swift_Address) $request = $request->build(); + if (!$request) + { + $this->headers->set("Disposition-Notification-To", null); + $this->headers->set("X-Confirm-Reading-To", null); + $this->headers->set("Return-Receipt-To", null); + } + else + { + $this->headers->set("Disposition-Notification-To", $request); + $this->headers->set("X-Confirm-Reading-To", $request); + $this->headers->set("Return-Receipt-To", $request); + } + } + /** + * Check if a read receipt has been requested for this message + * @return boolean + */ + public function wantsReadReceipt() + { + return $this->headers->has("Disposition-Notification-To"); + } + /** + * Get the current message priority + * Returns NULL if none set + * @return int + */ + public function getPriority() + { + if ($this->headers->has("X-Priority")) return $this->headers->get("X-Priority"); + else return null; + } + /** + * Alias for setData() + * @param mixed Body + */ + public function setBody($body) + { + $this->setData($body); + } + /** + * Alias for getData() + * @return mixed The document body + */ + public function getBody() + { + return $this->getData(); + } + /** + * Set the MIME warning message which is displayed to old clients + * @var string The full warning message (in 7bit ascii) + */ + public function setMimeWarning($text) + { + $this->mimeWarning = (string) $text; + } + /** + * Get the MIME warning which is displayed to old clients + * @return string + */ + public function getMimeWarning() + { + return $this->mimeWarning; + } + /** + * Attach a mime part or an attachment of some sort + * Any descendant of Swift_Message_Mime can be added safely (including other Swift_Message objects for mail forwarding!!) + * @param Swift_Message_Mime The document to attach + * @param string An identifier to use (one is returned otherwise) + * @return string The identifier for the part + */ + public function attach(Swift_Message_Mime $child, $id=null) + { + try { + switch ($child->getLevel()) + { + case Swift_Message_Mime::LEVEL_ALTERNATIVE: + $sign = (strtolower($child->getContentType()) == "text/plain") ? -1 : 1; + $id = $this->getReference("parent", "alternative")->addChild($child, $id, $sign); + $this->setReference("alternative", $id, $child); + break; + case Swift_Message_Mime::LEVEL_RELATED: + $id = "cid:" . $child->getContentId(); + $id = $this->getReference("parent", "related")->addChild($child, $id, 1); + $this->setReference("related", $id, $child); + break; + case Swift_Message_Mime::LEVEL_MIXED: default: + $id = $this->getReference("parent", "mixed")->addChild($child, $id, 1); + $this->setReference("mixed", $id, $child); + break; + } + $this->postAttachFixStructure(); + $this->fixContentType(); + return $id; + } catch (Swift_Message_MimeException $e) { + throw new Swift_Message_MimeException("Something went wrong whilst trying to move some MIME parts during an attach(). " . + "The MIME component threw an exception:<br />" . $e->getMessage()); + } + } + /** + * Remove a nested MIME part + * @param string The ID of the attached part + * @throws Swift_Message_MimeException If no such part exists + */ + public function detach($id) + { + try { + switch (true) + { + case array_key_exists($id, $this->references["alternative"]): + $this->getReference("parent", "alternative")->removeChild($id); + unset($this->references["alternative"][$id]); + break; + case array_key_exists($id, $this->references["related"]): + $this->getReference("parent", "related")->removeChild($id); + unset($this->references["related"][$id]); + break; + case array_key_exists($id, $this->references["mixed"]): + $this->getReference("parent", "mixed")->removeChild($id); + unset($this->references["mixed"][$id]); + break; + default: + throw new Swift_Message_MimeException("Unable to detach part identified by ID '" . $id . "' since it's not registered."); + break; + } + $this->postDetachFixStructure(); + $this->fixContentType(); + } catch (Swift_Message_MimeException $e) { + throw new Swift_Message_MimeException("Something went wrong whilst trying to move some MIME parts during a detach(). " . + "The MIME component threw an exception:<br />" . $e->getMessage()); + } + } + /** + * Sets the correct content type header by looking at what types of data we have set + */ + protected function fixContentType() + { + if (!empty($this->references["mixed"])) $this->setContentType("multipart/mixed"); + elseif (!empty($this->references["related"])) $this->setContentType("multipart/related"); + elseif (!empty($this->references["alternative"])) $this->setContentType("multipart/alternative"); + } + /** + * Move a branch of the tree, containing all it's MIME parts onto another branch + * @param string The content type on the branch itself + * @param string The content type which may exist in the branch's parent + * @param array The array containing all the nodes presently + * @param string The location of the branch now + * @param string The location of the branch after moving + * @param string The key to identify the branch by in it's new location + */ + protected function moveBranchIn($type, $nested_type, $from, $old_branch, $new_branch, $tag) + { + $new = new Swift_Message_Part(); + $new->setContentType($type); + $this->getReference("parent", $new_branch)->addChild($new, $tag, -1); + + switch ($new_branch) + { + case "related": $this->setReference("related", $tag, $new);//relatedRefs[$tag] = $new; + break; + case "mixed": $this->setReference("mixed", $tag, $new);//mixedRefs[$tag] = $new; + break; + } + + foreach ($from as $id => $ref) + { + if (!$ref) $ref = $this; + $sign = (strtolower($ref->getContentType()) == "text/plain" + || strtolower($ref->getContentType()) == $nested_type) ? -1 : 1; + switch ($new_branch) + { + case "related": $this->getReference("related", $tag)->addChild($ref, $id, $sign); + break; + case "mixed": $this->getReference("mixed", $tag)->addChild($ref, $id, $sign); + break; + } + $this->getReference("parent", $old_branch)->removeChild($id); + } + $this->setReference("parent", $old_branch, $new); //parentRefs[$old_branch] = $new; + } + /** + * Analyzes the mixing of MIME types in a mulitpart message an re-arranges if needed + * It looks complicated and long winded but the concept is pretty simple, even if putting it + * in code does me make want to cry! + */ + protected function postAttachFixStructure() + { + switch (true) + { + case (!empty($this->references["mixed"]) && !empty($this->references["related"]) && !empty($this->references["alternative"])): + if (!isset($this->references["related"]["_alternative"])) + { + $this->moveBranchIn( + "multipart/alternative", "multipart/alternative", $this->references["alternative"], "alternative", "related", "_alternative"); + } + if (!isset($this->references["mixed"]["_related"])) + { + $this->moveBranchIn( + "multipart/related", "multipart/alternative", $this->references["related"], "related", "mixed", "_related"); + } + break; + case (!empty($this->references["mixed"]) && !empty($this->references["related"])): + if (!isset($this->references["mixed"]["_related"])) + { + $this->moveBranchIn( + "multipart/related", "multipart/related", $this->references["related"], "related", "mixed", "_related"); + } + break; + case (!empty($this->references["mixed"]) && !empty($this->references["alternative"])): + if (!isset($this->references["mixed"]["_alternative"])) + { + $this->moveBranchIn( + "multipart/alternative", null, $this->references["alternative"], "alternative", "mixed", "_alternative"); + } + break; + case (!empty($this->references["related"]) && !empty($this->references["alternative"])): + if (!isset($this->references["related"]["_alternative"])) + { + $this->moveBranchIn( + "multipart/alternative", "multipart/alternative", $this->references["alternative"], "alternative", "related", "_alternative"); + } + break; + } + } + /** + * Move a branch further toward the top of the tree + * @param array The array containing MIME parts from the old branch + * @param string The name of the old branch + * @param string The name of the new branch + * @param string The key of the branch being moved + */ + protected function moveBranchOut($from, $old_branch, $new_branch, $tag) + { + foreach ($from as $id => $ref) + { + if (!$ref) $ref = $this; + $sign = (strtolower($ref->getContentType()) == "text/html" + || strtolower($ref->getContentType()) == "multipart/alternative") ? -1 : 1; + $this->getReference("parent", $new_branch)->addChild($ref, $id, $sign); + switch ($new_branch) + { + case "related": $this->getReference("related", $tag)->removeChild($id); + break; + case "mixed": $this->getReference("parent", $old_branch)->removeChild($id); + break; + } + } + $this->getReference("parent", $new_branch)->removeChild($tag); + $mixed = $this->getReference("parent", $new_branch);//parentRefs[$new_branch]; + $this->setReference("parent", $old_branch, $mixed);//parentRefs[$old_branch] = $mixed; + switch ($new_branch) + { + case "related": unset($this->references["related"][$tag]); + break; + case "mixed": unset($this->references["mixed"][$tag]); + break; + } + } + /** + * Analyzes the mixing of MIME types in a mulitpart message an re-arranges if needed + * It looks complicated and long winded but the concept is pretty simple, even if putting it + * in code does me make want to cry! + */ + protected function postDetachFixStructure() + { + switch (true) + { + case (!empty($this->references["mixed"]) && !empty($this->references["related"]) && !empty($this->references["alternative"])): + if (array_keys($this->references["related"]) == array("_alternative")) + { + $alt = $this->getReference("parent", "related")->getChild("_alternative"); + $this->getReference("parent", "mixed")->addChild($alt, "_alternative", -1); + $this->setReference("mixed", "_alternative", $alt);//mixedRefs["_alternative"] = $alt; + $this->getReference("parent", "related")->removeChild("_alternative"); + unset($this->references["related"]["_alternative"]); + $this->getReference("parent", "mixed")->removeChild("_related"); + unset($this->references["mixed"]["_related"]); + } + if (array_keys($this->references["mixed"]) == array("_related")) + { + $this->moveBranchOut($this->references["related"], "related", "mixed", "_related"); + } + break; + case (!empty($this->references["mixed"]) && !empty($this->references["related"])): + if (array_keys($this->references["mixed"]) == array("_related")) + { + $this->moveBranchOut($this->references["related"], "related", "mixed", "_related"); + } + if (isset($this->references["related"]["_alternative"])) + { + $this->detach("_alternative"); + } + break; + case (!empty($this->references["mixed"]) && !empty($this->references["alternative"])): + if (array_keys($this->references["mixed"]) == array("_alternative")) + { + $this->moveBranchOut($this->references["alternative"], "alternative", "mixed", "_alternative"); + } + break; + case (!empty($this->references["related"]) && !empty($this->references["alternative"])): + if (array_keys($this->references["related"]) == array("_alternative")) + { + $this->moveBranchOut($this->references["alternative"], "alternative", "related", "_alternative"); + } + break; + case (!empty($this->references["mixed"])): + if (isset($this->references["mixed"]["_related"])) $this->detach("_related"); + case (!empty($this->references["related"])): + if (isset($this->references["related"]["_alternative"]) || isset($this->references["mixed"]["_alternative"])) + $this->detach("_alternative"); + break; + } + } + /** + * Execute needed logic prior to compilation + */ + public function preBuild() + { + $data = $this->getData(); + if (!($enc = $this->getEncoding())) + { + $this->setEncoding("8bit"); + } + if ($this->getCharset() === null && !$this->numChildren()) + { + Swift_ClassLoader::load("Swift_Message_Encoder"); + if (is_string($data) && Swift_Message_Encoder::instance()->isUTF8($data)) + { + $this->setCharset("utf-8"); + } + elseif(is_string($data) && Swift_Message_Encoder::instance()->is7BitAscii($data)) + { + $this->setCharset("us-ascii"); + if (!$enc) $this->setEncoding("7bit"); + } + else $this->setCharset("iso-8859-1"); + } + elseif ($this->numChildren()) + { + if (!$this->getData()) + { + $this->setData($this->getMimeWarning()); + $this->setLineWrap(76); + } + + if ($this->getCharset() !== null) $this->setCharset(null); + if ($this->isFlowed()) $this->setFlowed(false); + $this->setEncoding("7bit"); + } + } +} diff --git a/modules/mailjet/override/Message.php b/modules/mailjet/override/Message.php new file mode 100755 index 000000000..8ce2a2f92 --- /dev/null +++ b/modules/mailjet/override/Message.php @@ -0,0 +1,797 @@ +<?php + +/** + * Swift Mailer Message Component + * Composes MIME 1.0 messages meeting various RFC standards + * Deals with attachments, embedded images, multipart bodies, forwarded messages... + * Please read the LICENSE file + * @copyright Chris Corbyn <chris@w3style.co.uk> + * @author Chris Corbyn <chris@w3style.co.uk> + * @package Swift_Message + * @license GNU Lesser General Public License + */ + +require_once dirname(__FILE__) . "/ClassLoader.php"; +Swift_ClassLoader::load("Swift_Address"); +Swift_ClassLoader::load("Swift_Message_Mime"); +Swift_ClassLoader::load("Swift_Message_Image"); +Swift_ClassLoader::load("Swift_Message_Part"); + + +/** + * Swift Message class + * @package Swift_Message + * @author Chris Corbyn <chris@w3style.co.uk> + */ +class Swift_Message extends Swift_Message_Mime +{ + /** + * Constant from a high priority message (pretty meaningless) + */ + const PRIORITY_HIGH = 1; + /** + * Constant for a low priority message + */ + const PRIORITY_LOW = 5; + /** + * Constant for a normal priority message + */ + const PRIORITY_NORMAL = 3; + /** + * The MIME warning for client not supporting multipart content + * @var string + */ + protected $mimeWarning = null; + /** + * The version of the library (Swift) if known. + * @var string + */ + protected $libVersion = ""; + /** + * A container for references to other objects. + * This is used in some very complex logic when sub-parts get shifted around. + * @var array + */ + protected $references = array( + "parent" => array("alternative" => null, "mixed" => null, "related" => null), + "alternative" => array(), + "mixed" => array(), + "related" => array() + ); + + /** + * Ctor. + * @param string Message subject + * @param string Body + * @param string Content-type + * @param string Encoding + * @param string Charset + */ + public function __construct($subject="", $body=null, $type="text/plain", $encoding=null, $charset=null) + { + parent::__construct(); + if (function_exists("date_default_timezone_set") && function_exists("date_default_timezone_get")) + { + date_default_timezone_set(@date_default_timezone_get()); + } + $this->setReturnPath(null); + $this->setTo(""); + $this->setFrom(""); + $this->setCc(null); + $this->setBcc(null); + $this->setReplyTo(null); + $this->setSubject($subject); + $this->setDate(time()); + if (defined("Swift::VERSION")) + { + $this->libVersion = Swift::VERSION; + $this->headers->set("X-LibVersion", $this->libVersion); + } + $this->headers->set("MIME-Version", "1.0"); + $this->setContentType($type); + $this->setCharset($charset); + $this->setFlowed(true); + $this->setEncoding($encoding); + + foreach (array_keys($this->references["parent"]) as $key) + { + $this->setReference("parent", $key, $this); + } + + $this->setMimeWarning( + "This is a message in multipart MIME format. Your mail client should not be displaying this. " . + "Consider upgrading your mail client to view this message correctly." + ); + + if ($body !== null) + { + $this->setData($body); + if ($charset === null) + { + Swift_ClassLoader::load("Swift_Message_Encoder"); + if (Swift_Message_Encoder::instance()->isUTF8($body)) $this->setCharset("utf-8"); + else $this->setCharset("iso-8859-1"); + } + } + } + /** + * Sets a reference so when nodes are nested, operations can be redirected. + * This really should be refactored to use just one array rather than dynamic variables. + * @param string Key 1 + * @param string Key 2 + * @param Object Reference + */ + protected function setReference($where, $key, $ref) + { + if ($ref === $this) $this->references[$where][$key] = false; + else $this->references[$where][$key] = $ref; + } + /** + * Get a reference to an object (for complex reasons). + * @param string Key 1 + * @param string Key 2 + * @return Object + */ + protected function getReference($where, $key) + { + if (!$this->references[$where][$key]) return $this; + else return $this->references[$where][$key]; + } + /** + * Get the level in the MIME hierarchy at which this section should appear. + * @return string + */ + public function getLevel() + { + return Swift_Message_Mime::LEVEL_TOP; + } + /** + * Set the message id literally. + * Unless you know what you are doing you should be using generateId() rather than this method, + * otherwise you may break compliancy with RFC 2822. + * @param string The message ID string. + */ + public function setId($id) + { + $this->headers->set("Message-ID", $id); + } + /** + * Create a RFC 2822 compliant message id, optionally based upon $idstring. + * The message ID includes information about the current time, the server and some random characters. + * @param string An optional string the base the ID on + * @return string The generated message ID, including the <> quotes. + * @author Cristian Rodriguez <judas.iscariote@flyspray.org> + */ + public function generateId($idstring=null) + { + $midparams = array( + "utctime" => gmstrftime("%Y%m%d%H%M%S"), + "pid" => getmypid(), + "randint" => mt_rand(), + "customstr" => (preg_match("/^(?<!\\.)[a-z0-9\\.]+(?!\\.)\$/iD", $idstring) ? $idstring : "swift") , + "hostname" => (isset($_SERVER["SERVER_NAME"]) ? $_SERVER["SERVER_NAME"] : php_uname("n")), + ); + $this->setId(vsprintf("<%s.%d.%d.%s@%s>", $midparams)); + return $this->getId(); + } + /** + * Get the generated message ID for this message, including the <> quotes. + * If generated automatically, or using generateId() this method returns a RFC2822 compliant Message-ID. + * @return string + * @author Cristian Rodriguez <judas.iscariote@flyspray.org> + */ + public function getId() + { + return $this->headers->has("Message-ID") ? $this->headers->get("Message-ID") : null; + } + /** + * Set the address in the Return-Path: header + * @param string The bounce-detect address + */ + public function setReturnPath($address) + { + if ($address instanceof Swift_Address) $address = $address->build(true); + $this->headers->set("Return-Path", $address); + } + /** + * Return the address used in the Return-Path: header + * @return string + * @param boolean Return the address for SMTP command + */ + public function getReturnPath($smtp=false) + { + if ($this->headers->has("Return-Path")) + { + if (!$smtp) return $this->headers->get("Return-Path"); + else + { + $path = $this->headers->get("Return-Path"); + if (strpos($path, ">") > strpos($path, "<")) return substr($path, ($start = strpos($path, "<")), ($start + strrpos($path, ">") + 1)); + else return "<" . $path . ">"; + } + } + } + /** + * Set the address in the From: header + * @param string The address to set as From + */ + public function setFrom($from) + { + if ($from instanceof Swift_Address) $from = $from->build(); + $this->headers->set("From", $from); + } + /** + * Get the address used in the From: header + * @return string + */ + public function getFrom() + { + if ($this->headers->has("From")) return $this->headers->get("From"); + } + /** + * Set the list of recipients in the To: header + * @param mixed An array or a string + */ + public function setTo($to) + { + if ($to) + { + if (!is_array($to)) $to = array($to); + foreach ($to as $key => $value) + { + if ($value instanceof Swift_Address) $to[$key] = $value->build(); + } + } + $this->headers->set("To", $to); + } + /** + * Return the list of recipients in the To: header + * @return array + */ + public function getTo() + { + if ($this->headers->has("To")) + { + $to = $this->headers->get("To"); + if ($to == "") return array(); + else return (array) $to; + } + } + /** + * Set the list of recipients in the Reply-To: header + * @param mixed An array or a string + */ + public function setReplyTo($replyto) + { + if ($replyto) + { + if (!is_array($replyto)) $replyto = array($replyto); + foreach ($replyto as $key => $value) + { + if ($value instanceof Swift_Address) $replyto[$key] = $value->build(); + } + } + $this->headers->set("Reply-To", $replyto); + } + /** + * Return the list of recipients in the Reply-To: header + * @return array + */ + public function getReplyTo() + { + if ($this->headers->has("Reply-To")) + { + $reply_to = $this->headers->get("Reply-To"); + if ($reply_to == "") return array(); + else return (array) $reply_to; + } + } + /** + * Set the list of recipients in the Cc: header + * @param mixed An array or a string + */ + public function setCc($cc) + { + if ($cc) + { + if (!is_array($cc)) $cc = array($cc); + foreach ($cc as $key => $value) + { + if ($value instanceof Swift_Address) $cc[$key] = $value->build(); + } + } + $this->headers->set("Cc", $cc); + } + /** + * Return the list of recipients in the Cc: header + * @return array + */ + public function getCc() + { + if ($this->headers->has("Cc")) + { + $cc = $this->headers->get("Cc"); + if ($cc == "") return array(); + else return (array) $cc; + } + } + /** + * Set the list of recipients in the Bcc: header + * @param mixed An array or a string + */ + public function setBcc($bcc) + { + if ($bcc) + { + if (!is_array($bcc)) $bcc = array($bcc); + foreach ($bcc as $key => $value) + { + if ($value instanceof Swift_Address) $bcc[$key] = $value->build(); + } + } + $this->headers->set("Bcc", $bcc); + } + /** + * Return the list of recipients in the Bcc: header + * @return array + */ + public function getBcc() + { + if ($this->headers->has("Bcc")) + { + $bcc = $this->headers->get("Bcc"); + if ($bcc == "") return array(); + else return (array) $bcc; + } + } + /** + * Set the subject in the headers + * @param string The subject of the email + */ + public function setSubject($subject) + { + $this->headers->set("Subject", $subject); + } + /** + * Get the current subject used in the headers + * @return string + */ + public function getSubject() + { + return $this->headers->get("Subject"); + } + /** + * Set the date in the headers in RFC 2822 format + * @param int The time as a UNIX timestamp + */ + public function setDate($date) + { + $this->headers->set("Date", date("r", $date)); + } + /** + * Get the date as it looks in the headers + * @return string + */ + public function getDate() + { + return strtotime($this->headers->get("Date")); + } + /** + * Set the charset of the document + * @param string The charset used + */ + public function setCharset($charset) + { + $this->headers->setAttribute("Content-Type", "charset", $charset); + if (($this->getEncoding() == "7bit") && (strtolower($charset) == "utf-8" || strtolower($charset) == "utf8")) $this->setEncoding("8bit"); + } + /** + * Get the charset used in the document + * Returns null if none is set + * @return string + */ + public function getCharset() + { + if ($this->headers->hasAttribute("Content-Type", "charset")) + { + return $this->headers->getAttribute("Content-Type", "charset"); + } + else + { + return null; + } + } + /** + * Set the "format" attribute to flowed + * @param boolean On or Off + */ + public function setFlowed($flowed=true) + { + $value = null; + if ($flowed) $value = "flowed"; + $this->headers->setAttribute("Content-Type", "format", $value); + } + /** + * Check if the message format is set as flowed + * @return boolean + */ + public function isFlowed() + { + if ($this->headers->hasAttribute("Content-Type", "format") + && $this->headers->getAttribute("Content-Type", "format") == "flowed") + { + return true; + } + else return false; + } + /** + * Set the message prioirty in the mail client (don't rely on this) + * @param int The priority as a value between 1 (high) and 5 (low) + */ + public function setPriority($priority) + { + $priority = (int) $priority; + if ($priority > self::PRIORITY_LOW) $priority = self::PRIORITY_LOW; + if ($priority < self::PRIORITY_HIGH) $priority = self::PRIORITY_HIGH; + $label = array(1 => "High", 2 => "High", 3 => "Normal", 4 => "Low", 5 => "Low"); + $this->headers->set("X-Priority", $priority); + $this->headers->set("X-MSMail-Priority", $label[$priority]); + $this->headers->set("X-MimeOLE", "Produced by SwiftMailer " . $this->libVersion); + } + /** + * Request that the client send back a read-receipt (don't rely on this!) + * @param string Request address + */ + public function requestReadReceipt($request) + { + if ($request instanceof Swift_Address) $request = $request->build(); + if (!$request) + { + $this->headers->set("Disposition-Notification-To", null); + $this->headers->set("X-Confirm-Reading-To", null); + $this->headers->set("Return-Receipt-To", null); + } + else + { + $this->headers->set("Disposition-Notification-To", $request); + $this->headers->set("X-Confirm-Reading-To", $request); + $this->headers->set("Return-Receipt-To", $request); + } + } + /** + * Check if a read receipt has been requested for this message + * @return boolean + */ + public function wantsReadReceipt() + { + return $this->headers->has("Disposition-Notification-To"); + } + /** + * Get the current message priority + * Returns NULL if none set + * @return int + */ + public function getPriority() + { + if ($this->headers->has("X-Priority")) return $this->headers->get("X-Priority"); + else return null; + } + /** + * Alias for setData() + * @param mixed Body + */ + public function setBody($body) + { + $this->setData($body); + } + /** + * Alias for getData() + * @return mixed The document body + */ + public function getBody() + { + return $this->getData(); + } + /** + * Set the MIME warning message which is displayed to old clients + * @var string The full warning message (in 7bit ascii) + */ + public function setMimeWarning($text) + { + $this->mimeWarning = (string) $text; + } + /** + * Get the MIME warning which is displayed to old clients + * @return string + */ + public function getMimeWarning() + { + return $this->mimeWarning; + } + /** + * Attach a mime part or an attachment of some sort + * Any descendant of Swift_Message_Mime can be added safely (including other Swift_Message objects for mail forwarding!!) + * @param Swift_Message_Mime The document to attach + * @param string An identifier to use (one is returned otherwise) + * @return string The identifier for the part + */ + public function attach(Swift_Message_Mime $child, $id=null) + { + try { + switch ($child->getLevel()) + { + case Swift_Message_Mime::LEVEL_ALTERNATIVE: + $sign = (strtolower($child->getContentType()) == "text/plain") ? -1 : 1; + $id = $this->getReference("parent", "alternative")->addChild($child, $id, $sign); + $this->setReference("alternative", $id, $child); + break; + case Swift_Message_Mime::LEVEL_RELATED: + $id = "cid:" . $child->getContentId(); + $id = $this->getReference("parent", "related")->addChild($child, $id, 1); + $this->setReference("related", $id, $child); + break; + case Swift_Message_Mime::LEVEL_MIXED: default: + $id = $this->getReference("parent", "mixed")->addChild($child, $id, 1); + $this->setReference("mixed", $id, $child); + break; + } + $this->postAttachFixStructure(); + $this->fixContentType(); + return $id; + } catch (Swift_Message_MimeException $e) { + throw new Swift_Message_MimeException("Something went wrong whilst trying to move some MIME parts during an attach(). " . + "The MIME component threw an exception:<br />" . $e->getMessage()); + } + } + /** + * Remove a nested MIME part + * @param string The ID of the attached part + * @throws Swift_Message_MimeException If no such part exists + */ + public function detach($id) + { + try { + switch (true) + { + case array_key_exists($id, $this->references["alternative"]): + $this->getReference("parent", "alternative")->removeChild($id); + unset($this->references["alternative"][$id]); + break; + case array_key_exists($id, $this->references["related"]): + $this->getReference("parent", "related")->removeChild($id); + unset($this->references["related"][$id]); + break; + case array_key_exists($id, $this->references["mixed"]): + $this->getReference("parent", "mixed")->removeChild($id); + unset($this->references["mixed"][$id]); + break; + default: + throw new Swift_Message_MimeException("Unable to detach part identified by ID '" . $id . "' since it's not registered."); + break; + } + $this->postDetachFixStructure(); + $this->fixContentType(); + } catch (Swift_Message_MimeException $e) { + throw new Swift_Message_MimeException("Something went wrong whilst trying to move some MIME parts during a detach(). " . + "The MIME component threw an exception:<br />" . $e->getMessage()); + } + } + /** + * Sets the correct content type header by looking at what types of data we have set + */ + protected function fixContentType() + { + if (!empty($this->references["mixed"])) $this->setContentType("multipart/mixed"); + elseif (!empty($this->references["related"])) $this->setContentType("multipart/related"); + elseif (!empty($this->references["alternative"])) $this->setContentType("multipart/alternative"); + } + /** + * Move a branch of the tree, containing all it's MIME parts onto another branch + * @param string The content type on the branch itself + * @param string The content type which may exist in the branch's parent + * @param array The array containing all the nodes presently + * @param string The location of the branch now + * @param string The location of the branch after moving + * @param string The key to identify the branch by in it's new location + */ + protected function moveBranchIn($type, $nested_type, $from, $old_branch, $new_branch, $tag) + { + $new = new Swift_Message_Part(); + $new->setContentType($type); + $this->getReference("parent", $new_branch)->addChild($new, $tag, -1); + + switch ($new_branch) + { + case "related": $this->setReference("related", $tag, $new);//relatedRefs[$tag] = $new; + break; + case "mixed": $this->setReference("mixed", $tag, $new);//mixedRefs[$tag] = $new; + break; + } + + foreach ($from as $id => $ref) + { + if (!$ref) $ref = $this; + $sign = (strtolower($ref->getContentType()) == "text/plain" + || strtolower($ref->getContentType()) == $nested_type) ? -1 : 1; + switch ($new_branch) + { + case "related": $this->getReference("related", $tag)->addChild($ref, $id, $sign); + break; + case "mixed": $this->getReference("mixed", $tag)->addChild($ref, $id, $sign); + break; + } + $this->getReference("parent", $old_branch)->removeChild($id); + } + $this->setReference("parent", $old_branch, $new); //parentRefs[$old_branch] = $new; + } + /** + * Analyzes the mixing of MIME types in a mulitpart message an re-arranges if needed + * It looks complicated and long winded but the concept is pretty simple, even if putting it + * in code does me make want to cry! + */ + protected function postAttachFixStructure() + { + switch (true) + { + case (!empty($this->references["mixed"]) && !empty($this->references["related"]) && !empty($this->references["alternative"])): + if (!isset($this->references["related"]["_alternative"])) + { + $this->moveBranchIn( + "multipart/alternative", "multipart/alternative", $this->references["alternative"], "alternative", "related", "_alternative"); + } + if (!isset($this->references["mixed"]["_related"])) + { + $this->moveBranchIn( + "multipart/related", "multipart/alternative", $this->references["related"], "related", "mixed", "_related"); + } + break; + case (!empty($this->references["mixed"]) && !empty($this->references["related"])): + if (!isset($this->references["mixed"]["_related"])) + { + $this->moveBranchIn( + "multipart/related", "multipart/related", $this->references["related"], "related", "mixed", "_related"); + } + break; + case (!empty($this->references["mixed"]) && !empty($this->references["alternative"])): + if (!isset($this->references["mixed"]["_alternative"])) + { + $this->moveBranchIn( + "multipart/alternative", null, $this->references["alternative"], "alternative", "mixed", "_alternative"); + } + break; + case (!empty($this->references["related"]) && !empty($this->references["alternative"])): + if (!isset($this->references["related"]["_alternative"])) + { + $this->moveBranchIn( + "multipart/alternative", "multipart/alternative", $this->references["alternative"], "alternative", "related", "_alternative"); + } + break; + } + } + /** + * Move a branch further toward the top of the tree + * @param array The array containing MIME parts from the old branch + * @param string The name of the old branch + * @param string The name of the new branch + * @param string The key of the branch being moved + */ + protected function moveBranchOut($from, $old_branch, $new_branch, $tag) + { + foreach ($from as $id => $ref) + { + if (!$ref) $ref = $this; + $sign = (strtolower($ref->getContentType()) == "text/html" + || strtolower($ref->getContentType()) == "multipart/alternative") ? -1 : 1; + $this->getReference("parent", $new_branch)->addChild($ref, $id, $sign); + switch ($new_branch) + { + case "related": $this->getReference("related", $tag)->removeChild($id); + break; + case "mixed": $this->getReference("parent", $old_branch)->removeChild($id); + break; + } + } + $this->getReference("parent", $new_branch)->removeChild($tag); + $mixed = $this->getReference("parent", $new_branch);//parentRefs[$new_branch]; + $this->setReference("parent", $old_branch, $mixed);//parentRefs[$old_branch] = $mixed; + switch ($new_branch) + { + case "related": unset($this->references["related"][$tag]); + break; + case "mixed": unset($this->references["mixed"][$tag]); + break; + } + } + /** + * Analyzes the mixing of MIME types in a mulitpart message an re-arranges if needed + * It looks complicated and long winded but the concept is pretty simple, even if putting it + * in code does me make want to cry! + */ + protected function postDetachFixStructure() + { + switch (true) + { + case (!empty($this->references["mixed"]) && !empty($this->references["related"]) && !empty($this->references["alternative"])): + if (array_keys($this->references["related"]) == array("_alternative")) + { + $alt = $this->getReference("parent", "related")->getChild("_alternative"); + $this->getReference("parent", "mixed")->addChild($alt, "_alternative", -1); + $this->setReference("mixed", "_alternative", $alt);//mixedRefs["_alternative"] = $alt; + $this->getReference("parent", "related")->removeChild("_alternative"); + unset($this->references["related"]["_alternative"]); + $this->getReference("parent", "mixed")->removeChild("_related"); + unset($this->references["mixed"]["_related"]); + } + if (array_keys($this->references["mixed"]) == array("_related")) + { + $this->moveBranchOut($this->references["related"], "related", "mixed", "_related"); + } + break; + case (!empty($this->references["mixed"]) && !empty($this->references["related"])): + if (array_keys($this->references["mixed"]) == array("_related")) + { + $this->moveBranchOut($this->references["related"], "related", "mixed", "_related"); + } + if (isset($this->references["related"]["_alternative"])) + { + $this->detach("_alternative"); + } + break; + case (!empty($this->references["mixed"]) && !empty($this->references["alternative"])): + if (array_keys($this->references["mixed"]) == array("_alternative")) + { + $this->moveBranchOut($this->references["alternative"], "alternative", "mixed", "_alternative"); + } + break; + case (!empty($this->references["related"]) && !empty($this->references["alternative"])): + if (array_keys($this->references["related"]) == array("_alternative")) + { + $this->moveBranchOut($this->references["alternative"], "alternative", "related", "_alternative"); + } + break; + case (!empty($this->references["mixed"])): + if (isset($this->references["mixed"]["_related"])) $this->detach("_related"); + case (!empty($this->references["related"])): + if (isset($this->references["related"]["_alternative"]) || isset($this->references["mixed"]["_alternative"])) + $this->detach("_alternative"); + break; + } + } + /** + * Execute needed logic prior to compilation + */ + public function preBuild() + { + $data = $this->getData(); + if (!($enc = $this->getEncoding())) + { + $this->setEncoding("8bit"); + } + if ($this->getCharset() === null && !$this->numChildren()) + { + Swift_ClassLoader::load("Swift_Message_Encoder"); + if (is_string($data) && Swift_Message_Encoder::instance()->isUTF8($data)) + { + $this->setCharset("utf-8"); + } + elseif(is_string($data) && Swift_Message_Encoder::instance()->is7BitAscii($data)) + { + $this->setCharset("us-ascii"); + if (!$enc) $this->setEncoding("7bit"); + } + else $this->setCharset("iso-8859-1"); + } + elseif ($this->numChildren()) + { + if (!$this->getData()) + { + $this->setData($this->getMimeWarning()); + $this->setLineWrap(76); + } + + if ($this->getCharset() !== null) $this->setCharset(null); + if ($this->isFlowed()) $this->setFlowed(false); + $this->setEncoding("7bit"); + } + } +} diff --git a/modules/mondialrelay/AdminMondialRelay.php b/modules/mondialrelay/AdminMondialRelay.php index 6a1fd509f..a5bd52f48 100755 --- a/modules/mondialrelay/AdminMondialRelay.php +++ b/modules/mondialrelay/AdminMondialRelay.php @@ -59,17 +59,23 @@ class AdminMondialRelay extends AdminTab $errorListTicket = $MRCreateTicket->checkPreValidation(); - if (count($errorListTicket)) - { - $html .= '<div class="error">'. - $this->l('Thanks to kindly correct the following errors on '). + $titleType = array( + 'error' => $this->l('Thanks to kindly correct the following errors on '). ' <a href="index.php?tab=AdminContact&token='.Tools::getAdminToken('AdminContact'. (int)Tab::getIdFromClassName('AdminContact').(int)$this->context->id_employee).'" style="color:#f00;"> '. - $this->l('the contact page').'</a>:<ul>'; - foreach($errorListTicket as $type => $error) + $this->l('the contact page').'</a>:<ul>', + 'warn' => $this->l('Please take a look to this following warning, maybe the ticket won\'t be generated')); + + foreach($errorListTicket as $errorType => $errorList) + { + if (count($errorList)) + { + $html .= '<div class="MR_'.$errorType.'">'.$titleType[$errorType]; + foreach($errorList as $type => $error) $html .= '<li>'.$type.': '.$error.'</li>'; $html .= '</ul></div>'; } + } $html .= '<p>'.$this->l('All orders which have the state').' "<b>'.$order_state->name.'</b>" '. $this->l('will be available for sticker creation'); diff --git a/modules/mondialrelay/classes/MRCreateTickets.php b/modules/mondialrelay/classes/MRCreateTickets.php index 4f18d615d..66a4553e4 100755 --- a/modules/mondialrelay/classes/MRCreateTickets.php +++ b/modules/mondialrelay/classes/MRCreateTickets.php @@ -274,7 +274,7 @@ class MRCreateTickets implements IMondialRelayWSMethod { $this->_fields['list']['Enseigne']['value'] = Configuration::get('MR_ENSEIGNE_WEBSERVICE'); $this->_fields['list']['Expe_Langage']['value'] = Configuration::get('MR_LANGUAGE'); - $this->_fields['list']['Expe_Ad1']['value'] = Configuration::get('PS_MR_SHOP_NAME'); + $this->_fields['list']['Expe_Ad1']['value'] = Configuration::get('PS_SHOP_NAME'); $this->_fields['list']['Expe_Ad3']['value'] = Configuration::get('PS_SHOP_ADDR1'); // Deleted, cause to many failed for the process // $this->_fields['list']['Expe_Ad4']['value'] = Configuration::get('PS_SHOP_ADDR2'); @@ -331,7 +331,7 @@ class MRCreateTickets implements IMondialRelayWSMethod $tmp['NDossier']['value'] = $orderDetail['id_order']; $tmp['NClient']['value'] = $orderDetail['id_customer']; $tmp['Dest_Langage']['value'] = 'FR'; //Language::getIsoById($orderDetail['id_lang']); - $tmp['Dest_Ad1']['value'] = $deliveriesAddress->lastname; + $tmp['Dest_Ad1']['value'] = $deliveriesAddress->firstname.' '.$deliveriesAddress->lastname; $tmp['Dest_Ad2']['value'] = $deliveriesAddress->address2; $tmp['Dest_Ad3']['value'] = $deliveriesAddress->address1; $tmp['Dest_Ville']['value'] = $deliveriesAddress->city; @@ -342,7 +342,6 @@ class MRCreateTickets implements IMondialRelayWSMethod $tmp['Dest_Tel2']['value'] = $deliveriesAddress->phone_mobile; $tmp['Dest_Mail']['value'] = $customer->email; $tmp['Assurance']['value'] = $orderDetail['mr_ModeAss']; - if ($orderDetail['MR_Selected_Num'] != 'LD1' && $orderDetail['MR_Selected_Num'] != 'LDS') { $tmp['LIV_Rel_Pays']['value'] = $orderDetail['MR_Selected_Pays']; @@ -511,7 +510,7 @@ class MRCreateTickets implements IMondialRelayWSMethod */ public function checkPreValidation() { - $errorList = array(); + $errorList = array('error' => array(), 'warn' => array()); if (!$this->_mondialRelay) $this->_mondialRelay = new MondialRelay(); @@ -521,7 +520,7 @@ class MRCreateTickets implements IMondialRelayWSMethod 'value' => Configuration::get('MR_LANGUAGE'), 'error' => $this->_mondialRelay->l('Please check your language configuration')), 'Expe_Ad1' => array( - 'value' => Configuration::get('PS_MR_SHOP_NAME'), + 'value' => Configuration::get('PS_SHOP_NAME'), 'error' => $this->_mondialRelay->l('Please check your shop name configuration')), 'Expe_Ad3' => array( 'value' => Configuration::get('PS_SHOP_ADDR1'), @@ -531,7 +530,8 @@ class MRCreateTickets implements IMondialRelayWSMethod 'error' => $this->_mondialRelay->l('Please check your city configuration')), 'Expe_CP' => array( 'value' => Configuration::get('PS_SHOP_CODE'), - 'error' => $this->_mondialRelay->l('Please check your zipcode configuration')), + 'error' => $this->_mondialRelay->l('Please check your zipcode configuration'), + 'warn' => $this->_mondialRelay->l('It seems the layout of your zipcode country is not configured or you didn\'t set a right zipcode')), 'Expe_Pays' => array( 'value' => ((_PS_VERSION_ >= '1.4') ? Country::getIsoById(Configuration::get('PS_SHOP_COUNTRY_ID')) : @@ -546,16 +546,22 @@ class MRCreateTickets implements IMondialRelayWSMethod foreach($list as $name => $tab) { - $tab['value'] = strtoupper($tab['value']); + // Mac server make an empty string instead of a cleaned string + // TODO : test on windows and linux server + $cleanedString = MRTools::replaceAccentedCharacters($tab['value']); + $tab['value'] = !empty($cleanedString) ? strtoupper($cleanedString) : strtoupper($tab['value']); + if ($name == 'Expe_CP') { - if (!MRTools::checkZipcodeByCountry($tab['value'], array( - 'id_country' => Configuration::get('PS_COUNTRY_DEFAULT')))) - $errorList[$name] = $tab['error']; + if (!($zipcodeError = MRTools::checkZipcodeByCountry($tab['value'], array( + 'id_country' => Configuration::get('PS_COUNTRY_DEFAULT'))))) + $errorList['error'][$name] = $tab['error']; + else if ($zipcodeError < 0) + $errorList['warn'][$name] = $tab['warn']; } else if (isset($this->_fields['list'][$name]['regexValidation']) && (!preg_match($this->_fields['list'][$name]['regexValidation'], $tab['value'], $matches))) - $errorList[$name] = $tab['error']; + $errorList['error'][$name] = $tab['error']; } return $errorList; } diff --git a/modules/mondialrelay/classes/MRTools.php b/modules/mondialrelay/classes/MRTools.php index 20dc7984d..741014f97 100755 --- a/modules/mondialrelay/classes/MRTools.php +++ b/modules/mondialrelay/classes/MRTools.php @@ -64,14 +64,14 @@ class MRTools { $id_country = $params['id_country']; - $zipcodeFormat = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue(' + $zipcodeFormat = Db::getInstance()->getValue(' SELECT `zip_code_format` FROM `'._DB_PREFIX_.'country` WHERE `id_country` = '.(int)$id_country); - // Skip the cheking format if doesn't exist + // -1 to warn user that no layout exist if (!$zipcodeFormat) - return true; + return -1; $regxMask = str_replace( array('N', 'C', 'L'), diff --git a/modules/mondialrelay/config.xml b/modules/mondialrelay/config.xml index 81aca9169..486d3efa2 100755 --- a/modules/mondialrelay/config.xml +++ b/modules/mondialrelay/config.xml @@ -2,7 +2,7 @@ <module> <name>mondialrelay</name> <displayName><![CDATA[Mondial Relay]]></displayName> - <version><![CDATA[1.7.8]]></version> + <version><![CDATA[1.7.9]]></version> <description><![CDATA[Deliver in Relay points]]></description> <author><![CDATA[]]></author> <tab><![CDATA[shipping_logistics]]></tab> diff --git a/modules/mondialrelay/docs/install.pdf b/modules/mondialrelay/docs/install.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1565f4942972ba66d0164356d704723a73adfb1d GIT binary patch literal 616349 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%0DuJGg&Vp0>`e_Q5zj#TqU^*FFlwh7ycZ%0AvJOpSLFP{iYIHa@AIqfSzB$*2 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�<B!oB^x_qeFWuhMvaK;qH{JfEJ1gDZY-7d+ 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�q=6IGGKlR`h@Qx^7MgW`z)uX-IX6Y5{FKGt(z$D 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 H4gbFYVo#_h literal 0 HcmV?d00001 diff --git a/modules/mondialrelay/fr.php b/modules/mondialrelay/fr.php index 7d059d8d0..555651d85 100755 --- a/modules/mondialrelay/fr.php +++ b/modules/mondialrelay/fr.php @@ -4,6 +4,7 @@ global $_MODULE; $_MODULE = array(); $_MODULE['<{mondialrelay}prestashop>adminmondialrelay_d1908b9b04e81c4b6112e38b608c49af'] = 'Merci de bien vouloir corriger les erreurs suivantes dans'; $_MODULE['<{mondialrelay}prestashop>adminmondialrelay_ccce63109db30895153094de05c60fa5'] = 'la page de contact'; +$_MODULE['<{mondialrelay}prestashop>adminmondialrelay_7c5fd3d93bd19d81953db3b374997961'] = 'Merci de jeter un oeil à la mise en garde suivante, peut-être que l\'étiquette ne sera pas générée'; $_MODULE['<{mondialrelay}prestashop>adminmondialrelay_de21dc13e1ea638777fbfad49f88b332'] = 'Toutes les commandes qui auront un statut'; $_MODULE['<{mondialrelay}prestashop>adminmondialrelay_a0bf3c9ac2d785f053d883b8746e91ba'] = 'seront disponibles pour la création d\'ètiquette'; $_MODULE['<{mondialrelay}prestashop>adminmondialrelay_2345e28c9b93f368968be4781ed70f5c'] = 'Changer la configuration'; @@ -46,7 +47,9 @@ $_MODULE['<{mondialrelay}prestashop>mondialrelay_c888438d14855d7d96a2724ee9c306b $_MODULE['<{mondialrelay}prestashop>mondialrelay_07213a0161f52846ab198be103b5ab43'] = 'erreurs'; $_MODULE['<{mondialrelay}prestashop>mondialrelay_cb5e100e5a9a3e7f6d1fd97512215282'] = 'erreur'; $_MODULE['<{mondialrelay}prestashop>mondialrelay_350c1cc4343826a89f08a33bb49c6d98'] = 'Configuration du Module Mondial Relay'; -$_MODULE['<{mondialrelay}prestashop>mondialrelay_192a5439bcfb850e8885cd4b5e01ced4'] = 'Essayez de désactiver le cache et de forcer la compilation smarty si vous rencontrez le moindre problème après une mise à jour du module'; +$_MODULE['<{mondialrelay}prestashop>mondialrelay_5a2355a42ba3ab265701183c914467f2'] = 'Essayez de désactiver le cache et de forcer la compilation smarty'; +$_MODULE['<{mondialrelay}prestashop>mondialrelay_3de769f9a81eed916583d5b35c58dbdd'] = 'si vous rencontrez le moindre problème après une mise à jour du module'; +$_MODULE['<{mondialrelay}prestashop>mondialrelay_8f8b21bd013b38d1e3059557c22a57e7'] = 'Consulter le manuel pour vous guider dans la configuration de Mondial Relay'; $_MODULE['<{mondialrelay}prestashop>mondialrelay_d21a9f93917604d5490ad529a7cf1ff9'] = 'Pour créer un transporteur Mondial Relay'; $_MODULE['<{mondialrelay}prestashop>mondialrelay_c6a2e6af5fff47adb3afd780b97d9b4b'] = 'Remplissez et sauvegarder vos paramètres Mondial Relay'; $_MODULE['<{mondialrelay}prestashop>mondialrelay_94fbe32464fcfa902feed9f256439833'] = 'Créez un transporteur via le formulaire ‘’ajouter un transporteur’’ ci-dessous'; @@ -114,6 +117,7 @@ $_MODULE['<{mondialrelay}prestashop>mondialrelay_ef2a1f426c2c289ed5986c7636a5d69 $_MODULE['<{mondialrelay}prestashop>mondialrelay_80a0c205cd57b22fca7f174253870300'] = 'Heures d\'ouvertures'; $_MODULE['<{mondialrelay}prestashop>mondialrelay_2b56b60f878922093facd42284848a0c'] = 'Plus de détails'; $_MODULE['<{mondialrelay}prestashop>orderdetail_81b7b4587a2a3ea7a0d6bb1df3fbba54'] = 'Livraison à'; +$_MODULE['<{mondialrelay}prestashop>orderdetail_c2d05abc7f5ebdc72b6656df35038b43'] = 'Suivre mon colis sur le site de Mondial Relay'; $_MODULE['<{mondialrelay}prestashop>mrcreatetickets_a1c3470a944b9625cfb924fd15c8bdbf'] = 'Veuillez choisir au moins une commande'; $_MODULE['<{mondialrelay}prestashop>mrcreatetickets_dc41aac14af17f1d19fca5e3b9439e74'] = 'Cette clé'; $_MODULE['<{mondialrelay}prestashop>mrcreatetickets_306b346c19017609403424203ea3d720'] = 'est vide et doit être renseignée'; @@ -129,6 +133,7 @@ $_MODULE['<{mondialrelay}prestashop>mrcreatetickets_557595c2e17c9948a9448eb763ac $_MODULE['<{mondialrelay}prestashop>mrcreatetickets_017ca6b770ad53669a4eec82894dfcd3'] = 'Merci de vérifier la configuration de votre adresse 1'; $_MODULE['<{mondialrelay}prestashop>mrcreatetickets_3f79e1fc66b4f9cca7bd68cab176020d'] = 'Merci de vérifier la configuration de votre ville'; $_MODULE['<{mondialrelay}prestashop>mrcreatetickets_404665d9b65239985d59b30b3dcb26b5'] = 'Merci de vérifier la configuration de votre code postal'; +$_MODULE['<{mondialrelay}prestashop>mrcreatetickets_74cb73eddbe6eaf556023f943fc7e1fd'] = 'Il semble que le format du code postal ne soit pas configuré ou que vous n\'avez pas défini de code postal valide'; $_MODULE['<{mondialrelay}prestashop>mrcreatetickets_0b8a30478b9572b86718989d483fd88d'] = 'Merci de vérifier la configuration de votre pays'; $_MODULE['<{mondialrelay}prestashop>mrcreatetickets_7ddf2d94bf037b7d1088c0600ea589c3'] = 'Merci de vérifier la configuration de votre téléphone'; $_MODULE['<{mondialrelay}prestashop>mrcreatetickets_9c7ce7be9a2c593b24d448edb4f804e0'] = 'Merci de vérifier la configuration de votre email'; diff --git a/modules/mondialrelay/images/help.png b/modules/mondialrelay/images/help.png new file mode 100644 index 0000000000000000000000000000000000000000..04d4851da14b6d8ac63e336a58c3037bb9b1b64d GIT binary patch literal 2523 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 literal 0 HcmV?d00001 diff --git a/modules/mondialrelay/jquery-1.4.4.min.js b/modules/mondialrelay/jquery-1.4.4.min.js deleted file mode 100644 index 8f3ca2e2d..000000000 --- a/modules/mondialrelay/jquery-1.4.4.min.js +++ /dev/null @@ -1,167 +0,0 @@ -/*! - * jQuery JavaScript Library v1.4.4 - * http://jquery.com/ - * - * Copyright 2010, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2010, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Thu Nov 11 19:04:53 2010 -0500 - */ -(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h= -h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"|| -h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La, -"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this, -e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a, -"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+ -a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, -C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j, -s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this, -j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length}, -toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j=== --1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false; -if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--; -if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload", -b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&& -!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&& -l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z], -z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j, -s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v= -s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)|| -[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u, -false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"), -k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false, -scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent= -false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom= -1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display= -"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h= -c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando); -else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this, -a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e= -c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this, -a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan", -colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType=== -1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "), -l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this, -"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one"; -if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r= -a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true}, -attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&& -b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0}; -c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem, -arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid= -d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+ -c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b= -w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType=== -8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k=== -"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+ -d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), -fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| -d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this, -Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp= -c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U}; -var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!== -"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V, -xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired= -B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type=== -"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]=== -0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d, -a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d= -1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d=== -"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}}); -c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); -(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i, -[y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3]; -break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr, -q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h= -l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*")); -return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!== -B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/, -POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()=== -i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m= -i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g, -"")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n, -m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== -true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== -g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]- -0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n=== -"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== -i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]]; -if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m, -g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1; -for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"), -i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g); -n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&& -function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F|| -p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g= -t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition? -function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML; -c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})}, -not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h= -h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context): -c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a, -2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a, -b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&& -e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1, -"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= -c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, -wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, -prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, -this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); -return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null; -else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d= -c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a, -b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")): -this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append", -prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument|| -b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length- -1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script")))); -d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i, -jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true, -zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b), -h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b); -if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f= -d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left; -e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, -ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b=== -"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& -!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, -getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", -script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| -!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache= -false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset; -A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type", -b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& -c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| -c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]= -encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess", -[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"), -e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}}); -if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show", -3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay", -d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b, -d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)=== -"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L|| -1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, -d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* -Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)} -var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; -this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| -this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= -c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a=== -b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&& -h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle; -for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+= -parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px", -height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells= -f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a, -"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a, -e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&& -c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); -c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+ -b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); diff --git a/modules/mondialrelay/js/gmap.js b/modules/mondialrelay/js/gmap.js index e054ef5a2..a58b098f6 100644 --- a/modules/mondialrelay/js/gmap.js +++ b/modules/mondialrelay/js/gmap.js @@ -1336,6 +1336,14 @@ return result; } + /** + * Resize map + **/ + this.resize = function() + { + google.maps.event.trigger(this.getMap(), 'resize'); + } + /** * add markers (without address resolution) **/ diff --git a/modules/mondialrelay/js/jquery-1.6.4.min.js b/modules/mondialrelay/js/jquery-1.6.4.min.js new file mode 100644 index 000000000..3684c36b5 --- /dev/null +++ b/modules/mondialrelay/js/jquery-1.6.4.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.6.4 http://jquery.com/ | http://jquery.org/license */ +(function(a,b){function cu(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cr(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bA.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bX(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bW(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bP,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bW(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bW(a,c,d,e,"*",g));return l}function bV(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bL),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function by(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bt:bu;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bf(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function V(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(Q.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(w,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function D(){return!0}function C(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.4",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;B.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:H?function(a){return a==null?"":H.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?F.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(!b)return-1;if(I)return I.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=G.call(arguments,2),g=function(){return a.apply(c,f.concat(G.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){J["[object "+b+"]"]=b.toLowerCase()}),A=e.uaMatch(z),A.browser&&(e.browser[A.browser]=!0,e.browser.version=A.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?C=function(){c.removeEventListener("DOMContentLoaded",C,!1),e.ready()}:c.attachEvent&&(C=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",C),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g+"With"](this===b?d:this,[h])}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i=f.expando,j=typeof c=="string",k=a.nodeType,l=k?f.cache:a,m=k?a[f.expando]:a[f.expando]&&f.expando;if((!m||e&&m&&l[m]&&!l[m][i])&&j&&d===b)return;m||(k?a[f.expando]=m=++f.uuid:m=f.expando),l[m]||(l[m]={},k||(l[m].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?l[m][i]=f.extend(l[m][i],c):l[m]=f.extend(l[m],c);g=l[m],e&&(g[i]||(g[i]={}),g=g[i]),d!==b&&(g[f.camelCase(c)]=d);if(c==="events"&&!g[c])return g[i]&&g[i].events;j?(h=g[c],h==null&&(h=g[f.camelCase(c)])):h=g;return h}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e=f.expando,g=a.nodeType,h=g?f.cache:a,i=g?a[f.expando]:f.expando;if(!h[i])return;if(b){d=c?h[i][e]:h[i];if(d){d[b]||(b=f.camelCase(b)),delete d[b];if(!l(d))return}}if(c){delete h[i][e];if(!l(h[i]))return}var j=h[i][e];f.support.deleteExpando||!h.setInterval?delete h[i]:h[i]=null,j?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=j):g&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u,v;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(o);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(o);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(n," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=v:u&&(i=u)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.attr(a,b,""),a.removeAttribute(b),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(u&&f.nodeName(a,"button"))return u.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(u&&f.nodeName(a,"button"))return u.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==null?g:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabIndex=f.propHooks.tabIndex,v={get:function(a,c){var d;return f.prop(a,c)===!0||(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(u=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=/\.(.*)$/,x=/^(?:textarea|input|select)$/i,y=/\./g,z=/ /g,A=/[^\w\s.|`]/g,B=function(a){return a.replace(A,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=C;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=C);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),B).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete +t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,M(a.origType,a.selector),f.extend({},a,{handler:L,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,M(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?D:C):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=D;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=D;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=D,this.stopPropagation()},isDefaultPrevented:C,isPropagationStopped:C,isImmediatePropagationStopped:C};var E=function(a){var b=a.relatedTarget,c=!1,d=a.type;a.type=a.data,b!==this&&(b&&(c=f.contains(this,b)),c||(f.event.handle.apply(this,arguments),a.type=d))},F=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?F:E,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?F:E)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="submit"||c==="image")&&f(b).closest("form").length&&J("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&J("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var G,H=function(a){var b=f.nodeName(a,"input")?a.type:"",c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},I=function(c){var d=c.target,e,g;if(!!x.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=H(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:I,beforedeactivate:I,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&I.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&I.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",H(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in G)f.event.add(this,c+".specialChange",G[c]);return x.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return x.test(this.nodeName)}},G=f.event.special.change.filters,G.focus=G.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var K={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||C,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=w.exec(h),k="",j&&(k=j[0],h=h.replace(w,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,K[h]?(a.push(K[h]+k),h=h+k):h=(K[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+M(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+M(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var N=/Until$/,O=/^(?:parents|prevUntil|prevAll)/,P=/,/,Q=/^.[^:#\[\.,]*$/,R=Array.prototype.slice,S=f.expr.match.POS,T={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(V(this,a,!1),"not",a)},filter:function(a){return this.pushStack(V(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=S.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=S.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(U(c[0])||U(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=R.call(arguments);N.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!T[a]?f.unique(e):e,(this.length>1||P.test(d))&&O.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|object|embed|option|style)/i,bb=/checked\s*(?:[^=]|=\s*.checked.)/i,bc=/\/(java|ecma)script/i,bd=/^\s*<!(?:\[CDATA\[|\-\-)/,be={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!be[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bb.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bf(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bl)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i;b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!ba.test(a[0])&&(f.support.checkClone||!bb.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean +(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)g[h]&&bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=be[l]||be._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bk(k[i]);else bk(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bc.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bm=/alpha\([^)]*\)/i,bn=/opacity=([^)]*)/,bo=/([A-Z]|^ms)/g,bp=/^-?\d+(?:px)?$/i,bq=/^-?\d/,br=/^([\-+])=([\-+.\de]+)/,bs={position:"absolute",visibility:"hidden",display:"block"},bt=["Left","Right"],bu=["Top","Bottom"],bv,bw,bx;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bv(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=br.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bv)return bv(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return by(a,b,d);f.swap(a,bs,function(){e=by(a,b,d)});return e}},set:function(a,b){if(!bp.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bm,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bv(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bw=function(a,c){var d,e,g;c=c.replace(bo,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bx=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bp.test(d)&&bq.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bv=bw||bx,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bz=/%20/g,bA=/\[\]$/,bB=/\r?\n/g,bC=/#.*$/,bD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bE=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bF=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bG=/^(?:GET|HEAD)$/,bH=/^\/\//,bI=/\?/,bJ=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bK=/^(?:select|textarea)/i,bL=/\s+/,bM=/([?&])_=[^&]*/,bN=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bO=f.fn.load,bP={},bQ={},bR,bS,bT=["*/"]+["*"];try{bR=e.href}catch(bU){bR=c.createElement("a"),bR.href="",bR=bR.href}bS=bN.exec(bR.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bO)return bO.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bJ,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bK.test(this.nodeName)||bE.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bB,"\r\n")}}):{name:b.name,value:c.replace(bB,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?bX(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),bX(a,b);return a},ajaxSettings:{url:bR,isLocal:bF.test(bS[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bT},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bV(bP),ajaxTransport:bV(bQ),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?bZ(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=b$(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bD.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bC,"").replace(bH,bS[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bL),d.crossDomain==null&&(r=bN.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bS[1]&&r[2]==bS[2]&&(r[3]||(r[1]==="http:"?80:443))==(bS[3]||(bS[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bW(bP,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bG.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bI.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bM,"$1_="+x);d.url=y+(y===d.url?(bI.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bT+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bW(bQ,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){s<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bz,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cq("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cr(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cq("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cq("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cr(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cj.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=ck.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cq("show",1),slideUp:cq("hide",1),slideToggle:cq("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return d.step(a)}var d=this,e=f.fx;this.startTime=cn||co(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&f.timers.push(g)&&!cl&&(cl=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cn||co(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cl),cl=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cs=/^t(?:able|d|h)$/i,ct=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cu(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cs.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=ct.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!ct.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cu(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cu(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNaN(j)?i:j}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/modules/mondialrelay/mondialrelay.js b/modules/mondialrelay/mondialrelay.js index 0c34688af..259902c83 100755 --- a/modules/mondialrelay/mondialrelay.js +++ b/modules/mondialrelay/mondialrelay.js @@ -511,6 +511,8 @@ function PS_MRDisplayRelayPoint(json, blockContent, carrier_id) { numberDisplayed = 0; + // Disable Gmap for IE user + if (!$.browser.msie) PS_MRCreateGmap(carrier_id); blockContent.fadeOut('fast', function() { @@ -541,7 +543,13 @@ function PS_MRDisplayRelayPoint(json, blockContent, carrier_id) // Store all the object content to prevent an ajax request relayPointDataContainers[json.success[relayPoint].Num] = json.success[relayPoint]; ++numberDisplayed; + // Display popup for IE user + if (!$.browser.msie) PS_MRAddGMapMarker(carrier_id, json.success[relayPoint].Num, contentBlockid); + else + $('#' + contentBlockid).children('p').click(function() { + PS_MROpenPopupDetail(json.success[relayPoint].permaLinkDetail); + }); } } PS_MRHandleSelectedRelayPoint(); @@ -684,6 +692,9 @@ function PS_MRGmapPlaceViewOnMarker($map, marker, relayNum) callback: function() { PS_MRDisplayClickedGmapWindow(marker, relayNum, $map); + + // Make dancing markers in Firefox will use the CPU to 100 % + if (!$.browser.mozilla) (function(m) { setTimeout(function() diff --git a/modules/mondialrelay/mondialrelay.php b/modules/mondialrelay/mondialrelay.php index e5733790f..fdabd7a30 100755 --- a/modules/mondialrelay/mondialrelay.php +++ b/modules/mondialrelay/mondialrelay.php @@ -59,7 +59,7 @@ class MondialRelay extends Module { $this->name = 'mondialrelay'; $this->tab = 'shipping_logistics'; - $this->version = '1.7.8'; + $this->version = '1.7.9'; parent::__construct(); @@ -114,20 +114,20 @@ class MondialRelay extends Module { // AdminOrders id_tab $id_parent = 3; - + /*tab install */ $result = Db::getInstance()->getRow(' - SELECT position - FROM `' . _DB_PREFIX_ . 'tab` + SELECT position + FROM `' . _DB_PREFIX_ . 'tab` WHERE `id_parent` = '.(int)$id_parent.' ORDER BY `'. _DB_PREFIX_ .'tab`.`position` DESC'); $pos = (isset($result['position'])) ? $result['position'] + 1 : 0; Db::getInstance()->execute(' - INSERT INTO ' . _DB_PREFIX_ . 'tab - (id_parent, class_name, position, module) - VALUES('.(int)$id_parent.', "AdminMondialRelay", "'.(int)($pos).'", "mondialrelay")'); + INSERT INTO ' . _DB_PREFIX_ . 'tab + (id_parent, class_name, position, module) + VALUES('.(int)$id_parent.', "AdminMondialRelay", "'.(int)($pos).'", "mondialrelay")'); $id_tab = Db::getInstance()->Insert_ID(); @@ -200,7 +200,8 @@ class MondialRelay extends Module if (_PS_VERSION_ >= '1.4' && (!$this->registerHook('processCarrier') || !$this->registerHook('orderDetail') || - !$this->registerHook('orderDetailDisplayed'))) + !$this->registerHook('orderDetailDisplayed') || + !$this->registerHook('paymentTop'))) return false; return true; } @@ -316,15 +317,15 @@ class MondialRelay extends Module private function _update_v1_4() { Db::getInstance()->execute(' - UPDATE `'._DB_PREFIX_.'carrier` - SET - `shipping_external` = 0, - `need_range` = 1, - `external_module_name` = - "mondialrelay", - `shipping_method` = 1 - WHERE `id_carrier` - IN (SELECT `id_carrier` + UPDATE `'._DB_PREFIX_.'carrier` + SET + `shipping_external` = 0, + `need_range` = 1, + `external_module_name` = + "mondialrelay", + `shipping_method` = 1 + WHERE `id_carrier` + IN (SELECT `id_carrier` FROM `'._DB_PREFIX_.'mr_method`)'); } @@ -384,7 +385,7 @@ class MondialRelay extends Module $protocol = (Configuration::get('PS_SSL_ENABLED') || (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off')) ? 'https://' : 'http://'; - $endURL = __PS_BASE_URI__.'/modules/mondialrelay/'; + $endURL = __PS_BASE_URI__.'modules/mondialrelay/'; if (method_exists('Tools', 'getShopDomainSsl')) self::$moduleURL = $protocol.Tools::getShopDomainSsl().$endURL; @@ -402,12 +403,12 @@ class MondialRelay extends Module if ($overloadCurrent) return ' <script type="text/javascript"> - currentJquery = jQuery.noConflict(true); + currentJquery = jQuery.noConflict(true); </script> - <script type="text/javascript" src="'.self::$moduleURL.'/js/jquery-1.6.4.min.js"></script>'; + <script type="text/javascript" src="'.self::$moduleURL.'js/jquery-1.6.4.min.js"></script>'; return ' - <script type="text/javascript" src="'.self::$moduleURL.'/js/jquery-1.6.4.min.js"></script> + <script type="text/javascript" src="'.self::$moduleURL.'js/jquery-1.6.4.min.js"></script> <script type="text/javascript"> MRjQuery = jQuery.noConflict(true); </script>'; @@ -417,8 +418,8 @@ class MondialRelay extends Module { DB::getInstance()->execute(' UPDATE `'._DB_PREFIX_.'mr_selected` - SET `id_order` = '.$params['order']->id.' - WHERE `id_cart` = '.$params['cart']->id); + SET `id_order` = '.(int)$params['order']->id.' + WHERE `id_cart` = '.(int)$params['cart']->id); } public function hookBackOfficeHeader() @@ -426,16 +427,17 @@ class MondialRelay extends Module $cssFilePath = $this->_path.'style.css'; $jsFilePath= $this->_path.'mondialrelay.js'; - $ret = ''; + $ret = '<script type="text/javascript" src="'.$jsFilePath.'"></script>'; if (Tools::getValue('tab') == 'AdminMondialRelay') - $ret = ' + $ret .= self::getJqueryCompatibility(true); + + $ret .= ' <link type="text/css" rel="stylesheet" href="'.$cssFilePath.'" /> <script type="text/javascript"> var _PS_MR_MODULE_DIR_ = "'.self::$moduleURL.'"; var mrtoken = "'.self::$MRBackToken.'"; - </script> - <script type="text/javascript" src="'.$jsFilePath.'"></script>'. - self::getJqueryCompatibility(true); + </script>'; + return $ret; return $ret; } @@ -477,13 +479,14 @@ class MondialRelay extends Module if (!Validate::isUnsignedInt(Tools::getValue('id_order_state'))) $this->_postErrors[] = $this->l('Invalid order state'); } + /* else if (Tools::isSubmit('PS_MRSubmitFieldPersonalization')) { $addr1 = Tools::getValue('Expe_ad1'); if (!preg_match('#^[0-9A-Z_\-\'., /]{2,32}$#', strtoupper($addr1), $match)) $this->_postErrors[] = $this->l('The Main address submited hasn\'t a good format'); + }*/ } - } private function _postProcess() { @@ -530,12 +533,13 @@ class MondialRelay extends Module public function hookOrderDetailDisplayed($params) { $res = Db::getInstance()->getRow(' - SELECT s.`MR_Selected_LgAdr1`, s.`MR_Selected_LgAdr2`, s.`MR_Selected_LgAdr3`, s.`MR_Selected_LgAdr4`, s.`MR_Selected_CP`, s.`MR_Selected_Ville`, s.`MR_Selected_Pays`, s.`MR_Selected_Num` + SELECT s.`MR_Selected_LgAdr1`, s.`MR_Selected_LgAdr2`, s.`MR_Selected_LgAdr3`, s.`MR_Selected_LgAdr4`, s.`MR_Selected_CP`, s.`MR_Selected_Ville`, s.`MR_Selected_Pays`, s.`MR_Selected_Num`, s.`url_suivi` FROM `'._DB_PREFIX_.'mr_selected` s WHERE s.`id_cart` = '.$params['order']->id_cart); if ((!$res) OR ($res['MR_Selected_Num'] == 'LD1') OR ($res['MR_Selected_Num'] == 'LDS')) return ''; $this->context->smarty->assign('mr_addr', $res['MR_Selected_LgAdr1'].($res['MR_Selected_LgAdr1'] ? ' - ' : '').$res['MR_Selected_LgAdr2'].($res['MR_Selected_LgAdr2'] ? ' - ' : '').$res['MR_Selected_LgAdr3'].($res['MR_Selected_LgAdr3'] ? ' - ' : '').$res['MR_Selected_LgAdr4'].($res['MR_Selected_LgAdr4'] ? ' - ' : '').$res['MR_Selected_CP'].' '.$res['MR_Selected_Ville'].' - '.$res['MR_Selected_Pays']); + $smarty->assign('mr_url', $res['url_suivi']); return $this->display(__FILE__, 'orderDetail.tpl'); } @@ -548,7 +552,7 @@ class MondialRelay extends Module /* ** Update the carrier id to use the new one if changed - */ + */ public function hookupdateCarrier($params) { if ((int)($params['id_carrier']) != (int)($params['carrier']->id)) @@ -557,14 +561,14 @@ class MondialRelay extends Module INSERT INTO `'._DB_PREFIX_.'mr_method` (mr_Name, mr_Pays_list, mr_ModeCol, mr_ModeLiv, mr_ModeAss, id_carrier) ( - SELECT - mr_Name, - mr_Pays_list, - mr_ModeCol, - mr_ModeLiv, - mr_ModeAss, - "'.(int)$params['carrier']->id.'" - FROM `'._DB_PREFIX_.'mr_method` + SELECT + mr_Name, + mr_Pays_list, + mr_ModeCol, + mr_ModeLiv, + mr_ModeAss, + "'.(int)$params['carrier']->id.'" + FROM `'._DB_PREFIX_.'mr_method` WHERE id_carrier ='.(int)$params['id_carrier'].')'); } } @@ -606,9 +610,8 @@ class MondialRelay extends Module Configuration::get('MR_LANGUAGE') == '') return ''; - $address = new Address((int)($this->context->cart->id_address_delivery)); + $address = new Address($this->context->cart->id_address_delivery); $id_zone = Address::getZoneById((int)($address->id)); - //$country = new Country((int)($address->id_country)); $carriersList = self::_getCarriers(); // Check if the defined carrier are ok @@ -629,18 +632,19 @@ class MondialRelay extends Module unset($carriersList[$k]); } } - + $preSelectedRelay = $this->getRelayPointSelected($params['cart']->id); - $this->context->smarty->assign( array( + $this->context->smarty->assign(array( 'one_page_checkout' => (Configuration::get('PS_ORDER_PROCESS_TYPE') ? Configuration::get('PS_ORDER_PROCESS_TYPE') : 0), 'new_base_dir' => self::$moduleURL, 'MRToken' => self::$MRFrontToken, 'carriersextra' => $carriersList, 'preSelectedRelay' => isset($preSelectedRelay['MR_selected_num']) ? $preSelectedRelay['MR_selected_num'] : '', - 'jQueryOverload' => self::getJqueryCompatibility())); + 'jQueryOverload' => self::getJqueryCompatibility(false) + )); - return $this->display(__FILE__, 'mondialrelay.tpl'); - } + return $this->display(__FILE__, 'mondialrelay.tpl'); + } public function getContent() { @@ -666,10 +670,17 @@ class MondialRelay extends Module self::mrDelete((int)($_GET['delete_mr'])); $this->_html .= '<h2>'.$this->l('Configure Mondial Relay Rate Module').'</h2> - - <div class="MR_warn">'. - $this->l('Try to turn off the cache and put the force compilation to on if you have any problems with the module after an update').' + + <div class="MR_warn"> + <a style="color:#383838;text-decoration:underline" href="index.php?tab=AdminPerformance&token='.Tools::getAdminToken('AdminPerformance'.(int)(Tab::getIdFromClassName('AdminPerformance')).(int)($cookie->id_employee)).'"> + '.$this->l('Try to turn off the cache and put the force compilation to on').' + </a> '.$this->l('if you have any problems with the module after an update').'. </div> + <div class="MR_hint"> + '.$this->l('Have a look to the following HOW-TO to help you to configure the Mondial Relay module').' + <b><a href="'.self::$moduleURL.'/docs/install.pdf"><img width="20" src="'.self::$moduleURL.'images/pdf_icon.jpg" /></a></b> + </div> + <br /> <fieldset> <legend> <img src="../modules/mondialrelay/images/logo.gif" />'.$this->l('To create a Mondial Relay carrier'). @@ -1165,14 +1176,14 @@ class MondialRelay extends Module LEFT JOIN `'._DB_PREFIX_.'mr_selected` mrs ON (mrs.`id_cart` = o.`id_cart`) LEFT JOIN `'._DB_PREFIX_.'mr_method` mr - ON (mr.`id_carrier` = ca.`id_carrier`) + ON (mr.`id_mr_method` = mrs.`id_method`) LEFT JOIN `'._DB_PREFIX_.'customer` c ON (c.`id_customer` = o.`id_customer`) WHERE ( - SELECT moh.`id_order_state` - FROM `'._DB_PREFIX_.'order_history` moh - WHERE moh.`id_order` = o.`id_order` - ORDER BY moh.`date_add` DESC LIMIT 1) = '.(int)($id_order_state); + SELECT moh.`id_order_state` + FROM `'._DB_PREFIX_.'order_history` moh + WHERE moh.`id_order` = o.`id_order` + ORDER BY moh.`date_add` DESC LIMIT 1) = '.(int)($id_order_state); } public static function ordersSQLQuery1_3($id_order_state) @@ -1190,19 +1201,19 @@ class MondialRelay extends Module mrs.`MR_Selected_Pays` as MR_Selected_Pays, mrs.`exp_number` as exp_number, mr.`mr_ModeCol` as mr_ModeCol, mr.`mr_ModeLiv` as mr_ModeLiv, mr.`mr_ModeAss` as mr_ModeAss FROM `'._DB_PREFIX_.'orders` o - LEFT JOIN `'._DB_PREFIX_.'carrier` ca + LEFT JOIN `'._DB_PREFIX_.'carrier` ca ON (ca.`id_carrier` = o.`id_carrier` AND ca.`name` = "mondialrelay") - LEFT JOIN `'._DB_PREFIX_.'mr_selected` mrs + LEFT JOIN `'._DB_PREFIX_.'mr_selected` mrs ON (mrs.`id_cart` = o.`id_cart`) LEFT JOIN `'._DB_PREFIX_.'mr_method` mr - ON (mr.`id_carrier` = ca.`id_carrier`) + ON (mr.`id_mr_method` = mrs.`id_method`) LEFT JOIN `'._DB_PREFIX_.'customer` c ON (c.`id_customer` = o.`id_customer`) WHERE ( - SELECT moh.`id_order_state` - FROM `'._DB_PREFIX_.'order_history` moh - WHERE moh.`id_order` = o.`id_order` + SELECT moh.`id_order_state` + FROM `'._DB_PREFIX_.'order_history` moh + WHERE moh.`id_order` = o.`id_order` ORDER BY moh.`date_add` DESC LIMIT 1) = '.(int)($id_order_state); } @@ -1248,7 +1259,7 @@ class MondialRelay extends Module return $statCode[$code]; return $this->l('This error isn\'t referred : ') . $code; } - + public function getRelayPointSelected($id_cart) { return Db::getInstance()->getRow(' @@ -1256,7 +1267,7 @@ class MondialRelay extends Module FROM `'._DB_PREFIX_.'mr_selected` s WHERE s.`id_cart` = '.(int)$id_cart); } - + public function isMondialRelayCarrier($id_carrier) { return Db::getInstance()->getRow(' @@ -1264,11 +1275,11 @@ class MondialRelay extends Module FROM `'._DB_PREFIX_.'mr_method` WHERE `id_carrier` = '.(int)$id_carrier); } - + public function hookpaymentTop($params) { - if ($this->isMondialRelayCarrier($params['cart']->id_carrier) && - !$this->getRelayPointSelected($params['cart']->id)) + if ($this->isMondialRelayCarrier($params['cart']->id_carrier) && + !$this->getRelayPointSelected($params['cart']->id)) $params['cart']->id_carrier = 0; } } diff --git a/modules/mondialrelay/mondialrelay.tpl b/modules/mondialrelay/mondialrelay.tpl index 1b3a50b3c..64a374e11 100755 --- a/modules/mondialrelay/mondialrelay.tpl +++ b/modules/mondialrelay/mondialrelay.tpl @@ -1,5 +1,5 @@ {* -* 2007-2011 PrestaShop +* 2007-2011 PrestaShop * * NOTICE OF LICENSE * @@ -26,18 +26,17 @@ {$jQueryOverload} -<link href="{$new_base_dir}/style.css" rel="stylesheet" type="text/css" media="all" /> - +<link href="{$new_base_dir}/style.css" rel="stylesheet" type="text/css" media="all" /> <script type="text/javascript"> // Global JS Value var _PS_MR_MODULE_DIR_ = "{$new_base_dir}"; var mrtoken = "{$MRToken}"; - var PS_MROPC = {($one_page_checkout && (isset($opc) && $opc)) ? 1 : 0}; + var PS_MROPC = {$one_page_checkout}; var PS_MRTranslationList = new Array(); var PS_MRCarrierMethodList = new Array(); var PS_MRSelectedRelayPoint = {literal}{{/literal}'carrier_id': 0, 'relayPointNum': 0{literal}}{/literal}; var PS_MRPreSelectedRelay = '{$preSelectedRelay}'; - + PS_MRTranslationList['Select'] = "{l s='Select' mod='mondialrelay'}"; PS_MRTranslationList['Selected'] = "{l s='Selected' mod='mondialrelay'}"; PS_MRTranslationList['errorSelection'] = "{l s='Please choose a relay point' mod='mondialrelay'}"; @@ -51,9 +50,9 @@ <script type="text/javascript"> - $(document).ready(function() + $(document).ready(function() {literal}{{/literal} - // Bind id_carrierX to an ajax call + // Bind id_carrierX to an ajax call {foreach from=$carriersextra item=carrier name=myLoop} $('#id_carrier' + {$carrier.id_carrier}).click(function() {literal}{{/literal} @@ -74,4 +73,3 @@ {literal}}{/literal}) {literal}}{/literal}); </script> - diff --git a/modules/mondialrelay/orderDetail.tpl b/modules/mondialrelay/orderDetail.tpl index d533fae55..419503f27 100755 --- a/modules/mondialrelay/orderDetail.tpl +++ b/modules/mondialrelay/orderDetail.tpl @@ -23,7 +23,9 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} - {if $mr_addr} <p id="dateofdelivery"><b>{l s='Delivery to' mod='mondialrelay'}</b> {$mr_addr}</p> +{if $mr_url} +<a href="{$mr_url}" target="_blank">{l s='Follow my package on Mondial Relay website' mod='mondialrelay'}.</a> +{/if} {/if} diff --git a/modules/mondialrelay/style.css b/modules/mondialrelay/style.css index 934b5e7a5..1a79b689d 100755 --- a/modules/mondialrelay/style.css +++ b/modules/mondialrelay/style.css @@ -294,10 +294,6 @@ a.PS_MRSelectRelayPointButton:hover background:url(images/selectRelayPoint.png) no-repeat 0px -25px; } -.PS_MRGmapDefaultPosition -{ -} - .PS_MRGmapDefaultPosition { display:none; @@ -340,3 +336,39 @@ div#PS_MRPersonalizedFields .MR_date tr.p {background-color:#e9e9e9; height:9px;} .MR_date td.g {font-weight:bold;} .MR_date td.d {} + +/* 1.3 compatibility*/ +.MR_warn +{ + border: 1px solid #D3C200; + background-color: #FFFAC6; + color: #383838; + font-weight: 700; + margin: 0 0 10px 0; + line-height: 20px; + padding: 10px 15px; +} + +/* 1.3 compatibility*/ +.MR_error +{ + border: 1px solid #EC9B9B; + background-color: #FAE2E3; + color: #383838; + font-weight: 700; + margin: 0 0 10px 0; + line-height: 20px; + padding: 10px 15px; +} + +/* 1.3 - 1.4 compatibility*/ +.MR_hint +{ + margin-top: 4px; + margin-bottom: 2px; + border: 1px solid #268CCD; + padding: 8px 6px 8px 34px; + color: #383838; + background: #F1F9FF url(images/help.png) no-repeat 6px 5px; + border-radius: 3px; +} \ No newline at end of file diff --git a/modules/moneybookers/de.php b/modules/moneybookers/de.php index b9acf59d4..fa2ef1e4f 100644 --- a/modules/moneybookers/de.php +++ b/modules/moneybookers/de.php @@ -17,13 +17,13 @@ $_MODULE['<{moneybookers}prestashop>moneybookers_fa214007826415a21a8456e3e09f999 $_MODULE['<{moneybookers}prestashop>moneybookers_088b74050a381d98fca38d5990b097be'] = 'Sie nutzen zur Zeit die Standard-E-Mail-Adresse von Moneybookers, Sie müssen Ihre eigene E-Mail-Adresse verwenden'; $_MODULE['<{moneybookers}prestashop>moneybookers_7593ded970377fe25371c952eb944770'] = 'Kann Inhalt holen'; $_MODULE['<{moneybookers}prestashop>moneybookers_b863542eebcb27fa230b647b5dd07819'] = 'Konto-Bestätigung fehlgeschlagen, Ihre E-Mail könnte falsch sein'; -$_MODULE['<{moneybookers}prestashop>moneybookers_d70c5b5767846906e0abe68498db887b'] = 'E-Mail-Aktivierung erfolgreich, Sie können nun Ihr Kennwort bestâtigen'; +$_MODULE['<{moneybookers}prestashop>moneybookers_d70c5b5767846906e0abe68498db887b'] = 'E-Mail-Aktivierung erfolgreich, Sie können nun Ihr Geheimwort bestâtigen'; $_MODULE['<{moneybookers}prestashop>moneybookers_87ef564ed1574eda7e77b4012eef0b85'] = 'Unmöglich,den Aktivierungs-Server zu kontaktieren, bitte versuchen Sie es später'; $_MODULE['<{moneybookers}prestashop>moneybookers_7757ea03f2a0893e36c7916a2ad07ef8'] = 'Das E-Mail-Feld ist erforderlich'; -$_MODULE['<{moneybookers}prestashop>moneybookers_aa1c444c2ee2f620d5b349fedfa68ba2'] = 'Kennwortbestätigung fehlgeschlagen, max. Versuchszahl überschritten (3 pro Stunde)'; -$_MODULE['<{moneybookers}prestashop>moneybookers_cdbef58d093e0ff38e13686a669e9fee'] = 'Kennwortbestätigung fehlgeschlagen, Ihr Kennwort könnte falsch sein'; -$_MODULE['<{moneybookers}prestashop>moneybookers_cd1dfa342c3c11c17ede212e6429ca01'] = 'Kontoaktivierung erfolgreich, Kennwort ok'; -$_MODULE['<{moneybookers}prestashop>moneybookers_2e531f9ad978a2a1a88a00ae0d4dc78e'] = 'Das Kennwortfeld ist erforderlich'; +$_MODULE['<{moneybookers}prestashop>moneybookers_aa1c444c2ee2f620d5b349fedfa68ba2'] = 'Geheimwortbestätigung fehlgeschlagen, max. Versuchszahl überschritten (3 pro Stunde)'; +$_MODULE['<{moneybookers}prestashop>moneybookers_cdbef58d093e0ff38e13686a669e9fee'] = 'Geheimwortbestätigung fehlgeschlagen, Ihr Geheimwort könnte falsch sein'; +$_MODULE['<{moneybookers}prestashop>moneybookers_cd1dfa342c3c11c17ede212e6429ca01'] = 'Kontoaktivierung erfolgreich, Geheimwort ok'; +$_MODULE['<{moneybookers}prestashop>moneybookers_2e531f9ad978a2a1a88a00ae0d4dc78e'] = 'Das Geheimwortfeld ist erforderlich'; $_MODULE['<{moneybookers}prestashop>moneybookers_bcfaccebf745acfd5e75351095a5394a'] = 'Disable'; $_MODULE['<{moneybookers}prestashop>moneybookers_e4abb55720e3790fe55982fec858d213'] = 'Linke Spalte'; $_MODULE['<{moneybookers}prestashop>moneybookers_f16072c370ef52db2e329a87b5e7177a'] = 'Rechte Spalte'; @@ -62,12 +62,12 @@ $_MODULE['<{moneybookers}prestashop>moneybookers_71b5b9efebe9c2f73fad6dd1849b431 $_MODULE['<{moneybookers}prestashop>moneybookers_ece6bf0de28bb0442df6e3a1fd7657d4'] = 'Wenn Sie Hilfe benötigen, lesen Sie das Aktivierungshandbuch'; $_MODULE['<{moneybookers}prestashop>moneybookers_32e70e9f3def9ebdcdbc872b739b919f'] = 'Sie können Moneybookers paiement mit dem Test-Account testaccount2@moneybookers.com und das geheime Wort MBTest testen.'; $_MODULE['<{moneybookers}prestashop>moneybookers_f5944cfc42cfb20119407c59a97bd9d1'] = 'Vorsicht, dies ist nur ein Test-Account: Sie erhalten keine Geld, wenn Sie diesen Test-Account auf Ihrem Shop zu nutzen. So empfangen Sie Geld, müssen Sie den Login und das Passwort Ihrer persönlichen Moneybookers-Konto zu verwenden!'; -$_MODULE['<{moneybookers}prestashop>moneybookers_0b65457508cf73c9ed8c96f56b8910ce'] = 'Kennwortbestätigung'; -$_MODULE['<{moneybookers}prestashop>moneybookers_e44efbda9396a5641d730f0ac4866e52'] = 'Ihr Kennwort wurde aktiviert'; +$_MODULE['<{moneybookers}prestashop>moneybookers_0b65457508cf73c9ed8c96f56b8910ce'] = 'Geheimwortbestätigung'; +$_MODULE['<{moneybookers}prestashop>moneybookers_e44efbda9396a5641d730f0ac4866e52'] = 'Ihr Geheimwort wurde aktiviert'; $_MODULE['<{moneybookers}prestashop>moneybookers_98061690dbf6a359c5b2aeb84d0eb317'] = 'Sie müssen'; -$_MODULE['<{moneybookers}prestashop>moneybookers_7360d9333103eec04f2d91fa513a1f46'] = 'bestätigen Sie Ihr Kennwort'; -$_MODULE['<{moneybookers}prestashop>moneybookers_7986dbc3b2bf0e8f72a328c094981836'] = 'Bitte geben Sie das gleiche Kennwort ein, das Sie zum Öffnen Ihres Moneybookers Kontos benutzen:'; -$_MODULE['<{moneybookers}prestashop>moneybookers_22f2d26badcc700d11b93f57dc96d386'] = 'Mein Kennwort bestätigen'; +$_MODULE['<{moneybookers}prestashop>moneybookers_7360d9333103eec04f2d91fa513a1f46'] = 'das Geheimwort bestätigen'; +$_MODULE['<{moneybookers}prestashop>moneybookers_7986dbc3b2bf0e8f72a328c094981836'] = 'Bitte geben Sie das Geheimwort ein, welches Sie in Ihrem Moneybookerskonto unter Händlereinstellungen hinterlegt haben:'; +$_MODULE['<{moneybookers}prestashop>moneybookers_22f2d26badcc700d11b93f57dc96d386'] = 'Mein Geheimwort bestätigen'; $_MODULE['<{moneybookers}prestashop>moneybookers_cbcd58fce9759ea6e84c86ed92a3db44'] = 'Wie lautet das Geheimwort?'; $_MODULE['<{moneybookers}prestashop>moneybookers_ef3cefa901bd32ea6aa2d0f6900b7725'] = 'Das Geheimwort unterscheidet sich vom Passwort. Es ist dazu da, um die Transmission von Ihrem Server zu entschlüsseln.'; $_MODULE['<{moneybookers}prestashop>moneybookers_e1674c7b15040ce09b9615714eb3e787'] = 'Warum das Geheimwort sich vom Passwort unterscheiden soll'; diff --git a/modules/paypal/config.xml b/modules/paypal/config.xml index 4153164f5..218b28d97 100755 --- a/modules/paypal/config.xml +++ b/modules/paypal/config.xml @@ -2,7 +2,7 @@ <module> <name>paypal</name> <displayName><![CDATA[PayPal]]></displayName> - <version><![CDATA[2.8.3]]></version> + <version><![CDATA[2.8.5]]></version> <description><![CDATA[Accepts payments by credit cards (CB, Visa, MasterCard, Amex, Aurore, Cofinoga, 4 stars) with PayPal.]]></description> <author><![CDATA[]]></author> <tab><![CDATA[payments_gateways]]></tab> diff --git a/modules/paypal/confirm.tpl b/modules/paypal/confirm.tpl index a794d0f22..d330d169b 100644 --- a/modules/paypal/confirm.tpl +++ b/modules/paypal/confirm.tpl @@ -58,7 +58,7 @@ <a href="{$link->getPageLink('order', true, NULL, "step=3")}" class="button_large">{l s='Return' mod='paypal'}</a><br /><br /> <span style="color: red;">{l s='Session expired, please go back and try again' mod='paypal'}</span> {else} - <a href="{$link->getPageLink('order', true, NULL, "step=3")}" class="button_large">{l s='Other payment methods' mod='paypal'}</a> + <a href="{$link->getPageLink('order', true, NULL, "step=3")}" class="button_large">{l s='Other payment methods' mod='paypal'}</a> <input type="submit" name="submitPayment" value="{l s='I confirm my order' mod='paypal'}" class="exclusive_large" /> {/if} </p> diff --git a/modules/paypal/confirmation.tpl b/modules/paypal/confirmation.tpl index 1ba79647f..e43b4c3cb 100644 --- a/modules/paypal/confirmation.tpl +++ b/modules/paypal/confirmation.tpl @@ -1,5 +1,5 @@ {* -* 2007-2011 PrestaShop +* 2007-2011 PrestaShop * * NOTICE OF LICENSE * diff --git a/modules/paypal/error.tpl b/modules/paypal/error.tpl index 77af46812..c97004915 100644 --- a/modules/paypal/error.tpl +++ b/modules/paypal/error.tpl @@ -1,5 +1,5 @@ {* -* 2007-2011 PrestaShop +* 2007-2011 PrestaShop * * NOTICE OF LICENSE * diff --git a/modules/paypal/express/login.tpl b/modules/paypal/express/login.tpl index 85a175aef..ed0cb2401 100644 --- a/modules/paypal/express/login.tpl +++ b/modules/paypal/express/login.tpl @@ -1,5 +1,5 @@ {* -* 2007-2011 PrestaShop +* 2007-2011 PrestaShop * * NOTICE OF LICENSE * diff --git a/modules/paypal/express/paypalexpress.php b/modules/paypal/express/paypalexpress.php index eb7b2b548..3cc2fc44b 100644 --- a/modules/paypal/express/paypalexpress.php +++ b/modules/paypal/express/paypalexpress.php @@ -43,8 +43,8 @@ class PaypalExpress extends Paypal return false; // Making request - $returnURL = Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/paypal/express/submit.php'; - $cancelURL = Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'order.php'; + $returnURL = PayPal::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/paypal/express/submit.php'; + $cancelURL = PayPal::getShopDomainSsl(true, true).__PS_BASE_URI__.'order.php'; $paymentAmount = (float)$cart->getOrderTotal(); $currencyCodeType = strval($currency->iso_code); $paymentType = Configuration::get('PAYPAL_CAPTURE') == 1 ? 'Authorization' : 'Sale'; diff --git a/modules/paypal/express/submit.php b/modules/paypal/express/submit.php index 1a95540c6..5d1c1b2f0 100644 --- a/modules/paypal/express/submit.php +++ b/modules/paypal/express/submit.php @@ -112,7 +112,7 @@ function displayConfirm() 'ppToken' => strval(Context::getContext()->cookie->paypal_token), 'cust_currency' => Context::getContext()->cart->id_currency, 'currencies' => $ppExpress->getCurrency((int)Context::getContext()->cart->id_currency), - 'total' => Context::getContext()->cart->getOrderTotal(true, Cart::BOTH), + 'total' => Context::getContext()->cart->getOrderTotal(true, PayPal::BOTH), 'this_path_ssl' => Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/'. $ppExpress->name.'/', 'payerID' => $payerID, 'mode' => 'express/' @@ -133,7 +133,7 @@ function submitConfirm() die('No currency'); elseif (!$payerID = Tools::htmlentitiesUTF8(strval(Tools::getValue('payerID')))) die('No payer ID'); - elseif (!Context::getContext()->cart->getOrderTotal(true, Cart::BOTH)) + elseif (!Context::getContext()->cart->getOrderTotal(true, PayPal::BOTH)) die('Empty cart'); $ppExpress->makePayPalAPIValidation(Context::getContext()->cookie, Context::getContext()->cart, $currency, $payerID, 'express'); @@ -344,7 +344,8 @@ function displayAccount() displayAccount(); die('Not logged'); }*/ -if (!Context::getContext()->cart->getOrderTotal(true, Cart::BOTH)) + +if (!Context::getContext()->cart->getOrderTotal(true, PayPal::BOTH)) die('Empty cart'); // No token, we need to get one by making PayPal Authorisation diff --git a/modules/paypal/integral_evolution/redirect.php b/modules/paypal/integral_evolution/redirect.php index 0822cd454..515c74cd1 100644 --- a/modules/paypal/integral_evolution/redirect.php +++ b/modules/paypal/integral_evolution/redirect.php @@ -87,11 +87,11 @@ $smarty->assign(array( 'shipping_address' => $shippingAddress, 'shipping_country' => $shippingCountry, 'shipping_state' => $shippingState, - 'amount' => (float)($cart->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING)), + 'amount' => (float)($cart->getOrderTotal(true, PayPal::BOTH_WITHOUT_SHIPPING)), 'customer' => $customer, - 'total' => (float)($cart->getOrderTotal(true, Cart::BOTH)), - 'shipping' => Tools::ps_round((float)($cart->getOrderShippingCost()) + (float)($cart->getOrderTotal(true, Cart::ONLY_WRAPPING)), 2), - 'discount' => $cart->getOrderTotal(true, Cart::ONLY_DISCOUNTS), + 'total' => (float)($cart->getOrderTotal(true, PayPal::BOTH)), + 'shipping' => Tools::ps_round((float)($cart->getOrderShippingCost()) + (float)($cart->getOrderTotal(true, PayPal::ONLY_WRAPPING)), 2), + 'discount' => $cart->getOrderTotal(true, PayPal::ONLY_DISCOUNTS), 'business' => $business, 'currency_module' => $currency_module, 'cart_id' => (int)($cart->id).'_'.pSQL($cart->secure_key), @@ -99,11 +99,17 @@ $smarty->assign(array( 'paypal_id' => (int)($paypal->id), 'header' => $header, 'template' => 'Template'.Configuration::get('PAYPAL_TEMPLATE'), - 'url' => Tools::getShopDomain(true, true).__PS_BASE_URI__, + 'url' => PayPal::getShopDomain(true, true).__PS_BASE_URI__, 'paymentaction' => (Configuration::get('PAYPAL_CAPTURE') ? 'authorization' : 'sale') )); +if (substr(_PS_VERSION_, 0, 3) == '1.3') + $smarty->assign('jquery', 'jquery-1.2.6.pack.js'); +else + $smarty->assign('jquery', 'jquery-1.4.4.min.js'); + + if (is_file(_PS_THEME_DIR_.'modules/paypal/integral_evolution/redirect.tpl')) $smarty->display(_PS_THEME_DIR_.'modules/'.$paypal->name.'/integral_evolution/redirect.tpl'); else diff --git a/modules/paypal/integral_evolution/redirect.tpl b/modules/paypal/integral_evolution/redirect.tpl index 6d14c2654..8a4486572 100644 --- a/modules/paypal/integral_evolution/redirect.tpl +++ b/modules/paypal/integral_evolution/redirect.tpl @@ -26,7 +26,7 @@ <html> <head> - <script type="text/javascript" src="{$url}js/jquery/jquery-1.4.4.min.js"></script> + <script type="text/javascript" src="{$url}js/jquery/{$jquery}"></script> </head> <body> <p>{$redirect_text}<br /><a href="javascript:history.go(-1);">{$cancel_text}</a></p> diff --git a/modules/paypal/payment/paypalpayment.php b/modules/paypal/payment/paypalpayment.php index 005db96ea..e7eda7b5f 100644 --- a/modules/paypal/payment/paypalpayment.php +++ b/modules/paypal/payment/paypalpayment.php @@ -46,8 +46,8 @@ class PaypalPayment extends Paypal // Making request $vars = '?fromPayPal=1'; - $returnURL = Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/paypal/payment/submit.php'.$vars; - $cancelURL = Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'order.php'; + $returnURL = PayPal::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/paypal/payment/submit.php'.$vars; + $cancelURL = PayPal::getShopDomainSsl(true, true).__PS_BASE_URI__.'order.php'; $paymentAmount = (float)($cart->getOrderTotal()); $currencyCodeType = strval($currency->iso_code); $paymentType = Configuration::get('PAYPAL_CAPTURE') == 1 ? 'Authorization' : 'Sale'; @@ -68,7 +68,7 @@ class PaypalPayment extends Paypal $country = new Country((int)$address->id_country); if ($address->id_state) $state = new State((int)$address->id_state); - $discounts = (float)($cart->getOrderTotal(true, Cart::ONLY_DISCOUNTS)); + $discounts = (float)($cart->getOrderTotal(true, PayPal::ONLY_DISCOUNTS)); if ($discounts == 0) { if ($params['cart']->id_customer) diff --git a/modules/paypal/payment/submit.php b/modules/paypal/payment/submit.php index 2236a44d8..09a75c929 100644 --- a/modules/paypal/payment/submit.php +++ b/modules/paypal/payment/submit.php @@ -1,6 +1,6 @@ <?php /* -* 2007-2011 PrestaShop +* 2007-2011 PrestaShop * * NOTICE OF LICENSE * @@ -95,7 +95,7 @@ function displayConfirm() 'logo' => $ppPayment->getLogo(), 'cust_currency' => Context::getContext()->cart->id_currency, 'currency' => $ppPayment->getCurrency((int)Context::getContext()->cart->id_currency), - 'total' => Context::getContext()->cart->getOrderTotal(true, Cart::BOTH), + 'total' => Context::getContext()->cart->getOrderTotal(true, PayPal::BOTH), 'this_path_ssl' => Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/'. $ppPayment->name.'/', 'mode' => 'payment/' )); @@ -116,7 +116,7 @@ function submitConfirm() } elseif (!$id_currency = (int)(Tools::getValue('currency_payement'))) die('No currency'); - elseif (!Context::getContext()->cart->getOrderTotal(true, Cart::BOTH)) + elseif (!Context::getContext()->cart->getOrderTotal(true, PayPal::BOTH)) die('Empty cart'); $currency = new Currency((int)($id_currency)); if (!Validate::isLoadedObject($currency)) @@ -133,7 +133,7 @@ function validOrder() header('location:../../../'); exit; die('Not logged'); } - elseif (!Context::getContext()->cart->getOrderTotal(true, Cart::BOTH)) + elseif (!Context::getContext()->cart->getOrderTotal(true, PayPal::BOTH)) die('Empty cart'); if (!$token = Tools::htmlentitiesUTF8(strval(Tools::getValue('token')))) { @@ -153,7 +153,7 @@ function validOrder() if (!Context::getContext()->customer->isLogged(true)) die('Not logged'); -elseif (!Context::getContext()->cart->getOrderTotal(true, Cart::BOTH)) +elseif (!Context::getContext()->cart->getOrderTotal(true, PayPal::BOTH)) die('Empty cart'); // No submit, confirmation page diff --git a/modules/paypal/paypal.php b/modules/paypal/paypal.php index efc425f03..1dcdf168d 100644 --- a/modules/paypal/paypal.php +++ b/modules/paypal/paypal.php @@ -1,6 +1,6 @@ <?php /* -* 2007-2011 PrestaShop +* 2007-2011 PrestaShop * * NOTICE OF LICENSE * @@ -23,11 +23,11 @@ * @version Release: $Revision: 7091 $ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA -*/ +*/ if (!defined('_PS_VERSION_')) exit; - + define('_PAYPAL_INTEGRAL_', 0); define('_PAYPAL_OPTION_PLUS_', 1); define('_PAYPAL_INTEGRAL_EVOLUTION_', 2); @@ -35,13 +35,13 @@ define('_PAYPAL_INTEGRAL_EVOLUTION_', 2); class PayPal extends PaymentModule { private $_html = ''; - + public function __construct() { $this->name = 'paypal'; $this->tab = 'payments_gateways'; - $this->version = '2.8.3'; - + $this->version = '2.8.5'; + $this->currencies = true; $this->currencies_mode = 'radio'; @@ -78,7 +78,7 @@ class PayPal extends PaymentModule $this->warning .= Configuration::get('PS_PREACTIVATION_PAYPAL_WARNING'); } } - + public function install() { /* Install and register on hook */ @@ -92,14 +92,14 @@ class PayPal extends PaymentModule OR !$this->registerHook('cancelProduct') OR !$this->registerHook('adminOrder')) return false; - + if (file_exists(_PS_ROOT_DIR_.'/modules/paypalapi/paypalapi.php') AND !Configuration::get('PAYPAL_NEW')) { include_once(_PS_ROOT_DIR_.'/modules/paypalapi/paypalapi.php'); $paypalapi = new PaypalAPI(); return $this->_checkAndUpdateFromOldVersion(true); } - + /* Set database */ if (!Db::getInstance()->execute('CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'paypal_order` ( @@ -111,7 +111,7 @@ class PayPal extends PaymentModule PRIMARY KEY (`id_order`) ) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8')) return false; - + /* Set configuration */ Configuration::updateValue('PAYPAL_SANDBOX', 1); Configuration::updateValue('PAYPAL_BUSINESS', 'paypal@prestashop.com'); @@ -147,10 +147,10 @@ class PayPal extends PaymentModule copy(dirname(__FILE__).'/../../img/os/'.Configuration::get('PS_OS_PAYPAL').'.gif', dirname(__FILE__).'/../../img/os/'.(int)$orderState->id.'.gif'); Configuration::updateValue('PAYPAL_OS_AUTHORIZATION', (int)$orderState->id); } - + return true; } - + public function uninstall() { /* Delete all configurations */ @@ -165,23 +165,23 @@ class PayPal extends PaymentModule Configuration::deleteByName('PAYPAL_TEMPLATE'); Configuration::deleteByName('PAYPAL_CAPTURE'); Configuration::deleteByName('PAYPAL_DEBUG_MODE'); - + return parent::uninstall(); } - + public function getContent() { - $this->_html .= '<h2>'.$this->l('PayPal').'</h2>'; - + $this->_html .= '<h2>'.$this->l('PayPal').'</h2>'; + $this->_postProcess(); $this->_setPayPalSubscription(); if (file_exists(_PS_ROOT_DIR_.'/modules/paypalapi/paypalapi.php')) $this->_html .= '<div class="warning warn"><h3>'.$this->l('All features of Paypal API module are be include in this new module. In order to don\'t have any conflict, please don\'t use and remove PayPalAPI module.').'</h3></div>'; $this->_setConfigurationForm(); - + return $this->_html; } - + public function hookPayment($params) { if (!$this->active) @@ -208,7 +208,7 @@ class PayPal extends PaymentModule else die($this->l('No valid payment method selected')); } - + public function hookShoppingCartExtra($params) { if (!$this->active) @@ -220,7 +220,7 @@ class PayPal extends PaymentModule return $this->display(__FILE__, 'express/shopping_cart.tpl'); } } - + public function hookPaymentReturn($params) { if (!$this->active) @@ -228,7 +228,7 @@ class PayPal extends PaymentModule return $this->display(__FILE__, 'confirmation.tpl'); } - + public function hookRightColumn($params) { $this->context->smarty->assign('iso_code', Tools::strtolower($this->context->language)); @@ -240,7 +240,7 @@ class PayPal extends PaymentModule { return $this->hookRightColumn($params); } - + public function hookBackBeforePayment($params) { if (!$this->active) @@ -258,7 +258,7 @@ class PayPal extends PaymentModule Tools::redirect('modules/paypal/express/submit.php?confirm=1&token='.$token.'&payerID='.$payerID); } } - + public function hookAdminOrder($params) { if (Tools::isSubmit('paypal')) @@ -288,7 +288,7 @@ class PayPal extends PaymentModule <img src="'._PS_IMG_.'admin/ok.gif" alt="" title="" /> '.$message.' </div>'; } - + if ($this->_needValidation((int)$params['id_order']) AND $this->_isPayPalAPIAvailable()) { $this->_html .= '<br /> @@ -302,7 +302,7 @@ class PayPal extends PaymentModule $this->_postProcess(); $this->_html .= '</fieldset>'; } - + if ($this->_needCapture((int)$params['id_order']) AND $this->_isPayPalAPIAvailable()) { $this->_html .= '<br /> @@ -316,7 +316,7 @@ class PayPal extends PaymentModule $this->_postProcess(); $this->_html .= '</fieldset>'; } - + if ($this->_canRefund((int)$params['id_order']) AND $this->_isPayPalAPIAvailable()) { $this->_html .= '<br /> @@ -331,10 +331,10 @@ class PayPal extends PaymentModule $this->_postProcess(); $this->_html .= '</fieldset>'; } - + return $this->_html; } - + public function hookCancelProduct($params) { if (Tools::isSubmit('generateDiscount')) @@ -353,10 +353,10 @@ class PayPal extends PaymentModule $id_transaction = $this->_getTransactionId((int)($order->id)); if (!$id_transaction) return false; - + $products = $order->getProducts(); $amt = $products[(int)($order_detail->id)]['product_price_wt'] * (int)($_POST['cancelQuantity'][(int)($order_detail->id)]); - + $response = $this->_makeRefund($id_transaction, $order->id, (float)($amt)); $message = $this->l('Cancel products result:').'<br>'; foreach ($response AS $k => $value) @@ -381,11 +381,11 @@ class PayPal extends PaymentModule $currency = new Currency((int)($id_currency)); $iso_currency = $currency->iso_code; $token = $cookie->paypal_token; - $total = (float)($cart->getOrderTotal(true, Cart::BOTH)); + $total = (float)($cart->getOrderTotal(true, PayPal::BOTH)); $paymentType = Configuration::get('PAYPAL_CAPTURE') == 1 ? 'Authorization' : 'Sale'; $serverName = urlencode($_SERVER['SERVER_NAME']); $bn = ($type == 'express' ? 'ECS' : 'ECM'); - $notifyURL = urlencode(Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/paypal/ipn.php'); + $notifyURL = urlencode(PayPal::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/paypal/ipn.php'); // Getting address if (isset($cookie->id_cart) AND $cookie->id_cart) @@ -402,7 +402,7 @@ class PayPal extends PaymentModule // Making request $request='&TOKEN='.urlencode($token).'&PAYERID='.urlencode($payerID).'&PAYMENTACTION='.$paymentType.'&AMT='.$total.'&CURRENCYCODE='.$iso_currency.'&IPADDRESS='.$serverName.'&NOTIFYURL='.$notifyURL.'&BUTTONSOURCE=PRESTASHOP_'.$bn.$requestAddress ; - $discounts = (float)$cart->getOrderTotal(true, Cart::ONLY_DISCOUNTS); + $discounts = (float)$cart->getOrderTotal(true, PayPal::ONLY_DISCOUNTS); if ($discounts == 0) { $products = $cart->getProducts(); @@ -424,7 +424,7 @@ class PayPal extends PaymentModule $products = $cart->getProducts(); $description = 0; for ($i = 0; $i < sizeof($products); $i++) - $description .= ($description == ''?'':', ').$products[$i]['cart_quantity']." x ".$products[$i]['name'].(isset($products[$i]['attributes'])?' - '.$products[$i]['attributes']:'').(isset($products[$i]['instructions'])?' - '.$products[$i]['instructions']:'') ; + $description .= ($description == ''?'':', ').$products[$i]['cart_quantity']." x ".$products[$i]['name'].(isset($products[$i]['attributes'])?' - '.$products[$i]['attributes']:'').(isset($products[$i]['instructions'])?' - '.$products[$i]['instructions']:'') ; $request .= '&ORDERDESCRIPTION='.urlencode(substr($description, 0, 120)); } @@ -446,6 +446,9 @@ class PayPal extends PaymentModule $ppExpress->displayPayPalAPIError($ppExpress->l('PayPal return error.', 'submit'), $logs); } + + + // Making log $id_transaction = $result['TRANSACTIONID']; if (Configuration::get('PAYPAL_CAPTURE')) @@ -470,20 +473,22 @@ class PayPal extends PaymentModule $id_order_state = Configuration::get('PS_OS_ERROR'); } + // Call payment validation method - $this->validateOrder($id_cart, $id_order_state, (float)($cart->getOrderTotal(true, Cart::BOTH)), $this->displayName, $message, array('transaction_id' => $id_transaction, 'payment_status' => $result['PAYMENTSTATUS'], 'pending_reason' => $result['PENDINGREASON']), $id_currency, false, $cart->secure_key); - + $this->validateOrder($id_cart, $id_order_state, (float)($cart->getOrderTotal(true, PayPal::BOTH)), $this->displayName, $message, array('transaction_id' => $id_transaction, 'payment_status' => $result['PAYMENTSTATUS'], 'pending_reason' => $result['PENDINGREASON']), $id_currency, false, $cart->secure_key); + // Clean cookie unset($cookie->paypal_token); - + // Displaying output $order = new Order((int)($this->currentOrder)); Tools::redirect('index.php?controller=order-confirmation&id_cart='.(int)($id_cart).'&id_module='.(int)($this->id).'&id_order='.(int)($this->currentOrder).'&key='.$order->secure_key); - + } - - public function validateOrder($id_cart, $id_order_state, $amountPaid, $paymentMethod = 'Unknown', $message = NULL, - $extraVars = array(), $currency_special = NULL, $dont_touch_amount = false, $secure_key = false, Shop $shop = null) + + public function validateOrder($id_cart, $id_order_state, $amountPaid, $paymentMethod = 'Unknown', + $message = NULL, $extraVars = array(), $currency_special = NULL, $dont_touch_amount = false, + $secure_key = false, Shop $shop = null) { if (!$this->active) return; @@ -493,41 +498,41 @@ class PayPal extends PaymentModule { $this->pcc->transaction_id = (isset($extraVars['transaction_id']) ? $extraVars['transaction_id'] : ''); - } + } parent::validateOrder($id_cart, $id_order_state, $amountPaid, $paymentMethod, $message, $extraVars, $currency_special, $dont_touch_amount, $secure_key); - + if (array_key_exists('transaction_id', $extraVars) AND array_key_exists('payment_status', $extraVars)) $this->_saveTransaction($id_cart, $extraVars); } - + public function getPayPalURL() { return 'www'.(Configuration::get('PAYPAL_SANDBOX') ? '.sandbox' : '').'.paypal.com'; } - + public function getPaypalIntegralEvolutionUrl() { if (Configuration::get('PAYPAL_SANDBOX')) return 'https://'.$this->getPayPalURL().'/cgi-bin/acquiringweb'; return 'https://securepayments.paypal.com/acquiringweb?cmd=_hosted-payment'; } - + public function getPaypalStandardUrl() { return 'https://'.$this->getPayPalURL().'/cgi-bin/webscr'; } - + public function getAPIURL() { return 'api-3t'.(Configuration::get('PAYPAL_SANDBOX') ? '.sandbox' : '').'.paypal.com'; } - + public function getAPIScript() { return '/nvp'; } - + public function getL($key) { $translations = array( @@ -557,7 +562,7 @@ class PayPal extends PaymentModule return $key; return $translations[$key]; } - + public function getLogo($ppExpress = false, $vertical = false) { if ($ppExpress) @@ -609,14 +614,14 @@ class PayPal extends PaymentModule return _MODULE_DIR_.$this->name.'/img/integral_evolution'.($vertical ? '_vertical' : '').'.png'; return _MODULE_DIR_.$this->name.'/img/PayPal_mark_60x38.gif'; } - + public function getCountryCode() { $address = new Address($this->context->cart->id_address_invoice); $country = new Country($address->id_country); return $country->iso_code; } - + public function displayPayPalAPIError($message, $log = false) { $send = true; @@ -648,30 +653,30 @@ class PayPal extends PaymentModule include_once(dirname(__FILE__).'/../../footer.php'); die; } - + private function _saveTransaction($id_cart, $extraVars) { $cart = new Cart((int)($id_cart)); if (Validate::isLoadedObject($cart) AND $cart->OrderExists()) { $id_order = Db::getInstance()->getValue(' - SELECT `id_order` - FROM `'._DB_PREFIX_.'orders` + SELECT `id_order` + FROM `'._DB_PREFIX_.'orders` WHERE `id_cart` = '.(int)$cart->id); - + Db::getInstance()->execute(' - INSERT INTO `'._DB_PREFIX_.'paypal_order` (`id_order`, `id_transaction`, `payment_method`, `payment_status`, `capture`) + INSERT INTO `'._DB_PREFIX_.'paypal_order` (`id_order`, `id_transaction`, `payment_method`, `payment_status`, `capture`) VALUES ('.(int)$id_order.', \''.pSQL($extraVars['transaction_id']).'\', '.(int)Configuration::get('PAYPAL_PAYMENT_METHOD').', \''.pSQL($extraVars['payment_status']).((isset($extraVars['pending_reason']) AND $extraVars['pending_reason'] == 'authorization') ? '_authorization' : '').'\', '.(int)(Configuration::get('PAYPAL_CAPTURE')).')'); } } - + private function _canRefund($id_order) { if (!(int)$id_order) return false; $paypal_order = Db::getInstance()->getRow(' - SELECT * - FROM `'._DB_PREFIX_.'paypal_order` + SELECT * + FROM `'._DB_PREFIX_.'paypal_order` WHERE `id_order` = '.(int)$id_order); if (!is_array($paypal_order) OR !sizeof($paypal_order)) return false; @@ -679,27 +684,27 @@ class PayPal extends PaymentModule return false; return true; } - + private function _needValidation($id_order) { if (!(int)$id_order) return false; $order = Db::getInstance()->getRow(' - SELECT `payment_method`, `payment_status` - FROM `'._DB_PREFIX_.'paypal_order` + SELECT `payment_method`, `payment_status` + FROM `'._DB_PREFIX_.'paypal_order` WHERE `id_order` = '.(int)$id_order); if (!$order) return false; return $order['payment_status'] == 'Pending' AND $order['payment_method'] == _PAYPAL_INTEGRAL_EVOLUTION_; } - + private function _needCapture($id_order) { if (!(int)$id_order) return false; $result = Db::getInstance()->getRow(' - SELECT `payment_method`, `payment_status`, `capture` - FROM `'._DB_PREFIX_.'paypal_order` + SELECT `payment_method`, `payment_status`, `capture` + FROM `'._DB_PREFIX_.'paypal_order` WHERE `id_order` = '.(int)($id_order).' AND `capture` = 1'); if (!isset($result['payment_method'])) return false; @@ -707,11 +712,11 @@ class PayPal extends PaymentModule return false; return true; } - + private function _setConfigurationForm() { $this->_html .= ' - <form method="post" action="'.htmlentities($_SERVER['REQUEST_URI']).'"> + <form method="post" action="'.htmlentities($_SERVER['REQUEST_URI']).'"> <script type="text/javascript"> var pos_select = '.(($tab = (int)Tools::getValue('tabs')) ? $tab : '0').'; </script> @@ -720,15 +725,15 @@ class PayPal extends PaymentModule <input type="hidden" name="tabs" id="tabs" value="0" /> <div class="tab-pane" id="tab-pane-1" style="width:100%;"> <div class="tab-page" id="step1"> - <h4 class="tab">'.$this->l('Solution').'</h2> + <h4 class="tab">'.$this->l('Solution').'</h4> '.$this->_getSolutionTabHtml().' </div> <div class="tab-page" id="step2"> - <h4 class="tab">'.$this->l('Settings').'</h2> + <h4 class="tab">'.$this->l('Settings').'</h4> '.$this->_getSettingsTabHtml().' </div> <div class="tab-page" id="step3"> - <h4 class="tab">'.$this->l('Logos and personalization').'</h2> + <h4 class="tab">'.$this->l('Logos and personalization').'</h4> '.$this->_getPersonalizationsTabHtml().' </div> </div> @@ -739,20 +744,20 @@ class PayPal extends PaymentModule </script> </form>'; } - + private function _getSolutionTabHtml() { $paymentMethod = (int)(Tools::getValue('payment_method', Configuration::get('PAYPAL_PAYMENT_METHOD'))); $paypalExpress = (int)(Tools::isSubmit('paypal_express') ? 1 : Configuration::get('PAYPAL_EXPRESS_CHECKOUT')); $paypalDebug = (int)(Tools::isSubmit('paypal_debug') ? 1 : Configuration::get('PAYPAL_DEBUG_MODE')); - + $link = 'http://altfarm.mediaplex.com/ad/ck/3484-23403-8030-88?ID=PROCPRESTA'; $lang = $this->context->language; if (strtolower($lang->iso_code) == 'es') $link = 'http://altfarm.mediaplex.com/ad/ck/3484-34334-12439-1'; else if (strtolower($lang->iso_code) == 'it') $link = 'https://www.paypal-business.it/paypalpro.asp'; - + return ' <h2>'.$this->l('Solution').'</h2> <h3>'.$this->l('Choose a solution:').'</h3> @@ -773,24 +778,24 @@ class PayPal extends PaymentModule '.$this->l('To use any PayPal solution, you need to set up API parameters in the « Settings » Tab').' </div>'; } - + private function _getSettingsTabHtml() { $lang = $this->context->language; $sandboxMode = (int)(Tools::getValue('sandbox_mode', Configuration::get('PAYPAL_SANDBOX'))); $paypalCapture = (int)(Tools::getValue('paypal_capture', Configuration::get('PAYPAL_CAPTURE'))); - + $html = ' <h2>'.$this->l('Settings').'</h2> <label>'.$this->l('Sandbox mode (tests)').':</label> <div class="margin-form" style="padding-top:2px;"> - <input type="radio" name="sandbox_mode" id="sandbox_mode_1" value="1" '.($sandboxMode ? 'checked="checked" ' : '').'/> <label for="sandbox_mode_1" class="t">'.$this->l('Active').'</label> + <input type="radio" name="sandbox_mode" id="sandbox_mode_1" value="1" '.($sandboxMode ? 'checked="checked" ' : '').'/> <label for="sandbox_mode_1" class="t">'.$this->l('Active').'</label> <input type="radio" name="sandbox_mode" id="sandbox_mode_0" value="0" style="margin-left:15px;" '.(!$sandboxMode ? 'checked="checked" ' : '').'/> <label for="sandbox_mode_0" class="t">'.$this->l('Inactive').'</label> </div> <div class="clear"></div> <label>'.$this->l('Payment type').':</label> <div class="margin-form" style="padding-top:2px;"> - <input type="radio" name="paypal_capture" id="paypal_capture_0" value="0" '.(!$paypalCapture ? 'checked="checked" ' : '').'/> <label for="paypal_capture_0" class="t">'.$this->l('Direct (sales)').'</label> + <input type="radio" name="paypal_capture" id="paypal_capture_0" value="0" '.(!$paypalCapture ? 'checked="checked" ' : '').'/> <label for="paypal_capture_0" class="t">'.$this->l('Direct (sales)').'</label> <input type="radio" name="paypal_capture" id="paypal_capture_1" value="1" style="margin-left:15px;" '.($paypalCapture ? 'checked="checked" ' : '').'/> <label for="paypal_capture_1" class="t">'.$this->l('Authorization / Manual Capture').' '.$this->l('(Payment shipping)').'</label> </div> <label>'.$this->l('PayPal account e-mail').':</label> @@ -826,12 +831,12 @@ class PayPal extends PaymentModule <p class="center"><input class="button" type="submit" name="submitPayPal" value="'.$this->l('Save settings').'" /></p>'; return $html; } - + private function _getPersonalizationsTabHtml() { $lang = $this->context->language; $template_paypal = Tools::getValue('template_paypal', Configuration::get('PAYPAL_TEMPLATE')); - + return ' <h2>'.$this->l('Logos and personalizations').'</h2> <label for="banner_url">'.$this->l('Banner image URL').':</label> @@ -841,14 +846,14 @@ class PayPal extends PaymentModule </div> <label>'.$this->l('Template chosen for PayPal Integral Evolution').':</label> <div class="margin-form" style="padding-top:2px;"> - <input type="radio" name="template_paypal" id="template_paypal_a" value="A" '.($template_paypal == 'A' ? 'checked="checked" ' : '').'/> <label for="template_paypal_a" class="t">A</label> + <input type="radio" name="template_paypal" id="template_paypal_a" value="A" '.($template_paypal == 'A' ? 'checked="checked" ' : '').'/> <label for="template_paypal_a" class="t">A</label> <input type="radio" name="template_paypal" id="template_paypal_b" value="B" style="margin-left:10px;" '.($template_paypal == 'B' ? 'checked="checked" ' : '').'/> <label for="template_paypal_b" class="t">B</label> <input type="radio" name="template_paypal" id="template_paypal_c" value="C" style="margin-left:10px;" '.($template_paypal == 'C' ? 'checked="checked" ' : '').'/> <label for="template_paypal_c" class="t">C</label> </div> '.($lang->iso_code == 'fr' ? '<p style="clear:both;"><a style="color:blue;text-decoration:underline;" href="https://cms.paypal.com/cms_content/FR/fr_FR/files/developer/Paypal_Integral_Evolution_Personnalisation.pdf" target="_blank">'.$this->l('Click here to learn how to customize these templates').'</a></p>' : '').' <p class="center"><input class="button" type="submit" name="submitPayPal" value="'.$this->l('Save settings').'" /></p>'; } - + private function _setPayPalSubscription() { $this->_html .= ' @@ -865,7 +870,7 @@ class PayPal extends PaymentModule '.$this->l('You need to configure your PayPal account before using this module.').' <div style="clear:both;"> </div>'; } - + private function _postProcess() { if (Tools::isSubmit('submitPayPal')) @@ -879,7 +884,7 @@ class PayPal extends PaymentModule $this->_errors[] = $this->l('E-mail invalid'); if (Tools::getValue('banner_url') != NULL AND !Validate::isUrl(Tools::getValue('banner_url'))) $this->_errors[] = $this->l('URL for banner is invalid'); - elseif (Tools::getValue('banner_url') != NULL AND strpos(Tools::getValue('banner_url'), 'https://') === false) + elseif (Tools::getValue('banner_url') != NULL AND strpos(Tools::getValue('banner_url'), 'https://') === false) $this->_errors[] = $this->l('URL for banner must use HTTPS protocol'); if (!in_array(Tools::getValue('template_paypal'), $template_available)) $this->_errors[] = $this->l('PayPal template invalid.'); @@ -889,7 +894,7 @@ class PayPal extends PaymentModule $this->_errors[] = $this->l('Cannot use this solution without API Credentials.'); if (Tools::isSubmit('paypal_express') AND (Tools::getValue('api_username') == NULL OR Tools::getValue('api_signature') == NULL)) $this->_errors[] = $this->l('Cannot use PayPal Express without API Credentials.'); - + if (!sizeof($this->_errors)) { Configuration::updateValue('PAYPAL_SANDBOX', (int)(Tools::getValue('sandbox_mode'))); @@ -921,7 +926,7 @@ class PayPal extends PaymentModule $this->_html = $this->displayError($error_msg); } } - + if (Tools::isSubmit('submitPayPalValidation')) { if (!($response = $this->_updatePaymentStatusOfOrder((int)(Tools::getValue('id_order')))) OR !sizeof($response)) @@ -939,7 +944,7 @@ class PayPal extends PaymentModule $this->_html .= '<p style="color:red;">'.$this->l('Error from PayPal: ').$response['L_LONGMESSAGE0'].' (#'.$response['L_ERRORCODE0'].')</p>'; } } - + if (Tools::isSubmit('submitPayPalCapture')) { if (!($response = $this->_doCapture((int)(Tools::getValue('id_order')))) OR !sizeof($response)) @@ -957,7 +962,7 @@ class PayPal extends PaymentModule $this->_html .= '<p style="color:red;">'.$this->l('Error from PayPal: ').$response['L_LONGMESSAGE0'].' (#'.$response['L_ERRORCODE0'].')</p>'; } } - + if (Tools::isSubmit('submitPayPalRefund')) { if (!($response = $this->_doTotalRefund((int)(Tools::getValue('id_order')))) OR !sizeof($response)) @@ -976,27 +981,27 @@ class PayPal extends PaymentModule } } } - + private function _getTransactionId($id_order) { if (!(int)$id_order) return false; - + return Db::getInstance()->getValue(' - SELECT `id_transaction` - FROM `'._DB_PREFIX_.'paypal_order` + SELECT `id_transaction` + FROM `'._DB_PREFIX_.'paypal_order` WHERE `id_order` = '.(int)$id_order); } - + private function _makeRefund($id_transaction, $id_order, $amt = false) { include_once(_PS_MODULE_DIR_.'paypal/api/paypallib.php'); - + if (!$this->_isPayPalAPIAvailable()) die(Tools::displayError('Fatal Error: no API Credentials are available')); if (!$id_transaction) die(Tools::displayError('Fatal Error: id_transaction is null')); - + if (!$amt) $request = '&TRANSACTIONID='.urlencode($id_transaction).'&REFUNDTYPE=Full'; else @@ -1011,7 +1016,7 @@ class PayPal extends PaymentModule $paypalLib = new PaypalLib(); return $paypalLib->makeCall($this->getAPIURL(), $this->getAPIScript(), 'RefundTransaction', $request); } - + private function _addNewPrivateMessage($id_order, $message) { if (!$id_order) @@ -1026,7 +1031,7 @@ class PayPal extends PaymentModule return $msg->add(); } - + private function _doTotalRefund($id_order) { if (!$this->_isPayPalAPIAvailable()) @@ -1073,20 +1078,20 @@ class PayPal extends PaymentModule return $response; } - + private function _doCapture($id_order) { include_once(_PS_MODULE_DIR_.'paypal/api/paypallib.php'); - + if (!$this->_isPayPalAPIAvailable()) return false; if (!$id_order) return false; - + $id_transaction = $this->_getTransactionId((int)($id_order)); if (!$id_transaction) return false; - + $order = new Order((int)($id_order)); $currency = new Currency((int)($order->id_currency)); $request = '&AUTHORIZATIONID='.urlencode($id_transaction).'&AMT='.(float)($order->total_paid).'&CURRENCYCODE='.$currency->iso_code.'&COMPLETETYPE=Complete'; @@ -1111,11 +1116,11 @@ class PayPal extends PaymentModule return $response; } - + private function _updatePaymentStatusOfOrder($id_order) { include_once(_PS_MODULE_DIR_.'paypal/api/paypallib.php'); - + if (!$this->_isPayPalAPIAvailable()) return false; if (!$id_order) @@ -1124,7 +1129,7 @@ class PayPal extends PaymentModule $id_transaction = $this->_getTransactionId((int)($id_order)); if (!$id_transaction) return false; - + $request = '&TRANSACTIONID='.urlencode($id_transaction); $paypalLib = new PaypalLib(); $response = $paypalLib->makeCall($this->getAPIURL(), $this->getAPIScript(), 'GetTransactionDetails', $request); @@ -1167,14 +1172,14 @@ class PayPal extends PaymentModule } return false; } - + private function _isPayPalAPIAvailable() { if (Configuration::get('PAYPAL_API_USER') != NULL AND Configuration::get('PAYPAL_API_PASSWORD') != NULL AND Configuration::get('PAYPAL_API_SIGNATURE') != NULL) return true; return false; } - + private function _checkAndUpdateFromOldVersion($install = false) { if (!Configuration::get('PAYPAL_NEW') AND ($this->active OR $install)) @@ -1253,12 +1258,86 @@ class PayPal extends PaymentModule } return false; } - + public function getOrder($id_transaction) { return Db::getInstance()->getValue(' - SELECT `id_order` - FROM `'._DB_PREFIX_.'paypal_order` + SELECT `id_order` + FROM `'._DB_PREFIX_.'paypal_order` WHERE `id_transaction` = \''.pSQL($id_transaction).'\''); } + + + + // Retrocompatibility to 1.3 + const ONLY_PRODUCTS = 1; + const ONLY_DISCOUNTS = 2; + const BOTH = 3; + const BOTH_WITHOUT_SHIPPING = 4; + const ONLY_SHIPPING = 5; + const ONLY_WRAPPING = 6; + const ONLY_PRODUCTS_WITHOUT_SHIPPING = 7; + + + /** + * getShopDomain returns domain name according to configuration and ignoring ssl + * + * @param boolean $http if true, return domain name with protocol + * @param boolean $entities if true, + * @return string domain + */ + public static function getShopDomain($http = false, $entities = false) + { + if (!($domain = Configuration::get('PS_SHOP_DOMAIN'))) + $domain = Tools::getHttpHost(); + if ($entities) + $domain = htmlspecialchars($domain, ENT_COMPAT, 'UTF-8'); + if ($http) + $domain = 'http://'.$domain; + return $domain; +} + + /** + * getShopDomainSsl returns domain name according to configuration and depending on ssl activation + * + * @param boolean $http if true, return domain name with protocol + * @param boolean $entities if true, + * @return string domain + */ + public static function getShopDomainSsl($http = false, $entities = false) + { + if (!($domain = Configuration::get('PS_SHOP_DOMAIN_SSL'))) + $domain = Tools::getHttpHost(); + if ($entities) + $domain = htmlspecialchars($domain, ENT_COMPAT, 'UTF-8'); + if ($http) + $domain = (Configuration::get('PS_SSL_ENABLED') ? 'https://' : 'http://').$domain; + return $domain; + } + + public static function display($file, $template, $cacheId = NULL, $compileId = NULL) + { + if (substr(_PS_VERSION_, 0, 3) != '1.3') + return parent::display($file, $template); + + global $smarty; + $previousTemplate = $smarty->currentTemplate; + $smarty->currentTemplate = substr(basename($template), 0, -4); + $smarty->assign('module_dir', __PS_BASE_URI__.'modules/'.basename($file, '.php').'/'); + if (Tools::file_exists_cache(_PS_THEME_DIR_.'modules/'.basename($file, '.php').'/'.$template)) + { + $smarty->assign('module_template_dir', _THEME_DIR_.'modules/'.basename($file, '.php').'/'); + $result = $smarty->fetch(_PS_THEME_DIR_.'modules/'.basename($file, '.php').'/'.$template); + } + elseif (Tools::file_exists_cache(dirname(__FILE__).'/'.$template)) + { + $smarty->assign('module_template_dir', __PS_BASE_URI__.'modules/'.basename($file, '.php').'/'); + $result = $smarty->fetch(dirname(__FILE__).'/'.$template); + } + else + $result = Tools::displayError('No template found'); + $smarty->currentTemplate = $previousTemplate; + return $result; + } + } diff --git a/modules/paypal/standard/redirect.php b/modules/paypal/standard/redirect.php index 4c24f12cd..f611b8bf2 100644 --- a/modules/paypal/standard/redirect.php +++ b/modules/paypal/standard/redirect.php @@ -66,18 +66,18 @@ $smarty->assign(array( 'address' => $address, 'country' => $country, 'state' => $state, - 'amount' => (float)($cart->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING)), + 'amount' => (float)($cart->getOrderTotal(true, PayPal::BOTH_WITHOUT_SHIPPING)), 'customer' => $customer, - 'total' => (float)($cart->getOrderTotal(true, Cart::BOTH)), - 'shipping' => Tools::ps_round((float)($cart->getOrderShippingCost()) + (float)($cart->getOrderTotal(true, Cart::ONLY_WRAPPING)), 2), - 'discount' => $cart->getOrderTotal(true, Cart::ONLY_DISCOUNTS), + 'total' => (float)($cart->getOrderTotal(true, PayPal::BOTH)), + 'shipping' => Tools::ps_round((float)($cart->getOrderShippingCost()) + (float)($cart->getOrderTotal(true, PayPal::ONLY_WRAPPING)), 2), + 'discount' => $cart->getOrderTotal(true, PayPal::ONLY_DISCOUNTS), 'business' => $business, 'currency_module' => $currency_module, 'cart_id' => (int)($cart->id).'_'.pSQL($cart->secure_key), 'products' => $cart->getProducts(), 'paypal_id' => (int)($paypal->id), 'header' => $header, - 'url' => Tools::getShopDomain(true, true).__PS_BASE_URI__ + 'url' => PayPal::getShopDomain(true, true).__PS_BASE_URI__ )); diff --git a/modules/shopimporter/shopimporter.js b/modules/shopimporter/shopimporter.js index 10275c5b7..4fc79c6f9 100644 --- a/modules/shopimporter/shopimporter.js +++ b/modules/shopimporter/shopimporter.js @@ -570,9 +570,9 @@ var shopImporter = { onAfter:function(){ $('#steps').html(''); shopImporter.save = 1; - if($('#import_module_name').attr('value') == 'importermagento') + if(type_connector == 'ws') shopImporter.checkAndSaveConfigWS(shopImporter.save); - else if ($('#import_module_name').attr('value') == 'importerosc') + else if (type_connector == 'db') shopImporter.checkAndSaveConfig(shopImporter.save); } }); @@ -789,7 +789,7 @@ $(document).ready(function(){ $('#displayOptions').unbind('click').click(function(){ $('#displayOptions').show(); - if($('#import_module_name').attr('value') == 'importermagento') + if(type_connector == 'ws') { if($('#loginws').val() == '' || $('#apikey').val() == '' || $('#url').val() == '') { @@ -805,7 +805,7 @@ $(document).ready(function(){ return false; } - else if ($('#import_module_name').attr('value') == 'importerosc') + else if (type_connector == 'db') { moduleName = $('#import_module_name').val(); server = $('#server').val(); @@ -836,7 +836,7 @@ $(document).ready(function(){ moduleName = $('#import_module_name').val(); if (validateSpecificOptions(moduleName, shopImporter.specificOptions) == true) { - if($('#import_module_name').attr('value') == 'importermagento') + if(type_connector == 'ws') { $.scrollTo($('#steps'), 300 , { onAfter:function(){ @@ -862,7 +862,7 @@ $(document).ready(function(){ return false; } }); - }else if ($('#import_module_name').attr('value') == 'importerosc') + }else if (type_connector == 'db') { $.scrollTo($('#steps'), 300 , { onAfter:function(){ diff --git a/modules/shopimporter/shopimporter.php b/modules/shopimporter/shopimporter.php index 1632d67bc..6a4de6005 100644 --- a/modules/shopimporter/shopimporter.php +++ b/modules/shopimporter/shopimporter.php @@ -413,7 +413,6 @@ class shopimporter extends ImportModule <input type="submit" class="button" name="checkAndSaveConfig" id="checkAndSaveConfig" value="'.$this->l('Next Step').'"> </div> </div> - </div> </fieldset>'; return $html; } @@ -499,7 +498,7 @@ class shopimporter extends ImportModule $json['hasError'] = true; $json['error'] = $errors; } - + if ($save || Tools::isSubmit('syncLang') || Tools::isSubmit('syncLangWS')) { //add language if not exist in prestashop @@ -551,21 +550,21 @@ class shopimporter extends ImportModule $table = $this->supportedImports[strtolower($className)]['table']; $object = new $className(); - + $rules = call_user_func(array($className, 'getValidationRules'), $className); - + if ((sizeof($rules['requiredLang']) || sizeof($rules['sizeLang']) || sizeof($rules['validateLang']) || Tools::isSubmit('syncLangWS') || Tools::isSubmit('syncCurrency'))) { $moduleName = Tools::getValue('moduleName'); if (file_exists('../../modules/'.$moduleName.'/'.$moduleName.'.php')) { - + require_once('../../modules/'.$moduleName.'/'.$moduleName.'.php'); $importModule = new $moduleName(); $defaultLanguage = new Language((int)Configuration::get('PS_LANG_DEFAULT')); - + $languages = $importModule->getLangagues(); if (Tools::isSubmit('syncLangWS')) @@ -573,10 +572,10 @@ class shopimporter extends ImportModule $defaultIdLand = $importModule->getDefaultIdLang(); $defaultLanguageImport = new Language(Language::getIdByIso($languages[$defaultIdLand]['iso_code'])); if ($defaultLanguage->iso_code != $defaultLanguageImport->iso_code) - $errors[] = $this->l('Default language doesn\'t match : ').'<br>'.Configuration::get('PS_SHOP_NAME').' : '.$defaultLanguage->name.' ≠ + $errors[] = $this->l('Default language doesn\'t match : ').'<br>'.Configuration::get('PS_SHOP_NAME').' : '.$defaultLanguage->name.' ≠ '.$importModule->displayName.' : '.$defaultLanguageImport->name.'<br>'.$this->l('Please change default language in your configuration'); } - + if (Tools::isSubmit('syncCurrency')) { $defaultIdCurrency = $importModule->getDefaultIdCurrency(); @@ -585,7 +584,7 @@ class shopimporter extends ImportModule $defaultCurrencyImport = new Currency((int)Currency::getIdByIsoCode($currencies[$defaultIdCurrency]['iso_code'])); else $defaultCurrencyImport = new Currency((int)Currency::getIdByIsoCodeNum($currencies[$defaultIdCurrency]['iso_code_num'])); - + $defaultCurrency = new Currency((int)Configuration::get('PS_CURRENCY_DEFAULT')); if ($defaultCurrency->iso_code != $defaultCurrencyImport->iso_code) $errors[] = $this->l('Default currency doesn\'t match : ').'<br>'.Configuration::get('PS_SHOP_NAME').' : '.$defaultCurrency->name.' ≠ '.$importModule->displayName.' : '.$defaultCurrencyImport->name.'<br>'.$this->l('Please change default currency in your configuration'); @@ -596,7 +595,7 @@ class shopimporter extends ImportModule else die('{"hasError" : true, "error" : ["FATAL ERROR"], "datas" : []}'); } - + foreach($fields as $key => $field) { $id = $this->supportedImports[strtolower($className)]['identifier']; @@ -616,7 +615,7 @@ class shopimporter extends ImportModule array_unshift($errors[sizeof($errors)-1], $field[$id]); } } - if (sizeof($errors) > 0) + if (sizeof($errors) > 0) { $json['hasError'] = true; $json['error'] = $errors; @@ -652,14 +651,14 @@ class shopimporter extends ImportModule if ($className == 'Category' AND (sizeof($fields) != (int)Tools::getValue('nbr_import'))) $this->updateCat(); } - if (sizeof($errors) > 0 AND is_array($errors)) + if (sizeof($errors) > 0 AND is_array($errors)) { $json['hasError'] = true; $json['error'] = $errors; } die(Tools::jsonEncode($json)); } - + private function saveObject($className, $items) { $return = array(); @@ -667,13 +666,14 @@ class shopimporter extends ImportModule //creating temporary fields for identifiers matching and password if (array_key_exists('alterTable', $this->supportedImports[strtolower($className)])) $this->alterTable(strtolower($className)); + $matchIdLang = $this->getMatchIdLang(1); foreach($items as $item) { $object = new $className; $id = $item[$this->supportedImports[strtolower($className)]['identifier']]; if (array_key_exists('foreign_key', $this->supportedImports[strtolower($className)])) $this->replaceForeignKey($item, $table); - $matchIdLang = $this->getMatchIdLang(1); + foreach($item as $key => $val) { if ($key == 'passwd') @@ -683,14 +683,16 @@ class shopimporter extends ImportModule } if (is_array($val) AND $key != 'images') { - + $tmp = array(); foreach($matchIdLang as $k => $v) - if (($k != $v) AND array_key_exists($k, $val)) { - $item[$key][$v] = $val[$k]; - unset($item[$key][$k]); + if (array_key_exists($k, $val)) + { + $tmp[$v] = $val[$k]; } - $object->$key = $item[$key]; + } + + $object->$key = $tmp; } else $object->$key = $val; @@ -863,7 +865,7 @@ class shopimporter extends ImportModule foreach($item['images'] as $key => $image) { $tmpfile = tempnam(_PS_TMP_IMG_DIR_, 'import'); - if (@copy($image, $tmpfile)) + if (@copy(str_replace(' ', '%20', $image), $tmpfile)) { $imagesTypes = ImageType::getImagesTypes($type); @@ -1089,9 +1091,10 @@ class shopimporter extends ImportModule $returnErrors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), $fieldLang, $className).' ('.$language['name'].')</b> '.$this->l('is too long').' ('.$maxLength.' '.$this->l('chars max').')'; /* Checking for multilingual fields validity */ foreach ($rules['validateLang'] AS $fieldLang => $function) + { foreach ($languages AS $language) { - if (array_key_exists($fieldLang, $fields) AND ($value = $fields[$fieldLang][$language['id_lang']]) !== false AND !empty($value)) + if (array_key_exists($fieldLang, $fields) AND array_key_exists($language['id_lang'], $fields[$fieldLang]) AND ($value = $fields[$fieldLang][$language['id_lang']]) !== false AND !empty($value)) { if (!Validate::$function($value)) if ($hasErrors == 2) @@ -1107,6 +1110,7 @@ class shopimporter extends ImportModule } } } + } return $returnErrors; } @@ -1152,8 +1156,8 @@ class shopimporter extends ImportModule } else $returnErrors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), $field, $className).'</b> '.$this->l('is invalid'); - - + + return $returnErrors; } public function checkAndAddLang ($languages, $add = true) @@ -1233,9 +1237,9 @@ class shopimporter extends ImportModule Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'country_lang'); Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'country'); case 'group' : - Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'customer_group'); - Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'ps_group_lang'); - Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'group'); + Db::getInstance()->Execute('TRUNCATE TABLE `'._DB_PREFIX_.'customer_group'); + Db::getInstance()->Execute('TRUNCATE TABLE `'._DB_PREFIX_.'group_lang'); + Db::getInstance()->Execute('TRUNCATE TABLE `'._DB_PREFIX_.'group'); break; case 'combination' : Db::getInstance()->execute('TRUNCATE TABLE `'._DB_PREFIX_.'product_attribute'); diff --git a/modules/shoppingfluxexport/config.xml b/modules/shoppingfluxexport/config.xml new file mode 100755 index 000000000..1b0724919 --- /dev/null +++ b/modules/shoppingfluxexport/config.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<module> + <name>shoppingfluxexport</name> + <displayName><![CDATA[Export Shopping Flux]]></displayName> + <version><![CDATA[1.4.1]]></version> + <description><![CDATA[Export du catalogue pour Shopping Flux]]></description> + <author><![CDATA[]]></author> + <tab><![CDATA[advertising_marketing]]></tab> + <confirmUninstall>Êtes-vous sur de vouloir supprimer ce module ?</confirmUninstall> + <is_configurable>1</is_configurable> + <need_instance>1</need_instance> + <limited_countries></limited_countries> +</module> \ No newline at end of file diff --git a/modules/shoppingfluxexport/flux.php b/modules/shoppingfluxexport/flux.php new file mode 100755 index 000000000..c7a021ad1 --- /dev/null +++ b/modules/shoppingfluxexport/flux.php @@ -0,0 +1,37 @@ +<?php +/* +* 2007-2011 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA <contact@prestashop.com> +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision: 9074 $ +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +include(dirname(__FILE__).'/../../config/config.inc.php'); +include(dirname(__FILE__).'/../../init.php'); + +include(dirname(__FILE__).'/shoppingfluxexport.php'); +@ini_set('display_errors', 'off'); + +$f = new shoppingfluxexport(); +echo $f->generateFlux(); + + diff --git a/modules/shoppingfluxexport/fr.php b/modules/shoppingfluxexport/fr.php new file mode 100644 index 000000000..090cb3686 --- /dev/null +++ b/modules/shoppingfluxexport/fr.php @@ -0,0 +1,8 @@ +<?php + +global $_MODULE; +$_MODULE = array(); +$_MODULE['<{shoppingfluxexport}prestashop>shoppingfluxexport_fea9f8736d4903ba7394eae6c6c4a48b'] = 'Export Shopping Flux'; +$_MODULE['<{shoppingfluxexport}prestashop>shoppingfluxexport_532e375ed3b53b3c888a6bf214329e60'] = 'Export du catalogue pour Shopping Flux'; +$_MODULE['<{shoppingfluxexport}prestashop>shoppingfluxexport_5abb27355099ec51416a3f003fe63711'] = 'Êtes-vous sur de vouloir supprimer ce module ?'; +$_MODULE['<{shoppingfluxexport}prestashop>shoppingfluxexport_68a59c7fd2c1bf8103225a22a6088235'] = 'Adresse du fichier :'; diff --git a/modules/shoppingfluxexport/logo.gif b/modules/shoppingfluxexport/logo.gif new file mode 100755 index 0000000000000000000000000000000000000000..9768abdf1269919e6a4394de866e79c5d64c5a8b GIT binary patch literal 980 zcmV;_11tPTNk%w1VGsZi0O$Vz+iD!}_WFXf&5pj?uF&LIb$gx1;?3ghqHICC*y>-Q z#MI{Sb*|2Zaay}=H1lT(qsrojx!0m`N@b<TOqIHRvdyGxKFHqcNOp)qkG7=B-L%u_ zk-pZ(-ROR_)4|&2;_mfWoxz-ILtLN2sLbBE*5&wS1)FhApUC6=W&(}8)v?jym&4x@ zah{EAP1NP@<!2FBc!FV}!Lick+3E3>z}0rH%J%yF8Fr${Y9*6#Q<=ioqRHNHs>icx zGIFfV(&X;YY9cv_v1q5rjJnayXd#`&*_y-Iw$$aaZ90{1P3CA4b9HO#^7xQ#POHw~ z_GbrGo4?^`6>M^8`ep+peW&H{_FJ94d$Q5J*yTl$w{NP;=<)V~bz_}wNbU6bjBQZ6 zYA(v)>P(ckpvKxbd6t`VQi{6OiMi15XA4r9y~^P3Jamh}YAnTSDfRjL>Sqt3$l7_Z z%$>&FErP3&z0+!@#i`BY-RtwgX)4y|@$F{~#op~@Zf8i7xny*7>}U>|#NE|uABDHk zsBJ&3&*98!C6&S1d~#tTd#1)|CYEbPs%kkWd7t3z^Hy(kz-=<Pa67-+>5yzoZm7oO z@APtTWRkzwn#9`j_xh~P-c^~qfwj<=Zc9gelFsAst!z5q?DMT_Ic%xPW~9Tp*Xb*L zqWWe8ezMAkxzd$&S*>a}!`$q{-00ow^u=r}HHNK{Yf0W{7jvx1?q>_FZ9Ly<8Q$#m zxNbLvx74a^JP2!<gSXWOYMBabnu)sD4Q`wZZJV3M;SX<}fVI?%yxEn)-kHVVkiXn( zsLGSU-FUFjJd3k7hp;n+t|xw}KaI3cm%L)5#VUZRFodlid8PRK{T+Ct7IUDi&*hK2 z($M4Wl)u%?;p_Nk2IprG>1YsgtH`v|<G|bOWuw7Sn7Osn;^S!*n8V!QXBFG(^QUV( z<7g9OqQQr_&qINoGKH*@z}Yu`pkAQ9JBqMgeT6@av8Bn{>+|`PYe#OX$z!C&da%ke zZ;1b90RR90A^s6Va%Ew3Wn>_CX>@2HM@dak04x9i000mG5C8xOqyT;S+C`Ayz=8#R z0b9tB;V@vs9xiM_QO3WE6k9yIh!Ka!e=Bed@`ytK$A35ysr;9yN)?rfGF_}uBhj>* z{}#}>iSr^)XFw_Z(*zXg$yUyoDP`8~ADX2nM={evm8y|{R25vTszr_0um8N#xcF7g zh_nAlTtvI}?1%|)$6bUwfg{}sTk`7N%XiDNzkmY^UPi32;lqfD{aVbpvEyF>0RTI_ CeKUFh literal 0 HcmV?d00001 diff --git a/modules/shoppingfluxexport/shoppingfluxexport.php b/modules/shoppingfluxexport/shoppingfluxexport.php new file mode 100755 index 000000000..e75186ad4 --- /dev/null +++ b/modules/shoppingfluxexport/shoppingfluxexport.php @@ -0,0 +1,208 @@ +<?php +/* +* 2007-2011 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA <contact@prestashop.com> +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision: 9074 $ +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +if (!defined('_PS_VERSION_')) + exit; + +class shoppingfluxexport extends Module +{ + + public function __construct() + { + $this->name = 'shoppingfluxexport'; + $this->tab = 'advertising_marketing'; + $this->version = '1.4.1'; + + parent::__construct(); + + $this->displayName = $this->l('Export Shopping Flux'); + $this->description = $this->l('Export du catalogue pour Shopping Flux'); + $this->confirmUninstall = $this->l('Êtes-vous sur de vouloir supprimer ce module ?'); + } + + public function install() + { + // Create Token + if (!Configuration::updateValue('SHOPPING_FLUX_TOKEN', md5(rand()))) + return false; + + // Install Module + if (!parent::install()) + return false; + + return true; + } + + public function uninstall() + { + // Delete Token + if (!Configuration::deleteByName('SHOPPING_FLUX_TOKEN')) + return false; + + // Uninstall Module + if (!parent::uninstall()) + return false; + + return true; + } + + public function getContent() + { + if (isset($_POST['generateFlux']) && $_POST['generateFlux'] != NULL) + $this->generateFlux(); + + $uri = 'http://'.$_SERVER['HTTP_HOST'].__PS_BASE_URI__.'modules/shoppingfluxexport/flux.php?token='.Configuration::get('SHOPPING_FLUX_TOKEN'); + + $this->_html = '<h2>'.$this->displayName.'</h2> + <form method="post" action="'.htmlentities($_SERVER['REQUEST_URI']).'"> + <fieldset> + <legend>'.$this->l('Export Shopping Flux').'</legend> + + <p>'.$this->l('Adresse du fichier :').' + <a href="'.$uri.'" target="_blank"> + '.$uri.'</a></p> + </fieldset> + + </form> + '; + + return $this->_html; + } + + private function clean($string) + { + + $string = str_replace("\r\n", " ", $string); + $string = str_replace("|", " ", $string); + + return $string; + } + + public function generateFlux() + { + if (Tools::getValue('token') == '' || Tools::getValue('token') != Configuration::get('SHOPPING_FLUX_TOKEN')) + die('Invalid Token'); + + $titles = array( + 0 => 'id_produit', + 1 => 'nom_produit', + 2 => 'url_produit', + 3 => 'url_image', + 4 => 'description', + 5 => 'description_courte', + 6 => 'prix', + 7 => 'prix_barre', + 8 => 'frais_de_port', + 9 => 'delaiLiv', + 10 => 'marque', + 11 => 'rayon', + 12 => 'stock', + 13 => 'qte_stock', + 14 => 'EAN', + 15 => 'poids', + 16 => 'ecotaxe', + 17 => 'TVA', + 18 => 'Reference constructeur', + 19 => 'Reference fournisseur' + ); + + echo implode("|", $titles)."\r\n"; + + //For Shipping + $configuration = Configuration::getMultiple(array('PS_TAX_ADDRESS_TYPE','PS_CARRIER_DEFAULT','PS_COUNTRY_DEFAULT', 'PS_LANG_DEFAULT', 'PS_SHIPPING_FREE_PRICE', 'PS_SHIPPING_HANDLING', 'PS_SHIPPING_METHOD', 'PS_SHIPPING_FREE_WEIGHT')); + + $products = Product::getSimpleProducts($configuration['PS_LANG_DEFAULT']); + + $defaultCountry = new Country($configuration['PS_COUNTRY_DEFAULT'], Configuration::get('PS_LANG_DEFAULT')); + $id_zone = (int)$defaultCountry->id_zone; + + $carrier = new Carrier((int)$configuration['PS_CARRIER_DEFAULT']); + $carrierTax = Tax::getCarrierTaxRate((int)$carrier->id, (int)$this->{$configuration['PS_TAX_ADDRESS_TYPE']}); + + foreach ($products as $key => $produit) + { + $product = new Product((int)($produit['id_product']), true, $configuration['PS_LANG_DEFAULT']); + + //For links + $link = new Link(); + + //For images + $cover = $product->getCover($product->id); + $ids = $product->id.'-'.$cover['id_image']; + + //For shipping + + if ($product->getPrice(true, NULL, 2, NULL, false, true, 1) >= (float)($configuration['PS_SHIPPING_FREE_PRICE']) AND (float)($configuration['PS_SHIPPING_FREE_PRICE']) > 0) + $shipping = 0; + elseif (isset($configuration['PS_SHIPPING_FREE_WEIGHT']) AND $product->weight >= (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) AND (float)($configuration['PS_SHIPPING_FREE_WEIGHT']) > 0) + $shipping = 0; + else + { + if (isset($configuration['PS_SHIPPING_HANDLING']) AND $carrier->shipping_handling) + $shipping = (float)($configuration['PS_SHIPPING_HANDLING']); + + if ($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_WEIGHT) + $shipping += $carrier->getDeliveryPriceByWeight($product->weight, $id_zone); + else + $shipping += $carrier->getDeliveryPriceByPrice($product->getPrice(true, NULL, 2, NULL, false, true, 1), $id_zone); + + $shipping *= 1 + ($carrierTax / 100); + $shipping = (float)(Tools::ps_round((float)($shipping), 2)); + + } + + $data = array(); + $data[0] = $product->id; + $data[1] = $product->name; + $data[2] = $link->getProductLink($product); + $data[3] = $link->getImageLink($product->link_rewrite, $ids, 'large'); + $data[4] = $product->description; + $data[5] = $product->description_short; + $data[6] = $product->getPrice(true, NULL, 2, NULL, false, true, 1); + $data[7] = $product->getPrice(true, NULL, 2, NULL, false, false, 1); + $data[8] = $shipping; + $data[9] = $carrier->delay[2]; + $data[10] = $product->manufacturer_name; + $data[11] = $product->category; + $data[12] = ($product->quantity > 0) ? 'oui' : 'non'; + $data[13] = $product->quantity; + $data[14] = $product->ean13; + $data[15] = $product->weight; + $data[16] = $product->ecotax; + $data[17] = $product->tax_rate; + $data[18] = $product->reference; + $data[19] = $product->supplier_reference; + + foreach($data as $key => $value) + $data[$key] = $this->clean($value); + + echo implode("|", $data)."\r\n"; + + } + } +} + diff --git a/modules/statsforecast/statsforecast.php b/modules/statsforecast/statsforecast.php index 63caa2004..c5483456f 100644 --- a/modules/statsforecast/statsforecast.php +++ b/modules/statsforecast/statsforecast.php @@ -80,12 +80,9 @@ class StatsForecast extends Module $currency = $this->context->currency; $employee = $this->context->employee; - // @todo use PHP functions to get timestamp ... - $result = $db->getRow('SELECT UNIX_TIMESTAMP(\'2009-06-05 00:00:00\') as t1, UNIX_TIMESTAMP(\''.$employee->stats_date_from.' 00:00:00\') as t2'); - $from = max($result['t1'], $result['t2']); + $from = max(strtotime(_PS_CREATION_DATE_.' 00:00:00'), strtotime($employee->stats_date_from.' 00:00:00')); $to = strtotime($employee->stats_date_to.' 23:59:59'); - $result2 = $db->getRow('SELECT UNIX_TIMESTAMP(NOW()) as t1, UNIX_TIMESTAMP(\''.$employee->stats_date_to.' 23:59:59\') as t2'); - $to2 = min($result2['t1'], $result2['t2']); + $to2 = min(time(), $to); $interval = ($to - $from) / 60 / 60 / 24; $interval2 = ($to2 - $from) / 60 / 60 / 24; $prop30 = $interval / $interval2; @@ -99,18 +96,17 @@ class StatsForecast extends Module if ($this->context->cookie->stats_granularity == 42) $intervalAvg = $interval2 / 7; - // @todo : to remove - if (!defined('PS_BASE_URI')) - define('PS_BASE_URI', '/'); - $result = $db->getRow('SELECT UNIX_TIMESTAMP(\'2009-06-05\') as t1, UNIX_TIMESTAMP(\''.$employee->stats_date_from.'\') as t2'); - $from = max($result['t1'], $result['t2']); - $to = strtotime($employee->stats_date_to.''); + $dataTable = array(); + if ($cookie->stats_granularity == 10) + for ($i = $from; $i <= $to2; $i = strtotime('+1 day', $i)) + $dataTable[date('Y-m-d', $i)] = array('fix_date' => date('Y-m-d', $i), 'countOrders' => 0, 'countProducts' => 0, 'totalProducts' => 0); $dateFromGAdd = ($this->context->cookie->stats_granularity != 42 - ? 'SUBSTRING(date_add, 1, '.(int)$this->context->cookie->stats_granularity.')' + ? 'LEFT(date_add, '.(int)$this->context->cookie->stats_granularity.')' : 'IFNULL(MAKEDATE(YEAR(date_add),DAYOFYEAR(date_add)-WEEKDAY(date_add)), CONCAT(YEAR(date_add),"-01-01*"))'); + $dateFromGInvoice = ($this->context->cookie->stats_granularity != 42 - ? 'SUBSTRING(invoice_date, 1, '.(int)$this->context->cookie->stats_granularity.')' + ? 'LEFT(invoice_date, '.(int)$this->context->cookie->stats_granularity.')' : 'IFNULL(MAKEDATE(YEAR(invoice_date),DAYOFYEAR(invoice_date)-WEEKDAY(invoice_date)), CONCAT(YEAR(invoice_date),"-01-01*"))'); $sql = 'SELECT @@ -128,17 +124,8 @@ class StatsForecast extends Module ORDER BY fix_date'; $result = $db->executeS($sql, false); - $dataTable = array(); - if ($this->context->cookie->stats_granularity == 10) - { - $dateEnd = strtotime($employee->stats_date_to.' 23:59:59'); - $dateToday = time(); - for ($i = strtotime($employee->stats_date_from.' 00:00:00'); $i <= $dateEnd && $i <= $dateToday; $i += 86400) - $dataTable[$i] = array('fix_date' => date('Y-m-d', $i), 'countOrders' => 0, 'countProducts' => 0, 'totalProducts' => 0); - } - while ($row = $db->nextRow($result)) - $dataTable[strtotime($row['fix_date'])] = $row; + $dataTable[$row['fix_date']] = $row; $this->_html .= '<div> <fieldset><legend><img src="../modules/'.$this->name.'/logo.gif" /> '.$this->displayName.'</legend> diff --git a/modules/themeinstallator/themeinstallator.php b/modules/themeinstallator/themeinstallator.php index dc39db163..147ccd9cd 100644 --- a/modules/themeinstallator/themeinstallator.php +++ b/modules/themeinstallator/themeinstallator.php @@ -319,6 +319,12 @@ class ThemeInstallator extends Module */ public function getContent() { + /* PrestaShop demo mode */ + if (_PS_MODE_DEMO_) + { + return '<div class="error">'.Tools::displayError('This functionnality has been disabled.').'</div>'; + + } self::init_defines(); if (!Tools::isSubmit('cancelExport') AND $this->page == 'exportPage') return self::getContentExport(); diff --git a/modules/tntcarrier/carrier.jpg b/modules/tntcarrier/carrier.jpg new file mode 100644 index 0000000000000000000000000000000000000000..92d5fabb3ae56159ffdc28146dbbf195a2824884 GIT binary patch literal 9932 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 CqWB8{ literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/classes/OrderInfoTnt.php b/modules/tntcarrier/classes/OrderInfoTnt.php new file mode 100644 index 000000000..88af8e06a --- /dev/null +++ b/modules/tntcarrier/classes/OrderInfoTnt.php @@ -0,0 +1,68 @@ +<?php + +class OrderInfoTnt +{ + private $_idOrder; + + public function __construct($id_order) + { + $this->_idOrder = $id_order; + } + + public function getInfo() + { + $info = Db::getInstance()->ExecuteS('SELECT o.shipping_number, a.lastname, a.firstname, a.address1, a.address2, a.postcode, a.city, a.phone, c.email, c.id_customer, a.company + FROM `'._DB_PREFIX_.'orders` as o, `'._DB_PREFIX_.'address` as a, `'._DB_PREFIX_.'customer` as c + WHERE o.id_order = "'.$this->_idOrder.'" AND a.id_address = o.id_address_delivery AND c.id_customer = o.id_customer'); + if (!$info) + return false; + $weight = Db::getInstance()->ExecuteS('SELECT p.weight, o.product_quantity + FROM `'._DB_PREFIX_.'order_detail` as o, `'._DB_PREFIX_.'product` as p + WHERE o.id_order = "'.$this->_idOrder.'" AND p.id_product = o.product_id'); + $option = Db::getInstance()->ExecuteS('SELECT t.option + FROM `'._DB_PREFIX_.'tnt_carrier_option` as t , `'._DB_PREFIX_.'orders` as o + WHERE t.id_carrier = o.id_carrier AND o.id_order = "'.$this->_idOrder.'"'); + if ($option != null && strpos($option[0]['option'], "D") !== false) + $dropOff = Db::getInstance()->ExecuteS('SELECT d.code, d.name, d.address, d.zipcode, d.city + FROM `'._DB_PREFIX_.'tnt_carrier_drop_off` as d , `'._DB_PREFIX_.'orders` as o + WHERE d.id_cart = o.id_cart AND o.id_order = "'.$this->_idOrder.'"'); + $w = 0; + $tooBig = false; + foreach ($weight as $key => $val) + { + while ($val['product_quantity'] > 0) + { + if ((int)($val['weight']) > 20) + return "Un ou plusieurs articles sont supérieurs à 20 Kg<br/>Vous devez contacter votre commercial TNT"; + if ($w + $val['weight'] > 20) + { + $info[1]['weight'][] = (string)($w); + $w = $val['weight']; + } + else + $w += $val['weight']; + $val['product_quantity']--; + } + } + $info[1]['weight'][] = (string)($w); + + if (date("N") == 5) + $next_day = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")+3, date("Y"))); + elseif (date("N") == 6) + $next_day = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")+2, date("Y"))); + else + $next_day = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")+1, date("Y"))); + $newDate = Tools::getValue('dateErrorOrder'); + $info[2] = array('delivery_date' => ($newDate != '' ? $newDate : $next_day)); + if ($option) + $info[3] = array('option' => $option[0]['option']); + if (isset($dropOff)) + $info[4] = $dropOff[0]; + else + $info[4] = null; + return $info; + } + +} + +?> diff --git a/modules/tntcarrier/classes/PackageTnt.php b/modules/tntcarrier/classes/PackageTnt.php new file mode 100644 index 000000000..0b02866a5 --- /dev/null +++ b/modules/tntcarrier/classes/PackageTnt.php @@ -0,0 +1,40 @@ +<?php + +class PackageTnt +{ + private $_idOrder; + private $_order; + + public function __construct($id_order) + { + $this->_idOrder = $id_order; + $this->_order = new Order((int)($this->_idOrder)); + } + + public function setShippingNumber($number) + { + if ($this->_order->shipping_number == '') + { + $this->_order->shipping_number = $number; + $this->_order->update(); + } + $this->insertSql($number); + } + + public function getShippingNumber() + { + $tab = Db::getInstance()->ExecuteS('SELECT `shipping_number` FROM `'._DB_PREFIX_.'tnt_carrier_shipping_number` WHERE `id_order` = "'.(int)($this->_idOrder).'"'); + return ($tab); + } + + public function insertSql($number) + { + Db::getInstance()->ExecuteS('INSERT INTO `'._DB_PREFIX_.'tnt_carrier_shipping_number` (`id_order`, `shipping_number`) + VALUES ("'.(int)($this->_idOrder).'", "'.$number.'")'); + } + + public function getOrder() + { + return ($this->_order); + } +} \ No newline at end of file diff --git a/modules/tntcarrier/classes/TntWebService.php b/modules/tntcarrier/classes/TntWebService.php new file mode 100644 index 000000000..0632b6394 --- /dev/null +++ b/modules/tntcarrier/classes/TntWebService.php @@ -0,0 +1,238 @@ +<?php +class TntWebService +{ + private $_login; + private $_password; + private $_account; + private $authheader; + private $authvars; + private $header; + private $file; + + public function __construct() + { + $this->_login = Configuration::get('TNT_CARRIER_LOGIN'); + $this->_password = Configuration::get('TNT_CARRIER_PASSWORD'); + $this->_account = Configuration::get('TNT_CARRIER_NUMBER_ACCOUNT'); + + $this->_authheader = $this->genAuth(); + $this->_authvars = new SoapVar($this->_authheader, XSD_ANYXML); + $this->_header = new SoapHeader("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", "Security", $this->_authvars); + $this->_file = "http://www.tnt.fr/service/?wsdl"; + } + + public function genAuth() + { + return sprintf(' + <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> + <wsse:UsernameToken> + <wsse:Username>%s</wsse:Username> + <wsse:Password>%s</wsse:Password> + </wsse:UsernameToken> + </wsse:Security>', htmlspecialchars($this->_login), htmlspecialchars($this->_password)); + } + + public function faisabilite($dateExpedition, $codePostalDepart, $communeDepart, $codePostalArrivee, $communeArrivee, $typeDestinataire) + { + $soapclient = new SoapClient($this->_file, array('trace'=>1)); + $soapclient->__setSOAPHeaders(array($this->_header)); + + $sender = array("zipCode" => $codePostalDepart, "city" => $communeDepart); + $receiver = array("zipCode" => $codePostalArrivee, "city" => $communeArrivee, "type" => $typeDestinataire); + $parameters = array("accountNumber" => $this->_account, "shippingDate" => $dateExpedition, "sender" => $sender, "receiver" => $receiver); + $services = $soapclient->feasibility(array('parameters' => $parameters)); + return ($services); + } + + public function putCityInNormeTnt($city) + { + $city = iconv("utf-8", 'ASCII//TRANSLIT', $city); + $city = mb_strtoupper($city, 'utf-8'); + $table = array('`' => '','\''=> '', '^' => '','À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E', + 'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', + 'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B'); + $city = strtr($city, $table); + $old = array("SAINT", "-"); + $new = array("ST", " "); + return (str_replace($old, $new, $city)); + } + + public function getPackage($info) + { + $soapclient = new SoapClient($this->_file, array('trace'=>1)); + $soapclient->__setSOAPHeaders(array($this->_header)); + + $sender = array( + 'type' => (Configuration::get('TNT_CARRIER_SHIPPING_COLLECT') ? "ENTERPRISE" : "DEPOT"), //ENTREPRISE OR DEPOT + 'typeId' => (Configuration::get('TNT_CARRIER_SHIPPING_COLLECT') ? "" : Configuration::get('TNT_CARRIER_SHIPPING_PEX')) , // code PEX if DEPOT is ON + 'name' => Configuration::get('TNT_CARRIER_SHIPPING_COMPANY'), // raison social + 'address1' => Configuration::get('TNT_CARRIER_SHIPPING_ADDRESS1'), + 'address2' => Configuration::get('TNT_CARRIER_SHIPPING_ADDRESS2'), + 'zipCode' => Configuration::get('TNT_CARRIER_SHIPPING_ZIPCODE'), + 'city' => $this->putCityInNormeTnt(Configuration::get('TNT_CARRIER_SHIPPING_CITY')), + 'contactLastName' => Configuration::get('TNT_CARRIER_SHIPPING_LASTNAME'), + 'contactFirstName' => Configuration::get('TNT_CARRIER_SHIPPING_FIRSTNAME'), + 'emailAddress' => Configuration::get('TNT_CARRIER_SHIPPING_EMAIL'), + 'phoneNumber' => Configuration::get('TNT_CARRIER_SHIPPING_PHONE'), + 'faxNumber' => '' //may be later + ); + + if ($info[4] == null) + $receiver = array( + 'type' => ($info[0]['company'] != '' ? "ENTERPRISE" : 'INDIVIDUAL'), // ENTREPRISE DEPOT DROPOFFPOINT INDIVIDUAL + 'typeId' => '', // IF DEPOT => code PEX else if DROPOFFPOINT => XETT + 'name' => ($info[0]['company'] != '' ? $info[0]['company'] : ''), + 'address1' => $info[0]['address1'], + 'address2' => $info[0]['address2'], + 'zipCode' => $info[0]['postcode'], + 'city' => $this->putCityInNormeTnt($info[0]['city']), + 'instructions' => '', + 'contactLastName' => $info[0]['lastname'], + 'contactFirstName' => $info[0]['firstname'], + 'emailAddress' => $info[0]['email'], + 'phoneNumber' => $info[0]['phone'], + 'accessCode' => '', + 'floorNumber' => '', + 'buildingId' => '', + 'sendNotification' => '' + ); + else + $receiver = array( + 'type' => 'DROPOFFPOINT', // ENTREPRISE DEPOT DROPOFFPOINT INDIVIDUAL + 'typeId' => $info[4]['code'], // IF DEPOT => code PEX else if DROPOFFPOINT => XETT + 'name' => $info[4]['name'], + 'address1' => $info[4]['address'], + 'address2' => '', + 'zipCode' => $info[4]['zipcode'], + 'city' => $info[4]['city'], + 'instructions' => '', + 'contactLastName' => $info[0]['lastname'], + 'contactFirstName' => $info[0]['firstname'], + 'emailAddress' => $info[0]['email'], + 'phoneNumber' => $info[0]['phone'], + 'accessCode' => '', + 'floorNumber' => '', + 'buildingId' => '', + 'sendNotification' => '' + ); + + foreach ($info[1]['weight'] as $k => $v) + { + $parcelRequest[$k] = array( + 'sequenceNumber' => $k + 1, // package number, there's only one at this moment + 'customerReference' => $info[0]['id_customer'], // customer ref + 'weight' => $v, + 'insuranceAmount' => '', + 'priorityGuarantee' => '', + 'comment' => '' + ); + } + + $parcelsRequest = array('parcelRequest' => $parcelRequest); + + $pickUpRequest = array( + 'media' => "EMAIL", + 'faxNumber' => "", + 'emailAddress' => Configuration::get('TNT_CARRIER_SHIPPING_EMAIL'), + 'notifySuccess' => "1", + 'service' => "", + 'lastName' => "", + 'firstName' => "", + 'phoneNumber' => Configuration::get('TNT_CARRIER_SHIPPING_PHONE'), + 'closingTime' => Configuration::get('TNT_CARRIER_SHIPPING_CLOSING'), + 'instructions' => "" + ); + + if (Configuration::get('TNT_CARRIER_SHIPPING_COLLECT') == 1) + { + $paremeters = array( + 'pickUpRequest' => $pickUpRequest, + 'shippingDate' => $info[2]['delivery_date'], + 'accountNumber' => Configuration::get('TNT_CARRIER_NUMBER_ACCOUNT'), + 'sender' => $sender, + 'receiver' => $receiver, + 'serviceCode' => $info[3]['option'], + 'quantity' => count($info[1]['weight']), //number of package; count($parcelsRequest) + 'parcelsRequest' => $parcelsRequest, + 'saturdayDelivery' => '0',//Configuration::get('TNT_CARRIER_SHIPPING_DELIVERY'), + //'paybackInfo' => $paybackInfo, + 'labelFormat' => (!Configuration::get('TNT_CARRIER_PRINT_STICKER') ? "STDA4" : Configuration::get('TNT_CARRIER_PRINT_STICKER')) + ); + } + else + { + $paremeters = array( + 'shippingDate' => $info[2]['delivery_date'], + 'accountNumber' => Configuration::get('TNT_CARRIER_NUMBER_ACCOUNT'), + 'sender' => $sender, + 'receiver' => $receiver, + 'serviceCode' => $info[3]['option'], + 'quantity' => count($info[1]['weight']), //number of package; count($parcelsRequest) + 'parcelsRequest' => $parcelsRequest, + 'saturdayDelivery' => '0',//Configuration::get('TNT_CARRIER_SHIPPING_DELIVERY'), + //'paybackInfo' => $paybackInfo, + 'labelFormat' => (!Configuration::get('TNT_CARRIER_PRINT_STICKER') ? "STDA4" : Configuration::get('TNT_CARRIER_PRINT_STICKER')) + ); + } + $package = $soapclient->expeditionCreation(array('parameters' => $paremeters)); + return $package; + } + + public function followPackage($transport) + { + $soapclient = new SoapClient($this->_file, array('trace'=>1)); + $soapclient->__setSOAPHeaders(array($this->_header)); + + $reponse = $soapclient->trackingByConsignment(array('parcelNumber' => $transport)); + + if (isset($reponse->Parcel) && $reponse->Parcel) + { + $colis = $reponse->Parcel; + $expediteur = $colis->sender; + $destinataire = $colis->receiver; + $evenements = $colis->events; + + $requestDate = new DateTime($evenements->requestDate); + $processDate = new DateTime($evenements->processDate); + $arrivalDate = new DateTime($evenements->arrivalDate); + $deliveryDepartureDate = new DateTime($evenements->deliveryDepartureDate); + $deliveryDate = new DateTime($evenements->deliveryDate); + } + + $packageParam = array( + 'number' => (isset($colis->consignmentNumber) ? $colis->consignmentNumber : ''), + 'status' => (isset($colis->shortStatus) ? $colis->shortStatus : ''), + 'account_number' => (isset($colis->accountNumber) ? $colis->accountNumber : ''), + 'service' => (isset($colis->service) ? $colis->service : ''), + 'reference' => (isset($colis->reference) ? $colis->reference : ''), + 'weight' => (isset($colis->weight) ? $colis->weight : ''), + 'expediteur_name' => (isset($expediteur->name) ? $expediteur->name : ''), + 'expediteur_addr1' => (isset($expediteur->address1) ? $expediteur->address1 : ''), + 'expediteur_addr2' => (isset($expediteur->address2) ? $expediteur->address2 : ''), + 'expediteur_zipcode' => (isset($expediteur->zipCode) ? $expediteur->zipCode : ''), + 'expediteur_city' => (isset($expediteur->city) ? $expediteur->city : ''), + 'destinataire_name' => (isset($destinataire->name) ? $destinataire->name : ''), + 'destinataire_addr1' => (isset($destinataire->address1) ? $destinataire->address1 : ''), + 'destinataire_addr2' => (isset($destinataire->address2) ? $destinataire->address2 : ''), + 'destinataire_zipcode' => (isset($destinataire->zipCode) ? $destinataire->zipCode : ''), + 'destinataire_city' => (isset($destinataire->city) ? $destinataire->city : ''), + 'request' => (isset($evenements->requestDate) ? $evenements->requestDate : ''), + 'requestDate' => (isset($requestDate) && isset($evenements->requestDate) ? $requestDate : ''), + 'process' => (isset($evenements->processDate) ? $evenements->processDate : ''), + 'process_date' => (isset($processDate) && isset($evenements->processDate) ? $processDate : ''), + 'process_center' => (isset($evenements->processCenter) ? $evenements->processCenter : ''), + 'arrival' => (isset($evenements->arrivalDepartureDate) ? $evenements->arrivalDepartureDate : ''), + 'arrival_date' => (isset($arrivalDate) ? $arrivalDate : ''), + 'arrival_center' => (isset($evenements->arrivalCenter) ? $evenements->arrivalCenter : ''), + 'delivery_departure' => (isset($evenements->deliveryDepartureDate) ? $evenements->deliveryDepartureDate : ''), + 'delivery_departure_date' => (isset($deliveryDepartureDate) ? $deliveryDepartureDate : ''), + 'delivery_departure_center' => (isset($evenements->deliveryDepartureCenter) ? $evenements->deliveryDepartureCenter : ''), + 'delivery' => (isset($evenements->deliveryDate) ? $evenements->deliveryDate : ''), + 'delivery_date' => (isset($deliveryDate) ? $deliveryDate : ''), + 'long_status' => (isset($colis->longStatus) ? $colis->longStatus : ''), + 'linkPicture' => (isset($colis->primaryPODUrl) ? $colis->primaryPODUrl : '') + ); + return $packageParam; + } +} +?> \ No newline at end of file diff --git a/modules/tntcarrier/classes/index.php b/modules/tntcarrier/classes/index.php new file mode 100644 index 000000000..477abec6f --- /dev/null +++ b/modules/tntcarrier/classes/index.php @@ -0,0 +1,36 @@ +<?php +/* +* 2007-2011 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA <contact@prestashop.com> +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision: 6594 $ +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../../../"); +exit; diff --git a/modules/tntcarrier/classes/serviceCache.php b/modules/tntcarrier/classes/serviceCache.php new file mode 100644 index 000000000..7531b9b60 --- /dev/null +++ b/modules/tntcarrier/classes/serviceCache.php @@ -0,0 +1,58 @@ +<?php + +class serviceCache +{ + private $_dateBefore; + private $_dateNow; + private $_idCard; + private $_zipCode; + + public function __construct($id_card, $zipcode) + { + $this->_dateBefore = date("Y-m-d H:i:s", mktime(date("H"), date("i") - 15, date("s"), date("m") , date("d"), date("Y"))); + $this->_dateNow = date('Y-m-d H:i:s'); + $this->_idCard = $id_card; + $this->_zipCode = $zipcode; + } + + public function getFaisabilityAtThisTime() + { + if (Db::getInstance()->getValue('SELECT * FROM `'._DB_PREFIX_.'tnt_carrier_cache_service` WHERE `date` >= "'.$this->_dateBefore.'" AND `date` <= "'.$this->_dateNow.'" AND id_card = "'.(int)($this->_idCard).'" AND zipcode = "'.$this->_zipCode.'"')) + return true; + return false; + } + + public function deletePreviousServices() + { + Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'tnt_carrier_cache_service` WHERE `id_card` = "'.(int)($this->_idCard).'"'); + } + + public static function deleteServices($idCard) + { + Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'tnt_carrier_cache_service` WHERE `id_card` = "'.(int)($idCard).'"'); + } + + public function putInCache($service, $serviceRelais) + { + if (isset($service)) + { + if (is_array($service->Service)) + foreach ($service->Service as $k => $v) + Db::getInstance()->Execute('INSERT INTO `'._DB_PREFIX_.'tnt_carrier_cache_service` (`id_card`, `code`, `date`, `zipcode`) VALUES ("'.(int)($this->_idCard).'", "'.$v->serviceCode.'","'.$this->_dateNow.'", "'.$this->_zipCode.'")'); + else + Db::getInstance()->Execute('INSERT INTO `'._DB_PREFIX_.'tnt_carrier_cache_service` (`id_card`, `code`, `date`, `zipcode`) VALUES ("'.(int)($this->_idCard).'", "'.$service->Service->serviceCode.'","'.$this->_dateNow.'", "'.$this->_zipCode.'")'); + } + if (isset($serviceRelais)) + { + foreach ($serviceRelais as $v) + Db::getInstance()->Execute('INSERT INTO `'._DB_PREFIX_.'tnt_carrier_cache_service` (`id_card`, `code`, `date`, `zipcode`) VALUES ("'.(int)($this->_idCard).'", "'.$v->serviceCode.'","'.$this->_dateNow.'", "'.$this->_zipCode.'")'); + } + } + + public function getServices() + { + return (Db::getInstance()->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'tnt_carrier_cache_service` WHERE id_card = "'.(int)($this->_idCard).'"')); + } +} + +?> \ No newline at end of file diff --git a/modules/tntcarrier/config.xml b/modules/tntcarrier/config.xml new file mode 100644 index 000000000..f0d26a86b --- /dev/null +++ b/modules/tntcarrier/config.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<module> + <name>tntcarrier</name> + <displayName><![CDATA[TNT Express]]></displayName> + <version><![CDATA[1.0]]></version> + <description><![CDATA[Offer your customers, different delivery methods with TNT]]></description> + <author><![CDATA[PrestaShop]]></author> + <tab><![CDATA[shipping_logistics]]></tab> + <is_configurable>1</is_configurable> + <need_instance>1</need_instance> + <limited_countries>fr</limited_countries> +</module> \ No newline at end of file diff --git a/modules/tntcarrier/css/index.php b/modules/tntcarrier/css/index.php new file mode 100644 index 000000000..477abec6f --- /dev/null +++ b/modules/tntcarrier/css/index.php @@ -0,0 +1,36 @@ +<?php +/* +* 2007-2011 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA <contact@prestashop.com> +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision: 6594 $ +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../../../"); +exit; diff --git a/modules/tntcarrier/css/tntB2CRelaisColis.css b/modules/tntcarrier/css/tntB2CRelaisColis.css new file mode 100644 index 000000000..488149a6f --- /dev/null +++ b/modules/tntcarrier/css/tntB2CRelaisColis.css @@ -0,0 +1,371 @@ +.tntRCHeader { + background-color: #ffffff; + background-image: url(../img/logo_24_relaiscolis.jpg); + background-position: 10px center; + background-repeat: no-repeat; + border-color: gray; + border-style: solid; + border-width: 1px; + color: #a0a0a0; + display: bloc; + font-family: arial,helvetica,sans-serif; + font-size: 30pt; + font-style: italic; + height: 75px; + padding-right: 10px; + padding-top: 25px; + text-align: right; + width: 490px; +} + +#tntRCdetailRelaisEntete .tntRCHeader +{ + width:590px; +} + +.tntRCSubHeader { + background-color: #ffffff; + border-width: 0px; + color: #a0a0a0; + display: bloc; + font-family: arial,helvetica,sans-serif; + font-size: 16pt; + font-weight: bold; + padding-bottom: 3px; + padding-top: 3px; + width: 500px; +} + +.tntRCBody { + background-color: #ffffff; + border-color: gray; + border-style: solid; + border-width: 1px; + color: #000000; + display: bloc; + font-family: arial,helvetica,sans-serif; + font-size: 12pt; + padding-bottom: 10px; + padding-left: 10px; + padding-top: 10px; + width: 490px; +} + +.tntRCBodySearch { + background-color: #ffffff; + border-color: gray; + border-style: solid; + border-width: 1px; + color: #a0a0a0; + font-family: arial,helvetica,sans-serif; + font-size: 10pt; + font-weight: bold; + padding-left: 3px; + padding-top: 8px; + padding-bottom: 8px; + width: 497px; +} + +.tntRCError { + background-color: #ff6600; + color: #ffffff; + display: bloc; + font-family: arial,helvetica,sans-serif; + font-size: 12pt; + font-weight: bold; + width: 480px; +} + +.tntRCGray { + background-color: #a0a0a0; + border-width: 0px; + display: bloc; + font-family: arial,helvetica,sans-serif; + font-size: 10pt; + heigth: 12px; + width: 480px; +} + +.tntRCInput { + background-color: #ffffff; + font-family: arial,helvetica,sans-serif; + font-size: 10pt; + font-weight: normal; + text-align: center; + width: 50px; +} + +.tntRCWhite { + background-color: #ffffff; + border-width: 0px; + display: bloc; + font-family: arial,helvetica,sans-serif; + font-size: 14pt; + width: 500px; +} + +.tntRCrelaisColis { + font-family: arial,helvetica,sans-serif; + font-size: 10px; + color: #000000; + border-bottom-style: solid; + border-bottom-color: #a0a0a0; + border-bottom-width: 1px; + background-color: #ffffff; + padding-bottom: 3px; + vertical-align: middle; +} + +.tntRCtitreMode { + font-family: arial,helvetica,sans-serif; + font-size: 28px; + color: #a0a0a0; + font-style: italic; + background-color: #ffffff; +} + +.tntRCchoix { + font-family: arial,helvetica,sans-serif; + font-size: 14px; + color: #a0a0a0; + font-weight: bold; + background-color: #ffffff; +} +.tntRCdetailGros { + font-family: arial,helvetica,sans-serif; + font-size: 14pt; + color: #a0a0a0; + background-color: #ffffff; +} + +.tntRCnoirPetit { + font-family: arial,helvetica,sans-serif; + font-size: 12pt; + color: #000000; + background-color: #ffffff; +} + +.tntRCdetailPetit { + font-family: arial,helvetica,sans-serif; + font-size: 12pt; + color: #a0a0a0; + background-color: #ffffff; + font-weight: bold; +} + +.tntRCentree { + font-family: arial,helvetica,sans-serif; + font-size: 12pt; + color: #000000; + background-color: #ffffff; + vertical-align: middle; +} + +.tntRCgris { + font-family: arial,helvetica,sans-serif; + font-size: 10pt; + color: #ffffff; + background-color: #a0a0a0; + font-weight: bold; +} + +table.tntRCHoraire td { + border: 1px solid gray; + font-family: arial,helvetica,sans-serif; + font-size: 10pt; + vertical-align: middle; +} + +.tntRCHoraireJour{ + color: #a0a0a0; + text-align: right; + padding-right: 10px; + height: 36px; + width: 79px; + font-weight: bold; +} + +.tntRCHoraireHeure { + color: #000000; + padding-left: 10px; + width: 84px; +} + +.tntRCblanc { + font-family: arial,helvetica,sans-serif; + font-size: 12px; + color: #000000; + background-color: #ffffff; + padding-top: 4px; + padding-bottom: 3px; +} + .tntRCblancpetit { + font-family: arial,helvetica,sans-serif; + font-size: 12px; + color: #000000; + background-color: #ffffff; + padding-top: 4px; + padding-bottom: 3px; +} + .tntRCfermeture { + padding-left: 585px; +} + + .tntRCBack2Communes { + background-color: #ffffff; + color: #a0a0a0; + font-family: arial,helvetica,sans-serif; + font-style: italic; + font-size: 11pt; + font-weight: bold; + padding-top: 18px; + text-align: right; +} + + .tntRCBack2Communes a { + color: #a0a0a0; + text-decoration: none; + padding-right: 5px; +} + + .tntRCBack2Communes a img{ + border: 0; + padding-right: 5px; + vertical-align: text-bottom; +} + + .tntRCBoutonLoupe { + background-color: #ffffff; + border: 0px; + color: #000000; + font-family: arial,helvetica,sans-serif; + font-size: 12px; + padding-top: 4px; + padding-bottom: 3px; + text-decoration: none; + vertical-align: middle; +} + .jqmWindow { + background-color: #FFF; + border: 1px solid black; + color: #333; + display: none; + padding: 12px; + position: fixed; + left: 50%; + margin-left: -300px; + margin-top: -240px; + width: 500px; +} + + div.tntRCfermeture .jqmClose em{display:none;} + div.tntRCfermeture .jqmClose { + background: transparent url(../modules/tntcarrier/img/close_icon_double.png) 0 0 no-repeat; + display: block; + width: 20px; + height: 20px; +} + + div.tntRCfermeture a.jqmClose:hover{ background-position: 0 -20px; } + + .jqmOverlay { + background-color: #000; + overflow: hidden; +} + + * html .jqmWindow { + position: absolute; + top: expression((document.documentElement.scrollTop || document.body.scrollTop) + Math.round(17 * (document.documentElement.offsetHeight || document.body.clientHeight) / 100) + 'px'); +} + + img.tntRCButton { + border: 0px; + vertical-align: middle; + text-decoration: none; +} + + sup.tntRCSup { + +} + + table.horairesRC td { + width : 100%; + margin: 0px; + padding: 0px; + } + + table.horairesRCPopup { + width : 100%; + margin: 0px; + padding: 0px; + } + + table.horairesRCPopup tr.selected td { + background-color: #eeeeee; + color: #ff6600; + } + + td.horaireRCPopup { + width : 60%; + } + + td.horairesRCJourPopup { + width : 40%; + font-weight: bold; + color: #808080; + } + + td.horairesRCJour { + font-weight: bold; + color: #808080; + } + table.horairesRC tr.selected td { + background-color: #eeeeee; + color: #ff6600; + } + + div.ag { + background-image: url(/img/google/agenceTnt.png); + background-repeat: no-repeat; + padding-left:60px; + } + + div.rc { + background-image: url(/img/google/relaisColis.png); + background-repeat: no-repeat; + padding-left:50px; + } + + +#googleMapTnt .lien_reset { + color : #ff6600; + font-family: arial,helvetica,sans-serif; + font-weight: bold; + font-size : 15px; + text-decoration:none; +} + +#googleMapTnt a { + color: #f60; + outline-color: #f60 !important; + outline: none; +} + +#googleMapTnt a:hover { + text-decoration: none; +} + +#googleMapTnt .exemplePresentation { + display: inline; + margin-top: 10px; +} + + #tntB2CRelaisColis { + width: 610px; +} + +.detailRelais +{ + background: url("../img/ui-dialog/fcfdfd_40x100_textures_06_inset_hard_100.png") repeat-x scroll 0 bottom #FCFDFD; + height:400px; +} \ No newline at end of file diff --git a/modules/tntcarrier/css/ui.dialog.css b/modules/tntcarrier/css/ui.dialog.css new file mode 100644 index 000000000..3c91bfad6 --- /dev/null +++ b/modules/tntcarrier/css/ui.dialog.css @@ -0,0 +1,158 @@ +/* + * jQuery UI screen structure and presentation + * This CSS file was generated by ThemeRoller, a Filament Group Project for jQuery UI + * Author: Scott Jehl, scott@filamentgroup.com, http://www.filamentgroup.com + * Visit ThemeRoller.com +*/ + +/* + * Note: If your ThemeRoller settings have a font size set in ems, your components will scale according to their parent element's font size. + * As a rule of thumb, set your body's font size to 62.5% to make 1em = 10px. + * body {font-size: 62.5%;} +*/ + + +/*dialog*/ +#googleMapTnt .ui-dialog { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; + font-size: 11px; + background: #fcfdfd url(../img/ui-dialog/fcfdfd_40x100_textures_06_inset_hard_100.png) 0 bottom repeat-x; + color: #222222; + border: 3px solid #808080; + position: relative; +} +#googleMapTnt .ui-resizable-handle { + position: absolute; + font-size: 0.1px; + z-index: 99999; +} +#googleMapTnt .ui-resizable .ui-resizable-handle { + display: block; +} +#googleMapTnt .ui-resizable-disabled .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */ +#googleMapTnt .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */ +#googleMapTnt .ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0px; +} +#googleMapTnt .ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0px; +} +#googleMapTnt .ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0px; + height: 100%; +} +#googleMapTnt .ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0px; + height: 100%; +} +#googleMapTnt .ui-resizable-se { + cursor: se-resize; + width: 13px; + height: 13px; + right: 0px; + bottom: 0px; + background: url(../img/ui-dialog/469bdd_11x11_icon_resize_se.gif) no-repeat 0 0; +} +#googleMapTnt .ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: 0px; + bottom: 0px; +} +#googleMapTnt .ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: 0px; + top: 0px; +} +#googleMapTnt .ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: 0px; + top: 0px; +} +#googleMapTnt .ui-dialog-titlebar { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + padding: 5px 15px 5px 10px; + color: #2e6e9e; + border-bottom: 1px solid #c5dbec; + font-size: 10px; + font-weight: bold; + position: relative; +} +#googleMapTnt .ui-dialog-title {} +#googleMapTnt .ui-dialog-titlebar-close { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + background: url(../img/ui-dialog/6da8d5_11x11_icon_close.gif) 0 0 no-repeat; + position: absolute; + right: 8px; + top: 7px; + width: 11px; + height: 11px; + z-index: 100; +} +#googleMapTnt .ui-dialog-titlebar-close-hover, .ui-dialog-titlebar-close:hover { + background: url(../img/ui-dialog/217bc0_11x11_icon_close.gif) 0 0 no-repeat; +} +#googleMapTnt .ui-dialog-titlebar-close:active { + background: url(../img/ui-dialog/f9bd01_11x11_icon_close.gif) 0 0 no-repeat; +} +#googleMapTnt .ui-dialog-titlebar-close span { + display: none; +} +#googleMapTnt .ui-dialog-content { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + color: #222222; + padding: 15px 17px; +} +#googleMapTnt .ui-dialog-buttonpane { + position: absolute; + bottom: 0; + width: 100%; + text-align: left; + border-top: 1px solid #a6c9e2; + background: #fcfdfd; +} +#googleMapTnt .ui-dialog-buttonpane button { + margin: 5px 0 5px 8px; + color: #2e6e9e; + background: #dfeffc url(../img/ui-dialog/dfeffc_40x100_textures_02_glass_85.png) 0 50% repeat-x; + font-size: 1; + border: 10px solid #c5dbec; + cursor: pointer; + padding: 2px 6px 3px 6px; + line-height: 14px; +} +#googleMapTnt .ui-dialog-buttonpane button:hover { + color: #1d5987; + background: #d0e5f5 url(../img/ui-dialog/d0e5f5_40x100_textures_02_glass_75.png) 0 50% repeat-x; + border: 1px solid #79b7e7; +} +#googleMapTnt .ui-dialog-buttonpane button:active { + color: #e17009; + background: #f5f8f9 url(../img/ui-dialog/f5f8f9_40x100_textures_06_inset_hard_100.png) 0 50% repeat-x; + border: 1px solid #79b7e7; +} +/* This file skins dialog */ +#googleMapTnt .ui-dialog.ui-draggable .ui-dialog-titlebar, +#googleMapTnt .ui-dialog.ui-draggable .ui-dialog-titlebar { + cursor: move; +} diff --git a/modules/tntcarrier/css/ui.tabs.css b/modules/tntcarrier/css/ui.tabs.css new file mode 100644 index 000000000..2f1954ca4 --- /dev/null +++ b/modules/tntcarrier/css/ui.tabs.css @@ -0,0 +1,62 @@ +/*UI tabs*/ +.ui-tabs-nav { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; /*font-size: 100%;*/ list-style: none; + font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; + font-size: 10px; + float: left; + position: relative; + z-index: 1; + /*border-right: 1px solid #c5dbec;*/ + bottom: -1px; +} +.ui-tabs-nav ul { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; /*font-size: 100%;*/ list-style: none; +} + +.ui-tabs-nav li { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; /*font-size: 100%;*/ list-style: none; + float: left; + border: 1px solid #c5dbec; + border-right: none; +} + +.ui-tabs-nav li a { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; /*font-size: 100%;*/ list-style: none; + float: left; + font-size: 10px; + font-weight: bold; + text-decoration: none; + padding: .2em 1em; + color: #2e6e9e; + background: #dfeffc url(../img/ui-dialog/dfeffc_40x100_textures_02_glass_85.png) 0 50% repeat-x; +} + +.ui-tabs-nav li a:hover { + background: #d0e5f5 url(../img/ui-dialog/d0e5f5_40x100_textures_02_glass_75.png) 0 50% repeat-x; + color: #1d5987; +} + +.ui-tabs-nav li.ui-tabs-selected { + border-bottom-color: #f5f8f9; +} + +.ui-tabs-nav li.ui-tabs-selected a, .ui-tabs-nav li.ui-tabs-selected a:hover { + background: #f5f8f9 url(../img/ui-dialog/f5f8f9_40x100_textures_06_inset_hard_100.png) 0 50% repeat-x; + color: #e17009; +} + +.ui-tabs-panel { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; /*font-size: 100%;*/ list-style: none; + /*font-family: Lucida Grande, Lucida Sans, Arial, sans-serif;*/ + clear:left; + border: 1px solid #c5dbec; + background: #fcfdfd url(../img/ui-dialog/fcfdfd_40x100_textures_06_inset_hard_100.png) 0 bottom repeat-x; + /*color: #222222;*/ + padding: 1em 1em; + width: 315px; + font-size: 10px; +} + +.ui-tabs-hide { + display: none;/* for accessible hiding: position: absolute; left: -99999999px*/; +} \ No newline at end of file diff --git a/modules/tntcarrier/follow.php b/modules/tntcarrier/follow.php new file mode 100644 index 000000000..a8018ca38 --- /dev/null +++ b/modules/tntcarrier/follow.php @@ -0,0 +1,27 @@ +<?php +require('../../config/config.inc.php'); +require_once(_PS_MODULE_DIR_."/tntcarrier/classes/TntWebService.php"); + +global $smarty; + +try +{ + $tntWebService = new TntWebService(); + $follow[] = $tntWebService->followPackage($_GET['code']); +} +catch( SoapFault $e ) +{ + $erreur = $e->faultstring; + echo $erreur; +} +catch( Exception $e ) +{ + $erreur = "Problem : follow failed"; +} +$config['date'] = '%d/%m/%y'; +$config['time'] = '%I:%M %p'; +$smarty->assign('erreur', $erreur); +$smarty->assign('config',$config); +$smarty->assign( 'follow', $follow ); +$smarty->display('tpl/follow.tpl' ); +?> \ No newline at end of file diff --git a/modules/tntcarrier/fr.php b/modules/tntcarrier/fr.php new file mode 100644 index 000000000..5704dbbb5 --- /dev/null +++ b/modules/tntcarrier/fr.php @@ -0,0 +1,90 @@ +<?php + +global $_MODULE; +$_MODULE = array(); +$_MODULE['<{tntcarrier}prestashop>tntcarrier_58ec6a48b4720ef0aa2adfded1ccf8a3'] = 'TNT Express'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_9b7637001f5d2bcb42efb4ab6b3e93da'] = 'Offre aux clients, différentes methodes de livraison'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_416900392875e9effb318da8648fbdcb'] = 'doit ou doivent etre configuré(s) pour utiliser le module correctement'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_632cae5cf3af08786414932a8e6f96a0'] = 'Pseudonyme TNT'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_3b4f51300711a1eb61770d1696702402'] = 'Mot de passe TNT'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_0e3b102c1a4938889716cea423a95001'] = 'Numéro de compte TNT'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_e81d9f25acf7fa457ab32527a882ed50'] = 'Transporteur TNT'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_d968787921c136e1cf9f766562aec8bc'] = 'Les paramètres suivants vous ont été fournis par TNT'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_af7c2efe81330e4c9089f2c90781282e'] = 'Si vous n\'êtes pas encore inscrit, cliquez sur'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_6c92285fa6d3e827b198d120ea3ac674'] = 'ici'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_8af703b2bf59cc9742883ae7f4cb0e5b'] = 'Paramètres du compte'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_927e079056c2709236d4167bbb96e799'] = 'Réglages d\'expédition'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_82fe86ee1a21af1c1db5c8c4c5e5a188'] = 'Paramètres du service'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_160f61d02d22b76b47b4305094bf36a6'] = 'Compte TNT'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_99dea78007133396a7b8ed70578ac6ae'] = 'Identifiant'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_dc647eb65e6711e155375218212b3964'] = 'Mot de passe'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_05e642d027a22d12780ccf91bf9d7d34'] = 'Numéro de compte'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_8005dfbbaf4c9333592f26e82ddfd0af'] = 'Remplissez le formulaire avec les données'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_ea9cf7e47ff33b2be14e6dd07cbcefc6'] = 'Expédition'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_4d8ff211a4a8a140e293736f92ac39d5'] = 'Aimeriez-vous que TNT ramasse votre colis ?'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_581bf6fa6cd6d4bf4b0bbe2cfe6e404c'] = 'Non (via un dépôt)'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_93cba07454f06a4a960172bbd6e2a435'] = 'Oui'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_f5234754269687df652c9f6f2f80cc10'] = 'Choisissez votre emplacement dépositaire'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_e7a7e191423e6a9ce3b59fd51ecbde87'] = 'Le code pex'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_e7b47c58815acf1d3afa59a84b5db7fb'] = 'Nom de l\'entreprise'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_8d3f5eff9c40ee315d452392bed5309b'] = 'Nom de famille'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_20db0bfeecd8fe60533206a2b5e9891a'] = 'Prénom'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_e9f79aa2b1f455a52497a126d9442582'] = 'Adresse ligne 1'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_3d4d4cac03e194ab20154382cd544e0f'] = 'Adresse ligne 2'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_d30f507473129e70c4b962ceccf175cf'] = 'Zip / Code Postal'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_d0585aac6bb77bb49423b2effca0e067'] = 'Votre ville'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_f775ad1fbb08939178d4df9c457601f2'] = 'Votre adresse email'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_67c19a5276428fb9e49c557b1a3526d5'] = 'Votre numéro de téléphone'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_6222760252f52bb4dc70835d238d5484'] = 'Votre heure de clôture'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_cf67059a7bd51c3543def1ee4bdc4fe1'] = 'Livraison le samedi'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_bafd7322c6e97d25b6299b5d6fe8920b'] = 'Aucun'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_dc86b23a40568ae3ece2d3008ca61442'] = 'Format de l\'étiquette pour l\'impression (Cette étiquette doit être collée sur l\'emballage)'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_2976cd63d00184e3f0a45c1337cd31f0'] = 'Impression A4'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_2f95a5450ee306f7faca792e379ccb34'] = 'sans imprimer le logo de TNT'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_44fca4829aecbdf69a2200ea0a10a8aa'] = 'avec une impression inverse'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_a67ee8b3121d0ceb601e9f0600db9692'] = 'sans imprimer le logo TNT et avec une impression inverse'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_1c85ce46031e67c95be9aa05b859f955'] = 'Nouveau service'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_b718adec73e04ce3ec720dd11a06a308'] = 'ID'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_49ee3087348e8d44e1feda1917443987'] = 'Nom'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_b5a7adde1af5c87d7fd797b6245c2a39'] = 'Description'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_ca0dbad92a874b2f69b549293387925e'] = 'Code'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_7ec0def44906b0cd2848459349eea638'] = 'Frais additionnels (€)'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_cb456215c3333db0551bd0788bc258c7'] = 'Activé'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_de95b43bceeb4b998aed4aed5cef1ae7'] = 'modifier'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_099af53f601532dbd31e0ea99ffdeb64'] = 'supprimer'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_7b9cf007806ed854cd12ab800c8a982b'] = 'Lieu'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_b06cdf3c0c75a1a58b82761f87f458e4'] = 'Etat du module transporteur TNT'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_4c7b2960da33c41e9bbea499696702ca'] = 'Le module transporteur TNT est configuré et en ligne'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_efce38300739e2fd6cef1acd9ce68a1c'] = 'Le module transporteur TNT n\'est pas encore configuré, s\'il vous plait :'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_a8341741d73ef0a3ca5e8a7facc9a738'] = 'Assurez vous d\'avoir un compte TNT'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_3dab1e2673a4acc557135ccf795d4e31'] = 'Assurez vous d\'avoir une adresse correcte d\'expedition'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_057c674e4d23b04c0cbe1bfe81a0bec1'] = 'Assurez vous que certains services sont actifs'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_9d5b24e0e3516fcef94916366fadae67'] = 'Nouvelle option Poids'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_02f6a536789c7b8399ddbd1652d85d9c'] = 'Poids Min'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_03b4258831663af9e7f48bc6bc574e6c'] = 'Poids Max'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_7dce122004969d56ae2e0245cb754d35'] = 'Modifier'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_f2a6c498fb90ee345d997f888fce3b18'] = 'Supprimer'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_0619bef93192e574f288fe2e55c3a7f7'] = 'Poids min'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_d8c74112ba3622be2e79d4d4dc24eaf4'] = 'Poids max'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_508ccf43328cac4c93d1de242d2ddffb'] = 'Frais additionnels'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_69d865b41dc0e6611be76776c4a9456d'] = 'Vous devez donner un nom au service'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_e71361626c48f42620b92cc81fd41ba2'] = 'Vous devez donner un code au service'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_d2f2575c30fa33e53905ae05bc02f281'] = 'Vous devez donner une description au service'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_4a015051e9e879952cf4215d344ec101'] = 'Service enregistré'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_74d87a5cbf64f95c490b2cf85710a4eb'] = 'Le(s) numéro(s) d\'expédition(s)'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_2fd7870126dd86cedc2be112e7e59ebc'] = 'L\'étiquette'; +$_MODULE['<{tntcarrier}prestashop>tntcarrier_d5aad80114d8aa47f31a6f5050ef6835'] = 'Expédition'; +$_MODULE['<{tntcarrier}prestashop>formerror_c3f15ecc6da0827a8da712cb43a0b596'] = 'information d\'expédition'; +$_MODULE['<{tntcarrier}prestashop>formerror_7f090bbab1cc7f9c08bf4e54d932d3c0'] = 'Modifier'; +$_MODULE['<{tntcarrier}prestashop>service_ca0dbad92a874b2f69b549293387925e'] = 'Code'; +$_MODULE['<{tntcarrier}prestashop>service_41350c4c9683f48b15d04adc3f76925b'] = '08h00 express'; +$_MODULE['<{tntcarrier}prestashop>service_4b0977efd9aa11417b7139f35ed777a0'] = '09h00 express'; +$_MODULE['<{tntcarrier}prestashop>service_9b75b9fc3e87626793da04f05b8388ac'] = '10:00 express'; +$_MODULE['<{tntcarrier}prestashop>service_5a3019af5fd97f13e43cb4d946b7c112'] = '12:00 express'; +$_MODULE['<{tntcarrier}prestashop>service_b144fa061545497bebee8c414efc99a9'] = 'Express'; +$_MODULE['<{tntcarrier}prestashop>service_7a93a32c1929f10098c9bc055dbe5555'] = 'Express (P)'; +$_MODULE['<{tntcarrier}prestashop>service_c24eb7cd3484f223c03e64f2728a61ae'] = 'Option code (facultatif)'; +$_MODULE['<{tntcarrier}prestashop>service_b5410e878f792a03b81e7803a626caaa'] = 'Colis relais'; +$_MODULE['<{tntcarrier}prestashop>service_6cefaa978ccec960693d10cefeb2c2bf'] = 'Livraison à domicile'; +$_MODULE['<{tntcarrier}prestashop>service_9582039a366d19cb0b957bd4220dd6f7'] = 'Service entreprise '; +$_MODULE['<{tntcarrier}prestashop>shippingnumber_c3f15ecc6da0827a8da712cb43a0b596'] = 'L\'information d\'expédition'; diff --git a/modules/tntcarrier/img/5-puce-choix-gris2.gif b/modules/tntcarrier/img/5-puce-choix-gris2.gif new file mode 100644 index 0000000000000000000000000000000000000000..609487a2977e7d29f37eff44dbaba3ffcb448bd8 GIT binary patch literal 894 zcmZ?wbhEHb<YC}p_|Cwvc=6)@|NsB}`*-u^%}bXqy?*`rjT<*UfByXS>(_JV&OLbW z;KYd&J9qBfwQJY2XV0!&xw3x!`W-uVynXxj)~#Dxwrp9xeEFe6hZsh|Xb23=5YPcR z8<ZCqIFcEdSp*UmFfuan@^A=9Ffg(*2q*_R7!)uxaB?a+$v6lsYGPnFax*!g@Ti%Y zQAMZWL_>ocgP5IFL&1lqOzezlVI2uVOT9V-xhhyRg_0N<#SHg7xpCo9P!|)cNXCIr KD-JX;SOWmkGFNc` literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/Thumbs.db b/modules/tntcarrier/img/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..0698e65d0d936c20112d5f01323a477ab2a4e3ca GIT binary patch literal 54784 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 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/bt-CodePostal-1.jpg b/modules/tntcarrier/img/bt-CodePostal-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3f3b462d4828e78775c1ab8cc8b7356b9af58eb9 GIT binary patch literal 1788 zcmbV~cT|&C7{>3HFChUUib)VK7^W;483@RTQC1vaKq7k7stf@^BnYNR0^+Emh&Vt{ z0i`Sf#l<LsB4R*g36*7341%Ijw(K;N)_QvCIc?v2?qBcoKIi$}_exqNufe=k4on9C zK@iv`JwVb4l<c{FJ^(P81^@&8EJ+7g2{1A;Xc-g+jYiALV&t&+Iaqmltjc`cT)dhp zX_1;Lk*Kb1tgEiMM2kq&GuK~YN~Y0hBwb4z3yQTdl}4E{fn;T6vGQ2uIdhaL8bl4s ze=f;=pojs=;5rOx0)!$2D?*ZofCK=9l2Xio{811BMxtcU7+E=aso>5$fPi2afrL>g zBvPv8N&5h)h?=iKX2{@J+tHfAc*=qJ%NVT{H!29OjeXkG9h_)cIi&^4Dylk*b@lWO zXl6^zEi9L<w6k|`bYiY@Tkp=^;IVO&r<b?SPG3L&kiDT{`?x=bA3SvU$WKR)#hgBK z_FO{Z`K074=|5*=W@YDGy?N{Qox-Bxl3yNFKCF5qsIGbZtf~3e=Pj*m?VWE#U2nU4 z-o5Yb9~c}O9{DmlHa^1z0eBYcE7{+;6s24UBoaoVXSg85KIw%Okthwa%zOq5y*(JG zNjZSQuZX{Vqe51T>e@%x!D*CJ(x!Fl^v|IEPWJD>qW>4!SFpdh+5r}Zq|1X90UeCA z?bg1V>=f8-TDcH^+8qut58d2HZb-eqx0YdcBp$o}Q~tAni#`!gpYm)2PV;gNoy*9r zb|-_?(NF8Y3=Z;3u8zlwB7OZ@bo!AB-7bu?>bRll+fZg?r!s=_e5t`!?<m7fprX|a zv9xRFE5iN>Ee8ombB~*bvqm@Q=lip^8mGQ>^3a)d<P3do7@{Ah82NbLEMYF%NC-+s z1(`<Yq~r<rP@6-ZMJ@aMF?Qkf0XBV9A+^(S#35D!mgkZt(Jp=0G(vY379OGBc{1St zK)s@F4gXM&HZR02GoKsK!>~S#W09$!tP+SP23z{m6e_>Xz?zCrk8CgyNC4C{X&AGG z-RIYG!B{7F>WcfNF7>?4kqg{O&PlYfP{VZ39hu^SP}I8qRc*dwuWx{&mU8NHwZw0O zT<zb)<?k;&?lJTMXIB2ojQ==&cV~Q^DR(HZ%#D>|q#5E{+hY)sWvSIX6`WkPpvm60 z%;?04ftxFD9IKfq<Bg^%bbLSErN&`>r{X!wYB1a1zF{X4Ipzf_Jt?DgR_jCj148{0 zx_f;+St^B!<b~s(M5CqfsXdmWe6aUbo2vN~A}_K}js76_MLU;YUo$xL0Y8}G;VA+3 zZizN%xV_|_cy+zldhB{P@7B(9#o~db!vg2BDQ>NM`Mu;_#r#ICptWquu@vOCh^(;& zbl|tIrZ-*Pc<&uSY8Lf=nozwsCn7XKXyIxccC?*6c3I#BFPbRh=7x7?XlBGETE`#! zQJHgsVOZx_Jd&nx=KHj#rMq~aHNWJz_<~*O$<JE*HcwfNhp=k0g%`Aid)eB>@f#wp zr36G)CZV-@U93ZA7OQJ7ESfN`3|0}GN)o(Xlj__c&hJXuLaFkMU0upcat10kxv_<J z=^d<>MeRju7V%}%VcUdOu)yLGwT@a#>%Fzg#B<Q2(l&YEe7ghhB!`?}J0*j@1Hw*u zybochRbAw-sJ`4NZmp_NA!7M<e1cDVuhVX&XWcHQ<q<grGLszlC{dWD=-OPEa3JG{ zfX0uBHbx@S=(}vQCnY{jYDUKw##TP=XtC@e9r1-7H#X|xY=qH4FZVGq>clVJ;`-pt zU5Q5Wfk|G+?v-j1=-F3dz|Ibl1f)dA6-hs-4GO;w8X1*<p0rFR_hd2dtPR7>9uHb| zqlGH2YZ7*RbYbh}n3>Fu#OQ&Eh{(YP*6f7T%k~v%atO~Wr;okUyAm~b){+zyHytjg zmj;XbC7_<M?!{VE{kd{i>k{PgIF>ygGXLiQ>9caFU<q|Krz7x9f=?Y;RY?Md`DV?& f$x8~HOiY&JfL$=0YGT8rzZ46c!@FbjU`g9=kTn@v literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/bt-CodePostal-2.jpg b/modules/tntcarrier/img/bt-CodePostal-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..395a31b95b410ca10453e92962f1417616646100 GIT binary patch literal 1968 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 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/bt-Continuer-1.jpg b/modules/tntcarrier/img/bt-Continuer-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5736669839360c624c7954d3cdd1f3601ff54574 GIT binary patch literal 1231 zcmex=<NpH&0WUXCHwH#VMur3+WcdG(LCm!xGmU}4(^HFqg8>Hq-)3-T;9z58XJh4H zXJ_Z+<ly2F;pO4x=8+T<<`<Ebl9!W}l95qR(NkAY(ovR?(J<H4F)%bSF_Bldw6!p@ z(K9wN0vW={$;rvX%_G6fD`BK4qi94j_<w*wkb^;jA(WX>iGfLwky()O{}Bdx1_nk} zpf5lkfdWP*W)@a9b`DN1ZlHp#0t`%y%*;$I%&e>|EI`$@KzRlhK~^C}Lq|5@z(jVX zLJ_0Ji3>TDoi-j64Z8S2#W<;`iIYoATtZSxRZU$(Q_IBE%-q7#%Gt%$&E3P(D>x)H zEIcAIDmf)JEj=SMtGJ}Jth}PKs=1}Lt-YhOYtrN?Q>RUzF>}_U#Y>hhTfSoDs!f}> zY~8kf$Ie}c4j(ys?D&b3r!HN-a`oEv8#iw~eDwIq(`V0LynOZX)8{W=zkUDl^B2fp zj10^WZ^3<r<}X2@znEB9m|56C{$gY*2V!PH7FI<=HX+AA_QXPAC8I_T5vPd@Hy-3v zHV*nAnpAX=OH9S&q3TDF*T6m_&SOnv`3&wcguiYv@Gvt1Bac~-!JgsU%{-MovpjO2 z861`tnH0)gY+f4k!SKTT10`o2P1`2&RKHt$DQ8Yv&6zW`b~%%3S8Mz2HN4@{SE#^# z=KS~1pX+w6`qlfmJ|pwG>PHs7Xa0^;6okM0+rqdtH+?~Do59O%Dhm&5N3Gg4C!Ixb z;*Tr;8E#6M|7BWJ|3TLN(9XBck(s#xw@#H+zSwkPri4?a!heRqOPilwdH3&R+Ww5G z;lDkUEQ)tNI(f{${`fi#<_%VUT?@o6y<zjSY_$3p%DQ!V`+J-B%6=Q`)xz5Rzl2H@ zUMaGD-LqrYq*oG0KAn1<zxoaDGlSc5)pNeRsp^lK@@l$^;J2N}|M-<X@u<K0pP~Ha z+e;1B`EPoq|22l$|KOYd(EXcR?|%k|)$)JX{XeYJ{~h$^5c{pvn`~=0Z2LT4L$0T~ zulnNOwG}z}UjE9=D~&drwB&RvH&m_oRdR9x-{s%R?r)dgWPYXKP(M}v<_G7`k)Eon z`{qRpwZCfbe^UFpcY4q+Gc&Ec+w1|M{32_o_0QuL;I6HHY<f}mM<|2g0f{Hi8qC(b z=lPcs)G%Ez!K$xCuE)0DexmG(b<#(Q@B5pu`y1tR)!d!=@{i^5KU`f5_pg<B9ywp0 zF#G%5OHLf@wl}Mb?}S^bo_4yO7O9l~?nJBqD~&}BlHY#(XL!C~@!OC88O}SpiZImf zv;X-*<9AK{=L><Z4D$K?|Ejp`?#uuAA`<Ape*5u%hIvhEqmEbB9L&vKI@$hM$SVHT na`tOQ0@xFmyv$y9d)qgm7|&+q$9-0eZ|qloUDTz){Qo8ZzzzE0 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/bt-Continuer-2.jpg b/modules/tntcarrier/img/bt-Continuer-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..04a1f19ac701a3b0b4dd115b437430e238f82a54 GIT binary patch literal 1285 zcmex=<NpH&0WUXCHwH#VMur3+WcYuZ!I^=Bjg6g+m4ls~os*M;i${c)hnt&6Qb?Fz zL{>^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<<Uft5x!pKI?*u)5A2qPyaCl5D|1TU|I zk)n*E5y{~H0R}-11__2xW=16jCP7AKLB{__7~~lk7+Ha?1vwZB7@3$^SlQS)IJvli z3bqO`FflSSGqEtUva+xMRo4RL8CV2ag%k}P*@OcV*_8@Kj2b5{<WP3ncu+Lx;s+Ju zq@pHHE-`TlNhwt|bq!4|6H_yD3rj0!7gslT4^OY)kkGL3h{&kql+?8JjLfX!lG3vB zipr|yme#iRj?S)0lc!9bHhsp-S&J4gS-Ncbij}K2ZQinV+x8thcO5!><mj>ECr+Na zbot8FYu9hwy!G(W<0ns_J%91?)yGetzkL1n{m0K=Ab&A3Fhjfr_ZgbM1cClyVqsxs zVF&q(k*OSrnFU!`6%E;h90S=C3x$=88aYIqCNA7~kW<+>=!0ld(M2vX6_bamA3<IN z`;0h`HId~rxW^Fwy2Zf5%m|D;W<dsfhVSf?vVW#@-3#Us+~}zqz-`R8YUhLGg?4-R z+_E&k>{a9Vb9!~jbal!3#>VpgvsLD2O?LjzFhO@+-M{<y>i19H{qgRswQIDGugWxE zcRT0plL_ZM9+oR|9r?!ae0~)}>9)BG;@AydZc|x!cy-jOO>@#&Jy;4~2mfbC%=pjn zg=^z~h65%48Ms!idgYcaaqm#jg}=*GcFeMAP*Ta$x^eLF4x8fhqLXd!e%NriamUQS ztxMZ9S=viBq&A#<$G@+*A%l5AuCQAGcV-#0I<wi!>z`KW0!`z;_wzqP`sFq8C#Ei( z{8!ZNdfeiP?_<th_O8sAzok0!@s^M56Xee(ZqoT~`E~-coLhy>m1Dm?G}&D*Fn$!T ztmOP}{qOnjewQrZTl|~b{XfHk(EfkS%YOv^ZC(7I;eyuj{|t<m|7gz=-+nfCVzK%3 z?DaqO{w1Dhkn1Tv@q91Se};fu{oqNOOG;x?7nN5=*6c7cZhNvoZt((@3+TbGnw zTGRMd>=pl~#lO`g>asOewiaGKofPml;NzeEy~Uej<Nh<GzD&4h7-?G4nbH()y~y&X z_k^X#b3XAgo-NZ_7@~2G;kdf`=LKBfw)<*MlANM?B;wxUh3t#@lbe4E-s*Z<lc(={ zcK)}r{|x5ImAj4Sq~xBne-IMD?(y+#vd*O2N79<y?yG1yq~^WZ`QZ7EKea3Ew|)6| zWb#klzc(i?wx7)CD#B2oms$V$KLh*U@9y88P5;ke|DpbVNuUEef`d>&obqf}^V6v! y+x@CUoK}9-b2I#M@|#JZgYd0eTiiUCC43ipu$!-eugkXGex~h<MO_U4Zvp^27aoiN literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/bt-OK-1.jpg b/modules/tntcarrier/img/bt-OK-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8a49e76b636f2da3f0e9003205bcda1ff82329df GIT binary patch literal 961 zcmex=<NpH&0WUXCHwH#VMur3+WcYuZ!I^=Bjg6g+m4ls~os*M;i${c)hnt&6Qb?Fz zL{>^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<<Uft5x!pKI?*u)5A2qPyaCl5D|1TU|I zk)n*E5y{~H0R}-11_=gTW=16jCP7AKLB{__7~~lk7+Ha?1vwZB7@3$^SlQS)IJvli z3bqO`FflSSGqEtUva+xMRo4RL8CV2ag%k}P*@OcV*_8@Kj2b5{<WP3ncu+Lx;s+Ju zq@pHHE-`TlNhwt|bq!4|6H_yD3rj0!7gslT4^OY)kkGL3h{&kql+?8JjLfX!lG3vB zipr|yme#iRj?S)0lc!9bHhsp-S&J4gS-Ncbij}K2ZQinV+x8thcO5!><mj>ECr+Na zbot8FYu9hwy!G(W<0ns_J%91?)yGetzkL1n{m0K=Ab&A3Fhjfr_ZgbM1cClyVqsxs zVF&q(k*OSrnFU!`6%E;h90S=C3x$=88aYIqCNA7~kW<+>=!0ld(M2vX6_bamA3<IN z`;0h`HId~rxW^Fwy2Zf5%m|D;W<dsfhHr}w2T${T_c~o#B-Bm&*~BZ8EDzW)-e<Rz zShjEKqD96hmq)w}oR;3|$G%f()0W+5XN4}BRHPJe^YxtKU(Xg@Pn-7MWml7!U9vhu z`4b^~!HEu1W#8_}?JAm>xh=ZgBHLj}f8bO}xyN07q94v4-Mi;w#EmWGJVE+j9H%Q= zKF+I_I#vC3&$Tz|+a^dn@N`*PoyWjx*RE{wZB0GD&o{%&>-m})DMHb2l{+>)>8bUw z{ME(qZvUn&PoCYot2=-5?YcMpzn`yvd^BR??sTKucMLv1RMx#*HGkLrK8|0_k@flC z*XWj2uUwa8R^8q5^V_fV{?`stR{Lh#_8ysh`^cxL6Gu<<dQ05+`k=U}^4qhG`?o0l zXPCFBOM~Ix#rA(yUG`fNA$%r}yr_qVqL)mz{3mf`<9~+NwZ5gd%x2`|-hF4b^~@3R TcOraUc60uzTy$lq|9=wzSv-Eh literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/bt-OK-2.jpg b/modules/tntcarrier/img/bt-OK-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7974b961bc782388d945935f05349ea780d971df GIT binary patch literal 978 zcmex=<NpH&0WUXCHwH#VMur3+WcYuZ!I^=Bjg6g+m4ls~os*M;i${c)hnt&6Qb?Fz zL{>^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<<Uft5x!pKI?*u)5A2qPyaCl5D|1TU|I zk)n*E5y{~H0R}-11_=gTW=16jCP7AKLB{__7~~lk7+Ha?1vwZB7@3$^SlQS)IJvli z3bqO`FflSSGqEtUva+xMRo4RL8CV2ag%k}P*@OcV*_8@Kj2b5{<WP3ncu+Lx;s+Ju zq@pHHE-`TlNhwt|bq!4|6H_yD3rj0!7gslT4^OY)kkGL3h{&kql+?8JjLfX!lG3vB zipr|yme#iRj?S)0lc!9bHhsp-S&J4gS-Ncbij}K2ZQinV+x8thcO5!><mj>ECr+Na zbot8FYu9hwy!G(W<0ns_J%91?)yGetzkL1n{m0K=Ab&A3Fhjfr_ZgbM1cClyVqsxs zVF&q(k*OSrnFU!`6%E;h90S=C3x$=88aYIqCNA7~kW<+>=!0ld(M2vX6_bamA3<IN z`;0h`HId~rxW^Fwy2Zf5%m|D;W<dsfhHr0VgCd=+*UrfaU`bjQCSR>myhYByYC`c* z<rlk5GA?;9kIW66R;d`=_|9W_M*Sz2&FAlZI`;ni{_d}5T^~hfckkzmcg&t|x%dI& zqyqvTe;kxQF5q~(W{+*zQ>Du}-y7$yPZOB<%4o6jox(sz{x-ebwd)i&Zm4({vqb$( zvz}Y=u{$4|JuWR<{K(d*T9Wy2uE?RHJ*{^{SnS%BEnXi@_z|kIaqGpeoT>V`1*%(b zxeH8svQj>bMSj%<_UONz%k>SSmTvx5oqt#GKSRyqugh=8id5#VdlG08ad-~Dp}*U& z502kO%Xak3*DgP|;kVk`-|=T|zdUCDEsNphrjnhhYL;^6-1KK$+1S~C?}W^Qc|}%2 z#YgqOJ)8cY!Tv&j(v3x34EEbi_W%6P(ERWB;@`#I{~6~0uz$ZxV*&H;tb;q+^0(Nh pw0dv+v#Zu$<aczMk#})P_jBL=37?;?c(H$_`kh%C3;6%v1OOJTgIoXr literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/bt-Retour.gif b/modules/tntcarrier/img/bt-Retour.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d8de068b31eb26b9293bc00979c3b4579f61789 GIT binary patch literal 912 zcmZ?wbhEHb6l4%&_|Cw<aDu_(hDXMOjE)x_n{F;T^KAe17pEV5xc27Diyyzf{`&Ll z@4vtQ|NjRn90j8xF#JM52jnGCUSQxTWe{bM@R-neu$e=WLxn?Op)(tcgq2Rh0|llw zUO_2|iiU$tjf`R(0uKxh9AIT-Q>w`Lpwz&`<hSXIg~77}GuaH&=6GI6YnsWK<;LQW v@GOAIkzK1|hrogJQ@n)DbPF!1H86UM^1PT?u)=Q<zi`CbpTg?r8W^krTTDtM literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/close_icon_double.png b/modules/tntcarrier/img/close_icon_double.png new file mode 100644 index 0000000000000000000000000000000000000000..2e58b6b66c1e82b454812e985a2244d6a91427ed GIT binary patch literal 436 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3-o%zSnvQq*&4&eH|GX)}JtE?E>*7OI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i>B2Ka=y{+|E>{||$}e;yF{&&Kxo z^XJv8SO5R~`9F}fv}9vrv$VAQ&&hfF_U->dLawf^|AFYk2To4TKY#xG2MPj7cJ>b+ zKCrX13keAU&HfKW|NqN!+`R?l-1T&E45_%a<$^n3vw;BXg^j#3q^h<T|4(LH7O=$S zrb>>EJ#YO!p7ZANHOGS1J?$)9cOpcN``FIn6{jq(@IJq48M1Z$YoEz#F0S0YDU;-m z-F7{>WO-y+^qIAL7I~Jss?L1nvSppM$PuT*XE}a1eP1MI>wBwdcTQBq$t|YkhFkxB zn)m;J<GRD0nMdp$rf@Br_<h9#+gD|o+V2As?N?7zD{bf!%Q&fG+q1oUlBd7zTeFwZ zl?yy~D0!&O>G)P5!<E$dEUhK^Sasm$iE5L3cIV7eoix+rj;r}e{<wdt2N-^o`tO%H RxegR344$rjF6*2Ung9jqzh(dc literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/exception.gif b/modules/tntcarrier/img/exception.gif new file mode 100644 index 0000000000000000000000000000000000000000..2938eac5becc9ac34e156bcb31245bed0a5de381 GIT binary patch literal 1038 zcmd6k?Qaux0LQP_b+l`DTTAy0vW_yg!Nw>PK~Mx7cfS~ki+fG<4T29L803WpVb`&{ zj<$EVU0D(BHulgxv9@eu56H1NMmGkFh8bTNO-KwX1|2Yo6U^7nn3x#<0KYH3Z@-^> zzAV|ZW$Wv9%1+%O6lzM*_!2Jpa3~Ga9e6a4TSK^g6Q9aBY(xEayk$bmYZyO`g?n(9 zBm6c->+#1E3=2593BNyrR0)N{{qHf;h2I{c=Uoic;PV)M`3@ZiaU>hZOVCt>w*7cB z8Fib{eF)!N!`v{wp1}JK1gr7YWz6<NYs3LP9xtNrJp}gRXfE2{K<pUav0y~Rkt}>z zgf9l6HNd+A$BS|AHZC`y=P<sVLi7XFRp4kI9^A#;2ol*(C5rmr#{u)+%Ia5l?|h}w zRaUOoC4e1^NhTLXsP#+mOE*!=)Dwi~4RofH<D8ka!7cH$$)l<!S|%A;fn=6l7Rbtw z)&;mwOL(1|4tF)ThJ#FFxcfrD#FRy%J(02$ZA44aUyW%~)8pFB(eRDo>k<7#WHORs z)Si3c>D`)fDB^f_=MHg<A^qW1&Fn3Y)m<?EV4*-d8@S)x>AUVcv9CiHbXi^19;J<~ z`A^V50@O{`r*K?aPOZ0=7G<u`=PeZ}meq;0%ID@cojJ>yp9)FmK9bWzX>zbvG}(OF zN~~R6>svX}rWk$3D;LB(--^jG&N4lt%zCdz$K@%n_T@G1Gw-l$w%heeu^N#rtA&9f zpH(risePdq`Qfh};ZV-vLi)?|6-E1;&htiQR~21lq*YqCq}1>)r3aTt-Mg%{qK9WT zm^12Sl9a^mQR)lTXPP`Nwc=yZp=P$$ZdSK;@-|N0)JqKgtUksJUhJ(Lwe=3DW1Z!L zTVljqVt+ASvS#)6c-C@uV|>-zws`7Xa{PI20~03&7NzE&b$#Mc=C4DA#QNWw+^1;4 z&lR2`r2@qgoj|*D^8-z15|VgdbI_m8r}<BJ2_{>%)ZZ$sT{+ky8I5BRA#cT%i=1WR z{3X9dn;z%#MrS9D1AbyBda0Q7&5*jNjaVfEN$uu8@&9o5Tsxoh^N+&vhC3Yjseu%& NVNT{pi_)oWe*&L!jR^n% literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/exception2.gif b/modules/tntcarrier/img/exception2.gif new file mode 100644 index 0000000000000000000000000000000000000000..7fa3778bf098c4348b4102d90692855cdcb47d98 GIT binary patch literal 954 zcmZ?wbhEHb<Y(Y#cvi>oe^dSc>4E<f8UA0|^8f12|F;kSpB-`L@{_+=9G8!s_)#MF zKc3-py~+P6KL3|we6LXZRVenM-Sy1X=U?iK&Rlu+e_h3;V<&HKS@dE?#^s~OKD4|2 z%VhhL!+Yh>!F%hbeXY^|zasyAhx^$}kN>AJUO0W}ORd5G#}^(ithspd+_O1_&t~Ue zIDPqlKL3*im5-J*{ZC@Jy?N2i?JM8(h5WDA`oB2s;>q(5mv_GH4f<B8{$yeG*-H=q zADQ#9+4gTX_y1&uFSUk0N@VY^p7_7n;LgUm|5F+6t(|)D#JT^?hTkgGpUo+Hu(Id> zfoYGHw){>Pyn1lox$}3<pS$^gM)0>P>n({9jZ0smbbNi~Z*Y^Gher{_nE+Um^d0 zdCrG6r~ij$zMPzRbLZL*t<K-eRqn5u^s`9vPb%-v5}EfM9>4Ph|7WpXICJ$^zQoUB znXfgvf3vwRp1SzI&Gcid!>4AOm(x-oEbn@_y!}ru-|POEAEoktvpE09GW?HY_zwhW z45zQX0@4f&42u7`{aizWogD*Qjr0td89_onSy+u2>KJr@Y+xkuGcd51Hq<t;mxR`| zhj|G#^~iFyN5_V=dx-V;akSSkSF_G4oyOijYtFn`K|(&W+Lx}bN#a?zc6H3m)thGt zteZV|o%FUPdshpDZ#pzf&};W;XZFO^-qqDQv*f!a(`Q}0+%BNeBj(W_X=0L5BY(fA zR>)OwS8|&3>qcxYX#%>WR!K{yhD)xwyVlBviPzel$+M?PqNa+Wnz6D*yhoB_=IpsO z_HNDW>NQK|%#${2RuNn~YyDdDW={TXOXt-HH_LME+fie&d+)ks2b;AOkDWDY7SUUK z;|7OgH>Yh4H(#~rJRZ{?%?FR3)EG`<m$EZfaMIVE)+A!-psZ@p(})y6pwQw02T&Nu zSphjU;?144W%&wOnO(IJDQqlEJ`-K5rZN>wESfznb)wWlrizI?%W5XduU@&nOL1B5 zM2VUmHRTiKxOvrF5+>&P?sqAkSQ{4=m>qo5zfdN=6Db4`R#gD4f&@TQ7tH@%wQ&D8 zNpeh|IUDGIp!XNenj>wdBDiYCnpNhU{F@ffsS%dt+PS61V*7z5d$bjg?luz9TXp_C fhhr_&<8ydSn>4TAyj^411@rinT8PKH8X2qsY;Lqb literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/google/Thumbs.db b/modules/tntcarrier/img/google/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..502aaa322447f6bc23791ed52f265382dfaeea33 GIT binary patch literal 7680 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 Pa47`#`WO9g8-c$8t0G4p literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/google/agenceTnt.png b/modules/tntcarrier/img/google/agenceTnt.png new file mode 100644 index 0000000000000000000000000000000000000000..05b3570a7060f4faeef5965f657f4cae2945a830 GIT binary patch literal 5382 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 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/google/red-pushpin-s.png b/modules/tntcarrier/img/google/red-pushpin-s.png new file mode 100644 index 0000000000000000000000000000000000000000..162aa0fa79147765d6dc58a68f2532992050711e GIT binary patch literal 713 zcmV;)0yh1LP)<h;3K|Lk000e1NJLTq0027x001Be1^@s6tTX`Y00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_00L=AL_t(o!|j({YZE~jg|oAp)KsIf z_De)XC_;Zi@BHoF_!A0>h)6H`C8?TZ)7|X!edP=shFvkqepH;m;oWTZVjs?#Gn2?# z+xuTWQGgAw0XDz}*Z><~18ji3kFZe`{T_dK#NzkLm#O1D8-pc42ja^T9M8sp8-ewl z)ERp-^59fO#dU4qO*?A<*oP9x5R_`^sqj<_aFfnD(1B<u+7>;)cY{Y2EEi>%w@^m+ zDuFwPr3gDm74oTQEE)mWIlBau0;bR$nu!+pttg9hr?3QS5LXAf2R$ZdU5uTh3qbx7 z{Se(?rsVKO?rscQ(z-FE4n6_op=cNI36)b(;_g)RU385(#qV}gch`a~Y1@b#b!${3 z`wXx;A0gI;UfiwM)N^(M&<Wz4cM@YSs)n45DZ08ocK|sCe4i3f0Mfzz#GK*Y6yN7~ zuHAz2AYJ(k5Z5ib9#J7Zq%~@2jivx}alHZHEwylth}%~8S=vexfNdj|Bg`Q|51|1$ z-Xk~Fu`AJq=n|lF+GA~<fGfe0qY16UT}-!?^a;$6xV)B#>6z$@=)BJIsT)=!`CRly zbU=kucJ3`Z=x1>8qv#W^^QI2{o4^`G_m$|aXdjNo)UH*Ku8>l=c`Evb=-ReGS6#Dx zG^_%@M2v?7TlLp12iP^@`xWc9XcKguHcoH~Qs5)NTkMeqz#}T81@_8wXo7pTZO~Pn zjj?VI2y_Ogt^g2IA^FF^tSiXBg7unM_s(O{Yq<8AiY6=hpW5phZXH;S<_pm~92B%o v-&1t&4NM)dx|g0Hk{{&x1@8Y7fc&`w(KT<-+Z<)900000NkvXXu0mjf`6)(z literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/google/red-pushpin.png b/modules/tntcarrier/img/google/red-pushpin.png new file mode 100644 index 0000000000000000000000000000000000000000..203512d5cdf92a3ccddbd69e84e239272c9b4ed3 GIT binary patch literal 1334 zcmV-61<Cq}P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004XF*Lt006O% z3;baP00001b5ch_0Itp)=>Px#AY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF* zm;eA5Z<1fdMgRZ+32;bRa{vGf6951U69E94oEQKA1fNMnK~z}7#aC@iQ&$*np;U{E z*4he7Mwv2|j}QwOhA}E)#eP@?K|X>A2tg50G^m7RA=$!~Y)I&aKW1<tQ)9+p&KaFp zkX{`#Y(o)^fS8C2W3V_B{=g>s?m3sswh%NK_v%ja<lbA(x$pBn@7F~}M6&64!J4o0 z^gLx>vgE#X@#5~#g$u8GDU~(&JqHK|++K8eMqB@pKw9~#RYWBvL<bJgpL_PugRCt2 zIxdb1jK=Yx1q)iSrx<wiWf4fJF`KC~Ihp!)>>w&EBq}JFyzbvmWBK`XDKU}Kf`cDJ zna{A_C^Z3pv%mk)FEHL<GEu$NO5N${^bCdxYEWL@Bq6AC7s~8fzI<Ha=JpZJy(Sd_ zUWJUnz$a~x{akD;9b2=8K3%ttICws|bLT%~_U$7&bcn8|rjo(io5Q&<sR;OHhlM@t z%g&~{m>6<Gg=XM1?rYYrrP}rD>07&<+EY@fH!Y3E5uWnZtJzB(QW41fA}NXYlH0V2 zPQd$<z&9H=(j^eNjNj@Jp074+peCD*8gLEKYWr}`EC~Vaym=>vAag&wbHP{(zzm;3 zIG75bgUmUQISQ}yLqq8;wYnY0BBaUzO<Yh={{)ikc0vMg*a<J20Y-#*&q4kxn>W)N zUS4h39|fqStOBb8Wk^uq+LkRm0VeYl7?~fCoK@%**jp%hADF999O=r<rQb3#{+50^ zfg4c9Y%q*q`y#0c%!xD@Zj7PfbZ^_nXTS4b#u=_a{tFfhp$UB{WhabKdU#a&>-DZ0 zo9*dS$lvxH`P;W{rPA<l_JSlS2q;ua<&h$jX`<`kK^g_d&|H2MvVS@OhMzzn(#Pik zOIFbYJlx$sKFeBbRTWWbDUITO5bgCI=0MX7@_!FiYNMk`E|-@}F%1(xKsHllB~fuP zQBe^;a0Z0ryMRh)63TCi0Bg<ftXRPgzb~4AuUcI<TvkSO_%PAly?og{+r66z7y=1q ztPv`l2a$`ovT(4@_cI2QKq6HXfj}Q0Zj8-*HfCY;kDMGDf&9amf{!yZX%zQ^Fvh}h z6GP}aVt)_4e*pQ>jW!*w*Z0Dn_pAxXWwNqnOflyD2s|FzzMbylxd#Ss!(az$of*Cb zu;)(T$N2ckM8x&I$VjF_f|wl8Ez@c{dg0|G5V#40?8V=q#ZI+cmV`|DMge?V23oPF z9^t@uK&99+3|ypEcQs(h^gz~DWcgIRH$4YVp&CwMB)iGw?@G~#eCH?>b$KBn<br3{ z@$$=<bj^YS)4^2egjy9VSI(G-Vp_4)*VB_LG#a0rhk<J#(;<X~4Ifq&EC*OlI6-ci zMso*e^it0PU98<caJI3L-ZmH>+Wh>6OCloZ!>B0w1k<k!<(IN_>4aXTx+r|2Oa4_H z?{GM%y1JTe*u@9|aX>nd3nU9)!R{~R{{pR6Tg!1A*=)8)c=VIaVu>LzABOu|T3QH1 z&d6rD#1P=+uc)YCf6RL21avyxahJ<Q7K`O~Jih*_38+jaQxA*3Mx&{diCD8GFgG9| s;BGW#J?>-v4+3l*1qx&$*G#tl0#IU@)NF*~umAu607*qoM6N<$g45SsZvX%Q literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/google/relaisColis.png b/modules/tntcarrier/img/google/relaisColis.png new file mode 100644 index 0000000000000000000000000000000000000000..eb52b7d62446609abcaae8d0335ac42229512495 GIT binary patch literal 5725 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 P00000NkvXXu0mjfN)GNf literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/index.php b/modules/tntcarrier/img/index.php new file mode 100644 index 000000000..477abec6f --- /dev/null +++ b/modules/tntcarrier/img/index.php @@ -0,0 +1,36 @@ +<?php +/* +* 2007-2011 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA <contact@prestashop.com> +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision: 6594 $ +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../../../"); +exit; diff --git a/modules/tntcarrier/img/lg_tnt.gif b/modules/tntcarrier/img/lg_tnt.gif new file mode 100644 index 0000000000000000000000000000000000000000..c33e6e844b0709d129fd90e9dd6867f2d08da162 GIT binary patch literal 3711 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 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/livreur.gif b/modules/tntcarrier/img/livreur.gif new file mode 100644 index 0000000000000000000000000000000000000000..2d45a42a14106ddc57e29f4d0c063f497876deb5 GIT binary patch literal 7380 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 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/logo-tnt-petit.jpg b/modules/tntcarrier/img/logo-tnt-petit.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b90c6dc4f74d42f813a4e80d885238ab978300cc GIT binary patch literal 1022 zcmex=<NpH&0WUXCHwH!~28I+MWcdGvLC~c%IlGd9k%5JQfgu1W^p1hgF(p4Kl_BK- zP=xXSZH5*GCOBXQvY1(bBr^*u3ka~Xv4Q~`8#_A(J3AXECl?ndCl4xMWM*b&WntxH zW8>uI=H%w(=K}(Mey}1a#RK7?>VxzCA7BvVU=U=GV`da&U=n0x7G(T?grSiE=rU%Y zD-nQ&or9H)lMz##iJg&|Re*t!1q7KHp*oltf&O4)5ENoJRCH7lHgXab0h-Uq#KO$M z1XIMw#4M=DAjHCI=%^H!SlD>csYuvJd1F!&+y7e(JU~@Ug3N*p_6%>oW#5>xBQVUN za;CVY>gTR=wq4h|EX@*^Pjw7+WIO(?;3`Y-{g~S8RqYO;9QxWf1@q3nu#UKqynA!~ z`SUy5CkRY9ruE5oBKxO^PoXO<n%-9L)>^fHdi2ysJ8f+=`bE;kMV3@OlrD9h#8T(o zyY4~8tB-}-CWtrw*^{r4c>N5s*K66@6~=;(-X_&)*%Wd<zr8>;!EM^S@0N}~j<qeQ znKSQUZ`<SDD>kOIY|8vCl>d8y+nh7gUdT?l_UYE|Cd-d3E~V^wPV>9|ls|pBoNdlA zeZ|kp7ZQb63Q2KH|I_@c&{)k?vCwJ%zp5n%`_KP8<@xH{3;QUs-*w*G=iB{aTm1Fe zcB%5h)A2kBFaI;-MPHh_e0N(`@OIJW%?2@-#Is}576&FzPP%Do9qOz#zg#_3LE9y% zhqJls=IWHzuj^i^#r<oIdv6`LjrZo)Mk$Xa4pY7N)YxuiYirx`<oMj)g&W@e;`KW* zi&^QYNs;*Co2rlfRtW|M`rNrvw8Kw~J3rxZ|M63wG@V{&#GfeI^vt6B<WXtX!XvDX zxx(L6UE`VLN{&R?Z<(}S@!wJvxlogb_c9;0s$H*jVE1SgeI?{_uSE3mu|s=zZupjY zy>iL&o70OO^KY6?p3`*tYT6&Om{uVLv(_)G_ATSHdN5IHp}u0Aiig+IrQ3U_hwIFI z()rv?%jhbjYk)=E!p@Z@=4>s^HRc=hZ)qg`dOXY4q)X!Y;tB7b{EIcwTICScH%+oZ z>BgC$MB9Gpb;TarEY_%UTT29Oe77SnK#C`9`F16TT`$Eiu=p$&VfgVUxa4l>e(x>s zIJf()7y4>6rET#?KFLPYQ=HKOQFruvrS87YuD$Gc@!VaFSD&XUuQ(R!!H}+C`dM!E Xt;1r6!_2hyNEswtY-a0`_<s`sTF-DH literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/logo_24_chezmoi.jpg b/modules/tntcarrier/img/logo_24_chezmoi.jpg new file mode 100644 index 0000000000000000000000000000000000000000..de9ec6a3281de9054beb00f9049b6de90123d9b8 GIT binary patch literal 42188 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 Zg`)-*j2K!lVQ9gHqXrg?7+Nr6|JjJo=41c> literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/logo_24_relaiscolis.jpg b/modules/tntcarrier/img/logo_24_relaiscolis.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f32ea64c5acce8ad3d1642ca292beacbef5cba09 GIT binary patch literal 42143 zcmeFa2UrwK(<r=TL4uMbX9bj;L4xEgIY|<hCBu?)Qd9&aOBN6T$sjq4NLaFxGf2)L zIm16-KJPi_d(W4i``_#AGqc^*)zwusHPt=cTia)YXP-b<WF({|KydJIASvJjI-A5< z6?ZW+27%<|K{r7l&?OKG95x66NWlRg5F8N*=^_mR8Nv~NPn*NheZ_$Xa9BaW6+{Z0 zc5rMLX<Q&3;%5dz{8~2^`2Gl-K#S*8zkCZDK@A}kil$HpsJ$uFhC)<@Lf!yuW__Lo zv9Yjl@v*S;v2anavhZ=R^Ko(j^$=ddeQEdX3<P=!|DAr+ON8%fMF8*oK!!v3$|Lg6 za=?-OkOS_<&vF1d`N}UG6a07D*kxbH{mT2<pXqWHgnl8DzNkD1{%j3|d65Gd`2ZB) z&PG6wK<Jk)T|&Ktj*5zY^)lM!t9V%G=va6JI5>DXI0RSGFOIKYUowBZ!eLy#jDd-9 z1rzfME+!@>?)e21_e+(l{|<q(cc816K#HI!1UM=X{8c!Ft8iyyfY@kf4RAsLmq>6I z$5)XN07F4ULPoiSigp<=hhGcfK=26P3a^0R5aAHu5#f<gkS`%2ptA#oR}l~?v00IX zl?-sGY#*>8<Ax;{h)~nuDc2dYbJ#uX5=FTluJU<u18mQU|EkdUhFFBEk@))*2d-<~ zYEzKSqDS>Tj?-Hbw9iu?7e_Yq&TOZZH1^Hzs2e*yiF#ey)IYb&EvaGR>=&J01{;{) zy9$Db2e?JN;0Xm8iSvR5N>*${fCF1993-{}VYufU)G2p;W~VWnw0jsXs)7f$=h(Q8 ze9i#M4bJ!7023+KjKtNr93WHQS@>%XXn(M9HVi^XxM=e#NC>o}8ZLdEo+eycMjCS^ zz|^2{zO)omXZkV@`?4{k-KYd{!qM7p*%^pt7SkGxdDZm>_2i-cRN>_8=A2OWgXoZj zGtjej%CX3xJMp;?@PQaob7JN|W&8=><(Heo5+8+fO-_w+r#)4giv!v7h7}m06%+Fn zY9yy}m3I5rS&z0(bciLxV1asI{`=l`WEGVfCy+%>0(@eHO(KP<)vU7PC47R$`qG|} zlY1ojU<b^|5TxQj5+S}1wr8NURgK}MH=-cZ&+zciMPEdJh$1*<tq(bMl3*9SD|CZ? zcB4fQ>!5tpc;{}db;<U}t~1c3h2yHL#NPcT-outo$2#5*?zQy5n1#AOgr0%?$q!jH zU7tGCJ@XD>J}P6--Ff86;Nk2+HhCZt`eDiP)IGgCgeb?NcA?6!TP|Ux*(%Cg57m2= zk@uBzJytr2_u4SSGJ(4<)5No_;oT_j9-)*oP-;GBhYh9~BH5+h8}0<VQPn6Mo0mc} zYF`tf7NrZVtk3j1rcLzcZwckz<Bq!BFMOgecKRVof9tAdTFJCf|4#ksq0rVCVx%1Z zgwES+t%aGs<5k+v?xY7hxA!88_nW0Ox$tFf+(@O%qzS)!?+kSI5xApjTlTh}Gq}fB zb4f5~PM1ZnL!YvRz2u~M&B{i_ihtJ!@q@c&_g*<?Zg2SlNaqZseAwG0uZe+w+t>c> z)6*1h0r1Y<qR3u7(U9~zg2R&J*G`W@-Mkf=m#zhvl9=x$67lO4RD}4?v@lylqNwQT zr!%jeE*G>NbCdBLRksjbo;<m926Eqv@{Apmq(HegqqF{M+`9wXWj^};ut*K>Hf`o@ z8?bDLJj+MW*t+*TV{k(EhMT80y=C>uZG~=IRl&-c8Sshv5>pd+wPrgm8)C&|%jFd) zQ8aeY3S<1-+;H@wZqJU?^zfC?`XFzTzl?r%-C;FYmPqQrYq}Ba>2=s8fy}ICjY+=p zEGH#UTyAtkcWs!9+xbLjLbvC%)Ke!vlRHgF@b!E}UE%{izogH1ZBB?SPbGHdaXs~x z$Tcec#42C77dENm?3S!L1~s+2>z1~T5VO`w9SVI`(^y)UsN#(o6Jp*C(jwTaVp{TQ z`XHyRx9nUiFk4pDKeBiRYGR}SeKegXl~2$cNj)*GoX8>9WaE3HZMNV^-~OuR6LKJr zds)-oZF}{I)ADVd@rb18ZoVhCR~j<P-;UKiv#%+BI~TRSeIh<j%AM($bN8uv_T`%q zy_JCzy@hW(miZA%c8Z7s<L)gBMS{KJa4Jny%Mh}!hCE-cEOipZA$7bSMWiXetLx~< z-IG5$?7VtHB;|>Pvh1v|sC(;@CuFI-bBPcyP<9EK1eVap&sKVZk(5*rD7lQ)?}7Qa zTT-Rc8h_QAQSMN^X37F$(Ya;*b|R;}Y-yKCe|W{yCDtW2=H)aIJw{63PTpvL_u=wb z*<zmGv9ZHxs<)9NKZyyXt9yNi36^uslneiM4|L9*i{|wlne%?r+ZB(h4HjD)OMCgj zb@!l>Ua$D^gOMfHKz*!b@4go+XP}|M1c~@Ue+u=U7IG=|{q2?0`e@pnz-1xT!<HTU z+t*UIUn~hp4Cp)N46Tk%+zXKGDOt;R{&?K@{MdO%(qS~wzuUUL;js4UQC`LNA+&V2 zP%A{mD`9O%d%JcTTO~bYCqHl2VZ5UE)`t|rbRL84bR(ZzrYI9-79{gSizgV%8PNVt zzsH`Ww3&`Kb^D|sP6a-7#Xdruc~<Td2f=#w-5Z6_#ai`4=Rv#24#xTkiMlE^O+`y( z)=7!|hmP52APxGKs%3YpMS=t7#fs9ZTbX^mws8~Un|cELer*XB`o}%l(h3%#rx~!Z zqzG*b9(DQawMoL1rRwYBCp&KkP&jzZFNJ#D^wWLAo;ve^*}5qNd%E~m%qqjHQnGtZ zzME(Si;4Fw!GuZcZh(uq{W$L4rw6zF?;;$%_4gj5k*0ax&V1IjL%fz3pzoM&<rvf{ zC~PyPlBwHkhmqf1x~S$EC$xE2TVLCrq+jhx4?sfN<eh2Vsok9VwZ@7R`lG9YF&<~2 z{-o1~YaX{Eulm(eE+w^`XnHTmExc|Ij1?DkjJnbv60l}tvr(x>aGx^y?Xs0qxO+w8 z{S)OTi_N@dn+O$A?G0z|EfHPw_PpGF6zSx~=iS{$vaU~j^vOR5+Yia>?@oEwZ#>hK zuqNZLNUMA5;uU>DuH5Nm!ldFC=!;Kq6svGTeyB9*gw-z?O#WsDb;Fn3<JOM8+6un% z1{e#|EVKe`tKf~(6j^A$=Dw-bqe|E{(+T@wz10?@vFPrCCa2rvkJVN57@NGRNQU;< zyj|ZO_GN5!!z)J`J>p10WCKUBpMg{lhP!9(o3mEiN4=R&<PU2WTGFTPfjD|4Jeg`+ zx6tD??F|X;W4N37AP!74S2IynU)ymjyfOdU>j~M)JfUG|O;9O}r#VAti&*K<+GJmw zBzH#W8h3`azuz5Lb6S2G`Hcv;@x%#>I3aKE67rgvDe8|#*WcS<3fV1(_>CU8)Yg5{ z7-O{wc_9XSYQj%8eoUe_@uB{doVZs%LW0vPZQaUp!}hUEZH@pHY=sa+Ch+dTUTDRW zliEC8Yw^i}o`?N@Dmul3^WG1wCz4lA7)JyarZc839_vehb1ZZ`krgsA4)x<}Q0<HO z*@8saPc82f(lR9N>o;d?Dw2q3@QNPPqfWy}OinYmY65jg5aNVU6eV7!R*c7oL1mXB zw?{6&ZHxMNNCfm`u&cE_LUR>?vbm1N+oLvfKFcfJuM_#l*Jnz!LfFa8wb<MQ3c;b! zdY<hwP>qFbRCE=I%Zb+~>?WtFN0q=+aoCZQGpZxu7K_hSx|^u5bFZLKunf!*79yMb z**+NPoxSXu-WTDpGqoKyb~0jwN>j<5Ag`W*-sZkd6wI9)w%sUrV6R;@UY{|&h$m(5 zS`n~o2Yydu4sR03QCnx7sDj1pwZ<R&OuSQ(ga>?zBR-*Bq|o*14gVhbR6>&W7D~^n zGAt^|Q)!jMy2n9}U)+N27PMnA#12c-oe(db#KzmPJ;*1HD)SRM15q_9LiQhY+Q2BE zPnq`Fc)J$c+97~C7z|lL3!Gsm6Y+EM(0+7}<7dW3#a%%vC$f^=qjP5<t_kRzwJswe zhmkr%@>CPqDqDqDZD7FYiX}Rqw)Pltn?&JOiO(zD?n6KMcFaZek`)W#H|0TjLKS5r z75D1f?FkAY(@#68>0mS)A^O*_7GQ@#mV+!1Sl~lRxaSZCn`TcEe*HA&<r*1T)*9=w z?erbwH_;lao&t@J0(QL<XClu))srV1o9?wcLgS{MBiw7`NyBHLEU)FW?nSSXlKRZz zL{b%}<G?7k6|Vw^vbkxlVX+CZ(D601LwOx%m<aFXxcw+X@Ek3b052A<!rZnuW(VQs z2I#QhkVc3$`7qgC+i`!UJ`rJLzD&|fRf?2*SvJ3F<SzKKw!xINMeWjH#fnFuZ9Zf> zp;R4`zK_=rp4;xM3Z`o|#osiyeTcQ*J8KcvNgF`$=#jlaG#L|fG(~g=*1@W^GwKtq zSys0CIDSGGFG~+0hBMF{XJwgOXKlX0Y>$#B-rID6PeBN%%xhUE)}86}JKKi}8I$Ez z)|IfXo;|{~0==T8eu)VM@{AE(p@lJ~o_fgw?L}RL%dev~TdF9hE!GQBM~<GE?)HCJ z%1&(3YO<N!1&8a+NfV-nPo0b!3Z*QbaHZD<U_aWgSp<ia1yj+IxOltMUR!jl6>eyI z-@L39qovAGML1PD!<z>xvR+rq!>K@f!Jp@!c%1Y4feL+T<plNkyyf<8sq-ncY7c*0 zvaeM>xD5G-C2>9V)}hdxteV?triRt~@wD*ccS3dK77CGx^EIod5-0vij%_g5>VxP2 z<-PLrXQl2vaHqXT9|Dh(;it(x)W&*(BYu?8Z8FN`sZXcd!?h}#S>W|#m|4q+qu64V zeB#h)-W>Jh_UN!zk#>TWyREGC2|bm-T;cdpEvxzbwg<x;hvryFj<^&1@LUMoab!HS z??sj5>(ex|^gXEv@?ozJhiJlnOhVRFWDD=1xcg58UvNeV^_`{=b_CK^FbSE?;YA_S z((2u6q&wZ)8IIE9E9=iO2wF?W+75A<wh;9Z+G*1-c<QZv`GfL(Au(01<Cf7%rugnR zhmadN>anh4kYKjGL~hL;$z>!`cIs|kUi9Rh+qy<k<gYt&_ioth6o=g6iIp6EelisQ z$?w|QVXefi13g0_w+C0F%Lv>RdxAZLY8FrEc?6hW%{t;#)TX>7;HuhW@v`gpa+X<8 zt9(JZ`z$48j6LHFBy|Ql!Edx3(|Gv;S{T^qXf;xjyh`CA>dep{b)uF}22;Y<A@byE z+i{-T%zmbM;G#zobNAj3<i(oO=SJkZwg~=ZF8+GFLt7C%LYKMb;l&#K_IM#PM}_VY zlbYwdr+3dlN2?YJ7!_-8N9^8Z)ews_vVqq2k|uPVSG_WjW7W-u)t3+F1O&(-u6m`= zbez1^wV4+3n1oh)j}oFOzfw%;*jDaD@BS0|78B0aEt<f|q;d(KOA=}i$@@+S#B)RM zV(A?@D<5JpIm(-qzdIpy_nS*L*s08F>1Zpi9`Ohu;sjZgI_{pDx71P{`}s|Pb6u{G zOy9s!5+A}ZjU%uu80GNByR#LsC!~x)*hV8(qr%IENv?r)+`m6dxq4c>L`h=Dy8RB^ z<Z{A&1`?=!c;s!gL(S*)xaT-usWP?9VnO0<p!H=P0r%u}Z^O^`cFPVEJN$1Y*?y?2 z*PprNy_vXI1GwgZ-lH{4!CQFi;}bI{NhYIbAi}er9r1`h!F<Dc97mIn&HUw97PWbO zdEp^U46fk1a4Mw@qsHhP^tRJs&#K9;F(>aZh{!H-v3PlUO`d_mRXHuHO6q4swx1K* zvgVz-z1BK0eptkIOhhxz@I(-sM1L!R!J8lyFM=TY85Y*@KuE)3V;`#zG=u5>@d#ql z)@gWm_Oee%5BQ3Q=K67XkN2HLta-we!_<&wMZlkY04zhyyOaLo>|5#(srhGqJ2m>- zul%=!uv&87G?Om{lON*TnaHi-Ke@RIZ6-h3lw5|&ld$!igaN#%6YoG%xsQ?80~1ab zcDD5*^}8DL=V(u}R5$z@_+}aeAH9+B###)aKlGWcTJ~gOy~`OQP(r>p)&f&ItdBgo zc1g9TJ}2quw6Q`Lx0kAN_`{OVRU8;|yX-;d{R8kb;FY#>hk+l)Og?vDJ0Gsxat7k= zp2Upo-#i1Qo48r>4=5a#Xg4g7vg5Af9hTZJX|J(w?dH-v51q9Y+qh!FJl^ct;@t^O z;*Jx2bTwG0>Zv<GGN!w8k%#x4+fL9YQA_J!a!&uS9g$DcP1QV3Ru8cbI&?*(D=L`u zSu5VzdTo2M-6eAtq*RQZJQ+G4Tk=kg?SQk3-+@Wz$b<r%JT;d(XLIgvFr9&#^E$5U zpImLz+d2agpMiuef%ox>fMIe2pucu~0nI`dZmqq$n&Uk&T4qz}MTWx#Rwv}IiY8y? z)sntf-+I43j|b%Ka+tPTVsG!dWyTvW<lqM06_=(7Pk3-PbhgU%>Boc{I};0tM?_j4 z@%qJl&y}yUKHtC2%Mg~%v!t*2g<PyGDV!j7_GVCP0V-A|7AgveH5h7SW^E!srKT#u z$U`M0h{jJTrXZ@Sr6^8eV`*mZK%uB6A}1|MLB+_-ENo+A384^$TG=={K<t>A#Z<*8 z6y>B<R4D*r%*^6<sVJyS9UN@<n3<iOotX^I(V4(dt8+wqW<@)w4aCmDRSuxa2vlG) zaxkI-+WXSXFMI(|BQvmrAQ~#a1;kYlAn}!$jU6z#$fRgs0+E2)Ss4IHc`2x!nH$vF z!N5`(V$aWfjt^A(TK&)KJD7njAP!7mJBWb;)b3jyRDOF0fV{~cn*%^r2G&560OnT= zG}ON(Y~}#561KB5aQ#8r;5-X322}jU+F#K4kA*uY0<dl=$j!#je33Y(`?nl{EzKa- z4&T`UkpGFSe^1*AY9wah0Qs4?5s()=pZ{fKVP|CFQf1*ipZ{fNzsJvfQS=}3YwrM1 zkgzl``I#zk>mk5h5M<$J{+7H@DDyXs@-u%^GtkbzYd;Eh=c+Mq03M2OjeWmGe`<aI z|FNDw5$)VgzA2COS3UkVAk_bq0jYouECC<!f1C0AL9Fji2e6voKIglC`Ole*I?xZA z0cP`mVUP7EqJ1}=-~H8pLx1&6!GCx@|8MED{zAO(HuT&5oU7v7@aErkKlYA>s$WLE zHU_{bT;I&v7^?qeB=hfeT)zxUg^kP|?HwRS=Rjo$_{YHVyA}TZVB!x0?|(QN{ku`w zzYe`o`M(Vc&lUG=sCb_K4___*Qq1$(KT!p87hNI?6EHOW(K-GHU~V4vKf~ta<oyNw zV@v|H`sYl48<GBTkpB<$`uEiTb(jxm^WPcg|1HmdHqieuLjA)?|0lcu$?$)I{*zk@ zJO%$xnC>6t{0rM<WaatA?7o`xUx0boIQ|Tqlbib&@Ne6_cwznWy8GQ{|0CN4Zl5&Z ztAU9Q#dF7f*TCw>oAwWH_NRvb%`N<!-j>P6ib)Y_@1O#<GqV9)`j5GezkP!L>mK*- zL_D|FuZ)=4Lm3SKv-^p!zxP=GGU@T1)E_65{#x?CZ{hEJA~5m6&B(&4%F4~h!OO?a z^~>DH-)i*led52owf|S`O3m8ff2TYDKfu8LM%KUZi@*EyKbyPzFWB#YQ=k6BY5aUo z0qFl=r~ZGK0sm3hzp&uH=)(U3{JUodRtEmw1OGQ$u#Jt;{|mkQUy1os4=?<?cmHqc z-M<d}gcYTM*_89uzHhJi-v>Y}EKF>G8UGkc{oMc(Safp&Ui9RkV2dAwj14U9A<XA1 zT7Os7!PVxc;p*4s{y6%&7}%Z<a#b&8D1Kt=`#i_rwehcFej73VQOdug@+U&_f0yy^ zD*i0uw}$^!!fy+fe-!bXg#64G%b<d27b~`l7Yn#97r_q~K^{Qd1QtB=+1l9}0uQ_} zf(ep4!l#QcjjyHfgYa}0VHrk1O(4Jm;UfIQ`wU2*2WxykOfP{5;X*I66yJgWlDObu z^#Xk5YtRJzx9^M9<{KAfm_I5C`GCHxLt|XP&Vw+>E-(py%_D4G<WVoKzy<D0Ewqa~ z!0CA%+ApivXx}-9zu;%*0!IqOY-|jaSOQldC<Hj*zCw~?<Gw@KF5vfo>o*+E3kc&6 z$OX-PAP)lB06{c=dLS&E7yoI|*?*<%LNk}nX@kyX1>}am^X2@iMKS;ix(H?Yq93C3 zEP^(0`6ADG76inAfIv~ei373(K|v<KsSjcUaR6645Cni3fXqPlATR*8yhvTNbYAh7 z<7fLgr*=;Dm*Z!IZv|i3KF?Y^T3P~M=kY_xhEPXqBYOoyb1;zmT2C45zzXEfO#-9} z#0XhJtxe9;=Z74`*x~2Ahy&E>YyN@_WfRkH<>#y++gqA}A@=H)a`r$D?w59uF3JEf zHgKX`WTeG@qK#r=2X(ah1%wRza=^sQ8e;8e1=K+oS2?E+teFBZAdg|-=m3?3SVQap z-*^64fm8u!_7xfJ3-USSyhPf{gaY{bpOzoN(aus;TvHWj>Z@|kmH#V5-rfZA3k2D~ z(m~b0<QEtw7y{ITxHw4LOR37s8A73!=L9c(1OI}IY6`V;6Sg!n`KBqXFTw*qy!ZkJ zYN8lHj13$u9e^aN6R^1TC+O!B`xoF}(JvdCh(ax)c0Vci>KFPVlHUt}DxkYi>vLVB zIzVj{93AW--wflt49yZSq<?{;8$ulbgZdZvW#AT@{t^A+nWQ@>20{l;IHAuM=`YXU z)r&OTS8sJ58u!JZ;Vx>O<Abn!fXlfOzdl274Iog^9ROYiA^<|ieg~WV4mO+H{T*!f zJJ{@Zu-Wfmv){pHzk|(w2b=v4Hv1iH_B+_@cd*&-V6)%BX1{~Yeg~WV4mSHgE!gbK z>=z|4s|5n704Fd51_EJ$gh58Yq_QC}$xH!E7n=fU2jH~7NZ9}w*#7|r1xWM@xi9p; z%xR+le_REuR=@#&XhnedHHysIp2^_+FQzVn$XpC;n9t+PKtLdyjlp>Y7lk1Nn5z|_ zU9YO8r7$xRpw-}%XOXuNg_xR2x!FNf-0rG^-7LVoMzrT~Z7zH+RyI};2LlQq4$j)1 z&qaXtf;b<LJ_j??Qe2=oSP0N+$}3Vh0JEYNW)2iUj2$Bz4+Dj<9q`*LXQ-V85befA z3lOw3GUihjllV#w$O+K?6#eGR&IGkHVP@s!<z;4JV`gJx1TYxwU4d957e;G)YM`|X zHq11?SNla=GtCQWfrij1E}9a9*kAlI3s}#iIB(hjm~D3upmlUKGvYJg;^l_07(*Bh zzy=UTR#qbeMng^(14alt7|g~EHa6geu+gGXd~Ff}{9V|eH+o+3tyu~R{_`x~#Vo7} zpmB&G2OBR3FBdl(FDF0qAIkvhU+@*pTp*U3VrEtl>+`ioK~_#+rSSs$k0rlW(fUz^ z=a(8k6#%MWK9~I`UHlK|$L6P7`O7^43IOe}GXpo}e}|E8|E%`scgyBm@lUtxJB&{X zh_i&+xe5YHi{J3R!~S>JcQ7;l3p+b6`HAWCEZ<MjYJ$Kr_`kr;t>pr!353l+EgjDz z_J9yb=5M$^gTLcy{W<Q>;P1FUP}Qu>90Y;j%8Tay0RG=m9pLQ#{GNaFg6Aek!4Ks4 zM9+WU2{{kJ{1I}=uFA&3#|iv$i}w}_D<2E+IQ;?hTV;8uk(sgUua&t}zx`j|&y|0| z{9YOGn!r!M4gRg_KjVHQaKSpT_5*lY!Ha*|`-}e){E7Xq*#B#HL0<mv?}L@qg*Ujk z74q_YVo<On;P@P*#RR`}E=Eu=;Gcgyfe;>E4g*8(b5G4{^cSA`Lfl`8{qM+Y1pY3p z4Y1aD(SaF(nIV>tbD8XcCzkcAv_@b)<BJGvK{G2L2!z?(1_DGt{($~Dzh9g;&}Ra@ zC-e9I_}r5J=a1iw{39LzR@ZNJ{UZ(hBjn%K^;=#4NCW=}`L}ibR@Xn$z&}F%ZC$_B z^^Y|0kC1;`*Kc+GBMtl`<lolyTV4N11OEv5KWklRKW6kH*1$BrGcaHO)8-3z&Q~5T zHedL%wZXr2h5vB?(GXvcpK6|OH30t&{%?Q(wD|(CTfvXb7jVuRK)@~&a7Z8oxbroV zF9!+;8Q6CL4iO0+*j4}z5h(gm20Gu90VqO%M+1IL5A1XS?7e`9fOP31aO2Ci48T4Q z*f^+^tin{dcuEFr__hzIKX-|+(}X40DI3~7MB})A4PfG;CITYzB}8PPE*w0<RYW9! zIIwYpFwP|<DmDXKT+|0)B8Jp>$py-G57|{{KI2~_2!ACCw!dEIYxL`;2NO*}ME5w% zOuN!jB%*?d4wgWqWjn{50U;p?oB=!3opHL5W6v`X<^CCn5s%aX9_zuPJZm1WBnh}5 z=ImOdx+HbwB^dp9+tM%|)y+2z<t~n{Fsr9e+Evo)Wn}w9RU#-AW4B+|lcVj&&Ihv} z#`=<f<j5SUqIOwZ?4Gb#bw7TT<K}innqqN!>t-bG(cR?Pfffy%B}ug#(e&=G8W4P< zlC{H~Cd%)Oq^w~-etO?7#=AirQ|Z`|l$*OI81(L1z=)lW(L7@Ch^#At#!9%p_@yJY z7!OX$(uu-6uTe^)@{!X0L3zG$ou( QNGhNPES3Gnr;_U@t~sf{Got=C{EtWp7w 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 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/logo_24h_chezmoi_RVB.gif b/modules/tntcarrier/img/logo_24h_chezmoi_RVB.gif new file mode 100644 index 0000000000000000000000000000000000000000..aef322ce95520d4f8103b5a8f73a9f52f53124c2 GIT binary patch literal 2860 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 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/logo_24h_relaiscolis_RVB.gif b/modules/tntcarrier/img/logo_24h_relaiscolis_RVB.gif new file mode 100644 index 0000000000000000000000000000000000000000..b50b0cf56aae7624499d136231874185ad4acc16 GIT binary patch literal 2936 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 I5cIeI0}<6K#{d8T literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/logos_24.jpg b/modules/tntcarrier/img/logos_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5da054fee855aad9fdcbade4991f6868b133f686 GIT binary patch literal 27396 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 UVANa(D6jWG|C&P$0@MG00M(&~(EtDd literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/loupe.gif b/modules/tntcarrier/img/loupe.gif new file mode 100644 index 0000000000000000000000000000000000000000..317184d42adb225250648e4495317d6d884b0022 GIT binary patch literal 649 zcmV;40(SjJNk%w1VH5xq0OkMy|Ns9pnE?L({`vg)s@0YK{`~d&^Zfn$n9F`SoCxsu z>^PeS`~CX#`SGpRn02~R!Qip!^yBFB;yaxR;qck``}Xzv^55^*(dfl>x>M!y-|O|} znaqIc^yIYJq2BM-$>hAq<GRl0!r}1Rh{I|=pAN_5x@xpUcDhsK@!fQ~QPJqe-0jn+ z(~*qDa8|1<V6Qm$`}KFbRglMYcDqzgry_vAV4ly0`u+KGxKHNt-?-bRSgS5)vq7=g zon*2-z22=-s3%3D7wq-ti^Xro<G4tp8d$6@+U?P;)|s=}pQX}|QK%(3oCnM0zOUDt zhr?-Uv_yKnSv{T%@AvC|zg|3@3v{_rve}>5>&}J3XGx?Ri^Xn6qZn<rNm{Hh@%ZgR zpc1~`u3D`zx7(#^v_<*+_rTw<=JVj~_UKZnC$QI?v)Q1i(~`g6uZhHK@%Zk-;j@j# zaJSs1?e^)z;j~w)E&cxew%Vl3<-dx>ZSwi=000000000000000A^8LV00000EC2ui z02BZe000N(fB=GngoTEK5-nN}avlwbga!yrM`bD}FI{Ai00v%PTsLh=PY!xK2#_3O z90WUYAWk6=1VJH(Y9tPBB1jh_7g>2TSBC*hKo}z%3Sd+nA7Wv~J|G`-F*pnZ1{)#^ z#snA|4F>|}3~+Pch5;xmXch$m00IYl4_1dl0WK5@0}9+ZP=QE*A494PAVeZSfE;*q zSfJpcheI|}0@xsw28P3rAfYIkz$8TkLM-fn{3yf3lmKTSB)~$*%$g`A0vMrD1VDrY j86-?_n1K_a4jKy7_-ORd8;4B~)!7pDP=%_80s#O!1TaUa literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/notes.gif b/modules/tntcarrier/img/notes.gif new file mode 100644 index 0000000000000000000000000000000000000000..3375cbf94c96518385d77b87bc95924236240095 GIT binary patch literal 1021 zcmeH`{V&u30LH(^H7`>;!<?6uQ<_OlYDvW|AxFvlA}#B(dD}we?JmZ-JI?DJcV$>x zIyrgim{qj4xD1InFC*kj$jeQ`h1}2+e?-6a{P6tvY@g5eTxI#5cfU&`XvFVA0;@&P z@bQC3epO<n2+$68$uX6|iC{tdxT}E!ya4`SJ*U4}fT{F>o_b&hlPQ=@0lr{juiuHe z0Sk4ex<xJ^7pDdS4H$~7;CpQL-5Kd^*!*;Rr$4GZFAUoy-#a`pmm!y>X?jD-WN{@N zFJNV&(SG%V@07|Nx;$B;D|X+i-(-@#N^!DVTW!2J{kpC@WZ@MZzeE#q^XCPj7>y;n zE6LHCa*mrq5;&-;!ZaUb22cuZL2F$WIiM6L1z?T`^k5~sS{hm=W)F7AXKKx`oZVWV zkBz*i(mk{%Gc6~{8hc<I+p^)7TynH&<>QIM^dM*in0&Ogm@46VV@WV3H^PDtX#d%A z2}^uQqW?f!E+&$oEx~NY_DmWu0(E$)?7{j-^l*Fm{QJv8EyBqf8padI5hbZsU@2>? z!2t^?Tbeyfb>yIOR9#st48ynNf)u~WMiZ<{#uPT#kjj!hfHiDLfIjG?Ko!sgfcT$( zV1S{cQV61uaNghE{{+);oUk#n^=qtP8r*wm&LVgOPjryAW6BYk82Hl9M8012WtY%| zi){6pDxb=X(OhHN-)9OfMB$&EgQjT$GrifD+)SV1{%4-KXH9Pke2gr)(*>s)6){qW zb5!dw6*Wh6#3h;@OgXMTK-JrgwqjTJ7hBoc(OssG`I%>WDjiwg&8NbQV-<$WrdQhe zK0JN>d6}1;wPUa`<5n+yz|QF?)rq+laU<I$OfUKnTS2kRbgeZU*LwF^GYk&f()m$> cHg^l}$0|mrf4)uJg;jMzXGJ`pLLn~x1<)&pI{*Lx literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/picto-delai.gif b/modules/tntcarrier/img/picto-delai.gif new file mode 100644 index 0000000000000000000000000000000000000000..3364dedcdff4641b2a8f38965c5035d6d595107f GIT binary patch literal 403 zcmV;E0c`$9Nk%w1VHp4#0K@<Q|Ns9`R$0~8*vrh$;NjtBYi{-R_3G>El9rdi!o+-l zgR8Ev)792nVPl7jjkC75y}!Yys;r)&qu$@(^V8CCc6i!zZO~6g?6<Su;NZT%!QzvS z`|<Jk<m29jfaai_A^8LV00000EC2ui02u%p000I5ARvxpX`X1B8VIDmMin%ZI6+a) z7-}5+k4IsqP{;y^+G+UvH4qxYLO^vW0+JIWz*HmzivdBL7ziAV3a>Po1RMl`gitb= z7s#bTAWp^cE+h~E8B_oregX;&B?Slr10oj`C<bK#fdB^q42A#{7aS;Y6%Hc<0S5wW z02mf12MY)VBM}O*tN<1tC;|@wwYLKYBpeqQ7#kKIBMW#VLIe-FpBoz#lq0^tB3l^) z2`?f72?z=#0UCVNCI);3StGM!ktzh2#3P#zadfcY1x%HQ(0~CwYIgV_XppZ2nof|u xs3KPe0jCre5o91Bh02rx1q!}^FvP(F1`IS1NGREGqyr`a6i8?(uI7jk06WFCmiGVv literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/picto_localiser.png b/modules/tntcarrier/img/picto_localiser.png new file mode 100644 index 0000000000000000000000000000000000000000..0631c121ad444c813708f9004c2a176c56b07df7 GIT binary patch literal 2341 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 LNkvXXu0mjf1}A4_ literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/tnt_logo.gif b/modules/tntcarrier/img/tnt_logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..a170e265d7a4ae3f89a62c1fac8cb3792d5004c7 GIT binary patch literal 1531 zcmV<X1qAv>Nk%w1VS@ld0K@<Q7Zefc=;;4u0E>!<|DRu}M+Q(%OvS{*`-wbJDGmS6 zuf=#oXHr9wL=gY~|L|b}uA`h_E)3#a0yG{E|FeM9)YGS0Ch??j|Ml-}Y---Po&Vy` zi#-YSfi%TY1T-feA^8LZ6afDKEC2ui0D}NR000I5pd*fCX`X1Ru59bRa4gSsZQppV z?|kq7z@TtQEE<o<q;kn@I-k&}bV{uTH&_Y<i}7Kw;LYzF7B4Xrgka5X6BIWzp-t~x z%r!Z^ZO0E49eaXo7hN$MbAy6~GKh+chCdsDkAn{jFB@u=gBO{boO_r(7>S{S5)dpG zr-~99EEKJ%usV~94;~&I1-g$G0Vo)hgSy5KxC_B2!;i+g$cn%?8^s(G000IC1KkX~ zg9Q~P)q)Zn3E3ap83qgy1%nOCB)5AK4e0>u2JPSRf-H=yQI3v>bRRMtKoJ0f1wjo4 ziYVAdLWFDz>5-@a0U#X?5*=VLcM(9w6C5A^?ukfaB%KEw_6^XOLW6`oAVoC$m~CbY zn>YvVY!efJPZmHwhI|2Pjf8XtXtG$aCqXb%YaT$AssaPmHd?Q~+zP{MRjw*zwef&$ z0F9;sJQz^RMytuU2Ir2wI|HuVvM;fzs)1ENgS{DSz~zA0Mqv(aT@+527=h)>m@{KG zGgQ#U%9;I$xDZ+=G0%53tJVxh<mm?=(3Wt?rhqmPv)C{&Fj0~1s15`%&<K}7Vh0or zY73TojRoGwKOSE}SHOb_v2iy~H=-~bYy$-qnC<{>0_YCBufeu3c=MRuD*})`;<W9^ z?sIe3DV}fskL{I5$9W^r)`o4<H75Z7eEhYMz+fpDC_p;&D7c>pr>#NZ2$onSf_dmU zkl}>$arhnpBs9gr2P-HbA9)CLU`#J7J;N4?BUC4V1h<(e$X^0F7^033^!TBSy3qKM zjTe#NA{!o*m_l{7K`6oj-E{L+8`@-<Wj%D<N5UfwxCJ7Z2O3pE0A6m%MwedVClVb1 zSZRWaQlg-v0BWkhQ%IF0P{EmF5(U6gCG6Q}3Uo{$=ba9+nARSPqA(ziK3ehtq4hb4 zsh*TR3Mm@|rqEQWQ--?2sUiLs&P_s=aH^!K(kZH}v6`A|tz6!k;;z~q$O)<+0(*j@ zzK+1E3d>Gv>k0$5T9pTZwt5=>vB#>)tg*PV!9lAgAPX%~(ndR?u{=?yEu(Er04@ns zewyvGDJ0i`yj2;HT(l%eXq&q93Pb0+BRuI;p7ZwVEE_xm%I}_}hG_7?0Ve!rvJOlf zCB_myxbVd)jOb{gxt=>=h~6cDvA8K<b+4T!oYnxrBCyPiAm5T4afA652ocQ=*ldD? z7tt3qSQE%5bP4KRS0TS5OuVxQO()GO$e`9`WQ1Xom*~1B?8`<22|`VE&(VeBHN0T= z%M;8eOja@50rzXNhV7wk8q{}BICqY1D@!K;k#zOaa4Bq~xB+k%b{JT|IZ(mk+?W6X z<!%*LKr~q)jsoS3pTLU$p=)2gW9csx7Ukm%qwa!^tJ5KY>n%vl;|GPa0N3m@loA*K z2V}_m4BoLPJnbKASZ53pS~pE5BYrmLOV7K20bC2-)%*k1w{Sg9TW9iPEi3rG$3+Gh zBDM$QcLnip>W}aJ`}^cBzBzX=qkwt>pkKJyJEDO7qQ*blWM>2blz;$H;E4Ww08uco z#~?a@00LO%ZV&JuIXJh64s<{Z6tLhUV)DQZJ^}$C6rm#SRl+#9NkKPCpD_9sil=B} zfUZ#xSfGN#86+h)FzE?WVAY&^RSE?^%#9H-R)Yml>lEk6M&w$s03veY0R_N@0U(Hi zDz*ZPTI8Y*9P-3?A2pyP3XuT@2B0KCU=fXfW5F8RxQ91lB#u9*zyRKnfCwbukLt(( z1bXNKEHNMf97v=ev5^o67>xynM5H1Uz(_$p5(pSLfF=(h#v4>%lbR%C4L%7<QCi`Y hs7$3QSINp&y7HB<jHN7RNy}Q=@|L*FB^5#d06WY|nFjy> literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_arrows_leftright.gif b/modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_arrows_leftright.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d52948d95ef38199a7299e7d16d4357200571c5 GIT binary patch literal 58 zcmZ?wbhEHb<YwSzXkcJasXD^=@2}!d7DfgJMg|=QAOOiQFbVebuRP7T@4#eFzb=h+ L8-A`AVXy`Oorn-o literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_arrows_updown.gif b/modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_arrows_updown.gif new file mode 100644 index 0000000000000000000000000000000000000000..7f4437d37037a1ef197784ad376722b234d6605c GIT binary patch literal 56 zcmZ?wbhEHb<YwSzXkcJasXD^=@2}!d7DfgJMg|=QAOOiQF!A^FujI;R5TCQ|+=&fq J?uas20|0R{4#)ri literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_close.gif b/modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_close.gif new file mode 100644 index 0000000000000000000000000000000000000000..9e4ad7d09d5e04693d1c7f64d724b04540ed1fb6 GIT binary patch literal 62 zcmZ?wbhEHb<YwSzXkcJasXD^=@2}!d7DfgJMg|=QAOOiQFp2i`voFZm%~Z14toy@U P>EeGDlV+%}GFSru)J_n{ literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_doc.gif b/modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_doc.gif new file mode 100644 index 0000000000000000000000000000000000000000..5609c8b65a84240429e32798b101ed5806a464b9 GIT binary patch literal 64 zcmZ?wbhEHb<YwSzXkcJasXD^=@2}!d7DfgJMg|=QAOOiQFp2l{vvXfOajWT!udr}m R>F4y?Q|yx#l!-7{0|5RG5*q*j literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_folder_closed.gif b/modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_folder_closed.gif new file mode 100644 index 0000000000000000000000000000000000000000..ff367cf4dfcbc9789ed2e7ab283cd4c7550d7f07 GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcJasXD^=@2}!d7DfgJMg|=QAOOiQFp2c^uVm-_6*2kTMJeWO OY3JYRK8j#qum%9hY!L|n literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_folder_open.gif b/modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_folder_open.gif new file mode 100644 index 0000000000000000000000000000000000000000..7a93891b0bcb5e326e600e70398727d1728a2c85 GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcJasXD^=@2}!d7DfgJMg|=QAOOiQFp2c^uVm+a^~m_r#%)aN OLW+N-CIvAtSOWmea}eqP literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_minus.gif b/modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_minus.gif new file mode 100644 index 0000000000000000000000000000000000000000..0f1df159ffef13242e3d2601b95dab56fef072aa GIT binary patch literal 56 zcmZ?wbhEHb<YwSzXkcJasXD^=@2}!d7DfgJMg|=QAOOiQF!A^FuRP7mzp%3;=;o$- I%NQ7}0e4ys^#A|> literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_plus.gif b/modules/tntcarrier/img/ui-dialog/217bc0_11x11_icon_plus.gif new file mode 100644 index 0000000000000000000000000000000000000000..6875dfb818b899957e11c5203cd7a12aa9c1b5b3 GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcJasXD^=@2}!d7DfgJMg|=QAOOiQFp2c^bI#s=;Y{%QLkX+T O@SOc&nm9#-!5RSBToMcb literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/217bc0_7x7_arrow_down.gif b/modules/tntcarrier/img/ui-dialog/217bc0_7x7_arrow_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3d9ef7021bbb94e99681143674490218f494542 GIT binary patch literal 52 zcmZ?wbhEHbWM^P!XkcJasXD^=@2}!d7DfgJMg|=QAOOiQFmd<vbDS1<%j0c0mx;j| E059naNdN!< literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/217bc0_7x7_arrow_left.gif b/modules/tntcarrier/img/ui-dialog/217bc0_7x7_arrow_left.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d1c30b072b2c0858c84e2826eecdc1d94cf5a00 GIT binary patch literal 53 zcmZ?wbhEHbWM^P!XkcJasXD^=@2}!d7DfgJMg|=QAOOiQF!A&-r%yQEJ8zP(RWJjC FH2^-n3*rC( literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/217bc0_7x7_arrow_right.gif b/modules/tntcarrier/img/ui-dialog/217bc0_7x7_arrow_right.gif new file mode 100644 index 0000000000000000000000000000000000000000..5f25ff41c13cf823545102bcb3cdfb0accb4dc75 GIT binary patch literal 53 zcmZ?wbhEHbWM^P!XkcJasXD^=@2}!d7DfgJMg|=QAOOiQF!A^#RIYgN_QoV{*-!=s FYXC^c4EX>6 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/217bc0_7x7_arrow_up.gif b/modules/tntcarrier/img/ui-dialog/217bc0_7x7_arrow_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..aabad1ea4295f76cb974ed4bd7cce8101aae1469 GIT binary patch literal 52 zcmZ?wbhEHbWM^P!XkcJasXD^=@2}!d7DfgJMg|=QAOOiQFmd<vH!#-nO7^Ut#l&C@ E04_NTNdN!< literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_arrows_leftright.gif b/modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_arrows_leftright.gif new file mode 100644 index 0000000000000000000000000000000000000000..8eb1a4f58accc82a86d34c23e683b88d003691d0 GIT binary patch literal 58 zcmZ?wbhEHb<YwSzXkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qU=r-<UwN8w-+{@Veq9>t LHvC*K!e9*mtgsNN literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_arrows_updown.gif b/modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_arrows_updown.gif new file mode 100644 index 0000000000000000000000000000000000000000..14997c5047b00bbbd6d5b1e926d72cd98b705ff6 GIT binary patch literal 56 zcmZ?wbhEHb<YwSzXkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qVB+uTU&)otAU<c^xf2`K J+!1B41^|Dm4<G;l literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_doc.gif b/modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_doc.gif new file mode 100644 index 0000000000000000000000000000000000000000..26a26f6314eded595b2d24c18ac6f6afd9cc8585 GIT binary patch literal 64 zcmZ?wbhEHb<YwSzXkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qU=r`?XXn0n;#SicUt!_C R($DF&r`RVgC=+3@1^^FL5_13m literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_minus.gif b/modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_minus.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc89f21891c789daacb57fe16f6da602175a5c5b GIT binary patch literal 56 zcmZ?wbhEHb<YwSzXkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qVB+uTUwN9Be_>}y(9KQv JmN76`0|1564^037 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_plus.gif b/modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_plus.gif new file mode 100644 index 0000000000000000000000000000000000000000..b92ab3a58ed4faa55c89eb0c14164db61225694a GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qU=r!+=bXL$!kOUphZ0tw O;W_)mG;xXugEau@j1pu3 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_resize_se.gif b/modules/tntcarrier/img/ui-dialog/469bdd_11x11_icon_resize_se.gif new file mode 100644 index 0000000000000000000000000000000000000000..240a3dd06e342320b6c3174e435b10da4e729ce7 GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qU=r!+Z&+RZmZ_xR)bWB# Od*U8fE(l~`um%9?ITCgN literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/469bdd_7x7_arrow_down.gif b/modules/tntcarrier/img/ui-dialog/469bdd_7x7_arrow_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..3019c30e758ded72c72b5a9945f50ebd578f979e GIT binary patch literal 52 zcmZ?wbhEHbWM^P!XkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qVB+rS=Qu6!mdD$0E)#<_ E06hT<p#T5? literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/469bdd_7x7_arrow_left.gif b/modules/tntcarrier/img/ui-dialog/469bdd_7x7_arrow_left.gif new file mode 100644 index 0000000000000000000000000000000000000000..363f1c676cf06e63806b7db5280b5cde138a9c96 GIT binary patch literal 53 zcmZ?wbhEHbWM^P!XkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qVB+avPM>hRcitpnt6&BO FYXD3w3_1V+ literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/469bdd_7x7_arrow_right.gif b/modules/tntcarrier/img/ui-dialog/469bdd_7x7_arrow_right.gif new file mode 100644 index 0000000000000000000000000000000000000000..8fcedce30efa5c5fd2502724fa957bdf826db71f GIT binary patch literal 53 zcmZ?wbhEHbWM^P!XkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qVB+yfs9f>j?Tty^vY`wN F)&N#F4N(99 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/469bdd_7x7_arrow_up.gif b/modules/tntcarrier/img/ui-dialog/469bdd_7x7_arrow_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..83ba7aff113d38a6e9b1c0b603c67833d0679476 GIT binary patch literal 52 zcmZ?wbhEHbWM^P!XkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qVB+rSZ(ywDmF!tPi;2M+ E06S3&p#T5? literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_arrows_leftright.gif b/modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_arrows_leftright.gif new file mode 100644 index 0000000000000000000000000000000000000000..51eb183ea46b5053cef3ae32011c3906d4e565fb GIT binary patch literal 58 zcmZ?wbhEHb<YwSzXkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qU=r-<UwN8w-+{@Veq9>t LHvC*K!e9*mwIC4L literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_arrows_updown.gif b/modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_arrows_updown.gif new file mode 100644 index 0000000000000000000000000000000000000000..adc7dcfc9b678e043a60a35f329e5ed6a926072c GIT binary patch literal 56 zcmZ?wbhEHb<YwSzXkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qVB+uTU&)otAU<c^xf2`K J+!1B41^|b;4^RLA literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_close.gif b/modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_close.gif new file mode 100644 index 0000000000000000000000000000000000000000..73c1d72017655ee8d874065aa12a25b42bf43d2e GIT binary patch literal 62 zcmZ?wbhEHb<YwSzXkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qU=r==XJ3%Bo2g{8S@(yz P(#8KQCe2V`Wv~VS?gkN1 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_doc.gif b/modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_doc.gif new file mode 100644 index 0000000000000000000000000000000000000000..42dc16c7646126a7264537dd723729cbeee4c446 GIT binary patch literal 64 zcmZ?wbhEHb<YwSzXkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qU=r`?XXn0n;#SicUt!_C R($DF&r`RVgC=+3@1^^i45~BbB literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_folder_closed.gif b/modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_folder_closed.gif new file mode 100644 index 0000000000000000000000000000000000000000..a5774127184d399413b7a158f44c9b8b264ce26f GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qU=r!+U&+q<D`N7wi&D(n O($2rreH6jKU=0A`oDq=# literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_folder_open.gif b/modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_folder_open.gif new file mode 100644 index 0000000000000000000000000000000000000000..74afe4be11e7f158b19851c47168b6157293633c GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qU=r!+U&+q<>XGrKjoX;k Og%tlvO$uUQum%9-qY-id literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_minus.gif b/modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_minus.gif new file mode 100644 index 0000000000000000000000000000000000000000..69fcad2ee840567b389c7c1345edfb1c6eeb858f GIT binary patch literal 56 zcmZ?wbhEHb<YwSzXkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qVB+uTUwN9Be_>}y(9KQv JmN76`0|1TU4}Aat literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_plus.gif b/modules/tntcarrier/img/ui-dialog/6da8d5_11x11_icon_plus.gif new file mode 100644 index 0000000000000000000000000000000000000000..7193add21c072c58c0d58e10f0b8176195d1ab90 GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qU=r!+=bXL$!kOUphZ0tw O;W_)mG;xXugEav1j1rUp literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/6da8d5_7x7_arrow_down.gif b/modules/tntcarrier/img/ui-dialog/6da8d5_7x7_arrow_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..8bf915ebfc58aef952c6fbea940114c2427203e6 GIT binary patch literal 52 zcmZ?wbhEHbWM^P!XkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qVB+rS=Qu6!mdD$0E)#<_ E07Ov>(EtDd literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/6da8d5_7x7_arrow_left.gif b/modules/tntcarrier/img/ui-dialog/6da8d5_7x7_arrow_left.gif new file mode 100644 index 0000000000000000000000000000000000000000..9cb0eee53be347bdddd6fd66005f2a416b866fac GIT binary patch literal 53 zcmZ?wbhEHbWM^P!XkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qVB+avPM>hRcitpnt6&BO FYXDQN3~B%X literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/6da8d5_7x7_arrow_right.gif b/modules/tntcarrier/img/ui-dialog/6da8d5_7x7_arrow_right.gif new file mode 100644 index 0000000000000000000000000000000000000000..5fdf8e9b90974b8b4078ad19240731ae69a89b7c GIT binary patch literal 53 zcmZ?wbhEHbWM^P!XkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qVB+yfs9f>j?Tty^vY`wN F)&O0%4S@gv literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/6da8d5_7x7_arrow_up.gif b/modules/tntcarrier/img/ui-dialog/6da8d5_7x7_arrow_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..284bc54b020127390800fa8684f60be6c3f30033 GIT binary patch literal 52 zcmZ?wbhEHbWM^P!XkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qVB+rSZ(ywDmF!tPi;2M+ E079V)(EtDd literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/Thumbs.db b/modules/tntcarrier/img/ui-dialog/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..f95870bddb2197612ca8878881d9fdf4f0cad193 GIT binary patch literal 7680 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 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/d0e5f5_40x100_textures_02_glass_75.png b/modules/tntcarrier/img/ui-dialog/d0e5f5_40x100_textures_02_glass_75.png new file mode 100644 index 0000000000000000000000000000000000000000..d4eaa1d6e0c5cc65f92d24db55a6eb1cdce5988d GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsZE|Pjv*P1Z*T49Z8Z>J4ZL>i zpY@XF>3bO_GRQg@G_GGdldJFA{v%ue_f>P}onfm{ouEb%y!QX|tlWyV+1nm0URRL# zPfq5c@EgH>$Fvz1|Np9Ec(5R0M}A}WvP14SwpMlpe$3zKFpB`Z#mu~zbE8gtS1-`@ N44$rjF6*2UngHBgU2p&Z literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/dfeffc_40x100_textures_02_glass_85.png b/modules/tntcarrier/img/ui-dialog/dfeffc_40x100_textures_02_glass_85.png new file mode 100644 index 0000000000000000000000000000000000000000..17d6b368b59d506646b447b641e966b041e42b8f GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!N$PA*qrS221xOEx;TbpG`^j=o3F`1gtc*R zz>EL?mu$TyAive&jPE%?@fn&Yt#}mrTfY_6?wQ4Tx8&d|?&O+tU9&7)cb~cyU3Nmf z+gj!C>$QA6zh~Tfp?2=@9}6A67>l^>KZUFNE7wT=nEGesh3QKQHGW&Bmzf&WGHzHe zsp!<=_h{OlyydNlc|CTO@*dpm<qNmxbJt6^xC<05cJB}Xs^BQs`Es7=PXCd>JN$3w zS{ioUlz3Kop1;MXMnK7>qd?i|ch9}v+U~moE1VW^HEOY}LT6lMzjgn@?#^{9Z7%$+ zyXX72aq9P<_60ju*7Jwm3;*9b%R!VWlp{njpcTe=%A5Mp=;jpF`})8@V(@hJb6Mw< G&;$SmzKF;G literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/f5f8f9_40x100_textures_06_inset_hard_100.png b/modules/tntcarrier/img/ui-dialog/f5f8f9_40x100_textures_06_inset_hard_100.png new file mode 100644 index 0000000000000000000000000000000000000000..9b24a0a5f31c635fd508e0a9e7f519bcd19d8442 GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!N$PA*qrS22FUsC>EalY(fD?jBi|td9+tur z|LeP1)GaRmO4t~Eb)oU`Q$Fn?tQtoi|E#)i*7LS;G2c1CjrJAtzaLiK=9il!qI1Ih zWz!V-y{{h3IXP>2v*9G}g>!x#IhY;yI-74<bg!Aj)q^?jPemlk{?FR5hw;Yw9)X8T zTQ~2hyw-ZPcDK%&ckh>T{*F&=;jreYT<qQ<py<@XQGe|JLfci}-A*0))|z&osr7IC z4GuvimyQC_g@2{@O8+)4b6&vJsKv5MV1*M3<1O>s{|^g{tDoy`Y})(#kNKawH|iY< oF4xUg3}|%_WeVj8L19egU&|otoZ~*V4;Ty#p00i_>zopr09AB^D*ylh literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_arrows_leftright.gif b/modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_arrows_leftright.gif new file mode 100644 index 0000000000000000000000000000000000000000..06da383915f6a4527137e5d832e2682f678fe3c6 GIT binary patch literal 58 zcmZ?wbhEHb<YwSzXkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qU=r-<UwN8w-+{@Veq9>t LHvC*K!e9*muJ918 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_arrows_updown.gif b/modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_arrows_updown.gif new file mode 100644 index 0000000000000000000000000000000000000000..457012ffcddfba774643bf7182e5b7380aeaf0ba GIT binary patch literal 56 zcmZ?wbhEHb<YwSzXkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qVB+uTU&)otAU<c^xf2`K J+!1B41^|KL4<rBp literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_close.gif b/modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_close.gif new file mode 100644 index 0000000000000000000000000000000000000000..eda2b06e25e2110b4402999c7ef72c784b871e2a GIT binary patch literal 62 zcmZ?wbhEHb<YwSzXkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qU=r==XJ3%Bo2g{8S@(yz P(#8KQCe2V`Wv~VS=Oz&( literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_doc.gif b/modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_doc.gif new file mode 100644 index 0000000000000000000000000000000000000000..5b182927c1b16a9a336675a3a5ed563588d9e687 GIT binary patch literal 64 zcmZ?wbhEHb<YwSzXkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qU=r`?XXn0n;#SicUt!_C R($DF&r`RVgC=+3@1^^MQ5_bRq literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_folder_closed.gif b/modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_folder_closed.gif new file mode 100644 index 0000000000000000000000000000000000000000..e5228409a9459d2e33d120219a0a9cfb7460dd12 GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qU=r!+U&+q<D`N7wi&D(n O($2rreH6jKU=0A<=n-WA literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_folder_open.gif b/modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_folder_open.gif new file mode 100644 index 0000000000000000000000000000000000000000..8024243480a86adeb124a5d47ab6f93c12fc94f7 GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qU=r!+U&+q<>XGrKjoX;k Og%tlvO$uUQum%9$?-51- literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_minus.gif b/modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_minus.gif new file mode 100644 index 0000000000000000000000000000000000000000..08cbbbb020d3aec390f244d7debc135fb6644a6e GIT binary patch literal 56 zcmZ?wbhEHb<YwSzXkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qVB+uTUwN9Be_>}y(9KQv JmN76`0|1B$4^aRB literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_plus.gif b/modules/tntcarrier/img/ui-dialog/f9bd01_11x11_icon_plus.gif new file mode 100644 index 0000000000000000000000000000000000000000..95ed13c5b29044f78c299c0490d92b446796f809 GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qU=r!+=bXL$!kOUphZ0tw O;W_)mG;xXugEau_*b-;} literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/f9bd01_7x7_arrow_down.gif b/modules/tntcarrier/img/ui-dialog/f9bd01_7x7_arrow_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..77146b690797eca14e38334967ce68ca0fb46722 GIT binary patch literal 52 zcmZ?wbhEHbWM^P!XkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qVB+rS=Qu6!mdD$0E)#<_ E06!@Ur2qf` literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/f9bd01_7x7_arrow_left.gif b/modules/tntcarrier/img/ui-dialog/f9bd01_7x7_arrow_left.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e44126ea95a983ce9a90c1513674052fb5ea560 GIT binary patch literal 53 zcmZ?wbhEHbWM^P!XkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qVB+avPM>hRcitpnt6&BO FYXDAJ3_bt= literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/f9bd01_7x7_arrow_right.gif b/modules/tntcarrier/img/ui-dialog/f9bd01_7x7_arrow_right.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b9bfe44e948b48943c150bccefa4a15d52cd51f GIT binary patch literal 53 zcmZ?wbhEHbWM^P!XkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qVB+yfs9f>j?Tty^vY`wN F)&N*z4OIXD literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/f9bd01_7x7_arrow_up.gif b/modules/tntcarrier/img/ui-dialog/f9bd01_7x7_arrow_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..988dad9bb73e523545370b1b04a3071a9449c264 GIT binary patch literal 52 zcmZ?wbhEHbWM^P!XkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qVB+rSZ(ywDmF!tPi;2M+ E06lpNr2qf` literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/img/ui-dialog/fcfdfd_40x100_textures_06_inset_hard_100.png b/modules/tntcarrier/img/ui-dialog/fcfdfd_40x100_textures_06_inset_hard_100.png new file mode 100644 index 0000000000000000000000000000000000000000..305c0bc49ace65d36ac8310d885cc242c8ff87e9 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsfnI0jv*P1Z!d4;ZEz4^c9g6A zFWS6-rHOY(!nUS~s_S3xo1a|p{C>lFhU^B@15ydR8`vV4*Dzkg&;9l*`oqN^tc=-@ m8-GV^&Nr%aBvNZH`@Y7DEJxlwQP~Z29D}E;pUXO@geCxvR!B_% literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/index.php b/modules/tntcarrier/index.php new file mode 100644 index 000000000..b559f9855 --- /dev/null +++ b/modules/tntcarrier/index.php @@ -0,0 +1,36 @@ +<?php +/* +* 2007-2011 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Open Software License (OSL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/osl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA <contact@prestashop.com> +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision: 7233 $ +* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; \ No newline at end of file diff --git a/modules/tntcarrier/js/index.php b/modules/tntcarrier/js/index.php new file mode 100644 index 000000000..477abec6f --- /dev/null +++ b/modules/tntcarrier/js/index.php @@ -0,0 +1,36 @@ +<?php +/* +* 2007-2011 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA <contact@prestashop.com> +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision: 6594 $ +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../../../"); +exit; diff --git a/modules/tntcarrier/js/jquery-ui.js b/modules/tntcarrier/js/jquery-ui.js new file mode 100644 index 000000000..08b44d366 --- /dev/null +++ b/modules/tntcarrier/js/jquery-ui.js @@ -0,0 +1,286 @@ +/* + * jQuery UI 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI + */ +(function(C){var I=C.fn.remove,D=C.browser.mozilla&&(parseFloat(C.browser.version)<1.9);C.ui={version:"1.6",plugin:{add:function(K,L,N){var M=C.ui[K].prototype;for(var J in N){M.plugins[J]=M.plugins[J]||[];M.plugins[J].push([L,N[J]])}},call:function(J,L,K){var N=J.plugins[L];if(!N){return }for(var M=0;M<N.length;M++){if(J.options[N[M][0]]){N[M][1].apply(J.element,K)}}}},contains:function(L,K){var J=C.browser.safari&&C.browser.version<522;if(L.contains&&!J){return L.contains(K)}if(L.compareDocumentPosition){return !!(L.compareDocumentPosition(K)&16)}while(K=K.parentNode){if(K==L){return true}}return false},cssCache:{},css:function(J){if(C.ui.cssCache[J]){return C.ui.cssCache[J]}var K=C('<div class="ui-gen">').addClass(J).css({position:"absolute",top:"-5000px",left:"-5000px",display:"block"}).appendTo("body");C.ui.cssCache[J]=!!((!(/auto|default/).test(K.css("cursor"))||(/^[1-9]/).test(K.css("height"))||(/^[1-9]/).test(K.css("width"))||!(/none/).test(K.css("backgroundImage"))||!(/transparent|rgba\(0, 0, 0, 0\)/).test(K.css("backgroundColor"))));try{C("body").get(0).removeChild(K.get(0))}catch(L){}return C.ui.cssCache[J]},hasScroll:function(M,K){if(C(M).css("overflow")=="hidden"){return false}var J=(K&&K=="left")?"scrollLeft":"scrollTop",L=false;if(M[J]>0){return true}M[J]=1;L=(M[J]>0);M[J]=0;return L},isOverAxis:function(K,J,L){return(K>J)&&(K<(J+L))},isOver:function(O,K,N,M,J,L){return C.ui.isOverAxis(O,N,J)&&C.ui.isOverAxis(K,M,L)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(D){var F=C.attr,E=C.fn.removeAttr,H="http://www.w3.org/2005/07/aaa",A=/^aria-/,B=/^wairole:/;C.attr=function(K,J,L){var M=L!==undefined;return(J=="role"?(M?F.call(this,K,J,"wairole:"+L):(F.apply(this,arguments)||"").replace(B,"")):(A.test(J)?(M?K.setAttributeNS(H,J.replace(A,"aaa:"),L):F.call(this,K,J.replace(A,"aaa:"))):F.apply(this,arguments)))};C.fn.removeAttr=function(J){return(A.test(J)?this.each(function(){this.removeAttributeNS(H,J.replace(A,""))}):E.call(this,J))}}C.fn.extend({remove:function(){C("*",this).add(this).each(function(){C(this).triggerHandler("remove")});return I.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var J;if((C.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){J=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(C.curCSS(this,"position",1))&&(/(auto|scroll)/).test(C.curCSS(this,"overflow",1)+C.curCSS(this,"overflow-y",1)+C.curCSS(this,"overflow-x",1))}).eq(0)}else{J=this.parents().filter(function(){return(/(auto|scroll)/).test(C.curCSS(this,"overflow",1)+C.curCSS(this,"overflow-y",1)+C.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!J.length?C(document):J}});C.extend(C.expr[":"],{data:function(K,L,J){return C.data(K,J[3])},tabbable:function(L,M,K){var N=L.nodeName.toLowerCase();function J(O){return !(C(O).is(":hidden")||C(O).parents(":hidden").length)}return(L.tabIndex>=0&&(("a"==N&&L.href)||(/input|select|textarea|button/.test(N)&&"hidden"!=L.type&&!L.disabled))&&J(L))}});function G(M,N,O,L){function K(Q){var P=C[M][N][Q]||[];return(typeof P=="string"?P.split(/,?\s+/):P)}var J=K("getter");if(L.length==1&&typeof L[0]=="string"){J=J.concat(K("getterSetter"))}return(C.inArray(O,J)!=-1)}C.widget=function(K,J){var L=K.split(".")[0];K=K.split(".")[1];C.fn[K]=function(P){var N=(typeof P=="string"),O=Array.prototype.slice.call(arguments,1);if(N&&P.substring(0,1)=="_"){return this}if(N&&G(L,K,P,O)){var M=C.data(this[0],K);return(M?M[P].apply(M,O):undefined)}return this.each(function(){var Q=C.data(this,K);(!Q&&!N&&C.data(this,K,new C[L][K](this,P)));(Q&&N&&C.isFunction(Q[P])&&Q[P].apply(Q,O))})};C[L]=C[L]||{};C[L][K]=function(O,N){var M=this;this.widgetName=K;this.widgetEventPrefix=C[L][K].eventPrefix||K;this.widgetBaseClass=L+"-"+K;this.options=C.extend({},C.widget.defaults,C[L][K].defaults,C.metadata&&C.metadata.get(O)[K],N);this.element=C(O).bind("setData."+K,function(Q,P,R){return M._setData(P,R)}).bind("getData."+K,function(Q,P){return M._getData(P)}).bind("remove",function(){return M.destroy()});this._init()};C[L][K].prototype=C.extend({},C.widget.prototype,J);C[L][K].getterSetter="option"};C.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName)},option:function(L,M){var K=L,J=this;if(typeof L=="string"){if(M===undefined){return this._getData(L)}K={};K[L]=M}C.each(K,function(N,O){J._setData(N,O)})},_getData:function(J){return this.options[J]},_setData:function(J,K){this.options[J]=K;if(J=="disabled"){this.element[K?"addClass":"removeClass"](this.widgetBaseClass+"-disabled")}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(K,L,M){var J=(K==this.widgetEventPrefix?K:this.widgetEventPrefix+K);L=L||C.event.fix({type:J,target:this.element[0]});return this.element.triggerHandler(J,[L,M],this.options[K])}};C.widget.defaults={disabled:false};C.ui.mouse={_mouseInit:function(){var J=this;this.element.bind("mousedown."+this.widgetName,function(K){return J._mouseDown(K)}).bind("click."+this.widgetName,function(K){if(J._preventClickEvent){J._preventClickEvent=false;return false}});if(C.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(C.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(L){(this._mouseStarted&&this._mouseUp(L));this._mouseDownEvent=L;var K=this,M=(L.which==1),J=(typeof this.options.cancel=="string"?C(L.target).parents().add(L.target).filter(this.options.cancel).length:false);if(!M||J||!this._mouseCapture(L)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){K.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(L)&&this._mouseDelayMet(L)){this._mouseStarted=(this._mouseStart(L)!==false);if(!this._mouseStarted){L.preventDefault();return true}}this._mouseMoveDelegate=function(N){return K._mouseMove(N)};this._mouseUpDelegate=function(N){return K._mouseUp(N)};C(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);if(!C.browser.safari){L.preventDefault()}return true},_mouseMove:function(J){if(C.browser.msie&&!J.button){return this._mouseUp(J)}if(this._mouseStarted){this._mouseDrag(J);return J.preventDefault()}if(this._mouseDistanceMet(J)&&this._mouseDelayMet(J)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,J)!==false);(this._mouseStarted?this._mouseDrag(J):this._mouseUp(J))}return !this._mouseStarted},_mouseUp:function(J){C(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=true;this._mouseStop(J)}return false},_mouseDistanceMet:function(J){return(Math.max(Math.abs(this._mouseDownEvent.pageX-J.pageX),Math.abs(this._mouseDownEvent.pageY-J.pageY))>=this.options.distance)},_mouseDelayMet:function(J){return this.mouseDelayMet},_mouseStart:function(J){},_mouseDrag:function(J){},_mouseStop:function(J){},_mouseCapture:function(J){return true}};C.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);/* + * jQuery UI Draggable 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * ui.core.js + */ +(function(A){A.widget("ui.draggable",A.extend({},A.ui.mouse,{_init:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.cssNamespace&&this.element.addClass(this.options.cssNamespace+"-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return }this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy()},_mouseCapture:function(B){var C=this.options;if(this.helper||C.disabled||A(B.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(B);if(!this.handle){return false}return true},_mouseStart:function(B){var C=this.options;this.helper=this._createHelper(B);this._cacheHelperProportions();if(A.ui.ddmanager){A.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};A.extend(this.offset,{click:{left:B.pageX-this.offset.left,top:B.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});if(C.cursorAt){this._adjustOffsetFromHelper(C.cursorAt)}this.originalPosition=this._generatePosition(B);if(C.containment){this._setContainment()}this._propagate("start",B);this._cacheHelperProportions();if(A.ui.ddmanager&&!C.dropBehaviour){A.ui.ddmanager.prepareOffsets(this,B)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(B,true);return true},_mouseDrag:function(B,C){this.position=this._generatePosition(B);this.positionAbs=this._convertPositionTo("absolute");if(!C){this.position=this._propagate("drag",B)||this.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(A.ui.ddmanager){A.ui.ddmanager.drag(this,B)}return false},_mouseStop:function(C){var D=false;if(A.ui.ddmanager&&!this.options.dropBehaviour){var D=A.ui.ddmanager.drop(this,C)}if((this.options.revert=="invalid"&&!D)||(this.options.revert=="valid"&&D)||this.options.revert===true||(A.isFunction(this.options.revert)&&this.options.revert.call(this.element,D))){var B=this;A(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){B._propagate("stop",C);B._clear()})}else{this._propagate("stop",C);this._clear()}return false},_getHandle:function(B){var C=!this.options.handle||!A(this.options.handle,this.element).length?true:false;A(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==B.target){C=true}});return C},_createHelper:function(C){var D=this.options;var B=A.isFunction(D.helper)?A(D.helper.apply(this.element[0],[C])):(D.helper=="clone"?this.element.clone():this.element);if(!B.parents("body").length){B.appendTo((D.appendTo=="parent"?this.element[0].parentNode:D.appendTo))}if(B[0]!=this.element[0]&&!(/(fixed|absolute)/).test(B.css("position"))){B.css("position","absolute")}return B},_adjustOffsetFromHelper:function(B){if(B.left!=undefined){this.offset.click.left=B.left+this.margins.left}if(B.right!=undefined){this.offset.click.left=this.helperProportions.width-B.right+this.margins.left}if(B.top!=undefined){this.offset.click.top=B.top+this.margins.top}if(B.bottom!=undefined){this.offset.click.top=this.helperProportions.height-B.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var B=this.offsetParent.offset();if((this.offsetParent[0]==document.body&&A.browser.mozilla)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&A.browser.msie)){B={top:0,left:0}}return{top:B.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:B.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var B=this.element.position();return{top:B.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:B.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var E=this.options;if(E.containment=="parent"){E.containment=this.helper[0].parentNode}if(E.containment=="document"||E.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,A(E.containment=="document"?document:window).width()-this.offset.relative.left-this.offset.parent.left-this.helperProportions.width-this.margins.left-(parseInt(this.element.css("marginRight"),10)||0),(A(E.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.offset.relative.top-this.offset.parent.top-this.helperProportions.height-this.margins.top-(parseInt(this.element.css("marginBottom"),10)||0)]}if(!(/^(document|window|parent)$/).test(E.containment)){var C=A(E.containment)[0];var D=A(E.containment).offset();var B=(A(C).css("overflow")!="hidden");this.containment=[D.left+(parseInt(A(C).css("borderLeftWidth"),10)||0)-this.offset.relative.left-this.offset.parent.left-this.margins.left,D.top+(parseInt(A(C).css("borderTopWidth"),10)||0)-this.offset.relative.top-this.offset.parent.top-this.margins.top,D.left+(B?Math.max(C.scrollWidth,C.offsetWidth):C.offsetWidth)-(parseInt(A(C).css("borderLeftWidth"),10)||0)-this.offset.relative.left-this.offset.parent.left-this.helperProportions.width-this.margins.left,D.top+(B?Math.max(C.scrollHeight,C.offsetHeight):C.offsetHeight)-(parseInt(A(C).css("borderTopWidth"),10)||0)-this.offset.relative.top-this.offset.parent.top-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(D,F){if(!F){F=this.position}var C=D=="absolute"?1:-1;var B=this[(this.cssPosition=="absolute"?"offset":"scroll")+"Parent"],E=(/(html|body)/i).test(B[0].tagName);return{top:(F.top+this.offset.relative.top*C+this.offset.parent.top*C+(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(E?0:B.scrollTop()))*C+this.margins.top*C),left:(F.left+this.offset.relative.left*C+this.offset.parent.left*C+(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():(E?0:B.scrollLeft()))*C+this.margins.left*C)}},_generatePosition:function(D){var G=this.options,C=this[(this.cssPosition=="absolute"?"offset":"scroll")+"Parent"],H=(/(html|body)/i).test(C[0].tagName);var B={top:(D.pageY-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(H?0:C.scrollTop()))),left:(D.pageX-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():H?0:C.scrollLeft()))};if(!this.originalPosition){return B}if(this.containment){if(B.left<this.containment[0]){B.left=this.containment[0]}if(B.top<this.containment[1]){B.top=this.containment[1]}if(B.left>this.containment[2]){B.left=this.containment[2]}if(B.top>this.containment[3]){B.top=this.containment[3]}}if(G.grid){var F=this.originalPosition.top+Math.round((B.top-this.originalPosition.top)/G.grid[1])*G.grid[1];B.top=this.containment?(!(F<this.containment[1]||F>this.containment[3])?F:(!(F<this.containment[1])?F-G.grid[1]:F+G.grid[1])):F;var E=this.originalPosition.left+Math.round((B.left-this.originalPosition.left)/G.grid[0])*G.grid[0];B.left=this.containment?(!(E<this.containment[0]||E>this.containment[2])?E:(!(E<this.containment[0])?E-G.grid[0]:E+G.grid[0])):E}return B},_clear:function(){this.helper.removeClass("ui-draggable-dragging");if(this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval){this.helper.remove()}this.helper=null;this.cancelHelperRemoval=false},_propagate:function(C,B){A.ui.plugin.call(this,C,[B,this._uiHash()]);if(C=="drag"){this.positionAbs=this._convertPositionTo("absolute")}return this.element.triggerHandler(C=="drag"?C:"drag"+C,[B,this._uiHash()],this.options[C])},plugins:{},_uiHash:function(B){return{helper:this.helper,position:this.position,absolutePosition:this.positionAbs,options:this.options}}}));A.extend(A.ui.draggable,{version:"1.6",defaults:{appendTo:"parent",axis:false,cancel:":input",connectToSortable:false,containment:false,cssNamespace:"ui",cursor:"default",cursorAt:null,delay:0,distance:1,grid:false,handle:false,helper:"original",iframeFix:false,opacity:1,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:null}});A.ui.plugin.add("draggable","connectToSortable",{start:function(B,D){var C=A(this).data("draggable");C.sortables=[];A(D.options.connectToSortable).each(function(){A(this+"").each(function(){if(A.data(this,"sortable")){var E=A.data(this,"sortable");C.sortables.push({instance:E,shouldRevert:E.options.revert});E._refreshItems();E._propagate("activate",B,C)}})})},stop:function(B,D){var C=A(this).data("draggable");A.each(C.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;C.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert){this.instance.options.revert=true}this.instance._mouseStop(B);this.instance.element.triggerHandler("sortreceive",[B,A.extend(this.instance._ui(),{sender:C.element})],this.instance.options["receive"]);this.instance.options.helper=this.instance.options._helper;if(C.options.helper=="original"){this.instance.currentItem.css({top:"auto",left:"auto"})}}else{this.instance.cancelHelperRemoval=false;this.instance._propagate("deactivate",B,C)}})},drag:function(C,F){var E=A(this).data("draggable"),B=this;var D=function(I){var N=this.offset.click.top,M=this.offset.click.left;var G=this.positionAbs.top,K=this.positionAbs.left;var J=I.height,L=I.width;var O=I.top,H=I.left;return A.ui.isOver(G+N,K+M,O,H,J,L)};A.each(E.sortables,function(G){if(D.call(E,this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=A(B).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return F.helper[0]};C.target=this.instance.currentItem[0];this.instance._mouseCapture(C,true);this.instance._mouseStart(C,true,true);this.instance.offset.click.top=E.offset.click.top;this.instance.offset.click.left=E.offset.click.left;this.instance.offset.parent.left-=E.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=E.offset.parent.top-this.instance.offset.parent.top;E._propagate("toSortable",C)}if(this.instance.currentItem){this.instance._mouseDrag(C)}}else{if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._mouseStop(C,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();if(this.instance.placeholder){this.instance.placeholder.remove()}E._propagate("fromSortable",C)}}})}});A.ui.plugin.add("draggable","cursor",{start:function(C,D){var B=A("body");if(B.css("cursor")){D.options._cursor=B.css("cursor")}B.css("cursor",D.options.cursor)},stop:function(B,C){if(C.options._cursor){A("body").css("cursor",C.options._cursor)}}});A.ui.plugin.add("draggable","iframeFix",{start:function(B,C){A(C.options.iframeFix===true?"iframe":C.options.iframeFix).each(function(){A('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(A(this).offset()).appendTo("body")})},stop:function(B,C){A("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});A.ui.plugin.add("draggable","opacity",{start:function(C,D){var B=A(D.helper);if(B.css("opacity")){D.options._opacity=B.css("opacity")}B.css("opacity",D.options.opacity)},stop:function(B,C){if(C.options._opacity){A(C.helper).css("opacity",C.options._opacity)}}});A.ui.plugin.add("draggable","scroll",{start:function(C,D){var E=D.options;var B=A(this).data("draggable");if(B.scrollParent[0]!=document&&B.scrollParent[0].tagName!="HTML"){B.overflowOffset=B.scrollParent.offset()}},drag:function(D,E){var F=E.options,B=false;var C=A(this).data("draggable");if(C.scrollParent[0]!=document&&C.scrollParent[0].tagName!="HTML"){if((C.overflowOffset.top+C.scrollParent[0].offsetHeight)-D.pageY<F.scrollSensitivity){C.scrollParent[0].scrollTop=B=C.scrollParent[0].scrollTop+F.scrollSpeed}else{if(D.pageY-C.overflowOffset.top<F.scrollSensitivity){C.scrollParent[0].scrollTop=B=C.scrollParent[0].scrollTop-F.scrollSpeed}}if((C.overflowOffset.left+C.scrollParent[0].offsetWidth)-D.pageX<F.scrollSensitivity){C.scrollParent[0].scrollLeft=B=C.scrollParent[0].scrollLeft+F.scrollSpeed}else{if(D.pageX-C.overflowOffset.left<F.scrollSensitivity){C.scrollParent[0].scrollLeft=B=C.scrollParent[0].scrollLeft-F.scrollSpeed}}}else{if(D.pageY-A(document).scrollTop()<F.scrollSensitivity){B=A(document).scrollTop(A(document).scrollTop()-F.scrollSpeed)}else{if(A(window).height()-(D.pageY-A(document).scrollTop())<F.scrollSensitivity){B=A(document).scrollTop(A(document).scrollTop()+F.scrollSpeed)}}if(D.pageX-A(document).scrollLeft()<F.scrollSensitivity){B=A(document).scrollLeft(A(document).scrollLeft()-F.scrollSpeed)}else{if(A(window).width()-(D.pageX-A(document).scrollLeft())<F.scrollSensitivity){B=A(document).scrollLeft(A(document).scrollLeft()+F.scrollSpeed)}}}if(B!==false&&A.ui.ddmanager&&!F.dropBehaviour){A.ui.ddmanager.prepareOffsets(C,D)}if(B!==false&&C.cssPosition=="absolute"&&C.scrollParent[0]!=document&&A.ui.contains(C.scrollParent[0],C.offsetParent[0])){C.offset.parent=C._getParentOffset()}if(B!==false&&C.cssPosition=="relative"&&!(C.scrollParent[0]!=document&&C.scrollParent[0]!=C.offsetParent[0])){C.offset.relative=C._getRelativeOffset()}}});A.ui.plugin.add("draggable","snap",{start:function(B,D){var C=A(this).data("draggable");C.snapElements=[];A(D.options.snap.constructor!=String?(D.options.snap.items||":data(draggable)"):D.options.snap).each(function(){var F=A(this);var E=F.offset();if(this!=C.element[0]){C.snapElements.push({item:this,width:F.outerWidth(),height:F.outerHeight(),top:E.top,left:E.left})}})},drag:function(M,K){var E=A(this).data("draggable");var Q=K.options.snapTolerance;var P=K.absolutePosition.left,O=P+E.helperProportions.width,D=K.absolutePosition.top,C=D+E.helperProportions.height;for(var N=E.snapElements.length-1;N>=0;N--){var L=E.snapElements[N].left,J=L+E.snapElements[N].width,I=E.snapElements[N].top,S=I+E.snapElements[N].height;if(!((L-Q<P&&P<J+Q&&I-Q<D&&D<S+Q)||(L-Q<P&&P<J+Q&&I-Q<C&&C<S+Q)||(L-Q<O&&O<J+Q&&I-Q<D&&D<S+Q)||(L-Q<O&&O<J+Q&&I-Q<C&&C<S+Q))){if(E.snapElements[N].snapping){(E.options.snap.release&&E.options.snap.release.call(E.element,M,A.extend(E._uiHash(),{snapItem:E.snapElements[N].item})))}E.snapElements[N].snapping=false;continue}if(K.options.snapMode!="inner"){var B=Math.abs(I-C)<=Q;var R=Math.abs(S-D)<=Q;var G=Math.abs(L-O)<=Q;var H=Math.abs(J-P)<=Q;if(B){K.position.top=E._convertPositionTo("relative",{top:I-E.helperProportions.height,left:0}).top}if(R){K.position.top=E._convertPositionTo("relative",{top:S,left:0}).top}if(G){K.position.left=E._convertPositionTo("relative",{top:0,left:L-E.helperProportions.width}).left}if(H){K.position.left=E._convertPositionTo("relative",{top:0,left:J}).left}}var F=(B||R||G||H);if(K.options.snapMode!="outer"){var B=Math.abs(I-D)<=Q;var R=Math.abs(S-C)<=Q;var G=Math.abs(L-P)<=Q;var H=Math.abs(J-O)<=Q;if(B){K.position.top=E._convertPositionTo("relative",{top:I,left:0}).top}if(R){K.position.top=E._convertPositionTo("relative",{top:S-E.helperProportions.height,left:0}).top}if(G){K.position.left=E._convertPositionTo("relative",{top:0,left:L}).left}if(H){K.position.left=E._convertPositionTo("relative",{top:0,left:J-E.helperProportions.width}).left}}if(!E.snapElements[N].snapping&&(B||R||G||H||F)){(E.options.snap.snap&&E.options.snap.snap.call(E.element,M,A.extend(E._uiHash(),{snapItem:E.snapElements[N].item})))}E.snapElements[N].snapping=(B||R||G||H||F)}}});A.ui.plugin.add("draggable","stack",{start:function(B,C){var D=A.makeArray(A(C.options.stack.group)).sort(function(F,E){return(parseInt(A(F).css("zIndex"),10)||C.options.stack.min)-(parseInt(A(E).css("zIndex"),10)||C.options.stack.min)});A(D).each(function(E){this.style.zIndex=C.options.stack.min+E});this[0].style.zIndex=C.options.stack.min+D.length}});A.ui.plugin.add("draggable","zIndex",{start:function(C,D){var B=A(D.helper);if(B.css("zIndex")){D.options._zIndex=B.css("zIndex")}B.css("zIndex",D.options.zIndex)},stop:function(B,C){if(C.options._zIndex){A(C.helper).css("zIndex",C.options._zIndex)}}})})(jQuery);/* + * jQuery UI Droppable 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Droppables + * + * Depends: + * ui.core.js + * ui.draggable.js + */ +(function(A){A.widget("ui.droppable",{_init:function(){var C=this.options,B=C.accept;this.isover=0;this.isout=1;this.options.accept=this.options.accept&&A.isFunction(this.options.accept)?this.options.accept:function(D){return D.is(B)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};A.ui.ddmanager.droppables[this.options.scope]=A.ui.ddmanager.droppables[this.options.scope]||[];A.ui.ddmanager.droppables[this.options.scope].push(this);(this.options.cssNamespace&&this.element.addClass(this.options.cssNamespace+"-droppable"))},destroy:function(){var B=A.ui.ddmanager.droppables[this.options.scope];for(var C=0;C<B.length;C++){if(B[C]==this){B.splice(C,1)}}this.element.removeClass("ui-droppable-disabled").removeData("droppable").unbind(".droppable")},_setData:function(B,C){if(B=="accept"){this.options.accept=C&&A.isFunction(C)?C:function(D){return D.is(accept)}}else{A.widget.prototype._setData.apply(this,arguments)}},_activate:function(C){var B=A.ui.ddmanager.current;A.ui.plugin.call(this,"activate",[C,this.ui(B)]);if(B){this.element.triggerHandler("dropactivate",[C,this.ui(B)],this.options.activate)}},_deactivate:function(C){var B=A.ui.ddmanager.current;A.ui.plugin.call(this,"deactivate",[C,this.ui(B)]);if(B){this.element.triggerHandler("dropdeactivate",[C,this.ui(B)],this.options.deactivate)}},_over:function(C){var B=A.ui.ddmanager.current;if(!B||(B.currentItem||B.element)[0]==this.element[0]){return }if(this.options.accept.call(this.element,(B.currentItem||B.element))){A.ui.plugin.call(this,"over",[C,this.ui(B)]);this.element.triggerHandler("dropover",[C,this.ui(B)],this.options.over)}},_out:function(C){var B=A.ui.ddmanager.current;if(!B||(B.currentItem||B.element)[0]==this.element[0]){return }if(this.options.accept.call(this.element,(B.currentItem||B.element))){A.ui.plugin.call(this,"out",[C,this.ui(B)]);this.element.triggerHandler("dropout",[C,this.ui(B)],this.options.out)}},_drop:function(C,D){var B=D||A.ui.ddmanager.current;if(!B||(B.currentItem||B.element)[0]==this.element[0]){return false}var E=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var F=A.data(this,"droppable");if(F.options.greedy&&A.ui.intersect(B,A.extend(F,{offset:F.element.offset()}),F.options.tolerance)){E=true;return false}});if(E){return false}if(this.options.accept.call(this.element,(B.currentItem||B.element))){A.ui.plugin.call(this,"drop",[C,this.ui(B)]);this.element.triggerHandler("drop",[C,this.ui(B)],this.options.drop);return this.element}return false},plugins:{},ui:function(B){return{draggable:(B.currentItem||B.element),helper:B.helper,position:B.position,absolutePosition:B.positionAbs,options:this.options,element:this.element}}});A.extend(A.ui.droppable,{version:"1.6",defaults:{accept:"*",activeClass:null,cssNamespace:"ui",greedy:false,hoverClass:null,scope:"default",tolerance:"intersect"}});A.ui.intersect=function(O,I,M){if(!I.offset){return false}var D=(O.positionAbs||O.position.absolute).left,C=D+O.helperProportions.width,L=(O.positionAbs||O.position.absolute).top,K=L+O.helperProportions.height;var F=I.offset.left,B=F+I.proportions.width,N=I.offset.top,J=N+I.proportions.height;switch(M){case"fit":return(F<D&&C<B&&N<L&&K<J);break;case"intersect":return(F<D+(O.helperProportions.width/2)&&C-(O.helperProportions.width/2)<B&&N<L+(O.helperProportions.height/2)&&K-(O.helperProportions.height/2)<J);break;case"pointer":var G=((O.positionAbs||O.position.absolute).left+(O.clickOffset||O.offset.click).left),H=((O.positionAbs||O.position.absolute).top+(O.clickOffset||O.offset.click).top),E=A.ui.isOver(H,G,N,F,I.proportions.height,I.proportions.width);return E;break;case"touch":return((L>=N&&L<=J)||(K>=N&&K<=J)||(L<N&&K>J))&&((D>=F&&D<=B)||(C>=F&&C<=B)||(D<F&&C>B));break;default:return false;break}};A.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(E,G){var B=A.ui.ddmanager.droppables[E.options.scope];var F=G?G.type:null;var H=(E.currentItem||E.element).find(":data(droppable)").andSelf();droppablesLoop:for(var D=0;D<B.length;D++){if(B[D].options.disabled||(E&&!B[D].options.accept.call(B[D].element,(E.currentItem||E.element)))){continue}for(var C=0;C<H.length;C++){if(H[C]==B[D].element[0]){B[D].proportions.height=0;continue droppablesLoop}}B[D].visible=B[D].element.css("display")!="none";if(!B[D].visible){continue}B[D].offset=B[D].element.offset();B[D].proportions={width:B[D].element[0].offsetWidth,height:B[D].element[0].offsetHeight};if(F=="dragstart"||F=="sortactivate"){B[D]._activate.call(B[D],G)}}},drop:function(B,C){var D=false;A.each(A.ui.ddmanager.droppables[B.options.scope],function(){if(!this.options){return }if(!this.options.disabled&&this.visible&&A.ui.intersect(B,this,this.options.tolerance)){D=this._drop.call(this,C)}if(!this.options.disabled&&this.visible&&this.options.accept.call(this.element,(B.currentItem||B.element))){this.isout=1;this.isover=0;this._deactivate.call(this,C)}});return D},drag:function(B,C){if(B.options.refreshPositions){A.ui.ddmanager.prepareOffsets(B,C)}A.each(A.ui.ddmanager.droppables[B.options.scope],function(){if(this.options.disabled||this.greedyChild||!this.visible){return }var E=A.ui.intersect(B,this,this.options.tolerance);var G=!E&&this.isover==1?"isout":(E&&this.isover==0?"isover":null);if(!G){return }var F;if(this.options.greedy){var D=this.element.parents(":data(droppable):eq(0)");if(D.length){F=A.data(D[0],"droppable");F.greedyChild=(G=="isover"?1:0)}}if(F&&G=="isover"){F["isover"]=0;F["isout"]=1;F._out.call(F,C)}this[G]=1;this[G=="isout"?"isover":"isout"]=0;this[G=="isover"?"_over":"_out"].call(this,C);if(F&&G=="isout"){F["isout"]=0;F["isover"]=1;F._over.call(F,C)}})}};A.ui.plugin.add("droppable","activeClass",{activate:function(B,C){A(this).addClass(C.options.activeClass)},deactivate:function(B,C){A(this).removeClass(C.options.activeClass)},drop:function(B,C){A(this).removeClass(C.options.activeClass)}});A.ui.plugin.add("droppable","hoverClass",{over:function(B,C){A(this).addClass(C.options.hoverClass)},out:function(B,C){A(this).removeClass(C.options.hoverClass)},drop:function(B,C){A(this).removeClass(C.options.hoverClass)}})})(jQuery);/* + * jQuery UI Resizable 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Resizables + * + * Depends: + * ui.core.js + */ +(function(B){B.widget("ui.resizable",B.extend({},B.ui.mouse,{_init:function(){var N=this,O=this.options;var R=this.element.css("position");this.originalElement=this.element;this.element.addClass("ui-resizable").css({position:/static/.test(R)?"relative":R});B.extend(O,{_aspectRatio:!!(O.aspectRatio),helper:O.helper||O.ghost||O.animate?O.helper||"ui-resizable-helper":null,knobHandles:O.knobHandles===true?"ui-resizable-knob-handle":O.knobHandles});var I="1px solid #DEDEDE";O.defaultTheme={"ui-resizable":{display:"block"},"ui-resizable-handle":{position:"absolute",background:"#F2F2F2",fontSize:"0.1px"},"ui-resizable-n":{cursor:"n-resize",height:"4px",left:"0px",right:"0px",borderTop:I},"ui-resizable-s":{cursor:"s-resize",height:"4px",left:"0px",right:"0px",borderBottom:I},"ui-resizable-e":{cursor:"e-resize",width:"4px",top:"0px",bottom:"0px",borderRight:I},"ui-resizable-w":{cursor:"w-resize",width:"4px",top:"0px",bottom:"0px",borderLeft:I},"ui-resizable-se":{cursor:"se-resize",width:"4px",height:"4px",borderRight:I,borderBottom:I},"ui-resizable-sw":{cursor:"sw-resize",width:"4px",height:"4px",borderBottom:I,borderLeft:I},"ui-resizable-ne":{cursor:"ne-resize",width:"4px",height:"4px",borderRight:I,borderTop:I},"ui-resizable-nw":{cursor:"nw-resize",width:"4px",height:"4px",borderLeft:I,borderTop:I}};O.knobTheme={"ui-resizable-handle":{background:"#F2F2F2",border:"1px solid #808080",height:"8px",width:"8px"},"ui-resizable-n":{cursor:"n-resize",top:"0px",left:"45%"},"ui-resizable-s":{cursor:"s-resize",bottom:"0px",left:"45%"},"ui-resizable-e":{cursor:"e-resize",right:"0px",top:"45%"},"ui-resizable-w":{cursor:"w-resize",left:"0px",top:"45%"},"ui-resizable-se":{cursor:"se-resize",right:"0px",bottom:"0px"},"ui-resizable-sw":{cursor:"sw-resize",left:"0px",bottom:"0px"},"ui-resizable-nw":{cursor:"nw-resize",left:"0px",top:"0px"},"ui-resizable-ne":{cursor:"ne-resize",right:"0px",top:"0px"}};O._nodeName=this.element[0].nodeName;if(O._nodeName.match(/canvas|textarea|input|select|button|img/i)){var C=this.element;if(/relative/.test(C.css("position"))&&B.browser.opera){C.css({position:"relative",top:"auto",left:"auto"})}C.wrap(B('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:C.css("position"),width:C.outerWidth(),height:C.outerHeight(),top:C.css("top"),left:C.css("left")}));var K=this.element;this.element=this.element.parent();this.element.data("resizable",this);this.element.css({marginLeft:K.css("marginLeft"),marginTop:K.css("marginTop"),marginRight:K.css("marginRight"),marginBottom:K.css("marginBottom")});K.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});if(B.browser.safari&&O.preventDefault){K.css("resize","none")}O.proportionallyResize=K.css({position:"static",zoom:1,display:"block"});this.element.css({margin:K.css("margin")});this._proportionallyResize()}if(!O.handles){O.handles=!B(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}}if(O.handles.constructor==String){O.zIndex=O.zIndex||1000;if(O.handles=="all"){O.handles="n,e,s,w,se,sw,ne,nw"}var P=O.handles.split(",");O.handles={};var H={handle:"position: absolute; display: none; overflow:hidden;",n:"top: 0pt; width:100%;",e:"right: 0pt; height:100%;",s:"bottom: 0pt; width:100%;",w:"left: 0pt; height:100%;",se:"bottom: 0pt; right: 0px;",sw:"bottom: 0pt; left: 0px;",ne:"top: 0pt; right: 0px;",nw:"top: 0pt; left: 0px;"};for(var S=0;S<P.length;S++){var T=B.trim(P[S]),M=O.defaultTheme,G="ui-resizable-"+T,D=!B.ui.css(G)&&!O.knobHandles,Q=B.ui.css("ui-resizable-knob-handle"),U=B.extend(M[G],M["ui-resizable-handle"]),E=B.extend(O.knobTheme[G],!Q?O.knobTheme["ui-resizable-handle"]:{});var L=/sw|se|ne|nw/.test(T)?{zIndex:++O.zIndex}:{};var J=(D?H[T]:""),F=B(['<div class="ui-resizable-handle ',G,'" style="',J,H.handle,'"></div>'].join("")).css(L);O.handles[T]=".ui-resizable-"+T;this.element.append(F.css(D?U:{}).css(O.knobHandles?E:{}).addClass(O.knobHandles?"ui-resizable-knob-handle":"").addClass(O.knobHandles))}if(O.knobHandles){this.element.addClass("ui-resizable-knob").css(!B.ui.css("ui-resizable-knob")?{}:{})}}this._renderAxis=function(Z){Z=Z||this.element;for(var W in O.handles){if(O.handles[W].constructor==String){O.handles[W]=B(O.handles[W],this.element).show()}if(O.transparent){O.handles[W].css({opacity:0})}if(this.element.is(".ui-wrapper")&&O._nodeName.match(/textarea|input|select|button/i)){var X=B(O.handles[W],this.element),Y=0;Y=/sw|ne|nw|se|n|s/.test(W)?X.outerHeight():X.outerWidth();var V=["padding",/ne|nw|n/.test(W)?"Top":/se|sw|s/.test(W)?"Bottom":/^e$/.test(W)?"Right":"Left"].join("");if(!O.transparent){Z.css(V,Y)}this._proportionallyResize()}if(!B(O.handles[W]).length){continue}}};this._renderAxis(this.element);O._handles=B(".ui-resizable-handle",N.element);if(O.disableSelection){O._handles.disableSelection()}O._handles.mouseover(function(){if(!O.resizing){if(this.className){var V=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}N.axis=O.axis=V&&V[1]?V[1]:"se"}});if(O.autoHide){O._handles.hide();B(N.element).addClass("ui-resizable-autohide").hover(function(){B(this).removeClass("ui-resizable-autohide");O._handles.show()},function(){if(!O.resizing){B(this).addClass("ui-resizable-autohide");O._handles.hide()}})}this._mouseInit()},destroy:function(){var E=this.element,D=E.children(".ui-resizable").get(0);this._mouseDestroy();var C=function(F){B(F).removeClass("ui-resizable ui-resizable-disabled").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};C(E);if(E.is(".ui-wrapper")&&D){E.parent().append(B(D).css({position:E.css("position"),width:E.outerWidth(),height:E.outerHeight(),top:E.css("top"),left:E.css("left")})).end().remove();C(D)}},_mouseCapture:function(D){if(this.options.disabled){return false}var E=false;for(var C in this.options.handles){if(B(this.options.handles[C])[0]==D.target){E=true}}if(!E){return false}return true},_mouseStart:function(D){var E=this.options,C=this.element.position(),F=this.element,I=B.browser.msie&&B.browser.version<7;E.resizing=true;E.documentScroll={top:B(document).scrollTop(),left:B(document).scrollLeft()};if(F.is(".ui-draggable")||(/absolute/).test(F.css("position"))){var K=B.browser.msie&&!E.containment&&(/absolute/).test(F.css("position"))&&!(/relative/).test(F.parent().css("position"));var L=K?this.documentScroll.top:0,H=K?this.documentScroll.left:0;F.css({position:"absolute",top:(C.top+L),left:(C.left+H)})}if(B.browser.opera&&(/relative/).test(F.css("position"))){F.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var M=A(this.helper.css("left")),G=A(this.helper.css("top"));if(E.containment){M+=B(E.containment).scrollLeft()||0;G+=B(E.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:M,top:G};this.size=E.helper||I?{width:F.outerWidth(),height:F.outerHeight()}:{width:F.width(),height:F.height()};this.originalSize=E.helper||I?{width:F.outerWidth(),height:F.outerHeight()}:{width:F.width(),height:F.height()};this.originalPosition={left:M,top:G};this.sizeDiff={width:F.outerWidth()-F.width(),height:F.outerHeight()-F.height()};this.originalMousePosition={left:D.pageX,top:D.pageY};E.aspectRatio=(typeof E.aspectRatio=="number")?E.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);if(E.preserveCursor){var J=B(".ui-resizable-"+this.axis).css("cursor");B("body").css("cursor",J=="auto"?this.axis+"-resize":J)}this._propagate("start",D);return true},_mouseDrag:function(C){var F=this.helper,E=this.options,K={},N=this,H=this.originalMousePosition,L=this.axis;var O=(C.pageX-H.left)||0,M=(C.pageY-H.top)||0;var G=this._change[L];if(!G){return false}var J=G.apply(this,[C,O,M]),I=B.browser.msie&&B.browser.version<7,D=this.sizeDiff;if(E._aspectRatio||C.shiftKey){J=this._updateRatio(J,C)}J=this._respectSize(J,C);this._propagate("resize",C);F.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!E.helper&&E.proportionallyResize){this._proportionallyResize()}this._updateCache(J);this.element.triggerHandler("resize",[C,this.ui()],this.options["resize"]);return false},_mouseStop:function(F){this.options.resizing=false;var G=this.options,K=this;if(G.helper){var E=G.proportionallyResize,C=E&&(/textarea/i).test(E.get(0).nodeName),D=C&&B.ui.hasScroll(E.get(0),"left")?0:K.sizeDiff.height,I=C?0:K.sizeDiff.width;var L={width:(K.size.width-I),height:(K.size.height-D)},H=(parseInt(K.element.css("left"),10)+(K.position.left-K.originalPosition.left))||null,J=(parseInt(K.element.css("top"),10)+(K.position.top-K.originalPosition.top))||null;if(!G.animate){this.element.css(B.extend(L,{top:J,left:H}))}if(G.helper&&!G.animate){this._proportionallyResize()}}if(G.preserveCursor){B("body").css("cursor","auto")}this._propagate("stop",F);if(G.helper){this.helper.remove()}return false},_updateCache:function(C){var D=this.options;this.offset=this.helper.offset();if(C.left){this.position.left=C.left}if(C.top){this.position.top=C.top}if(C.height){this.size.height=C.height}if(C.width){this.size.width=C.width}},_updateRatio:function(F,E){var G=this.options,H=this.position,D=this.size,C=this.axis;if(F.height){F.width=(D.height*G.aspectRatio)}else{if(F.width){F.height=(D.width/G.aspectRatio)}}if(C=="sw"){F.left=H.left+(D.width-F.width);F.top=null}if(C=="nw"){F.top=H.top+(D.height-F.height);F.left=H.left+(D.width-F.width)}return F},_respectSize:function(J,E){var H=this.helper,G=this.options,O=G._aspectRatio||E.shiftKey,N=this.axis,Q=J.width&&G.maxWidth&&G.maxWidth<J.width,K=J.height&&G.maxHeight&&G.maxHeight<J.height,F=J.width&&G.minWidth&&G.minWidth>J.width,P=J.height&&G.minHeight&&G.minHeight>J.height;if(F){J.width=G.minWidth}if(P){J.height=G.minHeight}if(Q){J.width=G.maxWidth}if(K){J.height=G.maxHeight}var D=this.originalPosition.left+this.originalSize.width,M=this.position.top+this.size.height;var I=/sw|nw|w/.test(N),C=/nw|ne|n/.test(N);if(F&&I){J.left=D-G.minWidth}if(Q&&I){J.left=D-G.maxWidth}if(P&&C){J.top=M-G.minHeight}if(K&&C){J.top=M-G.maxHeight}var L=!J.width&&!J.height;if(L&&!J.left&&J.top){J.top=null}else{if(L&&!J.top&&J.left){J.left=null}}return J},_proportionallyResize:function(){var G=this.options;if(!G.proportionallyResize){return }var E=G.proportionallyResize,D=this.helper||this.element;if(!G.borderDif){var C=[E.css("borderTopWidth"),E.css("borderRightWidth"),E.css("borderBottomWidth"),E.css("borderLeftWidth")],F=[E.css("paddingTop"),E.css("paddingRight"),E.css("paddingBottom"),E.css("paddingLeft")];G.borderDif=B.map(C,function(H,J){var I=parseInt(H,10)||0,K=parseInt(F[J],10)||0;return I+K})}E.css({height:(D.height()-G.borderDif[0]-G.borderDif[2])+"px",width:(D.width()-G.borderDif[1]-G.borderDif[3])+"px"})},_renderProxy:function(){var D=this.element,G=this.options;this.elementOffset=D.offset();if(G.helper){this.helper=this.helper||B('<div style="overflow:hidden;"></div>');var C=B.browser.msie&&B.browser.version<7,E=(C?1:0),F=(C?2:-1);this.helper.addClass(G.helper).css({width:D.outerWidth()+F,height:D.outerHeight()+F,position:"absolute",left:this.elementOffset.left-E+"px",top:this.elementOffset.top-E+"px",zIndex:++G.zIndex});this.helper.appendTo("body");if(G.disableSelection){this.helper.disableSelection()}}else{this.helper=D}},_change:{e:function(E,D,C){return{width:this.originalSize.width+D}},w:function(F,D,C){var H=this.options,E=this.originalSize,G=this.originalPosition;return{left:G.left+D,width:E.width-D}},n:function(F,D,C){var H=this.options,E=this.originalSize,G=this.originalPosition;return{top:G.top+C,height:E.height-C}},s:function(E,D,C){return{height:this.originalSize.height+C}},se:function(E,D,C){return B.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[E,D,C]))},sw:function(E,D,C){return B.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[E,D,C]))},ne:function(E,D,C){return B.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[E,D,C]))},nw:function(E,D,C){return B.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[E,D,C]))}},_propagate:function(D,C){B.ui.plugin.call(this,D,[C,this.ui()]);if(D!="resize"){this.element.triggerHandler(["resize",D].join(""),[C,this.ui()],this.options[D])}},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,options:this.options,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));B.extend(B.ui.resizable,{version:"1.6",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input",containment:false,disableSelection:true,distance:1,delay:0,ghost:false,grid:false,knobHandles:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,preserveCursor:true,preventDefault:true,proportionallyResize:false,transparent:false}});B.ui.plugin.add("resizable","alsoResize",{start:function(D,E){var G=E.options,C=B(this).data("resizable"),F=function(H){B(H).each(function(){B(this).data("resizable-alsoresize",{width:parseInt(B(this).width(),10),height:parseInt(B(this).height(),10),left:parseInt(B(this).css("left"),10),top:parseInt(B(this).css("top"),10)})})};if(typeof (G.alsoResize)=="object"&&!G.alsoResize.parentNode){if(G.alsoResize.length){G.alsoResize=G.alsoResize[0];F(G.alsoResize)}else{B.each(G.alsoResize,function(H,I){F(H)})}}else{F(G.alsoResize)}},resize:function(E,G){var H=G.options,D=B(this).data("resizable"),F=D.originalSize,J=D.originalPosition;var I={height:(D.size.height-F.height)||0,width:(D.size.width-F.width)||0,top:(D.position.top-J.top)||0,left:(D.position.left-J.left)||0},C=function(K,L){B(K).each(function(){var O=B(this).data("resizable-alsoresize"),N={},M=L&&L.length?L:["width","height","top","left"];B.each(M||["width","height","top","left"],function(P,R){var Q=(O[R]||0)+(I[R]||0);if(Q&&Q>=0){N[R]=Q||null}});B(this).css(N)})};if(typeof (H.alsoResize)=="object"&&!H.alsoResize.parentNode){B.each(H.alsoResize,function(K,L){C(K,L)})}else{C(H.alsoResize)}},stop:function(C,D){B(this).removeData("resizable-alsoresize-start")}});B.ui.plugin.add("resizable","animate",{stop:function(G,L){var H=L.options,M=B(this).data("resizable");var F=H.proportionallyResize,C=F&&(/textarea/i).test(F.get(0).nodeName),D=C&&B.ui.hasScroll(F.get(0),"left")?0:M.sizeDiff.height,J=C?0:M.sizeDiff.width;var E={width:(M.size.width-J),height:(M.size.height-D)},I=(parseInt(M.element.css("left"),10)+(M.position.left-M.originalPosition.left))||null,K=(parseInt(M.element.css("top"),10)+(M.position.top-M.originalPosition.top))||null;M.element.animate(B.extend(E,K&&I?{top:K,left:I}:{}),{duration:H.animateDuration,easing:H.animateEasing,step:function(){var N={width:parseInt(M.element.css("width"),10),height:parseInt(M.element.css("height"),10),top:parseInt(M.element.css("top"),10),left:parseInt(M.element.css("left"),10)};if(F){F.css({width:N.width,height:N.height})}M._updateCache(N);M._propagate("animate",G)}})}});B.ui.plugin.add("resizable","containment",{start:function(D,N){var H=N.options,P=B(this).data("resizable"),J=P.element;var E=H.containment,I=(E instanceof B)?E.get(0):(/parent/.test(E))?J.parent().get(0):E;if(!I){return }P.containerElement=B(I);if(/document/.test(E)||E==document){P.containerOffset={left:0,top:0};P.containerPosition={left:0,top:0};P.parentData={element:B(document),left:0,top:0,width:B(document).width(),height:B(document).height()||document.body.parentNode.scrollHeight}}else{var L=B(I),G=[];B(["Top","Right","Left","Bottom"]).each(function(R,Q){G[R]=A(L.css("padding"+Q))});P.containerOffset=L.offset();P.containerPosition=L.position();P.containerSize={height:(L.innerHeight()-G[3]),width:(L.innerWidth()-G[1])};var M=P.containerOffset,C=P.containerSize.height,K=P.containerSize.width,F=(B.ui.hasScroll(I,"left")?I.scrollWidth:K),O=(B.ui.hasScroll(I)?I.scrollHeight:C);P.parentData={element:I,left:M.left,top:M.top,width:F,height:O}}},resize:function(E,N){var G=N.options,Q=B(this).data("resizable"),D=Q.containerSize,M=Q.containerOffset,K=Q.size,L=Q.position,O=G._aspectRatio||E.shiftKey,C={top:0,left:0},F=Q.containerElement;if(F[0]!=document&&(/static/).test(F.css("position"))){C=M}if(L.left<(G.helper?M.left:0)){Q.size.width=Q.size.width+(G.helper?(Q.position.left-M.left):(Q.position.left-C.left));if(O){Q.size.height=Q.size.width/G.aspectRatio}Q.position.left=G.helper?M.left:0}if(L.top<(G.helper?M.top:0)){Q.size.height=Q.size.height+(G.helper?(Q.position.top-M.top):Q.position.top);if(O){Q.size.width=Q.size.height*G.aspectRatio}Q.position.top=G.helper?M.top:0}Q.offset.left=Q.parentData.left+Q.position.left;Q.offset.top=Q.parentData.top+Q.position.top;var J=Math.abs((G.helper?Q.offset.left-C.left:(Q.offset.left-C.left))+Q.sizeDiff.width),P=Math.abs((G.helper?Q.offset.top-C.top:(Q.offset.top-M.top))+Q.sizeDiff.height);var I=Q.containerElement.get(0)==Q.element.parent().get(0),H=/relative|absolute/.test(Q.containerElement.css("position"));if(I&&H){J-=Q.parentData.left}if(J+Q.size.width>=Q.parentData.width){Q.size.width=Q.parentData.width-J;if(O){Q.size.height=Q.size.width/G.aspectRatio}}if(P+Q.size.height>=Q.parentData.height){Q.size.height=Q.parentData.height-P;if(O){Q.size.width=Q.size.height*G.aspectRatio}}},stop:function(D,K){var E=K.options,M=B(this).data("resizable"),I=M.position,J=M.containerOffset,C=M.containerPosition,F=M.containerElement;var G=B(M.helper),N=G.offset(),L=G.outerWidth()-M.sizeDiff.width,H=G.outerHeight()-M.sizeDiff.height;if(E.helper&&!E.animate&&(/relative/).test(F.css("position"))){B(this).css({left:N.left-C.left-J.left,width:L,height:H})}if(E.helper&&!E.animate&&(/static/).test(F.css("position"))){B(this).css({left:N.left-C.left-J.left,width:L,height:H})}}});B.ui.plugin.add("resizable","ghost",{start:function(E,F){var G=F.options,C=B(this).data("resizable"),H=G.proportionallyResize,D=C.size;if(!H){C.ghost=C.element.clone()}else{C.ghost=H.clone()}C.ghost.css({opacity:0.25,display:"block",position:"relative",height:D.height,width:D.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof G.ghost=="string"?G.ghost:"");C.ghost.appendTo(C.helper)},resize:function(D,E){var F=E.options,C=B(this).data("resizable"),G=F.proportionallyResize;if(C.ghost){C.ghost.css({position:"relative",height:C.size.height,width:C.size.width})}},stop:function(D,E){var F=E.options,C=B(this).data("resizable"),G=F.proportionallyResize;if(C.ghost&&C.helper){C.helper.get(0).removeChild(C.ghost.get(0))}}});B.ui.plugin.add("resizable","grid",{resize:function(C,K){var F=K.options,M=B(this).data("resizable"),I=M.size,G=M.originalSize,H=M.originalPosition,L=M.axis,J=F._aspectRatio||C.shiftKey;F.grid=typeof F.grid=="number"?[F.grid,F.grid]:F.grid;var E=Math.round((I.width-G.width)/(F.grid[0]||1))*(F.grid[0]||1),D=Math.round((I.height-G.height)/(F.grid[1]||1))*(F.grid[1]||1);if(/^(se|s|e)$/.test(L)){M.size.width=G.width+E;M.size.height=G.height+D}else{if(/^(ne)$/.test(L)){M.size.width=G.width+E;M.size.height=G.height+D;M.position.top=H.top-D}else{if(/^(sw)$/.test(L)){M.size.width=G.width+E;M.size.height=G.height+D;M.position.left=H.left-E}else{M.size.width=G.width+E;M.size.height=G.height+D;M.position.top=H.top-D;M.position.left=H.left-E}}}}});var A=function(C){return parseInt(C,10)||0}})(jQuery);/* + * jQuery UI Selectable 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Selectables + * + * Depends: + * ui.core.js + */ +(function(A){A.widget("ui.selectable",A.extend({},A.ui.mouse,{_init:function(){var B=this;this.element.addClass("ui-selectable");this.dragged=false;var C;this.refresh=function(){C=A(B.options.filter,B.element[0]);C.each(function(){var D=A(this);var E=D.offset();A.data(this,"selectable-item",{element:this,$element:D,left:E.left,top:E.top,right:E.left+D.width(),bottom:E.top+D.height(),startselected:false,selected:D.hasClass("ui-selected"),selecting:D.hasClass("ui-selecting"),unselecting:D.hasClass("ui-unselecting")})})};this.refresh();this.selectees=C.addClass("ui-selectee");this._mouseInit();this.helper=A(document.createElement("div")).css({border:"1px dotted black"}).addClass("ui-selectable-helper")},destroy:function(){this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy()},_mouseStart:function(E){var C=this;this.opos=[E.pageX,E.pageY];if(this.options.disabled){return }var D=this.options;this.selectees=A(D.filter,this.element[0]);this.element.triggerHandler("selectablestart",[E,{"selectable":this.element[0],"options":D}],D.start);A("body").append(this.helper);this.helper.css({"z-index":100,"position":"absolute","left":E.clientX,"top":E.clientY,"width":0,"height":0});if(D.autoRefresh){this.refresh()}this.selectees.filter(".ui-selected").each(function(){var F=A.data(this,"selectable-item");F.startselected=true;if(!E.metaKey){F.$element.removeClass("ui-selected");F.selected=false;F.$element.addClass("ui-unselecting");F.unselecting=true;C.element.triggerHandler("selectableunselecting",[E,{selectable:C.element[0],unselecting:F.element,options:D}],D.unselecting)}});var B=false;A(E.target).parents().andSelf().each(function(){if(A.data(this,"selectable-item")){B=true}});return this.options.keyboard?!B:true},_mouseDrag:function(I){var C=this;this.dragged=true;if(this.options.disabled){return }var E=this.options;var D=this.opos[0],H=this.opos[1],B=I.pageX,G=I.pageY;if(D>B){var F=B;B=D;D=F}if(H>G){var F=G;G=H;H=F}this.helper.css({left:D,top:H,width:B-D,height:G-H});this.selectees.each(function(){var J=A.data(this,"selectable-item");if(!J||J.element==C.element[0]){return }var K=false;if(E.tolerance=="touch"){K=(!(J.left>B||J.right<D||J.top>G||J.bottom<H))}else{if(E.tolerance=="fit"){K=(J.left>D&&J.right<B&&J.top>H&&J.bottom<G)}}if(K){if(J.selected){J.$element.removeClass("ui-selected");J.selected=false}if(J.unselecting){J.$element.removeClass("ui-unselecting");J.unselecting=false}if(!J.selecting){J.$element.addClass("ui-selecting");J.selecting=true;C.element.triggerHandler("selectableselecting",[I,{selectable:C.element[0],selecting:J.element,options:E}],E.selecting)}}else{if(J.selecting){if(I.metaKey&&J.startselected){J.$element.removeClass("ui-selecting");J.selecting=false;J.$element.addClass("ui-selected");J.selected=true}else{J.$element.removeClass("ui-selecting");J.selecting=false;if(J.startselected){J.$element.addClass("ui-unselecting");J.unselecting=true}C.element.triggerHandler("selectableunselecting",[I,{selectable:C.element[0],unselecting:J.element,options:E}],E.unselecting)}}if(J.selected){if(!I.metaKey&&!J.startselected){J.$element.removeClass("ui-selected");J.selected=false;J.$element.addClass("ui-unselecting");J.unselecting=true;C.element.triggerHandler("selectableunselecting",[I,{selectable:C.element[0],unselecting:J.element,options:E}],E.unselecting)}}}});return false},_mouseStop:function(D){var B=this;this.dragged=false;var C=this.options;A(".ui-unselecting",this.element[0]).each(function(){var E=A.data(this,"selectable-item");E.$element.removeClass("ui-unselecting");E.unselecting=false;E.startselected=false;B.element.triggerHandler("selectableunselected",[D,{selectable:B.element[0],unselected:E.element,options:C}],C.unselected)});A(".ui-selecting",this.element[0]).each(function(){var E=A.data(this,"selectable-item");E.$element.removeClass("ui-selecting").addClass("ui-selected");E.selecting=false;E.selected=true;E.startselected=true;B.element.triggerHandler("selectableselected",[D,{selectable:B.element[0],selected:E.element,options:C}],C.selected)});this.element.triggerHandler("selectablestop",[D,{selectable:B.element[0],options:this.options}],this.options.stop);this.helper.remove();return false}}));A.extend(A.ui.selectable,{version:"1.6",defaults:{appendTo:"body",autoRefresh:true,cancel:":input",delay:0,distance:1,filter:"*",tolerance:"touch"}})})(jQuery);/* + * jQuery UI Sortable 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Sortables + * + * Depends: + * ui.core.js + */ +(function(A){A.widget("ui.sortable",A.extend({},A.ui.mouse,{_init:function(){var B=this.options;this.containerCache={};this.element.addClass("ui-sortable");this.refresh();this.floating=this.items.length?(/left|right/).test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var B=this.items.length-1;B>=0;B--){this.items[B].item.removeData("sortable-item")}},_mouseCapture:function(E,F){if(this.reverting){return false}if(this.options.disabled||this.options.type=="static"){return false}this._refreshItems(E);var D=null,C=this,B=A(E.target).parents().each(function(){if(A.data(this,"sortable-item")==C){D=A(this);return false}});if(A.data(E.target,"sortable-item")==C){D=A(E.target)}if(!D){return false}if(this.options.handle&&!F){var G=false;A(this.options.handle,D).find("*").andSelf().each(function(){if(this==E.target){G=true}});if(!G){return false}}this.currentItem=D;this._removeCurrentsFromItems();return true},_mouseStart:function(D,E,B){var F=this.options;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(D);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");A.extend(this.offset,{click:{left:D.pageX-this.offset.left,top:D.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});if(F.cursorAt){this._adjustOffsetFromHelper(F.cursorAt)}this.originalPosition=this._generatePosition(D);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};if(this.helper[0]!=this.currentItem[0]){this.currentItem.hide()}this._createPlaceholder();if(F.containment){this._setContainment()}this._propagate("start",D);if(!this._preserveHelperProportions){this._cacheHelperProportions()}if(!B){for(var C=this.containers.length-1;C>=0;C--){this.containers[C]._propagate("activate",D,this)}}if(A.ui.ddmanager){A.ui.ddmanager.current=this}if(A.ui.ddmanager&&!F.dropBehaviour){A.ui.ddmanager.prepareOffsets(this,D)}this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(D);return true},_mouseDrag:function(E){this.position=this._generatePosition(E);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs){this.lastPositionAbs=this.positionAbs}A.ui.plugin.call(this,"sort",[E,this._ui()]);this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}for(var C=this.items.length-1;C>=0;C--){var D=this.items[C],B=D.item[0],F=this._intersectsWithPointer(D);if(!F){continue}if(B!=this.currentItem[0]&&this.placeholder[F==1?"next":"prev"]()[0]!=B&&!A.ui.contains(this.placeholder[0],B)&&(this.options.type=="semi-dynamic"?!A.ui.contains(this.element[0],B):true)){this.direction=F==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(D)){this.options.sortIndicator.call(this,E,D)}else{break}this._propagate("change",E);break}}this._contactContainers(E);if(A.ui.ddmanager){A.ui.ddmanager.drag(this,E)}this._trigger("sort",E,this._ui());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(C,D){if(!C){return }if(A.ui.ddmanager&&!this.options.dropBehaviour){A.ui.ddmanager.drop(this,C)}if(this.options.revert){var B=this;var E=B.placeholder.offset();B.reverting=true;A(this.helper).animate({left:E.left-this.offset.parent.left-B.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:E.top-this.offset.parent.top-B.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){B._clear(C)})}else{this._clear(C,D)}return false},cancel:function(){if(this.dragging){this._mouseUp();if(this.options.helper=="original"){this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}for(var B=this.containers.length-1;B>=0;B--){this.containers[B]._propagate("deactivate",null,this);if(this.containers[B].containerCache.over){this.containers[B]._propagate("out",null,this);this.containers[B].containerCache.over=0}}}if(this.placeholder[0].parentNode){this.placeholder[0].parentNode.removeChild(this.placeholder[0])}if(this.options.helper!="original"&&this.helper&&this.helper[0].parentNode){this.helper.remove()}A.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});if(this.domPosition.prev){A(this.domPosition.prev).after(this.currentItem)}else{A(this.domPosition.parent).prepend(this.currentItem)}return true},serialize:function(D){var B=this._getItemsAsjQuery(D&&D.connected);var C=[];D=D||{};A(B).each(function(){var E=(A(D.item||this).attr(D.attribute||"id")||"").match(D.expression||(/(.+)[-=_](.+)/));if(E){C.push((D.key||E[1]+"[]")+"="+(D.key&&D.expression?E[1]:E[2]))}});return C.join("&")},toArray:function(D){var B=this._getItemsAsjQuery(D&&D.connected);var C=[];D=D||{};B.each(function(){C.push(A(D.item||this).attr(D.attribute||"id")||"")});return C},_intersectsWith:function(K){var D=this.positionAbs.left,C=D+this.helperProportions.width,J=this.positionAbs.top,I=J+this.helperProportions.height;var E=K.left,B=E+K.width,L=K.top,H=L+K.height;var M=this.offset.click.top,G=this.offset.click.left;var F=(J+M)>L&&(J+M)<H&&(D+G)>E&&(D+G)<B;if(this.options.tolerance=="pointer"||this.options.forcePointerForContainers||(this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>K[this.floating?"width":"height"])){return F}else{return(E<D+(this.helperProportions.width/2)&&C-(this.helperProportions.width/2)<B&&L<J+(this.helperProportions.height/2)&&I-(this.helperProportions.height/2)<H)}},_intersectsWithPointer:function(D){var E=A.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,D.top,D.height),C=A.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,D.left,D.width),G=E&&C,B=this._getDragVerticalDirection(),F=this._getDragHorizontalDirection();if(!G){return false}return this.floating?(((F&&F=="right")||B=="down")?2:1):(B&&(B=="down"?2:1))},_intersectsWithSides:function(E){var C=A.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,E.top+(E.height/2),E.height),D=A.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,E.left+(E.width/2),E.width),B=this._getDragVerticalDirection(),F=this._getDragHorizontalDirection();if(this.floating&&F){return((F=="right"&&D)||(F=="left"&&!D))}else{return B&&((B=="down"&&C)||(B=="up"&&!C))}},_getDragVerticalDirection:function(){var B=this.positionAbs.top-this.lastPositionAbs.top;return B!=0&&(B>0?"down":"up")},_getDragHorizontalDirection:function(){var B=this.positionAbs.left-this.lastPositionAbs.left;return B!=0&&(B>0?"right":"left")},refresh:function(B){this._refreshItems(B);this.refreshPositions()},_getItemsAsjQuery:function(G){var C=this;var B=[];var E=[];if(this.options.connectWith&&G){for(var F=this.options.connectWith.length-1;F>=0;F--){var I=A(this.options.connectWith[F]);for(var D=I.length-1;D>=0;D--){var H=A.data(I[D],"sortable");if(H&&H!=this&&!H.options.disabled){E.push([A.isFunction(H.options.items)?H.options.items.call(H.element):A(H.options.items,H.element).not(".ui-sortable-helper"),H])}}}}E.push([A.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):A(this.options.items,this.element).not(".ui-sortable-helper"),this]);for(var F=E.length-1;F>=0;F--){E[F][0].each(function(){B.push(this)})}return A(B)},_removeCurrentsFromItems:function(){var D=this.currentItem.find(":data(sortable-item)");for(var C=0;C<this.items.length;C++){for(var B=0;B<D.length;B++){if(D[B]==this.items[C].item[0]){this.items.splice(C,1)}}}},_refreshItems:function(B){this.items=[];this.containers=[this];var H=this.items;var M=this;var F=[[A.isFunction(this.options.items)?this.options.items.call(this.element[0],B,{item:this.currentItem}):A(this.options.items,this.element),this]];if(this.options.connectWith){for(var E=this.options.connectWith.length-1;E>=0;E--){var J=A(this.options.connectWith[E]);for(var D=J.length-1;D>=0;D--){var G=A.data(J[D],"sortable");if(G&&G!=this&&!G.options.disabled){F.push([A.isFunction(G.options.items)?G.options.items.call(G.element[0],B,{item:this.currentItem}):A(G.options.items,G.element),G]);this.containers.push(G)}}}}for(var E=F.length-1;E>=0;E--){var I=F[E][1];var C=F[E][0];for(var D=0,K=C.length;D<K;D++){var L=A(C[D]);L.data("sortable-item",I);H.push({item:L,instance:I,width:0,height:0,left:0,top:0})}}},refreshPositions:function(B){if(this.offsetParent&&this.helper){this.offset.parent=this._getParentOffset()}for(var D=this.items.length-1;D>=0;D--){var E=this.items[D];if(E.instance!=this.currentContainer&&this.currentContainer&&E.item[0]!=this.currentItem[0]){continue}var C=this.options.toleranceElement?A(this.options.toleranceElement,E.item):E.item;if(!B){if(this.options.accurateIntersection){E.width=C.outerWidth();E.height=C.outerHeight()}else{E.width=C[0].offsetWidth;E.height=C[0].offsetHeight}}var F=C.offset();E.left=F.left;E.top=F.top}if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this)}else{for(var D=this.containers.length-1;D>=0;D--){var F=this.containers[D].element.offset();this.containers[D].containerCache.left=F.left;this.containers[D].containerCache.top=F.top;this.containers[D].containerCache.width=this.containers[D].element.outerWidth();this.containers[D].containerCache.height=this.containers[D].element.outerHeight()}}},_createPlaceholder:function(D){var B=D||this,E=B.options;if(!E.placeholder||E.placeholder.constructor==String){var C=E.placeholder;E.placeholder={element:function(){var F=A(document.createElement(B.currentItem[0].nodeName)).addClass(C||B.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!C){F.style.visibility="hidden";document.body.appendChild(F);F.innerHTML=B.currentItem[0].innerHTML.replace(/name\=\"[^\"\']+\"/g,"").replace(/jQuery[0-9]+\=\"[^\"\']+\"/g,"");document.body.removeChild(F)}return F},update:function(F,G){if(C&&!E.forcePlaceholderSize){return }if(!G.height()){G.height(B.currentItem.innerHeight()-parseInt(B.currentItem.css("paddingTop")||0,10)-parseInt(B.currentItem.css("paddingBottom")||0,10))}if(!G.width()){G.width(B.currentItem.innerWidth()-parseInt(B.currentItem.css("paddingLeft")||0,10)-parseInt(B.currentItem.css("paddingRight")||0,10))}}}}B.placeholder=A(E.placeholder.element.call(B.element,B.currentItem));B.currentItem.after(B.placeholder);E.placeholder.update(B,B.placeholder)},_contactContainers:function(D){for(var C=this.containers.length-1;C>=0;C--){if(this._intersectsWith(this.containers[C].containerCache)){if(!this.containers[C].containerCache.over){if(this.currentContainer!=this.containers[C]){var H=10000;var G=null;var E=this.positionAbs[this.containers[C].floating?"left":"top"];for(var B=this.items.length-1;B>=0;B--){if(!A.ui.contains(this.containers[C].element[0],this.items[B].item[0])){continue}var F=this.items[B][this.containers[C].floating?"left":"top"];if(Math.abs(F-E)<H){H=Math.abs(F-E);G=this.items[B]}}if(!G&&!this.options.dropOnEmpty){continue}this.currentContainer=this.containers[C];G?this.options.sortIndicator.call(this,D,G,null,true):this.options.sortIndicator.call(this,D,null,this.containers[C].element,true);this._propagate("change",D);this.containers[C]._propagate("change",D,this);this.options.placeholder.update(this.currentContainer,this.placeholder)}this.containers[C]._propagate("over",D,this);this.containers[C].containerCache.over=1}}else{if(this.containers[C].containerCache.over){this.containers[C]._propagate("out",D,this);this.containers[C].containerCache.over=0}}}},_createHelper:function(C){var D=this.options;var B=A.isFunction(D.helper)?A(D.helper.apply(this.element[0],[C,this.currentItem])):(D.helper=="clone"?this.currentItem.clone():this.currentItem);if(!B.parents("body").length){A(D.appendTo!="parent"?D.appendTo:this.currentItem[0].parentNode)[0].appendChild(B[0])}if(B[0]==this.currentItem[0]){this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}}if(B[0].style.width==""||D.forceHelperSize){B.width(this.currentItem.width())}if(B[0].style.height==""||D.forceHelperSize){B.height(this.currentItem.height())}return B},_adjustOffsetFromHelper:function(B){if(B.left!=undefined){this.offset.click.left=B.left+this.margins.left}if(B.right!=undefined){this.offset.click.left=this.helperProportions.width-B.right+this.margins.left}if(B.top!=undefined){this.offset.click.top=B.top+this.margins.top}if(B.bottom!=undefined){this.offset.click.top=this.helperProportions.height-B.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var B=this.offsetParent.offset();if((this.offsetParent[0]==document.body&&A.browser.mozilla)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&A.browser.msie)){B={top:0,left:0}}return{top:B.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:B.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var B=this.currentItem.position();return{top:B.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:B.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.currentItem.css("marginLeft"),10)||0),top:(parseInt(this.currentItem.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var E=this.options;if(E.containment=="parent"){E.containment=this.helper[0].parentNode}if(E.containment=="document"||E.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,A(E.containment=="document"?document:window).width()-this.offset.relative.left-this.offset.parent.left-this.margins.left-(parseInt(this.currentItem.css("marginRight"),10)||0),(A(E.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.offset.relative.top-this.offset.parent.top-this.margins.top-(parseInt(this.currentItem.css("marginBottom"),10)||0)]}if(!(/^(document|window|parent)$/).test(E.containment)){var C=A(E.containment)[0];var D=A(E.containment).offset();var B=(A(C).css("overflow")!="hidden");this.containment=[D.left+(parseInt(A(C).css("borderLeftWidth"),10)||0)-this.offset.relative.left-this.offset.parent.left-this.margins.left,D.top+(parseInt(A(C).css("borderTopWidth"),10)||0)-this.offset.relative.top-this.offset.parent.top-this.margins.top,D.left+(B?Math.max(C.scrollWidth,C.offsetWidth):C.offsetWidth)-(parseInt(A(C).css("borderLeftWidth"),10)||0)-this.offset.relative.left-this.offset.parent.left-this.margins.left,D.top+(B?Math.max(C.scrollHeight,C.offsetHeight):C.offsetHeight)-(parseInt(A(C).css("borderTopWidth"),10)||0)-this.offset.relative.top-this.offset.parent.top-this.margins.top]}},_convertPositionTo:function(D,F){if(!F){F=this.position}var C=D=="absolute"?1:-1;var B=this[(this.cssPosition=="absolute"?"offset":"scroll")+"Parent"],E=(/(html|body)/i).test(B[0].tagName);return{top:(F.top+this.offset.relative.top*C+this.offset.parent.top*C+(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(E?0:B.scrollTop()))*C+this.margins.top*C),left:(F.left+this.offset.relative.left*C+this.offset.parent.left*C+(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():(E?0:B.scrollLeft()))*C+this.margins.left*C)}},_generatePosition:function(D){var G=this.options,C=this[(this.cssPosition=="absolute"?"offset":"scroll")+"Parent"],H=(/(html|body)/i).test(C[0].tagName);var B={top:(D.pageY-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(H?0:C.scrollTop()))),left:(D.pageX-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():(H?0:C.scrollLeft())))};if(!this.originalPosition){return B}if(this.containment){if(B.left<this.containment[0]){B.left=this.containment[0]}if(B.top<this.containment[1]){B.top=this.containment[1]}if(B.left+this.helperProportions.width>this.containment[2]){B.left=this.containment[2]-this.helperProportions.width}if(B.top+this.helperProportions.height>this.containment[3]){B.top=this.containment[3]-this.helperProportions.height}}if(G.grid){var F=this.originalPosition.top+Math.round((B.top-this.originalPosition.top)/G.grid[1])*G.grid[1];B.top=this.containment?(!(F<this.containment[1]||F>this.containment[3])?F:(!(F<this.containment[1])?F-G.grid[1]:F+G.grid[1])):F;var E=this.originalPosition.left+Math.round((B.left-this.originalPosition.left)/G.grid[0])*G.grid[0];B.left=this.containment?(!(E<this.containment[0]||E>this.containment[2])?E:(!(E<this.containment[0])?E-G.grid[0]:E+G.grid[0])):E}return B},_rearrange:function(G,F,C,E){C?C[0].appendChild(this.placeholder[0]):F.item[0].parentNode.insertBefore(this.placeholder[0],(this.direction=="down"?F.item[0]:F.item[0].nextSibling));this.counter=this.counter?++this.counter:1;var D=this,B=this.counter;window.setTimeout(function(){if(B==D.counter){D.refreshPositions(!E)}},0)},_clear:function(C,D){this.reverting=false;if(!this._noFinalSort){this.placeholder.before(this.currentItem)}this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var B in this._storedCSS){if(this._storedCSS[B]=="auto"||this._storedCSS[B]=="static"){this._storedCSS[B]=""}}this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}if(this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0]){this._propagate("update",C,null,D)}if(!A.ui.contains(this.element[0],this.currentItem[0])){this._propagate("remove",C,null,D);for(var B=this.containers.length-1;B>=0;B--){if(A.ui.contains(this.containers[B].element[0],this.currentItem[0])){this.containers[B]._propagate("update",C,this,D);this.containers[B]._propagate("receive",C,this,D)}}}for(var B=this.containers.length-1;B>=0;B--){this.containers[B]._propagate("deactivate",C,this,D);if(this.containers[B].containerCache.over){this.containers[B]._propagate("out",C,this);this.containers[B].containerCache.over=0}}this.dragging=false;if(this.cancelHelperRemoval){this._propagate("beforeStop",C,null,D);this._propagate("stop",C,null,D);return false}this._propagate("beforeStop",C,null,D);this.placeholder[0].parentNode.removeChild(this.placeholder[0]);if(this.options.helper!="original"){this.helper.remove()}this.helper=null;this._propagate("stop",C,null,D);return true},_propagate:function(F,B,C,D){A.ui.plugin.call(this,F,[B,this._ui(C)]);var E=!D?this.element.triggerHandler(F=="sort"?F:"sort"+F,[B,this._ui(C)],this.options[F]):true;if(E===false){this.cancel()}},plugins:{},_ui:function(C){var B=C||this;return{helper:B.helper,placeholder:B.placeholder||A([]),position:B.position,absolutePosition:B.positionAbs,item:B.currentItem,sender:C?C.element:null}}}));A.extend(A.ui.sortable,{getter:"serialize toArray",version:"1.6",defaults:{accurateIntersection:true,appendTo:"parent",cancel:":input",delay:0,distance:1,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,helper:"original",items:"> *",scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,sortIndicator:A.ui.sortable.prototype._rearrange,tolerance:"default",zIndex:1000}});A.ui.plugin.add("sortable","cursor",{start:function(D,E){var C=A("body"),B=A(this).data("sortable");if(C.css("cursor")){B.options._cursor=C.css("cursor")}C.css("cursor",B.options.cursor)},beforeStop:function(C,D){var B=A(this).data("sortable");if(B.options._cursor){A("body").css("cursor",B.options._cursor)}}});A.ui.plugin.add("sortable","opacity",{start:function(D,E){var C=E.helper,B=A(this).data("sortable");if(C.css("opacity")){B.options._opacity=C.css("opacity")}C.css("opacity",B.options.opacity)},beforeStop:function(C,D){var B=A(this).data("sortable");if(B.options._opacity){A(D.helper).css("opacity",B.options._opacity)}}});A.ui.plugin.add("sortable","scroll",{start:function(C,D){var B=A(this).data("sortable"),E=B.options;if(B.scrollParent[0]!=document&&B.scrollParent[0].tagName!="HTML"){B.overflowOffset=B.scrollParent.offset()}},sort:function(D,E){var C=A(this).data("sortable"),F=C.options,B=false;if(C.scrollParent[0]!=document&&C.scrollParent[0].tagName!="HTML"){if((C.overflowOffset.top+C.scrollParent[0].offsetHeight)-D.pageY<F.scrollSensitivity){C.scrollParent[0].scrollTop=B=C.scrollParent[0].scrollTop+F.scrollSpeed}else{if(D.pageY-C.overflowOffset.top<F.scrollSensitivity){C.scrollParent[0].scrollTop=B=C.scrollParent[0].scrollTop-F.scrollSpeed}}if((C.overflowOffset.left+C.scrollParent[0].offsetWidth)-D.pageX<F.scrollSensitivity){C.scrollParent[0].scrollLeft=B=C.scrollParent[0].scrollLeft+F.scrollSpeed}else{if(D.pageX-C.overflowOffset.left<F.scrollSensitivity){C.scrollParent[0].scrollLeft=B=C.scrollParent[0].scrollLeft-F.scrollSpeed}}}else{if(D.pageY-A(document).scrollTop()<F.scrollSensitivity){B=A(document).scrollTop(A(document).scrollTop()-F.scrollSpeed)}else{if(A(window).height()-(D.pageY-A(document).scrollTop())<F.scrollSensitivity){B=A(document).scrollTop(A(document).scrollTop()+F.scrollSpeed)}}if(D.pageX-A(document).scrollLeft()<F.scrollSensitivity){B=A(document).scrollLeft(A(document).scrollLeft()-F.scrollSpeed)}else{if(A(window).width()-(D.pageX-A(document).scrollLeft())<F.scrollSensitivity){B=A(document).scrollLeft(A(document).scrollLeft()+F.scrollSpeed)}}}if(B!==false&&A.ui.ddmanager&&!F.dropBehaviour){A.ui.ddmanager.prepareOffsets(C,D)}if(B!==false&&C.cssPosition=="absolute"&&C.scrollParent[0]!=document&&A.ui.contains(C.scrollParent[0],C.offsetParent[0])){C.offset.parent=C._getParentOffset()}if(B!==false&&C.cssPosition=="relative"&&!(C.scrollParent[0]!=document&&C.scrollParent[0]!=C.offsetParent[0])){C.offset.relative=C._getRelativeOffset()}}});A.ui.plugin.add("sortable","zIndex",{start:function(D,E){var C=E.helper,B=A(this).data("sortable");if(C.css("zIndex")){B.options._zIndex=C.css("zIndex")}C.css("zIndex",B.options.zIndex)},beforeStop:function(C,D){var B=A(this).data("sortable");if(B.options._zIndex){A(D.helper).css("zIndex",B.options._zIndex=="auto"?"":B.options._zIndex)}}})})(jQuery);/* + * jQuery UI Accordion 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Accordion + * + * Depends: + * ui.core.js + */ +(function(E){E.widget("ui.accordion",{_init:function(){var H=this.options;if(H.navigation){var K=this.element.find("a").filter(H.navigationFilter);if(K.length){if(K.filter(H.header).length){H.active=K}else{H.active=K.parent().parent().prev();K.addClass("current")}}}H.headers=this.element.find(H.header);H.active=C(H.headers,H.active);if(E.browser.msie){this.element.find("a").css("zoom","1")}if(!this.element.hasClass("ui-accordion")){this.element.addClass("ui-accordion");E('<span class="ui-accordion-left"></span>').insertBefore(H.headers);E('<span class="ui-accordion-right"></span>').appendTo(H.headers);H.headers.addClass("ui-accordion-header")}var J;if(H.fillSpace){J=this.element.parent().height();H.headers.each(function(){J-=E(this).outerHeight()});var I=0;H.headers.next().each(function(){I=Math.max(I,E(this).innerHeight()-E(this).height())}).height(J-I)}else{if(H.autoHeight){J=0;H.headers.next().each(function(){J=Math.max(J,E(this).outerHeight())}).height(J)}}this.element.attr("role","tablist");var G=this;H.headers.attr("role","tab").bind("keydown",function(L){return G._keydown(L)}).next().attr("role","tabpanel");H.headers.not(H.active||"").attr("aria-expanded","false").attr("tabIndex","-1").next().hide();if(!H.active.length){H.headers.eq(0).attr("tabIndex","0")}else{H.active.attr("aria-expanded","true").attr("tabIndex","0").parent().andSelf().addClass(H.selectedClass)}if(!E.browser.safari){H.headers.find("a").attr("tabIndex","-1")}if(H.event){this.element.bind((H.event)+".accordion",F)}},destroy:function(){this.options.headers.parent().andSelf().removeClass(this.options.selectedClass);this.options.headers.prev(".ui-accordion-left").remove();this.options.headers.children(".ui-accordion-right").remove();this.options.headers.next().css("display","");if(this.options.fillSpace||this.options.autoHeight){this.options.headers.next().css("height","")}E.removeData(this.element[0],"accordion");this.element.removeClass("ui-accordion").unbind(".accordion")},_keydown:function(J){if(this.options.disabled||J.altKey||J.ctrlKey){return }var K=E.ui.keyCode;var I=this.options.headers.length;var G=this.options.headers.index(J.target);var H=false;switch(J.keyCode){case K.RIGHT:case K.DOWN:H=this.options.headers[(G+1)%I];break;case K.LEFT:case K.UP:H=this.options.headers[(G-1+I)%I];break;case K.SPACE:case K.ENTER:return F.call(this.element[0],{target:J.target})}if(H){E(J.target).attr("tabIndex","-1");E(H).attr("tabIndex","0");H.focus();return false}return true},activate:function(G){F.call(this.element[0],{target:C(this.options.headers,G)[0]})}});function B(H,G){return function(){return H.apply(G,arguments)}}function D(I){if(!E.data(this,"accordion")){return }var G=E.data(this,"accordion");var H=G.options;H.running=I?0:--H.running;if(H.running){return }if(H.clearStyle){H.toShow.add(H.toHide).css({height:"",overflow:""})}G._trigger("change",null,H.data)}function A(G,N,K,L,O){var Q=E.data(this,"accordion").options;Q.toShow=G;Q.toHide=N;Q.data=K;var H=B(D,this);E.data(this,"accordion")._trigger("changestart",null,Q.data);Q.running=N.size()===0?G.size():N.size();if(Q.animated){var J={};if(!Q.alwaysOpen&&L){J={toShow:E([]),toHide:N,complete:H,down:O,autoHeight:Q.autoHeight}}else{J={toShow:G,toHide:N,complete:H,down:O,autoHeight:Q.autoHeight}}if(!Q.proxied){Q.proxied=Q.animated}if(!Q.proxiedDuration){Q.proxiedDuration=Q.duration}Q.animated=E.isFunction(Q.proxied)?Q.proxied(J):Q.proxied;Q.duration=E.isFunction(Q.proxiedDuration)?Q.proxiedDuration(J):Q.proxiedDuration;var P=E.ui.accordion.animations,I=Q.duration,M=Q.animated;if(!P[M]){P[M]=function(R){this.slide(R,{easing:M,duration:I||700})}}P[M](J)}else{if(!Q.alwaysOpen&&L){G.toggle()}else{N.hide();G.show()}H(true)}N.prev().attr("aria-expanded","false").attr("tabIndex","-1");G.prev().attr("aria-expanded","true").attr("tabIndex","0").focus()}function F(L){var J=E.data(this,"accordion").options;if(J.disabled){return false}if(!L.target&&!J.alwaysOpen){J.active.parent().andSelf().toggleClass(J.selectedClass);var I=J.active.next(),M={options:J,newHeader:E([]),oldHeader:J.active,newContent:E([]),oldContent:I},G=(J.active=E([]));A.call(this,G,I,M);return false}var K=E(L.target);K=E(K.parents(J.header)[0]||K);var H=K[0]==J.active[0];if(J.running||(J.alwaysOpen&&H)){return false}if(!K.is(J.header)){return }J.active.parent().andSelf().toggleClass(J.selectedClass);if(!H){K.parent().andSelf().addClass(J.selectedClass)}var G=K.next(),I=J.active.next(),M={options:J,newHeader:H&&!J.alwaysOpen?E([]):K,oldHeader:J.active,newContent:H&&!J.alwaysOpen?E([]):G,oldContent:I},N=J.headers.index(J.active[0])>J.headers.index(K[0]);J.active=H?E([]):K;A.call(this,G,I,M,H,N);return false}function C(H,G){return G?typeof G=="number"?H.filter(":eq("+G+")"):H.not(H.not(G)):G===false?E([]):H.filter(":eq(0)")}E.extend(E.ui.accordion,{version:"1.6",defaults:{autoHeight:true,alwaysOpen:true,animated:"slide",event:"click",header:"a",navigationFilter:function(){return this.href.toLowerCase()==location.href.toLowerCase()},running:0,selectedClass:"selected"},animations:{slide:function(G,J){G=E.extend({easing:"swing",duration:300},G,J);if(!G.toHide.size()){G.toShow.animate({height:"show"},G);return }var I=G.toHide.height(),L=G.toShow.height(),N=L/I,K=G.toShow.outerHeight()-G.toShow.height(),H=G.toShow.css("marginBottom"),M=G.toShow.css("overflow");tmargin=G.toShow.css("marginTop");G.toShow.css({height:0,overflow:"hidden",marginTop:0,marginBottom:-K}).show();G.toHide.filter(":hidden").each(G.complete).end().filter(":visible").animate({height:"hide"},{step:function(O){var P=(I-O)*N;if(E.browser.msie||E.browser.opera){P=Math.ceil(P)}G.toShow.height(P)},duration:G.duration,easing:G.easing,complete:function(){if(!G.autoHeight){G.toShow.css("height","auto")}G.toShow.css({marginTop:tmargin,marginBottom:H,overflow:M});G.complete()}})},bounceslide:function(G){this.slide(G,{easing:G.down?"easeOutBounce":"swing",duration:G.down?1000:200})},easeslide:function(G){this.slide(G,{easing:"easeinout",duration:700})}}})})(jQuery);/* + * jQuery UI Dialog 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Dialog + * + * Depends: + * ui.core.js + * ui.draggable.js + * ui.resizable.js + */ +(function(B){var A={dragStart:"start.draggable",drag:"drag.draggable",dragStop:"stop.draggable",maxHeight:"maxHeight.resizable",minHeight:"minHeight.resizable",maxWidth:"maxWidth.resizable",minWidth:"minWidth.resizable",resizeStart:"start.resizable",resize:"drag.resizable",resizeStop:"stop.resizable"};B.widget("ui.dialog",{_init:function(){this.originalTitle=this.element.attr("title");this.options.title=this.options.title||this.originalTitle;var M=this,N=this.options,F=this.element.removeAttr("title").addClass("ui-dialog-content").wrap("<div></div>").wrap("<div></div>"),I=(this.uiDialogContainer=F.parent()).addClass("ui-dialog-container").css({position:"relative",width:"100%",height:"100%"}),E=(this.uiDialogTitlebar=B("<div></div>")).addClass("ui-dialog-titlebar").mousedown(function(){M.moveToTop()}).prependTo(I),J=B('<a href="#"/>').addClass("ui-dialog-titlebar-close").attr("role","button").appendTo(E),G=(this.uiDialogTitlebarCloseText=B("<span/>")).text(N.closeText).appendTo(J),L=N.title||" ",D=B.ui.dialog.getTitleId(this.element),C=B("<span/>").addClass("ui-dialog-title").attr("id",D).html(L).prependTo(E),K=(this.uiDialog=I.parent()).appendTo(document.body).hide().addClass("ui-dialog").addClass(N.dialogClass).css({position:"absolute",width:N.width,height:N.height,overflow:"hidden",zIndex:N.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(O){(N.closeOnEscape&&O.keyCode&&O.keyCode==B.ui.keyCode.ESCAPE&&M.close())}).attr({role:"dialog","aria-labelledby":D}).mouseup(function(){M.moveToTop()}),H=(this.uiDialogButtonPane=B("<div></div>")).addClass("ui-dialog-buttonpane").css({position:"absolute",bottom:0}).appendTo(K),J=B(".ui-dialog-titlebar-close",E).hover(function(){B(this).addClass("ui-dialog-titlebar-close-hover")},function(){B(this).removeClass("ui-dialog-titlebar-close-hover")}).mousedown(function(O){O.stopPropagation()}).click(function(){M.close();return false});E.find("*").add(E).disableSelection();(N.draggable&&B.fn.draggable&&this._makeDraggable());(N.resizable&&B.fn.resizable&&this._makeResizable());this._createButtons(N.buttons);this._isOpen=false;(N.bgiframe&&B.fn.bgiframe&&K.bgiframe());(N.autoOpen&&this.open())},destroy:function(){(this.overlay&&this.overlay.destroy());this.uiDialog.hide();this.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content").hide().appendTo("body");this.uiDialog.remove();(this.originalTitle&&this.element.attr("title",this.originalTitle))},close:function(){if(false===this._trigger("beforeclose",null,{options:this.options})){return }(this.overlay&&this.overlay.destroy());this.uiDialog.hide(this.options.hide).unbind("keypress.ui-dialog");this._trigger("close",null,{options:this.options});B.ui.dialog.overlay.resize();this._isOpen=false},isOpen:function(){return this._isOpen},moveToTop:function(F){if((this.options.modal&&!F)||(!this.options.stack&&!this.options.modal)){return this._trigger("focus",null,{options:this.options})}var E=this.options.zIndex,D=this.options;B(".ui-dialog:visible").each(function(){E=Math.max(E,parseInt(B(this).css("z-index"),10)||D.zIndex)});(this.overlay&&this.overlay.$el.css("z-index",++E));var C={scrollTop:this.element.attr("scrollTop"),scrollLeft:this.element.attr("scrollLeft")};this.uiDialog.css("z-index",++E);this.element.attr(C);this._trigger("focus",null,{options:this.options})},open:function(){if(this._isOpen){return }this.overlay=this.options.modal?new B.ui.dialog.overlay(this):null;(this.uiDialog.next().length&&this.uiDialog.appendTo("body"));this._position(this.options.position);this.uiDialog.show(this.options.show);(this.options.autoResize&&this._size());this.moveToTop(true);(this.options.modal&&this.uiDialog.bind("keypress.ui-dialog",function(E){if(E.keyCode!=B.ui.keyCode.TAB){return }var D=B(":tabbable",this),F=D.filter(":first")[0],C=D.filter(":last")[0];if(E.target==C&&!E.shiftKey){setTimeout(function(){F.focus()},1)}else{if(E.target==F&&E.shiftKey){setTimeout(function(){C.focus()},1)}}}));this.uiDialog.find(":tabbable:first").focus();this._trigger("open",null,{options:this.options});this._isOpen=true},_createButtons:function(F){var E=this,C=false,D=this.uiDialogButtonPane;D.empty().hide();B.each(F,function(){return !(C=true)});if(C){D.show();B.each(F,function(G,H){B('<button type="button"></button>').text(G).click(function(){H.apply(E.element[0],arguments)}).appendTo(D)})}},_makeDraggable:function(){var C=this,D=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content",helper:D.dragHelper,handle:".ui-dialog-titlebar",start:function(){C.moveToTop();(D.dragStart&&D.dragStart.apply(C.element[0],arguments))},drag:function(){(D.drag&&D.drag.apply(C.element[0],arguments))},stop:function(){(D.dragStop&&D.dragStop.apply(C.element[0],arguments));B.ui.dialog.overlay.resize()}})},_makeResizable:function(F){F=(F===undefined?this.options.resizable:F);var C=this,E=this.options,D=typeof F=="string"?F:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",helper:E.resizeHelper,maxWidth:E.maxWidth,maxHeight:E.maxHeight,minWidth:E.minWidth,minHeight:E.minHeight,start:function(){(E.resizeStart&&E.resizeStart.apply(C.element[0],arguments))},resize:function(){(E.autoResize&&C._size.apply(C));(E.resize&&E.resize.apply(C.element[0],arguments))},handles:D,stop:function(){(E.autoResize&&C._size.apply(C));(E.resizeStop&&E.resizeStop.apply(C.element[0],arguments));B.ui.dialog.overlay.resize()}})},_position:function(H){var D=B(window),E=B(document),F=E.scrollTop(),C=E.scrollLeft(),G=F;if(B.inArray(H,["center","top","right","bottom","left"])>=0){H=[H=="right"||H=="left"?H:"center",H=="top"||H=="bottom"?H:"middle"]}if(H.constructor!=Array){H=["center","middle"]}if(H[0].constructor==Number){C+=H[0]}else{switch(H[0]){case"left":C+=0;break;case"right":C+=D.width()-this.uiDialog.outerWidth();break;default:case"center":C+=(D.width()-this.uiDialog.outerWidth())/2}}if(H[1].constructor==Number){F+=H[1]}else{switch(H[1]){case"top":F+=0;break;case"bottom":F+=(B.browser.opera?window.innerHeight:D.height())-this.uiDialog.outerHeight();break;default:case"middle":F+=((B.browser.opera?window.innerHeight:D.height())-this.uiDialog.outerHeight())/2}}F=Math.max(F,G);this.uiDialog.css({top:F,left:C})},_setData:function(D,E){(A[D]&&this.uiDialog.data(A[D],E));switch(D){case"buttons":this._createButtons(E);break;case"closeText":this.uiDialogTitlebarCloseText.text(E);break;case"draggable":(E?this._makeDraggable():this.uiDialog.draggable("destroy"));break;case"height":this.uiDialog.height(E);break;case"position":this._position(E);break;case"resizable":var C=this.uiDialog,F=this.uiDialog.is(":data(resizable)");(F&&!E&&C.resizable("destroy"));(F&&typeof E=="string"&&C.resizable("option","handles",E));(F||this._makeResizable(E));break;case"title":B(".ui-dialog-title",this.uiDialogTitlebar).html(E||" ");break;case"width":this.uiDialog.width(E);break}B.widget.prototype._setData.apply(this,arguments)},_size:function(){var D=this.uiDialogContainer,G=this.uiDialogTitlebar,E=this.element,F=(parseInt(E.css("margin-top"),10)||0)+(parseInt(E.css("margin-bottom"),10)||0),C=(parseInt(E.css("margin-left"),10)||0)+(parseInt(E.css("margin-right"),10)||0);E.height(D.height()-G.outerHeight()-F);E.width(D.width()-C)}});B.extend(B.ui.dialog,{version:"1.6",defaults:{autoOpen:true,autoResize:true,bgiframe:false,buttons:{},closeOnEscape:true,closeText:"close",draggable:true,height:200,minHeight:100,minWidth:150,modal:false,overlay:{},position:"center",resizable:true,stack:true,width:300,zIndex:1000},getter:"isOpen",uuid:0,getTitleId:function(C){return"ui-dialog-title-"+(C.attr("id")||++this.uuid)},overlay:function(C){this.$el=B.ui.dialog.overlay.create(C)}});B.extend(B.ui.dialog.overlay,{instances:[],events:B.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(C){return C+".dialog-overlay"}).join(" "),create:function(D){if(this.instances.length===0){setTimeout(function(){B("a, :input").bind(B.ui.dialog.overlay.events,function(){var F=false;var H=B(this).parents(".ui-dialog");if(H.length){var E=B(".ui-dialog-overlay");if(E.length){var G=parseInt(E.css("z-index"),10);E.each(function(){G=Math.max(G,parseInt(B(this).css("z-index"),10))});F=parseInt(H.css("z-index"),10)>G}else{F=true}}return F})},1);B(document).bind("keydown.dialog-overlay",function(E){(D.options.closeOnEscape&&E.keyCode&&E.keyCode==B.ui.keyCode.ESCAPE&&D.close())});B(window).bind("resize.dialog-overlay",B.ui.dialog.overlay.resize)}var C=B("<div></div>").appendTo(document.body).addClass("ui-dialog-overlay").css(B.extend({borderWidth:0,margin:0,padding:0,position:"absolute",top:0,left:0,width:this.width(),height:this.height()},D.options.overlay));(D.options.bgiframe&&B.fn.bgiframe&&C.bgiframe());this.instances.push(C);return C},destroy:function(C){this.instances.splice(B.inArray(this.instances,C),1);if(this.instances.length===0){B("a, :input").add([document,window]).unbind(".dialog-overlay")}C.remove()},height:function(){if(B.browser.msie&&B.browser.version<7){var D=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);var C=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(D<C){return B(window).height()+"px"}else{return D+"px"}}else{if(B.browser.opera){return Math.max(window.innerHeight,B(document).height())+"px"}else{return B(document).height()+"px"}}},width:function(){if(B.browser.msie&&B.browser.version<7){var C=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);var D=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);if(C<D){return B(window).width()+"px"}else{return C+"px"}}else{if(B.browser.opera){return Math.max(window.innerWidth,B(document).width())+"px"}else{return B(document).width()+"px"}}},resize:function(){var C=B([]);B.each(B.ui.dialog.overlay.instances,function(){C=C.add(this)});C.css({width:0,height:0}).css({width:B.ui.dialog.overlay.width(),height:B.ui.dialog.overlay.height()})}});B.extend(B.ui.dialog.overlay.prototype,{destroy:function(){B.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);/* + * jQuery UI Slider 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Slider + * + * Depends: + * ui.core.js + */ +(function(A){A.fn.unwrap=A.fn.unwrap||function(B){return this.each(function(){A(this).parents(B).eq(0).after(this).remove()})};A.widget("ui.slider",{_init:function(){var B=this;this.element.addClass("ui-slider");this._initBoundaries();this.handle=A(this.options.handle,this.element);if(!this.handle.length){B.handle=B.generated=A(B.options.handles||[0]).map(function(){var D=A("<div/>").addClass("ui-slider-handle").appendTo(B.element);if(this.id){D.attr("id",this.id)}return D[0]})}var C=function(D){this.element=A(D);this.element.data("mouse",this);this.options=B.options;this.element.bind("mousedown",function(){if(B.currentHandle){this.blur(B.currentHandle)}B._focus(this,true)});this._mouseInit()};A.extend(C.prototype,A.ui.mouse,{_mouseCapture:function(){return true},_mouseStart:function(D){return B._start.call(B,D,this.element[0])},_mouseDrag:function(D){return B._drag.call(B,D,this.element[0])},_mouseStop:function(D){return B._stop.call(B,D,this.element[0])},trigger:function(D){this._mouseDown(D)}});A(this.handle).each(function(){new C(this)}).wrap('<a href="#" style="outline:none;border:none;"></a>').parent().bind("click",function(){return false}).bind("focus",function(D){B._focus(this.firstChild)}).bind("blur",function(D){B._blur(this.firstChild)}).bind("keydown",function(D){if(!B.options.noKeyboard){return B._keydown(D.keyCode,this.firstChild)}});this.element.bind("mousedown.slider",function(D){if(A(D.target).is(".ui-slider-handle")){return }B._click.apply(B,[D]);B.currentHandle.data("mouse").trigger(D);B.firstValue=B.firstValue+1});A.each(this.options.handles||[],function(D,E){B.moveTo(E.start,D,true)});if(!isNaN(this.options.startValue)){this.moveTo(this.options.startValue,0,true)}this.previousHandle=A(this.handle[0]);if(this.handle.length==2&&this.options.range){this._createRange()}},destroy:function(){this.element.removeClass("ui-slider ui-slider-disabled").removeData("slider").unbind(".slider");if(this.handle&&this.handle.length){this.handle.unwrap("a");this.handle.each(function(){var B=A(this).data("mouse");B&&B._mouseDestroy()})}this.generated&&this.generated.remove()},_start:function(B,C){var D=this.options;if(D.disabled){return false}this.actualSize={width:this.element.outerWidth(),height:this.element.outerHeight()};if(!this.currentHandle){this._focus(this.previousHandle,true)}this.offset=this.element.offset();this.handleOffset=this.currentHandle.offset();this.clickOffset={top:B.pageY-this.handleOffset.top,left:B.pageX-this.handleOffset.left};this.firstValue=this.value();this._propagate("start",B);this._drag(B,C);return true},_drag:function(C,E){var F=this.options;var B={top:C.pageY-this.offset.top-this.clickOffset.top,left:C.pageX-this.offset.left-this.clickOffset.left};if(!this.currentHandle){this._focus(this.previousHandle,true)}B.left=this._translateLimits(B.left,"x");B.top=this._translateLimits(B.top,"y");if(F.stepping.x){var D=this._convertValue(B.left,"x");D=this._round(D/F.stepping.x)*F.stepping.x;B.left=this._translateValue(D,"x")}if(F.stepping.y){var D=this._convertValue(B.top,"y");D=this._round(D/F.stepping.y)*F.stepping.y;B.top=this._translateValue(D,"y")}B.left=this._translateRange(B.left,"x");B.top=this._translateRange(B.top,"y");if(F.axis!="vertical"){this.currentHandle.css({left:B.left})}if(F.axis!="horizontal"){this.currentHandle.css({top:B.top})}this.currentHandle.data("mouse").sliderValue={x:this._round(this._convertValue(B.left,"x"))||0,y:this._round(this._convertValue(B.top,"y"))||0};if(this.rangeElement){this._updateRange()}this._propagate("slide",C);return false},_stop:function(B){this._propagate("stop",B);if(this.firstValue!=this.value()){this._propagate("change",B)}this._focus(this.currentHandle,true);return false},_round:function(B){return this.options.round?parseInt(B,10):parseFloat(B)},_setData:function(B,C){A.widget.prototype._setData.apply(this,arguments);if(/min|max|steps/.test(B)){this._initBoundaries()}if(B=="range"){C?this.handle.length==2&&this._createRange():this._removeRange()}},_initBoundaries:function(){var B=this.element[0],C=this.options;this.actualSize={width:this.element.outerWidth(),height:this.element.outerHeight()};A.extend(C,{axis:C.axis||(B.offsetWidth<B.offsetHeight?"vertical":"horizontal"),max:!isNaN(parseInt(C.max,10))?{x:parseInt(C.max,10),y:parseInt(C.max,10)}:({x:C.max&&C.max.x||100,y:C.max&&C.max.y||100}),min:!isNaN(parseInt(C.min,10))?{x:parseInt(C.min,10),y:parseInt(C.min,10)}:({x:C.min&&C.min.x||0,y:C.min&&C.min.y||0})});C.realMax={x:C.max.x-C.min.x,y:C.max.y-C.min.y};C.stepping={x:C.stepping&&C.stepping.x||parseInt(C.stepping,10)||(C.steps?C.realMax.x/(C.steps.x||parseInt(C.steps,10)||C.realMax.x):0),y:C.stepping&&C.stepping.y||parseInt(C.stepping,10)||(C.steps?C.realMax.y/(C.steps.y||parseInt(C.steps,10)||C.realMax.y):0)}},_keydown:function(F,E){if(this.options.disabled){return }var C=F;if(/(33|34|35|36|37|38|39|40)/.test(C)){var G=this.options,B,I;if(/(35|36)/.test(C)){B=(C==35)?G.max.x:G.min.x;I=(C==35)?G.max.y:G.min.y}else{var H=/(34|37|40)/.test(C)?"-=":"+=";var D=/(37|38|39|40)/.test(C)?"_oneStep":"_pageStep";B=H+this[D]("x");I=H+this[D]("y")}this.moveTo({x:B,y:I},E);return false}return true},_focus:function(B,C){this.currentHandle=A(B).addClass("ui-slider-handle-active");if(C){this.currentHandle.parent()[0].focus()}},_blur:function(B){A(B).removeClass("ui-slider-handle-active");if(this.currentHandle&&this.currentHandle[0]==B){this.previousHandle=this.currentHandle;this.currentHandle=null}},_click:function(C){var D=[C.pageX,C.pageY];var B=false;this.handle.each(function(){if(this==C.target){B=true}});if(B||this.options.disabled||!(this.currentHandle||this.previousHandle)){return }if(!this.currentHandle&&this.previousHandle){this._focus(this.previousHandle,true)}this.offset=this.element.offset();this.moveTo({y:this._convertValue(C.pageY-this.offset.top-this.currentHandle[0].offsetHeight/2,"y"),x:this._convertValue(C.pageX-this.offset.left-this.currentHandle[0].offsetWidth/2,"x")},null,!this.options.distance)},_createRange:function(){if(this.rangeElement){return }this.rangeElement=A("<div></div>").addClass("ui-slider-range").css({position:"absolute"}).appendTo(this.element);this._updateRange()},_removeRange:function(){this.rangeElement.remove();this.rangeElement=null},_updateRange:function(){var C=this.options.axis=="vertical"?"top":"left";var B=this.options.axis=="vertical"?"height":"width";this.rangeElement.css(C,(this._round(A(this.handle[0]).css(C))||0)+this._handleSize(0,this.options.axis=="vertical"?"y":"x")/2);this.rangeElement.css(B,(this._round(A(this.handle[1]).css(C))||0)-(this._round(A(this.handle[0]).css(C))||0))},_getRange:function(){return this.rangeElement?this._convertValue(this._round(this.rangeElement.css(this.options.axis=="vertical"?"height":"width")),this.options.axis=="vertical"?"y":"x"):null},_handleIndex:function(){return this.handle.index(this.currentHandle[0])},value:function(D,B){if(this.handle.length==1){this.currentHandle=this.handle}if(!B){B=this.options.axis=="vertical"?"y":"x"}var C=A(D!=undefined&&D!==null?this.handle[D]||D:this.currentHandle);if(C.data("mouse").sliderValue){return this._round(C.data("mouse").sliderValue[B])}else{return this._round(((this._round(C.css(B=="x"?"left":"top"))/(this.actualSize[B=="x"?"width":"height"]-this._handleSize(D,B)))*this.options.realMax[B])+this.options.min[B])}},_convertValue:function(C,B){return this.options.min[B]+(C/(this.actualSize[B=="x"?"width":"height"]-this._handleSize(null,B)))*this.options.realMax[B]},_translateValue:function(C,B){return((C-this.options.min[B])/this.options.realMax[B])*(this.actualSize[B=="x"?"width":"height"]-this._handleSize(null,B))},_translateRange:function(D,B){if(this.rangeElement){if(this.currentHandle[0]==this.handle[0]&&D>=this._translateValue(this.value(1),B)){D=this._translateValue(this.value(1,B)-this._oneStep(B),B)}if(this.currentHandle[0]==this.handle[1]&&D<=this._translateValue(this.value(0),B)){D=this._translateValue(this.value(0,B)+this._oneStep(B),B)}}if(this.options.handles){var C=this.options.handles[this._handleIndex()];if(D<this._translateValue(C.min,B)){D=this._translateValue(C.min,B)}else{if(D>this._translateValue(C.max,B)){D=this._translateValue(C.max,B)}}}return D},_translateLimits:function(C,B){if(C>=this.actualSize[B=="x"?"width":"height"]-this._handleSize(null,B)){C=this.actualSize[B=="x"?"width":"height"]-this._handleSize(null,B)}if(C<=0){C=0}return C},_handleSize:function(C,B){return A(C!=undefined&&C!==null?this.handle[C]:this.currentHandle)[0]["offset"+(B=="x"?"Width":"Height")]},_oneStep:function(B){return this.options.stepping[B]||1},_pageStep:function(B){return 10},moveTo:function(F,E,G){var H=this.options;this.actualSize={width:this.element.outerWidth(),height:this.element.outerHeight()};if(E==undefined&&!this.currentHandle&&this.handle.length!=1){return false}if(E==undefined&&!this.currentHandle){E=0}if(E!=undefined){this.currentHandle=this.previousHandle=A(this.handle[E]||E)}if(F.x!==undefined&&F.y!==undefined){var B=F.x,I=F.y}else{var B=F,I=F}if(B!==undefined&&B.constructor!=Number){var D=/^\-\=/.test(B),C=/^\+\=/.test(B);if(D||C){B=this.value(null,"x")+this._round(B.replace(D?"=":"+=",""))}else{B=isNaN(this._round(B))?undefined:this._round(B)}}if(I!==undefined&&I.constructor!=Number){var D=/^\-\=/.test(I),C=/^\+\=/.test(I);if(D||C){I=this.value(null,"y")+this._round(I.replace(D?"=":"+=",""))}else{I=isNaN(this._round(I))?undefined:this._round(I)}}if(H.axis!="vertical"&&B!==undefined){if(H.stepping.x){B=this._round(B/H.stepping.x)*H.stepping.x}B=this._translateValue(B,"x");B=this._translateLimits(B,"x");B=this._translateRange(B,"x");H.animate?this.currentHandle.stop().animate({left:B},(Math.abs(parseInt(this.currentHandle.css("left"),10)-B))*(!isNaN(parseInt(H.animate,10))?H.animate:5)):this.currentHandle.css({left:B})}if(H.axis!="horizontal"&&I!==undefined){if(H.stepping.y){I=this._round(I/H.stepping.y)*H.stepping.y}I=this._translateValue(I,"y");I=this._translateLimits(I,"y");I=this._translateRange(I,"y");H.animate?this.currentHandle.stop().animate({top:I},(Math.abs(parseInt(this.currentHandle.css("top"),10)-I))*(!isNaN(parseInt(H.animate,10))?H.animate:5)):this.currentHandle.css({top:I})}if(this.rangeElement){this._updateRange()}this.currentHandle.data("mouse").sliderValue={x:this._round(this._convertValue(B,"x"))||0,y:this._round(this._convertValue(I,"y"))||0};if(!G){this._propagate("start",null);this._propagate("slide",null);this._propagate("stop",null);this._propagate("change",null)}},_propagate:function(C,B){A.ui.plugin.call(this,C,[B,this.ui()]);this.element.triggerHandler(C=="slide"?C:"slide"+C,[B,this.ui()],this.options[C])},plugins:{},ui:function(B){return{options:this.options,handle:this.currentHandle,value:this.options.axis!="both"||!this.options.axis?this._round(this.value(null,this.options.axis=="vertical"?"y":"x")):{x:this._round(this.value(null,"x")),y:this._round(this.value(null,"y"))},range:this._getRange()}}});A.extend(A.ui.slider,{getter:"value",version:"1.6",defaults:{animate:false,distance:1,handle:".ui-slider-handle",round:true}})})(jQuery);/* + * jQuery UI Tabs 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Tabs + * + * Depends: + * ui.core.js + */ +(function(A){A.widget("ui.tabs",{_init:function(){this._tabify(true)},destroy:function(){var B=this.options;this.element.unbind(".tabs").removeClass(B.navClass).removeData("tabs");this.$tabs.each(function(){var C=A.data(this,"href.tabs");if(C){this.href=C}var D=A(this).unbind(".tabs");A.each(["href","load","cache"],function(E,F){D.removeData(F+".tabs")})});this.$lis.add(this.$panels).each(function(){if(A.data(this,"destroy.tabs")){A(this).remove()}else{A(this).removeClass([B.selectedClass,B.deselectableClass,B.disabledClass,B.panelClass,B.hideClass].join(" "))}});if(B.cookie){this._cookie(null,B.cookie)}},_setData:function(B,C){if((/^selected/).test(B)){this.select(C)}else{this.options[B]=C;this._tabify()}},length:function(){return this.$tabs.length},_tabId:function(B){return B.title&&B.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+A.data(B)},_sanitizeSelector:function(B){return B.replace(/:/g,"\\:")},_cookie:function(){var B=this.cookie||(this.cookie="ui-tabs-"+A.data(this.element[0]));return A.cookie.apply(null,[B].concat(A.makeArray(arguments)))},_tabify:function(N){this.$lis=A("li:has(a[href])",this.element);this.$tabs=this.$lis.map(function(){return A("a",this)[0]});this.$panels=A([]);var O=this,C=this.options;this.$tabs.each(function(Q,P){if(P.hash&&P.hash.replace("#","")){O.$panels=O.$panels.add(O._sanitizeSelector(P.hash))}else{if(A(P).attr("href")!="#"){A.data(P,"href.tabs",P.href);A.data(P,"load.tabs",P.href);var S=O._tabId(P);P.href="#"+S;var R=A("#"+S);if(!R.length){R=A(C.panelTemplate).attr("id",S).addClass(C.panelClass).insertAfter(O.$panels[Q-1]||O.element);R.data("destroy.tabs",true)}O.$panels=O.$panels.add(R)}else{C.disabled.push(Q+1)}}});if(N){this.element.addClass(C.navClass);this.$panels.addClass(C.panelClass);if(C.selected===undefined){if(location.hash){this.$tabs.each(function(Q,P){if(P.hash==location.hash){C.selected=Q;return false}})}else{if(C.cookie){var I=parseInt(O._cookie(),10);if(I&&O.$tabs[I]){C.selected=I}}else{if(O.$lis.filter("."+C.selectedClass).length){C.selected=O.$lis.index(O.$lis.filter("."+C.selectedClass)[0])}}}}C.selected=C.selected===null||C.selected!==undefined?C.selected:0;C.disabled=A.unique(C.disabled.concat(A.map(this.$lis.filter("."+C.disabledClass),function(Q,P){return O.$lis.index(Q)}))).sort();if(A.inArray(C.selected,C.disabled)!=-1){C.disabled.splice(A.inArray(C.selected,C.disabled),1)}this.$panels.addClass(C.hideClass);this.$lis.removeClass(C.selectedClass);if(C.selected!==null){this.$panels.eq(C.selected).removeClass(C.hideClass);var E=[C.selectedClass];if(C.deselectable){E.push(C.deselectableClass)}this.$lis.eq(C.selected).addClass(E.join(" "));var J=function(){O._trigger("show",null,O.ui(O.$tabs[C.selected],O.$panels[C.selected]))};if(A.data(this.$tabs[C.selected],"load.tabs")){this.load(C.selected,J)}else{J()}}A(window).bind("unload",function(){O.$tabs.unbind(".tabs");O.$lis=O.$tabs=O.$panels=null})}else{C.selected=this.$lis.index(this.$lis.filter("."+C.selectedClass)[0])}if(C.cookie){this._cookie(C.selected,C.cookie)}for(var G=0,M;M=this.$lis[G];G++){A(M)[A.inArray(G,C.disabled)!=-1&&!A(M).hasClass(C.selectedClass)?"addClass":"removeClass"](C.disabledClass)}if(C.cache===false){this.$tabs.removeData("cache.tabs")}var B,H;if(C.fx){if(C.fx.constructor==Array){B=C.fx[0];H=C.fx[1]}else{B=H=C.fx}}function D(P,Q){P.css({display:""});if(A.browser.msie&&Q.opacity){P[0].style.removeAttribute("filter")}}var K=H?function(P,Q){Q.animate(H,H.duration||"normal",function(){Q.removeClass(C.hideClass);D(Q,H);O._trigger("show",null,O.ui(P,Q[0]))})}:function(P,Q){Q.removeClass(C.hideClass);O._trigger("show",null,O.ui(P,Q[0]))};var L=B?function(Q,P,R){P.animate(B,B.duration||"normal",function(){P.addClass(C.hideClass);D(P,B);if(R){K(Q,R,P)}})}:function(Q,P,R){P.addClass(C.hideClass);if(R){K(Q,R)}};function F(R,T,P,S){var Q=[C.selectedClass];if(C.deselectable){Q.push(C.deselectableClass)}T.addClass(Q.join(" ")).siblings().removeClass(Q.join(" "));L(R,P,S)}this.$tabs.unbind(".tabs").bind(C.event+".tabs",function(){var S=A(this).parents("li:eq(0)"),P=O.$panels.filter(":visible"),R=A(O._sanitizeSelector(this.hash));if((S.hasClass(C.selectedClass)&&!C.deselectable)||S.hasClass(C.disabledClass)||A(this).hasClass(C.loadingClass)||O._trigger("select",null,O.ui(this,R[0]))===false){this.blur();return false}C.selected=O.$tabs.index(this);if(C.deselectable){if(S.hasClass(C.selectedClass)){O.options.selected=null;S.removeClass([C.selectedClass,C.deselectableClass].join(" "));O.$panels.stop();L(this,P);this.blur();return false}else{if(!P.length){O.$panels.stop();var Q=this;O.load(O.$tabs.index(this),function(){S.addClass([C.selectedClass,C.deselectableClass].join(" "));K(Q,R)});this.blur();return false}}}if(C.cookie){O._cookie(C.selected,C.cookie)}O.$panels.stop();if(R.length){var Q=this;O.load(O.$tabs.index(this),P.length?function(){F(Q,S,P,R)}:function(){S.addClass(C.selectedClass);K(Q,R)})}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if(A.browser.msie){this.blur()}return false});if(C.event!="click"){this.$tabs.bind("click.tabs",function(){return false})}},add:function(E,D,C){if(C==undefined){C=this.$tabs.length}var G=this.options;var I=A(G.tabTemplate.replace(/#\{href\}/g,E).replace(/#\{label\}/g,D));I.data("destroy.tabs",true);var H=E.indexOf("#")==0?E.replace("#",""):this._tabId(A("a:first-child",I)[0]);var F=A("#"+H);if(!F.length){F=A(G.panelTemplate).attr("id",H).addClass(G.hideClass).data("destroy.tabs",true)}F.addClass(G.panelClass);if(C>=this.$lis.length){I.appendTo(this.element);F.appendTo(this.element[0].parentNode)}else{I.insertBefore(this.$lis[C]);F.insertBefore(this.$panels[C])}G.disabled=A.map(G.disabled,function(K,J){return K>=C?++K:K});this._tabify();if(this.$tabs.length==1){I.addClass(G.selectedClass);F.removeClass(G.hideClass);var B=A.data(this.$tabs[0],"load.tabs");if(B){this.load(C,B)}}this._trigger("add",null,this.ui(this.$tabs[C],this.$panels[C]))},remove:function(B){var D=this.options,E=this.$lis.eq(B).remove(),C=this.$panels.eq(B).remove();if(E.hasClass(D.selectedClass)&&this.$tabs.length>1){this.select(B+(B+1<this.$tabs.length?1:-1))}D.disabled=A.map(A.grep(D.disabled,function(G,F){return G!=B}),function(G,F){return G>=B?--G:G});this._tabify();this._trigger("remove",null,this.ui(E.find("a")[0],C[0]))},enable:function(B){var C=this.options;if(A.inArray(B,C.disabled)==-1){return }var D=this.$lis.eq(B).removeClass(C.disabledClass);if(A.browser.safari){D.css("display","inline-block");setTimeout(function(){D.css("display","block")},0)}C.disabled=A.grep(C.disabled,function(F,E){return F!=B});this._trigger("enable",null,this.ui(this.$tabs[B],this.$panels[B]))},disable:function(C){var B=this,D=this.options;if(C!=D.selected){this.$lis.eq(C).addClass(D.disabledClass);D.disabled.push(C);D.disabled.sort();this._trigger("disable",null,this.ui(this.$tabs[C],this.$panels[C]))}},select:function(B){if(typeof B=="string"){B=this.$tabs.index(this.$tabs.filter("[href$="+B+"]")[0])}this.$tabs.eq(B).trigger(this.options.event+".tabs")},load:function(G,K){var L=this,D=this.options,E=this.$tabs.eq(G),J=E[0],H=K==undefined||K===false,B=E.data("load.tabs");K=K||function(){};if(!B||!H&&A.data(J,"cache.tabs")){K();return }var M=function(N){var O=A(N),P=O.find("*:last");return P.length&&P.is(":not(img)")&&P||O};var C=function(){L.$tabs.filter("."+D.loadingClass).removeClass(D.loadingClass).each(function(){if(D.spinner){M(this).parent().html(M(this).data("label.tabs"))}});L.xhr=null};if(D.spinner){var I=M(J).html();M(J).wrapInner("<em></em>").find("em").data("label.tabs",I).html(D.spinner)}var F=A.extend({},D.ajaxOptions,{url:B,success:function(P,N){A(L._sanitizeSelector(J.hash)).html(P);C();if(D.cache){A.data(J,"cache.tabs",true)}L._trigger("load",null,L.ui(L.$tabs[G],L.$panels[G]));try{D.ajaxOptions.success(P,N)}catch(O){}K()}});if(this.xhr){this.xhr.abort();C()}E.addClass(D.loadingClass);L.xhr=A.ajax(F)},url:function(C,B){this.$tabs.eq(C).removeData("cache.tabs").data("load.tabs",B)},ui:function(C,B){return{options:this.options,tab:C,panel:B,index:this.$tabs.index(C)}}});A.extend(A.ui.tabs,{version:"1.6",getter:"length",defaults:{ajaxOptions:null,cache:false,cookie:null,deselectable:false,deselectableClass:"ui-tabs-deselectable",disabled:[],disabledClass:"ui-tabs-disabled",event:"click",fx:null,hideClass:"ui-tabs-hide",idPrefix:"ui-tabs-",loadingClass:"ui-tabs-loading",navClass:"ui-tabs-nav",panelClass:"ui-tabs-panel",panelTemplate:"<div></div>",selectedClass:"ui-tabs-selected",spinner:"Loading…",tabTemplate:'<li><a href="#{href}"><span>#{label}</span></a></li>'}});A.extend(A.ui.tabs.prototype,{rotation:null,rotate:function(C,F){F=F||false;var B=this,E=this.options.selected;function G(){B.rotation=setInterval(function(){E=++E<B.$tabs.length?E:0;B.select(E)},C)}function D(H){if(!H||H.clientX){clearInterval(B.rotation)}}if(C){G();if(!F){this.$tabs.bind(this.options.event+".tabs",D)}else{this.$tabs.bind(this.options.event+".tabs",function(){D();E=B.options.selected;G()})}}else{D();this.$tabs.unbind(this.options.event+".tabs",D)}}})})(jQuery);/* + * jQuery UI Datepicker 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Datepicker + * + * Depends: + * ui.core.js + */ +(function($){$.extend($.ui,{datepicker:{version:"1.6"}});var PROP_NAME="datepicker";function Datepicker(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._datepickerShowing=false;this._inDialog=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._promptClass="ui-datepicker-prompt";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass="ui-datepicker-days-cell-over";this._weekOverClass="ui-datepicker-week-over";this.regional=[];this.regional[""]={clearText:"Clear",clearStatus:"Erase the current date",closeText:"Close",closeStatus:"Close without change",prevText:"<Prev",prevStatus:"Show the previous month",prevBigText:"<<",prevBigStatus:"Show the previous year",nextText:"Next>",nextStatus:"Show the next month",nextBigText:">>",nextBigStatus:"Show the next year",currentText:"Today",currentStatus:"Show the current month",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],monthStatus:"Show a different month",yearStatus:"Show a different year",weekHeader:"Wk",weekStatus:"Week of the year",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],dayStatus:"Set DD as first week day",dateStatus:"Select DD, M d",dateFormat:"mm/dd/yy",firstDay:0,initStatus:"Select a date",isRTL:false};this._defaults={showOn:"focus",showAnim:"show",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,closeAtTop:true,mandatory:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,showBigPrevNext:false,gotoCurrent:false,changeMonth:true,changeYear:true,showMonthAfterYear:false,yearRange:"-10:+10",changeFirstDay:true,highlightWeek:false,showOtherMonths:false,showWeeks:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",showStatus:false,statusForDate:this.dateStatus,minDate:null,maxDate:null,duration:"normal",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,rangeSelect:false,rangeSeparator:" - ",altField:"",altFormat:"",constrainInput:true};$.extend(this._defaults,this.regional[""]);this.dpDiv=$('<div id="'+this._mainDivId+'" style="display: none;"></div>')}$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",log:function(){if(this.debug){console.log.apply("",arguments)}},setDefaults:function(settings){extendRemove(this._defaults,settings||{});return this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase();var inline=(nodeName=="div"||nodeName=="span");if(!target.id){target.id="dp"+(++this.uuid)}var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{});if(nodeName=="input"){this._connectDatepicker(target,inst)}else{if(inline){this._inlineDatepicker(target,inst)}}},_newInst:function(target,inline){var id=target[0].id.replace(/([:\[\]\.])/g,"\\\\$1");return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:(!inline?this.dpDiv:$('<div class="'+this._inlineClass+'"></div>'))}},_connectDatepicker:function(target,inst){var input=$(target);if(input.hasClass(this.markerClassName)){return }var appendText=this._get(inst,"appendText");var isRTL=this._get(inst,"isRTL");if(appendText){input[isRTL?"before":"after"]('<span class="'+this._appendClass+'">'+appendText+"</span>")}var showOn=this._get(inst,"showOn");if(showOn=="focus"||showOn=="both"){input.focus(this._showDatepicker)}if(showOn=="button"||showOn=="both"){var buttonText=this._get(inst,"buttonText");var buttonImage=this._get(inst,"buttonImage");var trigger=$(this._get(inst,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText}):$('<button type="button"></button>').addClass(this._triggerClass).html(buttonImage==""?buttonText:$("<img/>").attr({src:buttonImage,alt:buttonText,title:buttonText})));input[isRTL?"before":"after"](trigger);trigger.click(function(){if($.datepicker._datepickerShowing&&$.datepicker._lastInput==target){$.datepicker._hideDatepicker()}else{$.datepicker._showDatepicker(target)}return false})}input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst)},_inlineDatepicker:function(target,inst){var divSpan=$(target);if(divSpan.hasClass(this.markerClassName)){return }divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst);this._setDate(inst,this._getDefaultDate(inst));this._updateDatepicker(inst);this._updateAlternate(inst)},_dialogDatepicker:function(input,dateText,onSelect,settings,pos){var inst=this._dialogInst;if(!inst){var id="dp"+(++this.uuid);this._dialogInput=$('<input type="text" id="'+id+'" size="1" style="position: absolute; top: -100px;"/>');this._dialogInput.keydown(this._doKeyDown);$("body").append(this._dialogInput);inst=this._dialogInst=this._newInst(this._dialogInput,false);inst.settings={};$.data(this._dialogInput[0],PROP_NAME,inst)}extendRemove(inst.settings,settings||{});this._dialogInput.val(dateText);this._pos=(pos?(pos.length?pos:[pos.pageX,pos.pageY]):null);if(!this._pos){var browserWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var browserHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[(browserWidth/2)-100+scrollX,(browserHeight/2)-150+scrollY]}this._dialogInput.css("left",this._pos[0]+"px").css("top",this._pos[1]+"px");inst.settings.onSelect=onSelect;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);if($.blockUI){$.blockUI(this.dpDiv)}$.data(this._dialogInput[0],PROP_NAME,inst);return this},_destroyDatepicker:function(target){var $target=$(target);if(!$target.hasClass(this.markerClassName)){return }var nodeName=target.nodeName.toLowerCase();$.removeData(target,PROP_NAME);if(nodeName=="input"){$target.siblings("."+this._appendClass).remove().end().siblings("."+this._triggerClass).remove().end().removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress)}else{if(nodeName=="div"||nodeName=="span"){$target.removeClass(this.markerClassName).empty()}}},_enableDatepicker:function(target){var $target=$(target);if(!$target.hasClass(this.markerClassName)){return }var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=false;$target.siblings("button."+this._triggerClass).each(function(){this.disabled=false}).end().siblings("img."+this._triggerClass).css({opacity:"1.0",cursor:""})}else{if(nodeName=="div"||nodeName=="span"){$target.children("."+this._disableClass).remove()}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)})},_disableDatepicker:function(target){var $target=$(target);if(!$target.hasClass(this.markerClassName)){return }var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=true;$target.siblings("button."+this._triggerClass).each(function(){this.disabled=true}).end().siblings("img."+this._triggerClass).css({opacity:"0.5",cursor:"default"})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);var offset=inline.offset();var relOffset={left:0,top:0};inline.parents().each(function(){if($(this).css("position")=="relative"){relOffset=$(this).offset();return false}});$target.prepend('<div class="'+this._disableClass+'" style="'+($.browser.msie?"background-color: transparent; ":"")+"width: "+inline.width()+"px; height: "+inline.height()+"px; left: "+(offset.left-relOffset.left)+"px; top: "+(offset.top-relOffset.top)+'px;"></div>')}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)});this._disabledInputs[this._disabledInputs.length]=target},_isDisabledDatepicker:function(target){if(!target){return false}for(var i=0;i<this._disabledInputs.length;i++){if(this._disabledInputs[i]==target){return true}}return false},_getInst:function(target){try{return $.data(target,PROP_NAME)}catch(err){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(target,name,value){var settings=name||{};if(typeof name=="string"){settings={};settings[name]=value}var inst=this._getInst(target);if(inst){if(this._curInst==inst){this._hideDatepicker(null)}extendRemove(inst.settings,settings);var date=new Date();extendRemove(inst,{rangeStart:null,endDay:null,endMonth:null,endYear:null,selectedDay:date.getDate(),selectedMonth:date.getMonth(),selectedYear:date.getFullYear(),currentDay:date.getDate(),currentMonth:date.getMonth(),currentYear:date.getFullYear(),drawMonth:date.getMonth(),drawYear:date.getFullYear()});this._updateDatepicker(inst)}},_changeDatepicker:function(target,name,value){this._optionDatepicker(target,name,value)},_refreshDatepicker:function(target){var inst=this._getInst(target);if(inst){this._updateDatepicker(inst)}},_setDateDatepicker:function(target,date,endDate){var inst=this._getInst(target);if(inst){this._setDate(inst,date,endDate);this._updateDatepicker(inst);this._updateAlternate(inst)}},_getDateDatepicker:function(target){var inst=this._getInst(target);if(inst&&!inst.inline){this._setDateFromField(inst)}return(inst?this._getDate(inst):null)},_doKeyDown:function(event){var inst=$.datepicker._getInst(event.target);var handled=true;inst._keyEvent=true;if($.datepicker._datepickerShowing){switch(event.keyCode){case 9:$.datepicker._hideDatepicker(null,"");break;case 13:var sel=$("td."+$.datepicker._dayOverClass+", td."+$.datepicker._currentClass,inst.dpDiv);if(sel[0]){$.datepicker._selectDay(event.target,inst.selectedMonth,inst.selectedYear,sel[0])}else{$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"))}return false;break;case 27:$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"));break;case 33:$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M");break;case 34:$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M");break;case 35:if(event.ctrlKey||event.metaKey){$.datepicker._clearDate(event.target)}handled=event.ctrlKey||event.metaKey;break;case 36:if(event.ctrlKey||event.metaKey){$.datepicker._gotoToday(event.target)}handled=event.ctrlKey||event.metaKey;break;case 37:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,-1,"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M")}break;case 38:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,-7,"D")}handled=event.ctrlKey||event.metaKey;break;case 39:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,+1,"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M")}break;case 40:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,+7,"D")}handled=event.ctrlKey||event.metaKey;break;default:handled=false}}else{if(event.keyCode==36&&event.ctrlKey){$.datepicker._showDatepicker(this)}else{handled=false}}if(handled){event.preventDefault();event.stopPropagation()}},_doKeyPress:function(event){var inst=$.datepicker._getInst(event.target);if($.datepicker._get(inst,"constrainInput")){var chars=$.datepicker._possibleChars($.datepicker._get(inst,"dateFormat"));var chr=String.fromCharCode(event.charCode==undefined?event.keyCode:event.charCode);return event.ctrlKey||(chr<" "||!chars||chars.indexOf(chr)>-1)}},_showDatepicker:function(input){input=input.target||input;if(input.nodeName.toLowerCase()!="input"){input=$("input",input.parentNode)[0]}if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput==input){return }var inst=$.datepicker._getInst(input);var beforeShow=$.datepicker._get(inst,"beforeShow");extendRemove(inst.settings,(beforeShow?beforeShow.apply(input,[input,inst]):{}));$.datepicker._hideDatepicker(null,"");$.datepicker._lastInput=input;$.datepicker._setDateFromField(inst);if($.datepicker._inDialog){input.value=""}if(!$.datepicker._pos){$.datepicker._pos=$.datepicker._findPos(input);$.datepicker._pos[1]+=input.offsetHeight}var isFixed=false;$(input).parents().each(function(){isFixed|=$(this).css("position")=="fixed";return !isFixed});if(isFixed&&$.browser.opera){$.datepicker._pos[0]-=document.documentElement.scrollLeft;$.datepicker._pos[1]-=document.documentElement.scrollTop}var offset={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null;inst.rangeStart=null;inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});$.datepicker._updateDatepicker(inst);inst.dpDiv.width($.datepicker._getNumberOfMonths(inst)[1]*$(".ui-datepicker",inst.dpDiv[0])[0].offsetWidth);offset=$.datepicker._checkOffset(inst,offset,isFixed);inst.dpDiv.css({position:($.datepicker._inDialog&&$.blockUI?"static":(isFixed?"fixed":"absolute")),display:"none",left:offset.left+"px",top:offset.top+"px"});if(!inst.inline){var showAnim=$.datepicker._get(inst,"showAnim")||"show";var duration=$.datepicker._get(inst,"duration");var postProcess=function(){$.datepicker._datepickerShowing=true;};if($.effects&&$.effects[showAnim]){inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[showAnim](duration,postProcess)}if(duration==""){postProcess()}if(inst.input[0].type!="hidden"){inst.input[0].focus()}$.datepicker._curInst=inst}},_updateDatepicker:function(inst){var dims={width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4};inst.dpDiv.empty().append(this._generateHTML(inst));var numMonths=this._getNumberOfMonths(inst);inst.dpDiv[(numMonths[0]!=1||numMonths[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");if(inst.input&&inst.input[0].type!="hidden"&&inst==$.datepicker._curInst){$(inst.input[0]).focus()}},_checkOffset:function(inst,offset,isFixed){var pos=inst.input?this._findPos(inst.input[0]):null;var browserWidth=window.innerWidth||(document.documentElement?document.documentElement.clientWidth:document.body.clientWidth);var browserHeight=window.innerHeight||(document.documentElement?document.documentElement.clientHeight:document.body.clientHeight);var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;if(this._get(inst,"isRTL")||(offset.left+inst.dpDiv.width()-scrollX)>browserWidth){offset.left=Math.max((isFixed?0:scrollX),pos[0]+(inst.input?inst.input.width():0)-(isFixed?scrollX:0)-inst.dpDiv.width()-(isFixed&&$.browser.opera?document.documentElement.scrollLeft:0))}else{offset.left-=(isFixed?scrollX:0)}if((offset.top+inst.dpDiv.height()-scrollY)>browserHeight){offset.top=Math.max((isFixed?0:scrollY),pos[1]-(isFixed?scrollY:0)-(this._inDialog?0:inst.dpDiv.height())-(isFixed&&$.browser.opera?document.documentElement.scrollTop:0))}else{offset.top-=(isFixed?scrollY:0)}return offset},_findPos:function(obj){while(obj&&(obj.type=="hidden"||obj.nodeType!=1)){obj=obj.nextSibling}var position=$(obj).offset();return[position.left,position.top]},_hideDatepicker:function(input,duration){var inst=this._curInst;if(!inst||(input&&inst!=$.data(input,PROP_NAME))){return }var rangeSelect=this._get(inst,"rangeSelect");if(rangeSelect&&inst.stayOpen){this._selectDate("#"+inst.id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))}inst.stayOpen=false;if(this._datepickerShowing){duration=(duration!=null?duration:this._get(inst,"duration"));var showAnim=this._get(inst,"showAnim");var postProcess=function(){$.datepicker._tidyDialog(inst)};if(duration!=""&&$.effects&&$.effects[showAnim]){inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[(duration==""?"hide":(showAnim=="slideDown"?"slideUp":(showAnim=="fadeIn"?"fadeOut":"hide")))](duration,postProcess)}if(duration==""){this._tidyDialog(inst)}var onClose=this._get(inst,"onClose");if(onClose){onClose.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():""),inst])}this._datepickerShowing=false;this._lastInput=null;inst.settings.prompt=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if($.blockUI){$.unblockUI();$("body").append(this.dpDiv)}}this._inDialog=false}this._curInst=null},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker");$("."+this._promptClass,inst.dpDiv).remove()},_checkExternalClick:function(event){if(!$.datepicker._curInst){return }var $target=$(event.target);if(($target.parents("#"+$.datepicker._mainDivId).length==0)&&!$target.hasClass($.datepicker.markerClassName)&&!$target.hasClass($.datepicker._triggerClass)&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)){$.datepicker._hideDatepicker(null,"")}},_adjustDate:function(id,offset,period){var target=$(id);var inst=this._getInst(target[0]);this._adjustInstDate(inst,offset,period);this._updateDatepicker(inst)},_gotoToday:function(id){var target=$(id);var inst=this._getInst(target[0]);if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;inst.drawMonth=inst.selectedMonth=inst.currentMonth;inst.drawYear=inst.selectedYear=inst.currentYear}else{var date=new Date();inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear()}this._notifyChange(inst);this._adjustDate(target)},_selectMonthYear:function(id,select,period){var target=$(id);var inst=this._getInst(target[0]);inst._selectingMonthYear=false;inst["selected"+(period=="M"?"Month":"Year")]=inst["draw"+(period=="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);this._notifyChange(inst);this._adjustDate(target)},_clickMonthYear:function(id){var target=$(id);var inst=this._getInst(target[0]);if(inst.input&&inst._selectingMonthYear&&!$.browser.msie){inst.input[0].focus()}inst._selectingMonthYear=!inst._selectingMonthYear},_changeFirstDay:function(id,day){var target=$(id);var inst=this._getInst(target[0]);inst.settings.firstDay=day;this._updateDatepicker(inst)},_selectDay:function(id,month,year,td){if($(td).hasClass(this._unselectableClass)){return }var target=$(id);var inst=this._getInst(target[0]);var rangeSelect=this._get(inst,"rangeSelect");if(rangeSelect){inst.stayOpen=!inst.stayOpen;if(inst.stayOpen){$(".ui-datepicker td",inst.dpDiv).removeClass(this._currentClass);$(td).addClass(this._currentClass)}}inst.selectedDay=inst.currentDay=$("a",td).html();inst.selectedMonth=inst.currentMonth=month;inst.selectedYear=inst.currentYear=year;if(inst.stayOpen){inst.endDay=inst.endMonth=inst.endYear=null}else{if(rangeSelect){inst.endDay=inst.currentDay;inst.endMonth=inst.currentMonth;inst.endYear=inst.currentYear}}this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear));if(inst.stayOpen){inst.rangeStart=this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));this._updateDatepicker(inst)}else{if(rangeSelect){inst.selectedDay=inst.currentDay=inst.rangeStart.getDate();inst.selectedMonth=inst.currentMonth=inst.rangeStart.getMonth();inst.selectedYear=inst.currentYear=inst.rangeStart.getFullYear();inst.rangeStart=null;if(inst.inline){this._updateDatepicker(inst)}}}},_clearDate:function(id){var target=$(id);var inst=this._getInst(target[0]);if(this._get(inst,"mandatory")){return }inst.stayOpen=false;inst.endDay=inst.endMonth=inst.endYear=inst.rangeStart=null;this._selectDate(target,"")},_selectDate:function(id,dateStr){var target=$(id);var inst=this._getInst(target[0]);dateStr=(dateStr!=null?dateStr:this._formatDate(inst));if(this._get(inst,"rangeSelect")&&dateStr){dateStr=(inst.rangeStart?this._formatDate(inst,inst.rangeStart):dateStr)+this._get(inst,"rangeSeparator")+dateStr}if(inst.input){inst.input.val(dateStr)}this._updateAlternate(inst);var onSelect=this._get(inst,"onSelect");if(onSelect){onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst])}else{if(inst.input){inst.input.trigger("change")}}if(inst.inline){this._updateDatepicker(inst)}else{if(!inst.stayOpen){this._hideDatepicker(null,this._get(inst,"duration"));this._lastInput=inst.input[0];if(typeof (inst.input[0])!="object"){inst.input[0].focus()}this._lastInput=null}}},_updateAlternate:function(inst){var altField=this._get(inst,"altField");if(altField){var altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");var date=this._getDate(inst);dateStr=(isArray(date)?(!date[0]&&!date[1]?"":this.formatDate(altFormat,date[0],this._getFormatConfig(inst))+this._get(inst,"rangeSeparator")+this.formatDate(altFormat,date[1]||date[0],this._getFormatConfig(inst))):this.formatDate(altFormat,date,this._getFormatConfig(inst)));$(altField).each(function(){$(this).val(dateStr)})}},noWeekends:function(date){var day=date.getDay();return[(day>0&&day<6),""]},iso8601Week:function(date){var checkDate=new Date(date.getFullYear(),date.getMonth(),date.getDate());var firstMon=new Date(checkDate.getFullYear(),1-1,4);var firstDay=firstMon.getDay()||7;firstMon.setDate(firstMon.getDate()+1-firstDay);if(firstDay<4&&checkDate<firstMon){checkDate.setDate(checkDate.getDate()-3);return $.datepicker.iso8601Week(checkDate)}else{if(checkDate>new Date(checkDate.getFullYear(),12-1,28)){firstDay=new Date(checkDate.getFullYear()+1,1-1,4).getDay()||7;if(firstDay>4&&(checkDate.getDay()||7)<firstDay-3){return 1}}}return Math.floor(((checkDate-firstMon)/86400000)/7)+1},dateStatus:function(date,inst){return $.datepicker.formatDate($.datepicker._get(inst,"dateStatus"),date,$.datepicker._getFormatConfig(inst))},parseDate:function(format,value,settings){if(format==null||value==null){throw"Invalid arguments"}value=(typeof value=="object"?value.toString():value+"");if(value==""){return null}var shortYearCutoff=(settings?settings.shortYearCutoff:null)||this._defaults.shortYearCutoff;var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var year=-1;var month=-1;var day=-1;var doy=-1;var literal=false;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var getNumber=function(match){lookAhead(match);var origSize=(match=="@"?14:(match=="y"?4:(match=="o"?3:2)));var size=origSize;var num=0;while(size>0&&iValue<value.length&&value.charAt(iValue)>="0"&&value.charAt(iValue)<="9"){num=num*10+parseInt(value.charAt(iValue++),10);size--}if(size==origSize){throw"Missing number at position "+iValue}return num};var getName=function(match,shortNames,longNames){var names=(lookAhead(match)?longNames:shortNames);var size=0;for(var j=0;j<names.length;j++){size=Math.max(size,names[j].length)}var name="";var iInit=iValue;while(size>0&&iValue<value.length){name+=value.charAt(iValue++);for(var i=0;i<names.length;i++){if(name==names[i]){return i+1}}size--}throw"Unknown name at position "+iInit};var checkLiteral=function(){if(value.charAt(iValue)!=format.charAt(iFormat)){throw"Unexpected literal at position "+iValue}iValue++};var iValue=0;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{checkLiteral()}}else{switch(format.charAt(iFormat)){case"d":day=getNumber("d");break;case"D":getName("D",dayNamesShort,dayNames);break;case"o":doy=getNumber("o");break;case"m":month=getNumber("m");break;case"M":month=getName("M",monthNamesShort,monthNames);break;case"y":year=getNumber("y");break;case"@":var date=new Date(getNumber("@"));year=date.getFullYear();month=date.getMonth()+1;day=date.getDate();break;case"'":if(lookAhead("'")){checkLiteral()}else{literal=true}break;default:checkLiteral()}}}if(year==-1){year=new Date().getFullYear()}else{if(year<100){year+=new Date().getFullYear()-new Date().getFullYear()%100+(year<=shortYearCutoff?0:-100)}}if(doy>-1){month=1;day=doy;do{var dim=this._getDaysInMonth(year,month-1);if(day<=dim){break}month++;day-=dim}while(true)}var date=this._daylightSavingAdjust(new Date(year,month-1,day));if(date.getFullYear()!=year||date.getMonth()+1!=month||date.getDate()!=day){throw"Invalid date"}return date},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TIMESTAMP:"@",W3C:"yy-mm-dd",formatDate:function(format,date,settings){if(!date){return""}var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var formatNumber=function(match,value,len){var num=""+value;if(lookAhead(match)){while(num.length<len){num="0"+num}}return num};var formatName=function(match,value,shortNames,longNames){return(lookAhead(match)?longNames[value]:shortNames[value])};var output="";var literal=false;if(date){for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{output+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":output+=formatNumber("d",date.getDate(),2);break;case"D":output+=formatName("D",date.getDay(),dayNamesShort,dayNames);break;case"o":var doy=date.getDate();for(var m=date.getMonth()-1;m>=0;m--){doy+=this._getDaysInMonth(date.getFullYear(),m)}output+=formatNumber("o",doy,3);break;case"m":output+=formatNumber("m",date.getMonth()+1,2);break;case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);break;case"y":output+=(lookAhead("y")?date.getFullYear():(date.getYear()%100<10?"0":"")+date.getYear()%100);break;case"@":output+=date.getTime();break;case"'":if(lookAhead("'")){output+="'"}else{literal=true}break;default:output+=format.charAt(iFormat)}}}}return output},_possibleChars:function(format){var chars="";var literal=false;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{chars+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":case"m":case"y":case"@":chars+="0123456789";break;case"D":case"M":return null;case"'":if(lookAhead("'")){chars+="'"}else{literal=true}break;default:chars+=format.charAt(iFormat)}}}return chars},_get:function(inst,name){return inst.settings[name]!==undefined?inst.settings[name]:this._defaults[name]},_setDateFromField:function(inst){var dateFormat=this._get(inst,"dateFormat");var dates=inst.input?inst.input.val().split(this._get(inst,"rangeSeparator")):null;inst.endDay=inst.endMonth=inst.endYear=null;var date=defaultDate=this._getDefaultDate(inst);if(dates.length>0){var settings=this._getFormatConfig(inst);if(dates.length>1){date=this.parseDate(dateFormat,dates[1],settings)||defaultDate;inst.endDay=date.getDate();inst.endMonth=date.getMonth();inst.endYear=date.getFullYear()}try{date=this.parseDate(dateFormat,dates[0],settings)||defaultDate}catch(event){this.log(event);date=defaultDate}}inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();inst.currentDay=(dates[0]?date.getDate():0);inst.currentMonth=(dates[0]?date.getMonth():0);inst.currentYear=(dates[0]?date.getFullYear():0);this._adjustInstDate(inst)},_getDefaultDate:function(inst){var date=this._determineDate(this._get(inst,"defaultDate"),new Date());var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);return date},_determineDate:function(date,defaultDate){var offsetNumeric=function(offset){var date=new Date();date.setDate(date.getDate()+offset);return date};var offsetString=function(offset,getDaysInMonth){var date=new Date();var year=date.getFullYear();var month=date.getMonth();var day=date.getDate();var pattern=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;var matches=pattern.exec(offset);while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);break;case"w":case"W":day+=parseInt(matches[1],10)*7;break;case"m":case"M":month+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break;case"y":case"Y":year+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break}matches=pattern.exec(offset)}return new Date(year,month,day)};date=(date==null?defaultDate:(typeof date=="string"?offsetString(date,this._getDaysInMonth):(typeof date=="number"?(isNaN(date)?defaultDate:offsetNumeric(date)):date)));date=(date&&date.toString()=="Invalid Date"?defaultDate:date);if(date){date.setHours(0);date.setMinutes(0);date.setSeconds(0);date.setMilliseconds(0)}return this._daylightSavingAdjust(date)},_daylightSavingAdjust:function(date){if(!date){return null}date.setHours(date.getHours()>12?date.getHours()+2:0);return date},_setDate:function(inst,date,endDate){var clear=!(date);var origMonth=inst.selectedMonth;var origYear=inst.selectedYear;date=this._determineDate(date,new Date());inst.selectedDay=inst.currentDay=date.getDate();inst.drawMonth=inst.selectedMonth=inst.currentMonth=date.getMonth();inst.drawYear=inst.selectedYear=inst.currentYear=date.getFullYear();if(this._get(inst,"rangeSelect")){if(endDate){endDate=this._determineDate(endDate,null);inst.endDay=endDate.getDate();inst.endMonth=endDate.getMonth();inst.endYear=endDate.getFullYear()}else{inst.endDay=inst.currentDay;inst.endMonth=inst.currentMonth;inst.endYear=inst.currentYear}}if(origMonth!=inst.selectedMonth||origYear!=inst.selectedYear){this._notifyChange(inst)}this._adjustInstDate(inst);if(inst.input){inst.input.val(clear?"":this._formatDate(inst)+(!this._get(inst,"rangeSelect")?"":this._get(inst,"rangeSeparator")+this._formatDate(inst,inst.endDay,inst.endMonth,inst.endYear)))}},_getDate:function(inst){var startDate=(!inst.currentYear||(inst.input&&inst.input.val()=="")?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));if(this._get(inst,"rangeSelect")){return[inst.rangeStart||startDate,(!inst.endYear?inst.rangeStart||startDate:this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)))]}else{return startDate}},_generateHTML:function(inst){var today=new Date();today=this._daylightSavingAdjust(new Date(today.getFullYear(),today.getMonth(),today.getDate()));var showStatus=this._get(inst,"showStatus");var initStatus=this._get(inst,"initStatus")||" ";var isRTL=this._get(inst,"isRTL");var clear=(this._get(inst,"mandatory")?"":'<div class="ui-datepicker-clear"><a onclick="jQuery.datepicker._clearDate(\'#'+inst.id+"');\""+this._addStatus(showStatus,inst.id,this._get(inst,"clearStatus"),initStatus)+">"+this._get(inst,"clearText")+"</a></div>");var controls='<div class="ui-datepicker-control">'+(isRTL?"":clear)+'<div class="ui-datepicker-close"><a onclick="jQuery.datepicker._hideDatepicker();"'+this._addStatus(showStatus,inst.id,this._get(inst,"closeStatus"),initStatus)+">"+this._get(inst,"closeText")+"</a></div>"+(isRTL?clear:"")+"</div>";var prompt=this._get(inst,"prompt");var closeAtTop=this._get(inst,"closeAtTop");var hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext");var navigationAsDateFormat=this._get(inst,"navigationAsDateFormat");var showBigPrevNext=this._get(inst,"showBigPrevNext");var numMonths=this._getNumberOfMonths(inst);var showCurrentAtPos=this._get(inst,"showCurrentAtPos");var stepMonths=this._get(inst,"stepMonths");var stepBigMonths=this._get(inst,"stepBigMonths");var isMultiMonth=(numMonths[0]!=1||numMonths[1]!=1);var currentDate=this._daylightSavingAdjust((!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");var drawMonth=inst.drawMonth-showCurrentAtPos;var drawYear=inst.drawYear;if(drawMonth<0){drawMonth+=12;drawYear--}if(maxDate){var maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-numMonths[1]+1,maxDate.getDate()));maxDraw=(minDate&&maxDraw<minDate?minDate:maxDraw);while(this._daylightSavingAdjust(new Date(drawYear,drawMonth,1))>maxDraw){drawMonth--;if(drawMonth<0){drawMonth=11;drawYear--}}}var prevText=this._get(inst,"prevText");prevText=(!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst)));var prevBigText=(showBigPrevNext?this._get(inst,"prevBigText"):"");prevBigText=(!navigationAsDateFormat?prevBigText:this.formatDate(prevBigText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepBigMonths,1)),this._getFormatConfig(inst)));var prev='<div class="ui-datepicker-prev">'+(this._canAdjustMonth(inst,-1,drawYear,drawMonth)?(showBigPrevNext?"<a onclick=\"jQuery.datepicker._adjustDate('#"+inst.id+"', -"+stepBigMonths+", 'M');\""+this._addStatus(showStatus,inst.id,this._get(inst,"prevBigStatus"),initStatus)+">"+prevBigText+"</a>":"")+"<a onclick=\"jQuery.datepicker._adjustDate('#"+inst.id+"', -"+stepMonths+", 'M');\""+this._addStatus(showStatus,inst.id,this._get(inst,"prevStatus"),initStatus)+">"+prevText+"</a>":(hideIfNoPrevNext?"":(showBigPrevNext?"<label>"+prevBigText+"</label>":"")+"<label>"+prevText+"</label>"))+"</div>";var nextText=this._get(inst,"nextText");nextText=(!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst)));var nextBigText=(showBigPrevNext?this._get(inst,"nextBigText"):"");nextBigText=(!navigationAsDateFormat?nextBigText:this.formatDate(nextBigText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepBigMonths,1)),this._getFormatConfig(inst)));var next='<div class="ui-datepicker-next">'+(this._canAdjustMonth(inst,+1,drawYear,drawMonth)?"<a onclick=\"jQuery.datepicker._adjustDate('#"+inst.id+"', +"+stepMonths+", 'M');\""+this._addStatus(showStatus,inst.id,this._get(inst,"nextStatus"),initStatus)+">"+nextText+"</a>"+(showBigPrevNext?"<a onclick=\"jQuery.datepicker._adjustDate('#"+inst.id+"', +"+stepBigMonths+", 'M');\""+this._addStatus(showStatus,inst.id,this._get(inst,"nextBigStatus"),initStatus)+">"+nextBigText+"</a>":""):(hideIfNoPrevNext?"":"<label>"+nextText+"</label>"+(showBigPrevNext?"<label>"+nextBigText+"</label>":"")))+"</div>";var currentText=this._get(inst,"currentText");var gotoDate=(this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today);currentText=(!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst)));var html=(closeAtTop&&!inst.inline?controls:"")+'<div class="ui-datepicker-links">'+(isRTL?next:prev)+(this._isInRange(inst,gotoDate)?'<div class="ui-datepicker-current"><a onclick="jQuery.datepicker._gotoToday(\'#'+inst.id+"');\""+this._addStatus(showStatus,inst.id,this._get(inst,"currentStatus"),initStatus)+">"+currentText+"</a></div>":"")+(isRTL?prev:next)+"</div>"+(prompt?'<div class="'+this._promptClass+'"><span>'+prompt+"</span></div>":"");var firstDay=parseInt(this._get(inst,"firstDay"));firstDay=(isNaN(firstDay)?0:firstDay);var changeFirstDay=this._get(inst,"changeFirstDay");var dayNames=this._get(inst,"dayNames");var dayNamesShort=this._get(inst,"dayNamesShort");var dayNamesMin=this._get(inst,"dayNamesMin");var monthNames=this._get(inst,"monthNames");var beforeShowDay=this._get(inst,"beforeShowDay");var highlightWeek=this._get(inst,"highlightWeek");var showOtherMonths=this._get(inst,"showOtherMonths");var showWeeks=this._get(inst,"showWeeks");var calculateWeek=this._get(inst,"calculateWeek")||this.iso8601Week;var weekStatus=this._get(inst,"weekStatus");var status=(showStatus?this._get(inst,"dayStatus")||initStatus:"");var dateStatus=this._get(inst,"statusForDate")||this.dateStatus;var endDate=inst.endDay?this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)):currentDate;var defaultDate=this._getDefaultDate(inst);for(var row=0;row<numMonths[0];row++){for(var col=0;col<numMonths[1];col++){var selectedDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,inst.selectedDay));html+='<div class="ui-datepicker-one-month'+(col==0?" ui-datepicker-new-row":"")+'">'+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,row>0||col>0,showStatus,initStatus,monthNames)+'<table class="ui-datepicker" cellpadding="0" cellspacing="0"><thead><tr class="ui-datepicker-title-row">'+(showWeeks?"<td"+this._addStatus(showStatus,inst.id,weekStatus,initStatus)+">"+this._get(inst,"weekHeader")+"</td>":"");for(var dow=0;dow<7;dow++){var day=(dow+firstDay)%7;var dayStatus=(status.indexOf("DD")>-1?status.replace(/DD/,dayNames[day]):status.replace(/D/,dayNamesShort[day]));html+="<td"+((dow+firstDay+6)%7>=5?' class="ui-datepicker-week-end-cell"':"")+">"+(!changeFirstDay?"<span":"<a onclick=\"jQuery.datepicker._changeFirstDay('#"+inst.id+"', "+day+');"')+this._addStatus(showStatus,inst.id,dayStatus,initStatus)+' title="'+dayNames[day]+'">'+dayNamesMin[day]+(changeFirstDay?"</a>":"</span>")+"</td>"}html+="</tr></thead><tbody>";var daysInMonth=this._getDaysInMonth(drawYear,drawMonth);if(drawYear==inst.selectedYear&&drawMonth==inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)}var leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;var numRows=(isMultiMonth?6:Math.ceil((leadDays+daysInMonth)/7));var printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));for(var dRow=0;dRow<numRows;dRow++){html+='<tr class="ui-datepicker-days-row">'+(showWeeks?'<td class="ui-datepicker-week-col"'+this._addStatus(showStatus,inst.id,weekStatus,initStatus)+">"+calculateWeek(printDate)+"</td>":"");for(var dow=0;dow<7;dow++){var daySettings=(beforeShowDay?beforeShowDay.apply((inst.input?inst.input[0]:null),[printDate]):[true,""]);var otherMonth=(printDate.getMonth()!=drawMonth);var unselectable=otherMonth||!daySettings[0]||(minDate&&printDate<minDate)||(maxDate&&printDate>maxDate);html+='<td class="ui-datepicker-days-cell'+((dow+firstDay+6)%7>=5?" ui-datepicker-week-end-cell":"")+(otherMonth?" ui-datepicker-other-month":"")+((printDate.getTime()==selectedDate.getTime()&&drawMonth==inst.selectedMonth&&inst._keyEvent)||(defaultDate.getTime()==printDate.getTime()&&defaultDate.getTime()==selectedDate.getTime())?" "+$.datepicker._dayOverClass:"")+(unselectable?" "+this._unselectableClass:"")+(otherMonth&&!showOtherMonths?"":" "+daySettings[1]+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()==today.getTime()?" ui-datepicker-today":""))+'"'+((!otherMonth||showOtherMonths)&&daySettings[2]?' title="'+daySettings[2]+'"':"")+(unselectable?(highlightWeek?" onmouseover=\"jQuery(this).parent().addClass('"+this._weekOverClass+"');\" onmouseout=\"jQuery(this).parent().removeClass('"+this._weekOverClass+"');\"":""):" onmouseover=\"jQuery(this).addClass('"+this._dayOverClass+"')"+(highlightWeek?".parent().addClass('"+this._weekOverClass+"')":"")+";"+(!showStatus||(otherMonth&&!showOtherMonths)?"":"jQuery('#ui-datepicker-status-"+inst.id+"').html('"+(dateStatus.apply((inst.input?inst.input[0]:null),[printDate,inst])||initStatus)+"');")+'" onmouseout="jQuery(this).removeClass(\''+this._dayOverClass+"')"+(highlightWeek?".parent().removeClass('"+this._weekOverClass+"')":"")+";"+(!showStatus||(otherMonth&&!showOtherMonths)?"":"jQuery('#ui-datepicker-status-"+inst.id+"').html('"+initStatus+"');")+'" onclick="jQuery.datepicker._selectDay(\'#'+inst.id+"',"+drawMonth+","+drawYear+', this);"')+">"+(otherMonth?(showOtherMonths?printDate.getDate():" "):(unselectable?printDate.getDate():"<a>"+printDate.getDate()+"</a>"))+"</td>";printDate.setDate(printDate.getDate()+1);printDate=this._daylightSavingAdjust(printDate)}html+="</tr>"}drawMonth++;if(drawMonth>11){drawMonth=0;drawYear++}html+="</tbody></table></div>"}}html+=(showStatus?'<div style="clear: both;"></div><div id="ui-datepicker-status-'+inst.id+'" class="ui-datepicker-status">'+initStatus+"</div>":"")+(!closeAtTop&&!inst.inline?controls:"")+'<div style="clear: both;"></div>'+($.browser.msie&&parseInt($.browser.version,10)<7&&!inst.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover"></iframe>':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,secondary,showStatus,initStatus,monthNames){minDate=(inst.rangeStart&&minDate&&selectedDate<minDate?selectedDate:minDate);var changeMonth=this._get(inst,"changeMonth");var changeYear=this._get(inst,"changeYear");var showMonthAfterYear=this._get(inst,"showMonthAfterYear");var html='<div class="ui-datepicker-header">';var monthHtml="";if(secondary||!changeMonth){monthHtml+=monthNames[drawMonth]}else{var inMinYear=(minDate&&minDate.getFullYear()==drawYear);var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);monthHtml+='<select class="ui-datepicker-new-month" onchange="jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'M');\" onclick=\"jQuery.datepicker._clickMonthYear('#"+inst.id+"');\""+this._addStatus(showStatus,inst.id,this._get(inst,"monthStatus"),initStatus)+">";for(var month=0;month<12;month++){if((!inMinYear||month>=minDate.getMonth())&&(!inMaxYear||month<=maxDate.getMonth())){monthHtml+='<option value="'+month+'"'+(month==drawMonth?' selected="selected"':"")+">"+monthNames[month]+"</option>"}}monthHtml+="</select>"}if(!showMonthAfterYear){html+=monthHtml+(secondary||changeMonth||changeYear?" ":"")}if(secondary||!changeYear){html+=drawYear}else{var years=this._get(inst,"yearRange").split(":");var year=0;var endYear=0;if(years.length!=2){year=drawYear-10;endYear=drawYear+10}else{if(years[0].charAt(0)=="+"||years[0].charAt(0)=="-"){year=endYear=new Date().getFullYear();year+=parseInt(years[0],10);endYear+=parseInt(years[1],10)}else{year=parseInt(years[0],10);endYear=parseInt(years[1],10)}}year=(minDate?Math.max(year,minDate.getFullYear()):year);endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);html+='<select class="ui-datepicker-new-year" onchange="jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'Y');\" onclick=\"jQuery.datepicker._clickMonthYear('#"+inst.id+"');\""+this._addStatus(showStatus,inst.id,this._get(inst,"yearStatus"),initStatus)+">";for(;year<=endYear;year++){html+='<option value="'+year+'"'+(year==drawYear?' selected="selected"':"")+">"+year+"</option>"}html+="</select>"}if(showMonthAfterYear){html+=(secondary||changeMonth||changeYear?" ":"")+monthHtml}html+="</div>";return html},_addStatus:function(showStatus,id,text,initStatus){return(showStatus?" onmouseover=\"jQuery('#ui-datepicker-status-"+id+"').html('"+(text||initStatus)+"');\" onmouseout=\"jQuery('#ui-datepicker-status-"+id+"').html('"+initStatus+"');\"":"")},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._daylightSavingAdjust(new Date(year,month,day));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y"){this._notifyChange(inst)}},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))},_getMinMaxDate:function(inst,minMax,checkRange){var date=this._determineDate(this._get(inst,minMax+"Date"),null);return(!checkRange||!inst.rangeStart?date:(!date||inst.rangeStart>date?inst.rangeStart:date))},_getDaysInMonth:function(year,month){return 32-new Date(year,month,32).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var newMinDate=(!inst.rangeStart?null:this._daylightSavingAdjust(new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay)));newMinDate=(newMinDate&&inst.rangeStart<newMinDate?inst.rangeStart:newMinDate);var minDate=newMinDate||this._getMinMaxDate(inst,"min");var maxDate=this._getMinMaxDate(inst,"max");return((!minDate||date>=minDate)&&(!maxDate||date<=maxDate))},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null||props[name]==undefined){target[name]=props[name]}}return target}function isArray(a){return(a&&(($.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))}$.fn.datepicker=function(options){if(!$.datepicker.initialized){$(document.body).append($.datepicker.dpDiv).mousedown($.datepicker._checkExternalClick);$.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker();$.datepicker.initialized=false;$.datepicker.uuid=new Date().getTime();$.datepicker.version="1.6"})(jQuery);/* + * jQuery UI Effects 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/ + */ +(function(C){C.effects=C.effects||{};C.extend(C.effects,{version:"1.6",save:function(F,G){for(var E=0;E<G.length;E++){if(G[E]!==null){C.data(F[0],"ec.storage."+G[E],F[0].style[G[E]])}}},restore:function(F,G){for(var E=0;E<G.length;E++){if(G[E]!==null){F.css(G[E],C.data(F[0],"ec.storage."+G[E]))}}},setMode:function(E,F){if(F=="toggle"){F=E.is(":hidden")?"show":"hide"}return F},getBaseline:function(F,G){var H,E;switch(F[0]){case"top":H=0;break;case"middle":H=0.5;break;case"bottom":H=1;break;default:H=F[0]/G.height}switch(F[1]){case"left":E=0;break;case"center":E=0.5;break;case"right":E=1;break;default:E=F[1]/G.width}return{x:E,y:H}},createWrapper:function(F){if(F.parent().attr("id")=="fxWrapper"){return F}var E={width:F.outerWidth({margin:true}),height:F.outerHeight({margin:true}),"float":F.css("float")};F.wrap('<div id="fxWrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>');var I=F.parent();if(F.css("position")=="static"){I.css({position:"relative"});F.css({position:"relative"})}else{var H=F.css("top");if(isNaN(parseInt(H))){H="auto"}var G=F.css("left");if(isNaN(parseInt(G))){G="auto"}I.css({position:F.css("position"),top:H,left:G,zIndex:F.css("z-index")}).show();F.css({position:"relative",top:0,left:0})}I.css(E);return I},removeWrapper:function(E){if(E.parent().attr("id")=="fxWrapper"){return E.parent().replaceWith(E)}return E},setTransition:function(F,G,E,H){H=H||{};C.each(G,function(J,I){unit=F.cssUnit(I);if(unit[0]>0){H[I]=unit[0]*E+unit[1]}});return H},animateClass:function(G,H,J,I){var E=(typeof J=="function"?J:(I?I:null));var F=(typeof J=="object"?J:null);return this.each(function(){var O={};var M=C(this);var N=M.attr("style")||"";if(typeof N=="object"){N=N["cssText"]}if(G.toggle){M.hasClass(G.toggle)?G.remove=G.toggle:G.add=G.toggle}var K=C.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(G.add){M.addClass(G.add)}if(G.remove){M.removeClass(G.remove)}var L=C.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(G.add){M.removeClass(G.add)}if(G.remove){M.addClass(G.remove)}for(var P in L){if(typeof L[P]!="function"&&L[P]&&P.indexOf("Moz")==-1&&P.indexOf("length")==-1&&L[P]!=K[P]&&(P.match(/color/i)||(!P.match(/color/i)&&!isNaN(parseInt(L[P],10))))&&(K.position!="static"||(K.position=="static"&&!P.match(/left|top|bottom|right/)))){O[P]=L[P]}}M.animate(O,H,F,function(){if(typeof C(this).attr("style")=="object"){C(this).attr("style")["cssText"]="";C(this).attr("style")["cssText"]=N}else{C(this).attr("style",N)}if(G.add){C(this).addClass(G.add)}if(G.remove){C(this).removeClass(G.remove)}if(E){E.apply(this,arguments)}})})}});C.fn.extend({_show:C.fn.show,_hide:C.fn.hide,__toggle:C.fn.toggle,_addClass:C.fn.addClass,_removeClass:C.fn.removeClass,_toggleClass:C.fn.toggleClass,effect:function(E,G,F,H){return C.effects[E]?C.effects[E].call(this,{method:E,options:G||{},duration:F,callback:H}):null},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||/(slow|normal|fast)/.test(arguments[0]))){return this._show.apply(this,arguments)}else{var E=arguments[1]||{};E["mode"]="show";return this.effect.apply(this,[arguments[0],E,arguments[2]||E.duration,arguments[3]||E.callback])}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||/(slow|normal|fast)/.test(arguments[0]))){return this._hide.apply(this,arguments)}else{var E=arguments[1]||{};E["mode"]="hide";return this.effect.apply(this,[arguments[0],E,arguments[2]||E.duration,arguments[3]||E.callback])}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||/(slow|normal|fast)/.test(arguments[0]))||(arguments[0].constructor==Function)){return this.__toggle.apply(this,arguments)}else{var E=arguments[1]||{};E["mode"]="toggle";return this.effect.apply(this,[arguments[0],E,arguments[2]||E.duration,arguments[3]||E.callback])}},addClass:function(F,E,H,G){return E?C.effects.animateClass.apply(this,[{add:F},E,H,G]):this._addClass(F)},removeClass:function(F,E,H,G){return E?C.effects.animateClass.apply(this,[{remove:F},E,H,G]):this._removeClass(F)},toggleClass:function(F,E,H,G){return E?C.effects.animateClass.apply(this,[{toggle:F},E,H,G]):this._toggleClass(F)},morph:function(E,G,F,I,H){return C.effects.animateClass.apply(this,[{add:G,remove:E},F,I,H])},switchClass:function(){return this.morph.apply(this,arguments)},cssUnit:function(E){var F=this.css(E),G=[];C.each(["em","px","%","pt"],function(H,I){if(F.indexOf(I)>0){G=[parseFloat(F),I]}});return G}});C.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(F,E){C.fx.step[E]=function(G){if(G.state==0){G.start=D(G.elem,E);G.end=B(G.end)}G.elem.style[E]="rgb("+[Math.max(Math.min(parseInt((G.pos*(G.end[0]-G.start[0]))+G.start[0]),255),0),Math.max(Math.min(parseInt((G.pos*(G.end[1]-G.start[1]))+G.start[1]),255),0),Math.max(Math.min(parseInt((G.pos*(G.end[2]-G.start[2]))+G.start[2]),255),0)].join(",")+")"}});function B(F){var E;if(F&&F.constructor==Array&&F.length==3){return F}if(E=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(F)){return[parseInt(E[1]),parseInt(E[2]),parseInt(E[3])]}if(E=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(F)){return[parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55]}if(E=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(F)){return[parseInt(E[1],16),parseInt(E[2],16),parseInt(E[3],16)]}if(E=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(F)){return[parseInt(E[1]+E[1],16),parseInt(E[2]+E[2],16),parseInt(E[3]+E[3],16)]}if(E=/rgba\(0, 0, 0, 0\)/.exec(F)){return A["transparent"]}return A[C.trim(F).toLowerCase()]}function D(G,E){var F;do{F=C.curCSS(G,E);if(F!=""&&F!="transparent"||C.nodeName(G,"body")){break}E="backgroundColor"}while(G=G.parentNode);return B(F)}var A={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};C.easing.jswing=C.easing.swing;C.extend(C.easing,{def:"easeOutQuad",swing:function(F,G,E,I,H){return C.easing[C.easing.def](F,G,E,I,H)},easeInQuad:function(F,G,E,I,H){return I*(G/=H)*G+E},easeOutQuad:function(F,G,E,I,H){return -I*(G/=H)*(G-2)+E},easeInOutQuad:function(F,G,E,I,H){if((G/=H/2)<1){return I/2*G*G+E}return -I/2*((--G)*(G-2)-1)+E},easeInCubic:function(F,G,E,I,H){return I*(G/=H)*G*G+E},easeOutCubic:function(F,G,E,I,H){return I*((G=G/H-1)*G*G+1)+E},easeInOutCubic:function(F,G,E,I,H){if((G/=H/2)<1){return I/2*G*G*G+E}return I/2*((G-=2)*G*G+2)+E},easeInQuart:function(F,G,E,I,H){return I*(G/=H)*G*G*G+E},easeOutQuart:function(F,G,E,I,H){return -I*((G=G/H-1)*G*G*G-1)+E},easeInOutQuart:function(F,G,E,I,H){if((G/=H/2)<1){return I/2*G*G*G*G+E}return -I/2*((G-=2)*G*G*G-2)+E},easeInQuint:function(F,G,E,I,H){return I*(G/=H)*G*G*G*G+E},easeOutQuint:function(F,G,E,I,H){return I*((G=G/H-1)*G*G*G*G+1)+E},easeInOutQuint:function(F,G,E,I,H){if((G/=H/2)<1){return I/2*G*G*G*G*G+E}return I/2*((G-=2)*G*G*G*G+2)+E},easeInSine:function(F,G,E,I,H){return -I*Math.cos(G/H*(Math.PI/2))+I+E},easeOutSine:function(F,G,E,I,H){return I*Math.sin(G/H*(Math.PI/2))+E},easeInOutSine:function(F,G,E,I,H){return -I/2*(Math.cos(Math.PI*G/H)-1)+E},easeInExpo:function(F,G,E,I,H){return(G==0)?E:I*Math.pow(2,10*(G/H-1))+E},easeOutExpo:function(F,G,E,I,H){return(G==H)?E+I:I*(-Math.pow(2,-10*G/H)+1)+E},easeInOutExpo:function(F,G,E,I,H){if(G==0){return E}if(G==H){return E+I}if((G/=H/2)<1){return I/2*Math.pow(2,10*(G-1))+E}return I/2*(-Math.pow(2,-10*--G)+2)+E},easeInCirc:function(F,G,E,I,H){return -I*(Math.sqrt(1-(G/=H)*G)-1)+E},easeOutCirc:function(F,G,E,I,H){return I*Math.sqrt(1-(G=G/H-1)*G)+E},easeInOutCirc:function(F,G,E,I,H){if((G/=H/2)<1){return -I/2*(Math.sqrt(1-G*G)-1)+E}return I/2*(Math.sqrt(1-(G-=2)*G)+1)+E},easeInElastic:function(F,H,E,L,K){var I=1.70158;var J=0;var G=L;if(H==0){return E}if((H/=K)==1){return E+L}if(!J){J=K*0.3}if(G<Math.abs(L)){G=L;var I=J/4}else{var I=J/(2*Math.PI)*Math.asin(L/G)}return -(G*Math.pow(2,10*(H-=1))*Math.sin((H*K-I)*(2*Math.PI)/J))+E},easeOutElastic:function(F,H,E,L,K){var I=1.70158;var J=0;var G=L;if(H==0){return E}if((H/=K)==1){return E+L}if(!J){J=K*0.3}if(G<Math.abs(L)){G=L;var I=J/4}else{var I=J/(2*Math.PI)*Math.asin(L/G)}return G*Math.pow(2,-10*H)*Math.sin((H*K-I)*(2*Math.PI)/J)+L+E},easeInOutElastic:function(F,H,E,L,K){var I=1.70158;var J=0;var G=L;if(H==0){return E}if((H/=K/2)==2){return E+L}if(!J){J=K*(0.3*1.5)}if(G<Math.abs(L)){G=L;var I=J/4}else{var I=J/(2*Math.PI)*Math.asin(L/G)}if(H<1){return -0.5*(G*Math.pow(2,10*(H-=1))*Math.sin((H*K-I)*(2*Math.PI)/J))+E}return G*Math.pow(2,-10*(H-=1))*Math.sin((H*K-I)*(2*Math.PI)/J)*0.5+L+E},easeInBack:function(F,G,E,J,I,H){if(H==undefined){H=1.70158}return J*(G/=I)*G*((H+1)*G-H)+E},easeOutBack:function(F,G,E,J,I,H){if(H==undefined){H=1.70158}return J*((G=G/I-1)*G*((H+1)*G+H)+1)+E},easeInOutBack:function(F,G,E,J,I,H){if(H==undefined){H=1.70158}if((G/=I/2)<1){return J/2*(G*G*(((H*=(1.525))+1)*G-H))+E}return J/2*((G-=2)*G*(((H*=(1.525))+1)*G+H)+2)+E},easeInBounce:function(F,G,E,I,H){return I-C.easing.easeOutBounce(F,H-G,0,I,H)+E},easeOutBounce:function(F,G,E,I,H){if((G/=H)<(1/2.75)){return I*(7.5625*G*G)+E}else{if(G<(2/2.75)){return I*(7.5625*(G-=(1.5/2.75))*G+0.75)+E}else{if(G<(2.5/2.75)){return I*(7.5625*(G-=(2.25/2.75))*G+0.9375)+E}else{return I*(7.5625*(G-=(2.625/2.75))*G+0.984375)+E}}}},easeInOutBounce:function(F,G,E,I,H){if(G<H/2){return C.easing.easeInBounce(F,G*2,0,I,H)*0.5+E}return C.easing.easeOutBounce(F,G*2-H,0,I,H)*0.5+I*0.5+E}})})(jQuery);/* + * jQuery UI Effects Blind 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Blind + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.blind=function(B){return this.queue(function(){var D=A(this),C=["position","top","left"];var H=A.effects.setMode(D,B.options.mode||"hide");var G=B.options.direction||"vertical";A.effects.save(D,C);D.show();var J=A.effects.createWrapper(D).css({overflow:"hidden"});var E=(G=="vertical")?"height":"width";var I=(G=="vertical")?J.height():J.width();if(H=="show"){J.css(E,0)}var F={};F[E]=H=="show"?I:0;J.animate(F,B.duration,B.options.easing,function(){if(H=="hide"){D.hide()}A.effects.restore(D,C);A.effects.removeWrapper(D);if(B.callback){B.callback.apply(D[0],arguments)}D.dequeue()})})}})(jQuery);/* + * jQuery UI Effects Bounce 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Bounce + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.bounce=function(B){return this.queue(function(){var E=A(this),K=["position","top","left"];var J=A.effects.setMode(E,B.options.mode||"effect");var M=B.options.direction||"up";var C=B.options.distance||20;var D=B.options.times||5;var G=B.duration||250;if(/show|hide/.test(J)){K.push("opacity")}A.effects.save(E,K);E.show();A.effects.createWrapper(E);var F=(M=="up"||M=="down")?"top":"left";var O=(M=="up"||M=="left")?"pos":"neg";var C=B.options.distance||(F=="top"?E.outerHeight({margin:true})/3:E.outerWidth({margin:true})/3);if(J=="show"){E.css("opacity",0).css(F,O=="pos"?-C:C)}if(J=="hide"){C=C/(D*2)}if(J!="hide"){D--}if(J=="show"){var H={opacity:1};H[F]=(O=="pos"?"+=":"-=")+C;E.animate(H,G/2,B.options.easing);C=C/2;D--}for(var I=0;I<D;I++){var N={},L={};N[F]=(O=="pos"?"-=":"+=")+C;L[F]=(O=="pos"?"+=":"-=")+C;E.animate(N,G/2,B.options.easing).animate(L,G/2,B.options.easing);C=(J=="hide")?C*2:C/2}if(J=="hide"){var H={opacity:0};H[F]=(O=="pos"?"-=":"+=")+C;E.animate(H,G/2,B.options.easing,function(){E.hide();A.effects.restore(E,K);A.effects.removeWrapper(E);if(B.callback){B.callback.apply(this,arguments)}})}else{var N={},L={};N[F]=(O=="pos"?"-=":"+=")+C;L[F]=(O=="pos"?"+=":"-=")+C;E.animate(N,G/2,B.options.easing).animate(L,G/2,B.options.easing,function(){A.effects.restore(E,K);A.effects.removeWrapper(E);if(B.callback){B.callback.apply(this,arguments)}})}E.queue("fx",function(){E.dequeue()});E.dequeue()})}})(jQuery);/* + * jQuery UI Effects Clip 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Clip + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.clip=function(B){return this.queue(function(){var F=A(this),J=["position","top","left","height","width"];var I=A.effects.setMode(F,B.options.mode||"hide");var K=B.options.direction||"vertical";A.effects.save(F,J);F.show();var C=A.effects.createWrapper(F).css({overflow:"hidden"});var E=F[0].tagName=="IMG"?C:F;var G={size:(K=="vertical")?"height":"width",position:(K=="vertical")?"top":"left"};var D=(K=="vertical")?E.height():E.width();if(I=="show"){E.css(G.size,0);E.css(G.position,D/2)}var H={};H[G.size]=I=="show"?D:0;H[G.position]=I=="show"?0:D/2;E.animate(H,{queue:false,duration:B.duration,easing:B.options.easing,complete:function(){if(I=="hide"){F.hide()}A.effects.restore(F,J);A.effects.removeWrapper(F);if(B.callback){B.callback.apply(F[0],arguments)}F.dequeue()}})})}})(jQuery);/* + * jQuery UI Effects Drop 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Drop + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.drop=function(B){return this.queue(function(){var E=A(this),D=["position","top","left","opacity"];var I=A.effects.setMode(E,B.options.mode||"hide");var H=B.options.direction||"left";A.effects.save(E,D);E.show();A.effects.createWrapper(E);var F=(H=="up"||H=="down")?"top":"left";var C=(H=="up"||H=="left")?"pos":"neg";var J=B.options.distance||(F=="top"?E.outerHeight({margin:true})/2:E.outerWidth({margin:true})/2);if(I=="show"){E.css("opacity",0).css(F,C=="pos"?-J:J)}var G={opacity:I=="show"?1:0};G[F]=(I=="show"?(C=="pos"?"+=":"-="):(C=="pos"?"-=":"+="))+J;E.animate(G,{queue:false,duration:B.duration,easing:B.options.easing,complete:function(){if(I=="hide"){E.hide()}A.effects.restore(E,D);A.effects.removeWrapper(E);if(B.callback){B.callback.apply(this,arguments)}E.dequeue()}})})}})(jQuery);/* + * jQuery UI Effects Explode 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Explode + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.explode=function(B){return this.queue(function(){var I=B.options.pieces?Math.round(Math.sqrt(B.options.pieces)):3;var E=B.options.pieces?Math.round(Math.sqrt(B.options.pieces)):3;B.options.mode=B.options.mode=="toggle"?(A(this).is(":visible")?"hide":"show"):B.options.mode;var H=A(this).show().css("visibility","hidden");var J=H.offset();J.top-=parseInt(H.css("marginTop"))||0;J.left-=parseInt(H.css("marginLeft"))||0;var G=H.outerWidth(true);var C=H.outerHeight(true);for(var F=0;F<I;F++){for(var D=0;D<E;D++){H.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-D*(G/E),top:-F*(C/I)}).parent().addClass("effects-explode").css({position:"absolute",overflow:"hidden",width:G/E,height:C/I,left:J.left+D*(G/E)+(B.options.mode=="show"?(D-Math.floor(E/2))*(G/E):0),top:J.top+F*(C/I)+(B.options.mode=="show"?(F-Math.floor(I/2))*(C/I):0),opacity:B.options.mode=="show"?0:1}).animate({left:J.left+D*(G/E)+(B.options.mode=="show"?0:(D-Math.floor(E/2))*(G/E)),top:J.top+F*(C/I)+(B.options.mode=="show"?0:(F-Math.floor(I/2))*(C/I)),opacity:B.options.mode=="show"?1:0},B.duration||500)}}setTimeout(function(){B.options.mode=="show"?H.css({visibility:"visible"}):H.css({visibility:"visible"}).hide();if(B.callback){B.callback.apply(H[0])}H.dequeue();A(".effects-explode").remove()},B.duration||500)})}})(jQuery);/* + * jQuery UI Effects Fold 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Fold + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.fold=function(B){return this.queue(function(){var E=A(this),J=["position","top","left"];var G=A.effects.setMode(E,B.options.mode||"hide");var N=B.options.size||15;var M=!(!B.options.horizFirst);A.effects.save(E,J);E.show();var D=A.effects.createWrapper(E).css({overflow:"hidden"});var H=((G=="show")!=M);var F=H?["width","height"]:["height","width"];var C=H?[D.width(),D.height()]:[D.height(),D.width()];var I=/([0-9]+)%/.exec(N);if(I){N=parseInt(I[1])/100*C[G=="hide"?0:1]}if(G=="show"){D.css(M?{height:0,width:N}:{height:N,width:0})}var L={},K={};L[F[0]]=G=="show"?C[0]:N;K[F[1]]=G=="show"?C[1]:0;D.animate(L,B.duration/2,B.options.easing).animate(K,B.duration/2,B.options.easing,function(){if(G=="hide"){E.hide()}A.effects.restore(E,J);A.effects.removeWrapper(E);if(B.callback){B.callback.apply(E[0],arguments)}E.dequeue()})})}})(jQuery);/* + * jQuery UI Effects Highlight 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Highlight + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.highlight=function(B){return this.queue(function(){var E=A(this),D=["backgroundImage","backgroundColor","opacity"];var H=A.effects.setMode(E,B.options.mode||"show");var C=B.options.color||"#ffff99";var G=E.css("backgroundColor");A.effects.save(E,D);E.show();E.css({backgroundImage:"none",backgroundColor:C});var F={backgroundColor:G};if(H=="hide"){F["opacity"]=0}E.animate(F,{queue:false,duration:B.duration,easing:B.options.easing,complete:function(){if(H=="hide"){E.hide()}A.effects.restore(E,D);if(H=="show"&&A.browser.msie){this.style.removeAttribute("filter")}if(B.callback){B.callback.apply(this,arguments)}E.dequeue()}})})}})(jQuery);/* + * jQuery UI Effects Pulsate 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Pulsate + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.pulsate=function(B){return this.queue(function(){var D=A(this);var F=A.effects.setMode(D,B.options.mode||"show");var E=B.options.times||5;if(F=="hide"){E--}if(D.is(":hidden")){D.css("opacity",0);D.show();D.animate({opacity:1},B.duration/2,B.options.easing);E=E-2}for(var C=0;C<E;C++){D.animate({opacity:0},B.duration/2,B.options.easing).animate({opacity:1},B.duration/2,B.options.easing)}if(F=="hide"){D.animate({opacity:0},B.duration/2,B.options.easing,function(){D.hide();if(B.callback){B.callback.apply(this,arguments)}})}else{D.animate({opacity:0},B.duration/2,B.options.easing).animate({opacity:1},B.duration/2,B.options.easing,function(){if(B.callback){B.callback.apply(this,arguments)}})}D.queue("fx",function(){D.dequeue()});D.dequeue()})}})(jQuery);/* + * jQuery UI Effects Scale 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Scale + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.puff=function(B){return this.queue(function(){var F=A(this);var C=A.extend(true,{},B.options);var H=A.effects.setMode(F,B.options.mode||"hide");var G=parseInt(B.options.percent)||150;C.fade=true;var E={height:F.height(),width:F.width()};var D=G/100;F.from=(H=="hide")?E:{height:E.height*D,width:E.width*D};C.from=F.from;C.percent=(H=="hide")?G:100;C.mode=H;F.effect("scale",C,B.duration,B.callback);F.dequeue()})};A.effects.scale=function(B){return this.queue(function(){var G=A(this);var D=A.extend(true,{},B.options);var J=A.effects.setMode(G,B.options.mode||"effect");var H=parseInt(B.options.percent)||(parseInt(B.options.percent)==0?0:(J=="hide"?0:100));var I=B.options.direction||"both";var C=B.options.origin;if(J!="effect"){D.origin=C||["middle","center"];D.restore=true}var F={height:G.height(),width:G.width()};G.from=B.options.from||(J=="show"?{height:0,width:0}:F);var E={y:I!="horizontal"?(H/100):1,x:I!="vertical"?(H/100):1};G.to={height:F.height*E.y,width:F.width*E.x};if(B.options.fade){if(J=="show"){G.from.opacity=0;G.to.opacity=1}if(J=="hide"){G.from.opacity=1;G.to.opacity=0}}D.from=G.from;D.to=G.to;D.mode=J;G.effect("size",D,B.duration,B.callback);G.dequeue()})};A.effects.size=function(B){return this.queue(function(){var C=A(this),N=["position","top","left","width","height","overflow","opacity"];var M=["position","top","left","overflow","opacity"];var J=["width","height","overflow"];var P=["fontSize"];var K=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"];var F=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"];var G=A.effects.setMode(C,B.options.mode||"effect");var I=B.options.restore||false;var E=B.options.scale||"both";var O=B.options.origin;var D={height:C.height(),width:C.width()};C.from=B.options.from||D;C.to=B.options.to||D;if(O){var H=A.effects.getBaseline(O,D);C.from.top=(D.height-C.from.height)*H.y;C.from.left=(D.width-C.from.width)*H.x;C.to.top=(D.height-C.to.height)*H.y;C.to.left=(D.width-C.to.width)*H.x}var L={from:{y:C.from.height/D.height,x:C.from.width/D.width},to:{y:C.to.height/D.height,x:C.to.width/D.width}};if(E=="box"||E=="both"){if(L.from.y!=L.to.y){N=N.concat(K);C.from=A.effects.setTransition(C,K,L.from.y,C.from);C.to=A.effects.setTransition(C,K,L.to.y,C.to)}if(L.from.x!=L.to.x){N=N.concat(F);C.from=A.effects.setTransition(C,F,L.from.x,C.from);C.to=A.effects.setTransition(C,F,L.to.x,C.to)}}if(E=="content"||E=="both"){if(L.from.y!=L.to.y){N=N.concat(P);C.from=A.effects.setTransition(C,P,L.from.y,C.from);C.to=A.effects.setTransition(C,P,L.to.y,C.to)}}A.effects.save(C,I?N:M);C.show();A.effects.createWrapper(C);C.css("overflow","hidden").css(C.from);if(E=="content"||E=="both"){K=K.concat(["marginTop","marginBottom"]).concat(P);F=F.concat(["marginLeft","marginRight"]);J=N.concat(K).concat(F);C.find("*[width]").each(function(){child=A(this);if(I){A.effects.save(child,J)}var Q={height:child.height(),width:child.width()};child.from={height:Q.height*L.from.y,width:Q.width*L.from.x};child.to={height:Q.height*L.to.y,width:Q.width*L.to.x};if(L.from.y!=L.to.y){child.from=A.effects.setTransition(child,K,L.from.y,child.from);child.to=A.effects.setTransition(child,K,L.to.y,child.to)}if(L.from.x!=L.to.x){child.from=A.effects.setTransition(child,F,L.from.x,child.from);child.to=A.effects.setTransition(child,F,L.to.x,child.to)}child.css(child.from);child.animate(child.to,B.duration,B.options.easing,function(){if(I){A.effects.restore(child,J)}})})}C.animate(C.to,{queue:false,duration:B.duration,easing:B.options.easing,complete:function(){if(G=="hide"){C.hide()}A.effects.restore(C,I?N:M);A.effects.removeWrapper(C);if(B.callback){B.callback.apply(this,arguments)}C.dequeue()}})})}})(jQuery);/* + * jQuery UI Effects Shake 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Shake + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.shake=function(B){return this.queue(function(){var E=A(this),K=["position","top","left"];var J=A.effects.setMode(E,B.options.mode||"effect");var M=B.options.direction||"left";var C=B.options.distance||20;var D=B.options.times||3;var G=B.duration||B.options.duration||140;A.effects.save(E,K);E.show();A.effects.createWrapper(E);var F=(M=="up"||M=="down")?"top":"left";var O=(M=="up"||M=="left")?"pos":"neg";var H={},N={},L={};H[F]=(O=="pos"?"-=":"+=")+C;N[F]=(O=="pos"?"+=":"-=")+C*2;L[F]=(O=="pos"?"-=":"+=")+C*2;E.animate(H,G,B.options.easing);for(var I=1;I<D;I++){E.animate(N,G,B.options.easing).animate(L,G,B.options.easing)}E.animate(N,G,B.options.easing).animate(H,G/2,B.options.easing,function(){A.effects.restore(E,K);A.effects.removeWrapper(E);if(B.callback){B.callback.apply(this,arguments)}});E.queue("fx",function(){E.dequeue()});E.dequeue()})}})(jQuery);/* + * jQuery UI Effects Slide 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Slide + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.slide=function(B){return this.queue(function(){var E=A(this),D=["position","top","left"];var I=A.effects.setMode(E,B.options.mode||"show");var H=B.options.direction||"left";A.effects.save(E,D);E.show();A.effects.createWrapper(E).css({overflow:"hidden"});var F=(H=="up"||H=="down")?"top":"left";var C=(H=="up"||H=="left")?"pos":"neg";var J=B.options.distance||(F=="top"?E.outerHeight({margin:true}):E.outerWidth({margin:true}));if(I=="show"){E.css(F,C=="pos"?-J:J)}var G={};G[F]=(I=="show"?(C=="pos"?"+=":"-="):(C=="pos"?"-=":"+="))+J;E.animate(G,{queue:false,duration:B.duration,easing:B.options.easing,complete:function(){if(I=="hide"){E.hide()}A.effects.restore(E,D);A.effects.removeWrapper(E);if(B.callback){B.callback.apply(this,arguments)}E.dequeue()}})})}})(jQuery);/* + * jQuery UI Effects Transfer 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Transfer + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.transfer=function(B){return this.queue(function(){var E=A(this);var G=A.effects.setMode(E,B.options.mode||"effect");var F=A(B.options.to);var C=E.offset();var D=A('<div class="ui-effects-transfer"></div>').appendTo(document.body);if(B.options.className){D.addClass(B.options.className)}D.addClass(B.options.className);D.css({top:C.top,left:C.left,height:E.outerHeight()-parseInt(D.css("borderTopWidth"))-parseInt(D.css("borderBottomWidth")),width:E.outerWidth()-parseInt(D.css("borderLeftWidth"))-parseInt(D.css("borderRightWidth")),position:"absolute"});C=F.offset();animation={top:C.top,left:C.left,height:F.outerHeight()-parseInt(D.css("borderTopWidth"))-parseInt(D.css("borderBottomWidth")),width:F.outerWidth()-parseInt(D.css("borderLeftWidth"))-parseInt(D.css("borderRightWidth"))};D.animate(animation,B.duration,B.options.easing,function(){D.remove();if(B.callback){B.callback.apply(E[0],arguments)}E.dequeue()})})}})(jQuery); \ No newline at end of file diff --git a/modules/tntcarrier/js/jquery.js b/modules/tntcarrier/js/jquery.js new file mode 100644 index 000000000..72f32c906 --- /dev/null +++ b/modules/tntcarrier/js/jquery.js @@ -0,0 +1,32 @@ +/* + * jQuery 1.2.6 - New Wave Javascript + * + * Copyright (c) 2008 John Resig (jquery.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $ + * $Rev: 5685 $ + */ +(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else +return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else +return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else +selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else +return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else +this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else +return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else +jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&©&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else +script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else +for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else +for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else +jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else +ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&¬xml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&¬xml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else +while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else +while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else +for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else +jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else +xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else +jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else +for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else +s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else +e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})(); \ No newline at end of file diff --git a/modules/tntcarrier/js/relaisColis.js b/modules/tntcarrier/js/relaisColis.js new file mode 100644 index 000000000..138b7b219 --- /dev/null +++ b/modules/tntcarrier/js/relaisColis.js @@ -0,0 +1,979 @@ +/** Javascript B2C Relais Colis - version 2.0 - 08/07/2010 **/ + +var pathToImages = "../modules/tntcarrier/img/"; +var tntDomain = "www.tnt.fr"; + +var tntRCcodePostal; +var tntRCCommune; +var tntRClisteRelais; +var tntRCJsonCommunes; + +var tntRCMsgHeaderTitle = "Mode de livraison"; +//var tntRCMsgSubHeaderTitle = "Choisissez le Relais Colis<sup class='tntRCSup'>®</sup> qui vous convient :"; +var tntRCMsgSubHeaderTitle = "Choisissez l'agence depot qui vous convient :"; +var tntRCMsgHeaderPopup = "Détail du Relais Colis<sup class='tntRCSup'>®</sup>"; +var tntRCMsgSubHeaderPopup = "Descriptif :"; +var tntRCMsgBodyLoading = "Chargement en cours..."; +var tntRCMsgBodyInput = "Département : "; +var tntRCMsgBodyBack2Communes = "Revenir à la liste des communes"; +var tntRCMsgErrCodePostal = "Veuillez saisir un code postal sur 5 chiffres"; +var tntRCMsgErrLoadCommunes = "Aucun Relais Colis® disponible"; +var tntRCMsgErrLoadRelais = "Aucun Relais Colis® disponible"; + +var tntRCsize800 = "500px"; +var tntRCsize789 = "500px"; +var tntRCsize670 = "400px"; +var tntRCsize650 = "400px"; +var tntRCsize50 = "50px"; +var tntRCsize8 = "8px"; +var tntRCsize5 = "5px"; +var tntRCsize6 = "6px"; +var tntRCsize10 = "10px"; +var tntRCsize30 = "30px"; +var tntRCsize109 = "109px"; +var tntRCsize442 = "240px"; +var tntRCsize447 = "240px"; +var tntRCsize218 = "178px"; +var tntRCsize253 = "213px"; +var tntRCsize20 = "20px"; +var tntRCsize392 = "352px"; +var tntRCsize412 = "332px"; + +function getURLParam(name) { + name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); + var regexS = "[\\?&]" + name + "=([^&#]*)"; + var regex = new RegExp( regexS ); + var results = regex.exec( window.location.href ); + if( results == null ) return ""; + else return results[1]; +}; + +// Chargement de la liste de relais colis après le choix de la commune parmis plusieurs +// communes correspondant au même code postal +function tntRCgetRelaisColisJSON(commune) +{ + if (!commune) { + // La commune du code postal correspond à la sélection du radio bouton tntRCchoixComm + tntRCCommune = $("input[@type=radio][@checked][@name=tntRCchoixComm]").val(); + } + else { + // Utilisation de la valeur fournie en paramètre + tntRCCommune = commune + } + + // Affichage message "chargement en cours" + tntRCsetChargementEnCours(); + + var ajaxUrl; + var ajaxData; + + ajaxUrl = "http://" + tntDomain + "/public/b2c/relaisColis/loadJson.do?cp=" + tntRCcodePostal + "&commune=" + tntRCCommune; + ajaxData = ""; + + // Chargement de la liste de relais colis + $.ajax({ + type: "GET", + url: ajaxUrl, + data: ajaxData, + dataType: "script" + }); +}; + +// Affichage d'une liste de relais colis +function tntRCafficheRelais(jData) { + + var jMessage = $('#blocCodePostal'); + + var tntRCjTable = $("<table style='border:1px solid gray;' cellpadding='0' cellspacing='0' width='" + tntRCsize800 + "'></table>"); + + // Ligne blanche de séparation + tntRCjTable.append(tntRCligneBlanche6Col()); + + // Entêtes de colonnes grise + tntRCjTable.append(tntRCenteteGrise6Col()); + + //affiche le contenu du fichier dans le conteneur dédié + jMessage.html(""); + + var i = 0; + + tntRClisteRelais = jData; + for(i = 0; i < jData.length; i++) { + + var oRelais = jData[i]; + + // Les noeuds dans le fichier XML ne sont pas forcément ordonnés pour l'affichage, on va donc d'abord récupérer leur valeur + var codeRelais = oRelais[0]; + var nomRelais = oRelais[1]; + var adresse = oRelais[4]; + var codePostal = oRelais[2]; + var commune = oRelais[3]; + var heureFermeture = oRelais[21]; + + var messages=""; + + var logo_point = ""; + if (messages != "") logo_point = "<img src='" + pathToImages + "exception.gif' alt='Informations complémentaires' width='16px' height='16px'>"; + + tntRCjTable.append( + "<tr>"+ + "<td class='tntRCblanc' width='" + tntRCsize5 + "'></td>"+ + "<td class='tntRCblanc' width='" + tntRCsize50 + "'><img src='" + pathToImages + "logo-tnt-petit.jpg'> " + logo_point + "</td>"+ + "<td class='tntRCrelaisColis' width='" + tntRCsize650 + "'>" + nomRelais + " - " + adresse + " - " + codePostal + " - " + commune + "<BR>    >> Ouvert jusqu'à " + heureFermeture + "</td>"+ + "<td class='tntRCrelaisColis' width='" + tntRCsize10 + "'> </td>"+ + "<td class='tntRCrelaisColis' valign='middle' align='center' width='" + tntRCsize109 + "'>"+ + "<a href='#' onclick='tntRCafficheDetail(" + i + ");'><img src='" + pathToImages + "loupe.gif' class='tntRCBoutonLoupe'></a>        "+ + "<input type='radio' style='vertical-align: middle;' name='tntRCchoixRelais' value='" + codeRelais + "'" + ( i==0 ? "checked" : "") + " onclick='tntRCSetSelectedInfo(" + i + ")'/>"+ + "</td>"+ + "<td class='tntRCblanc' width='" + tntRCsize6 + "'></td>"+ + "</tr><tr id='tntRcDetail"+i+"' style='display:none'></tr>"); + } + + // Mémorisation des infos du relais sélectionné par défaut (c'est le premier) + tntRCSetSelectedInfo(0, true); + + // Ajout du lien de retour sur la liste des communes si cette dernière a été mémorisée + if (tntRCJsonCommunes != null) { + tntRCjTable.append( + "<tr>"+ + "<td colspan='5' class='tntRCBack2Communes'>"+ + "<a href='#' onclick='tntRCafficheCommunes(tntRCJsonCommunes);'>"+ + "<img src='" + pathToImages + "bt-Retour.gif'>"+ + tntRCMsgBodyBack2Communes + + "</a>"+ + "</td>"+ + "<td />"+ + "</tr>"); + } + + tntRCjTable.append(tntRCligneBlanche6Col()); + jMessage.append(tntRCjTable); + + jMessage.append(tntRCchangerCodePostal()); +}; + +function tntB2CRelaisColisGetBodyMain() { + return ( + "<div class='tntRCGray'> </div>"+ + "<div id='tntBodyContentSC'>" + + "<table>"+ + "<tr>"+ + "<td>" + tntRCMsgBodyInput + "</td>"+ + "<td><input type='text' id='tntRCInputCP' class='tntRCInput' maxlength='5' size='5' value=''/></td>"+ + "<td><a href='#' onclick='tntRCgetDepot();'><img class='tntRCButton' src='" + pathToImages + "bt-OK-2.jpg' onmouseover='this.src=\"" + pathToImages + "bt-OK-1.jpg\"' onmouseout='this.src=\"" + pathToImages + "bt-OK-2.jpg\"'></a></td>" + + "</tr>"+ + "</table>" + + "</div>"+ + "<div id='tntRCLoading' style='display:none;'>" + tntRCMsgBodyLoading + "</div>"+ + "<div id='tntRCError' class='tntRCError' style='display:none;'></div>"); +} + +function tntB2CRelaisColis() { + + // Test si ID de référence existe, sinon on ne fait rien + if (!document.getElementById("tntB2CRelaisColis")) { + alert("ERREUR: Appel incorrect, objet [tntB2CRelaisColis] manquant !"); + return; + } + + tntRCCommune = ''; + + var tntRelaisColisB2C = $("#tntB2CRelaisColis"); + tntRelaisColisB2C.html( + "<div id='tntRCblocEntete'>"+ + "<div class='tntRCHeader'>"+ tntRCMsgHeaderTitle + "</div>"+ + "<div class='tntRCSubHeader'>" + tntRCMsgSubHeaderTitle + "</div>"+ + "</div>"+ + "<div id='blocCodePostal' class='tntRCBody'>"+ + tntB2CRelaisColisGetBodyMain() + + "</div>" + + "<div class='dialog_box' id='tntRCDialog'>"+ + "<div id='tntRCdetailRelaisEntete'>"+ + "<div class='tntRCHeader'>"+ tntRCMsgHeaderPopup + "</div>"+ + "<div class='tntRCSubHeader'>" + tntRCMsgSubHeaderPopup + "</div>"+ + "</div>"+ + "<div id='tntRCdetailRelaisCorps'></div>"+ + "</div>"); + + // Forçage de la propriété "top", car elle est écrasée par la gestion de jqModal + // si on la met dans la définition de la classe du div correspondant... + $('#tntRCDialog').css("top", "50%"); + + // Ajout de la popup dans la gestion jqModal + + $('#tntRCDialog').dialog({ + modal: true, + autoOpen: false, + width: 635, + height: 500, + position: ['middle','middle'], + resizable: false, + draggable: false, + show: 'blind', + close: function(event, ui) { + $("html").css({overflow: "", 'overflow-x': "", 'overflow-y': ""}); + } + }); + + // Récupérations des paramètres de l'URL + var codePostal = getURLParam("codePostal"); + var commune = getURLParam("commune"); + + if (codePostal != "") { + tntRCcodePostal = codePostal; + if (commune != "") { + // Couple code postal + commune fourni + tntRCgetRelaisColisJSON(commune); + } + else { + $('#tntRCInputCP').val(tntRCcodePostal); + tntRCgetCommunesJSON(); + } + } + + // Initialisation de Map associée + tntRCInitMap(); +}; + +function tntRCgetRelaisColis(libelleErreur) { + + // RAZ des infos sélectionnées + tntRCSetSelectedInfo(); + + tntRCCommune = ''; + + var blocCodePostal = $("#blocCodePostal"); + if(!blocCodePostal.hasClass("tntRCBody")) + blocCodePostal.addClass("tntRCBody"); + blocCodePostal.html(tntB2CRelaisColisGetBodyMain()); + $('#tntRCInputCP').val(tntRCcodePostal); + + if (libelleErreur) { + var jDivErreur = $("#tntRCError"); + jDivErreur.html(libelleErreur); + jDivErreur.show(); + } +}; + +function tntRCafficheCommunes(jData) { + + // RAZ des infos sélectionnées + tntRCSetSelectedInfo(); + + if (mapDetected) resetMap(); + + var tntRCjTable = $("<table style='border:1px solid gray;' cellpadding='0' cellspacing='0' width='" + tntRCsize800 + "'></table>"); + + // Ligne blanche de séparation + tntRCjTable.append(tntRCligneBlanche6Col()); + // Entêtes de colonnes grise + tntRCjTable.append(tntRCenteteGrise6Col()); + + var blocCodePostal = $("#blocCodePostal"); + + var i = 1; + //var jCommunes = jData.find("VILLE"); + for (var iIdx = 0; iIdx < jData.length; iIdx++) { + + var commune = jData[iIdx]; + + //var jCommune = $(this); + var nomVille = commune[1]; // IE vs FF + + tntRCjTable.append( + "<tr>"+ + "<td class='tntRCblanc' width='" + tntRCsize5 + "'></td>"+ + "<td class='tntRCblanc' width='" + tntRCsize50 + "'><img src='" + pathToImages + "logo-tnt-petit.jpg'></td>" + + "<td class='tntRCrelaisColis' width='" + tntRCsize650 + "'> " + nomVille + " (" + tntRCcodePostal + ") </td>" + + "<td class='tntRCrelaisColis' width='" + tntRCsize10 + "'> </td>"+ + "<td class='tntRCrelaisColis' align='center' width='" + tntRCsize109 + "'>"+ + "<input type='radio' name='tntRCchoixComm' value='" + nomVille + "' " + ( i ==1 ? "checked" : "") + ">"+ + "</td>"+ + "<td class='tntRCblanc' width='" + tntRCsize6 + "'></td>"+ + "</tr>"); + i = 2; + } + + tntRCjTable.append( + tntRCligneBlanche6Col() + + "<tr>"+ + "<td class='tntRCblanc' width='" + tntRCsize5 + "'></td>"+ + "<td class='tntRCblanc' colspan='2' width='" + tntRCsize670 + "'></td>"+ + "<td class='tntRCblanc' width='" + tntRCsize10 + "'></td>"+ + "<td class='tntRCblanc' align='center' width='" + tntRCsize109 + "'>"+ + "<a href='javascript:tntRCgetRelaisColisJSON();'><img class='tntRCButton' src='" + pathToImages + "bt-Continuer-2.jpg' onmouseover='this.src=\"" + pathToImages + "bt-Continuer-1.jpg\"' onmouseout='this.src=\"" + pathToImages + "bt-Continuer-2.jpg\"'></a>" + + "</td>"+ + "<td class='tntRCblanc' width='" + tntRCsize6 + "'></td>"+ + "</tr>" + + tntRCligneBlanche6Col()); + + blocCodePostal.html(tntRCjTable); + + // Bloc de saisie d'un nouveau code postal + blocCodePostal.append(tntRCchangerCodePostal()); +} + +function tntRCgetCommunesJSON() { + + $("#tntRCError").hide(); + tntRCcodePostal = $('#tntRCInputCP').val(); + + // Code postal non renseigné, on ne fait rien + if (tntRCcodePostal=="") return; + + if (mapDetected) resetMap(); + + // On ne fait rien si le code postal n'est pas un nombre de 5 chiffres + if (isNaN(parseInt(tntRCcodePostal)) || tntRCcodePostal.length != 5) { + tntRCgetRelaisColis(tntRCMsgErrCodePostal); + return; + } + + tntRCsetChargementEnCours(); + + var ajaxUrl; + var ajaxData; + + ajaxUrl = "http://" + tntDomain + "/public/b2c/relaisColis/rechercheJson.do?code=" + tntRCcodePostal; + ajaxData = ""; + + $.ajax({ + type: "GET", + url: ajaxUrl, + data: ajaxData, + dataType: "script", + error:function(msg){ + $("#blocCodePostal").html("Error !: " + msg ); + } + }); +}; + +function tntRCsetChargementEnCours() { + $("#tntRCLoading").show(); +}; + +function tntRCafficheDetail(i) { + + var tntRCdetailRelais = $("#tntRcDetail"+i); + + tntRCdetailRelais.html(""); + + var oRelais = tntRClisteRelais[i]; + + // Les noeuds dans le fichier JSON ne sont pas forcément ordonnés pour l'affichage, on va donc d'abord récupérer leur valeur + var codeRelais = oRelais[0] + var nomRelais = oRelais[1]; + var adresse = oRelais[4]; + var codePostal = oRelais[2]; + var commune = oRelais[3]; + var heureFermeture = oRelais[21]; + + var lundi_am = (oRelais[7] == "-")?"fermé":oRelais[7]; + var lundi_pm = (oRelais[8] == "-")?"fermé":oRelais[8]; + var mardi_am = (oRelais[9] == "-")?"fermé":oRelais[9]; + var mardi_pm = (oRelais[10] == "-")?"fermé":oRelais[10]; + var mercredi_am = (oRelais[11] == "-")?"fermé":oRelais[11]; + var mercredi_pm = (oRelais[12] == "-")?"fermé":oRelais[12]; + var jeudi_am = (oRelais[13] == "-")?"fermé":oRelais[13]; + var jeudi_pm = (oRelais[14] == "-")?"fermé":oRelais[14]; + var vendredi_am = (oRelais[15] == "-")?"fermé":oRelais[15]; + var vendredi_pm = (oRelais[16] == "-")?"fermé":oRelais[16]; + var samedi_am = (oRelais[17] == "-")?"fermé":oRelais[17]; + var samedi_pm = (oRelais[18] == "-")?"fermé":oRelais[18]; + var dimanche_am = (oRelais[19] == "-")?"fermé":oRelais[19]; + var dimanche_pm = (oRelais[20] == "-")?"fermé":oRelais[20]; + + var messages = ""; + for (j=0; j < oRelais[24].length; j++) { + var ligne = oRelais[24][j]; + if (ligne != "") messages = messages + ligne + "<br/>"; + } + + if (lundi_pm != "-") lundi_am = lundi_am + "<br/>" + lundi_pm; + if (mardi_pm != "-") mardi_am = mardi_am + "<br/>" + mardi_pm; + if (mercredi_pm != "-") mercredi_am = mercredi_am + "<br/>" + mercredi_pm; + if (jeudi_pm != "-") jeudi_am = jeudi_am + "<br/>" + jeudi_pm; + if (vendredi_pm != "-") vendredi_am = vendredi_am + "<br/>" + vendredi_pm; + if (samedi_pm != "-") samedi_am = samedi_am + "<br/>" + samedi_pm; + if (dimanche_pm != "-") dimanche_am = dimanche_am + "<br/>" + dimanche_pm; + + var logo_point = ""; + if (messages != "") logo_point = "<img src='" + pathToImages + "exception.gif' alt='Picto Informations'>"; + + var tntRCjTableX = $( + "<td class='detailRelais' colspan='6'><div class='ui-dialog-titlebar' style='text-align:right'>" + + "<span class='ui-dialog-title' onclick='document.getElementById(\"tntRcDetail"+i+"\").style.display=\"none\"'>X</span>" + + "</div>" + + "<input type='button' value='Choisir ce relais' onclick='callbackSelectionRelais();' />" + +"<table style='border:1px solid gray;margin:20px;' cellpadding='0' cellspacing='0' width='" + tntRCsize447 + "'>" + + "<tr>" + + "<td width='" + tntRCsize447 + "' valign='top'>" + + "<table style='border:0px;' cellpadding='0' cellspacing='0' width='" + tntRCsize447 + "'>" + + "<tr>" + + "<td>" + + "<table style='border:0px;' cellpadding='0' cellspacing='0' >" + + "<tr height='" + tntRCsize8 + "'><td colspan='4'></td></tr>" + + "<tr>" + + "<td class='tntRCdetailGros' width='" + tntRCsize5 + "'> </td>" + + "<td class='tntRCdetailGros' width='" + tntRCsize442 + "' colspan='3'>Localisation : </td>" + + "</tr>" + + "<tr height='" + tntRCsize20 + "'><td colspan='4'></td></tr>" + + "<tr>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize5 + "'> </td>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize30 + "'> </td>" + + "<td class='tntRCnoirPetit' colspan ='2'><b>" + nomRelais + "</b></td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize5 + "'> </td>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize30 + "'> </td>" + + "<td class='tntRCnoirPetit' colspan ='2'>" + adresse + "</td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize5 + "'> </td>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize30 + "'> </td>" + + "<td class='tntRCnoirPetit' colspan ='2'>" + codePostal + " " + commune + "</td>" + + "</tr>" + + "<tr height='" + tntRCsize50 + "'><td colspan='4'></td></tr>" + + "<tr>" + + "<td class='tntRCdetailGros' width='" + tntRCsize5 + "'> </td>" + + "<td class='tntRCdetailGros' width='" + tntRCsize442 + "' colspan='3'>Informations : </td>" + + "</tr>" + + "<tr height='" + tntRCsize8 + "'><td colspan='4'></td></tr>" + + "<tr>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize5 + "'></td>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize30 + "'> " + logo_point + "</td>" + + "<td class='tntRCdetailPetit' colspan ='2'>" + messages + "</td>" + + "</tr>" + + "</table>" + + "</td>" + + "</tr>" + + "</table>" + + "</td>" + + "<td width='" + tntRCsize253 + "' valign='top'>" + + "<table style='border:0px;' cellpadding='0' cellspacing='0' width='" + tntRCsize253 + "'>" + + "<tr>" + + "<td>" + + "<table style='border:0px;' cellpadding='0' cellspacing='0'>" + + "<tr height='" + tntRCsize8 + "'>" + + "<td colspan='4'></td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCdetailGros'><img src='" + pathToImages + "picto-delai.gif' alt='Picto delai'></td>" + + "<td class='tntRCdetailGros' colspan='3'>Horaires d'ouverture : </td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize30 + "'></td>" + + "<td>" + + "<table class='tntRCHoraire' cellpadding='0' cellspacing='0' rules='all' width='" + tntRCsize218 + "'>" + + "<tr>" + + "<td class='tntRCHoraireJour'>Lundi</td>" + + "<td class='tntRCHoraireHeure'>" + lundi_am + "</td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCHoraireJour'>Mardi</td>" + + "<td class='tntRCHoraireHeure'>" + mardi_am + "</td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCHoraireJour'>Mercredi</td>" + + "<td class='tntRCHoraireHeure'>" + mercredi_am + "</td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCHoraireJour'>Jeudi</td>" + + "<td class='tntRCHoraireHeure'>" + jeudi_am + "</td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCHoraireJour'>Vendredi</td>" + + "<td class='tntRCHoraireHeure'>" + vendredi_am + "</td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCHoraireJour'>Samedi</td>" + + "<td class='tntRCHoraireHeure'>" + samedi_am + "</td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCHoraireJour'>Dimanche</td>" + + "<td class='tntRCHoraireHeure'>" + dimanche_am + "</td>" + + "</tr>" + + "</table>" + + "</td>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize5 + "'></td>" + + "</tr>" + + "</table>" + + "</td>" + + "</tr>" + + "</table>" + + "</td>" + + "</tr>" + + "<tr height='" + tntRCsize8 + "'></tr>" + + "</table></td>"); + + tntRCdetailRelais.append(tntRCjTableX); + tntRCdetailRelais.show(); + //$('#tntRCDialog').dialog("open"); + //$('#tntRCDialog').css("width", "600px"); // Patch mauvais calcul jQueryUI + // Masquage des barres de scrolling + //$("html").css({overflow: "hidden", 'overflow-x': "hidden", 'overflow-y': "hidden"}); +}; + +function tntRCligneBlancheDetail(){ + return("<tr height='" + tntRCsize5 + "'><td colspan='8'> </td></tr>"); +}; + +function tntRCligneBlancheGauche(){ + return( + "<tr height='" + tntRCsize8 + "'>"+ + "<td class='tntRCdetailGros' width='" + tntRCsize5 + "'></td>"+ + "<td class='tntRCdetailGros' width='" + tntRCsize30 + "'></td>"+ + "<td class='tntRCdetailGros' width='" + tntRCsize20 + "'></td>"+ + "<td class='tntRCdetailGros' width='" + tntRCsize392 + "'></td>"+ + "</tr>"); +}; + +// Table vide avec 3 colonnes pour sauter une ligne +function tntRCligneBlanche3Col() { + return("<tr height='" + tntRCsize8 + "'><td class='tntRCblanc' width='" + tntRCsize5 + "'></td><td class='tntRCblanc' width='" + tntRCsize789 + "'></td><td class='tntRCblanc' width='" + tntRCsize6 + "'></td></tr>"); +}; + +// Table vide avec 6 colonnes pour sauter une ligne +function tntRCligneBlanche6Col() { + return("<tr height='" + tntRCsize8 + "'><td class='tntRCblanc' colspan='6'></td></td></tr>"); +}; + +// Table vide avec 3 colonnes et entête en gris +function tntRCligneGrise3Col() { + return("<tr><td class='tntRCblanc' width='" + tntRCsize5 + "'></td><td class='tntRCgris' width='" + tntRCsize789 + "'><br/></td><td class='tntRCblanc' width='" + tntRCsize6 + "'></td></tr>"); +}; + +// Table entête de colonnes grises +function tntRCenteteGrise6Col() { + return("<tr><td class='tntRCblanc' width='" + tntRCsize5 + "'></td><td class='tntRCgris' colspan='2' width='" + tntRCsize670 + "'> Les différents Relais Colis®</td><td class='tntRCblanc' width='" + tntRCsize10 + "'></td><td class='tntRCgris' width='" + tntRCsize109 + "'> Mon choix</td><td class='tntRCblanc' width='" + tntRCsize6 + "'></td></tr>"); +}; + +// Zone de saisie d'un code postal nouveau +function tntRCchangerCodePostal(){ + return( + "<div class='tntRCWhite'> </div>"+ + "<div class='tntRCBodySearch'>"+ + "<table>"+ + "<tr>"+ + "<td width='300px'>Vous pouvez choisir un autre code postal de livraison :</td>"+ + "<td width='55px'><input type='text' id='tntRCInputCP' class='tntRCInput' maxlength='5' size='5' value='' /></td>"+ + "<td><a href='#' onclick='tntRCgetDepot();'><img class='tntRCButton' src='" + pathToImages + "bt-OK-2.jpg' onmouseover='this.src=\"" + pathToImages + "bt-OK-1.jpg\"' onmouseout='this.src=\"" + pathToImages + "bt-OK-2.jpg\"'></a></td>" + + "</tr>"+ + "</table>"+ + "</div>"); +}; + +function tntRCSetSelectedInfo(selectedIdx, noMarkerInfo) { + + if (!selectedIdx && selectedIdx != 0) { + // RAZ des infos sélectionnées + $("#tntRCSelectedCode").val(""); + $("#tntRCSelectedNom").val(""); + $("#tntRCSelectedAdresse").val(""); + $("#tntRCSelectedCodePostal").val(""); + $("#tntRCSelectedCommune").val(""); + return + } + + var oRelais = tntRClisteRelais[selectedIdx]; + + $("#tntRCSelectedCode").val(oRelais[0]); + $("#tntRCSelectedNom").val(oRelais[1]); + $("#tntRCSelectedAdresse").val(oRelais[4]); + $("#tntRCSelectedCodePostal").val(oRelais[2]); + $("#tntRCSelectedCommune").val(oRelais[3]); + + if (mapDetected && !noMarkerInfo) { + + // Les noeuds dans le fichier XML ne sont pas forcément ordonnés pour l'affichage, on va donc d'abord récupérer leur valeur + var codeRelais = oRelais[0] + var nomRelais = oRelais[1]; + var adresse = oRelais[4]; + var codePostal = oRelais[2]; + var commune = oRelais[3]; + var heureFermeture = oRelais[21]; + + var messages = ""; + var lundi_am = (oRelais[7] == "-")?",":oRelais[7]+","; + var lundi_pm = oRelais[8]; + var mardi_am = (oRelais[9] == "-")?",":oRelais[9]+","; + var mardi_pm = oRelais[10]; + var mercredi_am = (oRelais[11] == "-")?",":oRelais[11]+","; + var mercredi_pm = oRelais[12]; + var jeudi_am = (oRelais[13] == "-")?",":oRelais[13]+","; + var jeudi_pm = oRelais[14]; + var vendredi_am = (oRelais[15] == "-")?",":oRelais[15]+","; + var vendredi_pm = oRelais[16]; + var samedi_am = (oRelais[17] == "-")?",":oRelais[17]+","; + var samedi_pm = oRelais[18]; + var dimanche_am = (oRelais[19] == "-")?",":oRelais[19]+","; + var dimanche_pm = oRelais[20]; + + if (lundi_pm != "-") lundi_am = lundi_am + lundi_pm; + if (mardi_pm != "-") mardi_am = mardi_am + mardi_pm; + if (mercredi_pm != "-") mercredi_am = mercredi_am + mercredi_pm; + if (jeudi_pm != "-") jeudi_am = jeudi_am + jeudi_pm; + if (vendredi_pm != "-") vendredi_am = vendredi_am + vendredi_pm; + if (samedi_pm != "-") samedi_am = samedi_am + samedi_pm; + if (dimanche_pm != "-") dimanche_am = dimanche_am + dimanche_pm; + + var horaires = new Array(); + horaires['lundi'] = lundi_am + ",1"; + horaires['mardi'] = mardi_am + ",2"; + horaires['mercredi'] = mercredi_am + ",3"; + horaires['jeudi'] = jeudi_am + ",4"; + horaires['vendredi'] = vendredi_am + ",5"; + horaires['samedi'] = samedi_am + ",6"; + horaires['dimanche'] = dimanche_am + ",0"; + + var messages = ""; + for (j=0; j < oRelais[24].length; j++) { + var ligne = oRelais[24][j]; + if (ligne != "") messages = messages + ligne + "<br/>"; + } + + setInfoMarker(codeRelais, nomRelais, adresse, codePostal, commune, messages, selectedIdx, horaires, relaisMarkers[selectedIdx]); + } +} + +function resetMap() { + + if (map) { + + map.getStreetView().setVisible(false); + + for (var i = 0; i < relaisMarkers.length; i++) { + relaisMarkers[i].setMap(null); + relaisMarkers[i] = null; + } + relaisMarkers = new Array(); + if (infowindow) infowindow.close(); + map.setZoom(defaultZoom); + map.setCenter(defaultCenter); + } +} + +/* + * Fonction appellée en retour de la recherche des communes par rapport à un code postal + * si plusieurs communes ont été trouvées + */ + +function listeCommunes(tabCommunes) { + tntRCJsonCommunes = null; + + // TEMP: car le contenu du div est entièrement reconstruit + $("#blocCodePostal").removeClass("tntRCBody"); + + tntRCJsonCommunes = tabCommunes; + tntRCafficheCommunes(tabCommunes); +} + +/* + * Fonction appellée en retour de la recherche des communes par rapport à un code postal + * si une seule commune a été trouvée + */ + +function listeRelais(tabRelais) { + + tntRClisteRelais = null; + + // TEMP: car le contenu du div est entièrement reconstruit + $("#blocCodePostal").removeClass("tntRCBody"); + + tntRCafficheRelais(tabRelais); + if (mapDetected) init_marker(tabRelais); +} + +/* + * Fonction appellée en retour de la recherche des communes si aucune commune trouvée + */ +function erreurListeCommunes() { + tntRCJsonCommunes = null; + tntRCgetRelaisColis(tntRCMsgErrLoadCommunes); +} + +function erreurListeRelais() { + tntRCgetRelaisColis(tntRCMsgErrLoadRelais); +} + + +/************************************************************************************************ + * Partie Google Map + ***********************************************************************************************/ + +var map; +var adresse_pointclic; +var zone_chalandise; +var zoomZoneChalandiseDefault; +var centerZoneChalandiseDefault; +var init_streetview = false; + +var contentTo = [ + '<br/><div>', + 'Itinéraire : <b>Vers ce lieu</b> - <a href="javascript:fromhere(0)">A partir de ce lieu</a><br/>', + 'Lieu de départ<br/>', + '<input type="text" id="saisie" name="saisie" value="" maxlength="500" size="30">', + '<input type="hidden" id="mode" name="mode" value="toPoint">', + '<input type="hidden" id="point_choisi" name="point_choisi" value="">', + '<input type="submit" onclick="popup_roadmap();" value="Ok">', + '<br/>Ex: 58 avenue Leclerc 69007 Lyon', + '</div>'].join(''); + +var contentFrom = [ + '<br/><div>', + 'Itinéraire : <a href="javascript:tohere(0)">Vers ce lieu</a> - <b>A partir de ce lieu</b><br/>', + 'Lieu d\'arrivée<br/>', + '<input type="text" id="saisie" name="saisie" value="" maxlength="500" size="30">', + '<input type="hidden" id="mode" name="mode" value="fromPoint">', + '<input type="hidden" id="point_choisi" name="point_choisi" value="">', + '<input type="button" onclick="popup_roadmap();" value="Ok">', + '<br/>Ex: 58 avenue Leclerc 69007 Lyon', + '</div>'].join(''); + +var infowindow; + +var relaisMarkers = []; +var iconRelais = new google.maps.MarkerImage( + "img/google/relaisColis.png", + new google.maps.Size(40, 30), + new google.maps.Point(0, 0), + new google.maps.Point(20, 30)) + +//Limites de la France +var allowedBounds = new google.maps.LatLngBounds( + new google.maps.LatLng(39.56533418570851, -7.41426946590909), + new google.maps.LatLng(52.88994181429149, 11.84176746590909)); + +var defaultCenter = new google.maps.LatLng(46.2276380, 2.2137490); // the center ??? +var defaultZoom = 5; // default zoom level +var aberration = 0.2; // this value is a good choice for france (?!) +var minMapScale = 5; +//var maxMapScale = 20; + +var mapDetected = false; +var callbackLinkMarker = ""; + +// fonction appellé après saisie du code postal de recherche +function init_marker(json) { + + zone_chalandise = new google.maps.LatLngBounds(); + + for (var i = 0; i < relaisMarkers.length; i++) { + relaisMarkers[i].setMap(null); + relaisMarkers[i] = null; + } + relaisMarkers = new Array(); + + if (infowindow) infowindow.close(); + + var markers = json; + + for (var i = 0; i < markers.length; i++) { + createMarker(markers[i], i); + } + + zoomZoneChalandiseDefault = zone_chalandise.getCenter(); + centerZoneChalandiseDefault = zone_chalandise; + + retourZoomChalandise(); +} + +function setInfoMarker(codeRelais, nomRelais, adresse, codePostal, commune, messages, indice, horaires, marker) { + + var htmlInfo = [ + "<div>", + "<div class='rc'>", + "<b>RELAIS COLIS N° ", codeRelais, "</b><br/>", + "<b>", nomRelais, "</b><br/>", + adresse, "<br/>", + codePostal, " ", commune, + "</div>", + "<div><br/>", messages, "</div>", + callbackLinkMarker, + "</div>", + "<div id='trajet'>" + contentTo + "</div>" + ].join(''); + + // Création du contenu de l'onglet horaire + var htmlHoraires = "<table class='horairesRCPopup'>"; + var jourSemaine = (new Date()).getDay(); + for (jour in horaires) { + var heures = (horaires[jour]).split(","); + if (heures[0] == '' && heures[1] == '') heures[0] = "fermé"; + htmlHoraires = htmlHoraires + "<tr" + (jourSemaine == parseInt(heures[2]) ? " class='selected'" : "") + "><td class='horairesRCJourPopup'> " + jour + "</td><td class='horaireRCPopup'>" + heures[0] + " " + heures[1] + "</td></tr>"; + } + htmlHoraires = htmlHoraires + "</table>"; + + adresse_pointclic = [adresse, "|", codePostal, " ", commune].join(''); + + var contentString = [ + '<div id="tabs" style="width:340px;">', + '<ul>', + '<li><a href="#tabInfos"><span>Infos</span></a></li>', + '<li><a href="#tabHoraires"><span>Horaires</span></a></li>', + '</ul>', + '<div id="tabInfos">', + htmlInfo, + '</div>', + '<div id="tabHoraires">', + htmlHoraires, + '</div>', + '</div>' + ].join(''); + + if (infowindow) infowindow.close(); + infowindow = new google.maps.InfoWindow({content: contentString}); + + google.maps.event.addListener(infowindow, "domready", function() { + $("#point_choisi").attr("value", adresse_pointclic); + $("#tabs").tabs(); + $("#tabs").parent().removeAttr("style"); + }); + + infowindow.open(map, marker); +} + +function createMarker(markerData, indice) { + + var marker = new google.maps.Marker({ + icon: iconRelais, + position: new google.maps.LatLng(markerData[5], markerData[6]), + map: map, + title:markerData[1] + }); + + google.maps.event.addListener(marker, "click", function() { + // Sélectionne le relais correspondant dans la liste + $("input[@type=radio][@name=tntRCchoixRelais]:eq("+ indice + ")").attr("checked", true); + tntRCSetSelectedInfo(indice); + }); + + relaisMarkers.push(marker); + zone_chalandise.extend(marker.getPosition()); +} + + +function tntRCInitMap() { + + // Si la carte n'est pas présente, fin de l'initialisation + if (!document.getElementById("map_canvas")) return; + mapDetected = true; + + // Si une fonction de callback a été définie, un lien est ajouté + // dans la popup d'info du marqueur de relais colis + if (window.callbackSelectionRelais) callbackLinkMarker = "<a onclick='callbackSelectionRelais();' href='#' style='color:#FF6600'>Choisir ce relais</a>"; + + //Ajout du lien pour retour en zoom zone de chalandise + var jMapCanvas = $("#map_canvas"); + jMapCanvas.wrap("<div></div>"); + jMapCanvas.parent().append("<a class=\"lien_reset\" href=\"#\" onclick=\"javascript:retourZoomChalandise();\" style=\"text-decoration:none;\">Retour à la vue initiale</a>"); + + var mapClass = jMapCanvas.attr("class"); + if (mapClass && mapClass != "") { + jMapCanvas.attr("class", ""); + jMapCanvas.parent().attr("class", mapClass); + } + + var myOptions = { + zoom: defaultZoom, + center: defaultCenter, + mapTypeId: google.maps.MapTypeId.ROADMAP, + navigationControl: true, + scaleControl: true, + mapTypeControl: true, + streetViewControl: true + }; + + map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); + + // If the map position is out of range, move it back + function checkBounds() { + + // Perform the check and return if OK + var currentBounds = map.getBounds(); + var cSpan = currentBounds.toSpan(); // width and height of the bounds + var offsetX = cSpan.lng() / (2+aberration); // we need a little border + var offsetY = cSpan.lat() / (2+aberration); + var C = map.getCenter(); // current center coords + var X = C.lng(); + var Y = C.lat(); + + // now check if the current rectangle in the allowed area + var checkSW = new google.maps.LatLng(C.lat()-offsetY,C.lng()-offsetX); + var checkNE = new google.maps.LatLng(C.lat()+offsetY,C.lng()+offsetX); + + if (allowedBounds.contains(checkSW) && + allowedBounds.contains(checkNE)) { + return; // nothing to do + } + + var AmaxX = allowedBounds.getNorthEast().lng(); + var AmaxY = allowedBounds.getNorthEast().lat(); + var AminX = allowedBounds.getSouthWest().lng(); + var AminY = allowedBounds.getSouthWest().lat(); + + if (X < (AminX+offsetX)) {X = AminX + offsetX;} + if (X > (AmaxX-offsetX)) {X = AmaxX - offsetX;} + if (Y < (AminY+offsetY)) {Y = AminY + offsetY;} + if (Y > (AmaxY-offsetY)) {Y = AmaxY - offsetY;} + + map.setCenter(new google.maps.LatLng(Y,X)); + return; + } + + google.maps.event.addListener(map, "drag", function() { + checkBounds(); + }); + + google.maps.event.addListener(map, "zoom_changed", function() { + if (map.getZoom() < minMapScale) { + map.setZoom(minMapScale); + } + }); + + google.maps.event.addListener(map.getStreetView(), "visible_changed", function() { + //premier accès lors du chargement de la page, il ne faut pas cacher les markers + if (init_streetview == true) { + if(map.getStreetView().getVisible() == true) { + for (var k = 0; k < relaisMarkers.length; k++) { + relaisMarkers[k].setVisible(false); + } + } + else { + for (var k = 0; k < relaisMarkers.length; k++) { + relaisMarkers[k].setVisible(true); + } + } + } + else init_streetview = true; + }); +} + +function retourZoomChalandise() { + if(zoomZoneChalandiseDefault){ + map.setCenter(zoomZoneChalandiseDefault); + map.fitBounds(centerZoneChalandiseDefault); + } +} + +function fromhere() { + switchFromTo(contentFrom); +} + +function tohere() { + switchFromTo(contentTo); +} + +function switchFromTo(htmlContent) { + var adresse_saisie = $("#saisie").val(); + $("#trajet").html(htmlContent); + $("#point_choisi").attr('value', adresse_pointclic); + $("#saisie").val(adresse_saisie); +} + +function popup_roadmap() { + if($("#saisie").val() == "") return; + window.open("http://" + tntDomain + "/public/geolocalisation/print_roadmap.do?mode="+ $("#mode").val() +"&point_choisi="+ $("#point_choisi").val() +"&saisie="+ $("#saisie").val()); +} + +$().ready(tntB2CRelaisColis); \ No newline at end of file diff --git a/modules/tntcarrier/js/shipping.js b/modules/tntcarrier/js/shipping.js new file mode 100644 index 000000000..f3b67196c --- /dev/null +++ b/modules/tntcarrier/js/shipping.js @@ -0,0 +1,78 @@ +function tntRCgetDepot() +{ + $("#tntRCError").hide(); + tntRCcodePostal = $("#tntRCInputCP").val(); + if (tntRCcodePostal=="") return; + if (isNaN(parseInt(tntRCcodePostal))) { + tntRCgetRelaisColis(tntRCMsgErrCodePostal); + return; + } + tntRCsetChargementEnCours(); + $("#tntRCLoading").load( + "../modules/tntcarrier/tntGetDepot.php?code="+tntRCcodePostal, + function(response, status, xhr) + { + if (status == "error") + $("#tntRCLoading").html(xhr.status + " " + xhr.statusText); + } + ); +} + +function depositButtonClick() +{ + $("#googleMapTnt").css("display", ""); +} + +function collectButtonClick() +{ + $("#googleMapTnt").css("display", "none"); +} + +$(document).ready(function() { + var transport1 = $("#tnt_carrier_collect_yes"); + var transport2 = $("#tnt_carrier_collect_no"); + transport1.click(function() { + $("#divPex").css("display", "none"); + $("#divClosing").css("display", ""); + }); + transport2.click(function() { + $("#divPex").css("display", ""); + $("#divClosing").css("display", "none"); + }); +}); + +function callbackSelectionRelais() +{ + var code = document.getElementById("tntRCSelectedCode").value; + var lastname = document.getElementById("tntRCSelectedNom").value; + var address = document.getElementById("tntRCSelectedAdresse").value; + var address2 = document.getElementById("tntRCSelectedAdresse2").value; + var zipcode = document.getElementById("tntRCSelectedCodePostal").value; + var city = document.getElementById("tntRCSelectedCommune").value; + + if (!code || code == "") + alert("Aucun depot selectionne"); + else + { + document.getElementById("tnt_carrier_shipping_pex").value = code; + document.getElementById("tnt_carrier_shipping_company").value = lastname; + var s = lastname.length - lastname.indexOf(" "); + + document.getElementById("tnt_carrier_shipping_last_name").value = ""; + document.getElementById("tnt_carrier_shipping_first_name").value = ""; + document.getElementById("tnt_carrier_shipping_address1").value = address; + document.getElementById("tnt_carrier_shipping_address2").value = address2; + document.getElementById("tnt_carrier_shipping_postal_code").value = zipcode; + document.getElementById("tnt_carrier_shipping_city").value = city; + } +} + +function changeValueTntRC(code, name, address1, address2, zipcode, city) +{ + document.getElementById("tntRCSelectedCode").value = code; + document.getElementById("tntRCSelectedNom").value = name; + document.getElementById("tntRCSelectedAdresse").value = address1; + document.getElementById("tntRCSelectedAdresse2").value = address2; + document.getElementById("tntRCSelectedCodePostal").value = zipcode; + document.getElementById("tntRCSelectedCommune").value = city; +} \ No newline at end of file diff --git a/modules/tntcarrier/logo.gif b/modules/tntcarrier/logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..43c0dd9cbae8d37af5a8814b817dc6591cdce94f GIT binary patch literal 1355 zcmXYwdrZ((6vq!f(0nwNFh{y2h^1E+dUQqzi9;R^v~<@;q!H-x9mbYM#&&H}NnKO& z(J5mKvD{s0BAC70N@nVgOQ4IHX3o-VM$@U&pmzFE-GA=xJ=;Cs^Z9;nZhp?=Y0sy? zV7LqaEd(F{1`q%R17HvgfnhKLM!^DD1WRBUtbkQ;01m+sI0h%+6g+@O@C2U03wVV9 z5D)@EU<d+1qqjj3lt39&K%)a7AOayUf<!emfCkYJ8b%{%6fK}dw1k$?3R*=6=nx&D zV|0Q}(F1x!Pv{xFpjQll0WlB;#vm9J6;KhCP#INFBOTG$NI(QkAdxIGKnBSW873oS zlq`@%vP7223Rxuw<d7VZV{$@H$pd*LPvn`rkXH&o0Vxm#rXUoQ6iAVjNSRbfBLop~ zWFQ7+kcbEyV1sOk4YLt8$`;rnTVl&>g{`s!cF2y{F*{+W?14S9C-%%<*eeI%fE<Ve za}W;73arRVtjsE`5&g()6d(Z>kjM-%AO^*d7#1U9R4j-^u_TtoidYo~;!qrkV{sx* z#e;YhPvTj;h*t?90VR+GmLL*T6hu*!L|IfswJQjb8xfL7S5%CmU_cG3AvLT<)Tmle zi)u+Ns};4X4%DGKQpf5<ovH`*sGiibdQq<$Km%$Z4Xi;lbTx~D7P%cEkLLcj`Tx0( zw&8#FhynNu#&lhE{R!x;aQD8Uc^_ZOtc;BtoxN}C!^bxC*)wd+y#XatU+<YbJG=Mk z;*6>uW9fma8<#V;4ewdoR8?L)zOucoGU@Kh`RSX+E`Fu->>D+CmA4jFpFg+1<g3+J zmV7xgd-KkTWuI@)ubcD7Ln(6#->rY=kyQ)Q%H}OkyK_A3om|(jEPv+6r#Nk2`_=aH zy?HJ5i#o3!Ja#pO>&w3%oS%4jOhU%$l8y0o)6AC3mA9`ATex__Z?)fayFRrv_xkxc zshro++N<?^;>qskDq3q-oNfK!m+5`i`bBe7%NlD><40vfRu*0_e$v(z)GU21Ke@f= zld22*8#ZrmPRiZfeDuI)FE`%G*<CZSysaW=%bkX{#FCDJLp$yjZX0=`b3@MA-8HkX z9hk9ZTT;``juF-4MvdE&IVd^)hpY<+lg|`ws%jcG_U42|@o7!-b5E@6{Gze<f^Iv0 zK2_Q=WZ%qH@l$f<FZn5@Hev37%$JJCj~M+{P2zw)4G%un{nNu$Ip-_(JX_xU>YJBd zxR_m?ux6-_jonz0JmFGi`;Gdf?fEZG{5Ex2*6jNe+9&mDD?R!9*Hz;>Qb*=w`I|G_ zCNEk4-ZLq~2HxJa^k^uL%esB!_}f{&xnx#)-nzz~MHxHec1?P&dCG~k*$LBT6wFxv z^qzU0M`m4_)$rZk;ss?H>kHps-hcd$b1$BWk6qTk84E^!IQ@yOnWy?aiZX&%jQ-VE n_d8URmDsp&U|!$9Pc5G|FsA5CZd`KTLG?T;y=8Jt45a@9IpTqe literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/pdf/3012345000000006.pdf b/modules/tntcarrier/pdf/3012345000000006.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2c77319555a5acd9247f6d2a7b7bf0d1a77ed928 GIT binary patch literal 10852 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 ACIA2c literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/pdf/7812345000000006.pdf b/modules/tntcarrier/pdf/7812345000000006.pdf new file mode 100644 index 0000000000000000000000000000000000000000..958ef2ffffcf0e63c7d00c6ea52b390fdf9ed97a GIT binary patch literal 10877 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 WTDc+rVT~UoEDXYDV^h*m#{WMkttLVM literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/pdf/index.php b/modules/tntcarrier/pdf/index.php new file mode 100644 index 000000000..477abec6f --- /dev/null +++ b/modules/tntcarrier/pdf/index.php @@ -0,0 +1,36 @@ +<?php +/* +* 2007-2011 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA <contact@prestashop.com> +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision: 6594 $ +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../../../"); +exit; diff --git a/modules/tntcarrier/relaisColis/css/tntB2CRelaisColis.css b/modules/tntcarrier/relaisColis/css/tntB2CRelaisColis.css new file mode 100644 index 000000000..59f62eee3 --- /dev/null +++ b/modules/tntcarrier/relaisColis/css/tntB2CRelaisColis.css @@ -0,0 +1,357 @@ +.tntRCHeader { + background-color: #ffffff; + background-image: url(../img/logo_24_relaiscolis.jpg); + background-position: 10px center; + background-repeat: no-repeat; + border-color: gray; + border-style: solid; + border-width: 1px; + color: #a0a0a0; + display: bloc; + font-family: arial,helvetica,sans-serif; + font-size: 30pt; + font-style: italic; + height: 75px; + padding-right: 10px; + padding-top: 25px; + text-align: right; + width: 530px; +} + +.tntRCSubHeader { + background-color: #ffffff; + border-width: 0px; + color: #a0a0a0; + display: bloc; + font-family: arial,helvetica,sans-serif; + font-size: 16pt; + font-weight: bold; + padding-bottom: 3px; + padding-top: 3px; + width: 600px; +} + +.tntRCBody { + background-color: #ffffff; + border-color: gray; + border-style: solid; + border-width: 1px; + color: #000000; + display: bloc; + font-family: arial,helvetica,sans-serif; + font-size: 12pt; + padding-bottom: 10px; + padding-left: 10px; + padding-top: 10px; + width: 530px; +} + +.tntRCBodySearch { + background-color: #ffffff; + border-color: gray; + border-style: solid; + border-width: 1px; + color: #a0a0a0; + font-family: arial,helvetica,sans-serif; + font-size: 10pt; + font-weight: bold; + padding-left: 3px; + padding-top: 8px; + padding-bottom: 8px; + width: 550px; +} + +.tntRCError { + background-color: #ff6600; + color: #ffffff; + display: bloc; + font-family: arial,helvetica,sans-serif; + font-size: 12pt; + font-weight: bold; + width: 520px; +} + +.tntRCGray { + background-color: #a0a0a0; + border-width: 0px; + display: bloc; + font-family: arial,helvetica,sans-serif; + font-size: 10pt; + heigth: 12px; + width: 520px; +} + +.tntRCInput { + background-color: #ffffff; + font-family: arial,helvetica,sans-serif; + font-size: 10pt; + font-weight: normal; + text-align: center; + width: 50px; +} + +.tntRCWhite { + background-color: #ffffff; + border-width: 0px; + display: bloc; + font-family: arial,helvetica,sans-serif; + font-size: 14pt; + width: 600px; +} + +.tntRCrelaisColis { + font-family: arial,helvetica,sans-serif; + font-size: 10px; + color: #000000; + border-bottom-style: solid; + border-bottom-color: #a0a0a0; + border-bottom-width: 1px; + background-color: #ffffff; + padding-bottom: 3px; + vertical-align: middle; +} + +.tntRCtitreMode { + font-family: arial,helvetica,sans-serif; + font-size: 28px; + color: #a0a0a0; + font-style: italic; + background-color: #ffffff; +} +.tntRCchoix { + font-family: arial,helvetica,sans-serif; + font-size: 14px; + color: #a0a0a0; + font-weight: bold; + background-color: #ffffff; +} +.tntRCdetailGros { + font-family: arial,helvetica,sans-serif; + font-size: 14pt; + color: #a0a0a0; + background-color: #ffffff; +} + +.tntRCnoirPetit { + font-family: arial,helvetica,sans-serif; + font-size: 12pt; + color: #000000; + background-color: #ffffff; +} +.tntRCdetailPetit { + font-family: arial,helvetica,sans-serif; + font-size: 12pt; + color: #a0a0a0; + background-color: #ffffff; + font-weight: bold; +} +.tntRCentree { + font-family: arial,helvetica,sans-serif; + font-size: 12pt; + color: #000000; + background-color: #ffffff; + vertical-align: middle; +} +.tntRCgris { + font-family: arial,helvetica,sans-serif; + font-size: 10pt; + color: #ffffff; + background-color: #a0a0a0; + font-weight: bold; +} + +table.tntRCHoraire td { + border: 1px solid gray; + font-family: arial,helvetica,sans-serif; + font-size: 10pt; + vertical-align: middle; +} + +.tntRCHoraireJour{ + color: #a0a0a0; + text-align: right; + padding-right: 10px; + height: 36px; + width: 79px; + font-weight: bold; +} + +.tntRCHoraireHeure { + color: #000000; + padding-left: 10px; + width: 84px; +} + +.tntRCblanc { + font-family: arial,helvetica,sans-serif; + font-size: 12px; + color: #000000; + background-color: #ffffff; + padding-top: 4px; + padding-bottom: 3px; +} +.tntRCblancpetit { + font-family: arial,helvetica,sans-serif; + font-size: 12px; + color: #000000; + background-color: #ffffff; + padding-top: 4px; + padding-bottom: 3px; +} +.tntRCfermeture { + padding-left: 585px; +} + +.tntRCBack2Communes { + background-color: #ffffff; + color: #a0a0a0; + font-family: arial,helvetica,sans-serif; + font-style: italic; + font-size: 11pt; + font-weight: bold; + padding-top: 18px; + text-align: right; +} + +.tntRCBack2Communes a { + color: #a0a0a0; + text-decoration: none; + padding-right: 5px; +} + +.tntRCBack2Communes a img{ + border: 0; + padding-right: 5px; + vertical-align: text-bottom; +} + +.tntRCBoutonLoupe { + background-color: #ffffff; + border: 0px; + color: #000000; + font-family: arial,helvetica,sans-serif; + font-size: 12px; + padding-top: 4px; + padding-bottom: 3px; + text-decoration: none; + vertical-align: middle; +} +.jqmWindow { + background-color: #FFF; + border: 1px solid black; + color: #333; + display: none; + padding: 12px; + position: fixed; + left: 50%; + margin-left: -300px; + margin-top: -240px; + width: 600px; +} + +div.tntRCfermeture .jqmClose em{display:none;} +div.tntRCfermeture .jqmClose { + background: transparent url(../img/close_icon_double.png) 0 0 no-repeat; + display: block; + width: 20px; + height: 20px; +} + +div.tntRCfermeture a.jqmClose:hover{ background-position: 0 -20px; } + +.jqmOverlay { + background-color: #000; + overflow: hidden; +} + +* html .jqmWindow { + position: absolute; + top: expression((document.documentElement.scrollTop || document.body.scrollTop) + Math.round(17 * (document.documentElement.offsetHeight || document.body.clientHeight) / 100) + 'px'); +} + +img.tntRCButton { + border: 0px; + vertical-align: middle; + text-decoration: none; +} + +sup.tntRCSup { + +} + + table.horairesRC td { + width : 100%; + margin: 0px; + padding: 0px; + } + + table.horairesRCPopup { + width : 100%; + margin: 0px; + padding: 0px; + } + + table.horairesRCPopup tr.selected td { + background-color: #eeeeee; + color: #ff6600; + } + + td.horaireRCPopup { + width : 60%; + } + + td.horairesRCJourPopup { + width : 40%; + font-weight: bold; + color: #808080; + } + + td.horairesRCJour { + font-weight: bold; + color: #808080; + } + table.horairesRC tr.selected td { + background-color: #eeeeee; + color: #ff6600; + } + + div.ag { + background-image: url(/img/google/agenceTnt.png); + background-repeat: no-repeat; + padding-left:60px; + } + + div.rc { + background-image: url(/img/google/relaisColis.png); + background-repeat: no-repeat; + padding-left:50px; + } + + +.lien_reset { + color : #ff6600; + font-family: arial,helvetica,sans-serif; + font-weight: bold; + font-size : 15px; + text-decoration:none; +} + +a { + color: #f60; + outline-color: #f60 !important; + outline: none; +} + +a:hover { + text-decoration: none; +} + +.exemplePresentation { + display: inline; + float: left; + margin-top: 10px; +} + +#tntB2CRelaisColis { + width: 550px; +} \ No newline at end of file diff --git a/modules/tntcarrier/relaisColis/css/ui.dialog.css b/modules/tntcarrier/relaisColis/css/ui.dialog.css new file mode 100644 index 000000000..a80d9be33 --- /dev/null +++ b/modules/tntcarrier/relaisColis/css/ui.dialog.css @@ -0,0 +1,158 @@ +/* + * jQuery UI screen structure and presentation + * This CSS file was generated by ThemeRoller, a Filament Group Project for jQuery UI + * Author: Scott Jehl, scott@filamentgroup.com, http://www.filamentgroup.com + * Visit ThemeRoller.com +*/ + +/* + * Note: If your ThemeRoller settings have a font size set in ems, your components will scale according to their parent element's font size. + * As a rule of thumb, set your body's font size to 62.5% to make 1em = 10px. + * body {font-size: 62.5%;} +*/ + + +/*dialog*/ +.ui-dialog { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; + font-size: 11px; + background: #fcfdfd url(../img/ui-dialog/fcfdfd_40x100_textures_06_inset_hard_100.png) 0 bottom repeat-x; + color: #222222; + border: 3px solid #808080; + position: relative; +} +.ui-resizable-handle { + position: absolute; + font-size: 0.1px; + z-index: 99999; +} +.ui-resizable .ui-resizable-handle { + display: block; +} +body .ui-resizable-disabled .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */ +body .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */ +.ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0px; +} +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0px; +} +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0px; + height: 100%; +} +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0px; + height: 100%; +} +.ui-resizable-se { + cursor: se-resize; + width: 13px; + height: 13px; + right: 0px; + bottom: 0px; + background: url(../img/ui-dialog/469bdd_11x11_icon_resize_se.gif) no-repeat 0 0; +} +.ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: 0px; + bottom: 0px; +} +.ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: 0px; + top: 0px; +} +.ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: 0px; + top: 0px; +} +.ui-dialog-titlebar { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + padding: 5px 15px 5px 10px; + color: #2e6e9e; + border-bottom: 1px solid #c5dbec; + font-size: 10px; + font-weight: bold; + position: relative; +} +.ui-dialog-title {} +.ui-dialog-titlebar-close { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + background: url(../img/ui-dialog/6da8d5_11x11_icon_close.gif) 0 0 no-repeat; + position: absolute; + right: 8px; + top: 7px; + width: 11px; + height: 11px; + z-index: 100; +} +.ui-dialog-titlebar-close-hover, .ui-dialog-titlebar-close:hover { + background: url(../img/ui-dialog/217bc0_11x11_icon_close.gif) 0 0 no-repeat; +} +.ui-dialog-titlebar-close:active { + background: url(../img/ui-dialog/f9bd01_11x11_icon_close.gif) 0 0 no-repeat; +} +.ui-dialog-titlebar-close span { + display: none; +} +.ui-dialog-content { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + color: #222222; + padding: 15px 17px; +} +.ui-dialog-buttonpane { + position: absolute; + bottom: 0; + width: 100%; + text-align: left; + border-top: 1px solid #a6c9e2; + background: #fcfdfd; +} +.ui-dialog-buttonpane button { + margin: 5px 0 5px 8px; + color: #2e6e9e; + background: #dfeffc url(../img/ui-dialog/dfeffc_40x100_textures_02_glass_85.png) 0 50% repeat-x; + font-size: 1; + border: 10px solid #c5dbec; + cursor: pointer; + padding: 2px 6px 3px 6px; + line-height: 14px; +} +.ui-dialog-buttonpane button:hover { + color: #1d5987; + background: #d0e5f5 url(../img/ui-dialog/d0e5f5_40x100_textures_02_glass_75.png) 0 50% repeat-x; + border: 1px solid #79b7e7; +} +.ui-dialog-buttonpane button:active { + color: #e17009; + background: #f5f8f9 url(../img/ui-dialog/f5f8f9_40x100_textures_06_inset_hard_100.png) 0 50% repeat-x; + border: 1px solid #79b7e7; +} +/* This file skins dialog */ +.ui-dialog.ui-draggable .ui-dialog-titlebar, +.ui-dialog.ui-draggable .ui-dialog-titlebar { + cursor: move; +} diff --git a/modules/tntcarrier/relaisColis/css/ui.tabs.css b/modules/tntcarrier/relaisColis/css/ui.tabs.css new file mode 100644 index 000000000..eb071d40f --- /dev/null +++ b/modules/tntcarrier/relaisColis/css/ui.tabs.css @@ -0,0 +1,55 @@ +/*UI tabs*/ +.ui-tabs-nav { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; /*font-size: 100%;*/ list-style: none; + font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; + font-size: 10px; + float: left; + position: relative; + z-index: 1; + /*border-right: 1px solid #c5dbec;*/ + bottom: -1px; +} +.ui-tabs-nav ul { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; /*font-size: 100%;*/ list-style: none; +} +.ui-tabs-nav li { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; /*font-size: 100%;*/ list-style: none; + float: left; + border: 1px solid #c5dbec; + border-right: none; +} +.ui-tabs-nav li a { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; /*font-size: 100%;*/ list-style: none; + float: left; + font-size: 10px; + font-weight: bold; + text-decoration: none; + padding: .2em 1em; + color: #2e6e9e; + background: #dfeffc url(../img/ui-dialog/dfeffc_40x100_textures_02_glass_85.png) 0 50% repeat-x; +} +.ui-tabs-nav li a:hover { + background: #d0e5f5 url(../img/ui-dialog/d0e5f5_40x100_textures_02_glass_75.png) 0 50% repeat-x; + color: #1d5987; +} +.ui-tabs-nav li.ui-tabs-selected { + border-bottom-color: #f5f8f9; +} +.ui-tabs-nav li.ui-tabs-selected a, .ui-tabs-nav li.ui-tabs-selected a:hover { + background: #f5f8f9 url(../img/ui-dialog/f5f8f9_40x100_textures_06_inset_hard_100.png) 0 50% repeat-x; + color: #e17009; +} +.ui-tabs-panel { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; /*font-size: 100%;*/ list-style: none; + /*font-family: Lucida Grande, Lucida Sans, Arial, sans-serif;*/ + clear:left; + border: 1px solid #c5dbec; + background: #fcfdfd url(../img/ui-dialog/fcfdfd_40x100_textures_06_inset_hard_100.png) 0 bottom repeat-x; + /*color: #222222;*/ + padding: 1em 1em; + width: 315px; + font-size: 10px; +} +.ui-tabs-hide { + display: none;/* for accessible hiding: position: absolute; left: -99999999px*/; +} \ No newline at end of file diff --git a/modules/tntcarrier/relaisColis/img/5-puce-choix-gris2.gif b/modules/tntcarrier/relaisColis/img/5-puce-choix-gris2.gif new file mode 100644 index 0000000000000000000000000000000000000000..609487a2977e7d29f37eff44dbaba3ffcb448bd8 GIT binary patch literal 894 zcmZ?wbhEHb<YC}p_|Cwvc=6)@|NsB}`*-u^%}bXqy?*`rjT<*UfByXS>(_JV&OLbW z;KYd&J9qBfwQJY2XV0!&xw3x!`W-uVynXxj)~#Dxwrp9xeEFe6hZsh|Xb23=5YPcR z8<ZCqIFcEdSp*UmFfuan@^A=9Ffg(*2q*_R7!)uxaB?a+$v6lsYGPnFax*!g@Ti%Y zQAMZWL_>ocgP5IFL&1lqOzezlVI2uVOT9V-xhhyRg_0N<#SHg7xpCo9P!|)cNXCIr KD-JX;SOWmkGFNc` literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/Thumbs.db b/modules/tntcarrier/relaisColis/img/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..0698e65d0d936c20112d5f01323a477ab2a4e3ca GIT binary patch literal 54784 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 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/bt-CodePostal-1.jpg b/modules/tntcarrier/relaisColis/img/bt-CodePostal-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3f3b462d4828e78775c1ab8cc8b7356b9af58eb9 GIT binary patch literal 1788 zcmbV~cT|&C7{>3HFChUUib)VK7^W;483@RTQC1vaKq7k7stf@^BnYNR0^+Emh&Vt{ z0i`Sf#l<LsB4R*g36*7341%Ijw(K;N)_QvCIc?v2?qBcoKIi$}_exqNufe=k4on9C zK@iv`JwVb4l<c{FJ^(P81^@&8EJ+7g2{1A;Xc-g+jYiALV&t&+Iaqmltjc`cT)dhp zX_1;Lk*Kb1tgEiMM2kq&GuK~YN~Y0hBwb4z3yQTdl}4E{fn;T6vGQ2uIdhaL8bl4s ze=f;=pojs=;5rOx0)!$2D?*ZofCK=9l2Xio{811BMxtcU7+E=aso>5$fPi2afrL>g zBvPv8N&5h)h?=iKX2{@J+tHfAc*=qJ%NVT{H!29OjeXkG9h_)cIi&^4Dylk*b@lWO zXl6^zEi9L<w6k|`bYiY@Tkp=^;IVO&r<b?SPG3L&kiDT{`?x=bA3SvU$WKR)#hgBK z_FO{Z`K074=|5*=W@YDGy?N{Qox-Bxl3yNFKCF5qsIGbZtf~3e=Pj*m?VWE#U2nU4 z-o5Yb9~c}O9{DmlHa^1z0eBYcE7{+;6s24UBoaoVXSg85KIw%Okthwa%zOq5y*(JG zNjZSQuZX{Vqe51T>e@%x!D*CJ(x!Fl^v|IEPWJD>qW>4!SFpdh+5r}Zq|1X90UeCA z?bg1V>=f8-TDcH^+8qut58d2HZb-eqx0YdcBp$o}Q~tAni#`!gpYm)2PV;gNoy*9r zb|-_?(NF8Y3=Z;3u8zlwB7OZ@bo!AB-7bu?>bRll+fZg?r!s=_e5t`!?<m7fprX|a zv9xRFE5iN>Ee8ombB~*bvqm@Q=lip^8mGQ>^3a)d<P3do7@{Ah82NbLEMYF%NC-+s z1(`<Yq~r<rP@6-ZMJ@aMF?Qkf0XBV9A+^(S#35D!mgkZt(Jp=0G(vY379OGBc{1St zK)s@F4gXM&HZR02GoKsK!>~S#W09$!tP+SP23z{m6e_>Xz?zCrk8CgyNC4C{X&AGG z-RIYG!B{7F>WcfNF7>?4kqg{O&PlYfP{VZ39hu^SP}I8qRc*dwuWx{&mU8NHwZw0O zT<zb)<?k;&?lJTMXIB2ojQ==&cV~Q^DR(HZ%#D>|q#5E{+hY)sWvSIX6`WkPpvm60 z%;?04ftxFD9IKfq<Bg^%bbLSErN&`>r{X!wYB1a1zF{X4Ipzf_Jt?DgR_jCj148{0 zx_f;+St^B!<b~s(M5CqfsXdmWe6aUbo2vN~A}_K}js76_MLU;YUo$xL0Y8}G;VA+3 zZizN%xV_|_cy+zldhB{P@7B(9#o~db!vg2BDQ>NM`Mu;_#r#ICptWquu@vOCh^(;& zbl|tIrZ-*Pc<&uSY8Lf=nozwsCn7XKXyIxccC?*6c3I#BFPbRh=7x7?XlBGETE`#! zQJHgsVOZx_Jd&nx=KHj#rMq~aHNWJz_<~*O$<JE*HcwfNhp=k0g%`Aid)eB>@f#wp zr36G)CZV-@U93ZA7OQJ7ESfN`3|0}GN)o(Xlj__c&hJXuLaFkMU0upcat10kxv_<J z=^d<>MeRju7V%}%VcUdOu)yLGwT@a#>%Fzg#B<Q2(l&YEe7ghhB!`?}J0*j@1Hw*u zybochRbAw-sJ`4NZmp_NA!7M<e1cDVuhVX&XWcHQ<q<grGLszlC{dWD=-OPEa3JG{ zfX0uBHbx@S=(}vQCnY{jYDUKw##TP=XtC@e9r1-7H#X|xY=qH4FZVGq>clVJ;`-pt zU5Q5Wfk|G+?v-j1=-F3dz|Ibl1f)dA6-hs-4GO;w8X1*<p0rFR_hd2dtPR7>9uHb| zqlGH2YZ7*RbYbh}n3>Fu#OQ&Eh{(YP*6f7T%k~v%atO~Wr;okUyAm~b){+zyHytjg zmj;XbC7_<M?!{VE{kd{i>k{PgIF>ygGXLiQ>9caFU<q|Krz7x9f=?Y;RY?Md`DV?& f$x8~HOiY&JfL$=0YGT8rzZ46c!@FbjU`g9=kTn@v literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/bt-CodePostal-2.jpg b/modules/tntcarrier/relaisColis/img/bt-CodePostal-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..395a31b95b410ca10453e92962f1417616646100 GIT binary patch literal 1968 zcmbW#c~p~E769;<J%or&2uLsxAYrYwB?*ckg4hrO?Eo@jT~Mitf&(^S4S`~$2r>*3 z5ClbzQKF<pCXfO`gdUbb)94`Lf*{BebOH(uC<Zcwd=q9VocW`tGxweEk9*#I_uSum zAJhkpfDb}~xIq90gMkC41)x!2%}$An1%S)-09f#!fCj)efJLJ*XcQKM!I+t0ad^@y zytz4^Otf50va_Yy+u2em4)pb|4o>T66pGtM_jR9mvREvt>n1;M#^&`*7GtRi%*@OT zZ;rQFwaSL!NO5HR&jGao0v6bS8U)M<zzHw}0S0vfDgZE)NwEa^cfjBXBnpken&He% z1q~knI1GV+BM~SR5^1VVH|+x?0Y!B5+={l0h`~7VNQ{iaYgk&KyxnSh&orI+Wzx51 zIO{bwWLsw!S2uSLme+=j-kW^3eaa5v1am_of4?JY=NG$nA3St8_Q=t=_~a8`pX8?q zQZvtFWuMLYWA6E);tM6E7cZ4nNUq<glz#Vp)em*`4YwMb6t_G6(s}2u@+Z~3M~|O8 z?S0nQ|9n(E_VU%=G~*MmXWqV>eXpCF*Z+OV1p|nGv3`;Lmy2L>!I4M=60_uj!TF{S zK|rD$J<-Ii5ttaBr4u6qOA0K!CT};RF}F`!eVNpQv!=5~ooAM4|CIeU*th?e>=)Rw z>p8$9V5Y}I5P(0J!<;{+Ka@KZi6_Xp&f(@viz>y)!E0MuEP~?QXMc3T8t&gbQR+$- zGnv$|%XD#k(KZMad?Y(%93B$37B$bjDEo8uhsvtBjk1A1Oua045Io9v#C7U`Mw|-H zC`YphC31Nr{XU4QgPqA^kYs~0j?4oBI%^RG0&Y?bn6T+;AtAaw-M%2<)%wgGrv*6{ zj|&7*<EJEEB-`t%%3*pJ>!y9RF4q_rUHI}q-Qoy3H9s{RtzFqdvS7}Ez||chBSJdA z)1&O%oBjc%PL(6-gg^0VhW7|hoKNETz0*cjw6-SrOjyT#_SGAg{+ENH&P_4m%QfE| zd34%m_2frXV@8z!yoGp_v$DA?*7pqrCezvKrjk#iV=4sn3&q#TdkuZgm?jGRbFSA@ zt!`h*sxhmgoxvr+&dIlF;$j7E@5ye55z0dhdofD_frlPS2*4g2JX(B&XEiN~deQIX zaZ|VSH+4JK^6~k+Oy!MGnTnq<y3kmQPbB&meIN5W{Q=|HWy`(nWVNDRDX1h2*od{B zYb}D`dp~ePNR1sm5E!>Q2!YcRMv^e*C<JD4atO4YfB;T9s;VrG&g4;g+n=f2eY+Y( z7X^6|{^ptTL;0TJgD(g*gLl&Se)S=a8v?C26_;!E0ltbh8U}I2=OMauCBABIxA5#_ zi>N-X*Ije3R%y(YCO2+v(^YF5;;92^e3b?QNA>%H#_A@Unay@SbMMEzIFVP>(SfLD zK9M8qkavdNb5h<5nA3=BZUED8eY^b^;nl)vJO2*RiYxyjVkn-|nJ@AQQolQpRhfKy z__$4;yZwTSk{4SuU!mTUGAkjy?Vv_vQSNpUr6)OdoCdJ(S8w4?Xji~^CA+Xo@uWq* zMZIUT*{IV>$+H?SWaGx+{=()L`jZm^kD%B~WACn!`#zIg(9sQpNy!0r7@f<xrjK>e z*=nY!u9ByZbbZ9~JtjzWdAu<)RKFzjy?8KE>)mzhaAH_G0fmbA0kOT{z^M-5&0} zotK$+uz+_Z{^KdK)Yy{~a(5`57%H(0c_c_o!rr%+csm?O3&(_^ODn^UTiq#+MHV8I z&WfW=G+Kt}CsBtqJ1#*+?42-l>EFh-t({RtA<p$_@~_&X-OJV({`CCFVk+D8uj8cZ zVdesSf1PH^_nAt$S5q!*<A<Z3<sTy-DjA}&h#T~d+Yuk~4|ikylw(ue#YSm9U939( z^Iy-A4Ht24R}l-zp%4(y`)hCeH?msw5XdwxROEu?<U5&H0wYBytE#Qtw3?FXV06fw zb?9LOc1&8u#B>X9f9GAU?Jm3WM1Ep5FQcqsQE>wT-3IF13sN|2IiU`e?KeQ69Rlg5 z!z;7pn%{Qdsb8R${p8erO}txcY*Xl&zLCSF-WZyc6%nvzd2Got>{pbxs`up3)3PUP rgSrjbn6cb%KI!6pRl1Y=YO?!+MRJ|rF45<GWBHdhmz!o5LjC^$E$@j{ literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/bt-Continuer-1.jpg b/modules/tntcarrier/relaisColis/img/bt-Continuer-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5736669839360c624c7954d3cdd1f3601ff54574 GIT binary patch literal 1231 zcmex=<NpH&0WUXCHwH#VMur3+WcdG(LCm!xGmU}4(^HFqg8>Hq-)3-T;9z58XJh4H zXJ_Z+<ly2F;pO4x=8+T<<`<Ebl9!W}l95qR(NkAY(ovR?(J<H4F)%bSF_Bldw6!p@ z(K9wN0vW={$;rvX%_G6fD`BK4qi94j_<w*wkb^;jA(WX>iGfLwky()O{}Bdx1_nk} zpf5lkfdWP*W)@a9b`DN1ZlHp#0t`%y%*;$I%&e>|EI`$@KzRlhK~^C}Lq|5@z(jVX zLJ_0Ji3>TDoi-j64Z8S2#W<;`iIYoATtZSxRZU$(Q_IBE%-q7#%Gt%$&E3P(D>x)H zEIcAIDmf)JEj=SMtGJ}Jth}PKs=1}Lt-YhOYtrN?Q>RUzF>}_U#Y>hhTfSoDs!f}> zY~8kf$Ie}c4j(ys?D&b3r!HN-a`oEv8#iw~eDwIq(`V0LynOZX)8{W=zkUDl^B2fp zj10^WZ^3<r<}X2@znEB9m|56C{$gY*2V!PH7FI<=HX+AA_QXPAC8I_T5vPd@Hy-3v zHV*nAnpAX=OH9S&q3TDF*T6m_&SOnv`3&wcguiYv@Gvt1Bac~-!JgsU%{-MovpjO2 z861`tnH0)gY+f4k!SKTT10`o2P1`2&RKHt$DQ8Yv&6zW`b~%%3S8Mz2HN4@{SE#^# z=KS~1pX+w6`qlfmJ|pwG>PHs7Xa0^;6okM0+rqdtH+?~Do59O%Dhm&5N3Gg4C!Ixb z;*Tr;8E#6M|7BWJ|3TLN(9XBck(s#xw@#H+zSwkPri4?a!heRqOPilwdH3&R+Ww5G z;lDkUEQ)tNI(f{${`fi#<_%VUT?@o6y<zjSY_$3p%DQ!V`+J-B%6=Q`)xz5Rzl2H@ zUMaGD-LqrYq*oG0KAn1<zxoaDGlSc5)pNeRsp^lK@@l$^;J2N}|M-<X@u<K0pP~Ha z+e;1B`EPoq|22l$|KOYd(EXcR?|%k|)$)JX{XeYJ{~h$^5c{pvn`~=0Z2LT4L$0T~ zulnNOwG}z}UjE9=D~&drwB&RvH&m_oRdR9x-{s%R?r)dgWPYXKP(M}v<_G7`k)Eon z`{qRpwZCfbe^UFpcY4q+Gc&Ec+w1|M{32_o_0QuL;I6HHY<f}mM<|2g0f{Hi8qC(b z=lPcs)G%Ez!K$xCuE)0DexmG(b<#(Q@B5pu`y1tR)!d!=@{i^5KU`f5_pg<B9ywp0 zF#G%5OHLf@wl}Mb?}S^bo_4yO7O9l~?nJBqD~&}BlHY#(XL!C~@!OC88O}SpiZImf zv;X-*<9AK{=L><Z4D$K?|Ejp`?#uuAA`<Ape*5u%hIvhEqmEbB9L&vKI@$hM$SVHT na`tOQ0@xFmyv$y9d)qgm7|&+q$9-0eZ|qloUDTz){Qo8ZzzzE0 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/bt-Continuer-2.jpg b/modules/tntcarrier/relaisColis/img/bt-Continuer-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..04a1f19ac701a3b0b4dd115b437430e238f82a54 GIT binary patch literal 1285 zcmex=<NpH&0WUXCHwH#VMur3+WcYuZ!I^=Bjg6g+m4ls~os*M;i${c)hnt&6Qb?Fz zL{>^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<<Uft5x!pKI?*u)5A2qPyaCl5D|1TU|I zk)n*E5y{~H0R}-11__2xW=16jCP7AKLB{__7~~lk7+Ha?1vwZB7@3$^SlQS)IJvli z3bqO`FflSSGqEtUva+xMRo4RL8CV2ag%k}P*@OcV*_8@Kj2b5{<WP3ncu+Lx;s+Ju zq@pHHE-`TlNhwt|bq!4|6H_yD3rj0!7gslT4^OY)kkGL3h{&kql+?8JjLfX!lG3vB zipr|yme#iRj?S)0lc!9bHhsp-S&J4gS-Ncbij}K2ZQinV+x8thcO5!><mj>ECr+Na zbot8FYu9hwy!G(W<0ns_J%91?)yGetzkL1n{m0K=Ab&A3Fhjfr_ZgbM1cClyVqsxs zVF&q(k*OSrnFU!`6%E;h90S=C3x$=88aYIqCNA7~kW<+>=!0ld(M2vX6_bamA3<IN z`;0h`HId~rxW^Fwy2Zf5%m|D;W<dsfhVSf?vVW#@-3#Us+~}zqz-`R8YUhLGg?4-R z+_E&k>{a9Vb9!~jbal!3#>VpgvsLD2O?LjzFhO@+-M{<y>i19H{qgRswQIDGugWxE zcRT0plL_ZM9+oR|9r?!ae0~)}>9)BG;@AydZc|x!cy-jOO>@#&Jy;4~2mfbC%=pjn zg=^z~h65%48Ms!idgYcaaqm#jg}=*GcFeMAP*Ta$x^eLF4x8fhqLXd!e%NriamUQS ztxMZ9S=viBq&A#<$G@+*A%l5AuCQAGcV-#0I<wi!>z`KW0!`z;_wzqP`sFq8C#Ei( z{8!ZNdfeiP?_<th_O8sAzok0!@s^M56Xee(ZqoT~`E~-coLhy>m1Dm?G}&D*Fn$!T ztmOP}{qOnjewQrZTl|~b{XfHk(EfkS%YOv^ZC(7I;eyuj{|t<m|7gz=-+nfCVzK%3 z?DaqO{w1Dhkn1Tv@q91Se};fu{oqNOOG;x?7nN5=*6c7cZhNvoZt((@3+TbGnw zTGRMd>=pl~#lO`g>asOewiaGKofPml;NzeEy~Uej<Nh<GzD&4h7-?G4nbH()y~y&X z_k^X#b3XAgo-NZ_7@~2G;kdf`=LKBfw)<*MlANM?B;wxUh3t#@lbe4E-s*Z<lc(={ zcK)}r{|x5ImAj4Sq~xBne-IMD?(y+#vd*O2N79<y?yG1yq~^WZ`QZ7EKea3Ew|)6| zWb#klzc(i?wx7)CD#B2oms$V$KLh*U@9y88P5;ke|DpbVNuUEef`d>&obqf}^V6v! y+x@CUoK}9-b2I#M@|#JZgYd0eTiiUCC43ipu$!-eugkXGex~h<MO_U4Zvp^27aoiN literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/bt-OK-1.jpg b/modules/tntcarrier/relaisColis/img/bt-OK-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8a49e76b636f2da3f0e9003205bcda1ff82329df GIT binary patch literal 961 zcmex=<NpH&0WUXCHwH#VMur3+WcYuZ!I^=Bjg6g+m4ls~os*M;i${c)hnt&6Qb?Fz zL{>^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<<Uft5x!pKI?*u)5A2qPyaCl5D|1TU|I zk)n*E5y{~H0R}-11_=gTW=16jCP7AKLB{__7~~lk7+Ha?1vwZB7@3$^SlQS)IJvli z3bqO`FflSSGqEtUva+xMRo4RL8CV2ag%k}P*@OcV*_8@Kj2b5{<WP3ncu+Lx;s+Ju zq@pHHE-`TlNhwt|bq!4|6H_yD3rj0!7gslT4^OY)kkGL3h{&kql+?8JjLfX!lG3vB zipr|yme#iRj?S)0lc!9bHhsp-S&J4gS-Ncbij}K2ZQinV+x8thcO5!><mj>ECr+Na zbot8FYu9hwy!G(W<0ns_J%91?)yGetzkL1n{m0K=Ab&A3Fhjfr_ZgbM1cClyVqsxs zVF&q(k*OSrnFU!`6%E;h90S=C3x$=88aYIqCNA7~kW<+>=!0ld(M2vX6_bamA3<IN z`;0h`HId~rxW^Fwy2Zf5%m|D;W<dsfhHr}w2T${T_c~o#B-Bm&*~BZ8EDzW)-e<Rz zShjEKqD96hmq)w}oR;3|$G%f()0W+5XN4}BRHPJe^YxtKU(Xg@Pn-7MWml7!U9vhu z`4b^~!HEu1W#8_}?JAm>xh=ZgBHLj}f8bO}xyN07q94v4-Mi;w#EmWGJVE+j9H%Q= zKF+I_I#vC3&$Tz|+a^dn@N`*PoyWjx*RE{wZB0GD&o{%&>-m})DMHb2l{+>)>8bUw z{ME(qZvUn&PoCYot2=-5?YcMpzn`yvd^BR??sTKucMLv1RMx#*HGkLrK8|0_k@flC z*XWj2uUwa8R^8q5^V_fV{?`stR{Lh#_8ysh`^cxL6Gu<<dQ05+`k=U}^4qhG`?o0l zXPCFBOM~Ix#rA(yUG`fNA$%r}yr_qVqL)mz{3mf`<9~+NwZ5gd%x2`|-hF4b^~@3R TcOraUc60uzTy$lq|9=wzSv-Eh literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/bt-OK-2.jpg b/modules/tntcarrier/relaisColis/img/bt-OK-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7974b961bc782388d945935f05349ea780d971df GIT binary patch literal 978 zcmex=<NpH&0WUXCHwH#VMur3+WcYuZ!I^=Bjg6g+m4ls~os*M;i${c)hnt&6Qb?Fz zL{>^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<<Uft5x!pKI?*u)5A2qPyaCl5D|1TU|I zk)n*E5y{~H0R}-11_=gTW=16jCP7AKLB{__7~~lk7+Ha?1vwZB7@3$^SlQS)IJvli z3bqO`FflSSGqEtUva+xMRo4RL8CV2ag%k}P*@OcV*_8@Kj2b5{<WP3ncu+Lx;s+Ju zq@pHHE-`TlNhwt|bq!4|6H_yD3rj0!7gslT4^OY)kkGL3h{&kql+?8JjLfX!lG3vB zipr|yme#iRj?S)0lc!9bHhsp-S&J4gS-Ncbij}K2ZQinV+x8thcO5!><mj>ECr+Na zbot8FYu9hwy!G(W<0ns_J%91?)yGetzkL1n{m0K=Ab&A3Fhjfr_ZgbM1cClyVqsxs zVF&q(k*OSrnFU!`6%E;h90S=C3x$=88aYIqCNA7~kW<+>=!0ld(M2vX6_bamA3<IN z`;0h`HId~rxW^Fwy2Zf5%m|D;W<dsfhHr0VgCd=+*UrfaU`bjQCSR>myhYByYC`c* z<rlk5GA?;9kIW66R;d`=_|9W_M*Sz2&FAlZI`;ni{_d}5T^~hfckkzmcg&t|x%dI& zqyqvTe;kxQF5q~(W{+*zQ>Du}-y7$yPZOB<%4o6jox(sz{x-ebwd)i&Zm4({vqb$( zvz}Y=u{$4|JuWR<{K(d*T9Wy2uE?RHJ*{^{SnS%BEnXi@_z|kIaqGpeoT>V`1*%(b zxeH8svQj>bMSj%<_UONz%k>SSmTvx5oqt#GKSRyqugh=8id5#VdlG08ad-~Dp}*U& z502kO%Xak3*DgP|;kVk`-|=T|zdUCDEsNphrjnhhYL;^6-1KK$+1S~C?}W^Qc|}%2 z#YgqOJ)8cY!Tv&j(v3x34EEbi_W%6P(ERWB;@`#I{~6~0uz$ZxV*&H;tb;q+^0(Nh pw0dv+v#Zu$<aczMk#})P_jBL=37?;?c(H$_`kh%C3;6%v1OOJTgIoXr literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/bt-Retour.gif b/modules/tntcarrier/relaisColis/img/bt-Retour.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d8de068b31eb26b9293bc00979c3b4579f61789 GIT binary patch literal 912 zcmZ?wbhEHb6l4%&_|Cw<aDu_(hDXMOjE)x_n{F;T^KAe17pEV5xc27Diyyzf{`&Ll z@4vtQ|NjRn90j8xF#JM52jnGCUSQxTWe{bM@R-neu$e=WLxn?Op)(tcgq2Rh0|llw zUO_2|iiU$tjf`R(0uKxh9AIT-Q>w`Lpwz&`<hSXIg~77}GuaH&=6GI6YnsWK<;LQW v@GOAIkzK1|hrogJQ@n)DbPF!1H86UM^1PT?u)=Q<zi`CbpTg?r8W^krTTDtM literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/close_icon_double.png b/modules/tntcarrier/relaisColis/img/close_icon_double.png new file mode 100644 index 0000000000000000000000000000000000000000..2e58b6b66c1e82b454812e985a2244d6a91427ed GIT binary patch literal 436 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3-o%zSnvQq*&4&eH|GX)}JtE?E>*7OI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i>B2Ka=y{+|E>{||$}e;yF{&&Kxo z^XJv8SO5R~`9F}fv}9vrv$VAQ&&hfF_U->dLawf^|AFYk2To4TKY#xG2MPj7cJ>b+ zKCrX13keAU&HfKW|NqN!+`R?l-1T&E45_%a<$^n3vw;BXg^j#3q^h<T|4(LH7O=$S zrb>>EJ#YO!p7ZANHOGS1J?$)9cOpcN``FIn6{jq(@IJq48M1Z$YoEz#F0S0YDU;-m z-F7{>WO-y+^qIAL7I~Jss?L1nvSppM$PuT*XE}a1eP1MI>wBwdcTQBq$t|YkhFkxB zn)m;J<GRD0nMdp$rf@Br_<h9#+gD|o+V2As?N?7zD{bf!%Q&fG+q1oUlBd7zTeFwZ zl?yy~D0!&O>G)P5!<E$dEUhK^Sasm$iE5L3cIV7eoix+rj;r}e{<wdt2N-^o`tO%H RxegR344$rjF6*2Ung9jqzh(dc literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/exception.gif b/modules/tntcarrier/relaisColis/img/exception.gif new file mode 100644 index 0000000000000000000000000000000000000000..2938eac5becc9ac34e156bcb31245bed0a5de381 GIT binary patch literal 1038 zcmd6k?Qaux0LQP_b+l`DTTAy0vW_yg!Nw>PK~Mx7cfS~ki+fG<4T29L803WpVb`&{ zj<$EVU0D(BHulgxv9@eu56H1NMmGkFh8bTNO-KwX1|2Yo6U^7nn3x#<0KYH3Z@-^> zzAV|ZW$Wv9%1+%O6lzM*_!2Jpa3~Ga9e6a4TSK^g6Q9aBY(xEayk$bmYZyO`g?n(9 zBm6c->+#1E3=2593BNyrR0)N{{qHf;h2I{c=Uoic;PV)M`3@ZiaU>hZOVCt>w*7cB z8Fib{eF)!N!`v{wp1}JK1gr7YWz6<NYs3LP9xtNrJp}gRXfE2{K<pUav0y~Rkt}>z zgf9l6HNd+A$BS|AHZC`y=P<sVLi7XFRp4kI9^A#;2ol*(C5rmr#{u)+%Ia5l?|h}w zRaUOoC4e1^NhTLXsP#+mOE*!=)Dwi~4RofH<D8ka!7cH$$)l<!S|%A;fn=6l7Rbtw z)&;mwOL(1|4tF)ThJ#FFxcfrD#FRy%J(02$ZA44aUyW%~)8pFB(eRDo>k<7#WHORs z)Si3c>D`)fDB^f_=MHg<A^qW1&Fn3Y)m<?EV4*-d8@S)x>AUVcv9CiHbXi^19;J<~ z`A^V50@O{`r*K?aPOZ0=7G<u`=PeZ}meq;0%ID@cojJ>yp9)FmK9bWzX>zbvG}(OF zN~~R6>svX}rWk$3D;LB(--^jG&N4lt%zCdz$K@%n_T@G1Gw-l$w%heeu^N#rtA&9f zpH(risePdq`Qfh};ZV-vLi)?|6-E1;&htiQR~21lq*YqCq}1>)r3aTt-Mg%{qK9WT zm^12Sl9a^mQR)lTXPP`Nwc=yZp=P$$ZdSK;@-|N0)JqKgtUksJUhJ(Lwe=3DW1Z!L zTVljqVt+ASvS#)6c-C@uV|>-zws`7Xa{PI20~03&7NzE&b$#Mc=C4DA#QNWw+^1;4 z&lR2`r2@qgoj|*D^8-z15|VgdbI_m8r}<BJ2_{>%)ZZ$sT{+ky8I5BRA#cT%i=1WR z{3X9dn;z%#MrS9D1AbyBda0Q7&5*jNjaVfEN$uu8@&9o5Tsxoh^N+&vhC3Yjseu%& NVNT{pi_)oWe*&L!jR^n% literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/exception2.gif b/modules/tntcarrier/relaisColis/img/exception2.gif new file mode 100644 index 0000000000000000000000000000000000000000..7fa3778bf098c4348b4102d90692855cdcb47d98 GIT binary patch literal 954 zcmZ?wbhEHb<Y(Y#cvi>oe^dSc>4E<f8UA0|^8f12|F;kSpB-`L@{_+=9G8!s_)#MF zKc3-py~+P6KL3|we6LXZRVenM-Sy1X=U?iK&Rlu+e_h3;V<&HKS@dE?#^s~OKD4|2 z%VhhL!+Yh>!F%hbeXY^|zasyAhx^$}kN>AJUO0W}ORd5G#}^(ithspd+_O1_&t~Ue zIDPqlKL3*im5-J*{ZC@Jy?N2i?JM8(h5WDA`oB2s;>q(5mv_GH4f<B8{$yeG*-H=q zADQ#9+4gTX_y1&uFSUk0N@VY^p7_7n;LgUm|5F+6t(|)D#JT^?hTkgGpUo+Hu(Id> zfoYGHw){>Pyn1lox$}3<pS$^gM)0>P>n({9jZ0smbbNi~Z*Y^Gher{_nE+Um^d0 zdCrG6r~ij$zMPzRbLZL*t<K-eRqn5u^s`9vPb%-v5}EfM9>4Ph|7WpXICJ$^zQoUB znXfgvf3vwRp1SzI&Gcid!>4AOm(x-oEbn@_y!}ru-|POEAEoktvpE09GW?HY_zwhW z45zQX0@4f&42u7`{aizWogD*Qjr0td89_onSy+u2>KJr@Y+xkuGcd51Hq<t;mxR`| zhj|G#^~iFyN5_V=dx-V;akSSkSF_G4oyOijYtFn`K|(&W+Lx}bN#a?zc6H3m)thGt zteZV|o%FUPdshpDZ#pzf&};W;XZFO^-qqDQv*f!a(`Q}0+%BNeBj(W_X=0L5BY(fA zR>)OwS8|&3>qcxYX#%>WR!K{yhD)xwyVlBviPzel$+M?PqNa+Wnz6D*yhoB_=IpsO z_HNDW>NQK|%#${2RuNn~YyDdDW={TXOXt-HH_LME+fie&d+)ks2b;AOkDWDY7SUUK z;|7OgH>Yh4H(#~rJRZ{?%?FR3)EG`<m$EZfaMIVE)+A!-psZ@p(})y6pwQw02T&Nu zSphjU;?144W%&wOnO(IJDQqlEJ`-K5rZN>wESfznb)wWlrizI?%W5XduU@&nOL1B5 zM2VUmHRTiKxOvrF5+>&P?sqAkSQ{4=m>qo5zfdN=6Db4`R#gD4f&@TQ7tH@%wQ&D8 zNpeh|IUDGIp!XNenj>wdBDiYCnpNhU{F@ffsS%dt+PS61V*7z5d$bjg?luz9TXp_C fhhr_&<8ydSn>4TAyj^411@rinT8PKH8X2qsY;Lqb literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/google/Thumbs.db b/modules/tntcarrier/relaisColis/img/google/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..502aaa322447f6bc23791ed52f265382dfaeea33 GIT binary patch literal 7680 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 Pa47`#`WO9g8-c$8t0G4p literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/google/agenceTnt.png b/modules/tntcarrier/relaisColis/img/google/agenceTnt.png new file mode 100644 index 0000000000000000000000000000000000000000..05b3570a7060f4faeef5965f657f4cae2945a830 GIT binary patch literal 5382 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 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/google/red-pushpin-s.png b/modules/tntcarrier/relaisColis/img/google/red-pushpin-s.png new file mode 100644 index 0000000000000000000000000000000000000000..162aa0fa79147765d6dc58a68f2532992050711e GIT binary patch literal 713 zcmV;)0yh1LP)<h;3K|Lk000e1NJLTq0027x001Be1^@s6tTX`Y00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_00L=AL_t(o!|j({YZE~jg|oAp)KsIf z_De)XC_;Zi@BHoF_!A0>h)6H`C8?TZ)7|X!edP=shFvkqepH;m;oWTZVjs?#Gn2?# z+xuTWQGgAw0XDz}*Z><~18ji3kFZe`{T_dK#NzkLm#O1D8-pc42ja^T9M8sp8-ewl z)ERp-^59fO#dU4qO*?A<*oP9x5R_`^sqj<_aFfnD(1B<u+7>;)cY{Y2EEi>%w@^m+ zDuFwPr3gDm74oTQEE)mWIlBau0;bR$nu!+pttg9hr?3QS5LXAf2R$ZdU5uTh3qbx7 z{Se(?rsVKO?rscQ(z-FE4n6_op=cNI36)b(;_g)RU385(#qV}gch`a~Y1@b#b!${3 z`wXx;A0gI;UfiwM)N^(M&<Wz4cM@YSs)n45DZ08ocK|sCe4i3f0Mfzz#GK*Y6yN7~ zuHAz2AYJ(k5Z5ib9#J7Zq%~@2jivx}alHZHEwylth}%~8S=vexfNdj|Bg`Q|51|1$ z-Xk~Fu`AJq=n|lF+GA~<fGfe0qY16UT}-!?^a;$6xV)B#>6z$@=)BJIsT)=!`CRly zbU=kucJ3`Z=x1>8qv#W^^QI2{o4^`G_m$|aXdjNo)UH*Ku8>l=c`Evb=-ReGS6#Dx zG^_%@M2v?7TlLp12iP^@`xWc9XcKguHcoH~Qs5)NTkMeqz#}T81@_8wXo7pTZO~Pn zjj?VI2y_Ogt^g2IA^FF^tSiXBg7unM_s(O{Yq<8AiY6=hpW5phZXH;S<_pm~92B%o v-&1t&4NM)dx|g0Hk{{&x1@8Y7fc&`w(KT<-+Z<)900000NkvXXu0mjf`6)(z literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/google/red-pushpin.png b/modules/tntcarrier/relaisColis/img/google/red-pushpin.png new file mode 100644 index 0000000000000000000000000000000000000000..203512d5cdf92a3ccddbd69e84e239272c9b4ed3 GIT binary patch literal 1334 zcmV-61<Cq}P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004XF*Lt006O% z3;baP00001b5ch_0Itp)=>Px#AY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF* zm;eA5Z<1fdMgRZ+32;bRa{vGf6951U69E94oEQKA1fNMnK~z}7#aC@iQ&$*np;U{E z*4he7Mwv2|j}QwOhA}E)#eP@?K|X>A2tg50G^m7RA=$!~Y)I&aKW1<tQ)9+p&KaFp zkX{`#Y(o)^fS8C2W3V_B{=g>s?m3sswh%NK_v%ja<lbA(x$pBn@7F~}M6&64!J4o0 z^gLx>vgE#X@#5~#g$u8GDU~(&JqHK|++K8eMqB@pKw9~#RYWBvL<bJgpL_PugRCt2 zIxdb1jK=Yx1q)iSrx<wiWf4fJF`KC~Ihp!)>>w&EBq}JFyzbvmWBK`XDKU}Kf`cDJ zna{A_C^Z3pv%mk)FEHL<GEu$NO5N${^bCdxYEWL@Bq6AC7s~8fzI<Ha=JpZJy(Sd_ zUWJUnz$a~x{akD;9b2=8K3%ttICws|bLT%~_U$7&bcn8|rjo(io5Q&<sR;OHhlM@t z%g&~{m>6<Gg=XM1?rYYrrP}rD>07&<+EY@fH!Y3E5uWnZtJzB(QW41fA}NXYlH0V2 zPQd$<z&9H=(j^eNjNj@Jp074+peCD*8gLEKYWr}`EC~Vaym=>vAag&wbHP{(zzm;3 zIG75bgUmUQISQ}yLqq8;wYnY0BBaUzO<Yh={{)ikc0vMg*a<J20Y-#*&q4kxn>W)N zUS4h39|fqStOBb8Wk^uq+LkRm0VeYl7?~fCoK@%**jp%hADF999O=r<rQb3#{+50^ zfg4c9Y%q*q`y#0c%!xD@Zj7PfbZ^_nXTS4b#u=_a{tFfhp$UB{WhabKdU#a&>-DZ0 zo9*dS$lvxH`P;W{rPA<l_JSlS2q;ua<&h$jX`<`kK^g_d&|H2MvVS@OhMzzn(#Pik zOIFbYJlx$sKFeBbRTWWbDUITO5bgCI=0MX7@_!FiYNMk`E|-@}F%1(xKsHllB~fuP zQBe^;a0Z0ryMRh)63TCi0Bg<ftXRPgzb~4AuUcI<TvkSO_%PAly?og{+r66z7y=1q ztPv`l2a$`ovT(4@_cI2QKq6HXfj}Q0Zj8-*HfCY;kDMGDf&9amf{!yZX%zQ^Fvh}h z6GP}aVt)_4e*pQ>jW!*w*Z0Dn_pAxXWwNqnOflyD2s|FzzMbylxd#Ss!(az$of*Cb zu;)(T$N2ckM8x&I$VjF_f|wl8Ez@c{dg0|G5V#40?8V=q#ZI+cmV`|DMge?V23oPF z9^t@uK&99+3|ypEcQs(h^gz~DWcgIRH$4YVp&CwMB)iGw?@G~#eCH?>b$KBn<br3{ z@$$=<bj^YS)4^2egjy9VSI(G-Vp_4)*VB_LG#a0rhk<J#(;<X~4Ifq&EC*OlI6-ci zMso*e^it0PU98<caJI3L-ZmH>+Wh>6OCloZ!>B0w1k<k!<(IN_>4aXTx+r|2Oa4_H z?{GM%y1JTe*u@9|aX>nd3nU9)!R{~R{{pR6Tg!1A*=)8)c=VIaVu>LzABOu|T3QH1 z&d6rD#1P=+uc)YCf6RL21avyxahJ<Q7K`O~Jih*_38+jaQxA*3Mx&{diCD8GFgG9| s;BGW#J?>-v4+3l*1qx&$*G#tl0#IU@)NF*~umAu607*qoM6N<$g45SsZvX%Q literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/google/relaisColis.png b/modules/tntcarrier/relaisColis/img/google/relaisColis.png new file mode 100644 index 0000000000000000000000000000000000000000..eb52b7d62446609abcaae8d0335ac42229512495 GIT binary patch literal 5725 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 P00000NkvXXu0mjfN)GNf literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/lg_tnt.gif b/modules/tntcarrier/relaisColis/img/lg_tnt.gif new file mode 100644 index 0000000000000000000000000000000000000000..c33e6e844b0709d129fd90e9dd6867f2d08da162 GIT binary patch literal 3711 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 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/livreur.gif b/modules/tntcarrier/relaisColis/img/livreur.gif new file mode 100644 index 0000000000000000000000000000000000000000..2d45a42a14106ddc57e29f4d0c063f497876deb5 GIT binary patch literal 7380 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 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/logo-tnt-petit.jpg b/modules/tntcarrier/relaisColis/img/logo-tnt-petit.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b90c6dc4f74d42f813a4e80d885238ab978300cc GIT binary patch literal 1022 zcmex=<NpH&0WUXCHwH!~28I+MWcdGvLC~c%IlGd9k%5JQfgu1W^p1hgF(p4Kl_BK- zP=xXSZH5*GCOBXQvY1(bBr^*u3ka~Xv4Q~`8#_A(J3AXECl?ndCl4xMWM*b&WntxH zW8>uI=H%w(=K}(Mey}1a#RK7?>VxzCA7BvVU=U=GV`da&U=n0x7G(T?grSiE=rU%Y zD-nQ&or9H)lMz##iJg&|Re*t!1q7KHp*oltf&O4)5ENoJRCH7lHgXab0h-Uq#KO$M z1XIMw#4M=DAjHCI=%^H!SlD>csYuvJd1F!&+y7e(JU~@Ug3N*p_6%>oW#5>xBQVUN za;CVY>gTR=wq4h|EX@*^Pjw7+WIO(?;3`Y-{g~S8RqYO;9QxWf1@q3nu#UKqynA!~ z`SUy5CkRY9ruE5oBKxO^PoXO<n%-9L)>^fHdi2ysJ8f+=`bE;kMV3@OlrD9h#8T(o zyY4~8tB-}-CWtrw*^{r4c>N5s*K66@6~=;(-X_&)*%Wd<zr8>;!EM^S@0N}~j<qeQ znKSQUZ`<SDD>kOIY|8vCl>d8y+nh7gUdT?l_UYE|Cd-d3E~V^wPV>9|ls|pBoNdlA zeZ|kp7ZQb63Q2KH|I_@c&{)k?vCwJ%zp5n%`_KP8<@xH{3;QUs-*w*G=iB{aTm1Fe zcB%5h)A2kBFaI;-MPHh_e0N(`@OIJW%?2@-#Is}576&FzPP%Do9qOz#zg#_3LE9y% zhqJls=IWHzuj^i^#r<oIdv6`LjrZo)Mk$Xa4pY7N)YxuiYirx`<oMj)g&W@e;`KW* zi&^QYNs;*Co2rlfRtW|M`rNrvw8Kw~J3rxZ|M63wG@V{&#GfeI^vt6B<WXtX!XvDX zxx(L6UE`VLN{&R?Z<(}S@!wJvxlogb_c9;0s$H*jVE1SgeI?{_uSE3mu|s=zZupjY zy>iL&o70OO^KY6?p3`*tYT6&Om{uVLv(_)G_ATSHdN5IHp}u0Aiig+IrQ3U_hwIFI z()rv?%jhbjYk)=E!p@Z@=4>s^HRc=hZ)qg`dOXY4q)X!Y;tB7b{EIcwTICScH%+oZ z>BgC$MB9Gpb;TarEY_%UTT29Oe77SnK#C`9`F16TT`$Eiu=p$&VfgVUxa4l>e(x>s zIJf()7y4>6rET#?KFLPYQ=HKOQFruvrS87YuD$Gc@!VaFSD&XUuQ(R!!H}+C`dM!E Xt;1r6!_2hyNEswtY-a0`_<s`sTF-DH literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/logo_24_chezmoi.jpg b/modules/tntcarrier/relaisColis/img/logo_24_chezmoi.jpg new file mode 100644 index 0000000000000000000000000000000000000000..de9ec6a3281de9054beb00f9049b6de90123d9b8 GIT binary patch literal 42188 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 Zg`)-*j2K!lVQ9gHqXrg?7+Nr6|JjJo=41c> literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/logo_24_relaiscolis.jpg b/modules/tntcarrier/relaisColis/img/logo_24_relaiscolis.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f32ea64c5acce8ad3d1642ca292beacbef5cba09 GIT binary patch literal 42143 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 QNGhNPES3Gnr;_U@t~sf{Got=C{EtWp7w zc%{M<tGuI8iTMq^*$>SMf&XrNkZ6lsH>ooxf0U702DRP4is+2HsE>2VvFJVM5ySKN z1BJZ=3f>hwszh?zL@A++#Ub*RPLB~T_5An!HbKvK<h4uEH0$6)GR4JGbv2^lMkWs3 z*6-QtS00~`UtZ0-tqMhOwrRezdEMAT{X{koX#mw-eq={(y~3X<P4AJGHmbPfQw*X} z=2I&HE#2d&W;j*BYttSg;3XrYHFdnGE9Cc=f}<Qn2x{NG<5L}3V|Ken8gd3wD0Qs7 z+GkWAlhh5agf4Yk&s)0REM>@Ux!pMl^A$I-Mp<AJdlb_5xhJ8ds#)7QLTd6Yuk4kV z$b7aHRDJjbu!)!Ho&-Bo{*qG^6ntyi)>uv-dp4@wi%s-dNp~8IP8u7Y^G$vz6G*;$ z+lrUkb)>9G$1}&rbBdRm#w#oz!m!+uL4l)N?#j1O!L?T16e}2Q#R9^dXHyDa(xB1U zw^V*EpZCZkt;6Mw_nZ)v+pgg)b4ZKU7#bEfRcJk>;C+zAz~n$IE#Bu~C7%(mshp{> zYMkrOs*CY9k)<9th_2pv-t&+;CdN^+Sxhg;_WhRZi_Gh!F^gLq#>-hYpaqGB4ZNjn z6vY*Uop(1TKBDM)IF|?WMJ<5$gtizfBD@~**QEAa?4b^FmZ@y_Ll`c-93ZA%{Sc1b zuM^yVs#{_E^fDpKUg-E6gpS;gxgTF{qzcdvD2F|N?h!AsKCM?0dViHIr*9dr+o`Kt z^5kZj-DoRSrSU$&>no&!_yg)?QJ-~(MrlgJ>5LriFTC5wgIt#q6eBVVtt=}qsEF#^ zMR~HuwQ3Y5!}n$ra-V>_+M*m8!5#C+8>UUPF~E2JDCVDi{Qg+xq2C6Dyq%ah03Dfj zy^d@>l81!`TSmt-T)&H&jP95^Z=@~Bg&DfE`q~7ABCjCuP(=>i-UH-VH+nn8dX>Rw zD4{F9^i3mdN0vX3=;U1iDeO}gs-UQDM@1<&{(4K@<KaQsoG15WoEj0WsCTv~#c@4k zub{xxd}BP`fNw62iyI8*Bua)W<gzKWC76$iWrey4i@~V|ao&9TKuk251~mT3vjo|d zcH*?*9pOs(5h|DAv6@(S)WbnekH_eRSXDhJ)0uTJuR7<q(5{*pj}-z7<YZII)rzWQ zG7J&Qr)MD77pH44&8rjVO>WKM=S>epsSf4X(^L!6KO<V<aJv~Jb3LYv<oztok?}#* z2N`6HQ+aXPd2+|`Pi)wRPVVC{(}pJ@q~w#+YS0~PxOI^0VFX;J204nm#;4nt3Xk58 zx1=kn#owYVj~(*vDkf)Ch&GbUPfW$<*bwz7u8^opDzr81x1lJ?FmKHoW{^Rx6kDt* zk@t^%`Erdy;JF5f9E_Q861jq6H-BBHmTA2-*o4!?YH(D}V_^?F+~<IZA>~8W``jD5 zds`)Mr1leO2H#f8&_(DxumYv;S{cASCDTi3@^;Ql^9Oq&+Cm8*US?^s?ROPJ(?4C> z&x#tDvU^H^N5$r8Yt@d7aRz!dCQ!n<Yf>VJKBV-%-<|4mTQBEMzJ=Y+{$n?>^iS$6 zcNTR;$L80{5}b=<Nym4in(F*dkpcpx-U*7Qq~-|KQk!cx)i=H`y~X3QdsVI(glI<8 zQiPle+J&d+;|Qm~6$15~K!V>i)$e;aKEwa)${<yczodwqa<aN}Dq~#PJRvX8wc$#d z5VB}@x9XjOzW1H&k%=jxm2FaMm3OBDuzSVi7@j^>Cw@oUaKh6A5*4H-Fp0Nf0(ZQF zk1$7$tQI$RPwzGIW85tm#)_)0Fm=i7ze{~1B}Pu7k|L}gl}kQVi$_j|!l>VJl`~B7 zl?qmc(@uZFt{{xwiZM#2^Hv}?uIY@p1GI+VieyuYwiEZjU{ywbfpg)=1Z7qWaUtIs z$nj$~!lC1}>*bwOkE-H@2v%tu?BAvL-%jQ|%+z7D((p<tiA>8Vh{$1D5EQ9>f}c&f zMx)40SE%uVovA-=n*IGyicd?Cb4{SL?9&SBMzXG$K;`!-eZ|{D{O$w}%n2bJjg|L( zQ98<%%2|cov5%b^V~fe)rm8P%M=E50tj4D9PFOIlJMm+`=Ze~}!`A~UL19*^%VgHv z749M>EyQ$t+S;QLA<xlW)NO(;j2{wC=Me7@b<^A@S|*Qw#%SzA#K=LlsG;j+(vkfU zRH9Vmg)**97oB^uB8IUZd^8WV8?QINusq@;xjRz_8DNHK-Dzs0B#K-!Is>r{FHuRC z*7&{GBwhk?H(Z)2c2yif1cE{%n>~pb;tm5Rr+o8TfCuUN;z2B0qhp>u2=Qd)q-mw1 z;;amwp_xhGHmVC$4eU+vgObw4VRXp}h{0Gu7P6GyCILki%`^GbWw7@(-O|)IB?9=O zoDK0bT2q(Jo0|4$U7^8ELv6O9vF~9d<{zjFKC7xB7LijRXI&0ERW+bQ+EEGa3d*$; z!_($zE=69Z)iix+tvBmLF%}(#6I!>KQ)ZCy)S9$AIJ+vY=Fs3xq3-G$bzul~s7$uL zoY3$?J{&|x3}$_lhywoG>cZLRllg{PI;l<-YlgKE<VJTOu#wOK2El9C0Xd+99M8>T zITN+ZtcD#gqH5Vh)FmdPn2RpQgei%wy=4=Sgkv?F(vGCdpqsf|rqvopm#R2Aw~b?7 zv3c7!@?gSA6zc36)@dyp{Yva+ofjq5JxLOCes__V@VR$54PsV=h-~tDDx#X&$jf%q zD%G{TRM++iA?9uTLHz+*sfJQ&oPC)F`Gh-eq=pJNH=_&)xprdcZ>t6iJ@Rtu+izYl z-AU6sU3il=Y)?C6**n%7k0xIaRl~*DF&L#^p~eZqk6kmU(ylsvq<LqBQh`rL?vk0* zmQ(=6XQtu&JfpqIuxg8(YZybs+IP@^+nj)sH(^zbq4tRUO7~ui!jQbl2V&RlP0x_e zddRa|WH)VkU3lXUG`E5YYRS5LN>%N}6PQOk4F`kFukym=CwTEOdhgIgSZ?67yfS3+ zhZA`^7>onwJEFP3O6-0W3JH9sWcZLXnDrD7*aIY@_aGwcq{DbiJDOS$Y-^kc-RzDl zE^6*>Zb(`!xZ&H32KR}MGg~_8)?2>p>WF~J9p9+(aN_Xp9!qnv#=AEnZD~mz!`SFc zQ{)v`OxKdJ9B!Aij;vZ6VY}{7UD`c*h(uO{A}rjaqt_$CsX-#Y>1$tNf7DJUJL61s zb8rjBj69#=A`^vgY{L@iLJ}}LY`aTXvSJ29iqg{>eL?)Xr3g<056>f3SxOEGgXn`5 z^6Q3y7`<yIOtf}A%%AIHs@)Px?=xsKvQ4#xsg=A}W*vLwN_)j+sy>V=Nn=Rs3<PP` zQ5A->8H!uH`EqyfDrqqWX_|IPF;U%H?awGz%QKs}yi`4WY_k-e^Fm1qTGrAFialCG zo$jek9xcXUggru1&SDxG7|5<Lk5jg$PPx}i$e!gdr|?1^$t}(WLoSKptvm~DNaBr> zSzuG2O$6eCWt%~E@*eb<;UY-uT0<f3(uvwNY5$K_R1KdN+e)xmwTj_bLYD|Rf=$&J zC$knBTw!M*F#lt#2G<Zu+mQ$RLcvZWYWGB`rY>`ikMFTfGjQMBD9Xl*tGll*{ft68 z+c6DSR~>?Th)*jM)J$RYu3t*&NR6+6L11>iDVl=)%|<%L)-CiIhVG)w8?42H^y!j} z4^~8&UbM1g4UxRDQY{rU?h9xQQ2LNS=McgA6q#P^&OnQb%z)O+OINLVCXH$5=W8<R zy!sD6uh<=beljHqnytXXBgF|^%B6m-S6N)_>x!h55MDe=la)oqIu|Lt<uxTkGX6^B zL4IK^Taex|7K09T-GGi#{kX!G32Muhu4%QaSTpBvj^kr4<)Lsp!Rx-Sy`?cO-@=o% zH!7%xvm!dEcgAR~geY<Bfj+t|e+t;y90>G`nnffj6`RphO{-HIwe7inW1Xb=-RnU6 zvGNn{>v$OU8S+fN^MP_SMdG8)xNW$PO^fieUkg~{Nz*N_VfXDe(PDHENVz+c4O9fp z-s;)lX_=AAw=zoaO(u{hHK%qtYUJw|J94WcPGXIj<nK*5vT)RHA(0vL#)y2#9Zl|x z=M}YsTgMDN2$NBK2udr3@mo>VJ@>sX>;xTtx$~-SCEG+g(g7C>Dw_HdYpeHRaru+A z{^7NuqujJ0UE--61p4I-L{iDBcr(j2Ys)q2mGUPNlKQ?Wcm{_Aq|S~7`J~=w-4o?c zLDqbA92;H9f{^xJ5<+Qjk7gCIz^6v=fyOO9jJLRHk`X%$k_k`)QVwVhbp!4UreU<( z(u0~1nW;9JdZ$hbTr2my#Ds&MdSuZV#Wo8Rh@>w&?ZbmeHM1T%luzgJjCo{MGL$BE z!eTd-9i3=$6vZyBCz|nNb1W*GOCPA>zw9^X6>pb|Z^?WdFI9doH;9OLO&DB0FNypF zv0cEQSoHa!h?kM<a^ZvR+;%Ed+Hz;)(1ZEW@x8g~XZ?1amRxdnI7rXsL?TJ?@`#(v z%=*)3M7uflQpfa>j%<hcuLlRa-*#+<N?-Bc#HL$Y5;R?X9<d;zu<ISLeM<fDF@hzE z4;u<KGvgxe4J7zisyagqP?_ZWOQA58mz!+n5e8}yH+1z5DS`Q$$c=+9!I4Py)vVRL z*$$0mTs3d-7bPkxyf>|0(JqIE;B!#%z&fZM;2*@QAD6XNN&0c+RK+`tVXw((Yo`fV zWcp+Tvv@_~Axmq|2Fc57W|hX4FE_TEG*#9aWGeaWdM?qO&Q`Tv#ba>d7NeK5)v}8= z-G85jFl6KtiR){1_@UQc&jj<car2}l_B2;tbY^6j<P_8hG^)e0k?p<MsQ-$F^3GvZ zT#gxWOhvuNmbz7;cHCA^LxaL(j^TBy+}^|lV1ukoM!|~I?1Im$_vrk|%-OE*5xJDj zIlN}f9?8?X(dK8oQF60NBDZ6NA>Y`}E@&ZL?U8_M{DHXO7%^W}$_xLeG^%coL>2h< z(Sq2QOvOD)g8B4Af<;{VXRrdRg1E2DF)RgJPa@5P+3fLk#NSZekLWns!M9jZuY3j_ z9vxuuEgwk;&MRcnc^R;Z&kz>;NtJ>w$}IPZqay?**8z27qCPvCBAMj_G26Z?;cEzq zWc->=O7q~P9^yyECL1k#LS{}kWv{l@WyBoJdkN0r<HE_<5#pyAk0QMkg^_UNucKpO z7(As-2j0CCoLy#H$jl8ou>~^w%0IM{xa6}`KcBfB&0W;}LP(ZtbZYXt;)A42jnAE| zEqDi)`~$(%H!7EeqVLBs&R(IC*Pw4`wctB=DPS=mI`G11mb3`*;F4M*>8xtPR-(@C zG}e_**Ef^MXUqtNcd^n2XYFdrXpDw)@$*`f6|8frb<OCnYf?!$^sn7O%P{IRs3SV0 z=@aabv+Po@)IN^sXB_AJtj{bRZ>3>r(x@k5I}qhT>l;7S9zy=co`B(A$pOD#7(uH< z9hh(lLSHmhpj5@nRWqG8)_v1~!ee>r^^>=J<sm0AHdr)c5irS{pP8@|K9tWtiXALl ziGH&1c@rm_sxhmN{t~Lf@Rg3S7G|A=>}-Ofs3098{yc0x|J|}HO;1|`p75a^U~D?K zV$qHB@=E)cOHZ#S4)!jA?;Uq4H6L6feoRlxsmkOS+FYJQCRye**XH#`LG=Yco`?Wd zhD!qpijmkSU82?u4CSe~{DXFP<~HZin=PYg8yj)uTaP{DZP_Vi`9mVCW3F3*L+y4w z^QURZ)iy}+S-BR6*xI|J7jVZi_Wd&);l&S|Zr(Qxv;Ux_A}(N|at0#hfSX$5Yq@sH zv#&BO@<L}8hbWJ8PKd@erR|#CzWR0;6B|LL5^=Bc=S<JkhbOlgaPQZPQhm-H7w~xS zRIFW?KFCM)V3`SRAYI}N6tdh~xB*jcxu(zbv2=}SitO&7OMG)qzQs&B_ri<gDJ1jq zBy#IKGMNvoC-Kp%j7AX1x)Q#4^A!byu|gNoD^K$xUcvRzj{>t%`M%rOZrsPN7AB)h zFDx!MjDEy)yIZ}gY93|<^O_zCRN1u&>j-78=wn;2^hsVWK(S)+T44KVSWX<Kckfz7 z5q?*GytMtzI{_&jStswj){>GeTt=QH3EAeqx)jiT2HLPI3l}#J;(yk#Pp7)Pw<M_u z)~Q!Avsve>n~}d;MX-W<a)0*GZLaK{^;4!L(c1ZRdoxYhfZ-~WYXY9`mY&t}`eX}} zV&*3$$dx90YTLX5T@`Fxy~hGgB2(h&eirR3#Yc4F9IM@aIzSK5GY%P^*Msfc!ss8O zcrI^OfWKs@d)Nd*)GDILFnq0oiX?fN0FL7+Ia|PsG>isO9mbaOjoY$tQKLggC1v$P zce>jsg=Ag|<;HX=iOaI0A>FOghFZ^YJ9%F%Wx=-+G(L2ELI+!AkMr_*m9zRO;4+!7 zmeR~Tjn#|T=HT2S6FtFvl9bmDG9fNaW_nNf9xCTlT%wV0SP6$9ROwqC`jzU3`VhSo zbe|`!?{IIOXZBjhAAb<bkSppD+Nk&F!5xSja@et~N6M^P-_~a+n$;Ta&>O22bDD~w zNWH@)-?y%ry$HQISL1S|_0cL0ViJ%uaoaG(%GEO*xxkd*QaO&t{#Hw>r)fjGY-^Yx ziohFE527?r8>AizVQ`K}n$PYv&AqqML8{G;s;!U$>yLx)&I!uA%ITQNg0<Z>UKkw= ziZ5f=P7$zOG}zef;K=cCS9DN2?WuT0agu(Ye<$l1p<e+Edjkz`JC%xRsHqe+aCOSS zDGZYEf{ljyAX6H}oF)zf`^qY(Sks~~i2ia#<)ew0g14qUBY_=$LMYw~+auzC&WPIG zRo86T3X_bIw4-}@97YKqOvt*~5Fzp+t@-Ffk}I}lLzMjoTlSb7O9S<Yj}L3>1L%6O zJH0Y>(3)psE0ulAyu^8YS}j%rXBX-;aS@*#&{Z@V`nWxMW#gea?wg8m%J$%?;3p~~ zY1y^qkz*}<7{+dhsOU{$n~xf2py!gqUK>igizX<=%r;xoPsCl;Ac(3GJ=*@j>|cIg zhES!c$5WKoX^-zMs@I6H6{*lpF?_~G#3_z?<mJ073)=RHt{zo|XAmY0jxFUy`S=bY zeHp3zjeF8HXxvDJh5M-LgxH(%FyhvPHbnxm$MOV350N<D&6l1!TR@m>;v=wZ!BLMA z_tQm50u==NL6Ovp28tfR549AcJ)GZfUamJHNkF>B7b4jw!hQ{ht^E+#gG$Kaif?UM zW?8<-RM;Z{r$L9|^?Vx=aTqrYr?M=qSSu2ta-3yLuH<xBEJyJqWZ10#c~9({np%6T z>smKd%vJ(p3oy1jXDR*t8p+g!DaatVAG>Mjy}dDWda3hfY$98W+7a$6saVJRb!y;w znJ~A?PR$D3xGGKm=iI#EHy_ivJ@v6jE8xw3#(Pu6s>s>1r0+1_{*HUf3+8)axB<bv z>3Sbc`IaR^T_m6HS8`U2AF-`{AZy1nc^M9`;Iji}@QK@Aqk4-Vrrj@{GEH~gatOZf zvf=~EI`Z<4x6-f7^C+m)SGu^?^s0HF-QhG!!Xq|xt7%RP<HY(#Q?nh`qdR#*xRIwc z-8bn41+uW(S0q<nf<JC|bDOW6^wn(oKN`O6woDmG_4WmwPFBb@J3&?9Pg>2OgC$O3 zSEMP<hn8;`ws6@c(=~Iu)D4~&i@7ajc!fWwp&_6cBW)0!Q*8-F7<FhjJQ=hh)24`7 z_B=wjV@J}6qJQP@&w(2`eF<*AKxu<o!B}Njp`76^>t-~Gvpoaa<5&Y1<FGq;%S2L| zNd>~RZ7LYPbKzFRZ||=b%`tUJw@Ky<NcU*S_cPy<Ewg*j8L*Hg3`ZYeK<_)~NU>^d zwaz$MRh-CcWu(}=P}kMF&sG>tD7AEHL3lA^*%m60x;3nOXG6E4QI}Lpm%!m>>pQ&r zZg^BLxA|7Ly%64<Qk?IVL=LmEw1DNqM9~vs3!;b~6CTIfKgxu~XAt3we>gnA0|~VT z28!W^hH2Q27)5Z69KVN4y}LVO6#?Vvi5#yA?|<JrP%JfZyQh_>QMbd*BkRr<wXALk zOnW4p4UALh)Yo_NG2J%E+mArdPRfh~3|ofKHsfUVH4Ew#6f3tCH|>vi*|8!vim1Ok zNRwa%`&g=Bo71(*WW=n#g-Kt%vOA&};o@a5LQKrif5dG(Vf6G665BsaB}ggKMoDgf zddUC!b=UD*=TZ^6Jm<u%0vJNyt1^kINH2<72PK5rt`{1I;M9<4{_aY@BV*R4XIGaF zgxlg79=-!nZ^nv9aY#)xT+-KN(@2W>K-ogcb(<OkS8ah{v`S@_N|pRTB2inRZ6t_V zcz<;#K3s%vH@6V$Bf7QZGT(~0t3z80DMfsv%ceAZOwB}T^WfCzi<gvrA00<qs6>Ou zeLqqV?ZHmLw?9i`8|~s#nJy3XSj5Df_{3fZ9rInyNB5guhJ^!tahod&E8_FTB}pii z?`{{E;|LB#H(o=iV4aG2Uxb?Oy)>9aR-z35#KkhMRR`6i_+2Q5bdYL65K+!!tLNc< zHVgB2=2#wxruSs)$_-TIMz_ZoJ=-{%zh>(@=rZb4Q%&08xF47yZe@5skodBr*Iejx zyH=^2^t$GsJYPdGNrpX=-3#m#O}KYeh%6amGK#qRi^`6MB(qjtPfn-WKDL#K&@1kn z=-RwaOEWN{wZP?~?SYe9rL3sX<>7x98lz;ROkCYn=S9z;+RNOKoGmmwQf38}Q`O4N zj4x>hlV^mZV8RKwYkEq(bIJCpZ#OUC7VH@vxkWFC<8(i-;6UmaoPbtvq|wrQz=oaP zyttlrBVzchx4Sl~x_aZ0gy8$D*3YGh$=x=rs7w}7SPO!mHI>)h$BJoYyb<xZU5WHj z$5SeV#jLL5dRMAxa{u8M1|j9E+%*GbcZhIst-)oYJz2#MHPSo`RTMC^ux9sQ>SYy- zBQ1NoljH4-L77y^Mv;io*jT=oYB-Q1;nmX<Gv?I<l<(jzaGE(FsDGH!CXwu%MSmPV zb4A`Uqhw*9?yAbbVj81)CHp|j(F1jfn;Z*1N81%#Ir^I$L+Y{ev(?-+GX|-R!;<KD z<Z{t+V{1aL;AgoWcS5`4@{`(eT*nMc?|vBK3NLJotZ|)BK1?Z58uZ(f3r9(R3`Wt} z;_|++MIK|xV-+%&_R`el6yI&k!~XK{tu4u3Kt4^<0{LcA-$2Xlm19S{OPx<sG^d$n z&p;x6QaJ2KZ&%pJrd(kTE4O=Wjx`EaqAUV=hEh&V!j0Ag#wGRBv`%FL3Sq=C@60e` zRs-D)RwsO&@{VC?#U5!jYwaw0?XQG`VL3J7?SV4A5(0)GveXcw0@fzcOBS*9ME6BR z4R($l`(EbkUc2(fiei0jo}uFA7%QJWTfjAJCz+hb;Z8EHtv69|<=%-0Bjdh9_(+U0 zw^DkW6Vf0$G)~XnqwOpna_NcWqfEnhoCTr5ec;hGo$l0uyUr&B4f<30yk?%W5aaj4 z4)5i{5B<@kNL70;m#9)yTMS--8wKHZH}5gzHpscu3xWAcJ_HrFPwUk->9Hh~chZo6 ztK`+RaN&(h$M(5x+P4%}B_s&daBenVnF{x@bAWTL_5(M+9an*xl)q{PcJcBY_9C*> z386_Lj0k&9SH^%BuGgcf`LOkJW>yx`ilt=|nfp`XK$O;KTjNb_v;*t=ZLetLpEsrh zTi7|^hJu-H8{b_Lz#AwD><bK}C@>*l+Mkk*c6nM6LTNM{DM_b$gMr<8mhy8oWJ4qG zUjKd5kl|-madvqv98rnU9<TCK$zttZqNaw^aC_Rn&{)+EbE+k@9`mz^Y|+0r(h<=) zrfiX<x6mB^JU}fBf1D5wSDD5EeML4D-u{60rhD3SO;^ip4ezn3g3@Sb{QVrfECNbX zD|N1C(hSNeUQ|ZrHzT*Z9#ZXQ(vY*E=dpAiKdLrZVGc;%5LAZY#ji;=xMt&Zq!9Ht zC32~k&lD70Dag^{SiPsE*~5PQBj3Y^saI4o*)L)CPd2WOL&mG?4c>4?mX6P0gg=>s zQ5(=2)UZma(iDjK6JWo37*21D^w|7ay`Hwo?ecPMh|S5|=~$V2V2E?_F_YxA&}YpI zVj1pn^pJ3A_m^&dBKTS9#VCqmR?p5rdtRQ}>j%`7uzPloiG$S4wWZt5BpfO4g||2z zQHHV0(A+A2J}#J7U;*-<x9rr!SyO0qTKUK)mEo0mqYk#t<n+$u<h>nN@9kIXS3VC- zv6z1#&DoStvR*S1&%B?yw~Lk&9x)*%t~4;geI)7Yj6A-(1*^*B$`fLW7>C$*Q_0$+ z%P$d|;<b>oKi>XWf~fS!V5_P$U~!Y1gp?N@Pj4ezIl2%gGC0l{xb##yo+hI^V=QSx zCMH>pm{^O8YNwE@av3gM_r0#f4yose-PjrE#?0oZ1#K~d<@)_Dm^&^<fHsH8)xGF| zKBJ(}a8de<TltrRZx&7ylhD#Mt|Q#CAQRz=Yjsr{Cw?u)bcH5bfh3?lS-F@ZK~|7w z!ixXy%&bCSsU#Qm<mfVdQ=9)ZW2bOOAhG5grS70&`dd}R8J0***v8!+1*7(zO4(4< zQB|bXN#UqTJ*!c{aj4yv?n+e^byz*e>wIjqSgX2pAGA*o#2E=}vW#qBo5YjjbX3#& z>|vP%mKBfhI@goNYJxQ9!NPdWN<Ec1&lHrgm4O|x{ZzDLt8*YtBu-;nh(v8hvTngC zrXPc!k;{n3zf!4vBZvD03H}B_0It}}>v;XV*l-x_6btTQ^Vyi_Lv8NZX-%uOYqE3- zJ)@wtIE9mpEG%eX#bw2tqS~uv57rLqU8F6X*+*7Z>~hL_nEUI3u*ZqEcZ?~zLZm*j zhkZm4=ebuGV6U!II>B2ImQL1KluxErl+ISjs3R{QCti7JAce4jBKyfkP#m58)p+bw zk>}hvR^>tJ8&2+qc6n!@(fI7q{?Fy%b&Tl#S~`T+cdn}AO7+Fu%rvBWN|k}P0N0mp zr%vr{n?!DPlD!&lJPh+>{N&$d7}QN5X4y0)8T&9+_kF)sV7MDnE~lxEmuS<PL!nU9 zU>kZPe@u|Co`LAlBAb+_hc;xS&~Ag?48>Z9E?LbX@l$d*Yh@YJ5oS+zfWfXwYiwX{ zTH*fEu+HO}il{RDLXSm4wD#++q*=Eg90Ww@`KC*;wkf-JOjR?!-kl%`v?UXqS`a=R z-@HM8E1O3>fKv^jgm@7hiO!?s-rGAYr95@KEol9mw8Nj~%+VRKZZ)~2l<v%TPBa&@ z8=LbeX-Kg;MTq3Y$&kFigX0h)^&B4KsA1|PvT-yG>OX|PiYd5GPFg>*7k#C9ovQ1W zy6XK04-05;dS+kZXbdyoSl3gXT4cXHtlt2!Dr7c~hG%&)iO=CRe|fVg)9~?gkk`F{ z0dX>t{o_L8A_*gp!bg!BIR4?z*RZc^C4`^G5TGaB&w{t8SC0aXc0MDWzkZ+uq6_e; z-Tkn#e5*MKQsat0u1y-E*d<~fF&;98lA}nzBbDQus*B|!>K?Y|>^IF>GgR%#z<sn2 zAKuorx`NdZrWQBr-Hj*pK?~JjP)BFCalcfEd(v9a0Nq(V^F#YHvlYzjcJZn`EGBjg zitKi>?Ed8E(!Th4q%Tl<$GT(Q^Q|2f4&Fu{iQwt++ix@01aIysTrGE@PASrrc_U0* za3kPpE;Y`*L!ZQ#%Ymyx?(5lkEHiKQW>#n2z5UAA+)!;!nzPMtbaeOvK!juAc>7Lo zKxPxrX)Fq!l9-{^&+k!g3>p|%*lu!56CUtH<BdFewN$QaiX%$0ffQ%_+>HidS4HXl zty_gMa4m1LijHa9bgnh`Yv_$^@K&{Rmc&WBZMC45RoZFAUB&wR=p}{HX3jIxfb3gn zi`-?dFn`{jpgc=~mf1H>uD9X`f?Fs8)XIyWA}QG}W2wHM6X{)t1a+A&sP389fnBq8 zqo>k*!wUNL@{G+>t#sdjUy-|Nu7vN}-F)5srs5FJuvo92V^F3{Qn6S_^I8sKGE>e; z%Oo2KPV^kHoVLJ8Kq~v-Lr<yoM9tN1{Kc`s9(iKqmr$u~q%2NssAsVW>+#;x$?Wz~ z>A>2xa$gF`&oeL@?6H#85X_yjCo<`WuOcstc%SuEW8FfZD4WT-T}I)Z9NxIo)A-_@ z0J3~e^^r4#w%(2p4hN+^L+DB$lh^(J=mLAe8*_H@spYcvgqyG0Y@VTvzDwHh;Iut` z&y+Ja=@D6td#s~1@_=qDyB^`Xcm3oBxow~65~?}We6m_>JO!LPWI@Vr6UWBIlW|Mu zrVL5iwIl<zUXMyCpX1i70BkzC>sW?xeuF3$tjCqyRtb3~-j-FdKu?i7S@{S@!dp1u zIvSS$WvUvKd+;7`eYRc(Rrhwc5MWiU<6IWEZuzg?pirfJK@(c!fj}@OEO1MB?&dxf z22cGgncIPj8eIS_6+PQ$meMj{whMZl;k1ZFBD+RW7<obg;-ge}B7r%`Z*6ZW>WDD! z`$5|VT4{9#GN_utA5rj-#Op|yiPRJyzCwiThNm*xP04UaxeNcLjYGRJ3pfAlD)|0{ z)uoR9<-tvPsH<rb$He3CRJpL=oZI-^3#j+QA0veZIala6y_gO?n1spI$)xZmHSNUr z<Hr|h4Y$AJwz^DsHzCHIe{qC6Jjf^#xg+tlLu-Ic?0v2VxIu@^c3Y<Xw|nlTuIB$= z0Js@P=GPY+Y+HO-h3EBRsDDajpo_oNBCMmhAqJp>KuAYnxnE=1dq>@TS9OwQ-!tVJ zSnbR+P@_v~)iU;aN<fL~tl@<zN|B&Pmi*mM%F`6CHq##x(=NpJ**VhJ(Ozifno73w z>Y|Yd)ZB=tS+6AN^s?XNF;ActISsgJlJ|AVH(RrJZEdZ_c1JOFv?e*6i`$P?Ex!)S zK_e|!_-ozj07(VHpP5((%i2F2+wC2py7xyU-wZ{r@QHBv^te8g&+GS}Q55{&#B~V? zAP4PcTB!v2nOhBH9&=^>GUd7)3#q(EV2i~Nd5(6uW`K@&MjGmK=-;BIBi%|NFp=Zl zyhT({DhhpaJt9t`n04ICajrkzH!@;5P77EsIEw!OY|Cvti#&e4o%2I+*%^R1nQkp7 zmNo^GwW&~94Ryk><ZJJ2TsxQIyQ}H!xoaD_R^kYr-d{rU$W3io1l^v4!*c{ur4~-~ zCWHn6Xnjw_c{hPM>cf^Yv@~;iReuiVdPOSCgyaF+UTt<~6v3#qhl3=T&!XLS@e8?p zqODVJ9Ew5;oT6mF$SykC8;jZnhcs@EN}AWxzsG(L6WcU$OOUt{x2NgAtkSA>6_QU; zSFwIpJ;VlE@(%0UzV9!1hivi0SAM0IL|$b*NF_+I*5wDQ>Q2b8$o<8mh(_#WV^tIl zLw|?NpILyH$@EEQAr|*DtyIf&7jli)iT&Q(we;(64Gs^;*zcRYj)-jXJmmue#>P5{ z3CJ7i&-PipCEA$GuL*JmqvE%;cSic!3y<Nw#21K?{{Rd%13Gk&s-EJkXs5BL+xyYk zYr67SzHr!AE0x((TN^8xt<S2q)7iVm3$pc8WhEJi?O7M89qUroBI9;zqxmt&8Sd9h z7;HGTTRNRP`>ERKMI3H380JO@zfPR7r4bdGz&kp^sst;3$n}`JhVCy7@rLo(oa4_t zfx2v<wc442TH0egOc_PXN?DXSXp|>XWeH6;+|9~6H+^uA0&E?xe?89W!y+ZrA_<qZ zjklx~8IUBT$a_GDu_m7#2P{`s+{f~%gWBU2LS~J}f{sD6TA38bV2ysD&d(hj`0EgQ zOy1{^Z2-b73?OHSuy)}vGH9GZDaZM!Ijh}vUy(N9GVDF6hkSfjKvp}enZ%v_jDDqG zQbr5~J5d_6k!qyhSZTOd+P*7~HyQ}H=IF~U{I<l=?XBW5_K6qvT!`XU281+>z9{{y z{{SoQ<yPcnVYA-wMYF}xMuaK4!5y5<%o<Hn2>hU_+@wMuVD$nQeMK+KCVY$X-ru&K zLNU?dV)Q}qJ<`qU5%-@Tu|}mguv>h5TsNM$v`}&qXQUG!Kav=PRUR}5%t8A}uT25C z!NTmJ$){g*j{;Ni!#6_SO8YL^MNxFBW+*vfSdRfr^O7lm{N@7@sw3#4om&uEJ_Yu_ zzIncH<}p(pvm=wXOWBl=)cTUzF+($`=udEs2_4Q4LhJLVxowZaHsZ$hznJeyBMlvl zOaV}SnJ#4NAdH^@Mw!P{T71I6=JR(Ie0^6ZDEK*oSx+;%ZVhbHYdj=^X+3M!AQt;G zKux1Yj9dtuu@R-~0|v@=&;3nIyq72N53~$ELuzq#qUQN3R1wcHVJFTjMZ395Dyo{F z!rOHO0Viqs^$>BqVb5OgGZ>xG$~R{P#?ilhv;hocqjdiOXKddyGl~z!T>PX|uX_BN za`Cr?)*PE+KPkCla@{U=!EI};<HP+hMWB+6lW_#Kg}Kf~T`ie{L}L}z^vwtb@0jX! z6ur(C_SKZ$xu)lyeWp)zWD4C|*dE_W6soiaVP3=9ovRhKeJIzr)hud@$mWl7xSf@S zUI^d?IL)<T-D`7@1-({a#b;O;4*vj|`;7NMda|)^NGi~@-^1)P)UEROam*~C>9vH> zkFMg(ZCso}ZLC}>M^VI;hQ#@rXt#G{kvUOB3Q!bVq?nZ;023JUi;ryiPX7RO?rp`$ zHn3xGqB!mGxY#C1V~P;W(oZ`_^1Z{4O#u2MRVs=FS)%76U2#Q*)!LhPjxMe;d6Lpx zWimG~ye}-oD#vebj!9c|`P{J~-PkjdKnqm45z@E=o+;<vPox12Jm%SA$FQ{52wNtb z#>2Hnr%_r>fz@D0#_2L#>ySj}{{T=!fqhD02nW3`f9V&x=s9nkhyMUsa&D)vhSApQ zRY;Ut+L<FQ7>zp*dey(oM(I^Lp8Go7a`&|vIGclC{{XYJj@I8HHP~xNT3MXk-H4yI zLnAW)jq;C>sXZ8JkBE7*R;c8TP-bg`yTkjgN^br;6GOI5c?d`-?(B=0q~3$MU}+E7 zR2dY+NhLs~Nc#_{?v&%-b$fRMy1B!U_YK}oP05%OCMp$QQV0=@trvNDzD~j*Ue#8h z4NipVRmi^BHwNO_ycfpXZrc|Y*TS+%m6?jiJo3^pD<@<<()SNvt2z={dUVih2+P?A ziQL#<>eu>mxWN;^=uU3fTGY!hE2#X3+i$2kX%NOAev+5+(`m+8oZtPt`<J;hN%&DN z65t>I0HgWExh?(bb<>f_`1~OE1MQIwynl!>=OFF#{2;~7JwNW$k@u1{|JK&$ksdM2 zXN+wdYoxLI{E3XlLHu-L1^)n7WvxCUN1B0bVf0c#BQ_(ZgdMwzCS=3rP&Ey`<nUGR zF6@gu-q*Df?;Iz4#)Im(w{Q&5r&@Z8+OkBat5K19zNP;Fv%Ye(;*IThfZX?9md(y~ zM)I2WTU?<c3E!neWHE|X{gA=WMAmJLQ>JxOSv62q1rCbHu9?wU1=2Z^SryVy3Zg2c zp+u%BfDBUrfPe^UkS=Yew3=Ia;$)sSD$2vPm6XwgDe4G4D0=GZqmgAqk~UU}locR? z7!goG6$MD4QV9eQM@>8N?e^1)Zq>|%N|7{Ony(;92-gB$;tG7GMavh+brc;(NHkFB zu8@cU(>VHo?WHEk-kI(`-1u$Xwr;%~)r`VO+r%I3BQNbEsVM4tGP4equ9KU`XW)14 z+RW`8&1fgWUqWM%d<gSbM*W!)g1Rv3tfR`h(1t(FJZAC<j?u@tDlRFF(KM2B{);a3 zj3(n|6G%}!{yv-$Nz2B@0TC&XFswokZNg$6rn!xm%3LGv>t@5Xw}qv=dy}@ZSxo+% z(Mkmjwi8uZl+d4$_l5apPTs9h8@r7;yV@@Dmv`)(g~Xd_n51{mr+hNSTK*p)4GN<U zl@2=?{P4YcDE@!OzCtS{YdG(jS!$(2RGpI5CYwoFQEbHhL{X9>A9AcPQMe)?Qk3mP zqqoim*0Osy{5)-lu;*RhZ?p-avs;r+&-BBqA_b>T-$1P>NGGnhAKpscPab0-z}q@~ z+@hxN+mOZlr0pS}y1i@bc=!RS3B{fQVNNYCFJ_1PzC+4ZNW;QU<qPlI-p&jP$`yAN zn#@}UjNobYhi(W8IBLZL9qNTC-KyZkAeKb&pAc*=B*9!@c2*Qc4aE(_vY%Gs>42qf zC1F<`dLRNZ<bc%bJMv#H@7`I?L7m=Nww72rTg4afp|>7hjB04F(058pO4I<o00D`8 z@zGIM!zpmUxkmZNI~2;NUQMkX+k@2{s;KoSVnCrI5aF6<9mlkbvY<g9l`s!YGFyk* z7SoqGcewcLc;<GNO5l?!W2Gr><eKz^G87&(MUX@*@}Se-fcJsC69;Lxc^_wCcYTGj z1%>i4cU&L?&T24__<Zh$PMuunO9kR?w`;beY2_Aiz49fKbrMkYnG_eU)n`bF!9>{H z+_;^xT5QmrWe((NWEw{~FUa8qlMyDm+Yj1~$J-l{-+ONC=1+BR7+5q@<m58P3xW!| zKuZGaPn5{+7sMzuBa6O$)$eV~x2`sR(7<B$uGE=I$p$trP32YvSz1~t0f8ZmYK+67 zY7z|B&b&jzIr=6Mot_nH{MAvCQS{qwF+{8O3bQ7_P-!0=t8`4wNS2)i?KM>+qL7B^ zfd|)42P^Pi!R9C}-*j0^9(Doz3+s0=UBYTx<&)-CP{+6=it47NXh}LkaVI<P{u-9* z9j|*7xC@d$5o2<KTS=%pYGX7g{l6)A*+~=)+yEMc)~^})V&I8ulf2%_Z|EJw%4k^_ zCo>YCL_sJfi5Hl;zOAU`G6uy}#8Z@jeS2P;X^?+sBPrRA-Mrzuvb$A!ehKbbRg`!u zyGbBmJ|Z<E_Gzc6`@~FVsgT+n8MN^`m4{2X;O=x|;_;|R%AdX1d}=j0c-h5#LB&dY z>YgZtbd#C)sLS21Q|}Ekc)m_IYz*7VTBp=aH605kf!Su!0wBSHA}O{(A_#!Wy`i&q z#>3n8dtYbaVzI&7gV_{)0Vk_Gj%xBq$E!OM#QD;IMP1*#_cr{`UT$68nU?!GIr-#r zIw<I=8V=Qs6i_N401qnEn61z1M;dZDG5frynW}i&!A-EYE43AU_Zhi*JNF45$6hQ% zP(77F%HV(*qme{P*<PVAY;Q=H?#FC!p7s9#lx5$1hmXYOG51Ov<}%MMqnghEh7S2b zGzK>*+N@7^Mmm;$(zib~?C0JVyAzGF8LUo5(3Al^I3c`^NVm8%OW6}D)QMvc-046K zMKtSw%8m#tjz<x;%T22EvO+b0N+Pt&AXOi<g94MKt4Gn$Eae*_`4ViRiJT6(6flX0 zs7Fc*?soRJHh|a>@3pYoBH3VAt>egAI>ab@QPK$IP~)RAk=_{9k8!UC&w;(vF7Z45 zeSszR<!h(7GTgm|(lo@MnUYD~Cn#uDSRYM*9ioF!ha$&#v9IIXe3m>>rKa@8y(pzZ z7-aHTt081j6Q>j0JM@rfVxb_Z6<4@&fs;&k-*MhAZy0@w;P!^$$!!~m?{`!dQX5E& zxgun_?IIeP5G57Lvv)8BRMxtb8$#>fZeMrp>kZ%}vD%YfMlUAx@wAHAFf!01Gmhj8 zi`oqtg#f0YVtlvd0u7T*9P5$_R8a)dM3aUgNK}XgO)?OvY*fln*aP4JsDQrZdDbGZ z#mYHR3IL*#ng9g=9S1->J{pz(0QUF6(#Y~n#dvP!Vo5LpNhYL|UZnVw=5=fG+~LRc zZXW~{e>x69<RDO6M}2sfam4W4=fyCQk^772mW>1}g84%b-G3+`Pz}dz>@y+mn`UiK zZ)YEi<o^KXys`YL6Ti0M<@{a2tdHL$N~iGs=eDF%unwoDpbkIV2JhWI;+HL#;_u}g zJ~Hnij<75O&fomF{W#@j{{V0iLkb$14}j~cPP^ng-b<BlIgsu1*IA~K=|#4cusu8H zsK%hGtEAC0m<UoJ3%EJ@KmdBqVI5U&^51*Af8-#`Zym#Rk;p|5iC%Xu$rvSqEqoL+ zv8UTzS<ckiyH{jmrNwO>yJ?KZ%PEzjw@%2+i~ui6l1U1pzW_DXq|z<fBGDB}qF1CX z7MZ0%77-DMiiZ&N1zkR0U_v%Ip+~8AD;S8RQ1v$Z0QhYEm$^6Qa?5UQOkCG_S>B3> zwV?B6J_@7Fn1BaTK<lr4(Ym(&%E906UDK9^#{+CDB(j<hu@HSyNd5^L24+42opqq- z9tp2q;a%U4(UVLP$vFU#c55w^$e7WOE-=$@b~xCAh-|4~8vTVR@|-|S37ti@`MPy- zxSwi~Vg0o3o*uEt!Z%h~BA({wucp^f%?-qHgX8Hhps@y}erA)lr?*uFmG@G)pK|+S zmoKrCw#&pcw$|3w9;(^R4A#<3@b#SBG~{>^s+H;8um9KInTk??n4$A}01o0l;vWt5 z@<0ke6#Ivt#)HRL=sN!ZS^kQe_?=h3C_H=PEcWsJ&a~vX-zPf(QPk{XB-}w+7XtK@ z)`(Qa09nbl*j^xH+z+|?o|=f<@9h&}a|E|LgBvIEed{2rTt<PQo%#>=5Q3z+r}>CO zpBMEy4NHCt_jkUylHSv9=Amrf$B*SmByzVF>r!cLF%3l(=^TNh@*SOPO8IAmT$97< zx>{=<zqCNNGKLF9469jUj@-L+tl_I<LS8fk2lT9fZR`d&zN-6>{ipL!9!YUE-qw=) z4;@e9Y{8yB+Vm`{Jyhx99T%;2W?X&lhlV*4I3vey=&W+hKy7cSZzyBp6`1-`)8da$ zuy|@H3XUS)C%C$alw!FQOim7?B$&8NdWfP%*$0i6A%k!*bclR4A4tk#uLE|^Z+#I2 z6I65{f(Y;`N0I1s{e_19)tWGu7BejkJ7kU2_=ZwSFg|th)Y`><LwP%k&~F+x=D7w9 zu}GRxclL&vc9JQ9N>ov>wo$Cm6cY`L-BC~g_ztBe!uOxe`yLx>8MCqFv1vsKdWJ>- zc?p48zRs?|bm^$ezdfIDj`)^))xb%J%1CNtux~{PJ|x?)c&lEgwN}3!P0FvB2EvI6 zdBSg!UtsHXQnfU4-~OW&tivX&01v=Bqqpa&LAU<^G2DAbtGYPaRhpm{wYdyG@Jkxg z?(aW-qb7Uu@44@0+WegpMN>t)wRLKFe9*gt@F%o=!$uY!T6p-nWf=;VRE|(X<{@CA zo{+wt-Na`Jzptn1)0t`cg7DO_sky{vqnF|7K;P0QAJwMr>+=5P=*bp)hXXQveR+`n zqXGWCe$M=~alrx!n^&@<wE#U6{kag_2j9?CT6_RD{(AMB^8(>?LeS!~Pbb6Cgjeq- zb5GT;D}T%TnkA7|T+RwO{y&J7zo0>;3*Roa7wVmz9|q(LBjfH?$t@!qfSlvEM(v{8 z%{n(w`~bU#lNTSDHr~9H+U<TY%U<37$TA|={4u1hrB$!x@3`$#@f)L*@b*@N>MI<L zPw~poroVQasPYe%ibCR^FGkYi-2j3U*JPxVK&2mLfob<O=BgN;`xO;G?H_G>+jFnG zZa|JN`5S}c#@a|tC%aiGPa|80w@^oq(BF2v?szBKA0M$h^PMKi-X}(a$)l})6t_!< z74Z3;KK(cw@mHI9hv(0nrCyx~>;C|mQN;)ga~VH=!QQk^6_GaIr>H@Fz4srFVlD{x zE69I0D|2&W@p4eTwmP8G;2Jf8KeMTm&&SV+H$3}d<FZE*@IvIWY0)n7t=s|l_A#1I zx2LD&U$RAFeg$!>6uL%b3SaN5QfCF!wd7X@w#o~j0TVb$2gNi~RYZM^L;&Ic05Iv~ z*q+unb7D@J2=?FeEZ9B9;{5(0%lP-IGKiF#(xEHyC#lmvzrEM<R{erpWV@UBUI6@p z*BqkKAihe>ht*;Cy$`@?`J6bLgLwea65i?!)0t@4jbiP!@hlyhF$9z7MFgap5I(J% z1s|0M1X&V?u|rB;PT(#s<-25ub?vk_=^t!YP=5w^)O{))1sO+@NUoIf9y&^Kk3Vvc z65O+GUCRFe%N|bYZ6~bO@-eS*Xxy4Jc$Y$sO$lSFxyT+OZLL*uwk^u>63q88o5kK@ z+(y1A7{mP`m4*72i|j$$tj)>3-rl-_+sE?j%tI{m>^<`Yw)CpQcN<3a_!(mkhL!Q` zT~2+W`GsI-jwrX@!Jgjh_NB3vB#xgSN^aL*yVN!K>Nv>w%H_KSOp+CPgux58&Lb}I z<V`>U_bFshWT|%#fPihLM*G;GKUzpu97T=7{A0R`hyMT>L;BQd=&|>`?fUK@@@Dc@ z@BNu9oRRusXCKq9)IW?qSjeaZc?C#;NJIcvlexBB2m(H%+KOcTQ|<k~9c^Phhx5(* zfpcY!v{U}2(i(n<yX&oNm%bhXv5&e8o=);X){$Ab1o(K$>rd*`qsJa17w<QDmh!ny z+ysiR1we~Cbrt{+1EQq--*rU5N;`EX*MDC@`04!FKbKTd+(U85JL|p?LSV9vj8B*| zOVAGvq7&z)FL{1pY3R=f9`XMGZ04X%e<&b)51|bQ+eVU}71gTYu0CQc4G3s_V@-~L z2P7a#OBkkkVVM$aB|N;_u~tFm!W)4E;E@OPkfEvd$2?20IHwu>vt#Y(trdXvCF=9a zN1U@a&fR<#p$F`!9W?{F8<u$kmGVoH-#d<L!i1Qjs9ShJ=}2KpMx8nq0K0zE9U3}I z_y(MRI{E3ipzF|U|IpvYjT%}sX=u@*-LDhlJJC#?%O2A#;9(ImlXb|M6^E!kZI^J+ z>y+P^8%YfIz}Xw55xF*oHu}DETSFoJ49Zx3y(;h<^L%Y)2W{@`m53f5jm)u+(yGC9 z0GHr55$1(MFNLe@lvjSE#6O;h*hklLB_Aw<a*zHVnrSkA)4jgs9psyhts`^i43ov< z`>7~j)Vg<Z-t0ZXV?r!^m3bs<<uXAphuZNLKc%$EQ^to8)G(MRvnYV?@+ESz0Rw-) z4EW>z{Ux8-KexvvhSZ&Y!FN4BrHRs=J?ndfQA4`z&)RJ5tNMOTdQ3cU@ezrNWig7f zJ8kJBYqYFE+wm$=?Z9=tXY9}0&80iGLrvHA?rsn3D<Yrx_-jh<-e0(TrJ`?zhyMVM z*41hERu<7F4~AS?t(b~L;K~<pfw4~|7BgoLUw!76f9v`C>2Zqo-@$lh4`ap{p71<n zi`V<B>lrKe=@XUrAI`a@Xz#g8EF(T5IeiiOp%Lim1xcvYk|H&#rEUQ<gQYS<LdQk{ z1J}?#k+MVa{B-Ezw$|RkMv-AK7FKAYfI|#%Q|ujxKHW8WUB|eyj`C)+*SCzur`DQD oYJbM(POWz}$I{WGOGb??8Z@+M($S+!MvW~RG_+{a(W77g*$l>qwEzGB literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/logo_24h_chezmoi_RVB.gif b/modules/tntcarrier/relaisColis/img/logo_24h_chezmoi_RVB.gif new file mode 100644 index 0000000000000000000000000000000000000000..aef322ce95520d4f8103b5a8f73a9f52f53124c2 GIT binary patch literal 2860 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 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/logo_24h_relaiscolis_RVB.gif b/modules/tntcarrier/relaisColis/img/logo_24h_relaiscolis_RVB.gif new file mode 100644 index 0000000000000000000000000000000000000000..b50b0cf56aae7624499d136231874185ad4acc16 GIT binary patch literal 2936 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 I5cIeI0}<6K#{d8T literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/logos_24.jpg b/modules/tntcarrier/relaisColis/img/logos_24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5da054fee855aad9fdcbade4991f6868b133f686 GIT binary patch literal 27396 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 UVANa(D6jWG|C&P$0@MG00M(&~(EtDd literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/loupe.gif b/modules/tntcarrier/relaisColis/img/loupe.gif new file mode 100644 index 0000000000000000000000000000000000000000..317184d42adb225250648e4495317d6d884b0022 GIT binary patch literal 649 zcmV;40(SjJNk%w1VH5xq0OkMy|Ns9pnE?L({`vg)s@0YK{`~d&^Zfn$n9F`SoCxsu z>^PeS`~CX#`SGpRn02~R!Qip!^yBFB;yaxR;qck``}Xzv^55^*(dfl>x>M!y-|O|} znaqIc^yIYJq2BM-$>hAq<GRl0!r}1Rh{I|=pAN_5x@xpUcDhsK@!fQ~QPJqe-0jn+ z(~*qDa8|1<V6Qm$`}KFbRglMYcDqzgry_vAV4ly0`u+KGxKHNt-?-bRSgS5)vq7=g zon*2-z22=-s3%3D7wq-ti^Xro<G4tp8d$6@+U?P;)|s=}pQX}|QK%(3oCnM0zOUDt zhr?-Uv_yKnSv{T%@AvC|zg|3@3v{_rve}>5>&}J3XGx?Ri^Xn6qZn<rNm{Hh@%ZgR zpc1~`u3D`zx7(#^v_<*+_rTw<=JVj~_UKZnC$QI?v)Q1i(~`g6uZhHK@%Zk-;j@j# zaJSs1?e^)z;j~w)E&cxew%Vl3<-dx>ZSwi=000000000000000A^8LV00000EC2ui z02BZe000N(fB=GngoTEK5-nN}avlwbga!yrM`bD}FI{Ai00v%PTsLh=PY!xK2#_3O z90WUYAWk6=1VJH(Y9tPBB1jh_7g>2TSBC*hKo}z%3Sd+nA7Wv~J|G`-F*pnZ1{)#^ z#snA|4F>|}3~+Pch5;xmXch$m00IYl4_1dl0WK5@0}9+ZP=QE*A494PAVeZSfE;*q zSfJpcheI|}0@xsw28P3rAfYIkz$8TkLM-fn{3yf3lmKTSB)~$*%$g`A0vMrD1VDrY j86-?_n1K_a4jKy7_-ORd8;4B~)!7pDP=%_80s#O!1TaUa literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/notes.gif b/modules/tntcarrier/relaisColis/img/notes.gif new file mode 100644 index 0000000000000000000000000000000000000000..3375cbf94c96518385d77b87bc95924236240095 GIT binary patch literal 1021 zcmeH`{V&u30LH(^H7`>;!<?6uQ<_OlYDvW|AxFvlA}#B(dD}we?JmZ-JI?DJcV$>x zIyrgim{qj4xD1InFC*kj$jeQ`h1}2+e?-6a{P6tvY@g5eTxI#5cfU&`XvFVA0;@&P z@bQC3epO<n2+$68$uX6|iC{tdxT}E!ya4`SJ*U4}fT{F>o_b&hlPQ=@0lr{juiuHe z0Sk4ex<xJ^7pDdS4H$~7;CpQL-5Kd^*!*;Rr$4GZFAUoy-#a`pmm!y>X?jD-WN{@N zFJNV&(SG%V@07|Nx;$B;D|X+i-(-@#N^!DVTW!2J{kpC@WZ@MZzeE#q^XCPj7>y;n zE6LHCa*mrq5;&-;!ZaUb22cuZL2F$WIiM6L1z?T`^k5~sS{hm=W)F7AXKKx`oZVWV zkBz*i(mk{%Gc6~{8hc<I+p^)7TynH&<>QIM^dM*in0&Ogm@46VV@WV3H^PDtX#d%A z2}^uQqW?f!E+&$oEx~NY_DmWu0(E$)?7{j-^l*Fm{QJv8EyBqf8padI5hbZsU@2>? z!2t^?Tbeyfb>yIOR9#st48ynNf)u~WMiZ<{#uPT#kjj!hfHiDLfIjG?Ko!sgfcT$( zV1S{cQV61uaNghE{{+);oUk#n^=qtP8r*wm&LVgOPjryAW6BYk82Hl9M8012WtY%| zi){6pDxb=X(OhHN-)9OfMB$&EgQjT$GrifD+)SV1{%4-KXH9Pke2gr)(*>s)6){qW zb5!dw6*Wh6#3h;@OgXMTK-JrgwqjTJ7hBoc(OssG`I%>WDjiwg&8NbQV-<$WrdQhe zK0JN>d6}1;wPUa`<5n+yz|QF?)rq+laU<I$OfUKnTS2kRbgeZU*LwF^GYk&f()m$> cHg^l}$0|mrf4)uJg;jMzXGJ`pLLn~x1<)&pI{*Lx literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/picto-delai.gif b/modules/tntcarrier/relaisColis/img/picto-delai.gif new file mode 100644 index 0000000000000000000000000000000000000000..3364dedcdff4641b2a8f38965c5035d6d595107f GIT binary patch literal 403 zcmV;E0c`$9Nk%w1VHp4#0K@<Q|Ns9`R$0~8*vrh$;NjtBYi{-R_3G>El9rdi!o+-l zgR8Ev)792nVPl7jjkC75y}!Yys;r)&qu$@(^V8CCc6i!zZO~6g?6<Su;NZT%!QzvS z`|<Jk<m29jfaai_A^8LV00000EC2ui02u%p000I5ARvxpX`X1B8VIDmMin%ZI6+a) z7-}5+k4IsqP{;y^+G+UvH4qxYLO^vW0+JIWz*HmzivdBL7ziAV3a>Po1RMl`gitb= z7s#bTAWp^cE+h~E8B_oregX;&B?Slr10oj`C<bK#fdB^q42A#{7aS;Y6%Hc<0S5wW z02mf12MY)VBM}O*tN<1tC;|@wwYLKYBpeqQ7#kKIBMW#VLIe-FpBoz#lq0^tB3l^) z2`?f72?z=#0UCVNCI);3StGM!ktzh2#3P#zadfcY1x%HQ(0~CwYIgV_XppZ2nof|u xs3KPe0jCre5o91Bh02rx1q!}^FvP(F1`IS1NGREGqyr`a6i8?(uI7jk06WFCmiGVv literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/picto_localiser.png b/modules/tntcarrier/relaisColis/img/picto_localiser.png new file mode 100644 index 0000000000000000000000000000000000000000..0631c121ad444c813708f9004c2a176c56b07df7 GIT binary patch literal 2341 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 LNkvXXu0mjf1}A4_ literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/tnt_logo.gif b/modules/tntcarrier/relaisColis/img/tnt_logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..a170e265d7a4ae3f89a62c1fac8cb3792d5004c7 GIT binary patch literal 1531 zcmV<X1qAv>Nk%w1VS@ld0K@<Q7Zefc=;;4u0E>!<|DRu}M+Q(%OvS{*`-wbJDGmS6 zuf=#oXHr9wL=gY~|L|b}uA`h_E)3#a0yG{E|FeM9)YGS0Ch??j|Ml-}Y---Po&Vy` zi#-YSfi%TY1T-feA^8LZ6afDKEC2ui0D}NR000I5pd*fCX`X1Ru59bRa4gSsZQppV z?|kq7z@TtQEE<o<q;kn@I-k&}bV{uTH&_Y<i}7Kw;LYzF7B4Xrgka5X6BIWzp-t~x z%r!Z^ZO0E49eaXo7hN$MbAy6~GKh+chCdsDkAn{jFB@u=gBO{boO_r(7>S{S5)dpG zr-~99EEKJ%usV~94;~&I1-g$G0Vo)hgSy5KxC_B2!;i+g$cn%?8^s(G000IC1KkX~ zg9Q~P)q)Zn3E3ap83qgy1%nOCB)5AK4e0>u2JPSRf-H=yQI3v>bRRMtKoJ0f1wjo4 ziYVAdLWFDz>5-@a0U#X?5*=VLcM(9w6C5A^?ukfaB%KEw_6^XOLW6`oAVoC$m~CbY zn>YvVY!efJPZmHwhI|2Pjf8XtXtG$aCqXb%YaT$AssaPmHd?Q~+zP{MRjw*zwef&$ z0F9;sJQz^RMytuU2Ir2wI|HuVvM;fzs)1ENgS{DSz~zA0Mqv(aT@+527=h)>m@{KG zGgQ#U%9;I$xDZ+=G0%53tJVxh<mm?=(3Wt?rhqmPv)C{&Fj0~1s15`%&<K}7Vh0or zY73TojRoGwKOSE}SHOb_v2iy~H=-~bYy$-qnC<{>0_YCBufeu3c=MRuD*})`;<W9^ z?sIe3DV}fskL{I5$9W^r)`o4<H75Z7eEhYMz+fpDC_p;&D7c>pr>#NZ2$onSf_dmU zkl}>$arhnpBs9gr2P-HbA9)CLU`#J7J;N4?BUC4V1h<(e$X^0F7^033^!TBSy3qKM zjTe#NA{!o*m_l{7K`6oj-E{L+8`@-<Wj%D<N5UfwxCJ7Z2O3pE0A6m%MwedVClVb1 zSZRWaQlg-v0BWkhQ%IF0P{EmF5(U6gCG6Q}3Uo{$=ba9+nARSPqA(ziK3ehtq4hb4 zsh*TR3Mm@|rqEQWQ--?2sUiLs&P_s=aH^!K(kZH}v6`A|tz6!k;;z~q$O)<+0(*j@ zzK+1E3d>Gv>k0$5T9pTZwt5=>vB#>)tg*PV!9lAgAPX%~(ndR?u{=?yEu(Er04@ns zewyvGDJ0i`yj2;HT(l%eXq&q93Pb0+BRuI;p7ZwVEE_xm%I}_}hG_7?0Ve!rvJOlf zCB_myxbVd)jOb{gxt=>=h~6cDvA8K<b+4T!oYnxrBCyPiAm5T4afA652ocQ=*ldD? z7tt3qSQE%5bP4KRS0TS5OuVxQO()GO$e`9`WQ1Xom*~1B?8`<22|`VE&(VeBHN0T= z%M;8eOja@50rzXNhV7wk8q{}BICqY1D@!K;k#zOaa4Bq~xB+k%b{JT|IZ(mk+?W6X z<!%*LKr~q)jsoS3pTLU$p=)2gW9csx7Ukm%qwa!^tJ5KY>n%vl;|GPa0N3m@loA*K z2V}_m4BoLPJnbKASZ53pS~pE5BYrmLOV7K20bC2-)%*k1w{Sg9TW9iPEi3rG$3+Gh zBDM$QcLnip>W}aJ`}^cBzBzX=qkwt>pkKJyJEDO7qQ*blWM>2blz;$H;E4Ww08uco z#~?a@00LO%ZV&JuIXJh64s<{Z6tLhUV)DQZJ^}$C6rm#SRl+#9NkKPCpD_9sil=B} zfUZ#xSfGN#86+h)FzE?WVAY&^RSE?^%#9H-R)Yml>lEk6M&w$s03veY0R_N@0U(Hi zDz*ZPTI8Y*9P-3?A2pyP3XuT@2B0KCU=fXfW5F8RxQ91lB#u9*zyRKnfCwbukLt(( z1bXNKEHNMf97v=ev5^o67>xynM5H1Uz(_$p5(pSLfF=(h#v4>%lbR%C4L%7<QCi`Y hs7$3QSINp&y7HB<jHN7RNy}Q=@|L*FB^5#d06WY|nFjy> literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_arrows_leftright.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_arrows_leftright.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d52948d95ef38199a7299e7d16d4357200571c5 GIT binary patch literal 58 zcmZ?wbhEHb<YwSzXkcJasXD^=@2}!d7DfgJMg|=QAOOiQFbVebuRP7T@4#eFzb=h+ L8-A`AVXy`Oorn-o literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_arrows_updown.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_arrows_updown.gif new file mode 100644 index 0000000000000000000000000000000000000000..7f4437d37037a1ef197784ad376722b234d6605c GIT binary patch literal 56 zcmZ?wbhEHb<YwSzXkcJasXD^=@2}!d7DfgJMg|=QAOOiQF!A^FujI;R5TCQ|+=&fq J?uas20|0R{4#)ri literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_close.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_close.gif new file mode 100644 index 0000000000000000000000000000000000000000..9e4ad7d09d5e04693d1c7f64d724b04540ed1fb6 GIT binary patch literal 62 zcmZ?wbhEHb<YwSzXkcJasXD^=@2}!d7DfgJMg|=QAOOiQFp2i`voFZm%~Z14toy@U P>EeGDlV+%}GFSru)J_n{ literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_doc.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_doc.gif new file mode 100644 index 0000000000000000000000000000000000000000..5609c8b65a84240429e32798b101ed5806a464b9 GIT binary patch literal 64 zcmZ?wbhEHb<YwSzXkcJasXD^=@2}!d7DfgJMg|=QAOOiQFp2l{vvXfOajWT!udr}m R>F4y?Q|yx#l!-7{0|5RG5*q*j literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_folder_closed.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_folder_closed.gif new file mode 100644 index 0000000000000000000000000000000000000000..ff367cf4dfcbc9789ed2e7ab283cd4c7550d7f07 GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcJasXD^=@2}!d7DfgJMg|=QAOOiQFp2c^uVm-_6*2kTMJeWO OY3JYRK8j#qum%9hY!L|n literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_folder_open.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_folder_open.gif new file mode 100644 index 0000000000000000000000000000000000000000..7a93891b0bcb5e326e600e70398727d1728a2c85 GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcJasXD^=@2}!d7DfgJMg|=QAOOiQFp2c^uVm+a^~m_r#%)aN OLW+N-CIvAtSOWmea}eqP literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_minus.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_minus.gif new file mode 100644 index 0000000000000000000000000000000000000000..0f1df159ffef13242e3d2601b95dab56fef072aa GIT binary patch literal 56 zcmZ?wbhEHb<YwSzXkcJasXD^=@2}!d7DfgJMg|=QAOOiQF!A^FuRP7mzp%3;=;o$- I%NQ7}0e4ys^#A|> literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_plus.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_11x11_icon_plus.gif new file mode 100644 index 0000000000000000000000000000000000000000..6875dfb818b899957e11c5203cd7a12aa9c1b5b3 GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcJasXD^=@2}!d7DfgJMg|=QAOOiQFp2c^bI#s=;Y{%QLkX+T O@SOc&nm9#-!5RSBToMcb literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_7x7_arrow_down.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_7x7_arrow_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3d9ef7021bbb94e99681143674490218f494542 GIT binary patch literal 52 zcmZ?wbhEHbWM^P!XkcJasXD^=@2}!d7DfgJMg|=QAOOiQFmd<vbDS1<%j0c0mx;j| E059naNdN!< literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_7x7_arrow_left.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_7x7_arrow_left.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d1c30b072b2c0858c84e2826eecdc1d94cf5a00 GIT binary patch literal 53 zcmZ?wbhEHbWM^P!XkcJasXD^=@2}!d7DfgJMg|=QAOOiQF!A&-r%yQEJ8zP(RWJjC FH2^-n3*rC( literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_7x7_arrow_right.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_7x7_arrow_right.gif new file mode 100644 index 0000000000000000000000000000000000000000..5f25ff41c13cf823545102bcb3cdfb0accb4dc75 GIT binary patch literal 53 zcmZ?wbhEHbWM^P!XkcJasXD^=@2}!d7DfgJMg|=QAOOiQF!A^#RIYgN_QoV{*-!=s FYXC^c4EX>6 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_7x7_arrow_up.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/217bc0_7x7_arrow_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..aabad1ea4295f76cb974ed4bd7cce8101aae1469 GIT binary patch literal 52 zcmZ?wbhEHbWM^P!XkcJasXD^=@2}!d7DfgJMg|=QAOOiQFmd<vH!#-nO7^Ut#l&C@ E04_NTNdN!< literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_arrows_leftright.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_arrows_leftright.gif new file mode 100644 index 0000000000000000000000000000000000000000..8eb1a4f58accc82a86d34c23e683b88d003691d0 GIT binary patch literal 58 zcmZ?wbhEHb<YwSzXkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qU=r-<UwN8w-+{@Veq9>t LHvC*K!e9*mtgsNN literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_arrows_updown.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_arrows_updown.gif new file mode 100644 index 0000000000000000000000000000000000000000..14997c5047b00bbbd6d5b1e926d72cd98b705ff6 GIT binary patch literal 56 zcmZ?wbhEHb<YwSzXkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qVB+uTU&)otAU<c^xf2`K J+!1B41^|Dm4<G;l literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_doc.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_doc.gif new file mode 100644 index 0000000000000000000000000000000000000000..26a26f6314eded595b2d24c18ac6f6afd9cc8585 GIT binary patch literal 64 zcmZ?wbhEHb<YwSzXkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qU=r`?XXn0n;#SicUt!_C R($DF&r`RVgC=+3@1^^FL5_13m literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_minus.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_minus.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc89f21891c789daacb57fe16f6da602175a5c5b GIT binary patch literal 56 zcmZ?wbhEHb<YwSzXkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qVB+uTUwN9Be_>}y(9KQv JmN76`0|1564^037 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_plus.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_plus.gif new file mode 100644 index 0000000000000000000000000000000000000000..b92ab3a58ed4faa55c89eb0c14164db61225694a GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qU=r!+=bXL$!kOUphZ0tw O;W_)mG;xXugEau@j1pu3 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_resize_se.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_11x11_icon_resize_se.gif new file mode 100644 index 0000000000000000000000000000000000000000..240a3dd06e342320b6c3174e435b10da4e729ce7 GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qU=r!+Z&+RZmZ_xR)bWB# Od*U8fE(l~`um%9?ITCgN literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_7x7_arrow_down.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_7x7_arrow_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..3019c30e758ded72c72b5a9945f50ebd578f979e GIT binary patch literal 52 zcmZ?wbhEHbWM^P!XkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qVB+rS=Qu6!mdD$0E)#<_ E06hT<p#T5? literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_7x7_arrow_left.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_7x7_arrow_left.gif new file mode 100644 index 0000000000000000000000000000000000000000..363f1c676cf06e63806b7db5280b5cde138a9c96 GIT binary patch literal 53 zcmZ?wbhEHbWM^P!XkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qVB+avPM>hRcitpnt6&BO FYXD3w3_1V+ literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_7x7_arrow_right.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_7x7_arrow_right.gif new file mode 100644 index 0000000000000000000000000000000000000000..8fcedce30efa5c5fd2502724fa957bdf826db71f GIT binary patch literal 53 zcmZ?wbhEHbWM^P!XkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qVB+yfs9f>j?Tty^vY`wN F)&N#F4N(99 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_7x7_arrow_up.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/469bdd_7x7_arrow_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..83ba7aff113d38a6e9b1c0b603c67833d0679476 GIT binary patch literal 52 zcmZ?wbhEHbWM^P!XkcJ)nRSQp-(SU_EQ|~cj0`#qKmd|qVB+rSZ(ywDmF!tPi;2M+ E06S3&p#T5? literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_arrows_leftright.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_arrows_leftright.gif new file mode 100644 index 0000000000000000000000000000000000000000..51eb183ea46b5053cef3ae32011c3906d4e565fb GIT binary patch literal 58 zcmZ?wbhEHb<YwSzXkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qU=r-<UwN8w-+{@Veq9>t LHvC*K!e9*mwIC4L literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_arrows_updown.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_arrows_updown.gif new file mode 100644 index 0000000000000000000000000000000000000000..adc7dcfc9b678e043a60a35f329e5ed6a926072c GIT binary patch literal 56 zcmZ?wbhEHb<YwSzXkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qVB+uTU&)otAU<c^xf2`K J+!1B41^|b;4^RLA literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_close.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_close.gif new file mode 100644 index 0000000000000000000000000000000000000000..73c1d72017655ee8d874065aa12a25b42bf43d2e GIT binary patch literal 62 zcmZ?wbhEHb<YwSzXkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qU=r==XJ3%Bo2g{8S@(yz P(#8KQCe2V`Wv~VS?gkN1 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_doc.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_doc.gif new file mode 100644 index 0000000000000000000000000000000000000000..42dc16c7646126a7264537dd723729cbeee4c446 GIT binary patch literal 64 zcmZ?wbhEHb<YwSzXkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qU=r`?XXn0n;#SicUt!_C R($DF&r`RVgC=+3@1^^i45~BbB literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_folder_closed.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_folder_closed.gif new file mode 100644 index 0000000000000000000000000000000000000000..a5774127184d399413b7a158f44c9b8b264ce26f GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qU=r!+U&+q<D`N7wi&D(n O($2rreH6jKU=0A`oDq=# literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_folder_open.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_folder_open.gif new file mode 100644 index 0000000000000000000000000000000000000000..74afe4be11e7f158b19851c47168b6157293633c GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qU=r!+U&+q<>XGrKjoX;k Og%tlvO$uUQum%9-qY-id literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_minus.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_minus.gif new file mode 100644 index 0000000000000000000000000000000000000000..69fcad2ee840567b389c7c1345edfb1c6eeb858f GIT binary patch literal 56 zcmZ?wbhEHb<YwSzXkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qVB+uTUwN9Be_>}y(9KQv JmN76`0|1TU4}Aat literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_plus.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_11x11_icon_plus.gif new file mode 100644 index 0000000000000000000000000000000000000000..7193add21c072c58c0d58e10f0b8176195d1ab90 GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qU=r!+=bXL$!kOUphZ0tw O;W_)mG;xXugEav1j1rUp literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_7x7_arrow_down.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_7x7_arrow_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..8bf915ebfc58aef952c6fbea940114c2427203e6 GIT binary patch literal 52 zcmZ?wbhEHbWM^P!XkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qVB+rS=Qu6!mdD$0E)#<_ E07Ov>(EtDd literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_7x7_arrow_left.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_7x7_arrow_left.gif new file mode 100644 index 0000000000000000000000000000000000000000..9cb0eee53be347bdddd6fd66005f2a416b866fac GIT binary patch literal 53 zcmZ?wbhEHbWM^P!XkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qVB+avPM>hRcitpnt6&BO FYXDQN3~B%X literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_7x7_arrow_right.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_7x7_arrow_right.gif new file mode 100644 index 0000000000000000000000000000000000000000..5fdf8e9b90974b8b4078ad19240731ae69a89b7c GIT binary patch literal 53 zcmZ?wbhEHbWM^P!XkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qVB+yfs9f>j?Tty^vY`wN F)&O0%4S@gv literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_7x7_arrow_up.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/6da8d5_7x7_arrow_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..284bc54b020127390800fa8684f60be6c3f30033 GIT binary patch literal 52 zcmZ?wbhEHbWM^P!XkcK-S#^c+-(SU_EQ|~cj0`#qKmd|qVB+rSZ(ywDmF!tPi;2M+ E079V)(EtDd literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/Thumbs.db b/modules/tntcarrier/relaisColis/img/ui-dialog/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..f95870bddb2197612ca8878881d9fdf4f0cad193 GIT binary patch literal 7680 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 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/d0e5f5_40x100_textures_02_glass_75.png b/modules/tntcarrier/relaisColis/img/ui-dialog/d0e5f5_40x100_textures_02_glass_75.png new file mode 100644 index 0000000000000000000000000000000000000000..d4eaa1d6e0c5cc65f92d24db55a6eb1cdce5988d GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsZE|Pjv*P1Z*T49Z8Z>J4ZL>i zpY@XF>3bO_GRQg@G_GGdldJFA{v%ue_f>P}onfm{ouEb%y!QX|tlWyV+1nm0URRL# zPfq5c@EgH>$Fvz1|Np9Ec(5R0M}A}WvP14SwpMlpe$3zKFpB`Z#mu~zbE8gtS1-`@ N44$rjF6*2UngHBgU2p&Z literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/dfeffc_40x100_textures_02_glass_85.png b/modules/tntcarrier/relaisColis/img/ui-dialog/dfeffc_40x100_textures_02_glass_85.png new file mode 100644 index 0000000000000000000000000000000000000000..17d6b368b59d506646b447b641e966b041e42b8f GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!N$PA*qrS221xOEx;TbpG`^j=o3F`1gtc*R zz>EL?mu$TyAive&jPE%?@fn&Yt#}mrTfY_6?wQ4Tx8&d|?&O+tU9&7)cb~cyU3Nmf z+gj!C>$QA6zh~Tfp?2=@9}6A67>l^>KZUFNE7wT=nEGesh3QKQHGW&Bmzf&WGHzHe zsp!<=_h{OlyydNlc|CTO@*dpm<qNmxbJt6^xC<05cJB}Xs^BQs`Es7=PXCd>JN$3w zS{ioUlz3Kop1;MXMnK7>qd?i|ch9}v+U~moE1VW^HEOY}LT6lMzjgn@?#^{9Z7%$+ zyXX72aq9P<_60ju*7Jwm3;*9b%R!VWlp{njpcTe=%A5Mp=;jpF`})8@V(@hJb6Mw< G&;$SmzKF;G literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/f5f8f9_40x100_textures_06_inset_hard_100.png b/modules/tntcarrier/relaisColis/img/ui-dialog/f5f8f9_40x100_textures_06_inset_hard_100.png new file mode 100644 index 0000000000000000000000000000000000000000..9b24a0a5f31c635fd508e0a9e7f519bcd19d8442 GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!N$PA*qrS22FUsC>EalY(fD?jBi|td9+tur z|LeP1)GaRmO4t~Eb)oU`Q$Fn?tQtoi|E#)i*7LS;G2c1CjrJAtzaLiK=9il!qI1Ih zWz!V-y{{h3IXP>2v*9G}g>!x#IhY;yI-74<bg!Aj)q^?jPemlk{?FR5hw;Yw9)X8T zTQ~2hyw-ZPcDK%&ckh>T{*F&=;jreYT<qQ<py<@XQGe|JLfci}-A*0))|z&osr7IC z4GuvimyQC_g@2{@O8+)4b6&vJsKv5MV1*M3<1O>s{|^g{tDoy`Y})(#kNKawH|iY< oF4xUg3}|%_WeVj8L19egU&|otoZ~*V4;Ty#p00i_>zopr09AB^D*ylh literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_arrows_leftright.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_arrows_leftright.gif new file mode 100644 index 0000000000000000000000000000000000000000..06da383915f6a4527137e5d832e2682f678fe3c6 GIT binary patch literal 58 zcmZ?wbhEHb<YwSzXkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qU=r-<UwN8w-+{@Veq9>t LHvC*K!e9*muJ918 literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_arrows_updown.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_arrows_updown.gif new file mode 100644 index 0000000000000000000000000000000000000000..457012ffcddfba774643bf7182e5b7380aeaf0ba GIT binary patch literal 56 zcmZ?wbhEHb<YwSzXkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qVB+uTU&)otAU<c^xf2`K J+!1B41^|KL4<rBp literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_close.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_close.gif new file mode 100644 index 0000000000000000000000000000000000000000..eda2b06e25e2110b4402999c7ef72c784b871e2a GIT binary patch literal 62 zcmZ?wbhEHb<YwSzXkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qU=r==XJ3%Bo2g{8S@(yz P(#8KQCe2V`Wv~VS=Oz&( literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_doc.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_doc.gif new file mode 100644 index 0000000000000000000000000000000000000000..5b182927c1b16a9a336675a3a5ed563588d9e687 GIT binary patch literal 64 zcmZ?wbhEHb<YwSzXkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qU=r`?XXn0n;#SicUt!_C R($DF&r`RVgC=+3@1^^MQ5_bRq literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_folder_closed.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_folder_closed.gif new file mode 100644 index 0000000000000000000000000000000000000000..e5228409a9459d2e33d120219a0a9cfb7460dd12 GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qU=r!+U&+q<D`N7wi&D(n O($2rreH6jKU=0A<=n-WA literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_folder_open.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_folder_open.gif new file mode 100644 index 0000000000000000000000000000000000000000..8024243480a86adeb124a5d47ab6f93c12fc94f7 GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qU=r!+U&+q<>XGrKjoX;k Og%tlvO$uUQum%9$?-51- literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_minus.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_minus.gif new file mode 100644 index 0000000000000000000000000000000000000000..08cbbbb020d3aec390f244d7debc135fb6644a6e GIT binary patch literal 56 zcmZ?wbhEHb<YwSzXkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qVB+uTUwN9Be_>}y(9KQv JmN76`0|1B$4^aRB literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_plus.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_11x11_icon_plus.gif new file mode 100644 index 0000000000000000000000000000000000000000..95ed13c5b29044f78c299c0490d92b446796f809 GIT binary patch literal 61 zcmZ?wbhEHb<YwSzXkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qU=r!+=bXL$!kOUphZ0tw O;W_)mG;xXugEau_*b-;} literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_7x7_arrow_down.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_7x7_arrow_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..77146b690797eca14e38334967ce68ca0fb46722 GIT binary patch literal 52 zcmZ?wbhEHbWM^P!XkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qVB+rS=Qu6!mdD$0E)#<_ E06!@Ur2qf` literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_7x7_arrow_left.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_7x7_arrow_left.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e44126ea95a983ce9a90c1513674052fb5ea560 GIT binary patch literal 53 zcmZ?wbhEHbWM^P!XkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qVB+avPM>hRcitpnt6&BO FYXDAJ3_bt= literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_7x7_arrow_right.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_7x7_arrow_right.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b9bfe44e948b48943c150bccefa4a15d52cd51f GIT binary patch literal 53 zcmZ?wbhEHbWM^P!XkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qVB+yfs9f>j?Tty^vY`wN F)&N*z4OIXD literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_7x7_arrow_up.gif b/modules/tntcarrier/relaisColis/img/ui-dialog/f9bd01_7x7_arrow_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..988dad9bb73e523545370b1b04a3071a9449c264 GIT binary patch literal 52 zcmZ?wbhEHbWM^P!XkcLYvyX-G-(SU_EQ|~cj0`#qKmd|qVB+rSZ(ywDmF!tPi;2M+ E06lpNr2qf` literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/img/ui-dialog/fcfdfd_40x100_textures_06_inset_hard_100.png b/modules/tntcarrier/relaisColis/img/ui-dialog/fcfdfd_40x100_textures_06_inset_hard_100.png new file mode 100644 index 0000000000000000000000000000000000000000..305c0bc49ace65d36ac8310d885cc242c8ff87e9 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsfnI0jv*P1Z!d4;ZEz4^c9g6A zFWS6-rHOY(!nUS~s_S3xo1a|p{C>lFhU^B@15ydR8`vV4*Dzkg&;9l*`oqN^tc=-@ m8-GV^&Nr%aBvNZH`@Y7DEJxlwQP~Z29D}E;pUXO@geCxvR!B_% literal 0 HcmV?d00001 diff --git a/modules/tntcarrier/relaisColis/index.php b/modules/tntcarrier/relaisColis/index.php new file mode 100644 index 000000000..477abec6f --- /dev/null +++ b/modules/tntcarrier/relaisColis/index.php @@ -0,0 +1,36 @@ +<?php +/* +* 2007-2011 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA <contact@prestashop.com> +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision: 6594 $ +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../../../"); +exit; diff --git a/modules/tntcarrier/relaisColis/js/jquery-ui.js b/modules/tntcarrier/relaisColis/js/jquery-ui.js new file mode 100644 index 000000000..08b44d366 --- /dev/null +++ b/modules/tntcarrier/relaisColis/js/jquery-ui.js @@ -0,0 +1,286 @@ +/* + * jQuery UI 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI + */ +(function(C){var I=C.fn.remove,D=C.browser.mozilla&&(parseFloat(C.browser.version)<1.9);C.ui={version:"1.6",plugin:{add:function(K,L,N){var M=C.ui[K].prototype;for(var J in N){M.plugins[J]=M.plugins[J]||[];M.plugins[J].push([L,N[J]])}},call:function(J,L,K){var N=J.plugins[L];if(!N){return }for(var M=0;M<N.length;M++){if(J.options[N[M][0]]){N[M][1].apply(J.element,K)}}}},contains:function(L,K){var J=C.browser.safari&&C.browser.version<522;if(L.contains&&!J){return L.contains(K)}if(L.compareDocumentPosition){return !!(L.compareDocumentPosition(K)&16)}while(K=K.parentNode){if(K==L){return true}}return false},cssCache:{},css:function(J){if(C.ui.cssCache[J]){return C.ui.cssCache[J]}var K=C('<div class="ui-gen">').addClass(J).css({position:"absolute",top:"-5000px",left:"-5000px",display:"block"}).appendTo("body");C.ui.cssCache[J]=!!((!(/auto|default/).test(K.css("cursor"))||(/^[1-9]/).test(K.css("height"))||(/^[1-9]/).test(K.css("width"))||!(/none/).test(K.css("backgroundImage"))||!(/transparent|rgba\(0, 0, 0, 0\)/).test(K.css("backgroundColor"))));try{C("body").get(0).removeChild(K.get(0))}catch(L){}return C.ui.cssCache[J]},hasScroll:function(M,K){if(C(M).css("overflow")=="hidden"){return false}var J=(K&&K=="left")?"scrollLeft":"scrollTop",L=false;if(M[J]>0){return true}M[J]=1;L=(M[J]>0);M[J]=0;return L},isOverAxis:function(K,J,L){return(K>J)&&(K<(J+L))},isOver:function(O,K,N,M,J,L){return C.ui.isOverAxis(O,N,J)&&C.ui.isOverAxis(K,M,L)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(D){var F=C.attr,E=C.fn.removeAttr,H="http://www.w3.org/2005/07/aaa",A=/^aria-/,B=/^wairole:/;C.attr=function(K,J,L){var M=L!==undefined;return(J=="role"?(M?F.call(this,K,J,"wairole:"+L):(F.apply(this,arguments)||"").replace(B,"")):(A.test(J)?(M?K.setAttributeNS(H,J.replace(A,"aaa:"),L):F.call(this,K,J.replace(A,"aaa:"))):F.apply(this,arguments)))};C.fn.removeAttr=function(J){return(A.test(J)?this.each(function(){this.removeAttributeNS(H,J.replace(A,""))}):E.call(this,J))}}C.fn.extend({remove:function(){C("*",this).add(this).each(function(){C(this).triggerHandler("remove")});return I.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var J;if((C.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){J=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(C.curCSS(this,"position",1))&&(/(auto|scroll)/).test(C.curCSS(this,"overflow",1)+C.curCSS(this,"overflow-y",1)+C.curCSS(this,"overflow-x",1))}).eq(0)}else{J=this.parents().filter(function(){return(/(auto|scroll)/).test(C.curCSS(this,"overflow",1)+C.curCSS(this,"overflow-y",1)+C.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!J.length?C(document):J}});C.extend(C.expr[":"],{data:function(K,L,J){return C.data(K,J[3])},tabbable:function(L,M,K){var N=L.nodeName.toLowerCase();function J(O){return !(C(O).is(":hidden")||C(O).parents(":hidden").length)}return(L.tabIndex>=0&&(("a"==N&&L.href)||(/input|select|textarea|button/.test(N)&&"hidden"!=L.type&&!L.disabled))&&J(L))}});function G(M,N,O,L){function K(Q){var P=C[M][N][Q]||[];return(typeof P=="string"?P.split(/,?\s+/):P)}var J=K("getter");if(L.length==1&&typeof L[0]=="string"){J=J.concat(K("getterSetter"))}return(C.inArray(O,J)!=-1)}C.widget=function(K,J){var L=K.split(".")[0];K=K.split(".")[1];C.fn[K]=function(P){var N=(typeof P=="string"),O=Array.prototype.slice.call(arguments,1);if(N&&P.substring(0,1)=="_"){return this}if(N&&G(L,K,P,O)){var M=C.data(this[0],K);return(M?M[P].apply(M,O):undefined)}return this.each(function(){var Q=C.data(this,K);(!Q&&!N&&C.data(this,K,new C[L][K](this,P)));(Q&&N&&C.isFunction(Q[P])&&Q[P].apply(Q,O))})};C[L]=C[L]||{};C[L][K]=function(O,N){var M=this;this.widgetName=K;this.widgetEventPrefix=C[L][K].eventPrefix||K;this.widgetBaseClass=L+"-"+K;this.options=C.extend({},C.widget.defaults,C[L][K].defaults,C.metadata&&C.metadata.get(O)[K],N);this.element=C(O).bind("setData."+K,function(Q,P,R){return M._setData(P,R)}).bind("getData."+K,function(Q,P){return M._getData(P)}).bind("remove",function(){return M.destroy()});this._init()};C[L][K].prototype=C.extend({},C.widget.prototype,J);C[L][K].getterSetter="option"};C.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName)},option:function(L,M){var K=L,J=this;if(typeof L=="string"){if(M===undefined){return this._getData(L)}K={};K[L]=M}C.each(K,function(N,O){J._setData(N,O)})},_getData:function(J){return this.options[J]},_setData:function(J,K){this.options[J]=K;if(J=="disabled"){this.element[K?"addClass":"removeClass"](this.widgetBaseClass+"-disabled")}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(K,L,M){var J=(K==this.widgetEventPrefix?K:this.widgetEventPrefix+K);L=L||C.event.fix({type:J,target:this.element[0]});return this.element.triggerHandler(J,[L,M],this.options[K])}};C.widget.defaults={disabled:false};C.ui.mouse={_mouseInit:function(){var J=this;this.element.bind("mousedown."+this.widgetName,function(K){return J._mouseDown(K)}).bind("click."+this.widgetName,function(K){if(J._preventClickEvent){J._preventClickEvent=false;return false}});if(C.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(C.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(L){(this._mouseStarted&&this._mouseUp(L));this._mouseDownEvent=L;var K=this,M=(L.which==1),J=(typeof this.options.cancel=="string"?C(L.target).parents().add(L.target).filter(this.options.cancel).length:false);if(!M||J||!this._mouseCapture(L)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){K.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(L)&&this._mouseDelayMet(L)){this._mouseStarted=(this._mouseStart(L)!==false);if(!this._mouseStarted){L.preventDefault();return true}}this._mouseMoveDelegate=function(N){return K._mouseMove(N)};this._mouseUpDelegate=function(N){return K._mouseUp(N)};C(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);if(!C.browser.safari){L.preventDefault()}return true},_mouseMove:function(J){if(C.browser.msie&&!J.button){return this._mouseUp(J)}if(this._mouseStarted){this._mouseDrag(J);return J.preventDefault()}if(this._mouseDistanceMet(J)&&this._mouseDelayMet(J)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,J)!==false);(this._mouseStarted?this._mouseDrag(J):this._mouseUp(J))}return !this._mouseStarted},_mouseUp:function(J){C(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=true;this._mouseStop(J)}return false},_mouseDistanceMet:function(J){return(Math.max(Math.abs(this._mouseDownEvent.pageX-J.pageX),Math.abs(this._mouseDownEvent.pageY-J.pageY))>=this.options.distance)},_mouseDelayMet:function(J){return this.mouseDelayMet},_mouseStart:function(J){},_mouseDrag:function(J){},_mouseStop:function(J){},_mouseCapture:function(J){return true}};C.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);/* + * jQuery UI Draggable 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * ui.core.js + */ +(function(A){A.widget("ui.draggable",A.extend({},A.ui.mouse,{_init:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.cssNamespace&&this.element.addClass(this.options.cssNamespace+"-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return }this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy()},_mouseCapture:function(B){var C=this.options;if(this.helper||C.disabled||A(B.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(B);if(!this.handle){return false}return true},_mouseStart:function(B){var C=this.options;this.helper=this._createHelper(B);this._cacheHelperProportions();if(A.ui.ddmanager){A.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};A.extend(this.offset,{click:{left:B.pageX-this.offset.left,top:B.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});if(C.cursorAt){this._adjustOffsetFromHelper(C.cursorAt)}this.originalPosition=this._generatePosition(B);if(C.containment){this._setContainment()}this._propagate("start",B);this._cacheHelperProportions();if(A.ui.ddmanager&&!C.dropBehaviour){A.ui.ddmanager.prepareOffsets(this,B)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(B,true);return true},_mouseDrag:function(B,C){this.position=this._generatePosition(B);this.positionAbs=this._convertPositionTo("absolute");if(!C){this.position=this._propagate("drag",B)||this.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(A.ui.ddmanager){A.ui.ddmanager.drag(this,B)}return false},_mouseStop:function(C){var D=false;if(A.ui.ddmanager&&!this.options.dropBehaviour){var D=A.ui.ddmanager.drop(this,C)}if((this.options.revert=="invalid"&&!D)||(this.options.revert=="valid"&&D)||this.options.revert===true||(A.isFunction(this.options.revert)&&this.options.revert.call(this.element,D))){var B=this;A(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){B._propagate("stop",C);B._clear()})}else{this._propagate("stop",C);this._clear()}return false},_getHandle:function(B){var C=!this.options.handle||!A(this.options.handle,this.element).length?true:false;A(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==B.target){C=true}});return C},_createHelper:function(C){var D=this.options;var B=A.isFunction(D.helper)?A(D.helper.apply(this.element[0],[C])):(D.helper=="clone"?this.element.clone():this.element);if(!B.parents("body").length){B.appendTo((D.appendTo=="parent"?this.element[0].parentNode:D.appendTo))}if(B[0]!=this.element[0]&&!(/(fixed|absolute)/).test(B.css("position"))){B.css("position","absolute")}return B},_adjustOffsetFromHelper:function(B){if(B.left!=undefined){this.offset.click.left=B.left+this.margins.left}if(B.right!=undefined){this.offset.click.left=this.helperProportions.width-B.right+this.margins.left}if(B.top!=undefined){this.offset.click.top=B.top+this.margins.top}if(B.bottom!=undefined){this.offset.click.top=this.helperProportions.height-B.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var B=this.offsetParent.offset();if((this.offsetParent[0]==document.body&&A.browser.mozilla)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&A.browser.msie)){B={top:0,left:0}}return{top:B.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:B.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var B=this.element.position();return{top:B.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:B.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var E=this.options;if(E.containment=="parent"){E.containment=this.helper[0].parentNode}if(E.containment=="document"||E.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,A(E.containment=="document"?document:window).width()-this.offset.relative.left-this.offset.parent.left-this.helperProportions.width-this.margins.left-(parseInt(this.element.css("marginRight"),10)||0),(A(E.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.offset.relative.top-this.offset.parent.top-this.helperProportions.height-this.margins.top-(parseInt(this.element.css("marginBottom"),10)||0)]}if(!(/^(document|window|parent)$/).test(E.containment)){var C=A(E.containment)[0];var D=A(E.containment).offset();var B=(A(C).css("overflow")!="hidden");this.containment=[D.left+(parseInt(A(C).css("borderLeftWidth"),10)||0)-this.offset.relative.left-this.offset.parent.left-this.margins.left,D.top+(parseInt(A(C).css("borderTopWidth"),10)||0)-this.offset.relative.top-this.offset.parent.top-this.margins.top,D.left+(B?Math.max(C.scrollWidth,C.offsetWidth):C.offsetWidth)-(parseInt(A(C).css("borderLeftWidth"),10)||0)-this.offset.relative.left-this.offset.parent.left-this.helperProportions.width-this.margins.left,D.top+(B?Math.max(C.scrollHeight,C.offsetHeight):C.offsetHeight)-(parseInt(A(C).css("borderTopWidth"),10)||0)-this.offset.relative.top-this.offset.parent.top-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(D,F){if(!F){F=this.position}var C=D=="absolute"?1:-1;var B=this[(this.cssPosition=="absolute"?"offset":"scroll")+"Parent"],E=(/(html|body)/i).test(B[0].tagName);return{top:(F.top+this.offset.relative.top*C+this.offset.parent.top*C+(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(E?0:B.scrollTop()))*C+this.margins.top*C),left:(F.left+this.offset.relative.left*C+this.offset.parent.left*C+(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():(E?0:B.scrollLeft()))*C+this.margins.left*C)}},_generatePosition:function(D){var G=this.options,C=this[(this.cssPosition=="absolute"?"offset":"scroll")+"Parent"],H=(/(html|body)/i).test(C[0].tagName);var B={top:(D.pageY-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(H?0:C.scrollTop()))),left:(D.pageX-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():H?0:C.scrollLeft()))};if(!this.originalPosition){return B}if(this.containment){if(B.left<this.containment[0]){B.left=this.containment[0]}if(B.top<this.containment[1]){B.top=this.containment[1]}if(B.left>this.containment[2]){B.left=this.containment[2]}if(B.top>this.containment[3]){B.top=this.containment[3]}}if(G.grid){var F=this.originalPosition.top+Math.round((B.top-this.originalPosition.top)/G.grid[1])*G.grid[1];B.top=this.containment?(!(F<this.containment[1]||F>this.containment[3])?F:(!(F<this.containment[1])?F-G.grid[1]:F+G.grid[1])):F;var E=this.originalPosition.left+Math.round((B.left-this.originalPosition.left)/G.grid[0])*G.grid[0];B.left=this.containment?(!(E<this.containment[0]||E>this.containment[2])?E:(!(E<this.containment[0])?E-G.grid[0]:E+G.grid[0])):E}return B},_clear:function(){this.helper.removeClass("ui-draggable-dragging");if(this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval){this.helper.remove()}this.helper=null;this.cancelHelperRemoval=false},_propagate:function(C,B){A.ui.plugin.call(this,C,[B,this._uiHash()]);if(C=="drag"){this.positionAbs=this._convertPositionTo("absolute")}return this.element.triggerHandler(C=="drag"?C:"drag"+C,[B,this._uiHash()],this.options[C])},plugins:{},_uiHash:function(B){return{helper:this.helper,position:this.position,absolutePosition:this.positionAbs,options:this.options}}}));A.extend(A.ui.draggable,{version:"1.6",defaults:{appendTo:"parent",axis:false,cancel:":input",connectToSortable:false,containment:false,cssNamespace:"ui",cursor:"default",cursorAt:null,delay:0,distance:1,grid:false,handle:false,helper:"original",iframeFix:false,opacity:1,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:null}});A.ui.plugin.add("draggable","connectToSortable",{start:function(B,D){var C=A(this).data("draggable");C.sortables=[];A(D.options.connectToSortable).each(function(){A(this+"").each(function(){if(A.data(this,"sortable")){var E=A.data(this,"sortable");C.sortables.push({instance:E,shouldRevert:E.options.revert});E._refreshItems();E._propagate("activate",B,C)}})})},stop:function(B,D){var C=A(this).data("draggable");A.each(C.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;C.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert){this.instance.options.revert=true}this.instance._mouseStop(B);this.instance.element.triggerHandler("sortreceive",[B,A.extend(this.instance._ui(),{sender:C.element})],this.instance.options["receive"]);this.instance.options.helper=this.instance.options._helper;if(C.options.helper=="original"){this.instance.currentItem.css({top:"auto",left:"auto"})}}else{this.instance.cancelHelperRemoval=false;this.instance._propagate("deactivate",B,C)}})},drag:function(C,F){var E=A(this).data("draggable"),B=this;var D=function(I){var N=this.offset.click.top,M=this.offset.click.left;var G=this.positionAbs.top,K=this.positionAbs.left;var J=I.height,L=I.width;var O=I.top,H=I.left;return A.ui.isOver(G+N,K+M,O,H,J,L)};A.each(E.sortables,function(G){if(D.call(E,this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=A(B).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return F.helper[0]};C.target=this.instance.currentItem[0];this.instance._mouseCapture(C,true);this.instance._mouseStart(C,true,true);this.instance.offset.click.top=E.offset.click.top;this.instance.offset.click.left=E.offset.click.left;this.instance.offset.parent.left-=E.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=E.offset.parent.top-this.instance.offset.parent.top;E._propagate("toSortable",C)}if(this.instance.currentItem){this.instance._mouseDrag(C)}}else{if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._mouseStop(C,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();if(this.instance.placeholder){this.instance.placeholder.remove()}E._propagate("fromSortable",C)}}})}});A.ui.plugin.add("draggable","cursor",{start:function(C,D){var B=A("body");if(B.css("cursor")){D.options._cursor=B.css("cursor")}B.css("cursor",D.options.cursor)},stop:function(B,C){if(C.options._cursor){A("body").css("cursor",C.options._cursor)}}});A.ui.plugin.add("draggable","iframeFix",{start:function(B,C){A(C.options.iframeFix===true?"iframe":C.options.iframeFix).each(function(){A('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(A(this).offset()).appendTo("body")})},stop:function(B,C){A("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});A.ui.plugin.add("draggable","opacity",{start:function(C,D){var B=A(D.helper);if(B.css("opacity")){D.options._opacity=B.css("opacity")}B.css("opacity",D.options.opacity)},stop:function(B,C){if(C.options._opacity){A(C.helper).css("opacity",C.options._opacity)}}});A.ui.plugin.add("draggable","scroll",{start:function(C,D){var E=D.options;var B=A(this).data("draggable");if(B.scrollParent[0]!=document&&B.scrollParent[0].tagName!="HTML"){B.overflowOffset=B.scrollParent.offset()}},drag:function(D,E){var F=E.options,B=false;var C=A(this).data("draggable");if(C.scrollParent[0]!=document&&C.scrollParent[0].tagName!="HTML"){if((C.overflowOffset.top+C.scrollParent[0].offsetHeight)-D.pageY<F.scrollSensitivity){C.scrollParent[0].scrollTop=B=C.scrollParent[0].scrollTop+F.scrollSpeed}else{if(D.pageY-C.overflowOffset.top<F.scrollSensitivity){C.scrollParent[0].scrollTop=B=C.scrollParent[0].scrollTop-F.scrollSpeed}}if((C.overflowOffset.left+C.scrollParent[0].offsetWidth)-D.pageX<F.scrollSensitivity){C.scrollParent[0].scrollLeft=B=C.scrollParent[0].scrollLeft+F.scrollSpeed}else{if(D.pageX-C.overflowOffset.left<F.scrollSensitivity){C.scrollParent[0].scrollLeft=B=C.scrollParent[0].scrollLeft-F.scrollSpeed}}}else{if(D.pageY-A(document).scrollTop()<F.scrollSensitivity){B=A(document).scrollTop(A(document).scrollTop()-F.scrollSpeed)}else{if(A(window).height()-(D.pageY-A(document).scrollTop())<F.scrollSensitivity){B=A(document).scrollTop(A(document).scrollTop()+F.scrollSpeed)}}if(D.pageX-A(document).scrollLeft()<F.scrollSensitivity){B=A(document).scrollLeft(A(document).scrollLeft()-F.scrollSpeed)}else{if(A(window).width()-(D.pageX-A(document).scrollLeft())<F.scrollSensitivity){B=A(document).scrollLeft(A(document).scrollLeft()+F.scrollSpeed)}}}if(B!==false&&A.ui.ddmanager&&!F.dropBehaviour){A.ui.ddmanager.prepareOffsets(C,D)}if(B!==false&&C.cssPosition=="absolute"&&C.scrollParent[0]!=document&&A.ui.contains(C.scrollParent[0],C.offsetParent[0])){C.offset.parent=C._getParentOffset()}if(B!==false&&C.cssPosition=="relative"&&!(C.scrollParent[0]!=document&&C.scrollParent[0]!=C.offsetParent[0])){C.offset.relative=C._getRelativeOffset()}}});A.ui.plugin.add("draggable","snap",{start:function(B,D){var C=A(this).data("draggable");C.snapElements=[];A(D.options.snap.constructor!=String?(D.options.snap.items||":data(draggable)"):D.options.snap).each(function(){var F=A(this);var E=F.offset();if(this!=C.element[0]){C.snapElements.push({item:this,width:F.outerWidth(),height:F.outerHeight(),top:E.top,left:E.left})}})},drag:function(M,K){var E=A(this).data("draggable");var Q=K.options.snapTolerance;var P=K.absolutePosition.left,O=P+E.helperProportions.width,D=K.absolutePosition.top,C=D+E.helperProportions.height;for(var N=E.snapElements.length-1;N>=0;N--){var L=E.snapElements[N].left,J=L+E.snapElements[N].width,I=E.snapElements[N].top,S=I+E.snapElements[N].height;if(!((L-Q<P&&P<J+Q&&I-Q<D&&D<S+Q)||(L-Q<P&&P<J+Q&&I-Q<C&&C<S+Q)||(L-Q<O&&O<J+Q&&I-Q<D&&D<S+Q)||(L-Q<O&&O<J+Q&&I-Q<C&&C<S+Q))){if(E.snapElements[N].snapping){(E.options.snap.release&&E.options.snap.release.call(E.element,M,A.extend(E._uiHash(),{snapItem:E.snapElements[N].item})))}E.snapElements[N].snapping=false;continue}if(K.options.snapMode!="inner"){var B=Math.abs(I-C)<=Q;var R=Math.abs(S-D)<=Q;var G=Math.abs(L-O)<=Q;var H=Math.abs(J-P)<=Q;if(B){K.position.top=E._convertPositionTo("relative",{top:I-E.helperProportions.height,left:0}).top}if(R){K.position.top=E._convertPositionTo("relative",{top:S,left:0}).top}if(G){K.position.left=E._convertPositionTo("relative",{top:0,left:L-E.helperProportions.width}).left}if(H){K.position.left=E._convertPositionTo("relative",{top:0,left:J}).left}}var F=(B||R||G||H);if(K.options.snapMode!="outer"){var B=Math.abs(I-D)<=Q;var R=Math.abs(S-C)<=Q;var G=Math.abs(L-P)<=Q;var H=Math.abs(J-O)<=Q;if(B){K.position.top=E._convertPositionTo("relative",{top:I,left:0}).top}if(R){K.position.top=E._convertPositionTo("relative",{top:S-E.helperProportions.height,left:0}).top}if(G){K.position.left=E._convertPositionTo("relative",{top:0,left:L}).left}if(H){K.position.left=E._convertPositionTo("relative",{top:0,left:J-E.helperProportions.width}).left}}if(!E.snapElements[N].snapping&&(B||R||G||H||F)){(E.options.snap.snap&&E.options.snap.snap.call(E.element,M,A.extend(E._uiHash(),{snapItem:E.snapElements[N].item})))}E.snapElements[N].snapping=(B||R||G||H||F)}}});A.ui.plugin.add("draggable","stack",{start:function(B,C){var D=A.makeArray(A(C.options.stack.group)).sort(function(F,E){return(parseInt(A(F).css("zIndex"),10)||C.options.stack.min)-(parseInt(A(E).css("zIndex"),10)||C.options.stack.min)});A(D).each(function(E){this.style.zIndex=C.options.stack.min+E});this[0].style.zIndex=C.options.stack.min+D.length}});A.ui.plugin.add("draggable","zIndex",{start:function(C,D){var B=A(D.helper);if(B.css("zIndex")){D.options._zIndex=B.css("zIndex")}B.css("zIndex",D.options.zIndex)},stop:function(B,C){if(C.options._zIndex){A(C.helper).css("zIndex",C.options._zIndex)}}})})(jQuery);/* + * jQuery UI Droppable 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Droppables + * + * Depends: + * ui.core.js + * ui.draggable.js + */ +(function(A){A.widget("ui.droppable",{_init:function(){var C=this.options,B=C.accept;this.isover=0;this.isout=1;this.options.accept=this.options.accept&&A.isFunction(this.options.accept)?this.options.accept:function(D){return D.is(B)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};A.ui.ddmanager.droppables[this.options.scope]=A.ui.ddmanager.droppables[this.options.scope]||[];A.ui.ddmanager.droppables[this.options.scope].push(this);(this.options.cssNamespace&&this.element.addClass(this.options.cssNamespace+"-droppable"))},destroy:function(){var B=A.ui.ddmanager.droppables[this.options.scope];for(var C=0;C<B.length;C++){if(B[C]==this){B.splice(C,1)}}this.element.removeClass("ui-droppable-disabled").removeData("droppable").unbind(".droppable")},_setData:function(B,C){if(B=="accept"){this.options.accept=C&&A.isFunction(C)?C:function(D){return D.is(accept)}}else{A.widget.prototype._setData.apply(this,arguments)}},_activate:function(C){var B=A.ui.ddmanager.current;A.ui.plugin.call(this,"activate",[C,this.ui(B)]);if(B){this.element.triggerHandler("dropactivate",[C,this.ui(B)],this.options.activate)}},_deactivate:function(C){var B=A.ui.ddmanager.current;A.ui.plugin.call(this,"deactivate",[C,this.ui(B)]);if(B){this.element.triggerHandler("dropdeactivate",[C,this.ui(B)],this.options.deactivate)}},_over:function(C){var B=A.ui.ddmanager.current;if(!B||(B.currentItem||B.element)[0]==this.element[0]){return }if(this.options.accept.call(this.element,(B.currentItem||B.element))){A.ui.plugin.call(this,"over",[C,this.ui(B)]);this.element.triggerHandler("dropover",[C,this.ui(B)],this.options.over)}},_out:function(C){var B=A.ui.ddmanager.current;if(!B||(B.currentItem||B.element)[0]==this.element[0]){return }if(this.options.accept.call(this.element,(B.currentItem||B.element))){A.ui.plugin.call(this,"out",[C,this.ui(B)]);this.element.triggerHandler("dropout",[C,this.ui(B)],this.options.out)}},_drop:function(C,D){var B=D||A.ui.ddmanager.current;if(!B||(B.currentItem||B.element)[0]==this.element[0]){return false}var E=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var F=A.data(this,"droppable");if(F.options.greedy&&A.ui.intersect(B,A.extend(F,{offset:F.element.offset()}),F.options.tolerance)){E=true;return false}});if(E){return false}if(this.options.accept.call(this.element,(B.currentItem||B.element))){A.ui.plugin.call(this,"drop",[C,this.ui(B)]);this.element.triggerHandler("drop",[C,this.ui(B)],this.options.drop);return this.element}return false},plugins:{},ui:function(B){return{draggable:(B.currentItem||B.element),helper:B.helper,position:B.position,absolutePosition:B.positionAbs,options:this.options,element:this.element}}});A.extend(A.ui.droppable,{version:"1.6",defaults:{accept:"*",activeClass:null,cssNamespace:"ui",greedy:false,hoverClass:null,scope:"default",tolerance:"intersect"}});A.ui.intersect=function(O,I,M){if(!I.offset){return false}var D=(O.positionAbs||O.position.absolute).left,C=D+O.helperProportions.width,L=(O.positionAbs||O.position.absolute).top,K=L+O.helperProportions.height;var F=I.offset.left,B=F+I.proportions.width,N=I.offset.top,J=N+I.proportions.height;switch(M){case"fit":return(F<D&&C<B&&N<L&&K<J);break;case"intersect":return(F<D+(O.helperProportions.width/2)&&C-(O.helperProportions.width/2)<B&&N<L+(O.helperProportions.height/2)&&K-(O.helperProportions.height/2)<J);break;case"pointer":var G=((O.positionAbs||O.position.absolute).left+(O.clickOffset||O.offset.click).left),H=((O.positionAbs||O.position.absolute).top+(O.clickOffset||O.offset.click).top),E=A.ui.isOver(H,G,N,F,I.proportions.height,I.proportions.width);return E;break;case"touch":return((L>=N&&L<=J)||(K>=N&&K<=J)||(L<N&&K>J))&&((D>=F&&D<=B)||(C>=F&&C<=B)||(D<F&&C>B));break;default:return false;break}};A.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(E,G){var B=A.ui.ddmanager.droppables[E.options.scope];var F=G?G.type:null;var H=(E.currentItem||E.element).find(":data(droppable)").andSelf();droppablesLoop:for(var D=0;D<B.length;D++){if(B[D].options.disabled||(E&&!B[D].options.accept.call(B[D].element,(E.currentItem||E.element)))){continue}for(var C=0;C<H.length;C++){if(H[C]==B[D].element[0]){B[D].proportions.height=0;continue droppablesLoop}}B[D].visible=B[D].element.css("display")!="none";if(!B[D].visible){continue}B[D].offset=B[D].element.offset();B[D].proportions={width:B[D].element[0].offsetWidth,height:B[D].element[0].offsetHeight};if(F=="dragstart"||F=="sortactivate"){B[D]._activate.call(B[D],G)}}},drop:function(B,C){var D=false;A.each(A.ui.ddmanager.droppables[B.options.scope],function(){if(!this.options){return }if(!this.options.disabled&&this.visible&&A.ui.intersect(B,this,this.options.tolerance)){D=this._drop.call(this,C)}if(!this.options.disabled&&this.visible&&this.options.accept.call(this.element,(B.currentItem||B.element))){this.isout=1;this.isover=0;this._deactivate.call(this,C)}});return D},drag:function(B,C){if(B.options.refreshPositions){A.ui.ddmanager.prepareOffsets(B,C)}A.each(A.ui.ddmanager.droppables[B.options.scope],function(){if(this.options.disabled||this.greedyChild||!this.visible){return }var E=A.ui.intersect(B,this,this.options.tolerance);var G=!E&&this.isover==1?"isout":(E&&this.isover==0?"isover":null);if(!G){return }var F;if(this.options.greedy){var D=this.element.parents(":data(droppable):eq(0)");if(D.length){F=A.data(D[0],"droppable");F.greedyChild=(G=="isover"?1:0)}}if(F&&G=="isover"){F["isover"]=0;F["isout"]=1;F._out.call(F,C)}this[G]=1;this[G=="isout"?"isover":"isout"]=0;this[G=="isover"?"_over":"_out"].call(this,C);if(F&&G=="isout"){F["isout"]=0;F["isover"]=1;F._over.call(F,C)}})}};A.ui.plugin.add("droppable","activeClass",{activate:function(B,C){A(this).addClass(C.options.activeClass)},deactivate:function(B,C){A(this).removeClass(C.options.activeClass)},drop:function(B,C){A(this).removeClass(C.options.activeClass)}});A.ui.plugin.add("droppable","hoverClass",{over:function(B,C){A(this).addClass(C.options.hoverClass)},out:function(B,C){A(this).removeClass(C.options.hoverClass)},drop:function(B,C){A(this).removeClass(C.options.hoverClass)}})})(jQuery);/* + * jQuery UI Resizable 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Resizables + * + * Depends: + * ui.core.js + */ +(function(B){B.widget("ui.resizable",B.extend({},B.ui.mouse,{_init:function(){var N=this,O=this.options;var R=this.element.css("position");this.originalElement=this.element;this.element.addClass("ui-resizable").css({position:/static/.test(R)?"relative":R});B.extend(O,{_aspectRatio:!!(O.aspectRatio),helper:O.helper||O.ghost||O.animate?O.helper||"ui-resizable-helper":null,knobHandles:O.knobHandles===true?"ui-resizable-knob-handle":O.knobHandles});var I="1px solid #DEDEDE";O.defaultTheme={"ui-resizable":{display:"block"},"ui-resizable-handle":{position:"absolute",background:"#F2F2F2",fontSize:"0.1px"},"ui-resizable-n":{cursor:"n-resize",height:"4px",left:"0px",right:"0px",borderTop:I},"ui-resizable-s":{cursor:"s-resize",height:"4px",left:"0px",right:"0px",borderBottom:I},"ui-resizable-e":{cursor:"e-resize",width:"4px",top:"0px",bottom:"0px",borderRight:I},"ui-resizable-w":{cursor:"w-resize",width:"4px",top:"0px",bottom:"0px",borderLeft:I},"ui-resizable-se":{cursor:"se-resize",width:"4px",height:"4px",borderRight:I,borderBottom:I},"ui-resizable-sw":{cursor:"sw-resize",width:"4px",height:"4px",borderBottom:I,borderLeft:I},"ui-resizable-ne":{cursor:"ne-resize",width:"4px",height:"4px",borderRight:I,borderTop:I},"ui-resizable-nw":{cursor:"nw-resize",width:"4px",height:"4px",borderLeft:I,borderTop:I}};O.knobTheme={"ui-resizable-handle":{background:"#F2F2F2",border:"1px solid #808080",height:"8px",width:"8px"},"ui-resizable-n":{cursor:"n-resize",top:"0px",left:"45%"},"ui-resizable-s":{cursor:"s-resize",bottom:"0px",left:"45%"},"ui-resizable-e":{cursor:"e-resize",right:"0px",top:"45%"},"ui-resizable-w":{cursor:"w-resize",left:"0px",top:"45%"},"ui-resizable-se":{cursor:"se-resize",right:"0px",bottom:"0px"},"ui-resizable-sw":{cursor:"sw-resize",left:"0px",bottom:"0px"},"ui-resizable-nw":{cursor:"nw-resize",left:"0px",top:"0px"},"ui-resizable-ne":{cursor:"ne-resize",right:"0px",top:"0px"}};O._nodeName=this.element[0].nodeName;if(O._nodeName.match(/canvas|textarea|input|select|button|img/i)){var C=this.element;if(/relative/.test(C.css("position"))&&B.browser.opera){C.css({position:"relative",top:"auto",left:"auto"})}C.wrap(B('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:C.css("position"),width:C.outerWidth(),height:C.outerHeight(),top:C.css("top"),left:C.css("left")}));var K=this.element;this.element=this.element.parent();this.element.data("resizable",this);this.element.css({marginLeft:K.css("marginLeft"),marginTop:K.css("marginTop"),marginRight:K.css("marginRight"),marginBottom:K.css("marginBottom")});K.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});if(B.browser.safari&&O.preventDefault){K.css("resize","none")}O.proportionallyResize=K.css({position:"static",zoom:1,display:"block"});this.element.css({margin:K.css("margin")});this._proportionallyResize()}if(!O.handles){O.handles=!B(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}}if(O.handles.constructor==String){O.zIndex=O.zIndex||1000;if(O.handles=="all"){O.handles="n,e,s,w,se,sw,ne,nw"}var P=O.handles.split(",");O.handles={};var H={handle:"position: absolute; display: none; overflow:hidden;",n:"top: 0pt; width:100%;",e:"right: 0pt; height:100%;",s:"bottom: 0pt; width:100%;",w:"left: 0pt; height:100%;",se:"bottom: 0pt; right: 0px;",sw:"bottom: 0pt; left: 0px;",ne:"top: 0pt; right: 0px;",nw:"top: 0pt; left: 0px;"};for(var S=0;S<P.length;S++){var T=B.trim(P[S]),M=O.defaultTheme,G="ui-resizable-"+T,D=!B.ui.css(G)&&!O.knobHandles,Q=B.ui.css("ui-resizable-knob-handle"),U=B.extend(M[G],M["ui-resizable-handle"]),E=B.extend(O.knobTheme[G],!Q?O.knobTheme["ui-resizable-handle"]:{});var L=/sw|se|ne|nw/.test(T)?{zIndex:++O.zIndex}:{};var J=(D?H[T]:""),F=B(['<div class="ui-resizable-handle ',G,'" style="',J,H.handle,'"></div>'].join("")).css(L);O.handles[T]=".ui-resizable-"+T;this.element.append(F.css(D?U:{}).css(O.knobHandles?E:{}).addClass(O.knobHandles?"ui-resizable-knob-handle":"").addClass(O.knobHandles))}if(O.knobHandles){this.element.addClass("ui-resizable-knob").css(!B.ui.css("ui-resizable-knob")?{}:{})}}this._renderAxis=function(Z){Z=Z||this.element;for(var W in O.handles){if(O.handles[W].constructor==String){O.handles[W]=B(O.handles[W],this.element).show()}if(O.transparent){O.handles[W].css({opacity:0})}if(this.element.is(".ui-wrapper")&&O._nodeName.match(/textarea|input|select|button/i)){var X=B(O.handles[W],this.element),Y=0;Y=/sw|ne|nw|se|n|s/.test(W)?X.outerHeight():X.outerWidth();var V=["padding",/ne|nw|n/.test(W)?"Top":/se|sw|s/.test(W)?"Bottom":/^e$/.test(W)?"Right":"Left"].join("");if(!O.transparent){Z.css(V,Y)}this._proportionallyResize()}if(!B(O.handles[W]).length){continue}}};this._renderAxis(this.element);O._handles=B(".ui-resizable-handle",N.element);if(O.disableSelection){O._handles.disableSelection()}O._handles.mouseover(function(){if(!O.resizing){if(this.className){var V=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}N.axis=O.axis=V&&V[1]?V[1]:"se"}});if(O.autoHide){O._handles.hide();B(N.element).addClass("ui-resizable-autohide").hover(function(){B(this).removeClass("ui-resizable-autohide");O._handles.show()},function(){if(!O.resizing){B(this).addClass("ui-resizable-autohide");O._handles.hide()}})}this._mouseInit()},destroy:function(){var E=this.element,D=E.children(".ui-resizable").get(0);this._mouseDestroy();var C=function(F){B(F).removeClass("ui-resizable ui-resizable-disabled").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};C(E);if(E.is(".ui-wrapper")&&D){E.parent().append(B(D).css({position:E.css("position"),width:E.outerWidth(),height:E.outerHeight(),top:E.css("top"),left:E.css("left")})).end().remove();C(D)}},_mouseCapture:function(D){if(this.options.disabled){return false}var E=false;for(var C in this.options.handles){if(B(this.options.handles[C])[0]==D.target){E=true}}if(!E){return false}return true},_mouseStart:function(D){var E=this.options,C=this.element.position(),F=this.element,I=B.browser.msie&&B.browser.version<7;E.resizing=true;E.documentScroll={top:B(document).scrollTop(),left:B(document).scrollLeft()};if(F.is(".ui-draggable")||(/absolute/).test(F.css("position"))){var K=B.browser.msie&&!E.containment&&(/absolute/).test(F.css("position"))&&!(/relative/).test(F.parent().css("position"));var L=K?this.documentScroll.top:0,H=K?this.documentScroll.left:0;F.css({position:"absolute",top:(C.top+L),left:(C.left+H)})}if(B.browser.opera&&(/relative/).test(F.css("position"))){F.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var M=A(this.helper.css("left")),G=A(this.helper.css("top"));if(E.containment){M+=B(E.containment).scrollLeft()||0;G+=B(E.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:M,top:G};this.size=E.helper||I?{width:F.outerWidth(),height:F.outerHeight()}:{width:F.width(),height:F.height()};this.originalSize=E.helper||I?{width:F.outerWidth(),height:F.outerHeight()}:{width:F.width(),height:F.height()};this.originalPosition={left:M,top:G};this.sizeDiff={width:F.outerWidth()-F.width(),height:F.outerHeight()-F.height()};this.originalMousePosition={left:D.pageX,top:D.pageY};E.aspectRatio=(typeof E.aspectRatio=="number")?E.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);if(E.preserveCursor){var J=B(".ui-resizable-"+this.axis).css("cursor");B("body").css("cursor",J=="auto"?this.axis+"-resize":J)}this._propagate("start",D);return true},_mouseDrag:function(C){var F=this.helper,E=this.options,K={},N=this,H=this.originalMousePosition,L=this.axis;var O=(C.pageX-H.left)||0,M=(C.pageY-H.top)||0;var G=this._change[L];if(!G){return false}var J=G.apply(this,[C,O,M]),I=B.browser.msie&&B.browser.version<7,D=this.sizeDiff;if(E._aspectRatio||C.shiftKey){J=this._updateRatio(J,C)}J=this._respectSize(J,C);this._propagate("resize",C);F.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!E.helper&&E.proportionallyResize){this._proportionallyResize()}this._updateCache(J);this.element.triggerHandler("resize",[C,this.ui()],this.options["resize"]);return false},_mouseStop:function(F){this.options.resizing=false;var G=this.options,K=this;if(G.helper){var E=G.proportionallyResize,C=E&&(/textarea/i).test(E.get(0).nodeName),D=C&&B.ui.hasScroll(E.get(0),"left")?0:K.sizeDiff.height,I=C?0:K.sizeDiff.width;var L={width:(K.size.width-I),height:(K.size.height-D)},H=(parseInt(K.element.css("left"),10)+(K.position.left-K.originalPosition.left))||null,J=(parseInt(K.element.css("top"),10)+(K.position.top-K.originalPosition.top))||null;if(!G.animate){this.element.css(B.extend(L,{top:J,left:H}))}if(G.helper&&!G.animate){this._proportionallyResize()}}if(G.preserveCursor){B("body").css("cursor","auto")}this._propagate("stop",F);if(G.helper){this.helper.remove()}return false},_updateCache:function(C){var D=this.options;this.offset=this.helper.offset();if(C.left){this.position.left=C.left}if(C.top){this.position.top=C.top}if(C.height){this.size.height=C.height}if(C.width){this.size.width=C.width}},_updateRatio:function(F,E){var G=this.options,H=this.position,D=this.size,C=this.axis;if(F.height){F.width=(D.height*G.aspectRatio)}else{if(F.width){F.height=(D.width/G.aspectRatio)}}if(C=="sw"){F.left=H.left+(D.width-F.width);F.top=null}if(C=="nw"){F.top=H.top+(D.height-F.height);F.left=H.left+(D.width-F.width)}return F},_respectSize:function(J,E){var H=this.helper,G=this.options,O=G._aspectRatio||E.shiftKey,N=this.axis,Q=J.width&&G.maxWidth&&G.maxWidth<J.width,K=J.height&&G.maxHeight&&G.maxHeight<J.height,F=J.width&&G.minWidth&&G.minWidth>J.width,P=J.height&&G.minHeight&&G.minHeight>J.height;if(F){J.width=G.minWidth}if(P){J.height=G.minHeight}if(Q){J.width=G.maxWidth}if(K){J.height=G.maxHeight}var D=this.originalPosition.left+this.originalSize.width,M=this.position.top+this.size.height;var I=/sw|nw|w/.test(N),C=/nw|ne|n/.test(N);if(F&&I){J.left=D-G.minWidth}if(Q&&I){J.left=D-G.maxWidth}if(P&&C){J.top=M-G.minHeight}if(K&&C){J.top=M-G.maxHeight}var L=!J.width&&!J.height;if(L&&!J.left&&J.top){J.top=null}else{if(L&&!J.top&&J.left){J.left=null}}return J},_proportionallyResize:function(){var G=this.options;if(!G.proportionallyResize){return }var E=G.proportionallyResize,D=this.helper||this.element;if(!G.borderDif){var C=[E.css("borderTopWidth"),E.css("borderRightWidth"),E.css("borderBottomWidth"),E.css("borderLeftWidth")],F=[E.css("paddingTop"),E.css("paddingRight"),E.css("paddingBottom"),E.css("paddingLeft")];G.borderDif=B.map(C,function(H,J){var I=parseInt(H,10)||0,K=parseInt(F[J],10)||0;return I+K})}E.css({height:(D.height()-G.borderDif[0]-G.borderDif[2])+"px",width:(D.width()-G.borderDif[1]-G.borderDif[3])+"px"})},_renderProxy:function(){var D=this.element,G=this.options;this.elementOffset=D.offset();if(G.helper){this.helper=this.helper||B('<div style="overflow:hidden;"></div>');var C=B.browser.msie&&B.browser.version<7,E=(C?1:0),F=(C?2:-1);this.helper.addClass(G.helper).css({width:D.outerWidth()+F,height:D.outerHeight()+F,position:"absolute",left:this.elementOffset.left-E+"px",top:this.elementOffset.top-E+"px",zIndex:++G.zIndex});this.helper.appendTo("body");if(G.disableSelection){this.helper.disableSelection()}}else{this.helper=D}},_change:{e:function(E,D,C){return{width:this.originalSize.width+D}},w:function(F,D,C){var H=this.options,E=this.originalSize,G=this.originalPosition;return{left:G.left+D,width:E.width-D}},n:function(F,D,C){var H=this.options,E=this.originalSize,G=this.originalPosition;return{top:G.top+C,height:E.height-C}},s:function(E,D,C){return{height:this.originalSize.height+C}},se:function(E,D,C){return B.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[E,D,C]))},sw:function(E,D,C){return B.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[E,D,C]))},ne:function(E,D,C){return B.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[E,D,C]))},nw:function(E,D,C){return B.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[E,D,C]))}},_propagate:function(D,C){B.ui.plugin.call(this,D,[C,this.ui()]);if(D!="resize"){this.element.triggerHandler(["resize",D].join(""),[C,this.ui()],this.options[D])}},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,options:this.options,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));B.extend(B.ui.resizable,{version:"1.6",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input",containment:false,disableSelection:true,distance:1,delay:0,ghost:false,grid:false,knobHandles:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,preserveCursor:true,preventDefault:true,proportionallyResize:false,transparent:false}});B.ui.plugin.add("resizable","alsoResize",{start:function(D,E){var G=E.options,C=B(this).data("resizable"),F=function(H){B(H).each(function(){B(this).data("resizable-alsoresize",{width:parseInt(B(this).width(),10),height:parseInt(B(this).height(),10),left:parseInt(B(this).css("left"),10),top:parseInt(B(this).css("top"),10)})})};if(typeof (G.alsoResize)=="object"&&!G.alsoResize.parentNode){if(G.alsoResize.length){G.alsoResize=G.alsoResize[0];F(G.alsoResize)}else{B.each(G.alsoResize,function(H,I){F(H)})}}else{F(G.alsoResize)}},resize:function(E,G){var H=G.options,D=B(this).data("resizable"),F=D.originalSize,J=D.originalPosition;var I={height:(D.size.height-F.height)||0,width:(D.size.width-F.width)||0,top:(D.position.top-J.top)||0,left:(D.position.left-J.left)||0},C=function(K,L){B(K).each(function(){var O=B(this).data("resizable-alsoresize"),N={},M=L&&L.length?L:["width","height","top","left"];B.each(M||["width","height","top","left"],function(P,R){var Q=(O[R]||0)+(I[R]||0);if(Q&&Q>=0){N[R]=Q||null}});B(this).css(N)})};if(typeof (H.alsoResize)=="object"&&!H.alsoResize.parentNode){B.each(H.alsoResize,function(K,L){C(K,L)})}else{C(H.alsoResize)}},stop:function(C,D){B(this).removeData("resizable-alsoresize-start")}});B.ui.plugin.add("resizable","animate",{stop:function(G,L){var H=L.options,M=B(this).data("resizable");var F=H.proportionallyResize,C=F&&(/textarea/i).test(F.get(0).nodeName),D=C&&B.ui.hasScroll(F.get(0),"left")?0:M.sizeDiff.height,J=C?0:M.sizeDiff.width;var E={width:(M.size.width-J),height:(M.size.height-D)},I=(parseInt(M.element.css("left"),10)+(M.position.left-M.originalPosition.left))||null,K=(parseInt(M.element.css("top"),10)+(M.position.top-M.originalPosition.top))||null;M.element.animate(B.extend(E,K&&I?{top:K,left:I}:{}),{duration:H.animateDuration,easing:H.animateEasing,step:function(){var N={width:parseInt(M.element.css("width"),10),height:parseInt(M.element.css("height"),10),top:parseInt(M.element.css("top"),10),left:parseInt(M.element.css("left"),10)};if(F){F.css({width:N.width,height:N.height})}M._updateCache(N);M._propagate("animate",G)}})}});B.ui.plugin.add("resizable","containment",{start:function(D,N){var H=N.options,P=B(this).data("resizable"),J=P.element;var E=H.containment,I=(E instanceof B)?E.get(0):(/parent/.test(E))?J.parent().get(0):E;if(!I){return }P.containerElement=B(I);if(/document/.test(E)||E==document){P.containerOffset={left:0,top:0};P.containerPosition={left:0,top:0};P.parentData={element:B(document),left:0,top:0,width:B(document).width(),height:B(document).height()||document.body.parentNode.scrollHeight}}else{var L=B(I),G=[];B(["Top","Right","Left","Bottom"]).each(function(R,Q){G[R]=A(L.css("padding"+Q))});P.containerOffset=L.offset();P.containerPosition=L.position();P.containerSize={height:(L.innerHeight()-G[3]),width:(L.innerWidth()-G[1])};var M=P.containerOffset,C=P.containerSize.height,K=P.containerSize.width,F=(B.ui.hasScroll(I,"left")?I.scrollWidth:K),O=(B.ui.hasScroll(I)?I.scrollHeight:C);P.parentData={element:I,left:M.left,top:M.top,width:F,height:O}}},resize:function(E,N){var G=N.options,Q=B(this).data("resizable"),D=Q.containerSize,M=Q.containerOffset,K=Q.size,L=Q.position,O=G._aspectRatio||E.shiftKey,C={top:0,left:0},F=Q.containerElement;if(F[0]!=document&&(/static/).test(F.css("position"))){C=M}if(L.left<(G.helper?M.left:0)){Q.size.width=Q.size.width+(G.helper?(Q.position.left-M.left):(Q.position.left-C.left));if(O){Q.size.height=Q.size.width/G.aspectRatio}Q.position.left=G.helper?M.left:0}if(L.top<(G.helper?M.top:0)){Q.size.height=Q.size.height+(G.helper?(Q.position.top-M.top):Q.position.top);if(O){Q.size.width=Q.size.height*G.aspectRatio}Q.position.top=G.helper?M.top:0}Q.offset.left=Q.parentData.left+Q.position.left;Q.offset.top=Q.parentData.top+Q.position.top;var J=Math.abs((G.helper?Q.offset.left-C.left:(Q.offset.left-C.left))+Q.sizeDiff.width),P=Math.abs((G.helper?Q.offset.top-C.top:(Q.offset.top-M.top))+Q.sizeDiff.height);var I=Q.containerElement.get(0)==Q.element.parent().get(0),H=/relative|absolute/.test(Q.containerElement.css("position"));if(I&&H){J-=Q.parentData.left}if(J+Q.size.width>=Q.parentData.width){Q.size.width=Q.parentData.width-J;if(O){Q.size.height=Q.size.width/G.aspectRatio}}if(P+Q.size.height>=Q.parentData.height){Q.size.height=Q.parentData.height-P;if(O){Q.size.width=Q.size.height*G.aspectRatio}}},stop:function(D,K){var E=K.options,M=B(this).data("resizable"),I=M.position,J=M.containerOffset,C=M.containerPosition,F=M.containerElement;var G=B(M.helper),N=G.offset(),L=G.outerWidth()-M.sizeDiff.width,H=G.outerHeight()-M.sizeDiff.height;if(E.helper&&!E.animate&&(/relative/).test(F.css("position"))){B(this).css({left:N.left-C.left-J.left,width:L,height:H})}if(E.helper&&!E.animate&&(/static/).test(F.css("position"))){B(this).css({left:N.left-C.left-J.left,width:L,height:H})}}});B.ui.plugin.add("resizable","ghost",{start:function(E,F){var G=F.options,C=B(this).data("resizable"),H=G.proportionallyResize,D=C.size;if(!H){C.ghost=C.element.clone()}else{C.ghost=H.clone()}C.ghost.css({opacity:0.25,display:"block",position:"relative",height:D.height,width:D.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof G.ghost=="string"?G.ghost:"");C.ghost.appendTo(C.helper)},resize:function(D,E){var F=E.options,C=B(this).data("resizable"),G=F.proportionallyResize;if(C.ghost){C.ghost.css({position:"relative",height:C.size.height,width:C.size.width})}},stop:function(D,E){var F=E.options,C=B(this).data("resizable"),G=F.proportionallyResize;if(C.ghost&&C.helper){C.helper.get(0).removeChild(C.ghost.get(0))}}});B.ui.plugin.add("resizable","grid",{resize:function(C,K){var F=K.options,M=B(this).data("resizable"),I=M.size,G=M.originalSize,H=M.originalPosition,L=M.axis,J=F._aspectRatio||C.shiftKey;F.grid=typeof F.grid=="number"?[F.grid,F.grid]:F.grid;var E=Math.round((I.width-G.width)/(F.grid[0]||1))*(F.grid[0]||1),D=Math.round((I.height-G.height)/(F.grid[1]||1))*(F.grid[1]||1);if(/^(se|s|e)$/.test(L)){M.size.width=G.width+E;M.size.height=G.height+D}else{if(/^(ne)$/.test(L)){M.size.width=G.width+E;M.size.height=G.height+D;M.position.top=H.top-D}else{if(/^(sw)$/.test(L)){M.size.width=G.width+E;M.size.height=G.height+D;M.position.left=H.left-E}else{M.size.width=G.width+E;M.size.height=G.height+D;M.position.top=H.top-D;M.position.left=H.left-E}}}}});var A=function(C){return parseInt(C,10)||0}})(jQuery);/* + * jQuery UI Selectable 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Selectables + * + * Depends: + * ui.core.js + */ +(function(A){A.widget("ui.selectable",A.extend({},A.ui.mouse,{_init:function(){var B=this;this.element.addClass("ui-selectable");this.dragged=false;var C;this.refresh=function(){C=A(B.options.filter,B.element[0]);C.each(function(){var D=A(this);var E=D.offset();A.data(this,"selectable-item",{element:this,$element:D,left:E.left,top:E.top,right:E.left+D.width(),bottom:E.top+D.height(),startselected:false,selected:D.hasClass("ui-selected"),selecting:D.hasClass("ui-selecting"),unselecting:D.hasClass("ui-unselecting")})})};this.refresh();this.selectees=C.addClass("ui-selectee");this._mouseInit();this.helper=A(document.createElement("div")).css({border:"1px dotted black"}).addClass("ui-selectable-helper")},destroy:function(){this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy()},_mouseStart:function(E){var C=this;this.opos=[E.pageX,E.pageY];if(this.options.disabled){return }var D=this.options;this.selectees=A(D.filter,this.element[0]);this.element.triggerHandler("selectablestart",[E,{"selectable":this.element[0],"options":D}],D.start);A("body").append(this.helper);this.helper.css({"z-index":100,"position":"absolute","left":E.clientX,"top":E.clientY,"width":0,"height":0});if(D.autoRefresh){this.refresh()}this.selectees.filter(".ui-selected").each(function(){var F=A.data(this,"selectable-item");F.startselected=true;if(!E.metaKey){F.$element.removeClass("ui-selected");F.selected=false;F.$element.addClass("ui-unselecting");F.unselecting=true;C.element.triggerHandler("selectableunselecting",[E,{selectable:C.element[0],unselecting:F.element,options:D}],D.unselecting)}});var B=false;A(E.target).parents().andSelf().each(function(){if(A.data(this,"selectable-item")){B=true}});return this.options.keyboard?!B:true},_mouseDrag:function(I){var C=this;this.dragged=true;if(this.options.disabled){return }var E=this.options;var D=this.opos[0],H=this.opos[1],B=I.pageX,G=I.pageY;if(D>B){var F=B;B=D;D=F}if(H>G){var F=G;G=H;H=F}this.helper.css({left:D,top:H,width:B-D,height:G-H});this.selectees.each(function(){var J=A.data(this,"selectable-item");if(!J||J.element==C.element[0]){return }var K=false;if(E.tolerance=="touch"){K=(!(J.left>B||J.right<D||J.top>G||J.bottom<H))}else{if(E.tolerance=="fit"){K=(J.left>D&&J.right<B&&J.top>H&&J.bottom<G)}}if(K){if(J.selected){J.$element.removeClass("ui-selected");J.selected=false}if(J.unselecting){J.$element.removeClass("ui-unselecting");J.unselecting=false}if(!J.selecting){J.$element.addClass("ui-selecting");J.selecting=true;C.element.triggerHandler("selectableselecting",[I,{selectable:C.element[0],selecting:J.element,options:E}],E.selecting)}}else{if(J.selecting){if(I.metaKey&&J.startselected){J.$element.removeClass("ui-selecting");J.selecting=false;J.$element.addClass("ui-selected");J.selected=true}else{J.$element.removeClass("ui-selecting");J.selecting=false;if(J.startselected){J.$element.addClass("ui-unselecting");J.unselecting=true}C.element.triggerHandler("selectableunselecting",[I,{selectable:C.element[0],unselecting:J.element,options:E}],E.unselecting)}}if(J.selected){if(!I.metaKey&&!J.startselected){J.$element.removeClass("ui-selected");J.selected=false;J.$element.addClass("ui-unselecting");J.unselecting=true;C.element.triggerHandler("selectableunselecting",[I,{selectable:C.element[0],unselecting:J.element,options:E}],E.unselecting)}}}});return false},_mouseStop:function(D){var B=this;this.dragged=false;var C=this.options;A(".ui-unselecting",this.element[0]).each(function(){var E=A.data(this,"selectable-item");E.$element.removeClass("ui-unselecting");E.unselecting=false;E.startselected=false;B.element.triggerHandler("selectableunselected",[D,{selectable:B.element[0],unselected:E.element,options:C}],C.unselected)});A(".ui-selecting",this.element[0]).each(function(){var E=A.data(this,"selectable-item");E.$element.removeClass("ui-selecting").addClass("ui-selected");E.selecting=false;E.selected=true;E.startselected=true;B.element.triggerHandler("selectableselected",[D,{selectable:B.element[0],selected:E.element,options:C}],C.selected)});this.element.triggerHandler("selectablestop",[D,{selectable:B.element[0],options:this.options}],this.options.stop);this.helper.remove();return false}}));A.extend(A.ui.selectable,{version:"1.6",defaults:{appendTo:"body",autoRefresh:true,cancel:":input",delay:0,distance:1,filter:"*",tolerance:"touch"}})})(jQuery);/* + * jQuery UI Sortable 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Sortables + * + * Depends: + * ui.core.js + */ +(function(A){A.widget("ui.sortable",A.extend({},A.ui.mouse,{_init:function(){var B=this.options;this.containerCache={};this.element.addClass("ui-sortable");this.refresh();this.floating=this.items.length?(/left|right/).test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var B=this.items.length-1;B>=0;B--){this.items[B].item.removeData("sortable-item")}},_mouseCapture:function(E,F){if(this.reverting){return false}if(this.options.disabled||this.options.type=="static"){return false}this._refreshItems(E);var D=null,C=this,B=A(E.target).parents().each(function(){if(A.data(this,"sortable-item")==C){D=A(this);return false}});if(A.data(E.target,"sortable-item")==C){D=A(E.target)}if(!D){return false}if(this.options.handle&&!F){var G=false;A(this.options.handle,D).find("*").andSelf().each(function(){if(this==E.target){G=true}});if(!G){return false}}this.currentItem=D;this._removeCurrentsFromItems();return true},_mouseStart:function(D,E,B){var F=this.options;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(D);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");A.extend(this.offset,{click:{left:D.pageX-this.offset.left,top:D.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});if(F.cursorAt){this._adjustOffsetFromHelper(F.cursorAt)}this.originalPosition=this._generatePosition(D);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};if(this.helper[0]!=this.currentItem[0]){this.currentItem.hide()}this._createPlaceholder();if(F.containment){this._setContainment()}this._propagate("start",D);if(!this._preserveHelperProportions){this._cacheHelperProportions()}if(!B){for(var C=this.containers.length-1;C>=0;C--){this.containers[C]._propagate("activate",D,this)}}if(A.ui.ddmanager){A.ui.ddmanager.current=this}if(A.ui.ddmanager&&!F.dropBehaviour){A.ui.ddmanager.prepareOffsets(this,D)}this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(D);return true},_mouseDrag:function(E){this.position=this._generatePosition(E);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs){this.lastPositionAbs=this.positionAbs}A.ui.plugin.call(this,"sort",[E,this._ui()]);this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}for(var C=this.items.length-1;C>=0;C--){var D=this.items[C],B=D.item[0],F=this._intersectsWithPointer(D);if(!F){continue}if(B!=this.currentItem[0]&&this.placeholder[F==1?"next":"prev"]()[0]!=B&&!A.ui.contains(this.placeholder[0],B)&&(this.options.type=="semi-dynamic"?!A.ui.contains(this.element[0],B):true)){this.direction=F==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(D)){this.options.sortIndicator.call(this,E,D)}else{break}this._propagate("change",E);break}}this._contactContainers(E);if(A.ui.ddmanager){A.ui.ddmanager.drag(this,E)}this._trigger("sort",E,this._ui());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(C,D){if(!C){return }if(A.ui.ddmanager&&!this.options.dropBehaviour){A.ui.ddmanager.drop(this,C)}if(this.options.revert){var B=this;var E=B.placeholder.offset();B.reverting=true;A(this.helper).animate({left:E.left-this.offset.parent.left-B.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:E.top-this.offset.parent.top-B.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){B._clear(C)})}else{this._clear(C,D)}return false},cancel:function(){if(this.dragging){this._mouseUp();if(this.options.helper=="original"){this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}for(var B=this.containers.length-1;B>=0;B--){this.containers[B]._propagate("deactivate",null,this);if(this.containers[B].containerCache.over){this.containers[B]._propagate("out",null,this);this.containers[B].containerCache.over=0}}}if(this.placeholder[0].parentNode){this.placeholder[0].parentNode.removeChild(this.placeholder[0])}if(this.options.helper!="original"&&this.helper&&this.helper[0].parentNode){this.helper.remove()}A.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});if(this.domPosition.prev){A(this.domPosition.prev).after(this.currentItem)}else{A(this.domPosition.parent).prepend(this.currentItem)}return true},serialize:function(D){var B=this._getItemsAsjQuery(D&&D.connected);var C=[];D=D||{};A(B).each(function(){var E=(A(D.item||this).attr(D.attribute||"id")||"").match(D.expression||(/(.+)[-=_](.+)/));if(E){C.push((D.key||E[1]+"[]")+"="+(D.key&&D.expression?E[1]:E[2]))}});return C.join("&")},toArray:function(D){var B=this._getItemsAsjQuery(D&&D.connected);var C=[];D=D||{};B.each(function(){C.push(A(D.item||this).attr(D.attribute||"id")||"")});return C},_intersectsWith:function(K){var D=this.positionAbs.left,C=D+this.helperProportions.width,J=this.positionAbs.top,I=J+this.helperProportions.height;var E=K.left,B=E+K.width,L=K.top,H=L+K.height;var M=this.offset.click.top,G=this.offset.click.left;var F=(J+M)>L&&(J+M)<H&&(D+G)>E&&(D+G)<B;if(this.options.tolerance=="pointer"||this.options.forcePointerForContainers||(this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>K[this.floating?"width":"height"])){return F}else{return(E<D+(this.helperProportions.width/2)&&C-(this.helperProportions.width/2)<B&&L<J+(this.helperProportions.height/2)&&I-(this.helperProportions.height/2)<H)}},_intersectsWithPointer:function(D){var E=A.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,D.top,D.height),C=A.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,D.left,D.width),G=E&&C,B=this._getDragVerticalDirection(),F=this._getDragHorizontalDirection();if(!G){return false}return this.floating?(((F&&F=="right")||B=="down")?2:1):(B&&(B=="down"?2:1))},_intersectsWithSides:function(E){var C=A.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,E.top+(E.height/2),E.height),D=A.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,E.left+(E.width/2),E.width),B=this._getDragVerticalDirection(),F=this._getDragHorizontalDirection();if(this.floating&&F){return((F=="right"&&D)||(F=="left"&&!D))}else{return B&&((B=="down"&&C)||(B=="up"&&!C))}},_getDragVerticalDirection:function(){var B=this.positionAbs.top-this.lastPositionAbs.top;return B!=0&&(B>0?"down":"up")},_getDragHorizontalDirection:function(){var B=this.positionAbs.left-this.lastPositionAbs.left;return B!=0&&(B>0?"right":"left")},refresh:function(B){this._refreshItems(B);this.refreshPositions()},_getItemsAsjQuery:function(G){var C=this;var B=[];var E=[];if(this.options.connectWith&&G){for(var F=this.options.connectWith.length-1;F>=0;F--){var I=A(this.options.connectWith[F]);for(var D=I.length-1;D>=0;D--){var H=A.data(I[D],"sortable");if(H&&H!=this&&!H.options.disabled){E.push([A.isFunction(H.options.items)?H.options.items.call(H.element):A(H.options.items,H.element).not(".ui-sortable-helper"),H])}}}}E.push([A.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):A(this.options.items,this.element).not(".ui-sortable-helper"),this]);for(var F=E.length-1;F>=0;F--){E[F][0].each(function(){B.push(this)})}return A(B)},_removeCurrentsFromItems:function(){var D=this.currentItem.find(":data(sortable-item)");for(var C=0;C<this.items.length;C++){for(var B=0;B<D.length;B++){if(D[B]==this.items[C].item[0]){this.items.splice(C,1)}}}},_refreshItems:function(B){this.items=[];this.containers=[this];var H=this.items;var M=this;var F=[[A.isFunction(this.options.items)?this.options.items.call(this.element[0],B,{item:this.currentItem}):A(this.options.items,this.element),this]];if(this.options.connectWith){for(var E=this.options.connectWith.length-1;E>=0;E--){var J=A(this.options.connectWith[E]);for(var D=J.length-1;D>=0;D--){var G=A.data(J[D],"sortable");if(G&&G!=this&&!G.options.disabled){F.push([A.isFunction(G.options.items)?G.options.items.call(G.element[0],B,{item:this.currentItem}):A(G.options.items,G.element),G]);this.containers.push(G)}}}}for(var E=F.length-1;E>=0;E--){var I=F[E][1];var C=F[E][0];for(var D=0,K=C.length;D<K;D++){var L=A(C[D]);L.data("sortable-item",I);H.push({item:L,instance:I,width:0,height:0,left:0,top:0})}}},refreshPositions:function(B){if(this.offsetParent&&this.helper){this.offset.parent=this._getParentOffset()}for(var D=this.items.length-1;D>=0;D--){var E=this.items[D];if(E.instance!=this.currentContainer&&this.currentContainer&&E.item[0]!=this.currentItem[0]){continue}var C=this.options.toleranceElement?A(this.options.toleranceElement,E.item):E.item;if(!B){if(this.options.accurateIntersection){E.width=C.outerWidth();E.height=C.outerHeight()}else{E.width=C[0].offsetWidth;E.height=C[0].offsetHeight}}var F=C.offset();E.left=F.left;E.top=F.top}if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this)}else{for(var D=this.containers.length-1;D>=0;D--){var F=this.containers[D].element.offset();this.containers[D].containerCache.left=F.left;this.containers[D].containerCache.top=F.top;this.containers[D].containerCache.width=this.containers[D].element.outerWidth();this.containers[D].containerCache.height=this.containers[D].element.outerHeight()}}},_createPlaceholder:function(D){var B=D||this,E=B.options;if(!E.placeholder||E.placeholder.constructor==String){var C=E.placeholder;E.placeholder={element:function(){var F=A(document.createElement(B.currentItem[0].nodeName)).addClass(C||B.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!C){F.style.visibility="hidden";document.body.appendChild(F);F.innerHTML=B.currentItem[0].innerHTML.replace(/name\=\"[^\"\']+\"/g,"").replace(/jQuery[0-9]+\=\"[^\"\']+\"/g,"");document.body.removeChild(F)}return F},update:function(F,G){if(C&&!E.forcePlaceholderSize){return }if(!G.height()){G.height(B.currentItem.innerHeight()-parseInt(B.currentItem.css("paddingTop")||0,10)-parseInt(B.currentItem.css("paddingBottom")||0,10))}if(!G.width()){G.width(B.currentItem.innerWidth()-parseInt(B.currentItem.css("paddingLeft")||0,10)-parseInt(B.currentItem.css("paddingRight")||0,10))}}}}B.placeholder=A(E.placeholder.element.call(B.element,B.currentItem));B.currentItem.after(B.placeholder);E.placeholder.update(B,B.placeholder)},_contactContainers:function(D){for(var C=this.containers.length-1;C>=0;C--){if(this._intersectsWith(this.containers[C].containerCache)){if(!this.containers[C].containerCache.over){if(this.currentContainer!=this.containers[C]){var H=10000;var G=null;var E=this.positionAbs[this.containers[C].floating?"left":"top"];for(var B=this.items.length-1;B>=0;B--){if(!A.ui.contains(this.containers[C].element[0],this.items[B].item[0])){continue}var F=this.items[B][this.containers[C].floating?"left":"top"];if(Math.abs(F-E)<H){H=Math.abs(F-E);G=this.items[B]}}if(!G&&!this.options.dropOnEmpty){continue}this.currentContainer=this.containers[C];G?this.options.sortIndicator.call(this,D,G,null,true):this.options.sortIndicator.call(this,D,null,this.containers[C].element,true);this._propagate("change",D);this.containers[C]._propagate("change",D,this);this.options.placeholder.update(this.currentContainer,this.placeholder)}this.containers[C]._propagate("over",D,this);this.containers[C].containerCache.over=1}}else{if(this.containers[C].containerCache.over){this.containers[C]._propagate("out",D,this);this.containers[C].containerCache.over=0}}}},_createHelper:function(C){var D=this.options;var B=A.isFunction(D.helper)?A(D.helper.apply(this.element[0],[C,this.currentItem])):(D.helper=="clone"?this.currentItem.clone():this.currentItem);if(!B.parents("body").length){A(D.appendTo!="parent"?D.appendTo:this.currentItem[0].parentNode)[0].appendChild(B[0])}if(B[0]==this.currentItem[0]){this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}}if(B[0].style.width==""||D.forceHelperSize){B.width(this.currentItem.width())}if(B[0].style.height==""||D.forceHelperSize){B.height(this.currentItem.height())}return B},_adjustOffsetFromHelper:function(B){if(B.left!=undefined){this.offset.click.left=B.left+this.margins.left}if(B.right!=undefined){this.offset.click.left=this.helperProportions.width-B.right+this.margins.left}if(B.top!=undefined){this.offset.click.top=B.top+this.margins.top}if(B.bottom!=undefined){this.offset.click.top=this.helperProportions.height-B.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var B=this.offsetParent.offset();if((this.offsetParent[0]==document.body&&A.browser.mozilla)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&A.browser.msie)){B={top:0,left:0}}return{top:B.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:B.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var B=this.currentItem.position();return{top:B.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:B.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.currentItem.css("marginLeft"),10)||0),top:(parseInt(this.currentItem.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var E=this.options;if(E.containment=="parent"){E.containment=this.helper[0].parentNode}if(E.containment=="document"||E.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,A(E.containment=="document"?document:window).width()-this.offset.relative.left-this.offset.parent.left-this.margins.left-(parseInt(this.currentItem.css("marginRight"),10)||0),(A(E.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.offset.relative.top-this.offset.parent.top-this.margins.top-(parseInt(this.currentItem.css("marginBottom"),10)||0)]}if(!(/^(document|window|parent)$/).test(E.containment)){var C=A(E.containment)[0];var D=A(E.containment).offset();var B=(A(C).css("overflow")!="hidden");this.containment=[D.left+(parseInt(A(C).css("borderLeftWidth"),10)||0)-this.offset.relative.left-this.offset.parent.left-this.margins.left,D.top+(parseInt(A(C).css("borderTopWidth"),10)||0)-this.offset.relative.top-this.offset.parent.top-this.margins.top,D.left+(B?Math.max(C.scrollWidth,C.offsetWidth):C.offsetWidth)-(parseInt(A(C).css("borderLeftWidth"),10)||0)-this.offset.relative.left-this.offset.parent.left-this.margins.left,D.top+(B?Math.max(C.scrollHeight,C.offsetHeight):C.offsetHeight)-(parseInt(A(C).css("borderTopWidth"),10)||0)-this.offset.relative.top-this.offset.parent.top-this.margins.top]}},_convertPositionTo:function(D,F){if(!F){F=this.position}var C=D=="absolute"?1:-1;var B=this[(this.cssPosition=="absolute"?"offset":"scroll")+"Parent"],E=(/(html|body)/i).test(B[0].tagName);return{top:(F.top+this.offset.relative.top*C+this.offset.parent.top*C+(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(E?0:B.scrollTop()))*C+this.margins.top*C),left:(F.left+this.offset.relative.left*C+this.offset.parent.left*C+(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():(E?0:B.scrollLeft()))*C+this.margins.left*C)}},_generatePosition:function(D){var G=this.options,C=this[(this.cssPosition=="absolute"?"offset":"scroll")+"Parent"],H=(/(html|body)/i).test(C[0].tagName);var B={top:(D.pageY-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(H?0:C.scrollTop()))),left:(D.pageX-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():(H?0:C.scrollLeft())))};if(!this.originalPosition){return B}if(this.containment){if(B.left<this.containment[0]){B.left=this.containment[0]}if(B.top<this.containment[1]){B.top=this.containment[1]}if(B.left+this.helperProportions.width>this.containment[2]){B.left=this.containment[2]-this.helperProportions.width}if(B.top+this.helperProportions.height>this.containment[3]){B.top=this.containment[3]-this.helperProportions.height}}if(G.grid){var F=this.originalPosition.top+Math.round((B.top-this.originalPosition.top)/G.grid[1])*G.grid[1];B.top=this.containment?(!(F<this.containment[1]||F>this.containment[3])?F:(!(F<this.containment[1])?F-G.grid[1]:F+G.grid[1])):F;var E=this.originalPosition.left+Math.round((B.left-this.originalPosition.left)/G.grid[0])*G.grid[0];B.left=this.containment?(!(E<this.containment[0]||E>this.containment[2])?E:(!(E<this.containment[0])?E-G.grid[0]:E+G.grid[0])):E}return B},_rearrange:function(G,F,C,E){C?C[0].appendChild(this.placeholder[0]):F.item[0].parentNode.insertBefore(this.placeholder[0],(this.direction=="down"?F.item[0]:F.item[0].nextSibling));this.counter=this.counter?++this.counter:1;var D=this,B=this.counter;window.setTimeout(function(){if(B==D.counter){D.refreshPositions(!E)}},0)},_clear:function(C,D){this.reverting=false;if(!this._noFinalSort){this.placeholder.before(this.currentItem)}this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var B in this._storedCSS){if(this._storedCSS[B]=="auto"||this._storedCSS[B]=="static"){this._storedCSS[B]=""}}this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}if(this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0]){this._propagate("update",C,null,D)}if(!A.ui.contains(this.element[0],this.currentItem[0])){this._propagate("remove",C,null,D);for(var B=this.containers.length-1;B>=0;B--){if(A.ui.contains(this.containers[B].element[0],this.currentItem[0])){this.containers[B]._propagate("update",C,this,D);this.containers[B]._propagate("receive",C,this,D)}}}for(var B=this.containers.length-1;B>=0;B--){this.containers[B]._propagate("deactivate",C,this,D);if(this.containers[B].containerCache.over){this.containers[B]._propagate("out",C,this);this.containers[B].containerCache.over=0}}this.dragging=false;if(this.cancelHelperRemoval){this._propagate("beforeStop",C,null,D);this._propagate("stop",C,null,D);return false}this._propagate("beforeStop",C,null,D);this.placeholder[0].parentNode.removeChild(this.placeholder[0]);if(this.options.helper!="original"){this.helper.remove()}this.helper=null;this._propagate("stop",C,null,D);return true},_propagate:function(F,B,C,D){A.ui.plugin.call(this,F,[B,this._ui(C)]);var E=!D?this.element.triggerHandler(F=="sort"?F:"sort"+F,[B,this._ui(C)],this.options[F]):true;if(E===false){this.cancel()}},plugins:{},_ui:function(C){var B=C||this;return{helper:B.helper,placeholder:B.placeholder||A([]),position:B.position,absolutePosition:B.positionAbs,item:B.currentItem,sender:C?C.element:null}}}));A.extend(A.ui.sortable,{getter:"serialize toArray",version:"1.6",defaults:{accurateIntersection:true,appendTo:"parent",cancel:":input",delay:0,distance:1,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,helper:"original",items:"> *",scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,sortIndicator:A.ui.sortable.prototype._rearrange,tolerance:"default",zIndex:1000}});A.ui.plugin.add("sortable","cursor",{start:function(D,E){var C=A("body"),B=A(this).data("sortable");if(C.css("cursor")){B.options._cursor=C.css("cursor")}C.css("cursor",B.options.cursor)},beforeStop:function(C,D){var B=A(this).data("sortable");if(B.options._cursor){A("body").css("cursor",B.options._cursor)}}});A.ui.plugin.add("sortable","opacity",{start:function(D,E){var C=E.helper,B=A(this).data("sortable");if(C.css("opacity")){B.options._opacity=C.css("opacity")}C.css("opacity",B.options.opacity)},beforeStop:function(C,D){var B=A(this).data("sortable");if(B.options._opacity){A(D.helper).css("opacity",B.options._opacity)}}});A.ui.plugin.add("sortable","scroll",{start:function(C,D){var B=A(this).data("sortable"),E=B.options;if(B.scrollParent[0]!=document&&B.scrollParent[0].tagName!="HTML"){B.overflowOffset=B.scrollParent.offset()}},sort:function(D,E){var C=A(this).data("sortable"),F=C.options,B=false;if(C.scrollParent[0]!=document&&C.scrollParent[0].tagName!="HTML"){if((C.overflowOffset.top+C.scrollParent[0].offsetHeight)-D.pageY<F.scrollSensitivity){C.scrollParent[0].scrollTop=B=C.scrollParent[0].scrollTop+F.scrollSpeed}else{if(D.pageY-C.overflowOffset.top<F.scrollSensitivity){C.scrollParent[0].scrollTop=B=C.scrollParent[0].scrollTop-F.scrollSpeed}}if((C.overflowOffset.left+C.scrollParent[0].offsetWidth)-D.pageX<F.scrollSensitivity){C.scrollParent[0].scrollLeft=B=C.scrollParent[0].scrollLeft+F.scrollSpeed}else{if(D.pageX-C.overflowOffset.left<F.scrollSensitivity){C.scrollParent[0].scrollLeft=B=C.scrollParent[0].scrollLeft-F.scrollSpeed}}}else{if(D.pageY-A(document).scrollTop()<F.scrollSensitivity){B=A(document).scrollTop(A(document).scrollTop()-F.scrollSpeed)}else{if(A(window).height()-(D.pageY-A(document).scrollTop())<F.scrollSensitivity){B=A(document).scrollTop(A(document).scrollTop()+F.scrollSpeed)}}if(D.pageX-A(document).scrollLeft()<F.scrollSensitivity){B=A(document).scrollLeft(A(document).scrollLeft()-F.scrollSpeed)}else{if(A(window).width()-(D.pageX-A(document).scrollLeft())<F.scrollSensitivity){B=A(document).scrollLeft(A(document).scrollLeft()+F.scrollSpeed)}}}if(B!==false&&A.ui.ddmanager&&!F.dropBehaviour){A.ui.ddmanager.prepareOffsets(C,D)}if(B!==false&&C.cssPosition=="absolute"&&C.scrollParent[0]!=document&&A.ui.contains(C.scrollParent[0],C.offsetParent[0])){C.offset.parent=C._getParentOffset()}if(B!==false&&C.cssPosition=="relative"&&!(C.scrollParent[0]!=document&&C.scrollParent[0]!=C.offsetParent[0])){C.offset.relative=C._getRelativeOffset()}}});A.ui.plugin.add("sortable","zIndex",{start:function(D,E){var C=E.helper,B=A(this).data("sortable");if(C.css("zIndex")){B.options._zIndex=C.css("zIndex")}C.css("zIndex",B.options.zIndex)},beforeStop:function(C,D){var B=A(this).data("sortable");if(B.options._zIndex){A(D.helper).css("zIndex",B.options._zIndex=="auto"?"":B.options._zIndex)}}})})(jQuery);/* + * jQuery UI Accordion 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Accordion + * + * Depends: + * ui.core.js + */ +(function(E){E.widget("ui.accordion",{_init:function(){var H=this.options;if(H.navigation){var K=this.element.find("a").filter(H.navigationFilter);if(K.length){if(K.filter(H.header).length){H.active=K}else{H.active=K.parent().parent().prev();K.addClass("current")}}}H.headers=this.element.find(H.header);H.active=C(H.headers,H.active);if(E.browser.msie){this.element.find("a").css("zoom","1")}if(!this.element.hasClass("ui-accordion")){this.element.addClass("ui-accordion");E('<span class="ui-accordion-left"></span>').insertBefore(H.headers);E('<span class="ui-accordion-right"></span>').appendTo(H.headers);H.headers.addClass("ui-accordion-header")}var J;if(H.fillSpace){J=this.element.parent().height();H.headers.each(function(){J-=E(this).outerHeight()});var I=0;H.headers.next().each(function(){I=Math.max(I,E(this).innerHeight()-E(this).height())}).height(J-I)}else{if(H.autoHeight){J=0;H.headers.next().each(function(){J=Math.max(J,E(this).outerHeight())}).height(J)}}this.element.attr("role","tablist");var G=this;H.headers.attr("role","tab").bind("keydown",function(L){return G._keydown(L)}).next().attr("role","tabpanel");H.headers.not(H.active||"").attr("aria-expanded","false").attr("tabIndex","-1").next().hide();if(!H.active.length){H.headers.eq(0).attr("tabIndex","0")}else{H.active.attr("aria-expanded","true").attr("tabIndex","0").parent().andSelf().addClass(H.selectedClass)}if(!E.browser.safari){H.headers.find("a").attr("tabIndex","-1")}if(H.event){this.element.bind((H.event)+".accordion",F)}},destroy:function(){this.options.headers.parent().andSelf().removeClass(this.options.selectedClass);this.options.headers.prev(".ui-accordion-left").remove();this.options.headers.children(".ui-accordion-right").remove();this.options.headers.next().css("display","");if(this.options.fillSpace||this.options.autoHeight){this.options.headers.next().css("height","")}E.removeData(this.element[0],"accordion");this.element.removeClass("ui-accordion").unbind(".accordion")},_keydown:function(J){if(this.options.disabled||J.altKey||J.ctrlKey){return }var K=E.ui.keyCode;var I=this.options.headers.length;var G=this.options.headers.index(J.target);var H=false;switch(J.keyCode){case K.RIGHT:case K.DOWN:H=this.options.headers[(G+1)%I];break;case K.LEFT:case K.UP:H=this.options.headers[(G-1+I)%I];break;case K.SPACE:case K.ENTER:return F.call(this.element[0],{target:J.target})}if(H){E(J.target).attr("tabIndex","-1");E(H).attr("tabIndex","0");H.focus();return false}return true},activate:function(G){F.call(this.element[0],{target:C(this.options.headers,G)[0]})}});function B(H,G){return function(){return H.apply(G,arguments)}}function D(I){if(!E.data(this,"accordion")){return }var G=E.data(this,"accordion");var H=G.options;H.running=I?0:--H.running;if(H.running){return }if(H.clearStyle){H.toShow.add(H.toHide).css({height:"",overflow:""})}G._trigger("change",null,H.data)}function A(G,N,K,L,O){var Q=E.data(this,"accordion").options;Q.toShow=G;Q.toHide=N;Q.data=K;var H=B(D,this);E.data(this,"accordion")._trigger("changestart",null,Q.data);Q.running=N.size()===0?G.size():N.size();if(Q.animated){var J={};if(!Q.alwaysOpen&&L){J={toShow:E([]),toHide:N,complete:H,down:O,autoHeight:Q.autoHeight}}else{J={toShow:G,toHide:N,complete:H,down:O,autoHeight:Q.autoHeight}}if(!Q.proxied){Q.proxied=Q.animated}if(!Q.proxiedDuration){Q.proxiedDuration=Q.duration}Q.animated=E.isFunction(Q.proxied)?Q.proxied(J):Q.proxied;Q.duration=E.isFunction(Q.proxiedDuration)?Q.proxiedDuration(J):Q.proxiedDuration;var P=E.ui.accordion.animations,I=Q.duration,M=Q.animated;if(!P[M]){P[M]=function(R){this.slide(R,{easing:M,duration:I||700})}}P[M](J)}else{if(!Q.alwaysOpen&&L){G.toggle()}else{N.hide();G.show()}H(true)}N.prev().attr("aria-expanded","false").attr("tabIndex","-1");G.prev().attr("aria-expanded","true").attr("tabIndex","0").focus()}function F(L){var J=E.data(this,"accordion").options;if(J.disabled){return false}if(!L.target&&!J.alwaysOpen){J.active.parent().andSelf().toggleClass(J.selectedClass);var I=J.active.next(),M={options:J,newHeader:E([]),oldHeader:J.active,newContent:E([]),oldContent:I},G=(J.active=E([]));A.call(this,G,I,M);return false}var K=E(L.target);K=E(K.parents(J.header)[0]||K);var H=K[0]==J.active[0];if(J.running||(J.alwaysOpen&&H)){return false}if(!K.is(J.header)){return }J.active.parent().andSelf().toggleClass(J.selectedClass);if(!H){K.parent().andSelf().addClass(J.selectedClass)}var G=K.next(),I=J.active.next(),M={options:J,newHeader:H&&!J.alwaysOpen?E([]):K,oldHeader:J.active,newContent:H&&!J.alwaysOpen?E([]):G,oldContent:I},N=J.headers.index(J.active[0])>J.headers.index(K[0]);J.active=H?E([]):K;A.call(this,G,I,M,H,N);return false}function C(H,G){return G?typeof G=="number"?H.filter(":eq("+G+")"):H.not(H.not(G)):G===false?E([]):H.filter(":eq(0)")}E.extend(E.ui.accordion,{version:"1.6",defaults:{autoHeight:true,alwaysOpen:true,animated:"slide",event:"click",header:"a",navigationFilter:function(){return this.href.toLowerCase()==location.href.toLowerCase()},running:0,selectedClass:"selected"},animations:{slide:function(G,J){G=E.extend({easing:"swing",duration:300},G,J);if(!G.toHide.size()){G.toShow.animate({height:"show"},G);return }var I=G.toHide.height(),L=G.toShow.height(),N=L/I,K=G.toShow.outerHeight()-G.toShow.height(),H=G.toShow.css("marginBottom"),M=G.toShow.css("overflow");tmargin=G.toShow.css("marginTop");G.toShow.css({height:0,overflow:"hidden",marginTop:0,marginBottom:-K}).show();G.toHide.filter(":hidden").each(G.complete).end().filter(":visible").animate({height:"hide"},{step:function(O){var P=(I-O)*N;if(E.browser.msie||E.browser.opera){P=Math.ceil(P)}G.toShow.height(P)},duration:G.duration,easing:G.easing,complete:function(){if(!G.autoHeight){G.toShow.css("height","auto")}G.toShow.css({marginTop:tmargin,marginBottom:H,overflow:M});G.complete()}})},bounceslide:function(G){this.slide(G,{easing:G.down?"easeOutBounce":"swing",duration:G.down?1000:200})},easeslide:function(G){this.slide(G,{easing:"easeinout",duration:700})}}})})(jQuery);/* + * jQuery UI Dialog 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Dialog + * + * Depends: + * ui.core.js + * ui.draggable.js + * ui.resizable.js + */ +(function(B){var A={dragStart:"start.draggable",drag:"drag.draggable",dragStop:"stop.draggable",maxHeight:"maxHeight.resizable",minHeight:"minHeight.resizable",maxWidth:"maxWidth.resizable",minWidth:"minWidth.resizable",resizeStart:"start.resizable",resize:"drag.resizable",resizeStop:"stop.resizable"};B.widget("ui.dialog",{_init:function(){this.originalTitle=this.element.attr("title");this.options.title=this.options.title||this.originalTitle;var M=this,N=this.options,F=this.element.removeAttr("title").addClass("ui-dialog-content").wrap("<div></div>").wrap("<div></div>"),I=(this.uiDialogContainer=F.parent()).addClass("ui-dialog-container").css({position:"relative",width:"100%",height:"100%"}),E=(this.uiDialogTitlebar=B("<div></div>")).addClass("ui-dialog-titlebar").mousedown(function(){M.moveToTop()}).prependTo(I),J=B('<a href="#"/>').addClass("ui-dialog-titlebar-close").attr("role","button").appendTo(E),G=(this.uiDialogTitlebarCloseText=B("<span/>")).text(N.closeText).appendTo(J),L=N.title||" ",D=B.ui.dialog.getTitleId(this.element),C=B("<span/>").addClass("ui-dialog-title").attr("id",D).html(L).prependTo(E),K=(this.uiDialog=I.parent()).appendTo(document.body).hide().addClass("ui-dialog").addClass(N.dialogClass).css({position:"absolute",width:N.width,height:N.height,overflow:"hidden",zIndex:N.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(O){(N.closeOnEscape&&O.keyCode&&O.keyCode==B.ui.keyCode.ESCAPE&&M.close())}).attr({role:"dialog","aria-labelledby":D}).mouseup(function(){M.moveToTop()}),H=(this.uiDialogButtonPane=B("<div></div>")).addClass("ui-dialog-buttonpane").css({position:"absolute",bottom:0}).appendTo(K),J=B(".ui-dialog-titlebar-close",E).hover(function(){B(this).addClass("ui-dialog-titlebar-close-hover")},function(){B(this).removeClass("ui-dialog-titlebar-close-hover")}).mousedown(function(O){O.stopPropagation()}).click(function(){M.close();return false});E.find("*").add(E).disableSelection();(N.draggable&&B.fn.draggable&&this._makeDraggable());(N.resizable&&B.fn.resizable&&this._makeResizable());this._createButtons(N.buttons);this._isOpen=false;(N.bgiframe&&B.fn.bgiframe&&K.bgiframe());(N.autoOpen&&this.open())},destroy:function(){(this.overlay&&this.overlay.destroy());this.uiDialog.hide();this.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content").hide().appendTo("body");this.uiDialog.remove();(this.originalTitle&&this.element.attr("title",this.originalTitle))},close:function(){if(false===this._trigger("beforeclose",null,{options:this.options})){return }(this.overlay&&this.overlay.destroy());this.uiDialog.hide(this.options.hide).unbind("keypress.ui-dialog");this._trigger("close",null,{options:this.options});B.ui.dialog.overlay.resize();this._isOpen=false},isOpen:function(){return this._isOpen},moveToTop:function(F){if((this.options.modal&&!F)||(!this.options.stack&&!this.options.modal)){return this._trigger("focus",null,{options:this.options})}var E=this.options.zIndex,D=this.options;B(".ui-dialog:visible").each(function(){E=Math.max(E,parseInt(B(this).css("z-index"),10)||D.zIndex)});(this.overlay&&this.overlay.$el.css("z-index",++E));var C={scrollTop:this.element.attr("scrollTop"),scrollLeft:this.element.attr("scrollLeft")};this.uiDialog.css("z-index",++E);this.element.attr(C);this._trigger("focus",null,{options:this.options})},open:function(){if(this._isOpen){return }this.overlay=this.options.modal?new B.ui.dialog.overlay(this):null;(this.uiDialog.next().length&&this.uiDialog.appendTo("body"));this._position(this.options.position);this.uiDialog.show(this.options.show);(this.options.autoResize&&this._size());this.moveToTop(true);(this.options.modal&&this.uiDialog.bind("keypress.ui-dialog",function(E){if(E.keyCode!=B.ui.keyCode.TAB){return }var D=B(":tabbable",this),F=D.filter(":first")[0],C=D.filter(":last")[0];if(E.target==C&&!E.shiftKey){setTimeout(function(){F.focus()},1)}else{if(E.target==F&&E.shiftKey){setTimeout(function(){C.focus()},1)}}}));this.uiDialog.find(":tabbable:first").focus();this._trigger("open",null,{options:this.options});this._isOpen=true},_createButtons:function(F){var E=this,C=false,D=this.uiDialogButtonPane;D.empty().hide();B.each(F,function(){return !(C=true)});if(C){D.show();B.each(F,function(G,H){B('<button type="button"></button>').text(G).click(function(){H.apply(E.element[0],arguments)}).appendTo(D)})}},_makeDraggable:function(){var C=this,D=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content",helper:D.dragHelper,handle:".ui-dialog-titlebar",start:function(){C.moveToTop();(D.dragStart&&D.dragStart.apply(C.element[0],arguments))},drag:function(){(D.drag&&D.drag.apply(C.element[0],arguments))},stop:function(){(D.dragStop&&D.dragStop.apply(C.element[0],arguments));B.ui.dialog.overlay.resize()}})},_makeResizable:function(F){F=(F===undefined?this.options.resizable:F);var C=this,E=this.options,D=typeof F=="string"?F:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",helper:E.resizeHelper,maxWidth:E.maxWidth,maxHeight:E.maxHeight,minWidth:E.minWidth,minHeight:E.minHeight,start:function(){(E.resizeStart&&E.resizeStart.apply(C.element[0],arguments))},resize:function(){(E.autoResize&&C._size.apply(C));(E.resize&&E.resize.apply(C.element[0],arguments))},handles:D,stop:function(){(E.autoResize&&C._size.apply(C));(E.resizeStop&&E.resizeStop.apply(C.element[0],arguments));B.ui.dialog.overlay.resize()}})},_position:function(H){var D=B(window),E=B(document),F=E.scrollTop(),C=E.scrollLeft(),G=F;if(B.inArray(H,["center","top","right","bottom","left"])>=0){H=[H=="right"||H=="left"?H:"center",H=="top"||H=="bottom"?H:"middle"]}if(H.constructor!=Array){H=["center","middle"]}if(H[0].constructor==Number){C+=H[0]}else{switch(H[0]){case"left":C+=0;break;case"right":C+=D.width()-this.uiDialog.outerWidth();break;default:case"center":C+=(D.width()-this.uiDialog.outerWidth())/2}}if(H[1].constructor==Number){F+=H[1]}else{switch(H[1]){case"top":F+=0;break;case"bottom":F+=(B.browser.opera?window.innerHeight:D.height())-this.uiDialog.outerHeight();break;default:case"middle":F+=((B.browser.opera?window.innerHeight:D.height())-this.uiDialog.outerHeight())/2}}F=Math.max(F,G);this.uiDialog.css({top:F,left:C})},_setData:function(D,E){(A[D]&&this.uiDialog.data(A[D],E));switch(D){case"buttons":this._createButtons(E);break;case"closeText":this.uiDialogTitlebarCloseText.text(E);break;case"draggable":(E?this._makeDraggable():this.uiDialog.draggable("destroy"));break;case"height":this.uiDialog.height(E);break;case"position":this._position(E);break;case"resizable":var C=this.uiDialog,F=this.uiDialog.is(":data(resizable)");(F&&!E&&C.resizable("destroy"));(F&&typeof E=="string"&&C.resizable("option","handles",E));(F||this._makeResizable(E));break;case"title":B(".ui-dialog-title",this.uiDialogTitlebar).html(E||" ");break;case"width":this.uiDialog.width(E);break}B.widget.prototype._setData.apply(this,arguments)},_size:function(){var D=this.uiDialogContainer,G=this.uiDialogTitlebar,E=this.element,F=(parseInt(E.css("margin-top"),10)||0)+(parseInt(E.css("margin-bottom"),10)||0),C=(parseInt(E.css("margin-left"),10)||0)+(parseInt(E.css("margin-right"),10)||0);E.height(D.height()-G.outerHeight()-F);E.width(D.width()-C)}});B.extend(B.ui.dialog,{version:"1.6",defaults:{autoOpen:true,autoResize:true,bgiframe:false,buttons:{},closeOnEscape:true,closeText:"close",draggable:true,height:200,minHeight:100,minWidth:150,modal:false,overlay:{},position:"center",resizable:true,stack:true,width:300,zIndex:1000},getter:"isOpen",uuid:0,getTitleId:function(C){return"ui-dialog-title-"+(C.attr("id")||++this.uuid)},overlay:function(C){this.$el=B.ui.dialog.overlay.create(C)}});B.extend(B.ui.dialog.overlay,{instances:[],events:B.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(C){return C+".dialog-overlay"}).join(" "),create:function(D){if(this.instances.length===0){setTimeout(function(){B("a, :input").bind(B.ui.dialog.overlay.events,function(){var F=false;var H=B(this).parents(".ui-dialog");if(H.length){var E=B(".ui-dialog-overlay");if(E.length){var G=parseInt(E.css("z-index"),10);E.each(function(){G=Math.max(G,parseInt(B(this).css("z-index"),10))});F=parseInt(H.css("z-index"),10)>G}else{F=true}}return F})},1);B(document).bind("keydown.dialog-overlay",function(E){(D.options.closeOnEscape&&E.keyCode&&E.keyCode==B.ui.keyCode.ESCAPE&&D.close())});B(window).bind("resize.dialog-overlay",B.ui.dialog.overlay.resize)}var C=B("<div></div>").appendTo(document.body).addClass("ui-dialog-overlay").css(B.extend({borderWidth:0,margin:0,padding:0,position:"absolute",top:0,left:0,width:this.width(),height:this.height()},D.options.overlay));(D.options.bgiframe&&B.fn.bgiframe&&C.bgiframe());this.instances.push(C);return C},destroy:function(C){this.instances.splice(B.inArray(this.instances,C),1);if(this.instances.length===0){B("a, :input").add([document,window]).unbind(".dialog-overlay")}C.remove()},height:function(){if(B.browser.msie&&B.browser.version<7){var D=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);var C=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(D<C){return B(window).height()+"px"}else{return D+"px"}}else{if(B.browser.opera){return Math.max(window.innerHeight,B(document).height())+"px"}else{return B(document).height()+"px"}}},width:function(){if(B.browser.msie&&B.browser.version<7){var C=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);var D=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);if(C<D){return B(window).width()+"px"}else{return C+"px"}}else{if(B.browser.opera){return Math.max(window.innerWidth,B(document).width())+"px"}else{return B(document).width()+"px"}}},resize:function(){var C=B([]);B.each(B.ui.dialog.overlay.instances,function(){C=C.add(this)});C.css({width:0,height:0}).css({width:B.ui.dialog.overlay.width(),height:B.ui.dialog.overlay.height()})}});B.extend(B.ui.dialog.overlay.prototype,{destroy:function(){B.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);/* + * jQuery UI Slider 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Slider + * + * Depends: + * ui.core.js + */ +(function(A){A.fn.unwrap=A.fn.unwrap||function(B){return this.each(function(){A(this).parents(B).eq(0).after(this).remove()})};A.widget("ui.slider",{_init:function(){var B=this;this.element.addClass("ui-slider");this._initBoundaries();this.handle=A(this.options.handle,this.element);if(!this.handle.length){B.handle=B.generated=A(B.options.handles||[0]).map(function(){var D=A("<div/>").addClass("ui-slider-handle").appendTo(B.element);if(this.id){D.attr("id",this.id)}return D[0]})}var C=function(D){this.element=A(D);this.element.data("mouse",this);this.options=B.options;this.element.bind("mousedown",function(){if(B.currentHandle){this.blur(B.currentHandle)}B._focus(this,true)});this._mouseInit()};A.extend(C.prototype,A.ui.mouse,{_mouseCapture:function(){return true},_mouseStart:function(D){return B._start.call(B,D,this.element[0])},_mouseDrag:function(D){return B._drag.call(B,D,this.element[0])},_mouseStop:function(D){return B._stop.call(B,D,this.element[0])},trigger:function(D){this._mouseDown(D)}});A(this.handle).each(function(){new C(this)}).wrap('<a href="#" style="outline:none;border:none;"></a>').parent().bind("click",function(){return false}).bind("focus",function(D){B._focus(this.firstChild)}).bind("blur",function(D){B._blur(this.firstChild)}).bind("keydown",function(D){if(!B.options.noKeyboard){return B._keydown(D.keyCode,this.firstChild)}});this.element.bind("mousedown.slider",function(D){if(A(D.target).is(".ui-slider-handle")){return }B._click.apply(B,[D]);B.currentHandle.data("mouse").trigger(D);B.firstValue=B.firstValue+1});A.each(this.options.handles||[],function(D,E){B.moveTo(E.start,D,true)});if(!isNaN(this.options.startValue)){this.moveTo(this.options.startValue,0,true)}this.previousHandle=A(this.handle[0]);if(this.handle.length==2&&this.options.range){this._createRange()}},destroy:function(){this.element.removeClass("ui-slider ui-slider-disabled").removeData("slider").unbind(".slider");if(this.handle&&this.handle.length){this.handle.unwrap("a");this.handle.each(function(){var B=A(this).data("mouse");B&&B._mouseDestroy()})}this.generated&&this.generated.remove()},_start:function(B,C){var D=this.options;if(D.disabled){return false}this.actualSize={width:this.element.outerWidth(),height:this.element.outerHeight()};if(!this.currentHandle){this._focus(this.previousHandle,true)}this.offset=this.element.offset();this.handleOffset=this.currentHandle.offset();this.clickOffset={top:B.pageY-this.handleOffset.top,left:B.pageX-this.handleOffset.left};this.firstValue=this.value();this._propagate("start",B);this._drag(B,C);return true},_drag:function(C,E){var F=this.options;var B={top:C.pageY-this.offset.top-this.clickOffset.top,left:C.pageX-this.offset.left-this.clickOffset.left};if(!this.currentHandle){this._focus(this.previousHandle,true)}B.left=this._translateLimits(B.left,"x");B.top=this._translateLimits(B.top,"y");if(F.stepping.x){var D=this._convertValue(B.left,"x");D=this._round(D/F.stepping.x)*F.stepping.x;B.left=this._translateValue(D,"x")}if(F.stepping.y){var D=this._convertValue(B.top,"y");D=this._round(D/F.stepping.y)*F.stepping.y;B.top=this._translateValue(D,"y")}B.left=this._translateRange(B.left,"x");B.top=this._translateRange(B.top,"y");if(F.axis!="vertical"){this.currentHandle.css({left:B.left})}if(F.axis!="horizontal"){this.currentHandle.css({top:B.top})}this.currentHandle.data("mouse").sliderValue={x:this._round(this._convertValue(B.left,"x"))||0,y:this._round(this._convertValue(B.top,"y"))||0};if(this.rangeElement){this._updateRange()}this._propagate("slide",C);return false},_stop:function(B){this._propagate("stop",B);if(this.firstValue!=this.value()){this._propagate("change",B)}this._focus(this.currentHandle,true);return false},_round:function(B){return this.options.round?parseInt(B,10):parseFloat(B)},_setData:function(B,C){A.widget.prototype._setData.apply(this,arguments);if(/min|max|steps/.test(B)){this._initBoundaries()}if(B=="range"){C?this.handle.length==2&&this._createRange():this._removeRange()}},_initBoundaries:function(){var B=this.element[0],C=this.options;this.actualSize={width:this.element.outerWidth(),height:this.element.outerHeight()};A.extend(C,{axis:C.axis||(B.offsetWidth<B.offsetHeight?"vertical":"horizontal"),max:!isNaN(parseInt(C.max,10))?{x:parseInt(C.max,10),y:parseInt(C.max,10)}:({x:C.max&&C.max.x||100,y:C.max&&C.max.y||100}),min:!isNaN(parseInt(C.min,10))?{x:parseInt(C.min,10),y:parseInt(C.min,10)}:({x:C.min&&C.min.x||0,y:C.min&&C.min.y||0})});C.realMax={x:C.max.x-C.min.x,y:C.max.y-C.min.y};C.stepping={x:C.stepping&&C.stepping.x||parseInt(C.stepping,10)||(C.steps?C.realMax.x/(C.steps.x||parseInt(C.steps,10)||C.realMax.x):0),y:C.stepping&&C.stepping.y||parseInt(C.stepping,10)||(C.steps?C.realMax.y/(C.steps.y||parseInt(C.steps,10)||C.realMax.y):0)}},_keydown:function(F,E){if(this.options.disabled){return }var C=F;if(/(33|34|35|36|37|38|39|40)/.test(C)){var G=this.options,B,I;if(/(35|36)/.test(C)){B=(C==35)?G.max.x:G.min.x;I=(C==35)?G.max.y:G.min.y}else{var H=/(34|37|40)/.test(C)?"-=":"+=";var D=/(37|38|39|40)/.test(C)?"_oneStep":"_pageStep";B=H+this[D]("x");I=H+this[D]("y")}this.moveTo({x:B,y:I},E);return false}return true},_focus:function(B,C){this.currentHandle=A(B).addClass("ui-slider-handle-active");if(C){this.currentHandle.parent()[0].focus()}},_blur:function(B){A(B).removeClass("ui-slider-handle-active");if(this.currentHandle&&this.currentHandle[0]==B){this.previousHandle=this.currentHandle;this.currentHandle=null}},_click:function(C){var D=[C.pageX,C.pageY];var B=false;this.handle.each(function(){if(this==C.target){B=true}});if(B||this.options.disabled||!(this.currentHandle||this.previousHandle)){return }if(!this.currentHandle&&this.previousHandle){this._focus(this.previousHandle,true)}this.offset=this.element.offset();this.moveTo({y:this._convertValue(C.pageY-this.offset.top-this.currentHandle[0].offsetHeight/2,"y"),x:this._convertValue(C.pageX-this.offset.left-this.currentHandle[0].offsetWidth/2,"x")},null,!this.options.distance)},_createRange:function(){if(this.rangeElement){return }this.rangeElement=A("<div></div>").addClass("ui-slider-range").css({position:"absolute"}).appendTo(this.element);this._updateRange()},_removeRange:function(){this.rangeElement.remove();this.rangeElement=null},_updateRange:function(){var C=this.options.axis=="vertical"?"top":"left";var B=this.options.axis=="vertical"?"height":"width";this.rangeElement.css(C,(this._round(A(this.handle[0]).css(C))||0)+this._handleSize(0,this.options.axis=="vertical"?"y":"x")/2);this.rangeElement.css(B,(this._round(A(this.handle[1]).css(C))||0)-(this._round(A(this.handle[0]).css(C))||0))},_getRange:function(){return this.rangeElement?this._convertValue(this._round(this.rangeElement.css(this.options.axis=="vertical"?"height":"width")),this.options.axis=="vertical"?"y":"x"):null},_handleIndex:function(){return this.handle.index(this.currentHandle[0])},value:function(D,B){if(this.handle.length==1){this.currentHandle=this.handle}if(!B){B=this.options.axis=="vertical"?"y":"x"}var C=A(D!=undefined&&D!==null?this.handle[D]||D:this.currentHandle);if(C.data("mouse").sliderValue){return this._round(C.data("mouse").sliderValue[B])}else{return this._round(((this._round(C.css(B=="x"?"left":"top"))/(this.actualSize[B=="x"?"width":"height"]-this._handleSize(D,B)))*this.options.realMax[B])+this.options.min[B])}},_convertValue:function(C,B){return this.options.min[B]+(C/(this.actualSize[B=="x"?"width":"height"]-this._handleSize(null,B)))*this.options.realMax[B]},_translateValue:function(C,B){return((C-this.options.min[B])/this.options.realMax[B])*(this.actualSize[B=="x"?"width":"height"]-this._handleSize(null,B))},_translateRange:function(D,B){if(this.rangeElement){if(this.currentHandle[0]==this.handle[0]&&D>=this._translateValue(this.value(1),B)){D=this._translateValue(this.value(1,B)-this._oneStep(B),B)}if(this.currentHandle[0]==this.handle[1]&&D<=this._translateValue(this.value(0),B)){D=this._translateValue(this.value(0,B)+this._oneStep(B),B)}}if(this.options.handles){var C=this.options.handles[this._handleIndex()];if(D<this._translateValue(C.min,B)){D=this._translateValue(C.min,B)}else{if(D>this._translateValue(C.max,B)){D=this._translateValue(C.max,B)}}}return D},_translateLimits:function(C,B){if(C>=this.actualSize[B=="x"?"width":"height"]-this._handleSize(null,B)){C=this.actualSize[B=="x"?"width":"height"]-this._handleSize(null,B)}if(C<=0){C=0}return C},_handleSize:function(C,B){return A(C!=undefined&&C!==null?this.handle[C]:this.currentHandle)[0]["offset"+(B=="x"?"Width":"Height")]},_oneStep:function(B){return this.options.stepping[B]||1},_pageStep:function(B){return 10},moveTo:function(F,E,G){var H=this.options;this.actualSize={width:this.element.outerWidth(),height:this.element.outerHeight()};if(E==undefined&&!this.currentHandle&&this.handle.length!=1){return false}if(E==undefined&&!this.currentHandle){E=0}if(E!=undefined){this.currentHandle=this.previousHandle=A(this.handle[E]||E)}if(F.x!==undefined&&F.y!==undefined){var B=F.x,I=F.y}else{var B=F,I=F}if(B!==undefined&&B.constructor!=Number){var D=/^\-\=/.test(B),C=/^\+\=/.test(B);if(D||C){B=this.value(null,"x")+this._round(B.replace(D?"=":"+=",""))}else{B=isNaN(this._round(B))?undefined:this._round(B)}}if(I!==undefined&&I.constructor!=Number){var D=/^\-\=/.test(I),C=/^\+\=/.test(I);if(D||C){I=this.value(null,"y")+this._round(I.replace(D?"=":"+=",""))}else{I=isNaN(this._round(I))?undefined:this._round(I)}}if(H.axis!="vertical"&&B!==undefined){if(H.stepping.x){B=this._round(B/H.stepping.x)*H.stepping.x}B=this._translateValue(B,"x");B=this._translateLimits(B,"x");B=this._translateRange(B,"x");H.animate?this.currentHandle.stop().animate({left:B},(Math.abs(parseInt(this.currentHandle.css("left"),10)-B))*(!isNaN(parseInt(H.animate,10))?H.animate:5)):this.currentHandle.css({left:B})}if(H.axis!="horizontal"&&I!==undefined){if(H.stepping.y){I=this._round(I/H.stepping.y)*H.stepping.y}I=this._translateValue(I,"y");I=this._translateLimits(I,"y");I=this._translateRange(I,"y");H.animate?this.currentHandle.stop().animate({top:I},(Math.abs(parseInt(this.currentHandle.css("top"),10)-I))*(!isNaN(parseInt(H.animate,10))?H.animate:5)):this.currentHandle.css({top:I})}if(this.rangeElement){this._updateRange()}this.currentHandle.data("mouse").sliderValue={x:this._round(this._convertValue(B,"x"))||0,y:this._round(this._convertValue(I,"y"))||0};if(!G){this._propagate("start",null);this._propagate("slide",null);this._propagate("stop",null);this._propagate("change",null)}},_propagate:function(C,B){A.ui.plugin.call(this,C,[B,this.ui()]);this.element.triggerHandler(C=="slide"?C:"slide"+C,[B,this.ui()],this.options[C])},plugins:{},ui:function(B){return{options:this.options,handle:this.currentHandle,value:this.options.axis!="both"||!this.options.axis?this._round(this.value(null,this.options.axis=="vertical"?"y":"x")):{x:this._round(this.value(null,"x")),y:this._round(this.value(null,"y"))},range:this._getRange()}}});A.extend(A.ui.slider,{getter:"value",version:"1.6",defaults:{animate:false,distance:1,handle:".ui-slider-handle",round:true}})})(jQuery);/* + * jQuery UI Tabs 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Tabs + * + * Depends: + * ui.core.js + */ +(function(A){A.widget("ui.tabs",{_init:function(){this._tabify(true)},destroy:function(){var B=this.options;this.element.unbind(".tabs").removeClass(B.navClass).removeData("tabs");this.$tabs.each(function(){var C=A.data(this,"href.tabs");if(C){this.href=C}var D=A(this).unbind(".tabs");A.each(["href","load","cache"],function(E,F){D.removeData(F+".tabs")})});this.$lis.add(this.$panels).each(function(){if(A.data(this,"destroy.tabs")){A(this).remove()}else{A(this).removeClass([B.selectedClass,B.deselectableClass,B.disabledClass,B.panelClass,B.hideClass].join(" "))}});if(B.cookie){this._cookie(null,B.cookie)}},_setData:function(B,C){if((/^selected/).test(B)){this.select(C)}else{this.options[B]=C;this._tabify()}},length:function(){return this.$tabs.length},_tabId:function(B){return B.title&&B.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+A.data(B)},_sanitizeSelector:function(B){return B.replace(/:/g,"\\:")},_cookie:function(){var B=this.cookie||(this.cookie="ui-tabs-"+A.data(this.element[0]));return A.cookie.apply(null,[B].concat(A.makeArray(arguments)))},_tabify:function(N){this.$lis=A("li:has(a[href])",this.element);this.$tabs=this.$lis.map(function(){return A("a",this)[0]});this.$panels=A([]);var O=this,C=this.options;this.$tabs.each(function(Q,P){if(P.hash&&P.hash.replace("#","")){O.$panels=O.$panels.add(O._sanitizeSelector(P.hash))}else{if(A(P).attr("href")!="#"){A.data(P,"href.tabs",P.href);A.data(P,"load.tabs",P.href);var S=O._tabId(P);P.href="#"+S;var R=A("#"+S);if(!R.length){R=A(C.panelTemplate).attr("id",S).addClass(C.panelClass).insertAfter(O.$panels[Q-1]||O.element);R.data("destroy.tabs",true)}O.$panels=O.$panels.add(R)}else{C.disabled.push(Q+1)}}});if(N){this.element.addClass(C.navClass);this.$panels.addClass(C.panelClass);if(C.selected===undefined){if(location.hash){this.$tabs.each(function(Q,P){if(P.hash==location.hash){C.selected=Q;return false}})}else{if(C.cookie){var I=parseInt(O._cookie(),10);if(I&&O.$tabs[I]){C.selected=I}}else{if(O.$lis.filter("."+C.selectedClass).length){C.selected=O.$lis.index(O.$lis.filter("."+C.selectedClass)[0])}}}}C.selected=C.selected===null||C.selected!==undefined?C.selected:0;C.disabled=A.unique(C.disabled.concat(A.map(this.$lis.filter("."+C.disabledClass),function(Q,P){return O.$lis.index(Q)}))).sort();if(A.inArray(C.selected,C.disabled)!=-1){C.disabled.splice(A.inArray(C.selected,C.disabled),1)}this.$panels.addClass(C.hideClass);this.$lis.removeClass(C.selectedClass);if(C.selected!==null){this.$panels.eq(C.selected).removeClass(C.hideClass);var E=[C.selectedClass];if(C.deselectable){E.push(C.deselectableClass)}this.$lis.eq(C.selected).addClass(E.join(" "));var J=function(){O._trigger("show",null,O.ui(O.$tabs[C.selected],O.$panels[C.selected]))};if(A.data(this.$tabs[C.selected],"load.tabs")){this.load(C.selected,J)}else{J()}}A(window).bind("unload",function(){O.$tabs.unbind(".tabs");O.$lis=O.$tabs=O.$panels=null})}else{C.selected=this.$lis.index(this.$lis.filter("."+C.selectedClass)[0])}if(C.cookie){this._cookie(C.selected,C.cookie)}for(var G=0,M;M=this.$lis[G];G++){A(M)[A.inArray(G,C.disabled)!=-1&&!A(M).hasClass(C.selectedClass)?"addClass":"removeClass"](C.disabledClass)}if(C.cache===false){this.$tabs.removeData("cache.tabs")}var B,H;if(C.fx){if(C.fx.constructor==Array){B=C.fx[0];H=C.fx[1]}else{B=H=C.fx}}function D(P,Q){P.css({display:""});if(A.browser.msie&&Q.opacity){P[0].style.removeAttribute("filter")}}var K=H?function(P,Q){Q.animate(H,H.duration||"normal",function(){Q.removeClass(C.hideClass);D(Q,H);O._trigger("show",null,O.ui(P,Q[0]))})}:function(P,Q){Q.removeClass(C.hideClass);O._trigger("show",null,O.ui(P,Q[0]))};var L=B?function(Q,P,R){P.animate(B,B.duration||"normal",function(){P.addClass(C.hideClass);D(P,B);if(R){K(Q,R,P)}})}:function(Q,P,R){P.addClass(C.hideClass);if(R){K(Q,R)}};function F(R,T,P,S){var Q=[C.selectedClass];if(C.deselectable){Q.push(C.deselectableClass)}T.addClass(Q.join(" ")).siblings().removeClass(Q.join(" "));L(R,P,S)}this.$tabs.unbind(".tabs").bind(C.event+".tabs",function(){var S=A(this).parents("li:eq(0)"),P=O.$panels.filter(":visible"),R=A(O._sanitizeSelector(this.hash));if((S.hasClass(C.selectedClass)&&!C.deselectable)||S.hasClass(C.disabledClass)||A(this).hasClass(C.loadingClass)||O._trigger("select",null,O.ui(this,R[0]))===false){this.blur();return false}C.selected=O.$tabs.index(this);if(C.deselectable){if(S.hasClass(C.selectedClass)){O.options.selected=null;S.removeClass([C.selectedClass,C.deselectableClass].join(" "));O.$panels.stop();L(this,P);this.blur();return false}else{if(!P.length){O.$panels.stop();var Q=this;O.load(O.$tabs.index(this),function(){S.addClass([C.selectedClass,C.deselectableClass].join(" "));K(Q,R)});this.blur();return false}}}if(C.cookie){O._cookie(C.selected,C.cookie)}O.$panels.stop();if(R.length){var Q=this;O.load(O.$tabs.index(this),P.length?function(){F(Q,S,P,R)}:function(){S.addClass(C.selectedClass);K(Q,R)})}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if(A.browser.msie){this.blur()}return false});if(C.event!="click"){this.$tabs.bind("click.tabs",function(){return false})}},add:function(E,D,C){if(C==undefined){C=this.$tabs.length}var G=this.options;var I=A(G.tabTemplate.replace(/#\{href\}/g,E).replace(/#\{label\}/g,D));I.data("destroy.tabs",true);var H=E.indexOf("#")==0?E.replace("#",""):this._tabId(A("a:first-child",I)[0]);var F=A("#"+H);if(!F.length){F=A(G.panelTemplate).attr("id",H).addClass(G.hideClass).data("destroy.tabs",true)}F.addClass(G.panelClass);if(C>=this.$lis.length){I.appendTo(this.element);F.appendTo(this.element[0].parentNode)}else{I.insertBefore(this.$lis[C]);F.insertBefore(this.$panels[C])}G.disabled=A.map(G.disabled,function(K,J){return K>=C?++K:K});this._tabify();if(this.$tabs.length==1){I.addClass(G.selectedClass);F.removeClass(G.hideClass);var B=A.data(this.$tabs[0],"load.tabs");if(B){this.load(C,B)}}this._trigger("add",null,this.ui(this.$tabs[C],this.$panels[C]))},remove:function(B){var D=this.options,E=this.$lis.eq(B).remove(),C=this.$panels.eq(B).remove();if(E.hasClass(D.selectedClass)&&this.$tabs.length>1){this.select(B+(B+1<this.$tabs.length?1:-1))}D.disabled=A.map(A.grep(D.disabled,function(G,F){return G!=B}),function(G,F){return G>=B?--G:G});this._tabify();this._trigger("remove",null,this.ui(E.find("a")[0],C[0]))},enable:function(B){var C=this.options;if(A.inArray(B,C.disabled)==-1){return }var D=this.$lis.eq(B).removeClass(C.disabledClass);if(A.browser.safari){D.css("display","inline-block");setTimeout(function(){D.css("display","block")},0)}C.disabled=A.grep(C.disabled,function(F,E){return F!=B});this._trigger("enable",null,this.ui(this.$tabs[B],this.$panels[B]))},disable:function(C){var B=this,D=this.options;if(C!=D.selected){this.$lis.eq(C).addClass(D.disabledClass);D.disabled.push(C);D.disabled.sort();this._trigger("disable",null,this.ui(this.$tabs[C],this.$panels[C]))}},select:function(B){if(typeof B=="string"){B=this.$tabs.index(this.$tabs.filter("[href$="+B+"]")[0])}this.$tabs.eq(B).trigger(this.options.event+".tabs")},load:function(G,K){var L=this,D=this.options,E=this.$tabs.eq(G),J=E[0],H=K==undefined||K===false,B=E.data("load.tabs");K=K||function(){};if(!B||!H&&A.data(J,"cache.tabs")){K();return }var M=function(N){var O=A(N),P=O.find("*:last");return P.length&&P.is(":not(img)")&&P||O};var C=function(){L.$tabs.filter("."+D.loadingClass).removeClass(D.loadingClass).each(function(){if(D.spinner){M(this).parent().html(M(this).data("label.tabs"))}});L.xhr=null};if(D.spinner){var I=M(J).html();M(J).wrapInner("<em></em>").find("em").data("label.tabs",I).html(D.spinner)}var F=A.extend({},D.ajaxOptions,{url:B,success:function(P,N){A(L._sanitizeSelector(J.hash)).html(P);C();if(D.cache){A.data(J,"cache.tabs",true)}L._trigger("load",null,L.ui(L.$tabs[G],L.$panels[G]));try{D.ajaxOptions.success(P,N)}catch(O){}K()}});if(this.xhr){this.xhr.abort();C()}E.addClass(D.loadingClass);L.xhr=A.ajax(F)},url:function(C,B){this.$tabs.eq(C).removeData("cache.tabs").data("load.tabs",B)},ui:function(C,B){return{options:this.options,tab:C,panel:B,index:this.$tabs.index(C)}}});A.extend(A.ui.tabs,{version:"1.6",getter:"length",defaults:{ajaxOptions:null,cache:false,cookie:null,deselectable:false,deselectableClass:"ui-tabs-deselectable",disabled:[],disabledClass:"ui-tabs-disabled",event:"click",fx:null,hideClass:"ui-tabs-hide",idPrefix:"ui-tabs-",loadingClass:"ui-tabs-loading",navClass:"ui-tabs-nav",panelClass:"ui-tabs-panel",panelTemplate:"<div></div>",selectedClass:"ui-tabs-selected",spinner:"Loading…",tabTemplate:'<li><a href="#{href}"><span>#{label}</span></a></li>'}});A.extend(A.ui.tabs.prototype,{rotation:null,rotate:function(C,F){F=F||false;var B=this,E=this.options.selected;function G(){B.rotation=setInterval(function(){E=++E<B.$tabs.length?E:0;B.select(E)},C)}function D(H){if(!H||H.clientX){clearInterval(B.rotation)}}if(C){G();if(!F){this.$tabs.bind(this.options.event+".tabs",D)}else{this.$tabs.bind(this.options.event+".tabs",function(){D();E=B.options.selected;G()})}}else{D();this.$tabs.unbind(this.options.event+".tabs",D)}}})})(jQuery);/* + * jQuery UI Datepicker 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Datepicker + * + * Depends: + * ui.core.js + */ +(function($){$.extend($.ui,{datepicker:{version:"1.6"}});var PROP_NAME="datepicker";function Datepicker(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._datepickerShowing=false;this._inDialog=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._promptClass="ui-datepicker-prompt";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass="ui-datepicker-days-cell-over";this._weekOverClass="ui-datepicker-week-over";this.regional=[];this.regional[""]={clearText:"Clear",clearStatus:"Erase the current date",closeText:"Close",closeStatus:"Close without change",prevText:"<Prev",prevStatus:"Show the previous month",prevBigText:"<<",prevBigStatus:"Show the previous year",nextText:"Next>",nextStatus:"Show the next month",nextBigText:">>",nextBigStatus:"Show the next year",currentText:"Today",currentStatus:"Show the current month",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],monthStatus:"Show a different month",yearStatus:"Show a different year",weekHeader:"Wk",weekStatus:"Week of the year",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],dayStatus:"Set DD as first week day",dateStatus:"Select DD, M d",dateFormat:"mm/dd/yy",firstDay:0,initStatus:"Select a date",isRTL:false};this._defaults={showOn:"focus",showAnim:"show",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,closeAtTop:true,mandatory:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,showBigPrevNext:false,gotoCurrent:false,changeMonth:true,changeYear:true,showMonthAfterYear:false,yearRange:"-10:+10",changeFirstDay:true,highlightWeek:false,showOtherMonths:false,showWeeks:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",showStatus:false,statusForDate:this.dateStatus,minDate:null,maxDate:null,duration:"normal",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,rangeSelect:false,rangeSeparator:" - ",altField:"",altFormat:"",constrainInput:true};$.extend(this._defaults,this.regional[""]);this.dpDiv=$('<div id="'+this._mainDivId+'" style="display: none;"></div>')}$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",log:function(){if(this.debug){console.log.apply("",arguments)}},setDefaults:function(settings){extendRemove(this._defaults,settings||{});return this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase();var inline=(nodeName=="div"||nodeName=="span");if(!target.id){target.id="dp"+(++this.uuid)}var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{});if(nodeName=="input"){this._connectDatepicker(target,inst)}else{if(inline){this._inlineDatepicker(target,inst)}}},_newInst:function(target,inline){var id=target[0].id.replace(/([:\[\]\.])/g,"\\\\$1");return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:(!inline?this.dpDiv:$('<div class="'+this._inlineClass+'"></div>'))}},_connectDatepicker:function(target,inst){var input=$(target);if(input.hasClass(this.markerClassName)){return }var appendText=this._get(inst,"appendText");var isRTL=this._get(inst,"isRTL");if(appendText){input[isRTL?"before":"after"]('<span class="'+this._appendClass+'">'+appendText+"</span>")}var showOn=this._get(inst,"showOn");if(showOn=="focus"||showOn=="both"){input.focus(this._showDatepicker)}if(showOn=="button"||showOn=="both"){var buttonText=this._get(inst,"buttonText");var buttonImage=this._get(inst,"buttonImage");var trigger=$(this._get(inst,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText}):$('<button type="button"></button>').addClass(this._triggerClass).html(buttonImage==""?buttonText:$("<img/>").attr({src:buttonImage,alt:buttonText,title:buttonText})));input[isRTL?"before":"after"](trigger);trigger.click(function(){if($.datepicker._datepickerShowing&&$.datepicker._lastInput==target){$.datepicker._hideDatepicker()}else{$.datepicker._showDatepicker(target)}return false})}input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst)},_inlineDatepicker:function(target,inst){var divSpan=$(target);if(divSpan.hasClass(this.markerClassName)){return }divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst);this._setDate(inst,this._getDefaultDate(inst));this._updateDatepicker(inst);this._updateAlternate(inst)},_dialogDatepicker:function(input,dateText,onSelect,settings,pos){var inst=this._dialogInst;if(!inst){var id="dp"+(++this.uuid);this._dialogInput=$('<input type="text" id="'+id+'" size="1" style="position: absolute; top: -100px;"/>');this._dialogInput.keydown(this._doKeyDown);$("body").append(this._dialogInput);inst=this._dialogInst=this._newInst(this._dialogInput,false);inst.settings={};$.data(this._dialogInput[0],PROP_NAME,inst)}extendRemove(inst.settings,settings||{});this._dialogInput.val(dateText);this._pos=(pos?(pos.length?pos:[pos.pageX,pos.pageY]):null);if(!this._pos){var browserWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var browserHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[(browserWidth/2)-100+scrollX,(browserHeight/2)-150+scrollY]}this._dialogInput.css("left",this._pos[0]+"px").css("top",this._pos[1]+"px");inst.settings.onSelect=onSelect;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);if($.blockUI){$.blockUI(this.dpDiv)}$.data(this._dialogInput[0],PROP_NAME,inst);return this},_destroyDatepicker:function(target){var $target=$(target);if(!$target.hasClass(this.markerClassName)){return }var nodeName=target.nodeName.toLowerCase();$.removeData(target,PROP_NAME);if(nodeName=="input"){$target.siblings("."+this._appendClass).remove().end().siblings("."+this._triggerClass).remove().end().removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress)}else{if(nodeName=="div"||nodeName=="span"){$target.removeClass(this.markerClassName).empty()}}},_enableDatepicker:function(target){var $target=$(target);if(!$target.hasClass(this.markerClassName)){return }var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=false;$target.siblings("button."+this._triggerClass).each(function(){this.disabled=false}).end().siblings("img."+this._triggerClass).css({opacity:"1.0",cursor:""})}else{if(nodeName=="div"||nodeName=="span"){$target.children("."+this._disableClass).remove()}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)})},_disableDatepicker:function(target){var $target=$(target);if(!$target.hasClass(this.markerClassName)){return }var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=true;$target.siblings("button."+this._triggerClass).each(function(){this.disabled=true}).end().siblings("img."+this._triggerClass).css({opacity:"0.5",cursor:"default"})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);var offset=inline.offset();var relOffset={left:0,top:0};inline.parents().each(function(){if($(this).css("position")=="relative"){relOffset=$(this).offset();return false}});$target.prepend('<div class="'+this._disableClass+'" style="'+($.browser.msie?"background-color: transparent; ":"")+"width: "+inline.width()+"px; height: "+inline.height()+"px; left: "+(offset.left-relOffset.left)+"px; top: "+(offset.top-relOffset.top)+'px;"></div>')}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)});this._disabledInputs[this._disabledInputs.length]=target},_isDisabledDatepicker:function(target){if(!target){return false}for(var i=0;i<this._disabledInputs.length;i++){if(this._disabledInputs[i]==target){return true}}return false},_getInst:function(target){try{return $.data(target,PROP_NAME)}catch(err){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(target,name,value){var settings=name||{};if(typeof name=="string"){settings={};settings[name]=value}var inst=this._getInst(target);if(inst){if(this._curInst==inst){this._hideDatepicker(null)}extendRemove(inst.settings,settings);var date=new Date();extendRemove(inst,{rangeStart:null,endDay:null,endMonth:null,endYear:null,selectedDay:date.getDate(),selectedMonth:date.getMonth(),selectedYear:date.getFullYear(),currentDay:date.getDate(),currentMonth:date.getMonth(),currentYear:date.getFullYear(),drawMonth:date.getMonth(),drawYear:date.getFullYear()});this._updateDatepicker(inst)}},_changeDatepicker:function(target,name,value){this._optionDatepicker(target,name,value)},_refreshDatepicker:function(target){var inst=this._getInst(target);if(inst){this._updateDatepicker(inst)}},_setDateDatepicker:function(target,date,endDate){var inst=this._getInst(target);if(inst){this._setDate(inst,date,endDate);this._updateDatepicker(inst);this._updateAlternate(inst)}},_getDateDatepicker:function(target){var inst=this._getInst(target);if(inst&&!inst.inline){this._setDateFromField(inst)}return(inst?this._getDate(inst):null)},_doKeyDown:function(event){var inst=$.datepicker._getInst(event.target);var handled=true;inst._keyEvent=true;if($.datepicker._datepickerShowing){switch(event.keyCode){case 9:$.datepicker._hideDatepicker(null,"");break;case 13:var sel=$("td."+$.datepicker._dayOverClass+", td."+$.datepicker._currentClass,inst.dpDiv);if(sel[0]){$.datepicker._selectDay(event.target,inst.selectedMonth,inst.selectedYear,sel[0])}else{$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"))}return false;break;case 27:$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"));break;case 33:$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M");break;case 34:$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M");break;case 35:if(event.ctrlKey||event.metaKey){$.datepicker._clearDate(event.target)}handled=event.ctrlKey||event.metaKey;break;case 36:if(event.ctrlKey||event.metaKey){$.datepicker._gotoToday(event.target)}handled=event.ctrlKey||event.metaKey;break;case 37:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,-1,"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M")}break;case 38:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,-7,"D")}handled=event.ctrlKey||event.metaKey;break;case 39:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,+1,"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M")}break;case 40:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,+7,"D")}handled=event.ctrlKey||event.metaKey;break;default:handled=false}}else{if(event.keyCode==36&&event.ctrlKey){$.datepicker._showDatepicker(this)}else{handled=false}}if(handled){event.preventDefault();event.stopPropagation()}},_doKeyPress:function(event){var inst=$.datepicker._getInst(event.target);if($.datepicker._get(inst,"constrainInput")){var chars=$.datepicker._possibleChars($.datepicker._get(inst,"dateFormat"));var chr=String.fromCharCode(event.charCode==undefined?event.keyCode:event.charCode);return event.ctrlKey||(chr<" "||!chars||chars.indexOf(chr)>-1)}},_showDatepicker:function(input){input=input.target||input;if(input.nodeName.toLowerCase()!="input"){input=$("input",input.parentNode)[0]}if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput==input){return }var inst=$.datepicker._getInst(input);var beforeShow=$.datepicker._get(inst,"beforeShow");extendRemove(inst.settings,(beforeShow?beforeShow.apply(input,[input,inst]):{}));$.datepicker._hideDatepicker(null,"");$.datepicker._lastInput=input;$.datepicker._setDateFromField(inst);if($.datepicker._inDialog){input.value=""}if(!$.datepicker._pos){$.datepicker._pos=$.datepicker._findPos(input);$.datepicker._pos[1]+=input.offsetHeight}var isFixed=false;$(input).parents().each(function(){isFixed|=$(this).css("position")=="fixed";return !isFixed});if(isFixed&&$.browser.opera){$.datepicker._pos[0]-=document.documentElement.scrollLeft;$.datepicker._pos[1]-=document.documentElement.scrollTop}var offset={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null;inst.rangeStart=null;inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});$.datepicker._updateDatepicker(inst);inst.dpDiv.width($.datepicker._getNumberOfMonths(inst)[1]*$(".ui-datepicker",inst.dpDiv[0])[0].offsetWidth);offset=$.datepicker._checkOffset(inst,offset,isFixed);inst.dpDiv.css({position:($.datepicker._inDialog&&$.blockUI?"static":(isFixed?"fixed":"absolute")),display:"none",left:offset.left+"px",top:offset.top+"px"});if(!inst.inline){var showAnim=$.datepicker._get(inst,"showAnim")||"show";var duration=$.datepicker._get(inst,"duration");var postProcess=function(){$.datepicker._datepickerShowing=true;};if($.effects&&$.effects[showAnim]){inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[showAnim](duration,postProcess)}if(duration==""){postProcess()}if(inst.input[0].type!="hidden"){inst.input[0].focus()}$.datepicker._curInst=inst}},_updateDatepicker:function(inst){var dims={width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4};inst.dpDiv.empty().append(this._generateHTML(inst));var numMonths=this._getNumberOfMonths(inst);inst.dpDiv[(numMonths[0]!=1||numMonths[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");if(inst.input&&inst.input[0].type!="hidden"&&inst==$.datepicker._curInst){$(inst.input[0]).focus()}},_checkOffset:function(inst,offset,isFixed){var pos=inst.input?this._findPos(inst.input[0]):null;var browserWidth=window.innerWidth||(document.documentElement?document.documentElement.clientWidth:document.body.clientWidth);var browserHeight=window.innerHeight||(document.documentElement?document.documentElement.clientHeight:document.body.clientHeight);var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;if(this._get(inst,"isRTL")||(offset.left+inst.dpDiv.width()-scrollX)>browserWidth){offset.left=Math.max((isFixed?0:scrollX),pos[0]+(inst.input?inst.input.width():0)-(isFixed?scrollX:0)-inst.dpDiv.width()-(isFixed&&$.browser.opera?document.documentElement.scrollLeft:0))}else{offset.left-=(isFixed?scrollX:0)}if((offset.top+inst.dpDiv.height()-scrollY)>browserHeight){offset.top=Math.max((isFixed?0:scrollY),pos[1]-(isFixed?scrollY:0)-(this._inDialog?0:inst.dpDiv.height())-(isFixed&&$.browser.opera?document.documentElement.scrollTop:0))}else{offset.top-=(isFixed?scrollY:0)}return offset},_findPos:function(obj){while(obj&&(obj.type=="hidden"||obj.nodeType!=1)){obj=obj.nextSibling}var position=$(obj).offset();return[position.left,position.top]},_hideDatepicker:function(input,duration){var inst=this._curInst;if(!inst||(input&&inst!=$.data(input,PROP_NAME))){return }var rangeSelect=this._get(inst,"rangeSelect");if(rangeSelect&&inst.stayOpen){this._selectDate("#"+inst.id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))}inst.stayOpen=false;if(this._datepickerShowing){duration=(duration!=null?duration:this._get(inst,"duration"));var showAnim=this._get(inst,"showAnim");var postProcess=function(){$.datepicker._tidyDialog(inst)};if(duration!=""&&$.effects&&$.effects[showAnim]){inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[(duration==""?"hide":(showAnim=="slideDown"?"slideUp":(showAnim=="fadeIn"?"fadeOut":"hide")))](duration,postProcess)}if(duration==""){this._tidyDialog(inst)}var onClose=this._get(inst,"onClose");if(onClose){onClose.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():""),inst])}this._datepickerShowing=false;this._lastInput=null;inst.settings.prompt=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if($.blockUI){$.unblockUI();$("body").append(this.dpDiv)}}this._inDialog=false}this._curInst=null},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker");$("."+this._promptClass,inst.dpDiv).remove()},_checkExternalClick:function(event){if(!$.datepicker._curInst){return }var $target=$(event.target);if(($target.parents("#"+$.datepicker._mainDivId).length==0)&&!$target.hasClass($.datepicker.markerClassName)&&!$target.hasClass($.datepicker._triggerClass)&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)){$.datepicker._hideDatepicker(null,"")}},_adjustDate:function(id,offset,period){var target=$(id);var inst=this._getInst(target[0]);this._adjustInstDate(inst,offset,period);this._updateDatepicker(inst)},_gotoToday:function(id){var target=$(id);var inst=this._getInst(target[0]);if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;inst.drawMonth=inst.selectedMonth=inst.currentMonth;inst.drawYear=inst.selectedYear=inst.currentYear}else{var date=new Date();inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear()}this._notifyChange(inst);this._adjustDate(target)},_selectMonthYear:function(id,select,period){var target=$(id);var inst=this._getInst(target[0]);inst._selectingMonthYear=false;inst["selected"+(period=="M"?"Month":"Year")]=inst["draw"+(period=="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);this._notifyChange(inst);this._adjustDate(target)},_clickMonthYear:function(id){var target=$(id);var inst=this._getInst(target[0]);if(inst.input&&inst._selectingMonthYear&&!$.browser.msie){inst.input[0].focus()}inst._selectingMonthYear=!inst._selectingMonthYear},_changeFirstDay:function(id,day){var target=$(id);var inst=this._getInst(target[0]);inst.settings.firstDay=day;this._updateDatepicker(inst)},_selectDay:function(id,month,year,td){if($(td).hasClass(this._unselectableClass)){return }var target=$(id);var inst=this._getInst(target[0]);var rangeSelect=this._get(inst,"rangeSelect");if(rangeSelect){inst.stayOpen=!inst.stayOpen;if(inst.stayOpen){$(".ui-datepicker td",inst.dpDiv).removeClass(this._currentClass);$(td).addClass(this._currentClass)}}inst.selectedDay=inst.currentDay=$("a",td).html();inst.selectedMonth=inst.currentMonth=month;inst.selectedYear=inst.currentYear=year;if(inst.stayOpen){inst.endDay=inst.endMonth=inst.endYear=null}else{if(rangeSelect){inst.endDay=inst.currentDay;inst.endMonth=inst.currentMonth;inst.endYear=inst.currentYear}}this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear));if(inst.stayOpen){inst.rangeStart=this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));this._updateDatepicker(inst)}else{if(rangeSelect){inst.selectedDay=inst.currentDay=inst.rangeStart.getDate();inst.selectedMonth=inst.currentMonth=inst.rangeStart.getMonth();inst.selectedYear=inst.currentYear=inst.rangeStart.getFullYear();inst.rangeStart=null;if(inst.inline){this._updateDatepicker(inst)}}}},_clearDate:function(id){var target=$(id);var inst=this._getInst(target[0]);if(this._get(inst,"mandatory")){return }inst.stayOpen=false;inst.endDay=inst.endMonth=inst.endYear=inst.rangeStart=null;this._selectDate(target,"")},_selectDate:function(id,dateStr){var target=$(id);var inst=this._getInst(target[0]);dateStr=(dateStr!=null?dateStr:this._formatDate(inst));if(this._get(inst,"rangeSelect")&&dateStr){dateStr=(inst.rangeStart?this._formatDate(inst,inst.rangeStart):dateStr)+this._get(inst,"rangeSeparator")+dateStr}if(inst.input){inst.input.val(dateStr)}this._updateAlternate(inst);var onSelect=this._get(inst,"onSelect");if(onSelect){onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst])}else{if(inst.input){inst.input.trigger("change")}}if(inst.inline){this._updateDatepicker(inst)}else{if(!inst.stayOpen){this._hideDatepicker(null,this._get(inst,"duration"));this._lastInput=inst.input[0];if(typeof (inst.input[0])!="object"){inst.input[0].focus()}this._lastInput=null}}},_updateAlternate:function(inst){var altField=this._get(inst,"altField");if(altField){var altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");var date=this._getDate(inst);dateStr=(isArray(date)?(!date[0]&&!date[1]?"":this.formatDate(altFormat,date[0],this._getFormatConfig(inst))+this._get(inst,"rangeSeparator")+this.formatDate(altFormat,date[1]||date[0],this._getFormatConfig(inst))):this.formatDate(altFormat,date,this._getFormatConfig(inst)));$(altField).each(function(){$(this).val(dateStr)})}},noWeekends:function(date){var day=date.getDay();return[(day>0&&day<6),""]},iso8601Week:function(date){var checkDate=new Date(date.getFullYear(),date.getMonth(),date.getDate());var firstMon=new Date(checkDate.getFullYear(),1-1,4);var firstDay=firstMon.getDay()||7;firstMon.setDate(firstMon.getDate()+1-firstDay);if(firstDay<4&&checkDate<firstMon){checkDate.setDate(checkDate.getDate()-3);return $.datepicker.iso8601Week(checkDate)}else{if(checkDate>new Date(checkDate.getFullYear(),12-1,28)){firstDay=new Date(checkDate.getFullYear()+1,1-1,4).getDay()||7;if(firstDay>4&&(checkDate.getDay()||7)<firstDay-3){return 1}}}return Math.floor(((checkDate-firstMon)/86400000)/7)+1},dateStatus:function(date,inst){return $.datepicker.formatDate($.datepicker._get(inst,"dateStatus"),date,$.datepicker._getFormatConfig(inst))},parseDate:function(format,value,settings){if(format==null||value==null){throw"Invalid arguments"}value=(typeof value=="object"?value.toString():value+"");if(value==""){return null}var shortYearCutoff=(settings?settings.shortYearCutoff:null)||this._defaults.shortYearCutoff;var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var year=-1;var month=-1;var day=-1;var doy=-1;var literal=false;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var getNumber=function(match){lookAhead(match);var origSize=(match=="@"?14:(match=="y"?4:(match=="o"?3:2)));var size=origSize;var num=0;while(size>0&&iValue<value.length&&value.charAt(iValue)>="0"&&value.charAt(iValue)<="9"){num=num*10+parseInt(value.charAt(iValue++),10);size--}if(size==origSize){throw"Missing number at position "+iValue}return num};var getName=function(match,shortNames,longNames){var names=(lookAhead(match)?longNames:shortNames);var size=0;for(var j=0;j<names.length;j++){size=Math.max(size,names[j].length)}var name="";var iInit=iValue;while(size>0&&iValue<value.length){name+=value.charAt(iValue++);for(var i=0;i<names.length;i++){if(name==names[i]){return i+1}}size--}throw"Unknown name at position "+iInit};var checkLiteral=function(){if(value.charAt(iValue)!=format.charAt(iFormat)){throw"Unexpected literal at position "+iValue}iValue++};var iValue=0;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{checkLiteral()}}else{switch(format.charAt(iFormat)){case"d":day=getNumber("d");break;case"D":getName("D",dayNamesShort,dayNames);break;case"o":doy=getNumber("o");break;case"m":month=getNumber("m");break;case"M":month=getName("M",monthNamesShort,monthNames);break;case"y":year=getNumber("y");break;case"@":var date=new Date(getNumber("@"));year=date.getFullYear();month=date.getMonth()+1;day=date.getDate();break;case"'":if(lookAhead("'")){checkLiteral()}else{literal=true}break;default:checkLiteral()}}}if(year==-1){year=new Date().getFullYear()}else{if(year<100){year+=new Date().getFullYear()-new Date().getFullYear()%100+(year<=shortYearCutoff?0:-100)}}if(doy>-1){month=1;day=doy;do{var dim=this._getDaysInMonth(year,month-1);if(day<=dim){break}month++;day-=dim}while(true)}var date=this._daylightSavingAdjust(new Date(year,month-1,day));if(date.getFullYear()!=year||date.getMonth()+1!=month||date.getDate()!=day){throw"Invalid date"}return date},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TIMESTAMP:"@",W3C:"yy-mm-dd",formatDate:function(format,date,settings){if(!date){return""}var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var formatNumber=function(match,value,len){var num=""+value;if(lookAhead(match)){while(num.length<len){num="0"+num}}return num};var formatName=function(match,value,shortNames,longNames){return(lookAhead(match)?longNames[value]:shortNames[value])};var output="";var literal=false;if(date){for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{output+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":output+=formatNumber("d",date.getDate(),2);break;case"D":output+=formatName("D",date.getDay(),dayNamesShort,dayNames);break;case"o":var doy=date.getDate();for(var m=date.getMonth()-1;m>=0;m--){doy+=this._getDaysInMonth(date.getFullYear(),m)}output+=formatNumber("o",doy,3);break;case"m":output+=formatNumber("m",date.getMonth()+1,2);break;case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);break;case"y":output+=(lookAhead("y")?date.getFullYear():(date.getYear()%100<10?"0":"")+date.getYear()%100);break;case"@":output+=date.getTime();break;case"'":if(lookAhead("'")){output+="'"}else{literal=true}break;default:output+=format.charAt(iFormat)}}}}return output},_possibleChars:function(format){var chars="";var literal=false;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{chars+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":case"m":case"y":case"@":chars+="0123456789";break;case"D":case"M":return null;case"'":if(lookAhead("'")){chars+="'"}else{literal=true}break;default:chars+=format.charAt(iFormat)}}}return chars},_get:function(inst,name){return inst.settings[name]!==undefined?inst.settings[name]:this._defaults[name]},_setDateFromField:function(inst){var dateFormat=this._get(inst,"dateFormat");var dates=inst.input?inst.input.val().split(this._get(inst,"rangeSeparator")):null;inst.endDay=inst.endMonth=inst.endYear=null;var date=defaultDate=this._getDefaultDate(inst);if(dates.length>0){var settings=this._getFormatConfig(inst);if(dates.length>1){date=this.parseDate(dateFormat,dates[1],settings)||defaultDate;inst.endDay=date.getDate();inst.endMonth=date.getMonth();inst.endYear=date.getFullYear()}try{date=this.parseDate(dateFormat,dates[0],settings)||defaultDate}catch(event){this.log(event);date=defaultDate}}inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();inst.currentDay=(dates[0]?date.getDate():0);inst.currentMonth=(dates[0]?date.getMonth():0);inst.currentYear=(dates[0]?date.getFullYear():0);this._adjustInstDate(inst)},_getDefaultDate:function(inst){var date=this._determineDate(this._get(inst,"defaultDate"),new Date());var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);return date},_determineDate:function(date,defaultDate){var offsetNumeric=function(offset){var date=new Date();date.setDate(date.getDate()+offset);return date};var offsetString=function(offset,getDaysInMonth){var date=new Date();var year=date.getFullYear();var month=date.getMonth();var day=date.getDate();var pattern=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;var matches=pattern.exec(offset);while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);break;case"w":case"W":day+=parseInt(matches[1],10)*7;break;case"m":case"M":month+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break;case"y":case"Y":year+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break}matches=pattern.exec(offset)}return new Date(year,month,day)};date=(date==null?defaultDate:(typeof date=="string"?offsetString(date,this._getDaysInMonth):(typeof date=="number"?(isNaN(date)?defaultDate:offsetNumeric(date)):date)));date=(date&&date.toString()=="Invalid Date"?defaultDate:date);if(date){date.setHours(0);date.setMinutes(0);date.setSeconds(0);date.setMilliseconds(0)}return this._daylightSavingAdjust(date)},_daylightSavingAdjust:function(date){if(!date){return null}date.setHours(date.getHours()>12?date.getHours()+2:0);return date},_setDate:function(inst,date,endDate){var clear=!(date);var origMonth=inst.selectedMonth;var origYear=inst.selectedYear;date=this._determineDate(date,new Date());inst.selectedDay=inst.currentDay=date.getDate();inst.drawMonth=inst.selectedMonth=inst.currentMonth=date.getMonth();inst.drawYear=inst.selectedYear=inst.currentYear=date.getFullYear();if(this._get(inst,"rangeSelect")){if(endDate){endDate=this._determineDate(endDate,null);inst.endDay=endDate.getDate();inst.endMonth=endDate.getMonth();inst.endYear=endDate.getFullYear()}else{inst.endDay=inst.currentDay;inst.endMonth=inst.currentMonth;inst.endYear=inst.currentYear}}if(origMonth!=inst.selectedMonth||origYear!=inst.selectedYear){this._notifyChange(inst)}this._adjustInstDate(inst);if(inst.input){inst.input.val(clear?"":this._formatDate(inst)+(!this._get(inst,"rangeSelect")?"":this._get(inst,"rangeSeparator")+this._formatDate(inst,inst.endDay,inst.endMonth,inst.endYear)))}},_getDate:function(inst){var startDate=(!inst.currentYear||(inst.input&&inst.input.val()=="")?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));if(this._get(inst,"rangeSelect")){return[inst.rangeStart||startDate,(!inst.endYear?inst.rangeStart||startDate:this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)))]}else{return startDate}},_generateHTML:function(inst){var today=new Date();today=this._daylightSavingAdjust(new Date(today.getFullYear(),today.getMonth(),today.getDate()));var showStatus=this._get(inst,"showStatus");var initStatus=this._get(inst,"initStatus")||" ";var isRTL=this._get(inst,"isRTL");var clear=(this._get(inst,"mandatory")?"":'<div class="ui-datepicker-clear"><a onclick="jQuery.datepicker._clearDate(\'#'+inst.id+"');\""+this._addStatus(showStatus,inst.id,this._get(inst,"clearStatus"),initStatus)+">"+this._get(inst,"clearText")+"</a></div>");var controls='<div class="ui-datepicker-control">'+(isRTL?"":clear)+'<div class="ui-datepicker-close"><a onclick="jQuery.datepicker._hideDatepicker();"'+this._addStatus(showStatus,inst.id,this._get(inst,"closeStatus"),initStatus)+">"+this._get(inst,"closeText")+"</a></div>"+(isRTL?clear:"")+"</div>";var prompt=this._get(inst,"prompt");var closeAtTop=this._get(inst,"closeAtTop");var hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext");var navigationAsDateFormat=this._get(inst,"navigationAsDateFormat");var showBigPrevNext=this._get(inst,"showBigPrevNext");var numMonths=this._getNumberOfMonths(inst);var showCurrentAtPos=this._get(inst,"showCurrentAtPos");var stepMonths=this._get(inst,"stepMonths");var stepBigMonths=this._get(inst,"stepBigMonths");var isMultiMonth=(numMonths[0]!=1||numMonths[1]!=1);var currentDate=this._daylightSavingAdjust((!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");var drawMonth=inst.drawMonth-showCurrentAtPos;var drawYear=inst.drawYear;if(drawMonth<0){drawMonth+=12;drawYear--}if(maxDate){var maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-numMonths[1]+1,maxDate.getDate()));maxDraw=(minDate&&maxDraw<minDate?minDate:maxDraw);while(this._daylightSavingAdjust(new Date(drawYear,drawMonth,1))>maxDraw){drawMonth--;if(drawMonth<0){drawMonth=11;drawYear--}}}var prevText=this._get(inst,"prevText");prevText=(!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst)));var prevBigText=(showBigPrevNext?this._get(inst,"prevBigText"):"");prevBigText=(!navigationAsDateFormat?prevBigText:this.formatDate(prevBigText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepBigMonths,1)),this._getFormatConfig(inst)));var prev='<div class="ui-datepicker-prev">'+(this._canAdjustMonth(inst,-1,drawYear,drawMonth)?(showBigPrevNext?"<a onclick=\"jQuery.datepicker._adjustDate('#"+inst.id+"', -"+stepBigMonths+", 'M');\""+this._addStatus(showStatus,inst.id,this._get(inst,"prevBigStatus"),initStatus)+">"+prevBigText+"</a>":"")+"<a onclick=\"jQuery.datepicker._adjustDate('#"+inst.id+"', -"+stepMonths+", 'M');\""+this._addStatus(showStatus,inst.id,this._get(inst,"prevStatus"),initStatus)+">"+prevText+"</a>":(hideIfNoPrevNext?"":(showBigPrevNext?"<label>"+prevBigText+"</label>":"")+"<label>"+prevText+"</label>"))+"</div>";var nextText=this._get(inst,"nextText");nextText=(!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst)));var nextBigText=(showBigPrevNext?this._get(inst,"nextBigText"):"");nextBigText=(!navigationAsDateFormat?nextBigText:this.formatDate(nextBigText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepBigMonths,1)),this._getFormatConfig(inst)));var next='<div class="ui-datepicker-next">'+(this._canAdjustMonth(inst,+1,drawYear,drawMonth)?"<a onclick=\"jQuery.datepicker._adjustDate('#"+inst.id+"', +"+stepMonths+", 'M');\""+this._addStatus(showStatus,inst.id,this._get(inst,"nextStatus"),initStatus)+">"+nextText+"</a>"+(showBigPrevNext?"<a onclick=\"jQuery.datepicker._adjustDate('#"+inst.id+"', +"+stepBigMonths+", 'M');\""+this._addStatus(showStatus,inst.id,this._get(inst,"nextBigStatus"),initStatus)+">"+nextBigText+"</a>":""):(hideIfNoPrevNext?"":"<label>"+nextText+"</label>"+(showBigPrevNext?"<label>"+nextBigText+"</label>":"")))+"</div>";var currentText=this._get(inst,"currentText");var gotoDate=(this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today);currentText=(!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst)));var html=(closeAtTop&&!inst.inline?controls:"")+'<div class="ui-datepicker-links">'+(isRTL?next:prev)+(this._isInRange(inst,gotoDate)?'<div class="ui-datepicker-current"><a onclick="jQuery.datepicker._gotoToday(\'#'+inst.id+"');\""+this._addStatus(showStatus,inst.id,this._get(inst,"currentStatus"),initStatus)+">"+currentText+"</a></div>":"")+(isRTL?prev:next)+"</div>"+(prompt?'<div class="'+this._promptClass+'"><span>'+prompt+"</span></div>":"");var firstDay=parseInt(this._get(inst,"firstDay"));firstDay=(isNaN(firstDay)?0:firstDay);var changeFirstDay=this._get(inst,"changeFirstDay");var dayNames=this._get(inst,"dayNames");var dayNamesShort=this._get(inst,"dayNamesShort");var dayNamesMin=this._get(inst,"dayNamesMin");var monthNames=this._get(inst,"monthNames");var beforeShowDay=this._get(inst,"beforeShowDay");var highlightWeek=this._get(inst,"highlightWeek");var showOtherMonths=this._get(inst,"showOtherMonths");var showWeeks=this._get(inst,"showWeeks");var calculateWeek=this._get(inst,"calculateWeek")||this.iso8601Week;var weekStatus=this._get(inst,"weekStatus");var status=(showStatus?this._get(inst,"dayStatus")||initStatus:"");var dateStatus=this._get(inst,"statusForDate")||this.dateStatus;var endDate=inst.endDay?this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)):currentDate;var defaultDate=this._getDefaultDate(inst);for(var row=0;row<numMonths[0];row++){for(var col=0;col<numMonths[1];col++){var selectedDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,inst.selectedDay));html+='<div class="ui-datepicker-one-month'+(col==0?" ui-datepicker-new-row":"")+'">'+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,row>0||col>0,showStatus,initStatus,monthNames)+'<table class="ui-datepicker" cellpadding="0" cellspacing="0"><thead><tr class="ui-datepicker-title-row">'+(showWeeks?"<td"+this._addStatus(showStatus,inst.id,weekStatus,initStatus)+">"+this._get(inst,"weekHeader")+"</td>":"");for(var dow=0;dow<7;dow++){var day=(dow+firstDay)%7;var dayStatus=(status.indexOf("DD")>-1?status.replace(/DD/,dayNames[day]):status.replace(/D/,dayNamesShort[day]));html+="<td"+((dow+firstDay+6)%7>=5?' class="ui-datepicker-week-end-cell"':"")+">"+(!changeFirstDay?"<span":"<a onclick=\"jQuery.datepicker._changeFirstDay('#"+inst.id+"', "+day+');"')+this._addStatus(showStatus,inst.id,dayStatus,initStatus)+' title="'+dayNames[day]+'">'+dayNamesMin[day]+(changeFirstDay?"</a>":"</span>")+"</td>"}html+="</tr></thead><tbody>";var daysInMonth=this._getDaysInMonth(drawYear,drawMonth);if(drawYear==inst.selectedYear&&drawMonth==inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)}var leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;var numRows=(isMultiMonth?6:Math.ceil((leadDays+daysInMonth)/7));var printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));for(var dRow=0;dRow<numRows;dRow++){html+='<tr class="ui-datepicker-days-row">'+(showWeeks?'<td class="ui-datepicker-week-col"'+this._addStatus(showStatus,inst.id,weekStatus,initStatus)+">"+calculateWeek(printDate)+"</td>":"");for(var dow=0;dow<7;dow++){var daySettings=(beforeShowDay?beforeShowDay.apply((inst.input?inst.input[0]:null),[printDate]):[true,""]);var otherMonth=(printDate.getMonth()!=drawMonth);var unselectable=otherMonth||!daySettings[0]||(minDate&&printDate<minDate)||(maxDate&&printDate>maxDate);html+='<td class="ui-datepicker-days-cell'+((dow+firstDay+6)%7>=5?" ui-datepicker-week-end-cell":"")+(otherMonth?" ui-datepicker-other-month":"")+((printDate.getTime()==selectedDate.getTime()&&drawMonth==inst.selectedMonth&&inst._keyEvent)||(defaultDate.getTime()==printDate.getTime()&&defaultDate.getTime()==selectedDate.getTime())?" "+$.datepicker._dayOverClass:"")+(unselectable?" "+this._unselectableClass:"")+(otherMonth&&!showOtherMonths?"":" "+daySettings[1]+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()==today.getTime()?" ui-datepicker-today":""))+'"'+((!otherMonth||showOtherMonths)&&daySettings[2]?' title="'+daySettings[2]+'"':"")+(unselectable?(highlightWeek?" onmouseover=\"jQuery(this).parent().addClass('"+this._weekOverClass+"');\" onmouseout=\"jQuery(this).parent().removeClass('"+this._weekOverClass+"');\"":""):" onmouseover=\"jQuery(this).addClass('"+this._dayOverClass+"')"+(highlightWeek?".parent().addClass('"+this._weekOverClass+"')":"")+";"+(!showStatus||(otherMonth&&!showOtherMonths)?"":"jQuery('#ui-datepicker-status-"+inst.id+"').html('"+(dateStatus.apply((inst.input?inst.input[0]:null),[printDate,inst])||initStatus)+"');")+'" onmouseout="jQuery(this).removeClass(\''+this._dayOverClass+"')"+(highlightWeek?".parent().removeClass('"+this._weekOverClass+"')":"")+";"+(!showStatus||(otherMonth&&!showOtherMonths)?"":"jQuery('#ui-datepicker-status-"+inst.id+"').html('"+initStatus+"');")+'" onclick="jQuery.datepicker._selectDay(\'#'+inst.id+"',"+drawMonth+","+drawYear+', this);"')+">"+(otherMonth?(showOtherMonths?printDate.getDate():" "):(unselectable?printDate.getDate():"<a>"+printDate.getDate()+"</a>"))+"</td>";printDate.setDate(printDate.getDate()+1);printDate=this._daylightSavingAdjust(printDate)}html+="</tr>"}drawMonth++;if(drawMonth>11){drawMonth=0;drawYear++}html+="</tbody></table></div>"}}html+=(showStatus?'<div style="clear: both;"></div><div id="ui-datepicker-status-'+inst.id+'" class="ui-datepicker-status">'+initStatus+"</div>":"")+(!closeAtTop&&!inst.inline?controls:"")+'<div style="clear: both;"></div>'+($.browser.msie&&parseInt($.browser.version,10)<7&&!inst.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover"></iframe>':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,secondary,showStatus,initStatus,monthNames){minDate=(inst.rangeStart&&minDate&&selectedDate<minDate?selectedDate:minDate);var changeMonth=this._get(inst,"changeMonth");var changeYear=this._get(inst,"changeYear");var showMonthAfterYear=this._get(inst,"showMonthAfterYear");var html='<div class="ui-datepicker-header">';var monthHtml="";if(secondary||!changeMonth){monthHtml+=monthNames[drawMonth]}else{var inMinYear=(minDate&&minDate.getFullYear()==drawYear);var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);monthHtml+='<select class="ui-datepicker-new-month" onchange="jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'M');\" onclick=\"jQuery.datepicker._clickMonthYear('#"+inst.id+"');\""+this._addStatus(showStatus,inst.id,this._get(inst,"monthStatus"),initStatus)+">";for(var month=0;month<12;month++){if((!inMinYear||month>=minDate.getMonth())&&(!inMaxYear||month<=maxDate.getMonth())){monthHtml+='<option value="'+month+'"'+(month==drawMonth?' selected="selected"':"")+">"+monthNames[month]+"</option>"}}monthHtml+="</select>"}if(!showMonthAfterYear){html+=monthHtml+(secondary||changeMonth||changeYear?" ":"")}if(secondary||!changeYear){html+=drawYear}else{var years=this._get(inst,"yearRange").split(":");var year=0;var endYear=0;if(years.length!=2){year=drawYear-10;endYear=drawYear+10}else{if(years[0].charAt(0)=="+"||years[0].charAt(0)=="-"){year=endYear=new Date().getFullYear();year+=parseInt(years[0],10);endYear+=parseInt(years[1],10)}else{year=parseInt(years[0],10);endYear=parseInt(years[1],10)}}year=(minDate?Math.max(year,minDate.getFullYear()):year);endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);html+='<select class="ui-datepicker-new-year" onchange="jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'Y');\" onclick=\"jQuery.datepicker._clickMonthYear('#"+inst.id+"');\""+this._addStatus(showStatus,inst.id,this._get(inst,"yearStatus"),initStatus)+">";for(;year<=endYear;year++){html+='<option value="'+year+'"'+(year==drawYear?' selected="selected"':"")+">"+year+"</option>"}html+="</select>"}if(showMonthAfterYear){html+=(secondary||changeMonth||changeYear?" ":"")+monthHtml}html+="</div>";return html},_addStatus:function(showStatus,id,text,initStatus){return(showStatus?" onmouseover=\"jQuery('#ui-datepicker-status-"+id+"').html('"+(text||initStatus)+"');\" onmouseout=\"jQuery('#ui-datepicker-status-"+id+"').html('"+initStatus+"');\"":"")},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._daylightSavingAdjust(new Date(year,month,day));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y"){this._notifyChange(inst)}},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))},_getMinMaxDate:function(inst,minMax,checkRange){var date=this._determineDate(this._get(inst,minMax+"Date"),null);return(!checkRange||!inst.rangeStart?date:(!date||inst.rangeStart>date?inst.rangeStart:date))},_getDaysInMonth:function(year,month){return 32-new Date(year,month,32).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var newMinDate=(!inst.rangeStart?null:this._daylightSavingAdjust(new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay)));newMinDate=(newMinDate&&inst.rangeStart<newMinDate?inst.rangeStart:newMinDate);var minDate=newMinDate||this._getMinMaxDate(inst,"min");var maxDate=this._getMinMaxDate(inst,"max");return((!minDate||date>=minDate)&&(!maxDate||date<=maxDate))},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null||props[name]==undefined){target[name]=props[name]}}return target}function isArray(a){return(a&&(($.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))}$.fn.datepicker=function(options){if(!$.datepicker.initialized){$(document.body).append($.datepicker.dpDiv).mousedown($.datepicker._checkExternalClick);$.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker();$.datepicker.initialized=false;$.datepicker.uuid=new Date().getTime();$.datepicker.version="1.6"})(jQuery);/* + * jQuery UI Effects 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/ + */ +(function(C){C.effects=C.effects||{};C.extend(C.effects,{version:"1.6",save:function(F,G){for(var E=0;E<G.length;E++){if(G[E]!==null){C.data(F[0],"ec.storage."+G[E],F[0].style[G[E]])}}},restore:function(F,G){for(var E=0;E<G.length;E++){if(G[E]!==null){F.css(G[E],C.data(F[0],"ec.storage."+G[E]))}}},setMode:function(E,F){if(F=="toggle"){F=E.is(":hidden")?"show":"hide"}return F},getBaseline:function(F,G){var H,E;switch(F[0]){case"top":H=0;break;case"middle":H=0.5;break;case"bottom":H=1;break;default:H=F[0]/G.height}switch(F[1]){case"left":E=0;break;case"center":E=0.5;break;case"right":E=1;break;default:E=F[1]/G.width}return{x:E,y:H}},createWrapper:function(F){if(F.parent().attr("id")=="fxWrapper"){return F}var E={width:F.outerWidth({margin:true}),height:F.outerHeight({margin:true}),"float":F.css("float")};F.wrap('<div id="fxWrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>');var I=F.parent();if(F.css("position")=="static"){I.css({position:"relative"});F.css({position:"relative"})}else{var H=F.css("top");if(isNaN(parseInt(H))){H="auto"}var G=F.css("left");if(isNaN(parseInt(G))){G="auto"}I.css({position:F.css("position"),top:H,left:G,zIndex:F.css("z-index")}).show();F.css({position:"relative",top:0,left:0})}I.css(E);return I},removeWrapper:function(E){if(E.parent().attr("id")=="fxWrapper"){return E.parent().replaceWith(E)}return E},setTransition:function(F,G,E,H){H=H||{};C.each(G,function(J,I){unit=F.cssUnit(I);if(unit[0]>0){H[I]=unit[0]*E+unit[1]}});return H},animateClass:function(G,H,J,I){var E=(typeof J=="function"?J:(I?I:null));var F=(typeof J=="object"?J:null);return this.each(function(){var O={};var M=C(this);var N=M.attr("style")||"";if(typeof N=="object"){N=N["cssText"]}if(G.toggle){M.hasClass(G.toggle)?G.remove=G.toggle:G.add=G.toggle}var K=C.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(G.add){M.addClass(G.add)}if(G.remove){M.removeClass(G.remove)}var L=C.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(G.add){M.removeClass(G.add)}if(G.remove){M.addClass(G.remove)}for(var P in L){if(typeof L[P]!="function"&&L[P]&&P.indexOf("Moz")==-1&&P.indexOf("length")==-1&&L[P]!=K[P]&&(P.match(/color/i)||(!P.match(/color/i)&&!isNaN(parseInt(L[P],10))))&&(K.position!="static"||(K.position=="static"&&!P.match(/left|top|bottom|right/)))){O[P]=L[P]}}M.animate(O,H,F,function(){if(typeof C(this).attr("style")=="object"){C(this).attr("style")["cssText"]="";C(this).attr("style")["cssText"]=N}else{C(this).attr("style",N)}if(G.add){C(this).addClass(G.add)}if(G.remove){C(this).removeClass(G.remove)}if(E){E.apply(this,arguments)}})})}});C.fn.extend({_show:C.fn.show,_hide:C.fn.hide,__toggle:C.fn.toggle,_addClass:C.fn.addClass,_removeClass:C.fn.removeClass,_toggleClass:C.fn.toggleClass,effect:function(E,G,F,H){return C.effects[E]?C.effects[E].call(this,{method:E,options:G||{},duration:F,callback:H}):null},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||/(slow|normal|fast)/.test(arguments[0]))){return this._show.apply(this,arguments)}else{var E=arguments[1]||{};E["mode"]="show";return this.effect.apply(this,[arguments[0],E,arguments[2]||E.duration,arguments[3]||E.callback])}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||/(slow|normal|fast)/.test(arguments[0]))){return this._hide.apply(this,arguments)}else{var E=arguments[1]||{};E["mode"]="hide";return this.effect.apply(this,[arguments[0],E,arguments[2]||E.duration,arguments[3]||E.callback])}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||/(slow|normal|fast)/.test(arguments[0]))||(arguments[0].constructor==Function)){return this.__toggle.apply(this,arguments)}else{var E=arguments[1]||{};E["mode"]="toggle";return this.effect.apply(this,[arguments[0],E,arguments[2]||E.duration,arguments[3]||E.callback])}},addClass:function(F,E,H,G){return E?C.effects.animateClass.apply(this,[{add:F},E,H,G]):this._addClass(F)},removeClass:function(F,E,H,G){return E?C.effects.animateClass.apply(this,[{remove:F},E,H,G]):this._removeClass(F)},toggleClass:function(F,E,H,G){return E?C.effects.animateClass.apply(this,[{toggle:F},E,H,G]):this._toggleClass(F)},morph:function(E,G,F,I,H){return C.effects.animateClass.apply(this,[{add:G,remove:E},F,I,H])},switchClass:function(){return this.morph.apply(this,arguments)},cssUnit:function(E){var F=this.css(E),G=[];C.each(["em","px","%","pt"],function(H,I){if(F.indexOf(I)>0){G=[parseFloat(F),I]}});return G}});C.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(F,E){C.fx.step[E]=function(G){if(G.state==0){G.start=D(G.elem,E);G.end=B(G.end)}G.elem.style[E]="rgb("+[Math.max(Math.min(parseInt((G.pos*(G.end[0]-G.start[0]))+G.start[0]),255),0),Math.max(Math.min(parseInt((G.pos*(G.end[1]-G.start[1]))+G.start[1]),255),0),Math.max(Math.min(parseInt((G.pos*(G.end[2]-G.start[2]))+G.start[2]),255),0)].join(",")+")"}});function B(F){var E;if(F&&F.constructor==Array&&F.length==3){return F}if(E=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(F)){return[parseInt(E[1]),parseInt(E[2]),parseInt(E[3])]}if(E=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(F)){return[parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55]}if(E=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(F)){return[parseInt(E[1],16),parseInt(E[2],16),parseInt(E[3],16)]}if(E=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(F)){return[parseInt(E[1]+E[1],16),parseInt(E[2]+E[2],16),parseInt(E[3]+E[3],16)]}if(E=/rgba\(0, 0, 0, 0\)/.exec(F)){return A["transparent"]}return A[C.trim(F).toLowerCase()]}function D(G,E){var F;do{F=C.curCSS(G,E);if(F!=""&&F!="transparent"||C.nodeName(G,"body")){break}E="backgroundColor"}while(G=G.parentNode);return B(F)}var A={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};C.easing.jswing=C.easing.swing;C.extend(C.easing,{def:"easeOutQuad",swing:function(F,G,E,I,H){return C.easing[C.easing.def](F,G,E,I,H)},easeInQuad:function(F,G,E,I,H){return I*(G/=H)*G+E},easeOutQuad:function(F,G,E,I,H){return -I*(G/=H)*(G-2)+E},easeInOutQuad:function(F,G,E,I,H){if((G/=H/2)<1){return I/2*G*G+E}return -I/2*((--G)*(G-2)-1)+E},easeInCubic:function(F,G,E,I,H){return I*(G/=H)*G*G+E},easeOutCubic:function(F,G,E,I,H){return I*((G=G/H-1)*G*G+1)+E},easeInOutCubic:function(F,G,E,I,H){if((G/=H/2)<1){return I/2*G*G*G+E}return I/2*((G-=2)*G*G+2)+E},easeInQuart:function(F,G,E,I,H){return I*(G/=H)*G*G*G+E},easeOutQuart:function(F,G,E,I,H){return -I*((G=G/H-1)*G*G*G-1)+E},easeInOutQuart:function(F,G,E,I,H){if((G/=H/2)<1){return I/2*G*G*G*G+E}return -I/2*((G-=2)*G*G*G-2)+E},easeInQuint:function(F,G,E,I,H){return I*(G/=H)*G*G*G*G+E},easeOutQuint:function(F,G,E,I,H){return I*((G=G/H-1)*G*G*G*G+1)+E},easeInOutQuint:function(F,G,E,I,H){if((G/=H/2)<1){return I/2*G*G*G*G*G+E}return I/2*((G-=2)*G*G*G*G+2)+E},easeInSine:function(F,G,E,I,H){return -I*Math.cos(G/H*(Math.PI/2))+I+E},easeOutSine:function(F,G,E,I,H){return I*Math.sin(G/H*(Math.PI/2))+E},easeInOutSine:function(F,G,E,I,H){return -I/2*(Math.cos(Math.PI*G/H)-1)+E},easeInExpo:function(F,G,E,I,H){return(G==0)?E:I*Math.pow(2,10*(G/H-1))+E},easeOutExpo:function(F,G,E,I,H){return(G==H)?E+I:I*(-Math.pow(2,-10*G/H)+1)+E},easeInOutExpo:function(F,G,E,I,H){if(G==0){return E}if(G==H){return E+I}if((G/=H/2)<1){return I/2*Math.pow(2,10*(G-1))+E}return I/2*(-Math.pow(2,-10*--G)+2)+E},easeInCirc:function(F,G,E,I,H){return -I*(Math.sqrt(1-(G/=H)*G)-1)+E},easeOutCirc:function(F,G,E,I,H){return I*Math.sqrt(1-(G=G/H-1)*G)+E},easeInOutCirc:function(F,G,E,I,H){if((G/=H/2)<1){return -I/2*(Math.sqrt(1-G*G)-1)+E}return I/2*(Math.sqrt(1-(G-=2)*G)+1)+E},easeInElastic:function(F,H,E,L,K){var I=1.70158;var J=0;var G=L;if(H==0){return E}if((H/=K)==1){return E+L}if(!J){J=K*0.3}if(G<Math.abs(L)){G=L;var I=J/4}else{var I=J/(2*Math.PI)*Math.asin(L/G)}return -(G*Math.pow(2,10*(H-=1))*Math.sin((H*K-I)*(2*Math.PI)/J))+E},easeOutElastic:function(F,H,E,L,K){var I=1.70158;var J=0;var G=L;if(H==0){return E}if((H/=K)==1){return E+L}if(!J){J=K*0.3}if(G<Math.abs(L)){G=L;var I=J/4}else{var I=J/(2*Math.PI)*Math.asin(L/G)}return G*Math.pow(2,-10*H)*Math.sin((H*K-I)*(2*Math.PI)/J)+L+E},easeInOutElastic:function(F,H,E,L,K){var I=1.70158;var J=0;var G=L;if(H==0){return E}if((H/=K/2)==2){return E+L}if(!J){J=K*(0.3*1.5)}if(G<Math.abs(L)){G=L;var I=J/4}else{var I=J/(2*Math.PI)*Math.asin(L/G)}if(H<1){return -0.5*(G*Math.pow(2,10*(H-=1))*Math.sin((H*K-I)*(2*Math.PI)/J))+E}return G*Math.pow(2,-10*(H-=1))*Math.sin((H*K-I)*(2*Math.PI)/J)*0.5+L+E},easeInBack:function(F,G,E,J,I,H){if(H==undefined){H=1.70158}return J*(G/=I)*G*((H+1)*G-H)+E},easeOutBack:function(F,G,E,J,I,H){if(H==undefined){H=1.70158}return J*((G=G/I-1)*G*((H+1)*G+H)+1)+E},easeInOutBack:function(F,G,E,J,I,H){if(H==undefined){H=1.70158}if((G/=I/2)<1){return J/2*(G*G*(((H*=(1.525))+1)*G-H))+E}return J/2*((G-=2)*G*(((H*=(1.525))+1)*G+H)+2)+E},easeInBounce:function(F,G,E,I,H){return I-C.easing.easeOutBounce(F,H-G,0,I,H)+E},easeOutBounce:function(F,G,E,I,H){if((G/=H)<(1/2.75)){return I*(7.5625*G*G)+E}else{if(G<(2/2.75)){return I*(7.5625*(G-=(1.5/2.75))*G+0.75)+E}else{if(G<(2.5/2.75)){return I*(7.5625*(G-=(2.25/2.75))*G+0.9375)+E}else{return I*(7.5625*(G-=(2.625/2.75))*G+0.984375)+E}}}},easeInOutBounce:function(F,G,E,I,H){if(G<H/2){return C.easing.easeInBounce(F,G*2,0,I,H)*0.5+E}return C.easing.easeOutBounce(F,G*2-H,0,I,H)*0.5+I*0.5+E}})})(jQuery);/* + * jQuery UI Effects Blind 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Blind + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.blind=function(B){return this.queue(function(){var D=A(this),C=["position","top","left"];var H=A.effects.setMode(D,B.options.mode||"hide");var G=B.options.direction||"vertical";A.effects.save(D,C);D.show();var J=A.effects.createWrapper(D).css({overflow:"hidden"});var E=(G=="vertical")?"height":"width";var I=(G=="vertical")?J.height():J.width();if(H=="show"){J.css(E,0)}var F={};F[E]=H=="show"?I:0;J.animate(F,B.duration,B.options.easing,function(){if(H=="hide"){D.hide()}A.effects.restore(D,C);A.effects.removeWrapper(D);if(B.callback){B.callback.apply(D[0],arguments)}D.dequeue()})})}})(jQuery);/* + * jQuery UI Effects Bounce 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Bounce + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.bounce=function(B){return this.queue(function(){var E=A(this),K=["position","top","left"];var J=A.effects.setMode(E,B.options.mode||"effect");var M=B.options.direction||"up";var C=B.options.distance||20;var D=B.options.times||5;var G=B.duration||250;if(/show|hide/.test(J)){K.push("opacity")}A.effects.save(E,K);E.show();A.effects.createWrapper(E);var F=(M=="up"||M=="down")?"top":"left";var O=(M=="up"||M=="left")?"pos":"neg";var C=B.options.distance||(F=="top"?E.outerHeight({margin:true})/3:E.outerWidth({margin:true})/3);if(J=="show"){E.css("opacity",0).css(F,O=="pos"?-C:C)}if(J=="hide"){C=C/(D*2)}if(J!="hide"){D--}if(J=="show"){var H={opacity:1};H[F]=(O=="pos"?"+=":"-=")+C;E.animate(H,G/2,B.options.easing);C=C/2;D--}for(var I=0;I<D;I++){var N={},L={};N[F]=(O=="pos"?"-=":"+=")+C;L[F]=(O=="pos"?"+=":"-=")+C;E.animate(N,G/2,B.options.easing).animate(L,G/2,B.options.easing);C=(J=="hide")?C*2:C/2}if(J=="hide"){var H={opacity:0};H[F]=(O=="pos"?"-=":"+=")+C;E.animate(H,G/2,B.options.easing,function(){E.hide();A.effects.restore(E,K);A.effects.removeWrapper(E);if(B.callback){B.callback.apply(this,arguments)}})}else{var N={},L={};N[F]=(O=="pos"?"-=":"+=")+C;L[F]=(O=="pos"?"+=":"-=")+C;E.animate(N,G/2,B.options.easing).animate(L,G/2,B.options.easing,function(){A.effects.restore(E,K);A.effects.removeWrapper(E);if(B.callback){B.callback.apply(this,arguments)}})}E.queue("fx",function(){E.dequeue()});E.dequeue()})}})(jQuery);/* + * jQuery UI Effects Clip 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Clip + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.clip=function(B){return this.queue(function(){var F=A(this),J=["position","top","left","height","width"];var I=A.effects.setMode(F,B.options.mode||"hide");var K=B.options.direction||"vertical";A.effects.save(F,J);F.show();var C=A.effects.createWrapper(F).css({overflow:"hidden"});var E=F[0].tagName=="IMG"?C:F;var G={size:(K=="vertical")?"height":"width",position:(K=="vertical")?"top":"left"};var D=(K=="vertical")?E.height():E.width();if(I=="show"){E.css(G.size,0);E.css(G.position,D/2)}var H={};H[G.size]=I=="show"?D:0;H[G.position]=I=="show"?0:D/2;E.animate(H,{queue:false,duration:B.duration,easing:B.options.easing,complete:function(){if(I=="hide"){F.hide()}A.effects.restore(F,J);A.effects.removeWrapper(F);if(B.callback){B.callback.apply(F[0],arguments)}F.dequeue()}})})}})(jQuery);/* + * jQuery UI Effects Drop 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Drop + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.drop=function(B){return this.queue(function(){var E=A(this),D=["position","top","left","opacity"];var I=A.effects.setMode(E,B.options.mode||"hide");var H=B.options.direction||"left";A.effects.save(E,D);E.show();A.effects.createWrapper(E);var F=(H=="up"||H=="down")?"top":"left";var C=(H=="up"||H=="left")?"pos":"neg";var J=B.options.distance||(F=="top"?E.outerHeight({margin:true})/2:E.outerWidth({margin:true})/2);if(I=="show"){E.css("opacity",0).css(F,C=="pos"?-J:J)}var G={opacity:I=="show"?1:0};G[F]=(I=="show"?(C=="pos"?"+=":"-="):(C=="pos"?"-=":"+="))+J;E.animate(G,{queue:false,duration:B.duration,easing:B.options.easing,complete:function(){if(I=="hide"){E.hide()}A.effects.restore(E,D);A.effects.removeWrapper(E);if(B.callback){B.callback.apply(this,arguments)}E.dequeue()}})})}})(jQuery);/* + * jQuery UI Effects Explode 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Explode + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.explode=function(B){return this.queue(function(){var I=B.options.pieces?Math.round(Math.sqrt(B.options.pieces)):3;var E=B.options.pieces?Math.round(Math.sqrt(B.options.pieces)):3;B.options.mode=B.options.mode=="toggle"?(A(this).is(":visible")?"hide":"show"):B.options.mode;var H=A(this).show().css("visibility","hidden");var J=H.offset();J.top-=parseInt(H.css("marginTop"))||0;J.left-=parseInt(H.css("marginLeft"))||0;var G=H.outerWidth(true);var C=H.outerHeight(true);for(var F=0;F<I;F++){for(var D=0;D<E;D++){H.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-D*(G/E),top:-F*(C/I)}).parent().addClass("effects-explode").css({position:"absolute",overflow:"hidden",width:G/E,height:C/I,left:J.left+D*(G/E)+(B.options.mode=="show"?(D-Math.floor(E/2))*(G/E):0),top:J.top+F*(C/I)+(B.options.mode=="show"?(F-Math.floor(I/2))*(C/I):0),opacity:B.options.mode=="show"?0:1}).animate({left:J.left+D*(G/E)+(B.options.mode=="show"?0:(D-Math.floor(E/2))*(G/E)),top:J.top+F*(C/I)+(B.options.mode=="show"?0:(F-Math.floor(I/2))*(C/I)),opacity:B.options.mode=="show"?1:0},B.duration||500)}}setTimeout(function(){B.options.mode=="show"?H.css({visibility:"visible"}):H.css({visibility:"visible"}).hide();if(B.callback){B.callback.apply(H[0])}H.dequeue();A(".effects-explode").remove()},B.duration||500)})}})(jQuery);/* + * jQuery UI Effects Fold 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Fold + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.fold=function(B){return this.queue(function(){var E=A(this),J=["position","top","left"];var G=A.effects.setMode(E,B.options.mode||"hide");var N=B.options.size||15;var M=!(!B.options.horizFirst);A.effects.save(E,J);E.show();var D=A.effects.createWrapper(E).css({overflow:"hidden"});var H=((G=="show")!=M);var F=H?["width","height"]:["height","width"];var C=H?[D.width(),D.height()]:[D.height(),D.width()];var I=/([0-9]+)%/.exec(N);if(I){N=parseInt(I[1])/100*C[G=="hide"?0:1]}if(G=="show"){D.css(M?{height:0,width:N}:{height:N,width:0})}var L={},K={};L[F[0]]=G=="show"?C[0]:N;K[F[1]]=G=="show"?C[1]:0;D.animate(L,B.duration/2,B.options.easing).animate(K,B.duration/2,B.options.easing,function(){if(G=="hide"){E.hide()}A.effects.restore(E,J);A.effects.removeWrapper(E);if(B.callback){B.callback.apply(E[0],arguments)}E.dequeue()})})}})(jQuery);/* + * jQuery UI Effects Highlight 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Highlight + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.highlight=function(B){return this.queue(function(){var E=A(this),D=["backgroundImage","backgroundColor","opacity"];var H=A.effects.setMode(E,B.options.mode||"show");var C=B.options.color||"#ffff99";var G=E.css("backgroundColor");A.effects.save(E,D);E.show();E.css({backgroundImage:"none",backgroundColor:C});var F={backgroundColor:G};if(H=="hide"){F["opacity"]=0}E.animate(F,{queue:false,duration:B.duration,easing:B.options.easing,complete:function(){if(H=="hide"){E.hide()}A.effects.restore(E,D);if(H=="show"&&A.browser.msie){this.style.removeAttribute("filter")}if(B.callback){B.callback.apply(this,arguments)}E.dequeue()}})})}})(jQuery);/* + * jQuery UI Effects Pulsate 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Pulsate + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.pulsate=function(B){return this.queue(function(){var D=A(this);var F=A.effects.setMode(D,B.options.mode||"show");var E=B.options.times||5;if(F=="hide"){E--}if(D.is(":hidden")){D.css("opacity",0);D.show();D.animate({opacity:1},B.duration/2,B.options.easing);E=E-2}for(var C=0;C<E;C++){D.animate({opacity:0},B.duration/2,B.options.easing).animate({opacity:1},B.duration/2,B.options.easing)}if(F=="hide"){D.animate({opacity:0},B.duration/2,B.options.easing,function(){D.hide();if(B.callback){B.callback.apply(this,arguments)}})}else{D.animate({opacity:0},B.duration/2,B.options.easing).animate({opacity:1},B.duration/2,B.options.easing,function(){if(B.callback){B.callback.apply(this,arguments)}})}D.queue("fx",function(){D.dequeue()});D.dequeue()})}})(jQuery);/* + * jQuery UI Effects Scale 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Scale + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.puff=function(B){return this.queue(function(){var F=A(this);var C=A.extend(true,{},B.options);var H=A.effects.setMode(F,B.options.mode||"hide");var G=parseInt(B.options.percent)||150;C.fade=true;var E={height:F.height(),width:F.width()};var D=G/100;F.from=(H=="hide")?E:{height:E.height*D,width:E.width*D};C.from=F.from;C.percent=(H=="hide")?G:100;C.mode=H;F.effect("scale",C,B.duration,B.callback);F.dequeue()})};A.effects.scale=function(B){return this.queue(function(){var G=A(this);var D=A.extend(true,{},B.options);var J=A.effects.setMode(G,B.options.mode||"effect");var H=parseInt(B.options.percent)||(parseInt(B.options.percent)==0?0:(J=="hide"?0:100));var I=B.options.direction||"both";var C=B.options.origin;if(J!="effect"){D.origin=C||["middle","center"];D.restore=true}var F={height:G.height(),width:G.width()};G.from=B.options.from||(J=="show"?{height:0,width:0}:F);var E={y:I!="horizontal"?(H/100):1,x:I!="vertical"?(H/100):1};G.to={height:F.height*E.y,width:F.width*E.x};if(B.options.fade){if(J=="show"){G.from.opacity=0;G.to.opacity=1}if(J=="hide"){G.from.opacity=1;G.to.opacity=0}}D.from=G.from;D.to=G.to;D.mode=J;G.effect("size",D,B.duration,B.callback);G.dequeue()})};A.effects.size=function(B){return this.queue(function(){var C=A(this),N=["position","top","left","width","height","overflow","opacity"];var M=["position","top","left","overflow","opacity"];var J=["width","height","overflow"];var P=["fontSize"];var K=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"];var F=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"];var G=A.effects.setMode(C,B.options.mode||"effect");var I=B.options.restore||false;var E=B.options.scale||"both";var O=B.options.origin;var D={height:C.height(),width:C.width()};C.from=B.options.from||D;C.to=B.options.to||D;if(O){var H=A.effects.getBaseline(O,D);C.from.top=(D.height-C.from.height)*H.y;C.from.left=(D.width-C.from.width)*H.x;C.to.top=(D.height-C.to.height)*H.y;C.to.left=(D.width-C.to.width)*H.x}var L={from:{y:C.from.height/D.height,x:C.from.width/D.width},to:{y:C.to.height/D.height,x:C.to.width/D.width}};if(E=="box"||E=="both"){if(L.from.y!=L.to.y){N=N.concat(K);C.from=A.effects.setTransition(C,K,L.from.y,C.from);C.to=A.effects.setTransition(C,K,L.to.y,C.to)}if(L.from.x!=L.to.x){N=N.concat(F);C.from=A.effects.setTransition(C,F,L.from.x,C.from);C.to=A.effects.setTransition(C,F,L.to.x,C.to)}}if(E=="content"||E=="both"){if(L.from.y!=L.to.y){N=N.concat(P);C.from=A.effects.setTransition(C,P,L.from.y,C.from);C.to=A.effects.setTransition(C,P,L.to.y,C.to)}}A.effects.save(C,I?N:M);C.show();A.effects.createWrapper(C);C.css("overflow","hidden").css(C.from);if(E=="content"||E=="both"){K=K.concat(["marginTop","marginBottom"]).concat(P);F=F.concat(["marginLeft","marginRight"]);J=N.concat(K).concat(F);C.find("*[width]").each(function(){child=A(this);if(I){A.effects.save(child,J)}var Q={height:child.height(),width:child.width()};child.from={height:Q.height*L.from.y,width:Q.width*L.from.x};child.to={height:Q.height*L.to.y,width:Q.width*L.to.x};if(L.from.y!=L.to.y){child.from=A.effects.setTransition(child,K,L.from.y,child.from);child.to=A.effects.setTransition(child,K,L.to.y,child.to)}if(L.from.x!=L.to.x){child.from=A.effects.setTransition(child,F,L.from.x,child.from);child.to=A.effects.setTransition(child,F,L.to.x,child.to)}child.css(child.from);child.animate(child.to,B.duration,B.options.easing,function(){if(I){A.effects.restore(child,J)}})})}C.animate(C.to,{queue:false,duration:B.duration,easing:B.options.easing,complete:function(){if(G=="hide"){C.hide()}A.effects.restore(C,I?N:M);A.effects.removeWrapper(C);if(B.callback){B.callback.apply(this,arguments)}C.dequeue()}})})}})(jQuery);/* + * jQuery UI Effects Shake 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Shake + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.shake=function(B){return this.queue(function(){var E=A(this),K=["position","top","left"];var J=A.effects.setMode(E,B.options.mode||"effect");var M=B.options.direction||"left";var C=B.options.distance||20;var D=B.options.times||3;var G=B.duration||B.options.duration||140;A.effects.save(E,K);E.show();A.effects.createWrapper(E);var F=(M=="up"||M=="down")?"top":"left";var O=(M=="up"||M=="left")?"pos":"neg";var H={},N={},L={};H[F]=(O=="pos"?"-=":"+=")+C;N[F]=(O=="pos"?"+=":"-=")+C*2;L[F]=(O=="pos"?"-=":"+=")+C*2;E.animate(H,G,B.options.easing);for(var I=1;I<D;I++){E.animate(N,G,B.options.easing).animate(L,G,B.options.easing)}E.animate(N,G,B.options.easing).animate(H,G/2,B.options.easing,function(){A.effects.restore(E,K);A.effects.removeWrapper(E);if(B.callback){B.callback.apply(this,arguments)}});E.queue("fx",function(){E.dequeue()});E.dequeue()})}})(jQuery);/* + * jQuery UI Effects Slide 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Slide + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.slide=function(B){return this.queue(function(){var E=A(this),D=["position","top","left"];var I=A.effects.setMode(E,B.options.mode||"show");var H=B.options.direction||"left";A.effects.save(E,D);E.show();A.effects.createWrapper(E).css({overflow:"hidden"});var F=(H=="up"||H=="down")?"top":"left";var C=(H=="up"||H=="left")?"pos":"neg";var J=B.options.distance||(F=="top"?E.outerHeight({margin:true}):E.outerWidth({margin:true}));if(I=="show"){E.css(F,C=="pos"?-J:J)}var G={};G[F]=(I=="show"?(C=="pos"?"+=":"-="):(C=="pos"?"-=":"+="))+J;E.animate(G,{queue:false,duration:B.duration,easing:B.options.easing,complete:function(){if(I=="hide"){E.hide()}A.effects.restore(E,D);A.effects.removeWrapper(E);if(B.callback){B.callback.apply(this,arguments)}E.dequeue()}})})}})(jQuery);/* + * jQuery UI Effects Transfer 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Transfer + * + * Depends: + * effects.core.js + */ +(function(A){A.effects.transfer=function(B){return this.queue(function(){var E=A(this);var G=A.effects.setMode(E,B.options.mode||"effect");var F=A(B.options.to);var C=E.offset();var D=A('<div class="ui-effects-transfer"></div>').appendTo(document.body);if(B.options.className){D.addClass(B.options.className)}D.addClass(B.options.className);D.css({top:C.top,left:C.left,height:E.outerHeight()-parseInt(D.css("borderTopWidth"))-parseInt(D.css("borderBottomWidth")),width:E.outerWidth()-parseInt(D.css("borderLeftWidth"))-parseInt(D.css("borderRightWidth")),position:"absolute"});C=F.offset();animation={top:C.top,left:C.left,height:F.outerHeight()-parseInt(D.css("borderTopWidth"))-parseInt(D.css("borderBottomWidth")),width:F.outerWidth()-parseInt(D.css("borderLeftWidth"))-parseInt(D.css("borderRightWidth"))};D.animate(animation,B.duration,B.options.easing,function(){D.remove();if(B.callback){B.callback.apply(E[0],arguments)}E.dequeue()})})}})(jQuery); \ No newline at end of file diff --git a/modules/tntcarrier/relaisColis/js/jquery.js b/modules/tntcarrier/relaisColis/js/jquery.js new file mode 100644 index 000000000..72f32c906 --- /dev/null +++ b/modules/tntcarrier/relaisColis/js/jquery.js @@ -0,0 +1,32 @@ +/* + * jQuery 1.2.6 - New Wave Javascript + * + * Copyright (c) 2008 John Resig (jquery.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $ + * $Rev: 5685 $ + */ +(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else +return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else +return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else +selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else +return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else +this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else +return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else +jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&©&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else +script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else +for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else +for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else +jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else +ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&¬xml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&¬xml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else +while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else +while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else +for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else +jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else +xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else +jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else +for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else +s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else +e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})(); \ No newline at end of file diff --git a/modules/tntcarrier/relaisColis/js/relaisColis.js b/modules/tntcarrier/relaisColis/js/relaisColis.js new file mode 100644 index 000000000..f347bfd7c --- /dev/null +++ b/modules/tntcarrier/relaisColis/js/relaisColis.js @@ -0,0 +1,984 @@ +/** Javascript B2C Relais Colis - version 2.0 - 08/07/2010 **/ + +var pathToImages = "./modules/tntcarrier/relaisColis/img/"; +var tntDomain = "www.tnt.fr"; + +var tntRCcodePostal; +var tntRCCommune; +var tntRClisteRelais; +var tntRCJsonCommunes; + +var tntRCMsgHeaderTitle = "Mode de livraison"; +var tntRCMsgSubHeaderTitle = "Choisissez le Relais Colis<sup class='tntRCSup'>®</sup> qui vous convient :"; +var tntRCMsgHeaderPopup = "Détail"; +var tntRCMsgSubHeaderPopup = "Descriptif :"; +var tntRCMsgBodyLoading = "Chargement en cours..."; +var tntRCMsgBodyInput = "Entrez le code postal : "; +var tntRCMsgBodyBack2Communes = "Revenir à la liste des communes"; +var tntRCMsgErrCodePostal = "Veuillez saisir un code postal sur 5 chiffres"; +var tntRCMsgErrLoadCommunes = "Aucun Relais Colis® disponible"; +var tntRCMsgErrLoadRelais = "Aucun Relais Colis® disponible"; + +var tntRCsize800 = "550px"; +var tntRCsize789 = "589px"; +var tntRCsize670 = "470px"; +var tntRCsize650 = "450px"; +var tntRCsize50 = "50px"; +var tntRCsize8 = "8px"; +var tntRCsize5 = "5px"; +var tntRCsize6 = "6px"; +var tntRCsize10 = "10px"; +var tntRCsize30 = "30px"; +var tntRCsize109 = "109px"; +var tntRCsize442 = "362px"; +var tntRCsize447 = "387px"; +var tntRCsize218 = "178px"; +var tntRCsize253 = "213px"; +var tntRCsize20 = "20px"; +var tntRCsize392 = "352px"; +var tntRCsize412 = "332px"; + +function getURLParam(name) { + name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); + var regexS = "[\\?&]" + name + "=([^&#]*)"; + var regex = new RegExp( regexS ); + var results = regex.exec( window.location.href ); + if( results == null ) return ""; + else return results[1]; +}; + +// Chargement de la liste de relais colis après le choix de la commune parmis plusieurs +// communes correspondant au même code postal +function tntRCgetRelaisColisJSON(commune) +{ + if (!commune) { + // La commune du code postal correspond à la sélection du radio bouton tntRCchoixComm + tntRCCommune = $("input[@type=radio][@checked][@name=tntRCchoixComm]").val(); + } + else { + // Utilisation de la valeur fournie en paramètre + tntRCCommune = commune + } + + // Affichage message "chargement en cours" + tntRCsetChargementEnCours(); + + var ajaxUrl; + var ajaxData; + + ajaxUrl = "http://" + tntDomain + "/public/b2c/relaisColis/loadJson.do?cp=" + tntRCcodePostal + "&commune=" + tntRCCommune; + ajaxData = ""; + + // Chargement de la liste de relais colis + $.ajax({ + type: "GET", + url: ajaxUrl, + data: ajaxData, + dataType: "script" + }); +}; + +// Affichage d'une liste de relais colis +function tntRCafficheRelais(jData) { + + var jMessage = $('#blocCodePostal'); + + var tntRCjTable = $("<table style='border:1px solid gray;' cellpadding='0' cellspacing='0' width='" + tntRCsize800 + "'></table>"); + + // Ligne blanche de séparation + tntRCjTable.append(tntRCligneBlanche6Col()); + + // Entêtes de colonnes grise + tntRCjTable.append(tntRCenteteGrise6Col()); + + //affiche le contenu du fichier dans le conteneur dédié + jMessage.html(""); + + var i = 0; + + tntRClisteRelais = jData; + for(i = 0; i < jData.length; i++) { + + var oRelais = jData[i]; + + // Les noeuds dans le fichier XML ne sont pas forcément ordonnés pour l'affichage, on va donc d'abord récupérer leur valeur + var codeRelais = oRelais[0]; + var nomRelais = oRelais[1]; + var adresse = oRelais[4]; + var codePostal = oRelais[2]; + var commune = oRelais[3]; + var heureFermeture = oRelais[21]; + + var messages=""; + + var logo_point = ""; + if (messages != "") logo_point = "<img src='" + pathToImages + "exception.gif' alt='Informations complémentaires' width='16px' height='16px'>"; + + tntRCjTable.append( + "<tr>"+ + "<td class='tntRCblanc' width='" + tntRCsize5 + "'></td>"+ + "<td class='tntRCblanc' width='" + tntRCsize50 + "'><img src='" + pathToImages + "logo-tnt-petit.jpg'> " + logo_point + "</td>"+ + "<td class='tntRCrelaisColis' width='" + tntRCsize650 + "'>" + nomRelais + " - " + adresse + " - " + codePostal + " - " + commune + "<BR>    >> Ouvert jusqu'à " + heureFermeture + "</td>"+ + "<td class='tntRCrelaisColis' width='" + tntRCsize10 + "'> </td>"+ + "<td class='tntRCrelaisColis' valign='middle' align='center' width='" + tntRCsize109 + "'>"+ + "<a href='#' onclick='tntRCafficheDetail(" + i + ");'><img src='" + pathToImages + "loupe.gif' class='tntRCBoutonLoupe'></a>        "+ + "<input type='radio' style='vertical-align: middle;' name='tntRCchoixRelais' value='" + codeRelais + "'" + ( i==0 ? "checked" : "") + " onclick='tntRCSetSelectedInfo(" + i + ")'/>"+ + "</td>"+ + "<td class='tntRCblanc' width='" + tntRCsize6 + "'></td>"+ + "</tr>"); + } + + // Mémorisation des infos du relais sélectionné par défaut (c'est le premier) + tntRCSetSelectedInfo(0, true); + + // Ajout du lien de retour sur la liste des communes si cette dernière a été mémorisée + if (tntRCJsonCommunes != null) { + tntRCjTable.append( + "<tr>"+ + "<td colspan='5' class='tntRCBack2Communes'>"+ + "<a href='#' onclick='tntRCafficheCommunes(tntRCJsonCommunes);'>"+ + "<img src='" + pathToImages + "bt-Retour.gif'>"+ + tntRCMsgBodyBack2Communes + + "</a>"+ + "</td>"+ + "<td />"+ + "</tr>"); + } + + tntRCjTable.append(tntRCligneBlanche6Col()); + jMessage.append(tntRCjTable); + + jMessage.append(tntRCchangerCodePostal()); +}; + +function tntB2CRelaisColisGetBodyMain() { + return ( + "<div class='tntRCGray'> </div>"+ + "<div id='tntBodyContentSC'>" + + "<table>"+ + "<tr>"+ + "<td>" + tntRCMsgBodyInput + "</td>"+ + "<td><input type='text' id='tntRCInputCP' class='tntRCInput' maxlength='5' size='5' value=''/></td>"+ + "<td><a href='#' onclick='tntRCgetCommunesJSON();'><img class='tntRCButton' src='" + pathToImages + "bt-OK-2.jpg' onmouseover='this.src=\"" + pathToImages + "bt-OK-1.jpg\"' onmouseout='this.src=\"" + pathToImages + "bt-OK-2.jpg\"'></a></td>" + + "</tr>"+ + "</table>" + + "</div>"+ + "<div id='tntRCLoading' style='display:none;'>" + tntRCMsgBodyLoading + "</div>"+ + "<div id='tntRCError' class='tntRCError' style='display:none;'></div>"); +} + +function tntB2CRelaisColis() { + + // Test si ID de référence existe, sinon on ne fait rien + if (!document.getElementById("tntB2CRelaisColis")) { + alert("ERREUR: Appel incorrect, objet [tntB2CRelaisColis] manquant !"); + return; + } + + tntRCCommune = ''; + + var tntRelaisColisB2C = $("#tntB2CRelaisColis"); + tntRelaisColisB2C.html( + "<div id='tntRCblocEntete'>"+ + "<div class='tntRCHeader'>"+ tntRCMsgHeaderTitle + "</div>"+ + "<div class='tntRCSubHeader'>" + tntRCMsgSubHeaderTitle + "</div>"+ + "<input type='hidden' id='tntRCSelectedCode' value=''/>"+ + "<input type='hidden' id='tntRCSelectedNom' value=''/>"+ + "<input type='hidden' id='tntRCSelectedAdresse' value=''/>"+ + "<input type='hidden' id='tntRCSelectedCodePostal' value=''/>"+ + "<input type='hidden' id='tntRCSelectedCommune' value=''/>"+ + "</div>"+ + "<div id='blocCodePostal' class='tntRCBody'>"+ + tntB2CRelaisColisGetBodyMain() + + "</div>" + + "<div class='dialog_box' id='tntRCDialog'>"+ + "<div id='tntRCdetailRelaisEntete'>"+ + "<div class='tntRCHeader'>"+ tntRCMsgHeaderPopup + "</div>"+ + "<div class='tntRCSubHeader'>" + tntRCMsgSubHeaderPopup + "</div>"+ + "</div>"+ + "<div id='tntRCdetailRelaisCorps'></div>"+ + "</div>"); + + // Forçage de la propriété "top", car elle est écrasée par la gestion de jqModal + // si on la met dans la définition de la classe du div correspondant... + $('#tntRCDialog').css("top", "50%"); + + // Ajout de la popup dans la gestion jqModal + + $('#tntRCDialog').dialog({ + modal: true, + autoOpen: false, + width: 635, + height: 500, + position: ['middle','middle'], + resizable: false, + draggable: false, + show: 'blind', + close: function(event, ui) { + $("html").css({overflow: "", 'overflow-x': "", 'overflow-y': ""}); + } + }); + + // Récupérations des paramètres de l'URL + var codePostal = getURLParam("codePostal"); + var commune = getURLParam("commune"); + + if (codePostal != "") { + tntRCcodePostal = codePostal; + if (commune != "") { + // Couple code postal + commune fourni + tntRCgetRelaisColisJSON(commune); + } + else { + $('#tntRCInputCP').val(tntRCcodePostal); + tntRCgetCommunesJSON(); + } + } + + // Initialisation de Map associée + tntRCInitMap(); +}; + +function tntRCgetRelaisColis(libelleErreur) { + + // RAZ des infos sélectionnées + tntRCSetSelectedInfo(); + + tntRCCommune = ''; + + var blocCodePostal = $("#blocCodePostal"); + if(!blocCodePostal.hasClass("tntRCBody")) + blocCodePostal.addClass("tntRCBody"); + blocCodePostal.html(tntB2CRelaisColisGetBodyMain()); + $('#tntRCInputCP').val(tntRCcodePostal); + + if (libelleErreur) { + var jDivErreur = $("#tntRCError"); + jDivErreur.html(libelleErreur); + jDivErreur.show(); + } +}; + +function tntRCafficheCommunes(jData) { + + // RAZ des infos sélectionnées + tntRCSetSelectedInfo(); + + if (mapDetected) resetMap(); + + var tntRCjTable = $("<table style='border:1px solid gray;' cellpadding='0' cellspacing='0' width='" + tntRCsize800 + "'></table>"); + + // Ligne blanche de séparation + tntRCjTable.append(tntRCligneBlanche6Col()); + // Entêtes de colonnes grise + tntRCjTable.append(tntRCenteteGrise6Col()); + + var blocCodePostal = $("#blocCodePostal"); + + var i = 1; + //var jCommunes = jData.find("VILLE"); + for (var iIdx = 0; iIdx < jData.length; iIdx++) { + + var commune = jData[iIdx]; + + //var jCommune = $(this); + var nomVille = commune[1]; // IE vs FF + + tntRCjTable.append( + "<tr>"+ + "<td class='tntRCblanc' width='" + tntRCsize5 + "'></td>"+ + "<td class='tntRCblanc' width='" + tntRCsize50 + "'><img src='" + pathToImages + "logo-tnt-petit.jpg'></td>" + + "<td class='tntRCrelaisColis' width='" + tntRCsize650 + "'> " + nomVille + " (" + tntRCcodePostal + ") </td>" + + "<td class='tntRCrelaisColis' width='" + tntRCsize10 + "'> </td>"+ + "<td class='tntRCrelaisColis' align='center' width='" + tntRCsize109 + "'>"+ + "<input type='radio' name='tntRCchoixComm' value='" + nomVille + "' " + ( i ==1 ? "checked" : "") + ">"+ + "</td>"+ + "<td class='tntRCblanc' width='" + tntRCsize6 + "'></td>"+ + "</tr>"); + i = 2; + } + + tntRCjTable.append( + tntRCligneBlanche6Col() + + "<tr>"+ + "<td class='tntRCblanc' width='" + tntRCsize5 + "'></td>"+ + "<td class='tntRCblanc' colspan='2' width='" + tntRCsize670 + "'></td>"+ + "<td class='tntRCblanc' width='" + tntRCsize10 + "'></td>"+ + "<td class='tntRCblanc' align='center' width='" + tntRCsize109 + "'>"+ + "<a href='javascript:tntRCgetRelaisColisJSON();'><img class='tntRCButton' src='" + pathToImages + "bt-Continuer-2.jpg' onmouseover='this.src=\"" + pathToImages + "bt-Continuer-1.jpg\"' onmouseout='this.src=\"" + pathToImages + "bt-Continuer-2.jpg\"'></a>" + + "</td>"+ + "<td class='tntRCblanc' width='" + tntRCsize6 + "'></td>"+ + "</tr>" + + tntRCligneBlanche6Col()); + + blocCodePostal.html(tntRCjTable); + + // Bloc de saisie d'un nouveau code postal + blocCodePostal.append(tntRCchangerCodePostal()); +} + +function tntRCgetCommunesJSON() { + + $("#tntRCError").hide(); + tntRCcodePostal = $('#tntRCInputCP').val(); + + // Code postal non renseigné, on ne fait rien + if (tntRCcodePostal=="") return; + + if (mapDetected) resetMap(); + + // On ne fait rien si le code postal n'est pas un nombre de 5 chiffres + if (isNaN(parseInt(tntRCcodePostal)) || tntRCcodePostal.length != 5) { + tntRCgetRelaisColis(tntRCMsgErrCodePostal); + return; + } + + tntRCsetChargementEnCours(); + + var ajaxUrl; + var ajaxData; + + ajaxUrl = "http://" + tntDomain + "/public/b2c/relaisColis/rechercheJson.do?code=" + tntRCcodePostal; + ajaxData = ""; + + $.ajax({ + type: "GET", + url: ajaxUrl, + data: ajaxData, + dataType: "script", + error:function(msg){ + $("#blocCodePostal").html("Error !: " + msg ); + } + }); +}; + +function tntRCsetChargementEnCours() { + $("#tntRCLoading").show(); +}; + +function tntRCafficheDetail(i) { + + var tntRCdetailRelais = $("#tntRCdetailRelaisCorps"); + + tntRCdetailRelais.html(""); + + var oRelais = tntRClisteRelais[i]; + + // Les noeuds dans le fichier JSON ne sont pas forcément ordonnés pour l'affichage, on va donc d'abord récupérer leur valeur + var codeRelais = oRelais[0] + var nomRelais = oRelais[1]; + var adresse = oRelais[4]; + var codePostal = oRelais[2]; + var commune = oRelais[3]; + var heureFermeture = oRelais[21]; + + var lundi_am = (oRelais[7] == "-")?"fermé":oRelais[7]; + var lundi_pm = (oRelais[8] == "-")?"fermé":oRelais[8]; + var mardi_am = (oRelais[9] == "-")?"fermé":oRelais[9]; + var mardi_pm = (oRelais[10] == "-")?"fermé":oRelais[10]; + var mercredi_am = (oRelais[11] == "-")?"fermé":oRelais[11]; + var mercredi_pm = (oRelais[12] == "-")?"fermé":oRelais[12]; + var jeudi_am = (oRelais[13] == "-")?"fermé":oRelais[13]; + var jeudi_pm = (oRelais[14] == "-")?"fermé":oRelais[14]; + var vendredi_am = (oRelais[15] == "-")?"fermé":oRelais[15]; + var vendredi_pm = (oRelais[16] == "-")?"fermé":oRelais[16]; + var samedi_am = (oRelais[17] == "-")?"fermé":oRelais[17]; + var samedi_pm = (oRelais[18] == "-")?"fermé":oRelais[18]; + var dimanche_am = (oRelais[19] == "-")?"fermé":oRelais[19]; + var dimanche_pm = (oRelais[20] == "-")?"fermé":oRelais[20]; + + var messages = ""; + for (j=0; j < oRelais[24].length; j++) { + var ligne = oRelais[24][j]; + if (ligne != "") messages = messages + ligne + "<br/>"; + } + + if (lundi_pm != "-") lundi_am = lundi_am + "<br/>" + lundi_pm; + if (mardi_pm != "-") mardi_am = mardi_am + "<br/>" + mardi_pm; + if (mercredi_pm != "-") mercredi_am = mercredi_am + "<br/>" + mercredi_pm; + if (jeudi_pm != "-") jeudi_am = jeudi_am + "<br/>" + jeudi_pm; + if (vendredi_pm != "-") vendredi_am = vendredi_am + "<br/>" + vendredi_pm; + if (samedi_pm != "-") samedi_am = samedi_am + "<br/>" + samedi_pm; + if (dimanche_pm != "-") dimanche_am = dimanche_am + "<br/>" + dimanche_pm; + + var logo_point = ""; + if (messages != "") logo_point = "<img src='" + pathToImages + "exception.gif' alt='Picto Informations'>"; + + var tntRCjTableX = $("<table style='border:1px solid gray;' cellpadding='0' cellspacing='0' width='" + tntRCsize447 + "'>" + + "<tr>" + + "<td width='" + tntRCsize447 + "' valign='top'>" + + "<table style='border:0px;' cellpadding='0' cellspacing='0' width='" + tntRCsize447 + "'>" + + "<tr>" + + "<td>" + + "<table style='border:0px;' cellpadding='0' cellspacing='0' >" + + "<tr height='" + tntRCsize8 + "'><td colspan='4'></td></tr>" + + "<tr>" + + "<td class='tntRCdetailGros' width='" + tntRCsize5 + "'> </td>" + + "<td class='tntRCdetailGros' width='" + tntRCsize442 + "' colspan='3'>Localisation : </td>" + + "</tr>" + + "<tr height='" + tntRCsize20 + "'><td colspan='4'></td></tr>" + + "<tr>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize5 + "'> </td>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize30 + "'> </td>" + + "<td class='tntRCnoirPetit' width='"+ tntRCsize412 + "' colspan ='2'><b>" + nomRelais + "</b></td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize5 + "'> </td>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize30 + "'> </td>" + + "<td class='tntRCnoirPetit' width='"+ tntRCsize412 + "' colspan ='2'>" + adresse + "</td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize5 + "'> </td>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize30 + "'> </td>" + + "<td class='tntRCnoirPetit' width='"+ tntRCsize412 + "' colspan ='2'>" + codePostal + " " + commune + "</td>" + + "</tr>" + + "<tr height='" + tntRCsize50 + "'><td colspan='4'></td></tr>" + + "<tr>" + + "<td class='tntRCdetailGros' width='" + tntRCsize5 + "'> </td>" + + "<td class='tntRCdetailGros' width='" + tntRCsize442 + "' colspan='3'>Informations : </td>" + + "</tr>" + + "<tr height='" + tntRCsize8 + "'><td colspan='4'></td></tr>" + + "<tr>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize5 + "'></td>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize30 + "'> " + logo_point + "</td>" + + "<td class='tntRCdetailPetit' width='"+ tntRCsize412 + "' colspan ='2'>" + messages + "</td>" + + "</tr>" + + "</table>" + + "</td>" + + "</tr>" + + "</table>" + + "</td>" + + "<td width='" + tntRCsize253 + "' valign='top'>" + + "<table style='border:0px;' cellpadding='0' cellspacing='0' width='" + tntRCsize253 + "'>" + + "<tr>" + + "<td>" + + "<table style='border:0px;' cellpadding='0' cellspacing='0'>" + + "<tr height='" + tntRCsize8 + "'>" + + "<td colspan='4'></td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCdetailGros'><img src='" + pathToImages + "picto-delai.gif' alt='Picto delai'></td>" + + "<td class='tntRCdetailGros' colspan='3'>Horaires d'ouverture : </td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize30 + "'></td>" + + "<td>" + + "<table class='tntRCHoraire' cellpadding='0' cellspacing='0' rules='all' width='" + tntRCsize218 + "'>" + + "<tr>" + + "<td class='tntRCHoraireJour'>Lundi</td>" + + "<td class='tntRCHoraireHeure'>" + lundi_am + "</td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCHoraireJour'>Mardi</td>" + + "<td class='tntRCHoraireHeure'>" + mardi_am + "</td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCHoraireJour'>Mercredi</td>" + + "<td class='tntRCHoraireHeure'>" + mercredi_am + "</td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCHoraireJour'>Jeudi</td>" + + "<td class='tntRCHoraireHeure'>" + jeudi_am + "</td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCHoraireJour'>Vendredi</td>" + + "<td class='tntRCHoraireHeure'>" + vendredi_am + "</td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCHoraireJour'>Samedi</td>" + + "<td class='tntRCHoraireHeure'>" + samedi_am + "</td>" + + "</tr>" + + "<tr>" + + "<td class='tntRCHoraireJour'>Dimanche</td>" + + "<td class='tntRCHoraireHeure'>" + dimanche_am + "</td>" + + "</tr>" + + "</table>" + + "</td>" + + "<td class='tntRCdetailGros' width='"+ tntRCsize5 + "'></td>" + + "</tr>" + + "</table>" + + "</td>" + + "</tr>" + + "</table>" + + "</td>" + + "</tr>" + + "<tr height='" + tntRCsize8 + "'></tr>" + + "</table>"); + + tntRCdetailRelais.append(tntRCjTableX); + + $('#tntRCDialog').dialog("open"); + $('#tntRCDialog').css("width", "600px"); // Patch mauvais calcul jQueryUI + // Masquage des barres de scrolling + $("html").css({overflow: "hidden", 'overflow-x': "hidden", 'overflow-y': "hidden"}); +}; + +function tntRCligneBlancheDetail(){ + return("<tr height='" + tntRCsize5 + "'><td colspan='8'> </td></tr>"); +}; + +function tntRCligneBlancheGauche(){ + return( + "<tr height='" + tntRCsize8 + "'>"+ + "<td class='tntRCdetailGros' width='" + tntRCsize5 + "'></td>"+ + "<td class='tntRCdetailGros' width='" + tntRCsize30 + "'></td>"+ + "<td class='tntRCdetailGros' width='" + tntRCsize20 + "'></td>"+ + "<td class='tntRCdetailGros' width='" + tntRCsize392 + "'></td>"+ + "</tr>"); +}; + +// Table vide avec 3 colonnes pour sauter une ligne +function tntRCligneBlanche3Col() { + return("<tr height='" + tntRCsize8 + "'><td class='tntRCblanc' width='" + tntRCsize5 + "'></td><td class='tntRCblanc' width='" + tntRCsize789 + "'></td><td class='tntRCblanc' width='" + tntRCsize6 + "'></td></tr>"); +}; + +// Table vide avec 6 colonnes pour sauter une ligne +function tntRCligneBlanche6Col() { + return("<tr height='" + tntRCsize8 + "'><td class='tntRCblanc' colspan='6'></td></td></tr>"); +}; + +// Table vide avec 3 colonnes et entête en gris +function tntRCligneGrise3Col() { + return("<tr><td class='tntRCblanc' width='" + tntRCsize5 + "'></td><td class='tntRCgris' width='" + tntRCsize789 + "'><br/></td><td class='tntRCblanc' width='" + tntRCsize6 + "'></td></tr>"); +}; + +// Table entête de colonnes grises +function tntRCenteteGrise6Col() { + return("<tr><td class='tntRCblanc' width='" + tntRCsize5 + "'></td><td class='tntRCgris' colspan='2' width='" + tntRCsize670 + "'> Les différents Relais Colis®</td><td class='tntRCblanc' width='" + tntRCsize10 + "'></td><td class='tntRCgris' width='" + tntRCsize109 + "'> Mon choix</td><td class='tntRCblanc' width='" + tntRCsize6 + "'></td></tr>"); +}; + +// Zone de saisie d'un code postal nouveau +function tntRCchangerCodePostal(){ + return( + "<div class='tntRCWhite'> </div>"+ + "<div class='tntRCBodySearch'>"+ + "<table>"+ + "<tr>"+ + "<td width='350px'>Vous pouvez choisir un autre code postal de livraison :</td>"+ + "<td width='55px'><input type='text' id='tntRCInputCP' class='tntRCInput' maxlength='5' size='5' value='' /></td>"+ + "<td><a href='#' onclick='tntRCgetCommunesJSON();'><img class='tntRCButton' src='" + pathToImages + "bt-CodePostal-2.jpg' onmouseover='this.src=\"" + pathToImages + "bt-CodePostal-1.jpg\"' onmouseout='this.src=\"" + pathToImages + "bt-CodePostal-2.jpg\"'></a></td>" + + "</tr>"+ + "</table>"+ + "</div>"); +}; + +function tntRCSetSelectedInfo(selectedIdx, noMarkerInfo) { + + if (!selectedIdx && selectedIdx != 0) { + // RAZ des infos sélectionnées + $("#tntRCSelectedCode").val(""); + $("#tntRCSelectedNom").val(""); + $("#tntRCSelectedAdresse").val(""); + $("#tntRCSelectedCodePostal").val(""); + $("#tntRCSelectedCommune").val(""); + return + } + + var oRelais = tntRClisteRelais[selectedIdx]; + + $("#tntRCSelectedCode").val(oRelais[0]); + $("#tntRCSelectedNom").val(oRelais[1]); + $("#tntRCSelectedAdresse").val(oRelais[4]); + $("#tntRCSelectedCodePostal").val(oRelais[2]); + $("#tntRCSelectedCommune").val(oRelais[3]); + var id_cart = document.getElementById("cartRelaisColis").value; + $.ajax({ + type: "POST", + url: "./modules/tntcarrier/relaisColis/postRelaisData.php", + data: "id_cart="+id_cart+"&tntRCSelectedCode="+oRelais[0]+"&tntRCSelectedNom="+oRelais[1]+"&tntRCSelectedAdresse="+oRelais[4]+"&tntRCSelectedCodePostal="+oRelais[2]+"&tntRCSelectedCommune="+oRelais[3] + }); + + if (mapDetected && !noMarkerInfo) { + + // Les noeuds dans le fichier XML ne sont pas forcément ordonnés pour l'affichage, on va donc d'abord récupérer leur valeur + var codeRelais = oRelais[0] + var nomRelais = oRelais[1]; + var adresse = oRelais[4]; + var codePostal = oRelais[2]; + var commune = oRelais[3]; + var heureFermeture = oRelais[21]; + + var messages = ""; + var lundi_am = (oRelais[7] == "-")?",":oRelais[7]+","; + var lundi_pm = oRelais[8]; + var mardi_am = (oRelais[9] == "-")?",":oRelais[9]+","; + var mardi_pm = oRelais[10]; + var mercredi_am = (oRelais[11] == "-")?",":oRelais[11]+","; + var mercredi_pm = oRelais[12]; + var jeudi_am = (oRelais[13] == "-")?",":oRelais[13]+","; + var jeudi_pm = oRelais[14]; + var vendredi_am = (oRelais[15] == "-")?",":oRelais[15]+","; + var vendredi_pm = oRelais[16]; + var samedi_am = (oRelais[17] == "-")?",":oRelais[17]+","; + var samedi_pm = oRelais[18]; + var dimanche_am = (oRelais[19] == "-")?",":oRelais[19]+","; + var dimanche_pm = oRelais[20]; + + if (lundi_pm != "-") lundi_am = lundi_am + lundi_pm; + if (mardi_pm != "-") mardi_am = mardi_am + mardi_pm; + if (mercredi_pm != "-") mercredi_am = mercredi_am + mercredi_pm; + if (jeudi_pm != "-") jeudi_am = jeudi_am + jeudi_pm; + if (vendredi_pm != "-") vendredi_am = vendredi_am + vendredi_pm; + if (samedi_pm != "-") samedi_am = samedi_am + samedi_pm; + if (dimanche_pm != "-") dimanche_am = dimanche_am + dimanche_pm; + + var horaires = new Array(); + horaires['lundi'] = lundi_am + ",1"; + horaires['mardi'] = mardi_am + ",2"; + horaires['mercredi'] = mercredi_am + ",3"; + horaires['jeudi'] = jeudi_am + ",4"; + horaires['vendredi'] = vendredi_am + ",5"; + horaires['samedi'] = samedi_am + ",6"; + horaires['dimanche'] = dimanche_am + ",0"; + + var messages = ""; + for (j=0; j < oRelais[24].length; j++) { + var ligne = oRelais[24][j]; + if (ligne != "") messages = messages + ligne + "<br/>"; + } + + setInfoMarker(codeRelais, nomRelais, adresse, codePostal, commune, messages, selectedIdx, horaires, relaisMarkers[selectedIdx]); + } +} + +function resetMap() { + + if (map) { + + map.getStreetView().setVisible(false); + + for (var i = 0; i < relaisMarkers.length; i++) { + relaisMarkers[i].setMap(null); + relaisMarkers[i] = null; + } + relaisMarkers = new Array(); + if (infowindow) infowindow.close(); + map.setZoom(defaultZoom); + map.setCenter(defaultCenter); + } +} + +/* + * Fonction appellée en retour de la recherche des communes par rapport à un code postal + * si plusieurs communes ont été trouvées + */ + +function listeCommunes(tabCommunes) { + tntRCJsonCommunes = null; + + // TEMP: car le contenu du div est entièrement reconstruit + $("#blocCodePostal").removeClass("tntRCBody"); + + tntRCJsonCommunes = tabCommunes; + tntRCafficheCommunes(tabCommunes); +} + +/* + * Fonction appellée en retour de la recherche des communes par rapport à un code postal + * si une seule commune a été trouvée + */ + +function listeRelais(tabRelais) { + + tntRClisteRelais = null; + + // TEMP: car le contenu du div est entièrement reconstruit + $("#blocCodePostal").removeClass("tntRCBody"); + + tntRCafficheRelais(tabRelais); + if (mapDetected) init_marker(tabRelais); +} + +/* + * Fonction appellée en retour de la recherche des communes si aucune commune trouvée + */ +function erreurListeCommunes() { + tntRCJsonCommunes = null; + tntRCgetRelaisColis(tntRCMsgErrLoadCommunes); +} + +function erreurListeRelais() { + tntRCgetRelaisColis(tntRCMsgErrLoadRelais); +} + + +/************************************************************************************************ + * Partie Google Map + ***********************************************************************************************/ + +var map; +var adresse_pointclic; +var zone_chalandise; +var zoomZoneChalandiseDefault; +var centerZoneChalandiseDefault; +var init_streetview = false; + +var contentTo = [ + '<br/><div>', + 'Itinéraire : <b>Vers ce lieu</b> - <a href="javascript:fromhere(0)">A partir de ce lieu</a><br/>', + 'Lieu de départ<br/>', + '<input type="text" id="saisie" name="saisie" value="" maxlength="500" size="30">', + '<input type="hidden" id="mode" name="mode" value="toPoint">', + '<input type="hidden" id="point_choisi" name="point_choisi" value="">', + '<input type="submit" onclick="popup_roadmap();" value="Ok">', + '<br/>Ex: 58 avenue Leclerc 69007 Lyon', + '</div>'].join(''); + +var contentFrom = [ + '<br/><div>', + 'Itinéraire : <a href="javascript:tohere(0)">Vers ce lieu</a> - <b>A partir de ce lieu</b><br/>', + 'Lieu d\'arrivée<br/>', + '<input type="text" id="saisie" name="saisie" value="" maxlength="500" size="30">', + '<input type="hidden" id="mode" name="mode" value="fromPoint">', + '<input type="hidden" id="point_choisi" name="point_choisi" value="">', + '<input type="button" onclick="popup_roadmap();" value="Ok">', + '<br/>Ex: 58 avenue Leclerc 69007 Lyon', + '</div>'].join(''); + +var infowindow; + +var relaisMarkers = []; +var iconRelais = new google.maps.MarkerImage( + "img/google/relaisColis.png", + new google.maps.Size(40, 30), + new google.maps.Point(0, 0), + new google.maps.Point(20, 30)) + +//Limites de la France +var allowedBounds = new google.maps.LatLngBounds( + new google.maps.LatLng(39.56533418570851, -7.41426946590909), + new google.maps.LatLng(52.88994181429149, 11.84176746590909)); + +var defaultCenter = new google.maps.LatLng(46.2276380, 2.2137490); // the center ??? +var defaultZoom = 5; // default zoom level +var aberration = 0.2; // this value is a good choice for france (?!) +var minMapScale = 5; +//var maxMapScale = 20; + +var mapDetected = false; +var callbackLinkMarker = ""; + +// fonction appellé après saisie du code postal de recherche +function init_marker(json) { + + zone_chalandise = new google.maps.LatLngBounds(); + + for (var i = 0; i < relaisMarkers.length; i++) { + relaisMarkers[i].setMap(null); + relaisMarkers[i] = null; + } + relaisMarkers = new Array(); + + if (infowindow) infowindow.close(); + + var markers = json; + + for (var i = 0; i < markers.length; i++) { + createMarker(markers[i], i); + } + + zoomZoneChalandiseDefault = zone_chalandise.getCenter(); + centerZoneChalandiseDefault = zone_chalandise; + + retourZoomChalandise(); +} + +function setInfoMarker(codeRelais, nomRelais, adresse, codePostal, commune, messages, indice, horaires, marker) { + + var htmlInfo = [ + "<div>", + "<div class='rc'>", + "<b>RELAIS COLIS N° ", codeRelais, "</b><br/>", + "<b>", nomRelais, "</b><br/>", + adresse, "<br/>", + codePostal, " ", commune, + "</div>", + "<div><br/>", messages, "</div>", + callbackLinkMarker, + "</div>", + "<div id='trajet'>" + contentTo + "</div>" + ].join(''); + + // Création du contenu de l'onglet horaire + var htmlHoraires = "<table class='horairesRCPopup'>"; + var jourSemaine = (new Date()).getDay(); + for (jour in horaires) { + var heures = (horaires[jour]).split(","); + if (heures[0] == '' && heures[1] == '') heures[0] = "fermé"; + htmlHoraires = htmlHoraires + "<tr" + (jourSemaine == parseInt(heures[2]) ? " class='selected'" : "") + "><td class='horairesRCJourPopup'> " + jour + "</td><td class='horaireRCPopup'>" + heures[0] + " " + heures[1] + "</td></tr>"; + } + htmlHoraires = htmlHoraires + "</table>"; + + adresse_pointclic = [adresse, "|", codePostal, " ", commune].join(''); + + var contentString = [ + '<div id="tabs" style="width:340px;">', + '<ul>', + '<li><a href="#tabInfos"><span>Infos</span></a></li>', + '<li><a href="#tabHoraires"><span>Horaires</span></a></li>', + '</ul>', + '<div id="tabInfos">', + htmlInfo, + '</div>', + '<div id="tabHoraires">', + htmlHoraires, + '</div>', + '</div>' + ].join(''); + + if (infowindow) infowindow.close(); + infowindow = new google.maps.InfoWindow({content: contentString}); + + google.maps.event.addListener(infowindow, "domready", function() { + $("#point_choisi").attr("value", adresse_pointclic); + $("#tabs").tabs(); + $("#tabs").parent().removeAttr("style"); + }); + + infowindow.open(map, marker); +} + +function createMarker(markerData, indice) { + + var marker = new google.maps.Marker({ + icon: iconRelais, + position: new google.maps.LatLng(markerData[5], markerData[6]), + map: map, + title:markerData[1] + }); + + google.maps.event.addListener(marker, "click", function() { + // Sélectionne le relais correspondant dans la liste + $("input[@type=radio][@name=tntRCchoixRelais]:eq("+ indice + ")").attr("checked", true); + tntRCSetSelectedInfo(indice); + }); + + relaisMarkers.push(marker); + zone_chalandise.extend(marker.getPosition()); +} + + +function tntRCInitMap() { + + // Si la carte n'est pas présente, fin de l'initialisation + if (!document.getElementById("map_canvas")) return; + mapDetected = true; + + // Si une fonction de callback a été définie, un lien est ajouté + // dans la popup d'info du marqueur de relais colis + if (window.callbackSelectionRelais) callbackLinkMarker = "<a onclick='callbackSelectionRelais();' href='#' style='color:#FF6600'>Choisir ce relais</a>"; + + //Ajout du lien pour retour en zoom zone de chalandise + var jMapCanvas = $("#map_canvas"); + jMapCanvas.wrap("<div></div>"); + jMapCanvas.parent().append("<a class=\"lien_reset\" href=\"#\" onclick=\"javascript:retourZoomChalandise();\" style=\"text-decoration:none;\">Retour à la vue initiale</a>"); + + var mapClass = jMapCanvas.attr("class"); + if (mapClass && mapClass != "") { + jMapCanvas.attr("class", ""); + jMapCanvas.parent().attr("class", mapClass); + } + + var myOptions = { + zoom: defaultZoom, + center: defaultCenter, + mapTypeId: google.maps.MapTypeId.ROADMAP, + navigationControl: true, + scaleControl: true, + mapTypeControl: true, + streetViewControl: true + }; + + map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); + + // If the map position is out of range, move it back + function checkBounds() { + + // Perform the check and return if OK + var currentBounds = map.getBounds(); + var cSpan = currentBounds.toSpan(); // width and height of the bounds + var offsetX = cSpan.lng() / (2+aberration); // we need a little border + var offsetY = cSpan.lat() / (2+aberration); + var C = map.getCenter(); // current center coords + var X = C.lng(); + var Y = C.lat(); + + // now check if the current rectangle in the allowed area + var checkSW = new google.maps.LatLng(C.lat()-offsetY,C.lng()-offsetX); + var checkNE = new google.maps.LatLng(C.lat()+offsetY,C.lng()+offsetX); + + if (allowedBounds.contains(checkSW) && + allowedBounds.contains(checkNE)) { + return; // nothing to do + } + + var AmaxX = allowedBounds.getNorthEast().lng(); + var AmaxY = allowedBounds.getNorthEast().lat(); + var AminX = allowedBounds.getSouthWest().lng(); + var AminY = allowedBounds.getSouthWest().lat(); + + if (X < (AminX+offsetX)) {X = AminX + offsetX;} + if (X > (AmaxX-offsetX)) {X = AmaxX - offsetX;} + if (Y < (AminY+offsetY)) {Y = AminY + offsetY;} + if (Y > (AmaxY-offsetY)) {Y = AmaxY - offsetY;} + + map.setCenter(new google.maps.LatLng(Y,X)); + return; + } + + google.maps.event.addListener(map, "drag", function() { + checkBounds(); + }); + + google.maps.event.addListener(map, "zoom_changed", function() { + if (map.getZoom() < minMapScale) { + map.setZoom(minMapScale); + } + }); + + google.maps.event.addListener(map.getStreetView(), "visible_changed", function() { + //premier accès lors du chargement de la page, il ne faut pas cacher les markers + if (init_streetview == true) { + if(map.getStreetView().getVisible() == true) { + for (var k = 0; k < relaisMarkers.length; k++) { + relaisMarkers[k].setVisible(false); + } + } + else { + for (var k = 0; k < relaisMarkers.length; k++) { + relaisMarkers[k].setVisible(true); + } + } + } + else init_streetview = true; + }); +} + +function retourZoomChalandise() { + if(zoomZoneChalandiseDefault){ + map.setCenter(zoomZoneChalandiseDefault); + map.fitBounds(centerZoneChalandiseDefault); + } +} + +function fromhere() { + switchFromTo(contentFrom); +} + +function tohere() { + switchFromTo(contentTo); +} + +function switchFromTo(htmlContent) { + var adresse_saisie = $("#saisie").val(); + $("#trajet").html(htmlContent); + $("#point_choisi").attr('value', adresse_pointclic); + $("#saisie").val(adresse_saisie); +} + +function popup_roadmap() { + if($("#saisie").val() == "") return; + window.open("http://" + tntDomain + "/public/geolocalisation/print_roadmap.do?mode="+ $("#mode").val() +"&point_choisi="+ $("#point_choisi").val() +"&saisie="+ $("#saisie").val()); +} + +$().ready(tntB2CRelaisColis); \ No newline at end of file diff --git a/modules/tntcarrier/relaisColis/postRelaisData.php b/modules/tntcarrier/relaisColis/postRelaisData.php new file mode 100644 index 000000000..78f677bc5 --- /dev/null +++ b/modules/tntcarrier/relaisColis/postRelaisData.php @@ -0,0 +1,22 @@ +<?php + +require('../../../config/config.inc.php'); + +$code = $_POST['tntRCSelectedCode']; +$name = $_POST['tntRCSelectedNom']; +$address = $_POST['tntRCSelectedAdresse']; +$zipcode = $_POST['tntRCSelectedCodePostal']; +$city = $_POST['tntRCSelectedCommune']; +$id_cart = $_POST['id_cart']; + +$data = Db::getInstance()->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'tnt_carrier_drop_off` WHERE `id_cart` = "'.(int)($id_cart).'"'); +if (count($data) > 0) +{ + echo "ok"; + Db::getInstance()->Execute('UPDATE `'._DB_PREFIX_.'tnt_carrier_drop_off` SET `code` = "'.$code.'", `name` = "'.$name.'", + `address` = "'.$address.'", `zipcode` = "'.$zipcode.'", `city` = "'.$city.'" WHERE `id_cart` = "'.(int)($id_cart).'"'); +} +else + Db::getInstance()->ExecuteS('INSERT INTO `'._DB_PREFIX_.'tnt_carrier_drop_off` (`id_cart`, `code`, `name`, `address`, `zipcode`, `city`) + VALUES ("'.(int)($id_cart).'", "'.$code.'", "'.$name.'", "'.$address.'", "'.$zipcode.'", "'.$city.'")'); +?> \ No newline at end of file diff --git a/modules/tntcarrier/relaisColis/relaisColis.php b/modules/tntcarrier/relaisColis/relaisColis.php new file mode 100644 index 000000000..8f13504ec --- /dev/null +++ b/modules/tntcarrier/relaisColis/relaisColis.php @@ -0,0 +1,64 @@ +<?php +require('../../../config/config.inc.php'); +$relais = Db::getInstance()->getValue('SELECT c.id_carrier + FROM `'._DB_PREFIX_.'carrier` as c, `'._DB_PREFIX_.'tnt_carrier_option` as o + WHERE c.id_carrier = o.id_carrier + AND o.option LIKE "%D" + AND c.external_module_name = "tntcarrier" + AND c.deleted = "0" AND c.id_carrier = "'.(int)($_GET['id_carrier']).'"'); + if ($relais) + { +?> + <script type="text/javascript"> + $("#form").submit(function() + { + if ($("#tntRCSelectedCode").val() == '') + { + alert("Vous n'avez pas choisi de relais colis"); + return false; + } + } + ); + </script> + <script type="text/javascript" src="./modules/tntcarrier/relaisColis/js/jquery.js"></script> + <script type="text/javascript" src="./modules/tntcarrier/relaisColis/js/jquery-ui.js"></script> + <script type="text/javascript" src="./modules/tntcarrier/relaisColis/js/relaisColis.js"></script> + <link rel="stylesheet" href="./modules/tntcarrier/relaisColis/css/ui.tabs.css" type="text/css" /> + <link rel="stylesheet" href="./modules/tntcarrier/relaisColis/css/ui.dialog.css" type="text/css" /> + <link rel="stylesheet" href="./modules/tntcarrier/relaisColis/css/tntB2CRelaisColis.css" type="text/css" /> + <div id="tntB2CRelaisColis" class="exemplePresentation"> + <script type="text/javascript"> + tntB2CRelaisColis(); + </script> + </div> + <div style="text-align: justify; font-family: arial,helvetica,sans-serif; font-size: 10pt; width: 600px;"> + <div style="height: 25px;"> </div> + <div id="exempleIntegration"> + <script type="text/javascript"> + function callbackSelectionRelais() { + + // Récupération des informations + var codeRelais = $("#tntRCSelectedCode").val(); + var nom = $("#tntRCSelectedNom").val(); + var adresse = $("#tntRCSelectedAdresse").val(); + var codePostal = $("#tntRCSelectedCodePostal").val(); + var commune = $("#tntRCSelectedCommune").val(); + + if (!codeRelais || codeRelais == "") { + alert("Aucun relais n'a été sélectionné !"); + } + else { + alert("Info relais sélectionné"+ + "\nCode\t\t: " + codeRelais + + "\nNom\t\t: " + nom + + "\nAdresse\t\t: " + adresse + + "\nCode postal\t: " + codePostal + + "\nCommune\t\t: " + commune); + } + } + </script> + </div> + </div> +<?php +} +?> \ No newline at end of file diff --git a/modules/tntcarrier/relaisColis/tntRelais.php b/modules/tntcarrier/relaisColis/tntRelais.php new file mode 100644 index 000000000..19d66dcd1 --- /dev/null +++ b/modules/tntcarrier/relaisColis/tntRelais.php @@ -0,0 +1,94 @@ +<script type="text/javascript" src="./modules/tntcarrier/relaisColis/js/jquery-ui.js"></script> +<script type="text/javascript" src="./modules/tntcarrier/relaisColis/js/relaisColis.js"></script> +<script type="text/javascript"> + function tntRCgetCommunes() { + + $("#tntRCError").hide(); + tntRCcodePostal = $('#tntRCInputCP').val(); + if (tntRCcodePostal=="") return; + if (isNaN(parseInt(tntRCcodePostal)) || tntRCcodePostal.length != 5) { + tntRCgetRelaisColis(tntRCMsgErrCodePostal); + return; + } + + tntRCsetChargementEnCours(); + + var ajaxUrl; + var ajaxData; + + ajaxUrl = "http://" + tntDomain + "/public/b2c/relaisColis/rechercheJson.do?code=" + tntRCcodePostal; + ajaxData = ""; + + $.ajax({ + type: "GET", + url: ajaxUrl, + data: ajaxData, + dataType: "script", + error:function(msg){ + $("#blocCodePostal").html("Error !: " + msg ); + } + }); +}; +</script> +<link rel="stylesheet" href="./modules/tntcarrier/relaisColis/css/ui.tabs.css" type="text/css" /> +<link rel="stylesheet" href="./modules/tntcarrier/relaisColis/css/ui.dialog.css" type="text/css" /> +<link rel="stylesheet" href="./modules/tntcarrier/relaisColis/css/tntB2CRelaisColis.css" type="text/css" /> +<div id="tntB2CRelaisColis" class="exemplePresentation"> + <div id="tntRCblocEntete"> + <div class="tntRCHeader">Mode de livraison</div> + <div class="tntRCSubHeader"> + Choisissez le Relais Colis + <sup class="tntRCSup">®</sup> + qui vous convient : + </div> + <input id="tntRCSelectedCode" type="hidden" value="C2219"> + <input id="tntRCSelectedNom" type="hidden" value="MALCO COIFFURE"> + <input id="tntRCSelectedAdresse" type="hidden" value="12 RUE LAME"> + <input id="tntRCSelectedCodePostal" type="hidden" value="78100"> + <input id="tntRCSelectedCommune" type="hidden" value="ST GERMAIN EN LAYE"> + </div> + <div class="tntRCBody" id="blocCodePostal"> + <div class="tntRCGray"> </div> + <div id="tntBodyContentSC"> + <table> + <tbody> + <tr> + <td>Entrez le code postal : </td> + <td><input type="text" value="" size="5" maxlength="5" class="tntRCInput" id="tntRCInputCP"></td> + <td><a onclick="tntRCgetCommunes();" href="#"> + <img onmouseout="./modules/tntcarrier/relaisColis/img/bt-OK-2.jpg"" onmouseover="./modules/tntcarrier/relaisColis/img/bt-OK-1.jpg"" src="./modules/tntcarrier/relaisColis/img/bt-OK-2.jpg" class="tntRCButton"></a> + </td> + </tr> + </tbody> + </table> + </div> + <div style="display:none;" id="tntRCLoading">Chargement en cours...</div> + <div style="display:none;" class="tntRCError" id="tntRCError"></div> + </div> +</div> +<div style="text-align: justify; font-family: arial,helvetica,sans-serif; font-size: 10pt; width: 600px;"> + <div style="height: 25px;"> </div> + <div id="exempleIntegration"> + <script type="text/javascript"> + function callbackSelectionRelais() { + var codeRelais = $("#tntRCSelectedCode").val(); + var nom = $("#tntRCSelectedNom").val(); + var adresse = $("#tntRCSelectedAdresse").val(); + var codePostal = $("#tntRCSelectedCodePostal").val(); + var commune = $("#tntRCSelectedCommune").val(); + + if (!codeRelais || codeRelais == "") { + alert("Aucun relais n'a été sélectionné !"); + } + else { + alert("Info relais sélectionné"+ + "\nCode\t\t: " + codeRelais + + "\nNom\t\t: " + nom + + "\nAdresse\t\t: " + adresse + + "\nCode postal\t: " + codePostal + + "\nCommune\t\t: " + commune); + } + } + </script> + </div> +</div> \ No newline at end of file diff --git a/modules/tntcarrier/serviceBase.xml b/modules/tntcarrier/serviceBase.xml new file mode 100644 index 000000000..5980c8053 --- /dev/null +++ b/modules/tntcarrier/serviceBase.xml @@ -0,0 +1,92 @@ +<serviceTNT> + <service> + <name>8:00 Express</name> + <description>1-3 days before 8:00 AM</description> + <descriptionfr>1-3 jours avant 8h00</descriptionfr> + <option>N</option> + </service> + <service> + <name>9:00 Express</name> + <description>1-3 days before 9:00 AM</description> + <descriptionfr>1-3 jours avant 9h00</descriptionfr> + <option>A</option> + </service> + <service> + <name>10:00 Express</name> + <description>1-3 days before 10:00 AM</description> + <descriptionfr>1-3 jours avant 10h00</descriptionfr> + <option>T</option> + </service> + <service> + <name>12:00 Express</name> + <description>1-3 days before 12:00 AM</description> + <descriptionfr>1-3 jours avant 12h00</descriptionfr> + <option>M</option> + </service> + <service> + <name>Express</name> + <description>Express</description> + <descriptionfr>Express</descriptionfr> + <option>J</option> + </service> + <service> + <name>8:00 Express</name> + <description>1-3 days before 8:00 AM to home</description> + <descriptionfr>1-3 jours avant 8h00 domicile</descriptionfr> + <option>NZ</option> + </service> + <service> + <name>9:00 Express</name> + <description>1-3 days before 9:00 AM to home</description> + <descriptionfr>1-3 jours avant 9h00 domicile</descriptionfr> + <option>AZ</option> + </service> + <service> + <name>10:00 Express</name> + <description>1-3 days before 10:00 AM to home</description> + <descriptionfr>1-3 jours avant 10h00 domicile</descriptionfr> + <option>TZ</option> + </service> + <service> + <name>12:00 Express</name> + <description>1-3 days before 12:00 AM to home</description> + <descriptionfr>1-3 jours avant 12h00 domicile</descriptionfr> + <option>MZ</option> + </service> + <service> + <name>Express</name> + <description>Express to home</description> + <descriptionfr>Express domicile</descriptionfr> + <option>JZ</option> + </service> + <service> + <name>8:00 Express</name> + <description>1-3 days before 8:00 AM relay package</description> + <descriptionfr>1-3 jours avant 8h00 au relais colis</descriptionfr> + <option>ND</option> + </service> + <service> + <name>9:00 Express</name> + <description>1-3 days before 9:00 AM relay package</description> + <descriptionfr>1-3 jours avant 9h00 au relais colis</descriptionfr> + <option>AD</option> + </service> + <service> + <name>10:00 Express</name> + <description>1-3 days before 10:00 AM relay package</description> + <descriptionfr>1-3 jours avant 10h00 au relais colis</descriptionfr> + <option>TD</option> + </service> + <service> + <name>12:00 Express</name> + <description>1-3 days before 12:00 AM relay package</description> + <descriptionfr>1-3 jours avant 12h00 au relais colis</descriptionfr> + <option>MD</option> + </service> + <service> + <name>Express</name> + <description>Express relay package</description> + <descriptionfr>Express au relais colis</descriptionfr> + <option>JD</option> + </service> +</serviceTNT> \ No newline at end of file diff --git a/modules/tntcarrier/sql-install.php b/modules/tntcarrier/sql-install.php new file mode 100644 index 000000000..e898f7a9d --- /dev/null +++ b/modules/tntcarrier/sql-install.php @@ -0,0 +1,42 @@ +<?php + + // Init + $sql = array(); + + $sql[] = 'CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'tnt_carrier_option` ( + `id_option` int(10) NOT NULL AUTO_INCREMENT, + `option` varchar(5) DEFAULT NULL, + `id_carrier` int(10) DEFAULT NULL, + `additionnal_charges` double(6,2) DEFAULT NULL, + PRIMARY KEY (`id_option`) + ) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8;'; + + $sql[] = 'CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'tnt_carrier_cache_service` ( + `id_card` int(11) NOT NULL, + `code` varchar(5) NOT NULL, + `date` datetime NOT NULL, + `zipcode` varchar(10) DEFAULT NULL + ) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8;'; + + $sql[] = 'CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'tnt_carrier_drop_off` ( + `id_cart` int(10) NOT NULL, + `code` varchar(10) DEFAULT NULL, + `name` text DEFAULT NULL, + `address` text DEFAULT NULL, + `zipcode` varchar(10) DEFAULT NULL, + `city` text DEFAULT NULL + ) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8;'; + + $sql[] = 'CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'tnt_carrier_shipping_number` ( + `id_order` int(10) NOT NULL, + `shipping_number` varchar(32) NOT NULL + ) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8;'; + + $sql[] = 'CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'tnt_carrier_weight` ( + `id_weight` int(10) NOT NULL AUTO_INCREMENT, + `weight_min` double(6,2) DEFAULT NULL, + `weight_max` double(6,2) DEFAULT NULL, + `additionnal_charges` double(6,2) DEFAULT NULL, + PRIMARY KEY (`id_weight`) + ) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8;'; +?> diff --git a/modules/tntcarrier/sql-uninstall.php b/modules/tntcarrier/sql-uninstall.php new file mode 100644 index 000000000..c8d0cf73b --- /dev/null +++ b/modules/tntcarrier/sql-uninstall.php @@ -0,0 +1,11 @@ +<?php + + // Init + $sql = array(); + $sql[] = 'DROP TABLE IF EXISTS `'._DB_PREFIX_.'tnt_carrier_option`;'; + $sql[] = 'DROP TABLE IF EXISTS `'._DB_PREFIX_.'tnt_carrier_weight`;'; + $sql[] = 'DROP TABLE IF EXISTS `'._DB_PREFIX_.'tnt_carrier_drop_off`;'; + $sql[] = 'DROP TABLE IF EXISTS `'._DB_PREFIX_.'tnt_carrier_shipping_number`;'; + $sql[] = 'DROP TABLE IF EXISTS `'._DB_PREFIX_.'tnt_carrier_cache_service`;'; + +?> diff --git a/modules/tntcarrier/tntGetDepot.php b/modules/tntcarrier/tntGetDepot.php new file mode 100644 index 000000000..3ec254ba3 --- /dev/null +++ b/modules/tntcarrier/tntGetDepot.php @@ -0,0 +1,121 @@ +<?php +include( '../../config/config.inc.php' ); + +function genAuth($username, $password) + { + return sprintf(' + <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> + <wsse:UsernameToken> + <wsse:Username>%s</wsse:Username> + <wsse:Password>%s</wsse:Password> + </wsse:UsernameToken> + </wsse:Security>', htmlspecialchars($username), htmlspecialchars($password)); + } + +function getDepot($soapclient, $code) +{ + $services = $soapclient->tntDepots(array('department' => $code)); + return ($services); +} + +if (!Configuration::get('TNT_CARRIER_LOGIN') || !Configuration::get('TNT_CARRIER_PASSWORD') || !Configuration::get('TNT_CARRIER_NUMBER_ACCOUNT')) + echo '<span style="color:red">No account found</span>'; +else +{ + $code = $_GET['code']; + $authheader = genAuth(Configuration::get('TNT_CARRIER_LOGIN'), Configuration::get('TNT_CARRIER_PASSWORD')); + $authvars = new SoapVar($authheader, XSD_ANYXML); + $header = new SoapHeader("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", "Security", $authvars); + $file = "http://www.tnt.fr/service/?wsdl"; + + try { + $soapclient = new SoapClient($file, array('trace'=>1)); + $soapclient->__setSOAPHeaders(array($header)); + $follow = getDepot($soapclient, $code); + } + catch( SoapFault $e ) { + $erreur = $e->faultstring; + echo $erreur; + } + catch( Exception $e ) { + $erreur = "Problem : follow failed"; + } + if (isset($follow)) + { + //var_dump($follow->DepotInfo); + $v = $follow->DepotInfo; + if (!is_array($follow->DepotInfo)) + echo " + <input type='hidden' id='tntRCSelectedCode' value='$v->pexCode'/> + <input type='hidden' id='tntRCSelectedNom' value='$v->name'/> + <input type='hidden' id='tntRCSelectedAdresse' value='$v->address1'/> + <input type='hidden' id='tntRCSelectedAdresse2' value='$v->address2'/> + <input type='hidden' id='tntRCSelectedCodePostal' value='$v->zipCode'/> + <input type='hidden' id='tntRCSelectedCommune' value='$v->city'/>"; + else + echo " + <input type='hidden' id='tntRCSelectedCode' /> + <input type='hidden' id='tntRCSelectedNom' /> + <input type='hidden' id='tntRCSelectedAdresse' /> + <input type='hidden' id='tntRCSelectedAdresse2' /> + <input type='hidden' id='tntRCSelectedCodePostal' /> + <input type='hidden' id='tntRCSelectedCommune' />"; + echo " + <table width='480px' cellspacing='0' cellpadding='0' style='border:1px solid gray;'> + <tbody> + <tr height='8px'> + <td class='tntRCblanc' colspan='6'></td> + </tr> + <tr> + <td class='tntRCblanc' width='5px'></td> + <td class='tntRCgris' colspan='2'> Agences TNT</td>"; + if (is_array($follow->DepotInfo)) + echo "<td class='tntRCgris'>Choix</td>"; + else + echo "<td></td>"; + echo " + <td class='tntRCblanc' width='5px'></td> + </tr>"; + if (is_array($follow->DepotInfo)) + foreach ($follow->DepotInfo as $key => $v) + { + echo" + <tr> + <td class='tntRCblanc' ></td> + <td class='tntRCblanc' ><img src='../modules/tntcarrier/img/logo-tnt-petit.jpg'></td> + <td class='tntRCrelaisColis'> $v->name $v->address1 $v->address2 <br/>$v->zipCode $v->city</td> + <td><input type='radio' name='depotTnt' value='$key' onclick='changeValueTntRC(\"$v->pexCode\", \"$v->name\", \"$v->address1\", \"$v->address2\", \"$v->zipCode\", \"$v->city\")'/></td> + <td class='tntRCblanc' ></td> + </tr> + <tr><td class='tntRCblanc'></td><td class='tntRCrelaisColis' colspan='2'>$v->message</td><td class='tntRCblanc' ></td></tr> + <tr id='tntRcDetail'> + <td class='tntRCblanc'></td> + <td></td> + <td></td> + <td></td> + <td class='tntRCblanc'></td> + </tr>"; + } + else + echo" + <tr> + <td class='tntRCblanc' ></td> + <td class='tntRCblanc' ><img src='../modules/tntcarrier/img/logo-tnt-petit.jpg'></td> + <td class='tntRCrelaisColis'> $v->name $v->address1 $v->address2 <br/>$v->zipCode $v->city</td> + <td></td> + <td class='tntRCblanc' ></td> + </tr> + <tr><td class='tntRCblanc'></td><td class='tntRCrelaisColis' colspan='2'>$v->message</td><td class='tntRCblanc' ></td></tr> + <tr id='tntRcDetail'> + <td class='tntRCblanc'></td> + <td></td> + <td></td> + <td></td> + <td class='tntRCblanc'></td> + </tr>"; + echo " + </table> + "; + } +} +?> \ No newline at end of file diff --git a/modules/tntcarrier/tntcarrier.php b/modules/tntcarrier/tntcarrier.php new file mode 100644 index 000000000..e6049085d --- /dev/null +++ b/modules/tntcarrier/tntcarrier.php @@ -0,0 +1,945 @@ +<?php +// Avoid direct access to the file +require_once(_PS_MODULE_DIR_."/tntcarrier/classes/PackageTnt.php"); +require_once(_PS_MODULE_DIR_."/tntcarrier/classes/TntWebService.php"); +require_once(_PS_MODULE_DIR_."/tntcarrier/classes/OrderInfoTnt.php"); +require_once(_PS_MODULE_DIR_."/tntcarrier/classes/serviceCache.php"); + +if (!defined('_PS_VERSION_')) + exit; + +class TntCarrier extends CarrierModule +{ + public $id_carrier; + + private $_html = ''; + private $_postErrors = array(); + private $_moduleName = 'tntcarrier'; + private $_fieldsList = array(); + + /* + ** Construct Method + ** + */ + + public function __construct() + { + $this->name = 'tntcarrier'; + $this->tab = 'shipping_logistics'; + $this->version = '1.0'; + $this->author = 'PrestaShop'; + $this->limited_countries = array('fr'); + + parent::__construct (); + + $this->displayName = $this->l('TNT Express'); + $this->description = $this->l('Offer your customers, different delivery methods with TNT'); + + if (self::isInstalled($this->name)) + { + global $cookie; + $warning = array(); + $this->loadingVar(); + $carriers = Carrier::getCarriers($cookie->id_lang, true, false, false, null, PS_CARRIERS_AND_CARRIER_MODULES_NEED_RANGE); + + foreach ($this->_fieldsList as $keyConfiguration => $name) + if (!Configuration::get($keyConfiguration) && !empty($name)) + $warning[] = '\''.$name.'\' '; + + // Saving id carrier list + $id_carrier_list = array(); + foreach($carriers as $carrier) + $id_carrier_list[] .= $carrier['id_carrier']; + + if (count($warning)) + $this->warning .= implode(' , ',$warning).$this->l('must be configured to use this module correctly.').' '; + } + } + + public function loadingVar() + { + // Loading Fields List + $this->_fieldsList = array( + 'TNT_CARRIER_LOGIN' => $this->l('TNT Login'), + 'TNT_CARRIER_PASSWORD' => $this->l('TNT Password'), + 'TNT_CARRIER_NUMBER_ACCOUNT' => $this->l('TNT Number Account'), + 'TNT_CARRIER_SHIPPING_COMPANY' => '', + 'TNT_CARRIER_SHIPPING_LASTNAME' => '', + 'TNT_CARRIER_SHIPPING_FIRSTNAME' => '', + 'TNT_CARRIER_SHIPPING_ADDRESS1' => '', + 'TNT_CARRIER_SHIPPING_ADDRESS2' => '', + 'TNT_CARRIER_SHIPPING_ZIPCODE' => '', + 'TNT_CARRIER_SHIPPING_CITY' => '', + 'TNT_CARRIER_SHIPPING_EMAIL' => '', + 'TNT_CARRIER_SHIPPING_PHONE' => '', + 'TNT_CARRIER_SHIPPING_CLOSING' => '', + 'TNT_CARRIER_SHIPPING_DELIVERY' => '', + 'TNT_CARRIER_SHIPPING_COLLECT' => '', + 'TNT_CARRIER_SHIPPING_PEX' => '', + 'TNT_CARRIER_PRINT_STICKER' => '', + 'TNT_CARRIER_CORSE_OVERCOST' => '' + ); + + $option = Db::getInstance()->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'tnt_carrier_option`'); + foreach($option as $k => $v) + { + $this->_fieldsList['TNT_CARRIER_'.$v['option'].'_ID'] = (float)($v['id_carrier']); + $this->_fieldsList['TNT_CARRIER_'.$v['option'].'_OVERCOST'] = Configuration::get('TNT_CARRIER_'.$v['option'].'_OVERCOST'); + } + } + /* + ** Install / Uninstall Methods + ** + */ + + public function install() + { + // Install SQL + include(dirname(__FILE__).'/sql-install.php'); + foreach ($sql as $s) + if (!Db::getInstance()->Execute($s)) + return false; + // Install Module + if (!parent::install() OR !$this->registerHook('updateCarrier') OR !$this->registerHook('orderDetailDisplayed') OR !$this->registerHook('adminOrder') or !$this->registerHook('extraCarrier')) + return false; + if (file_exists('../modules/'.$this->_moduleName.'/serviceBase.xml')) + { + $serviceList = simplexml_load_file('../modules/'.$this->_moduleName.'/serviceBase.xml'); + if ($serviceList == false) + return false; + } + foreach($serviceList as $k => $v) + { + $carrierConfig = array( + 'name' => $v->name, + 'id_tax_rules_group' => 0, + 'active' => true, + 'deleted' => true, + 'shipping_handling' => false, + 'range_behavior' => 0, + 'delay' => array('fr' => $v->descriptionfr, 'en' => $v->description), + 'id_zone' => 1, + 'is_module' => true, + 'shipping_external' => true, + 'external_module_name' => $this->_moduleName, + 'need_range' => true + ); + $id_carrier = $this->installExternalCarrier($carrierConfig); + Configuration::updateValue('TNT_CARRIER_'.$v->option.'_ID', (int)($id_carrier)); + Db::getInstance()->ExecuteS('INSERT INTO `'._DB_PREFIX_.'tnt_carrier_option` (`option`, `id_carrier`) VALUES ("'.$v->option.'", "'.(int)$id_carrier.'")'); + } + return true; + } + + public static function installExternalCarrier($config) + { + $carrier = new Carrier(); + $carrier->name = $config['name']; + $carrier->id_tax_rules_group = $config['id_tax_rules_group']; + $carrier->id_zone = $config['id_zone']; + $carrier->active = $config['active']; + $carrier->deleted = $config['deleted']; + $carrier->delay = $config['delay']; + $carrier->shipping_handling = $config['shipping_handling']; + $carrier->range_behavior = $config['range_behavior']; + $carrier->is_module = $config['is_module']; + $carrier->shipping_external = $config['shipping_external']; + $carrier->external_module_name = $config['external_module_name']; + $carrier->need_range = $config['need_range']; + + $languages = Language::getLanguages(true); + foreach ($languages as $language) + { + if ($language['iso_code'] == 'fr') + $carrier->delay[(int)$language['id_lang']] = $config['delay'][$language['iso_code']]; + if ($language['iso_code'] == 'en') + $carrier->delay[(int)$language['id_lang']] = $config['delay'][$language['iso_code']]; + if ($language['iso_code'] == Language::getIsoById(Configuration::get('PS_LANG_DEFAULT'))) + $carrier->delay[(int)$language['id_lang']] = $config['delay'][$language['iso_code']]; + } + + if ($carrier->add()) + { + $groups = Group::getGroups(true); + foreach ($groups as $group) + Db::getInstance()->autoExecute(_DB_PREFIX_.'carrier_group', array('id_carrier' => (int)($carrier->id), 'id_group' => (int)($group['id_group'])), 'INSERT'); + + $rangePrice = new RangePrice(); + $rangePrice->id_carrier = $carrier->id; + $rangePrice->delimiter1 = '0'; + $rangePrice->delimiter2 = '10000'; + $rangePrice->add(); + + $rangeWeight = new RangeWeight(); + $rangeWeight->id_carrier = $carrier->id; + $rangeWeight->delimiter1 = '0'; + $rangeWeight->delimiter2 = '10000'; + $rangeWeight->add(); + + $zones = Zone::getZones(true); + foreach ($zones as $zone) + { + Db::getInstance()->autoExecute(_DB_PREFIX_.'carrier_zone', array('id_carrier' => (int)($carrier->id), 'id_zone' => (int)($zone['id_zone'])), 'INSERT'); + Db::getInstance()->autoExecuteWithNullValues(_DB_PREFIX_.'delivery', array('id_carrier' => (int)($carrier->id), 'id_range_price' => (int)($rangePrice->id), 'id_range_weight' => null, 'id_zone' => (int)($zone['id_zone']), 'price' => '0'), 'INSERT'); + Db::getInstance()->autoExecuteWithNullValues(_DB_PREFIX_.'delivery', array('id_carrier' => (int)($carrier->id), 'id_range_price' => null, 'id_range_weight' => (int)($rangeWeight->id), 'id_zone' => (int)($zone['id_zone']), 'price' => '0'), 'INSERT'); + } + + // Copy Logo + if (!copy(dirname(__FILE__).'/carrier.jpg', _PS_SHIP_IMG_DIR_.'/'.(int)$carrier->id.'.jpg')) + return false; + + // Return ID Carrier + return (int)($carrier->id); + } + + return false; + } + + public function uninstall() + { + // Uninstall Carriers + Db::getInstance()->autoExecute(_DB_PREFIX_.'carrier', array('deleted' => 1), 'UPDATE', '`external_module_name` = \'tntcarrier\''); + // Uninstall Config + foreach ($this->_fieldsList as $keyConfiguration => $name) + if (!Configuration::deleteByName($keyConfiguration)) + return false; + // Uninstall SQL + include(dirname(__FILE__).'/sql-uninstall.php'); + foreach ($sql as $s) + if (!Db::getInstance()->Execute($s)) + return false; + // Uninstall Module + if (!parent::uninstall() OR !$this->unregisterHook('updateCarrier')) + return false; + return true; + } + + /* + ** Form Config Methods + ** + */ + + public function getContent() + { + $this->_html .= '<h2><a href="http://www.tnt.fr/"><img src="'.$this->_path.'logo.gif" alt="' . $this->l('TNT Carrier').'" /></a></h2>'; + if (!empty($_POST) AND Tools::isSubmit('submitSave')) + { + $this->_postValidation(); + if (!sizeof($this->_postErrors)) + $this->_postProcess(); + else + foreach ($this->_postErrors AS $err) + $this->_html .= '<div class="alert error"><img src="'._PS_IMG_.'admin/forbbiden.gif" alt="nok" /> '.$err.'</div>'; + } + $this->_displayForm(); + return $this->_html; + } + + private function _displayForm() + { + global $smarty; + + $globalVar = array( + 'tab' => Tools::getValue('tab'), + 'configure' => Tools::getValue('configure'), + 'token' => Tools::getValue('token'), + 'tab_module' => Tools::getValue('tab_module'), + 'module_name' => Tools::getValue('module_name')); + + $smarty->assign('glob', $globalVar); + + $lang = array( + 'followParameters' => $this->l('The following parameters were provided to you by TNT'), 'registered' => $this->l('If you are not yet registered, click '), 'here' => $this->l('here'), + 'accountSetting' => $this->l('Account settings'), 'shippingSetting' => $this->l('Shipping Settings'), 'serviceSetting' => $this->l('Service Settings'), + 'accountTNT' => $this->l('Account TNT'), 'login' => $this->l('Login'), 'password' => $this->l('Password'), 'numberAccount' => $this->l('Number account'), + 'fillDataInTheForm' => $this->l('Fill Data in the form'), 'shipping' => $this->l('Shipping'), 'collect' => $this->l('Would you like TNT to pick up your package ?'), 'noDeposit' => $this->l('No (Deposit)'), + 'yes' => $this->l('Yes'), 'chooseYourDepositoryLocation' => $this->l('Choose your depository location'), 'pexCode' => $this->l('Pex Code'), 'companyName' => $this->l('Company Name'), + 'lastName' => $this->l('Last name'), 'firstName' => $this->l('First name'), 'address1' => $this->l('Address line 1'), 'address2' => $this->l('Address line 2'), 'zip' => $this->l('Zip / Postal Code'), 'city' => $this->l('Your City'), + 'email' => $this->l('Your Email Address'), 'phone' => $this->l('Your Phone Number'), 'closingTime' => $this->l('Your Closing Time'), 'saturdayDelivery' => $this->l('Saturday Delivery'), 'no' => $this->l('No'), + 'labelFormatPrinting' => $this->l('Label Format for printing (This Label will have to be sticked on the package)'), 'a4printing' => $this->l('A4 printing'), 'withoutPrintingLogoTNT' => $this->l('without printing the logo TNT'), 'withReversePrint' => $this->l('with a reverse print'), 'withoutPrintingLogoTNTWithReversePrint' => $this->l('without printing the logo TNT and with a reverse print'), + 'newService' => $this->l('New Service'), 'id' => $this->l('ID'), 'name' => $this->l('Name'), 'description' => $this->l('Description'), 'code' => $this->l('Code'), 'additionnalCharge' => $this->l('Additionnal charge (Euros)'), 'activated' => $this->l('Activated'), 'edit' => $this->l('edit'), 'delete' => $this->l('delete'), 'place' => $this->l('Place') + ); + + $smarty->assign('lang', $lang); + + $this->_html .= '<fieldset> + <legend>'.$this->l('TNT Carrier Module Status').'</legend>'; + + $alert = array(); + if (!Configuration::get('TNT_CARRIER_LOGIN') || !Configuration::get('TNT_CARRIER_PASSWORD') || !Configuration::get('TNT_CARRIER_NUMBER_ACCOUNT')) + $alert['account'] = 1; + if ( + !Configuration::get('TNT_CARRIER_SHIPPING_ADDRESS1') || + !Configuration::get('TNT_CARRIER_SHIPPING_ZIPCODE') || + !Configuration::get('TNT_CARRIER_SHIPPING_CITY') || + !Configuration::get('TNT_CARRIER_SHIPPING_EMAIL') || + !Configuration::get('TNT_CARRIER_SHIPPING_PHONE')) + $alert['shipping'] = 1; + if ((Db::getInstance()->getValue('SELECT * FROM `'._DB_PREFIX_.'carrier` WHERE `external_module_name` = "'.$this->_moduleName.'" AND deleted = "0"')) < 1) + $alert['service'] = 1; + if (!count($alert)) + $this->_html .= '<img src="'._PS_IMG_.'admin/module_install.png" /><strong>'.$this->l('TNT Carrier is configured and online!').'</strong>'; + else + { + $this->_html .= '<img src="'._PS_IMG_.'admin/warn2.png" /><strong>'.$this->l('TNT Carrier is not configured yet, please:').'</strong>'; + $this->_html .= '<br />'.(isset($alert['account']) ? '<img src="'._PS_IMG_.'admin/warn2.png" />' : '<img src="'._PS_IMG_.'admin/module_install.png" />').' '.$this->l('Make sure you have a tnt account.'); + $this->_html .= '<br />'.(isset($alert['shipping']) ? '<img src="'._PS_IMG_.'admin/warn2.png" />' : '<img src="'._PS_IMG_.'admin/module_install.png" />').' '.$this->l('Make sure you have a correct shipping address.'); + $this->_html .= '<br />'.(isset($alert['service']) ? '<img src="'._PS_IMG_.'admin/warn2.png" />' : '<img src="'._PS_IMG_.'admin/module_install.png" />').' '.$this->l('Make sure services are activated after a bill.'); + } + + $this->_html .= '</fieldset><div class="clear"> </div>'; + $this->_html .= $this->_displayFormConfig(); + } + + private function _displayFormConfig() + { + global $smarty; + $var = array('account' => $this->_displayFormAccount(), 'shipping' => $this->_displayFormShipping(), 'service' => $this->_displayService(), + 'country' => $this->_displayCountry('Corse'), 'info' => $this->_displayInfo('weight')); + $smarty->assign('varMain', $var); + $html = $this->display( __FILE__, 'tpl/main.tpl' ); + if (isset($_GET['id_tab'])) + $html .= '<script> + $(".menuTabButton.selected").removeClass("selected"); + $("#menuTab'.Tools::getValue('id_tab').'").addClass("selected"); + $(".tabItem.selected").removeClass("selected"); + $("#menuTab'.Tools::getValue('id_tab').'Sheet").addClass("selected"); + </script>'; + return $html; + } + + private function _displayFormAccount() + { + global $smarty; + $var = array('login' => Tools::getValue('tnt_carrier_login', Configuration::get('TNT_CARRIER_LOGIN')), 'password' => Tools::getValue('tnt_carrier_password', Configuration::get('TNT_CARRIER_PASSWORD')), + 'account' => Tools::getValue('tnt_carrier_number_account', Configuration::get('TNT_CARRIER_NUMBER_ACCOUNT'))); + $smarty->assign('varAccount', $var); + return $this->display( __FILE__, 'tpl/accountForm.tpl' ); + } + + private function _displayFormShipping() + { + global $cookie, $smarty; + + $var = array('moduleName' => $this->_moduleName, 'collect' => Configuration::get('TNT_CARRIER_SHIPPING_COLLECT'), 'pex' => Configuration::get('TNT_CARRIER_SHIPPING_PEX'), 'company' => Configuration::get('TNT_CARRIER_SHIPPING_COMPANY'), + 'lastName' => Configuration::get('TNT_CARRIER_SHIPPING_LASTNAME'), 'firstName' => Configuration::get('TNT_CARRIER_SHIPPING_FIRSTNAME'), 'address1' => Configuration::get('TNT_CARRIER_SHIPPING_ADDRESS1'), + 'address2' => Configuration::get('TNT_CARRIER_SHIPPING_ADDRESS2'), 'zipCode' => Configuration::get('TNT_CARRIER_SHIPPING_ZIPCODE'), 'city' => Configuration::get('TNT_CARRIER_SHIPPING_CITY'), 'email' => Configuration::get('TNT_CARRIER_SHIPPING_EMAIL'), + 'phone' => Configuration::get('TNT_CARRIER_SHIPPING_PHONE'), 'closing' => Configuration::get('TNT_CARRIER_SHIPPING_CLOSING'), 'delivery' => Configuration::get('TNT_CARRIER_SHIPPING_DELIVERY'), 'sticker' => Configuration::get('TNT_CARRIER_PRINT_STICKER')); + $smarty->assign('varShipping', $var); + return $this->display( __FILE__, 'tpl/shippingForm.tpl' ); + } + + private function _displayService() + { + global $smarty; + if (Tools::getValue('action') == 'del' && Tools::getValue('service') != '') + { + $id = Tools::getValue('service'); + Db::getInstance()->Execute('UPDATE `'._DB_PREFIX_.'carrier` SET `deleted` = "1" WHERE `id_carrier` = '.(int)($id).''); + $option = Db::getInstance()->ExecuteS('SELECT `option` FROM `'._DB_PREFIX_.'tnt_carrier_option` WHERE `id_carrier` = "'.(int)($id).'"'); + Db::getInstance()->Execute('DELETE FROM `'._DB_PREFIX_.'tnt_carrier_option` WHERE `id_carrier` = '.(int)($id).''); + Configuration::deleteByName('TNT_CARRIER_'.$option[0]['option'].'_ID'); + Configuration::deleteByName('TNT_CARRIER_'.$option[0]['option'].'_OVERCOST'); + } + $irow = 0; + $serviceList = Db::getInstance()->ExecuteS('SELECT c.deleted, c.name, cl.delay, o.option + FROM `'._DB_PREFIX_.'carrier` c, `'._DB_PREFIX_.'carrier_lang` cl, `'._DB_PREFIX_.'tnt_carrier_option` o , `'._DB_PREFIX_.'lang` l + WHERE c.external_module_name = "'.$this->_moduleName.'" AND c.id_carrier = cl.id_carrier AND cl.id_lang = l.id_lang AND l.iso_code = "'.Language::getIsoById(Configuration::get('PS_LANG_DEFAULT')).'" AND o.id_carrier = c.id_carrier'); + foreach ($serviceList as $k => $v) + { + $serviceList[$k]['optionId'] = Configuration::get('TNT_CARRIER_'.$v['option'].'_ID'); + $serviceList[$k]['optionOvercost'] = Configuration::get('TNT_CARRIER_'.$v['option'].'_OVERCOST'); + } + + $var = array('serviceList' => $serviceList, + 'action' => Tools::getValue('action'), + 'section' => Tools::getValue('section'), + 'form' => $this->_displayFormService(Tools::getValue('service'))); + $smarty->assign('varService', $var); + return $this->display( __FILE__, 'tpl/service.tpl' ); + } + + private function _displayInfo($cat) + { + if (Tools::getValue('action') == 'del' && Tools::getValue($cat) != '') + { + $id = Tools::getValue($cat); + Db::getInstance()->ExecuteS('DELETE FROM `'._DB_PREFIX_.'tnt_carrier_'.$cat.'` WHERE `id_'.$cat.'` = '.(int)$id.''); + } + + $html = ' + <a href="index.php?tab='.Tools::getValue('tab').'&configure='.Tools::getValue('configure').'&token='.Tools::getValue('token').'&tab_module='.Tools::getValue('tab_module').'&module_name='.Tools::getValue('module_name').'&id_tab=3§ion='.$cat.'&action=new"> + <img src="../img/admin/add.gif" alt="add"/> '.$this->l('New weight option').'</a></br><br/> + <table class="table" cellspacing="0" cellpading="0"> + <tr> + <th>'.$this->l('ID').'</th><th>'.$this->l('Weight Min').'</th><th>'.$this->l('Weight Max').'</th><th>'.$this->l('Additionnal charge (Euros)').'</th><th></th> + </tr>'; + $List = Db::getInstance()->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'tnt_carrier_'.$cat.'` ORDER BY `id_'.$cat.'`'); + $irow = 0; + foreach ($List as $v) + { + $html .= '<tr '.($irow++ % 2 ? 'class="alt_row"' : '').'> + <td>'.$v['id_'.$cat.''].'</td> + <td>'.$v[''.$cat.'_min'].'</td> + <td>'.$v[''.$cat.'_max'].'</td> + <td>'.$v['additionnal_charges'].'</td> + <td> + <a href="index.php?tab='.Tools::getValue('tab').'&configure='.Tools::getValue('configure').'&token='.Tools::getValue('token').'&tab_module='.Tools::getValue('tab_module').'&module_name='.Tools::getValue('module_name').'&id_tab=3§ion='.$cat.'&action=edit&'.$cat.'='.$v['id_'.$cat.''].'"> + <img src="../img/admin/edit.gif" alt="edit" title="'.$this->l('Edit').'"/></a> + <a href="index.php?tab='.Tools::getValue('tab').'&configure='.Tools::getValue('configure').'&token='.Tools::getValue('token').'&tab_module='.Tools::getValue('tab_module').'&module_name='.Tools::getValue('module_name').'&id_tab=3§ion='.$cat.'&action=del&'.$cat.'='.$v['id_'.$cat.''].'"> + <img src="../img/admin/delete.gif" alt="delete" title="'.$this->l('Delete').'"/></a></td> + </tr>'; + } + $html .= ' + </table><br/> + <div id="divForm'.$cat.'Service">'.((Tools::getValue('action') == 'edit' || Tools::getValue('action') == 'new') && Tools::getValue('section') == $cat ? $this->_displayFormInfo($cat, Tools::getValue($cat)) : '').'</div> + '; + + return $html; + } + + private function _displayCountry($country) + { + global $smarty; + + $var = array( + 'country' => $country, + 'overcost' => Configuration::get('TNT_CARRIER_'.strtoupper($country).'_OVERCOST'), + 'action' => Tools::getValue('action'), + 'section' => Tools::getValue('section'), + 'getCountry' => Tools::getValue('country'), + 'form' => (Tools::getValue('country') != '' ? $this->_displayFormCountry(Tools::getValue('country')) : '') + ); + $smarty->assign('varCountry', $var); + return $this->display( __FILE__, 'tpl/country.tpl' ); + } + + private function _displayFormService($id = null) + { + global $smarty; + $name = ''; + $description = ''; + $code = ''; + $charge = ''; + $display = ''; + + if ($id != null) + { + $service = Db::getInstance()->ExecuteS('SELECT c.deleted, c.name, l.delay, o.option, o.additionnal_charges + FROM `'._DB_PREFIX_.'carrier` c, `'._DB_PREFIX_.'carrier_lang` l, `'._DB_PREFIX_.'tnt_carrier_option` o + WHERE c.id_carrier = "'.(int)$id.'" AND c.id_carrier = l.id_carrier AND l.id_lang = "1" AND o.id_carrier = c.id_carrier'); + if ($service != NULL) + { + $name = $service[0]['name']; + $description = $service[0]['delay']; + $code = $service[0]['option']; + $charge = $service[0]['additionnal_charges']; + $display = $service[0]['deleted']; + } + } + $var = array('id' => $id,'name' => $name, 'description' => $description, 'code' => $code, 'charge' => $charge, 'display' => $display); + $smarty->assign('varServiceForm', $var); + return $this->display( __FILE__, 'tpl/serviceForm.tpl' ); + } + + private function _displayFormInfo($cat, $id = null) + { + $info_min = ''; + $info_max = ''; + $charge = ''; + + if ($id != null) + { + $info = Db::getInstance()->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'tnt_carrier_'.$cat.'` WHERE `id_'.$cat.'` = "'.$id.'"'); + $info_min = $info[0][$cat.'_min']; + $info_max = $info[0][$cat.'_max']; + $charge = $info[0]['additionnal_charges']; + } + + $html = ' + <form action="index.php?tab='.Tools::getValue('tab').'&configure='.Tools::getValue('configure').'&token='.Tools::getValue('token').'&tab_module='.Tools::getValue('tab_module').'&module_name='.Tools::getValue('module_name').'&id_tab=3§ion='.$cat.'&action=new" method="post" class="form" id="configForm'.$cat.'"> + '.($id != null ? '<input type="hidden" name="'.$cat.'_id" value="'.$id.'"/>' : '').' + <table class="table" cellspacing="0" cellpadding="0"> + <tr> + <th>'.$this->l('Weight min').'</th><th>'.$this->l('Weight max').'</th><th>'.$this->l('Additionnal charge').'</th><th></th> + </tr> + <tr> + <td><input type="text" name="tnt_carrier_'.$cat.'_min" size="20" value="'.$info_min.'"/></td> + <td><input type="text" name="tnt_carrier_'.$cat.'_max" size="20" value="'.$info_max.'"/></td> + <td><input type="text" name="tnt_carrier_'.$cat.'_charge" size="10" value="'.$charge.'"/></td> + <td><input class="button" name="submitSave" type="submit"></td> + </tr> + </table> + </form>'; + + return $html; + } + + private function _displayFormCountry($country) + { + global $smarty; + $var = array( + 'country' => $country, + 'overcost' => Configuration::get('TNT_CARRIER_'.strtoupper($country).'_OVERCOST') + ); + $smarty->assign('varCountryForm', $var); + return $this->display( __FILE__, 'tpl/countryForm.tpl' ); + } + + private function _postValidation() + { + if (Tools::getValue('section') == 'account') + $this->_postValidationAccount(); + elseif (Tools::getValue('section') == 'shipping') + $this->_postValidationShipping(); + elseif (Tools::getValue('section') == 'service') + $this->_postValidationService(); + elseif (Tools::getValue('section') == 'weight') + $this->_postValidationInfo(Tools::getValue('section')); + elseif (Tools::getValue('section') == 'country') + $this->_postValidationCountry(); + } + + private function _postProcess() + { + + } + + private function _postValidationAccount() + { + $login = Tools::getValue('tnt_carrier_login'); + $password = Tools::getValue('tnt_carrier_password'); + $number = Tools::getValue('tnt_carrier_number_account'); + if (!$login || !$password || !$number) + $this->_postErrors[] = $this->l("All the fields are required"); + Configuration::updateValue('TNT_CARRIER_LOGIN', $login); + Configuration::updateValue('TNT_CARRIER_PASSWORD', $password); + Configuration::updateValue('TNT_CARRIER_NUMBER_ACCOUNT', $number); + } + + private function _postValidationShipping() + { + $collect = $email = Tools::getValue('tnt_carrier_shipping_collect'); + $company = Tools::getValue('tnt_carrier_shipping_company'); + $pex = Tools::getValue('tnt_carrier_shipping_pex'); + $lname = Tools::getValue('tnt_carrier_shipping_last_name'); + $fname = Tools::getValue('tnt_carrier_shipping_first_name'); + $address1 = Tools::getValue('tnt_carrier_shipping_address1'); + $address2 = Tools::getValue('tnt_carrier_shipping_address2'); + $postal_code = Tools::getValue('tnt_carrier_shipping_postal_code'); + $city = Tools::getValue('tnt_carrier_shipping_city'); + $email = Tools::getValue('tnt_carrier_shipping_email'); + $phone = Tools::getValue('tnt_carrier_shipping_phone'); + $closing = Tools::getValue('tnt_carrier_shipping_closing'); + $delivery = Tools::getValue('tnt_carrier_shipping_delivery'); + $print = Tools::getValue('tnt_carrier_print_sticker'); + + if (!$collect && $pex == '') + $this->_postErrors[] = $this->l("The pex code is missing"); + if ($collect && $company == '') + $this->_postErrors[] = $this->l("Your company name is missing"); + if ($collect && !$lname) + $this->_postErrors[] = $this->l("Your last name is missing"); + if ($collect && !$fname) + $this->_postErrors[] = $this->l("Your first name is missing"); + if (!$address1) + $this->_postErrors[] = $this->l("Your address is missing"); + if (!$postal_code) + $this->_postErrors[] = $this->l("Your zip code is missing"); + if (!$email) + $this->_postErrors[] = $this->l("Your email address is missing"); + if (!$phone) + $this->_postErrors[] = $this->l("Your phone number is missing"); + if ($collect && $closing == '') + $this->_postErrors[] = $this->l("Your closing time is missing"); + + Configuration::updateValue('TNT_CARRIER_SHIPPING_COLLECT', $collect); + Configuration::updateValue('TNT_CARRIER_SHIPPING_COMPANY', $company); + Configuration::updateValue('TNT_CARRIER_SHIPPING_LASTNAME', $lname); + Configuration::updateValue('TNT_CARRIER_SHIPPING_FIRSTNAME', $fname); + Configuration::updateValue('TNT_CARRIER_SHIPPING_ADDRESS1', $address1); + Configuration::updateValue('TNT_CARRIER_SHIPPING_ADDRESS2', $address2); + Configuration::updateValue('TNT_CARRIER_SHIPPING_ZIPCODE', $postal_code); + Configuration::updateValue('TNT_CARRIER_SHIPPING_CITY', $city); + Configuration::updateValue('TNT_CARRIER_SHIPPING_EMAIL', $email); + Configuration::updateValue('TNT_CARRIER_SHIPPING_PHONE', $phone); + Configuration::updateValue('TNT_CARRIER_SHIPPING_CLOSING', $closing); + Configuration::updateValue('TNT_CARRIER_SHIPPING_DELIVERY', $delivery); + Configuration::updateValue('TNT_CARRIER_SHIPPING_PEX', $pex); + Configuration::updateValue('TNT_CARRIER_PRINT_STICKER', $print); + } + + private function _postValidationService() + { + if (Tools::getValue('action') == 'new' && Tools::getValue('service_id') != null ) + $this->_postValidationEditService(); + elseif (Tools::getValue('action') == 'new' && Tools::getValue('service_id') == null) + $this->_postValidationNewService(); + } + + private function _postValidationInfo($cat) + { + if (Tools::getValue('action') == 'new' && Tools::getValue($cat.'_id') != null ) + $this->_postValidationEditInfo($cat); + elseif (Tools::getValue('action') == 'new' && Tools::getValue($cat.'_id') == null) + $this->_postValidationNewInfo($cat); + } + + private function _postValidationNewService() + { + $name = Tools::getValue('tnt_carrier_service_name'); + $description = Tools::getValue('tnt_carrier_service_description'); + $code = Tools::getValue('tnt_carrier_service_code'); + $charge = Tools::getValue('tnt_carrier_service_charge'); + $display = Tools::getValue('tnt_carrier_service_display'); + + if ($name == '') + $this->_postErrors[] = $this->l('You have to give a name service'); + if ($code == '') + $this->_postErrors[] = $this->l('You have to give a code service'); + if ($description == '') + $this->_postErrors[] = $this->l('You have to give a description of the service'); + if ($display == '1') + $delete = false; + else + $delete = true; + + if (!$this->_postErrors) + { + $carrierConfig = array( + 'name' => $name, + 'id_tax_rules_group' => 0, + 'active' => true, + 'deleted' => $delete, + 'shipping_handling' => false, + 'range_behavior' => 0, + 'delay' => array('fr' => $description, 'en' => $description, Language::getIsoById(Configuration::get('PS_LANG_DEFAULT')) => $description), + 'id_zone' => 1, + 'is_module' => true, + 'shipping_external' => true, + 'external_module_name' => $this->_moduleName, + 'need_range' => true + ); + $id_carrier = $this->installExternalCarrier($carrierConfig); + + Db::getInstance()->autoExecute(_DB_PREFIX_.'tnt_carrier_option', + array('id_carrier' => (int)($id_carrier), + 'option' => $code, + 'additionnal_charges' => (float)($charge)),'INSERT'); + Configuration::updateValue('TNT_CARRIER_'.$code.'_ID', (int)($id_carrier)); + Configuration::updateValue('TNT_CARRIER_'.$code.'_OVERCOST', (float)($charge)); + $this->_fieldsList['TNT_CARRIER_'.$code.'_OVERCOST'] = (float)($charge); + $this->_fieldsList['TNT_CARRIER_'.$code.'_ID'] = (float)($id_carrier); + $this->_html .= $this->displayConfirmation($this->l('Service updated')); + } + } + + private function _postValidationEditService() + { + $id = Tools::getValue('service_id'); + $name = Tools::getValue('tnt_carrier_service_name'); + $description = Tools::getValue('tnt_carrier_service_description'); + $code = Tools::getValue('tnt_carrier_service_code'); + $charge = Tools::getValue('tnt_carrier_service_charge'); + $display = Tools::getValue('tnt_carrier_service_display'); + + if ($name == '') + $this->_postErrors[] = $this->l('You have to give a name service'); + if ($code == '') + $this->_postErrors[] = $this->l('You have to give a code service'); + if ($description == '') + $this->_postErrors[] = $this->l('You have to give a description of the service'); + if ($display == '1') + $display = '0'; + else + $display = '1'; + + if (!$this->_postErrors) + { + Db::getInstance()->Execute('UPDATE `'._DB_PREFIX_.'carrier` SET `name` = "'.$name.'", `deleted` = "'.(int)($display).'" WHERE `id_carrier` = '.(int)($id).''); + Db::getInstance()->Execute('UPDATE `'._DB_PREFIX_.'carrier_lang` SET `delay` = "'.$description.'" WHERE `id_carrier` = '.(int)($id).''); + Db::getInstance()->Execute('UPDATE `'._DB_PREFIX_.'tnt_carrier_option` SET `option` = "'.$code.'" WHERE `id_carrier` = '.(int)($id).''); + Configuration::updateValue('TNT_CARRIER_'.$code.'_OVERCOST', (float)($charge)); + Configuration::updateValue('TNT_CARRIER_'.$code.'_ID', (int)($id)); + $this->_fieldsList['TNT_CARRIER_'.$code.'_OVERCOST'] = (float)($charge); + $this->_fieldsList['TNT_CARRIER_'.$code.'_ID'] = (float)($id); + $this->_html .= $this->displayConfirmation($this->l('Service updated')); + } + } + + private function _postValidationNewInfo($cat) + { + $info_min = Tools::getValue('tnt_carrier_'.$cat.'_min'); + $info_max = Tools::getValue('tnt_carrier_'.$cat.'_max'); + $charge = Tools::getValue('tnt_carrier_'.$cat.'_charge'); + Db::getInstance()->autoExecute(_DB_PREFIX_.'tnt_carrier_'.$cat.'', + array( + ''.$cat.'_min' => (float)($info_min), + ''.$cat.'_max' => (float)($info_max), + 'additionnal_charges' => (float)($charge)),'INSERT'); + $this->_html .= $this->displayConfirmation($this->l('Service updated')); + } + + private function _postValidationEditInfo($cat) + { + $id = Tools::getValue($cat.'_id'); + $info_min = Tools::getValue('tnt_carrier_'.$cat.'_min'); + $info_max = Tools::getValue('tnt_carrier_'.$cat.'_max'); + $charge = Tools::getValue('tnt_carrier_'.$cat.'_charge'); + + Db::getInstance()->Execute('UPDATE `'._DB_PREFIX_.'tnt_carrier_'.$cat.'` + SET `'.$cat.'_min` = "'.(float)($info_min).'", + `'.$cat.'_max` = "'.(float)($info_max).'", + `additionnal_charges` = "'.(float)$charge.'" + WHERE `id_'.$cat.'` = '.(int)($id).''); + + $this->_html .= $this->displayConfirmation($this->l('Service updated')); + } + + private function _postValidationCountry() + { + $country = Tools::getValue('tnt_carrier_country'); + $overcost = Tools::getValue('tnt_carrier_'.$country.'_overcost'); + + Configuration::updateValue('TNT_CARRIER_'.strtoupper($country).'_OVERCOST', $overcost); + } + + /* + ** Hook update carrier + ** + */ + public function hookextraCarrier($params) + { + global $smarty; + $id_cart = $params['cart']->id; + $smarty->assign('id_cart', $id_cart); + return $this->display( __FILE__, 'tpl/relaisColis.tpl' ); + } + + public function hookadminOrder($params) + { + global $currentIndex, $smarty; + $table = 'order'; + $token = Tools::getValue('token'); + $errorShipping = 0; + + $carrierName = Db::getInstance()->ExecuteS('SELECT c.external_module_name FROM `'._DB_PREFIX_.'carrier` as c, `'._DB_PREFIX_.'orders` as o WHERE c.id_carrier = o.id_carrier AND o.id_order = "'.(int)($params['id_order']).'"'); + if ($carrierName!= null && $carrierName[0]['external_module_name'] != $this->_moduleName) + return false; + if (!Configuration::get('TNT_CARRIER_LOGIN') || !Configuration::get('TNT_CARRIER_PASSWORD') || !Configuration::get('TNT_CARRIER_NUMBER_ACCOUNT')) + { + $var = array("error" => $this->l("You don't have a TNT account"), + 'shipping_numbers' => '', + 'sticker' => ''); + $smarty->assign('var', $var); + return $this->display( __FILE__, 'tpl/shippingNumber.tpl' ); + } + if (Configuration::get('TNT_CARRIER_SHIPPING_COLLECT')) + { + if (!Configuration::get('TNT_CARRIER_SHIPPING_COMPANY') || !Configuration::get('TNT_CARRIER_SHIPPING_ADDRESS1') || !Configuration::get('TNT_CARRIER_SHIPPING_ZIPCODE') || !Configuration::get('TNT_CARRIER_SHIPPING_CITY') || !Configuration::get('TNT_CARRIER_SHIPPING_EMAIL') + || !Configuration::get('TNT_CARRIER_SHIPPING_PHONE') || !Configuration::get('TNT_CARRIER_SHIPPING_CLOSING')) + $errorShipping = 1; + } + else + { + if (!Configuration::get('TNT_CARRIER_SHIPPING_PEX') || !Configuration::get('TNT_CARRIER_SHIPPING_ADDRESS1') || !Configuration::get('TNT_CARRIER_SHIPPING_ZIPCODE') || !Configuration::get('TNT_CARRIER_SHIPPING_CITY') || !Configuration::get('TNT_CARRIER_SHIPPING_EMAIL') + || !Configuration::get('TNT_CARRIER_SHIPPING_PHONE')) + $errorShipping = 1; + } + if ($errorShipping) + { + $var = array("error" => $this->l("You didn't give a collect address in the TNT module configuration"), + 'shipping_numbers' => '', + 'sticker' => ''); + $smarty->assign('var', $var); + return $this->display( __FILE__, 'tpl/shippingNumber.tpl' ); + } + + $orderInfoTnt = new OrderInfoTnt((int)($params['id_order'])); + $info = $orderInfoTnt->getInfo(); + if (!is_array($info) && $info != false) + { + $var = array("error" => $info, "weight" => '', + "weightHidden" => '1', "date" => '', "dateHidden" => '1', 'currentIndex' => $currentIndex, 'table' => $table, 'token' => $token); + $smarty->assign('var', $var); + return $this->display( __FILE__, 'tpl/formerror.tpl' ); + } + $dataWeight = (int)(Tools::getValue('weightErrorOrder')); + if ($dataWeight != 0) + $info[1]['weight'][0] = $dataWeight; + $pack = new PackageTnt((int)($params['id_order'])); + if ($info[0]['shipping_number'] == '' && $pack->getOrder()->hasBeenShipped()) + { + $tntWebService = new TntWebService(); + try + { + $package = $tntWebService->getPackage($info); + } + catch( SoapFault $e ) + { + if (strrpos($e->faultstring, "weight")) + $weightError = 1; + if (strrpos($e->faultstring, "shippingDate")) + $dateError = date("Y-m-d"); + $error = $this->l("Problem : ") . $e->faultstring; + $var = array("error" => $error, "weight" => (isset($weightError) ? $weightError : ''), "weightHidden" => (!isset($weightError) ? $info[1]['weight'] : ''), + "date" => (isset($dateError) ? $dateError : ''), "dateHidden" => (!isset($dateError) ? $info[2]['delivery_date'] : ''), + 'currentIndex' => $currentIndex, 'table' => $table, 'token' => $token); + $smarty->assign('var', $var); + return $this->display( __FILE__, 'tpl/formerror.tpl' ); + } + catch( Exception $e ) { + $error = $this->l("Problem : failed"); + } + if (isset($package->Expedition->parcelResponses->parcelNumber)) + $pack->setShippingNumber($package->Expedition->parcelResponses->parcelNumber); + else + foreach ($package->Expedition->parcelResponses as $k => $v) + $pack->setShippingNumber($v->parcelNumber); + file_put_contents("../modules/".$this->_moduleName.'/pdf/'.$pack->getOrder()->shipping_number.'.pdf', $package->Expedition->PDFLabels); + } + if ($pack->getShippingNumber() != '') + { + $var = array( + 'lang_shippingNumber' => $this->l('The shipping number(s)'), 'lang_sticker' => $this->l('The sticker'), 'lang_expedition' => $this->l('Expedition'), + 'error' => '', + 'shipping_numbers' => $pack->getShippingNumber(), + 'sticker' => "../modules/".$this->_moduleName.'/pdf/'.$pack->getOrder()->shipping_number.'.pdf', + 'date' => $info[2]['delivery_date'], + 'place' => Configuration::get('TNT_CARRIER_SHIPPING_ADDRESS1')." ".Configuration::get('TNT_CARRIER_SHIPPING_ADDRESS2')."<br/>".Configuration::get('TNT_CARRIER_SHIPPING_ZIPCODE')." ".$this->putCityInNormeTnt(Configuration::get('TNT_CARRIER_SHIPPING_CITY'))); + $smarty->assign('var', $var); + return $this->display( __FILE__, 'tpl/shippingNumber.tpl' ); + } + return false; + } + + public function hookorderDetailDisplayed($params) + { + global $smarty; + + $tab = $params['order']->getFields(); + $shipping_number = $tab['shipping_number']; + $id_carrier = $tab['id_carrier']; + $erreur = null; + $follow = array(); + $carrierName = Db::getInstance()->ExecuteS('SELECT external_module_name FROM `'._DB_PREFIX_.'carrier` WHERE `id_carrier` = "'.(int)($id_carrier).'"'); + if ($carrierName != null && $carrierName[0]['external_module_name'] == $this->_moduleName && $shipping_number != '') + { + $pack = new PackageTnt($params['order']->id); + $numbers = $pack->getShippingNumber(); + $smarty->assign('numbers', $numbers); + return $this->display( __FILE__, 'tpl/waitingFollow.tpl' ); + } + } + + public function hookupdateCarrier($params) + { + } + + /* + ** Front Methods + ** + ** If you set need_range at true when you created your carrier (in install method), the method called by the cart will be getOrderShippingCost + ** If not, the method called will be getOrderShippingCostExternal + ** + ** $params var contains the cart, the customer, the address + ** $shipping_cost var contains the price calculated by the range in carrier tab + ** + */ + + public function getOrderShippingCost($params, $shipping_cost) + { + if ((int)(Tools::getValue('step')) > 2) + serviceCache::deleteServices($params->id); + $product = $params->getProducts(); + $weight = 0; + $add = 0; + $id_customer = $params->id_customer; + $date_exp = $params->date_upd; + $id_adress_delivery = $params->id_address_delivery; + + foreach($product as $k => $v) + $weight += (float)($v['weight']); + + if ((int)(Tools::getValue('step')) == 2) + { + if (!Configuration::get('TNT_CARRIER_LOGIN') || !Configuration::get('TNT_CARRIER_PASSWORD') || !Configuration::get('TNT_CARRIER_NUMBER_ACCOUNT')) + return false; + if (!Configuration::get('TNT_CARRIER_SHIPPING_ADDRESS1') || !Configuration::get('TNT_CARRIER_SHIPPING_ZIPCODE') || !Configuration::get('TNT_CARRIER_SHIPPING_CITY')) + return false; + $info = Db::getInstance()->ExecuteS('SELECT postcode, city, company FROM `'._DB_PREFIX_.'address` WHERE `id_address` = "'.(int)($id_adress_delivery).'"'); + + $serviceCache = new serviceCache($params->id, $info[0]['postcode']); + if (!$serviceCache->getFaisabilityAtThisTime()) + { + $serviceCache->deletePreviousServices(); + $tntWebService = new TntWebService(); + if (date("N") == 6) + $date_exp = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")+2, date("Y"))); + elseif (date("N") == 7) + $date_exp = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")+1, date("Y"))); + try { + $service = $tntWebService->faisabilite($date_exp, Configuration::get('TNT_CARRIER_SHIPPING_ZIPCODE'), $this->putCityInNormeTnt(Configuration::get('TNT_CARRIER_SHIPPING_CITY')), + $info[0]['postcode'], $this->putCityInNormeTnt($info[0]['city']), ($info[0]['company'] != '' ? "ENTERPRISE" : 'INDIVIDUAL')); + $serviceRelais = $tntWebService->faisabilite($date_exp, Configuration::get('TNT_CARRIER_SHIPPING_ZIPCODE'), $this->putCityInNormeTnt(Configuration::get('TNT_CARRIER_SHIPPING_CITY')), + $info[0]['postcode'], $this->putCityInNormeTnt($info[0]['city']), "DROPOFFPOINT"); + } + catch( SoapFault $e ) { + $erreur = $this->l("Problem : ") . $e->faultstring; + } + catch( Exception $e ) { + $erreur = $this->l("Problem : follow failed"); + } + if (!isset($erreur)) + $serviceCache->putInCache($service, $serviceRelais); + } + $service = $serviceCache->getServices(); + if ($service != NULL) + foreach ($service as $v) + { + if (Configuration::get('TNT_CARRIER_'.$v['code'].'_ID')) + if (Configuration::get('TNT_CARRIER_'.$v['code'].'_ID') == $this->id_carrier) + $priceCarrier = Configuration::get('TNT_CARRIER_'.$v['code'].'_OVERCOST'); + } + } + if (!isset($priceCarrier)) + { + if (isset($params->id_carrier) && (int)($params->id_carrier) > 0) + { + if ($option = Db::getInstance()->ExecuteS('SELECT `option` FROM `'._DB_PREFIX_.'tnt_carrier_option` WHERE `id_carrier` = "'.(int)($params->id_carrier).'"')) + $priceCarrier = Configuration::get('TNT_CARRIER_'.$option[0]['option'].'_OVERCOST'); + } + else + $priceCarrier = 0; + } + + $weightLimit = Db::getInstance()->ExecuteS('SELECT additionnal_charges FROM `'._DB_PREFIX_.'tnt_carrier_weight` WHERE `weight_min` < "'.(float)($weight).'" AND `weight_max` > "'.(float)($weight).'"'); + $currency = Db::getInstance()->ExecuteS('SELECT conversion_rate FROM `'._DB_PREFIX_.'currency` WHERE `id_currency` = "'.(int)($params->id_currency).'"'); + if ($weightLimit != null) + $add += (float)($weightLimit[0]['additionnal_charges']); + if (substr($info[0]['postcode'], 0, 2) == "20") + $add += (float)(Configuration::get('TNT_CARRIER_CORSE_OVERCOST')); + + if (isset($priceCarrier)) + return (($priceCarrier + $add) * $currency[0]['conversion_rate']); + return false; + } + + public function getOrderShippingCostExternal($params) + { + return getOrderShippingCost($params, null); + } + + public function putCityInNormeTnt($city) + { + $city = iconv("utf-8", 'ASCII//TRANSLIT', $city); + $city = mb_strtoupper($city, 'utf-8'); + $table = array('`' => '','\''=> '', '^' => '','À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E', + 'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', + 'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B'); + $city = strtr($city, $table); + $old = array("SAINT", "-"); + $new = array("ST", " "); + return (str_replace($old, $new, $city)); + } +} \ No newline at end of file diff --git a/modules/tntcarrier/tpl/accountForm.tpl b/modules/tntcarrier/tpl/accountForm.tpl new file mode 100644 index 000000000..1a0818398 --- /dev/null +++ b/modules/tntcarrier/tpl/accountForm.tpl @@ -0,0 +1,14 @@ +<!--<div id="ajaxAnswer" style="float:right;text-align:center;width:50%;margin-top:100px"></div>--> +<p>{$lang.followParameters}. {$lang.registered} <a style="color:blue;text-decoration:underline" href="https://www.tnt.fr/public/utilisateurs/adminExt/new.do">{$lang.here}</a></p> + <form action="index.php?tab={$glob.tab}&configure={$glob.configure}&token={$glob.token}&tab_module={$glob.tab_module}&module_name={$glob.module_name}&id_tab=1§ion=account" method="post" class="form" id="configFormAccount"> + <fieldset style="border: 0px;"> + <h4>{$lang.accountTNT} :</h4> + <label>{$lang.login} : </label> + <div class="margin-form"><input type="text" size="20" name="tnt_carrier_login" value="{$varAccount.login}" /></div> + <label>{$lang.password} : </label> + <div class="margin-form"><input type="password" size="20" name="tnt_carrier_password" value="{$varAccount.password}" /></div> + <label>{$lang.numberAccount} : </label> + <div class="margin-form"><input type="text" size="20" name="tnt_carrier_number_account" value="{$varAccount.account}" /></div> + </fieldset> + <div class="margin-form"><input class="button" name="submitSave" type="submit"></div> +</form> \ No newline at end of file diff --git a/modules/tntcarrier/tpl/country.tpl b/modules/tntcarrier/tpl/country.tpl new file mode 100644 index 000000000..3d8a3afd4 --- /dev/null +++ b/modules/tntcarrier/tpl/country.tpl @@ -0,0 +1,17 @@ +<table class="table" cellspacing="0" cellpading="0"> + <tr> + <th>{$lang.place}</th><th>{$lang.additionnalCharge}</th><th></th> + </tr> + <tr> + <td>{$varCountry.country}</td><td>{$varCountry.overcost}</td> + <td> + <a href="index.php?tab={$glob.tab}&configure={$glob.configure}&token={$glob.token}&tab_module={$glob.tab_module}&module_name={$glob.module_name}&id_tab=3§ion=country&action=edit&country={$varCountry.country}"> + <img src="../img/admin/edit.gif" alt="edit" title="{$lang.edit}"/></a> + </td> + </tr> +</table> +</table><br/><div id="divFormCountry"> +{if ($varCountry.action == 'edit' || $varCountry.action == 'new') && $varCountry.section == 'country'} +{$varCountry.form} +{/if} +</div> \ No newline at end of file diff --git a/modules/tntcarrier/tpl/countryForm.tpl b/modules/tntcarrier/tpl/countryForm.tpl new file mode 100644 index 000000000..ab335f76c --- /dev/null +++ b/modules/tntcarrier/tpl/countryForm.tpl @@ -0,0 +1,9 @@ +<form action="index.php?tab={$glob.tab}&configure={$glob.configure}&token={$glob.token}&tab_module={$glob.tab_module}&module_name={$glob.module_name}&id_tab=3§ion=country&action=edit" method="post" class="form" id="configFormCountry"> + <table class="table" cellspacing="0" cellpadding="0"> + <tr> + <td><input type="hidden" name="tnt_carrier_country" size="20" value="{$varCountryForm.country}"/>{$varCountryForm.country}</td> + <td><input type="text" name="tnt_carrier_{$varCountryForm.country}_overcost" size="20" value="{$varCountryForm.overcost}"/></td> + <td><input class="button" name="submitSave" type="submit"></td> + </tr> + </table> +</form> \ No newline at end of file diff --git a/modules/tntcarrier/tpl/follow.tpl b/modules/tntcarrier/tpl/follow.tpl new file mode 100644 index 000000000..9d58cead7 --- /dev/null +++ b/modules/tntcarrier/tpl/follow.tpl @@ -0,0 +1,108 @@ +{* +* 2007-2011 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA <contact@prestashop.com> +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision: 8088 $ +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*} + +<br/> +{$erreur} +{if !isset($erreur)} +{foreach from="$follow" item="f"} +<table class="std" style="text-align:left"> + <thead> + <tr> + <th class="first_item" colspan="2">{l s="Package Information"}</th> + <th class="last_item" colspan="2"></th> + </tr> + <tr class="item"> + <td class="bold">{l s="Shipping number"}</td> + <td>{$f.number}</td> + <td class="bold">{l s="Shipping status"}</td> + <td>{$f.status}</td> + </tr> + <tr class="item"> + <td class="bold">{l s="Reference"}</td> + <td>{$f.reference}</td> + <td class="bold">{l s="Service"}</td> + <td>{$f.service}</td> + <tr> + <tr class="item"> + <td class="bold">{l s="Weight"}</td> + <td>{$f.weight}</td> + <td></td> + <td></td> + </tr> + <tr class="item" style="border-top:1px solid black"> + <td class="bold">{l s="Event"}</th> + <td class="bold">{l s="Date"}</th> + <td class="bold">{l s="Hours"}</th> + <td class="bold">{l s="Name Center"}</th> + </tr> + {if $f.request} + <tr class="item"> + <td>{l s="Package on request"}</td> + <td>{$f.requestDate|date_format:$config.date}</td> + <td>{$f.requestDate|date_format:$config.time}</td> + <td></td> + </tr> + {/if} + {if $f.process} + <tr class="item"> + <td>{l s="Package on its way"}</td> + <td>{$f.process_date|date_format:$config.date}</td> + <td>{$f.process_date|date_format:$config.time}</td> + <td>{$f.process_center}</td> + <tr> + {/if} + {if $f.delivery_departure} + <tr class="item"> + <td>{l s="Deposit departure"}</td> + <td>{$f.delivery_departure_date|date_format:$config.date}</td> + <td>{$f.delivery_departure_date|date_format:$config.time}</td> + <td>{$f.delivery_departure_center}</td> + </tr> + {/if} + {if $f.delivery} + <tr class="item"> + <td>{l s="driver presentation"}</td> + <td>{$f.delivery_date|date_format:$config.date}</td> + <td>{$f.delivery_date|date_format:$config.time}</td> + <td></td> + </tr> + {/if} + <tr class="item"> + <td class="bold">deposit status</td> + <td colspan="3"> + {foreach $f.long_status as $line} + {$line}<br/> + {/foreach} + {if $f.linkPicture != ''} + <a href="{$f.linkPicture}" target="_blank">{l s="proof signature"}</a> + {/if} + </td> + </tr> + </thead> +</table> +{/foreach} +{/if} + diff --git a/modules/tntcarrier/tpl/formerror.tpl b/modules/tntcarrier/tpl/formerror.tpl new file mode 100644 index 000000000..4130429a9 --- /dev/null +++ b/modules/tntcarrier/tpl/formerror.tpl @@ -0,0 +1,42 @@ +{* +* 2007-2011 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA <contact@prestashop.com> +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision: 8088 $ +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*} +<br/> +<fieldset style="width:400px"> + <legend><img src="../img/admin/delivery.gif" />{l s='Shipping information'}</legend> + {$var.error}<br/> + <form action="{$var.currentIndex}&view{$var.table}&token={$var.token}" method="post" style="margin-top:10px;"> + {if $var.weight} + {l s="The package weight must be between 0.1 and 30.0 kg"}<br/><br/> + {l s="Weight"} : <input type="text" name="weightErrorOrder" /><br/><br/> + {/if} + {if $var.weightHidden}<input type="hidden" value="{$var.weightHidden}" name="weightErrorOrder" />{/if} + {if $var.date} + {l s="You must change the expedition date"}<br/><br/> + {l s="Date"} : <input type="text" value="{$var.date}" name="dateErrorOrder" /><br/><br/> + {/if} + {if $var.dateHidden}<input type="hidden" value="{$var.dateHidden}" name="dateErrorOrder" />{/if} + {if !$var.dateHidden || !$var.weightHidden}<input type="submit" value="{l s='Modify'}" class="button" />{/if} +</fieldset> \ No newline at end of file diff --git a/modules/tntcarrier/tpl/index.php b/modules/tntcarrier/tpl/index.php new file mode 100644 index 000000000..477abec6f --- /dev/null +++ b/modules/tntcarrier/tpl/index.php @@ -0,0 +1,36 @@ +<?php +/* +* 2007-2011 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA <contact@prestashop.com> +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision: 6594 $ +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../../../"); +exit; diff --git a/modules/tntcarrier/tpl/main.tpl b/modules/tntcarrier/tpl/main.tpl new file mode 100644 index 000000000..09780f1f1 --- /dev/null +++ b/modules/tntcarrier/tpl/main.tpl @@ -0,0 +1,28 @@ +<ul id="menuTab"> + <li id="menuTab1" class="menuTabButton selected">{$lang.accountSetting}</li> + <li id="menuTab2" class="menuTabButton">{$lang.shippingSetting}</li> + <li id="menuTab3" class="menuTabButton">{$lang.serviceSetting}</li> +</ul> +<div id="tabList"> + <div id="menuTab1Sheet" class="tabItem selected">{$varMain.account}</div> + <div id="menuTab2Sheet" class="tabItem"><div>{$varMain.shipping}</div></div> + <div id="menuTab3Sheet" class="tabItem">{$varMain.service}</br>{$varMain.country}<br/>{$varMain.info}</div> +</div> +<br clear="left" /> +<br /> +<style> + #menuTab { float: left; padding: 0; margin: 0; text-align: left; } + #menuTab li { text-align: left; float: left; display: inline; padding: 5px; padding-right: 10px; background: #EFEFEF; font-weight: bold; cursor: pointer; border-left: 1px solid #EFEFEF; border-right: 1px solid #EFEFEF; border-top: 1px solid #EFEFEF; } + #menuTab li.menuTabButton.selected { background: #FFF6D3; border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; border-top: 1px solid #CCCCCC; } + #tabList { clear: left; } + .tabItem { display: none; } + .tabItem.selected { display: block; background: #FFFFF0; border: 1px solid #CCCCCC; padding: 10px; padding-top: 20px; } +</style> +<script type="text/javascript"> + $(".menuTabButton").click(function () { + $(".menuTabButton.selected").removeClass("selected"); + $(this).addClass("selected"); + $(".tabItem.selected").removeClass("selected"); + $("#" + this.id + "Sheet").addClass("selected"); + }); +</script> \ No newline at end of file diff --git a/modules/tntcarrier/tpl/relaisColis.tpl b/modules/tntcarrier/tpl/relaisColis.tpl new file mode 100644 index 000000000..5784c83ee --- /dev/null +++ b/modules/tntcarrier/tpl/relaisColis.tpl @@ -0,0 +1,21 @@ +<script type="text/javascript"> + function getAjaxRelais(id) + { + $("#relaisColisCarrier").load( + "./modules/tntcarrier/relaisColis/relaisColis.php?id_carrier="+id, + function(response, status, xhr) + { + if (status == "error") + $("#relaisColisCarrier").html(xhr.status + " " + xhr.statusText); + } + ); + $("#relaisColisCarrier").slideDown('slow'); + } + + $("input[name='id_carrier']").click(function() { + getAjaxRelais($("input[name='id_carrier']:checked").val()); + }); +</script> +<div id="relaisColisCarrier" style="display:none"> +</div> +<input type="hidden" id="cartRelaisColis" value="{$id_cart}" name="cartRelaisColis" /> \ No newline at end of file diff --git a/modules/tntcarrier/tpl/service.tpl b/modules/tntcarrier/tpl/service.tpl new file mode 100644 index 000000000..9179b46b0 --- /dev/null +++ b/modules/tntcarrier/tpl/service.tpl @@ -0,0 +1,47 @@ +<div style="float:right;margin-right: 100px;margin-top: 30px;"> + <table class="table" cellspacing="0" cellpading="0"> + <tr><th colspan="2">{l s='Code'}</th></tr> + <tr><td>N : </td><td>{l s='8:00 Express'}</td></tr> + <tr><td>A : </td><td>{l s='9:00 Express'}</td></tr> + <tr><td>T : </td><td>{l s='10:00 Express'}</td></tr> + <tr><td>M : </td><td>{l s='12:00 Express'}</td></tr> + <tr><td>J : </td><td>{l s='Express'}</td></tr> + <tr><td>P : </td><td>{l s='Express (P)'}</td></tr> + <tr><th colspan="2">{l s='Code Option (Optional)'}</th></tr> + <tr><td>D : </td><td>{l s='relay package'}</td></tr> + <tr><td>Z : </td><td>{l s='Home delivery'}</td></tr> + <tr><td>Ø : </td><td>{l s='Enterprise Service'}</td></tr> + </table> +</div> +<a href="index.php?tab={$glob.tab}&configure={$glob.configure}&token={$glob.token}&tab_module={$glob.tab_module}&module_name={$glob.module_name}&id_tab=3§ion=service&action=new"> +<img src="../img/admin/add.gif" alt="add"/> {$lang.newService}</a></br><br/> +<table class="table" cellspacing="0" cellpading="0"> + <tr> + <th>{$lang.id}</th><th>{$lang.name}</th><th>{$lang.description}</th><th>{$lang.code}</th><th>{$lang.additionnalCharge}</th><th>{$lang.activated}</th><th></th> + </tr> +{foreach from=$varService.serviceList key=k item=v} + <tr '.($irow++ % 2 ? 'class="alt_row"' : '').'> + <td>{$v.optionId}</td> + <td>{$v.name}</td> + <td>{$v.delay}</td> + <td>{$v.option}</td> + <td>{$v.optionOvercost}</td> + <td> + {if $v.deleted != 1} + <img src="../img/admin/enabled.gif" /> + {else} + <img src="../img/admin/disabled.gif" /> + {/if} + </td> + <td> + <a href="index.php?tab={$glob.tab}&configure={$glob.configure}&token={$glob.token}&tab_module={$glob.tab_module}&module_name={$glob.module_name}&id_tab=3§ion=service&action=edit&service={$v.optionId}"> + <img src="../img/admin/edit.gif" alt="edit" title="{$lang.edit}"/></a> + <a href="index.php?tab={$glob.tab}&configure={$glob.configure}&token={$glob.token}&tab_module={$glob.tab_module}&module_name={$glob.module_name}&id_tab=3§ion=service&action=del&service={$v.optionId}"> + <img src="../img/admin/delete.gif" alt="delete" title="{$lang.delete}"/></a></td></tr> +{/foreach} +</table><br/> +<div id="divFormService"> +{if ($varService.action == 'edit' || $varService.action == 'new') && $varService.section == 'service'} +{$varService.form} +{/if} +</div> \ No newline at end of file diff --git a/modules/tntcarrier/tpl/serviceForm.tpl b/modules/tntcarrier/tpl/serviceForm.tpl new file mode 100644 index 000000000..9d827a43f --- /dev/null +++ b/modules/tntcarrier/tpl/serviceForm.tpl @@ -0,0 +1,20 @@ +<form action="index.php?tab={$glob.tab}&configure={$glob.configure}&token={$glob.token}&tab_module={$glob.tab_module}&module_name={$glob.module_name}&id_tab=3§ion=service&action=new" method="post" class="form" id="configFormService"> + {if $varServiceForm.id != null} + <input type="hidden" name="service_id" value="{$varServiceForm.id}"/> + {/if} + <table class="table" cellspacing="0" cellpadding="0"> + <tr> + <th>{$lang.name}</th><th>{$lang.description}</th><th>{$lang.code}</th><th>{$lang.additionnalCharge}</th><th>{$lang.activated}</th><th></th> + </tr> + <tr> + <td><input type="text" name="tnt_carrier_service_name" size="20" value="{$varServiceForm.name}"/></td> + <td><input type="text" name="tnt_carrier_service_description" size="20" value="{$varServiceForm.description}"/></td> + <td><input type="text" name="tnt_carrier_service_code" size="5" value="{$varServiceForm.code}"/></td> + <td><input type="text" name="tnt_carrier_service_charge" size="10" value="{$varServiceForm.charge}"/></td> + <td><input type="radio" name="tnt_carrier_service_display" value="0" {if $varServiceForm.display == '1'} checked="checked" {/if} /> <img src="../img/admin/disabled.gif" /><br/> + <input type="radio" name="tnt_carrier_service_display" value="1" {if $varServiceForm.display == '0'} checked="checked" {/if} /> <img src="../img/admin/enabled.gif" /> + </td> + <td><input class="button" name="submitSave" type="submit"></td> + </tr> + </table> +</form> \ No newline at end of file diff --git a/modules/tntcarrier/tpl/shippingForm.tpl b/modules/tntcarrier/tpl/shippingForm.tpl new file mode 100644 index 000000000..9b5f29755 --- /dev/null +++ b/modules/tntcarrier/tpl/shippingForm.tpl @@ -0,0 +1,70 @@ +<script type="text/javascript" src="../modules/{$varShipping.moduleName}/js/jquery-ui.js"></script> +<script type="text/javascript" src="../modules/{$varShipping.moduleName}/js/relaisColis.js"></script> +<script type="text/javascript" src="../modules/{$varShipping.moduleName}/js/shipping.js"></script> +<link type="text/css" href="../modules/{$varShipping.moduleName}/css/ui.tabs.css" rel="stylesheet"> +<link type="text/css" href="../modules/{$varShipping.moduleName}/css/ui.dialog.css" rel="stylesheet"> +<link type="text/css" href="../modules/{$varShipping.moduleName}/css/tntB2CRelaisColis.css" rel="stylesheet"> +<fieldset style="border: 0px;"> + <div id="googleMapTnt" style="float:right;display:{if $varShipping.collect == '1'}none{/if}"> + <div id="tntB2CRelaisColis" class="exemplePresentation"> + <script type="text/javascript"> tntB2CRelaisColis();</script> + </div> + <div style="text-align: justify; font-family: arial,helvetica,sans-serif; font-size: 10pt;"> + <div style="height: 25px;"> </div> + <div id="exempleIntegration"> + <input style="float:right" type="button" value="{$lang.fillDataInTheForm}" onclick="callbackSelectionRelais();" /> + </div> + </div> + </div> + <form action="index.php?tab={$glob.tab}&configure={$glob.configure}&token={$glob.token}&tab_module={$glob.tab_module}&module_name={$glob.module_name}&id_tab=2§ion=shipping" method="post" class="form" id="configFormShipping"> + <h4>{$lang.shipping} :</h4> + <label>{$lang.collect} : </label> + <div class="margin-form"> + <input type="radio" id="tnt_carrier_collect_no" name="tnt_carrier_shipping_collect" value="0" {if $varShipping.collect == '0'} checked="checked" {/if} /> : {$lang.noDeposit}<br/> + <input type="radio" id="tnt_carrier_collect_yes" onclick="collectButtonClick()" name="tnt_carrier_shipping_collect" value="1" {if $varShipping.collect == '1'} checked="checked" {/if} /> : {$lang.yes} + </div> + <div id="divPex" style="display:{if $varShipping.collect == '1'}none{/if}"> + <a href="#" style="color:blue" onclick="depositButtonClick();return false;">{$lang.chooseYourDepositoryLocation}</a><br/><br/> + <label>{$lang.pexCode} : </label> + <div class="margin-form"><input type="text" size="20" id="tnt_carrier_shipping_pex" name="tnt_carrier_shipping_pex" value="{$varShipping.pex}" /></div> + </div> + <label>{$lang.companyName} : </label> + <div class="margin-form"><input type="text" size="20" id="tnt_carrier_shipping_company" name="tnt_carrier_shipping_company" value="{$varShipping.company}" /></div> + <label>{$lang.lastName} : </label> + <div class="margin-form"><input type="text" size="20" id="tnt_carrier_shipping_last_name" name="tnt_carrier_shipping_last_name" value="{$varShipping.lastName}" /></div> + <label>{$lang.firstName} : </label> + <div class="margin-form"><input type="text" size="20" id="tnt_carrier_shipping_first_name" name="tnt_carrier_shipping_first_name" value="{$varShipping.firstName}" /></div> + <label>{$lang.address1} : </label> + <div class="margin-form"><input type="text" size="20" id="tnt_carrier_shipping_address1" name="tnt_carrier_shipping_address1" value="{$varShipping.address1}" /></div> + <label>{$lang.address2} : </label> + <div class="margin-form"><input type="text" size="20" id="tnt_carrier_shipping_address2" name="tnt_carrier_shipping_address2" value="{$varShipping.address2}" /></div> + <label>{$lang.zip} : </label> + <div class="margin-form"><input type="text" size="20" id="tnt_carrier_shipping_postal_code" name="tnt_carrier_shipping_postal_code" value="{$varShipping.zipCode}" /></div> + <label>{$lang.city} : </label> + <div class="margin-form"><input type="text" size="20" id="tnt_carrier_shipping_city" name="tnt_carrier_shipping_city" value="{$varShipping.city}" /></div><br/> + <label>{$lang.email} : </label> + <div class="margin-form"><input type="text" size="20" name="tnt_carrier_shipping_email" value="{$varShipping.email}" /></div> + <label>{$lang.phone} : </label> + <div class="margin-form"><input type="text" size="20" name="tnt_carrier_shipping_phone" value="{$varShipping.phone}" /></div> + <div id="divClosing" style="display:{if $varShipping.collect == '0'}none{/if}"> + <label>{$lang.closingTime} : </label> + <div class="margin-form"><input type="text" size="20" name="tnt_carrier_shipping_closing" value="{$varShipping.closing}" /> (HH:MM)</div> + <br/> + </div> + <!--<label>{$lang.saturdayDelivery} : </label> + <div class="margin-form"> + <input type="radio" id="tnt_carrier_delivery_yes" name="tnt_carrier_shipping_delivery" value="1" '.(Configuration::get('TNT_CARRIER_SHIPPING_DELIVERY') == 1 ? 'checked="checked"' : ''} /> : {$lang.yes}<br/> + <input type="radio" id="tnt_carrier_delivery_no" name="tnt_carrier_shipping_delivery" value="0" '.(Configuration::get('TNT_CARRIER_SHIPPING_DELIVERY') == 0 ? 'checked="checked"' : ''} /> : {$lang.no} + </div>--> + <br/><br/> + <label>{$lang.labelFormatPrinting} : </label><br/><br/> + <select name="tnt_carrier_print_sticker" value="{$varShipping.sticker}" > + <option value="STDA4">{$lang.a4printing}</option> + <option value="THERMAL">THERMAL</option> + <option value="THERMAL,NO_LOGO">THERMAL {$lang.withoutPrintingLogoTNT}</option> + <option value="THERMAL,ROTATE_180">THERMAL {$lang.withReversePrint}</option> + <option value="THERMAL,NO_LOGO,ROTATE_180">THERMAL {$lang.withoutPrintingLogoTNTWithReversePrint}</option> + </select><br/><br/> + <div class="margin-form"><input class="button" name="submitSave" type="submit"></div> + </form> +</fieldset> \ No newline at end of file diff --git a/modules/tntcarrier/tpl/shippingNumber.tpl b/modules/tntcarrier/tpl/shippingNumber.tpl new file mode 100644 index 000000000..01ed53d5e --- /dev/null +++ b/modules/tntcarrier/tpl/shippingNumber.tpl @@ -0,0 +1,43 @@ +{* +* 2007-2011 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA <contact@prestashop.com> +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision: 8088 $ +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*} +<br/> +<fieldset style="width:400px"> + <legend><img src="../img/admin/delivery.gif" />{l s='Shipping information'}</legend> + Chaque colis doit au plus faire 20 Kg.<br/> + {$var.error} + {if $var.shipping_numbers && $var.sticker} + {$var.lang_shippingNumber} : + <div style="text-align:right"> + {foreach from=$var.shipping_numbers item=v} + {if $v.shipping_number} + {$v.shipping_number}<br/> + {/if} + {/foreach} + </div> + {$var.lang_sticker} : <a style="color:blue" href="{$var.sticker}">{l s="PDF File"}</a><br/> + {$var.lang_expedition} : {$var.date}<br/>{$var.place} + {/if} +</fieldset> \ No newline at end of file diff --git a/modules/tntcarrier/tpl/waitingFollow.tpl b/modules/tntcarrier/tpl/waitingFollow.tpl new file mode 100644 index 000000000..72a30a357 --- /dev/null +++ b/modules/tntcarrier/tpl/waitingFollow.tpl @@ -0,0 +1,27 @@ +<script type="text/javascript"> + $(document).ready(function() { + var children = $('#followPackage').children(); + $('#waitingDiv').html("Chargement du suivi colis <img src='./img/loadingAnimation.gif' alt='wait'/>"); + for (var i = 0; i < children.length; i++) + { + $("#"+children[i].id).load( + "./modules/tntcarrier/follow.php?code="+children[i].id.substr(14), + function(response, status, xhr) + { + if (status == "error") + $("#followPackage").html(xhr.status + " " + xhr.statusText); + if (i == children.length) + $('#waitingDiv').html(""); + } + ); + } + /**/ + }); +</script> +<div id="followPackage" style="clear:both"> + {foreach from=$numbers item=v} + <div id="followPackage_{$v.shipping_number}"> + </div> + {/foreach} +</div> +<div id="waitingDiv"></div> \ No newline at end of file diff --git a/modules/trustedshops/config.xml b/modules/trustedshops/config.xml index 85f2b73ce..359cc6685 100755 --- a/modules/trustedshops/config.xml +++ b/modules/trustedshops/config.xml @@ -2,7 +2,7 @@ <module> <name>trustedshops</name> <displayName><![CDATA[Trusted Shops trust solutions]]></displayName> - <version><![CDATA[1.3.1]]></version> + <version><![CDATA[1.3.3]]></version> <description><![CDATA[Build confidence in your online shop with the Trusted Shops quality seal, buyer protection and customer rating.]]></description> <author><![CDATA[]]></author> <tab><![CDATA[payment_security]]></tab> diff --git a/modules/trustedshops/de.php b/modules/trustedshops/de.php index d7001bd76..79269741c 100644 --- a/modules/trustedshops/de.php +++ b/modules/trustedshops/de.php @@ -100,8 +100,8 @@ $_MODULE['<{trustedshops}prestashop>tsbuyerprotection_8dd66ca6788218bd7d2ba7fe43 $_MODULE['<{trustedshops}prestashop>tsbuyerprotection_5580bc4adbb864a67180bf2f058393f3'] = 'Geben Sie Ihre Online-Kunden ein starker Grund, mit dem Trusted Shops Käuferschutz kaufen. Diese zusätzliche Sicherheit führt zu weniger Warenkorb Verzicht'; $_MODULE['<{trustedshops}prestashop>tsbuyerprotection_710142158c105c01ef807ce959cbc451'] = 'Profitable und langfristige Kundenbeziehung'; $_MODULE['<{trustedshops}prestashop>tsbuyerprotection_f7e15d97ad927ef705de61e787883ada'] = 'Für viele Online-Shopper ist das Trusted Shops Gütesiegel mit Käuferschutz ein wirksames Zeichen der Qualität für sicheres Einkaufen im Internet. One-Time-Käufer werden zu Stammkunden.'; -$_MODULE['<{trustedshops}prestashop>tsbuyerprotection_7442a1e0ab5e2e26ca9363d226b93d13'] = 'Umwelt-Typ'; -$_MODULE['<{trustedshops}prestashop>tsbuyerprotection_8e77e16312de3f95afdf5b92b10232a2'] = 'Sie sind zur Zeit von der Betriebsart:'; +$_MODULE['<{trustedshops}prestashop>tsbuyerprotection_7442a1e0ab5e2e26ca9363d226b93d13'] = 'Trusted Shops Modus'; +$_MODULE['<{trustedshops}prestashop>tsbuyerprotection_8e77e16312de3f95afdf5b92b10232a2'] = 'Sie verwenden die Umgebung:'; $_MODULE['<{trustedshops}prestashop>tsbuyerprotection_dc62561dd8d390e274487516e869fc93'] = 'Holen Sie den Registrierungs-Link'; $_MODULE['<{trustedshops}prestashop>tsbuyerprotection_6e637d8b8b8a933612b19c881d33672d'] = 'Diese Variable wurde Ihnen per E-Mail von TrustedShops geschickt'; $_MODULE['<{trustedshops}prestashop>tsbuyerprotection_233a96df2f68dbeafaa3126edadc1ce8'] = 'Interne Identifikation von Shop-Software auf Trusted Shops'; @@ -109,10 +109,10 @@ $_MODULE['<{trustedshops}prestashop>tsbuyerprotection_261720a5c993fb1cfad560d874 $_MODULE['<{trustedshops}prestashop>tsbuyerprotection_02977dc4b8561c8d7312b1931782c36b'] = 'Etracker-Kampagne'; $_MODULE['<{trustedshops}prestashop>tsbuyerprotection_4994a8ffeba4ac3140beb89e8d41f174'] = 'Sprache'; $_MODULE['<{trustedshops}prestashop>tsbuyerprotection_2541d938b0a58946090d7abdde0d3890'] = 'senden'; -$_MODULE['<{trustedshops}prestashop>tsbuyerprotection_72ca0dcf49befb037f8d4734ee0a2a1c'] = 'Add Trusted Shops Zertifikat'; +$_MODULE['<{trustedshops}prestashop>tsbuyerprotection_72ca0dcf49befb037f8d4734ee0a2a1c'] = 'Trusted Shops Zertifikat hinzufügen'; $_MODULE['<{trustedshops}prestashop>tsbuyerprotection_48e31908bfdcda34b0f01cad9d7077af'] = 'Neues Zertifikat'; -$_MODULE['<{trustedshops}prestashop>tsbuyerprotection_75904cf055527a97739601e0f5ff7e51'] = 'Fügen Sie es'; -$_MODULE['<{trustedshops}prestashop>tsbuyerprotection_566853604b7330b3adbb9105cb15e96b'] = 'Verwalten Trusted Shops Zertifikate'; +$_MODULE['<{trustedshops}prestashop>tsbuyerprotection_75904cf055527a97739601e0f5ff7e51'] = 'Hinzufügen'; +$_MODULE['<{trustedshops}prestashop>tsbuyerprotection_566853604b7330b3adbb9105cb15e96b'] = 'Verwaltung Trusted Shops Zertifikate'; $_MODULE['<{trustedshops}prestashop>tsbuyerprotection_eb0f48a107df1a0f343d4cd513b555e6'] = 'Zertifikat'; $_MODULE['<{trustedshops}prestashop>tsbuyerprotection_46a2a41cc6e552044816a2d04634545d'] = 'Zustand'; $_MODULE['<{trustedshops}prestashop>tsbuyerprotection_a1fa27779242b4902f7ae3bdd5c6d508'] = 'Typ'; diff --git a/modules/trustedshops/lib/TSBuyerProtection.php b/modules/trustedshops/lib/TSBuyerProtection.php index 3f08198fe..be6c3005f 100644 --- a/modules/trustedshops/lib/TSBuyerProtection.php +++ b/modules/trustedshops/lib/TSBuyerProtection.php @@ -109,7 +109,7 @@ class TSBuyerProtection extends AbsTrustedShops * ) * @var array */ - private static $CERTIFICATE; + public static $CERTIFICATE; private static $DEFAULT_LANG; private static $CAT_ID; private static $ENV_API; @@ -649,8 +649,8 @@ class TSBuyerProtection extends AbsTrustedShops $sql = ' DELETE ts, p, pl FROM `'._DB_PREFIX_.TSBuyerProtection::DB_ITEMS.'` AS ts - LEFT JOIN `ps_product` AS p ON ts.`id_product` = p.`id_product` - LEFT JOIN `ps_product_lang` AS pl ON ts.`id_product` = pl.`id_product` + LEFT JOIN `'._DB_PREFIX_.'product` AS p ON ts.`id_product` = p.`id_product` + LEFT JOIN `'._DB_PREFIX_.'product_lang` AS pl ON ts.`id_product` = pl.`id_product` WHERE ts.`ts_id`="'.$ts_id.'"'; Db::getInstance()->execute($sql); @@ -1062,7 +1062,7 @@ class TSBuyerProtection extends AbsTrustedShops $out .= ' </td> <td>'; - if ($certificate['typeEnum'] === 'EXCELLENCE') { + if ($certificate['typeEnum'] === 'EXCELLENCE' || $certificate['typeEnum'] === 'CLASSIC') { $out .= '<input type="checkbox" name="certificate_delete[]" value="'.$lang.'" />'; } else { $out .= $this->l('No need'); diff --git a/modules/trustedshops/lib/TrustedShopsRating.php b/modules/trustedshops/lib/TrustedShopsRating.php index 1717eac64..90863a8e0 100644 --- a/modules/trustedshops/lib/TrustedShopsRating.php +++ b/modules/trustedshops/lib/TrustedShopsRating.php @@ -450,6 +450,8 @@ class TrustedShopsRating extends AbsTrustedShops $certificate = (array)$certificate; if (isset($certificate['tsID']) && $certificate['tsID'] !== '' && $certificate['user'] != '') $displayWidget = true; + if (isset($certificate['tsID']) && $certificate['tsID'] !== '' && $certificate['typeEnum'] === 'CLASSIC') + $displayWidget = true; } if ($displayWidget == false) return ''; diff --git a/modules/trustedshops/trustedshops.php b/modules/trustedshops/trustedshops.php index 6124ee14c..0a6957ea6 100644 --- a/modules/trustedshops/trustedshops.php +++ b/modules/trustedshops/trustedshops.php @@ -48,7 +48,7 @@ class TrustedShops extends Module { $this->name = 'trustedshops'; $this->tab = 'payment_security'; - $this->version = '1.3.1'; + $this->version = '1.3.3'; parent::__construct(); diff --git a/modules/twenga/twenga.php b/modules/twenga/twenga.php index 78a7ad276..aa974b580 100644 --- a/modules/twenga/twenga.php +++ b/modules/twenga/twenga.php @@ -720,11 +720,11 @@ class Twenga extends PaymentModule </div><!-- .margin-form --> <label>'.$this->l('Login').' <sup>*</sup> : </label> <div class="margin-form"> - <input type="text" size="38" maxlength="32" name="twenga_user_name" value="'.self::$obj_twenga->getUserName().'"/>  + <input type="text" size="38" maxlength="64" name="twenga_user_name" value="'.self::$obj_twenga->getUserName().'"/>  </div><!-- .margin-form --> <label>'.$this->l('Password').' <sup>*</sup> : </label> <div class="margin-form"> - <input type="password" size="38" maxlength="32" name="twenga_password" value="'.self::$obj_twenga->getPassword().'"/>  + <input type="password" size="38" maxlength="64" name="twenga_password" value="'.self::$obj_twenga->getPassword().'"/>  </div><!-- .margin-form --> <div class="margin-form">' .$this->l('If you forgot your login, retrieve it back here').' <a href="'.$lost_link.'" target="_blank">'.$lost_link.'</a></div>' .'<input type="submit" value="'.$this->l('Save').'" name="submitTwengaLogin" class="button"/> diff --git a/themes/prestashop/js/order-opc.js b/themes/prestashop/js/order-opc.js index 3039b694a..060cdd23d 100755 --- a/themes/prestashop/js/order-opc.js +++ b/themes/prestashop/js/order-opc.js @@ -80,7 +80,7 @@ function updateCarrierList(json) '<tr class="'+itemType+'">'+ '<td class="carrier_action radio"><input type="radio" name="id_carrier" value="'+carriers[i].id_carrier+'" id="id_carrier'+carriers[i].id_carrier+'" onclick="updateCarrierSelectionAndGift();" '+extraHtml+' /></td>'+ '<td class="carrier_name"><label for="id_carrier'+carriers[i].id_carrier+'">'+name+'</label></td>'+ - '<td class="carrier_infos">'+carriers[i].delay+'</td>'+ + '<td class="carrier_infos">'+(carriers[i].delay != null ? carriers[i].delay : '')+'</td>'+ '<td class="carrier_price">'+price; if (carriers[i].price != 0) { diff --git a/themes/prestashop/js/product.js b/themes/prestashop/js/product.js index 1a4afba45..9fde23617 100644 --- a/themes/prestashop/js/product.js +++ b/themes/prestashop/js/product.js @@ -347,8 +347,9 @@ function updateDisplay() var reduction = 0; if (selectedCombination['specific_price'].reduction_price || selectedCombination['specific_price'].reduction_percent) { - reduction = productPrice * (parseFloat(selectedCombination['specific_price'].reduction_percent) / 100) + selectedCombination['specific_price'].reduction_price; - if (selectedCombination['specific_price'].reduction_price && (displayPrice || noTaxForThisProduct)) + reduction_price = (specific_currency ? reduction_price : reduction_price * currencyRate); + reduction = productPrice * (parseFloat(reduction_percent) / 100) + reduction_price; + if (reduction_price && (displayPrice || noTaxForThisProduct)) reduction = ps_round(reduction / tax, 6); } else if (product_specific_price.reduction_price || product_specific_price.reduction_percent) diff --git a/themes/prestashop/lang/en.php b/themes/prestashop/lang/en.php index f67424616..caceb73ac 100644 --- a/themes/prestashop/lang/en.php +++ b/themes/prestashop/lang/en.php @@ -351,7 +351,7 @@ $_LANG['order-detail_4ce81305b7edb043d0a7a5c75cab17d0'] = 'There is'; $_LANG['order-detail_07213a0161f52846ab198be103b5ab43'] = 'errors'; $_LANG['order-detail_cb5e100e5a9a3e7f6d1fd97512215282'] = 'error'; $_LANG['order-detail_37c06f5486d3068a0a9604552c7e081f'] = 'Add a message:'; -$_LANG['order-detail_617096c86d35478132502be00e12e016'] = 'f you would like to add a comment about your order, please write it below.'; +$_LANG['order-detail_617096c86d35478132502be00e12e016'] = 'If you would like to add a comment about your order, please write it below.'; $_LANG['order-detail_94966d90747b97d1f0f206c98a8b1ac3'] = 'Send'; $_LANG['order-detail_a9979df9e349275e2d86f7af03e24d14'] = 'You cannot make a merchandise return with a guest account'; $_LANG['order-follow_d95cf4ab2cbf1dfb63f066b50558b07d'] = 'My account'; diff --git a/themes/prestashop/order-address.tpl b/themes/prestashop/order-address.tpl index a6ecb0793..bc38a041f 100644 --- a/themes/prestashop/order-address.tpl +++ b/themes/prestashop/order-address.tpl @@ -24,6 +24,12 @@ * International Registered Trademark & Property of PrestaShop SA *} +{if $opc} + {assign var="back_order_page" value="order-opc.php"} +{else} + {assign var="back_order_page" value="order.php"} +{/if} + {* ** Retro compatibility for PrestaShop version < 1.4.2.5 with a recent theme ** Syntax smarty for v2 @@ -40,8 +46,8 @@ {$ignoreList.6 = "date_add"} {$ignoreList.7 = "date_upd"} {$ignoreList.8 = "active"} - {$ignoreList.9 = "deleted"} - + {$ignoreList.9 = "deleted"} + {* PrestaShop 1.4.0.17 compatibility *} {if isset($addresses)} {foreach from=$addresses key=k item=address} @@ -106,11 +112,11 @@ ordered_fields_name = ordered_fields_name.concat(formatedAddressFieldsValuesList[id_address]['ordered_fields']); ordered_fields_name = ordered_fields_name.concat(['update']); - + dest_comp.html(''); li_content['title'] = adr_titles_vals[address_type]; - li_content['update'] = '<a href="{$link->getPageLink('address', true, NULL, "id_address")}'+id_address+'&back=order?step=1{if $back}&mod={$back}{/if}" title="{l s='Update'}">{l s='Update'}</a>'; + li_content['update'] = '<a href="{$link->getPageLink('address', true, NULL, "id_address")}'+id_address+'&back={$back_order_page}?step=1{if $back}&mod={$back}{/if}" title="{l s='Update'}">{l s='Update'}</a>'; appendAddressList(dest_comp, li_content, ordered_fields_name); {rdelim} @@ -163,7 +169,7 @@ {l s='Multi-shipping'} </a> </div> -<form action="{$link->getPageLink('order', true)}" method="post"> +<form action="{$link->getPageLink($back_order_page, true)}" method="post"> {else} <div id="opc_account" class="opc-main-block"> <div id="opc_account-overlay" class="opc-overlay" style="display: none;"></div> @@ -176,16 +182,16 @@ {foreach from=$addresses key=k item=address} <option value="{$address.id_address|intval}" {if $address.id_address == $cart->id_address_delivery}selected="selected"{/if}>{$address.alias|escape:'htmlall':'UTF-8'}</option> {/foreach} - + </select> </p> <p class="checkbox" {if $cart->isVirtualCart()}style="display:none;"{/if}> <input type="checkbox" name="same" id="addressesAreEquals" value="1" onclick="updateAddressesDisplay();{if $opc}updateAddressSelection();{/if}" {if $cart->id_address_invoice == $cart->id_address_delivery || $addresses|@count == 1}checked="checked"{/if} /> <label for="addressesAreEquals">{l s='Use the same address for billing.'}</label> </p> - + <p id="address_invoice_form" class="select" {if $cart->id_address_invoice == $cart->id_address_delivery}style="display: none;"{/if}> - + {if $addresses|@count > 1} <label for="id_address_invoice" class="strong">{l s='Choose a billing address:'}</label> <select name="id_address_invoice" id="id_address_invoice" class="address_select" onchange="updateAddressesDisplay();{if $opc}updateAddressSelection();{/if}"> @@ -194,11 +200,7 @@ {/section} </select> {else} - {if $back} - <a style="margin-left: 221px;" href="{$link->getPageLink('address', true, NULL, "back=order&step=1&select_address=1&mod=$back")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a> - {else} - <a style="margin-left: 221px;" href="{$link->getPageLink('address', true, NULL, "back=order&step=1&select_address=1")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a> - {/if} + <a style="margin-left: 221px;" href="{$link->getPageLink('address', true, NULL, "back={$back_order_page}?step=1&select_address=1{if $back}&mod={$back}{/if}")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a> {/if} </p> <div class="clear"></div> @@ -208,11 +210,7 @@ </ul> <br class="clear" /> <p class="address_add submit"> - {if $back} - <a href="{$link->getPageLink('address', true, NULL, "back=order&step=1&mod={$back}")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a> - {else} - <a href="{$link->getPageLink('address', true, NULL, "back=order&step=1")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a> - {/if} + <a href="{$link->getPageLink('address', true, NULL, "back={$back_order_page}?step=1{if $back}&mod={$back}{/if}")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a> </p> {if !$opc} <div id="ordermsg"> @@ -225,11 +223,7 @@ <p class="cart_navigation submit"> <input type="hidden" class="hidden" name="step" value="2" /> <input type="hidden" name="back" value="{$back}" /> - {if $back} - <a href="{$link->getPageLink('order', true, NULL, "step=0&back={$back}")}" title="{l s='Previous'}" class="button">« {l s='Previous'}</a> - {else} - <a href="{$link->getPageLink('order', true, NULL, "step=0")}" title="{l s='Previous'}" class="button">« {l s='Previous'}</a> - {/if} + <a href="{$link->getPageLink($back_order_page, true, NULL, "step=0{if $back}&back={$back}{/if}")}" title="{l s='Previous'}" class="button">« {l s='Previous'}</a> <input type="submit" name="processAddress" value="{l s='Next'} »" class="exclusive" /> </p> </form> diff --git a/themes/prestashop/product-compare.tpl b/themes/prestashop/product-compare.tpl index ac6c598c3..bc1e9fb48 100644 --- a/themes/prestashop/product-compare.tpl +++ b/themes/prestashop/product-compare.tpl @@ -31,7 +31,8 @@ var max_item = "{l s='You cannot add more than' js=1} {$comparator_max_item} {l s='product(s) in the product comparator' js=1}"; //]]> </script> - <form method="post" action="{$link->getPageLink('products-comparison', true)}" onsubmit="true"> + + <form method="get" action="{$link->getPageLink('products-comparison')}" onsubmit="true"> <p> <input type="submit" class="button" value="{l s='Compare'}" style="float:right" /> <input type="hidden" name="compare_product_list" class="compare_product_list" value="" /> diff --git a/themes/prestashop/products-comparison.tpl b/themes/prestashop/products-comparison.tpl index 8dfa8ad26..eed17bfe8 100644 --- a/themes/prestashop/products-comparison.tpl +++ b/themes/prestashop/products-comparison.tpl @@ -81,7 +81,7 @@ </span> {/if} </p> - <a class="cmp_remove" href="{$link->getPageLink('products-comparison.php', true)}" rel="ajax_id_product_{$product->id}">{l s='Remove'}</a> + <a class="cmp_remove" href="{$link->getPageLink('products-comparison.php')}" rel="ajax_id_product_{$product->id}">{l s='Remove'}</a> <a class="button" href="{$product->getLink()}" title="{l s='View'}">{l s='View'}</a> {if (!$product->hasAttributes() OR (isset($add_prod_display) AND ($add_prod_display == 1))) AND $product->minimal_quantity == 1 AND $product->customizable != 2 AND !$PS_CATALOG_MODE} {if ($product->quantity > 0 OR $product->allow_oosp)} diff --git a/tools/swift/Swift/Plugin/MailSend.php b/tools/swift/Swift/Plugin/MailSend.php index a2ab5bfe3..7f89b56ec 100644 --- a/tools/swift/Swift/Plugin/MailSend.php +++ b/tools/swift/Swift/Plugin/MailSend.php @@ -7,7 +7,7 @@ * @package Swift_Connection * @license GNU Lesser General Public License */ - +ini_set('display_errors','1'); require_once dirname(__FILE__) . "/../ClassLoader.php"; Swift_ClassLoader::load("Swift_Events_SendListener"); Swift_ClassLoader::load("Swift_Events_BeforeSendListener"); diff --git a/translations/fr/admin.php b/translations/fr/admin.php index 89fc53aaf..90b82be4b 100644 --- a/translations/fr/admin.php +++ b/translations/fr/admin.php @@ -1088,7 +1088,7 @@ $_LANGADM['AdminImages0fb0d96026cc27f8a45d6cb909289903'] = 'Vous pouvez décider $_LANGADM['AdminImages6e9b08be274aa15f116c641e4c9b8599'] = 'Vous pouvez aussi décider de déplacer vos images vers le nouveau système de stockage : dans ce cas, cliquez sur le bouton \"Déplacer les images\" ci-dessous. Merci d\'être patient, le processus peut prendre quelques minutes.'; $_LANGADM['AdminImages1bd266b7c30df50f9b77b0e0f55f2878'] = 'Après avoir déplacé toutes vos images produit, pour des performances optimales allez aux '; $_LANGADM['AdminImagese686877843ac3c9f4c45aaea265fe59c'] = 'préférences produit'; -$_LANGADM['AdminImagesfb3164a4f7305b347948b8aca17c1735'] = ' et changez \"Utiliser l\'ancien système de stockage d\'images\" à NON.'; +$_LANGADM['AdminImagese4a03c93076770dfebb5b5ec919ccfa3'] = 'et changez \"Utiliser l\'ancien système d\'image\" à NON.'; $_LANGADM['AdminImagesff17d73fa2731689640e8afa0f591b0f'] = 'Les images JPEG ont une taille de fichier petite et une qualité standard. Les images PNG ont une taille de fichier plus importante, une meilleure qualité, et gèrent la transparence. Notez que dans tous les cas les fichiers image auront l\'extension .jpg.'; $_LANGADM['AdminImagesff167676b1516b34e7f9be0fea5349d6'] = 'ATTENTION : Cette fonctionnalité peut ne pas être compatible avec votre thème ou avec certains modules. En particulier, le mode PNG n\'est pas compatible avec le module Filigrane. En cas de problème, désactivez cette fonctionnalité en sélectionnant \"Utiliser le JPEG\".'; $_LANGADM['AdminImages42ceb344b0aaf896b362b0db70b46f98'] = 'Qualité d\'image'; @@ -1125,8 +1125,6 @@ $_LANGADM['AdminImport7a1920d61156abc05a60135aefe8bc67'] = 'Défaut'; $_LANGADM['AdminImport9b93b45649ec5961b8cc84e905964683'] = 'Position de l\'image'; $_LANGADM['AdminImport9c163d2934fbdd2775356db804d451fc'] = 'Position de l\'image produit à utiliser pour cette déclinaison. Si vous remplissez ce champ, laissez le champ \"URL de l\'image\" vide.'; $_LANGADM['AdminImport427b6d816d7fdd86cabe48d8180a3cc9'] = 'URL de l\'image'; -$_LANGADM['AdminImport14913d7e9d486e77b5c8d085e3797f94'] = 'Supprimer les images existantes (0 = non, 1 = oui)'; -$_LANGADM['AdminImporte6691747add3b37b9c381b8d9476fd4c'] = 'Si vous ne spécifiez pas cette colonne et vous spécifier la colonne images, toutes les images du produit seront remplacé par celle spécifié dans le fichier d\'import'; $_LANGADM['AdminImportb718adec73e04ce3ec720dd11a06a308'] = 'Identifiant'; $_LANGADM['AdminImportfd0dcc6233b026d257763713c133cf72'] = 'Actif (0/1)'; $_LANGADM['AdminImport2688a544cd5ac33f27ab78c8d8c3acaa'] = 'Nom *'; @@ -1159,6 +1157,8 @@ $_LANGADM['AdminImporte1a5e653bc356ed6745d6814d50213eb'] = 'Afficher le prix'; $_LANGADM['AdminImport4d2589e1bcd4263cb99927b59f0f88d2'] = 'URLs des images (x,y,z...)'; $_LANGADM['AdminImportecde3e896afb64e9a48781b8363b9a03'] = 'Caractéristique(Nom:Valeur:Position)'; $_LANGADM['AdminImport93b145201f52e9210402f4281ff8c188'] = 'Position de la caractéristique'; +$_LANGADM['AdminImport14913d7e9d486e77b5c8d085e3797f94'] = 'Supprimer les images existantes (0 = non, 1 = oui)'; +$_LANGADM['AdminImporte6691747add3b37b9c381b8d9476fd4c'] = 'Si vous ne spécifiez pas cette colonne et vous spécifier la colonne images, toutes les images du produit seront remplacé par celle spécifié dans le fichier d\'import'; $_LANGADM['AdminImport21021ea0e52be8e9c599f4dff41e5be0'] = 'Caractéristique'; $_LANGADM['AdminImport71d0ceacdf562024f2d4c3a76d3b63e4'] = 'Uniquement disponible en ligne'; $_LANGADM['AdminImport9e2941b3c81256fac10392aaca4ccfde'] = 'Etat'; @@ -1517,6 +1517,7 @@ $_LANGADM['AdminModules7d4eb04d5b71acb455329b4d6e228388'] = 'Fonctionnalités Fr $_LANGADM['AdminModulescef02fed5f63407268c2c0202d1d3708'] = 'International & Localisation'; $_LANGADM['AdminModules335676135e0f03d2756262a437c95a0e'] = 'Merchandizing'; $_LANGADM['AdminModules5b985caa89b2ca61bbeee91a896c610d'] = 'Outils de Migration'; +$_LANGADM['AdminModules87d17f4624a514e81dc7c8e016a7405c'] = 'Mobile'; $_LANGADM['AdminModulese77ecbf1af4f4c210146d351f8dfbc3b'] = 'Paiement'; $_LANGADM['AdminModules2bcde8baf68a8b2a88a4a072437639e8'] = 'Sécurité des Paiements'; $_LANGADM['AdminModules87a3a6caeffcd74b07ad451f7695dda7'] = 'Prix & Promotions'; @@ -1966,9 +1967,21 @@ $_LANGADM['AdminPreferences4e7ff7ca556a7ac8329ab27834e9631b'] = 'Affiche les not $_LANGADM['AdminPreferences051fd283c29527d33402475333dfb1da'] = 'Afficher les notifications lorsque de nouveaux clients vous enverront de nouveaux messages sur votre boutique'; $_LANGADM['AdminPreferencesbcb9adf1d2347258b5c65483e34cf86f'] = 'Type de processus d\'enregistrement.'; $_LANGADM['AdminPreferencese371e5f8e710b133c839eee7d3765518'] = 'Le processus d\'enregistrement d\'un client en 2 étapes permet au client de s\'enregistrer plus rapidement, et de créer son adresse plus tard.'; +$_LANGADM['AdminPreferences1301a51cbee38f0c34369720070e5e1b'] = 'Limite de téléchargement de fichier'; +$_LANGADM['AdminPreferences656ff9c98ad48192724f8a74f5e18733'] = 'Définit la limite de téléchargement pour un produit. Cette valeur doit être inférieure ou égale à celle de votre serveur '; +$_LANGADM['AdminPreferences5870c50004d9568f8de39d09363533a7'] = 'Limite de téléchargement d\'images'; +$_LANGADM['AdminPreferences8cde7b1fa570f328143c41677032b507'] = 'Définit la limite de téléchargement pour une image. Cette valeur doit être inférieure ou égale à celle de votre serveur '; $_LANGADM['AdminPreferencesd5bc5fd307b108537039b6b6f98889d5'] = 'Fuseau horaire :'; $_LANGADM['AdminPreferencesbbd6622dbbdf4bcb166f5e3f018a2351'] = 'Cliquez ici pour utiliser le protocole HTTPS avant d\'activer le mode SSL.'; $_LANGADM['AdminPreferences0db377921f4ce762c62526131097968f'] = 'Général'; +$_LANGADM['AdminPreferences4e871525b7518538075dddfad5e292dc'] = 'Cette fonctionnalité a été désactivée.'; +$_LANGADM['AdminPreferences93cba07454f06a4a960172bbd6e2a435'] = 'Oui'; +$_LANGADM['AdminPreferencesbafd7322c6e97d25b6299b5d6fe8920b'] = 'Non'; +$_LANGADM['AdminPreferencesc6e98a4b0af7d0f66842f744d999e436'] = 'Afin d\'utiliser un nouveau thème, merci de suivre les étapes suivantes:'; +$_LANGADM['AdminPreferences432eb00cc8aace97c632fea212575b51'] = 'Importer votre thème en utilisant ce module:'; +$_LANGADM['AdminPreferences2b5bde814a5f94ea73f447cdbcfb49fd'] = 'Importeur de thème'; +$_LANGADM['AdminPreferences64915993f11c4fbd47d8a6465f44125c'] = 'Quand votre thème est importé, merci de sélectionner celui-ci sur cette page'; +$_LANGADM['AdminPreferences21034ae6d01a83e702839a72ba8a77b0'] = 'HT'; $_LANGADM['AdminPreferencesc770d8e0d1d1943ce239c64dbd6acc20'] = 'Ajouter mon adresse IP'; $_LANGADM['AdminProductsb718adec73e04ce3ec720dd11a06a308'] = 'ID'; $_LANGADM['AdminProductsc03d53b70feba4ea842510abecd6c45e'] = 'Photo'; @@ -2152,7 +2165,7 @@ $_LANGADM['AdminProducts8c1279db4db86553e4b9682f78cf500e'] = 'Date d\'expiration $_LANGADM['AdminProducts2b05e1a0e6c62dbf0018af09ed38f4e0'] = 'Format: YYYY-MM-DD'; $_LANGADM['AdminProducts65be3ad50ca00caff377d6a988c3823c'] = 'Laissez vide si vous ne souhaitez pas de date d\'expiration'; $_LANGADM['AdminProducts58fd2b2308056ad80255a322b305742b'] = 'Nombre de jours'; -$_LANGADM['AdminProducts44118d6d6ecd2f24f53ec6393a66baa1'] = 'Nombre de jours durant lesquels le fichier sera accessible par les clients'; +$_LANGADM['AdminProducts44118d6d6ecd2f24f53ec6393a66baa1'] = 'Nombre de jours durant lesquels le fichier sera accessible par les clients après leur commande'; $_LANGADM['AdminProducts282c59515d1ea09d37d4d9980bba3e58'] = 'Mettez à 0 pour un accès illimité au téléchargement'; $_LANGADM['AdminProductsb51a231babbab8586d70830dd7c96653'] = 'Partageable'; $_LANGADM['AdminProductsde6f9a99a112b7ae46777d439ada446c'] = 'Spécifiez si le fichier peut être partagé'; @@ -3037,7 +3050,7 @@ $_LANGADM['AdminUpgradef70307d8297e48a8783d41e6f3313d51'] = 'Erreur lors de l\'e $_LANGADM['AdminUpgrade4eecd9c195e46c054ef7da6d9d1a738b'] = 'Extraction terminée. Suppression des fichiers exemples...'; $_LANGADM['AdminUpgrade0929f38eaac3ca38801f08b7269574e0'] = 'Impossible d\'extraire %1$s dans %2$s ...'; $_LANGADM['AdminUpgrade6b2d0404b7faba0e791e15a52586a149'] = 'Basculer vers svn checkout (useSvn activé)'; -$_LANGADM['AdminUpgradef0e38ac0c558a7f216ae98382b9e58f5'] = 'Site désactivé. Téléchargement en cours (peut prendre '; +$_LANGADM['AdminUpgrade13b35313a987313838f0105902bb6742'] = 'Boutique désactivé. Téléchargement en cours... (ce qui peut prendre un certain temps) ...'; $_LANGADM['AdminUpgrade4f7c02592a962e40a920f32f3a24f2df'] = 'filesToUpgrade n\'est pas un tableau'; $_LANGADM['AdminUpgrade3f10faa8b44a7175ae8fc5dcb8dec5de'] = 'Tous les fichiers ont été mis à jour. Mise à jour de la base de données en cours.'; $_LANGADM['AdminUpgrade1ad932e3b85eb2907a817cd3e3e6907e'] = 'Erreur pour la mise à jour de %s'; diff --git a/translations/fr/errors.php b/translations/fr/errors.php index 2649bb7fc..ed81127a8 100644 --- a/translations/fr/errors.php +++ b/translations/fr/errors.php @@ -164,8 +164,8 @@ $_ERRORS['491c8c1d25f97843f6edfdc81d021f4d'] = 'Erreur: la configuration de votr $_ERRORS['45ebc64529137a007889ee445d64611c'] = 'Impossible de mettre à jour la position.'; $_ERRORS['5fe3a5b7465abb742a1b93a6037384fa'] = 'Erreur fatale : id_transaction est null'; $_ERRORS['d18dd4bd1531c9c45a85d757e1b4641b'] = 'Erreur fatale: les droits API ne sont pas disponibles'; -$_ERRORS['d194b022bc5a1a01657823aaccd45e9b'] = 'Erreur fatale: l\'iso code n\'est pas correcte : '; $_ERRORS['9b3261577a34cd7c48ad83d80295ff09'] = 'Erreur fatale : pas de transporteur par défaut'; +$_ERRORS['52326ecbfcdff77b4bc9dcf7f055c2eb'] = 'Erreur fatale: le code ISO n\'est pas correcte'; $_ERRORS['411ec6016c7845e0c49fb51160a12677'] = 'Erreur fatale : le répertoire contenant les modules n\'est pas présent'; $_ERRORS['847b0a793110ff20927e76269328e582'] = 'Extension invalide, le fichier doit avoir l\'extension suivante'; $_ERRORS['42e7b89a369899d8c0c4f0631bd1c921'] = 'Fichier install.sql est manquant '; @@ -303,6 +303,7 @@ $_ERRORS['8f18cd66e999d9695f53141a15b47292'] = 'valeur de la réduction est inva $_ERRORS['467366059d7d7c743a4d0971363a8d66'] = 'Limité à certaines catégories'; $_ERRORS['772911becd336c843ab09a1d4b4f66c0'] = 'Limité à certains produits'; $_ERRORS['83d41d7e6f25cd9be1e48204697fe0c9'] = 'Le lien re-écrit pour'; +$_ERRORS['b2c396eff6cd6aae23e4da0218c7cc93'] = 'La catégorie principale ne peut pas être modifiée'; $_ERRORS['087193a0e83ba92c73396e2e6082ee89'] = 'Selectionnez au moins un module à décrocher'; $_ERRORS['edeb9e20655b946e4bee4ac44a6c0a7f'] = 'Le serveur ne dispose pas des permissions pour l\'écriture'; $_ERRORS['5d7cc18ef21285f980cbada9adb9df5c'] = 'Le serveur a expiré, le filigrane n\'est peut-être pas été appliqué à toutes vos images.'; @@ -352,6 +353,7 @@ $_ERRORS['8562db06e3931e51ac8c456b56088b02'] = 'Le client n\'existe pas'; $_ERRORS['350e5d76b60ae887c90d55e2fb23fdc5'] = 'ce bon de réduction n\'est pas applicable à cette catégorie de produit'; $_ERRORS['493f8c31f1db1d87ed30ca58b5dd2df8'] = 'Ce fichier \"%s\" est manquant'; $_ERRORS['e0a602c130d12d57cd4ca2a8b9240917'] = 'Ce fichier doit être éditable :'; +$_ERRORS['4e871525b7518538075dddfad5e292dc'] = 'Cette fonctionnalité a été désactivée.'; $_ERRORS['b72591580ab2e9ecb08d1a26ac23641b'] = 'Cette clé est utilisée trop de fois (une seule autorisée)'; $_ERRORS['b60be6e4c0df15343a7cdafccb174159'] = 'Ce module ne peut être greffé sur ce hook.'; $_ERRORS['bf1af96a1c2127082822a24bca0dfa4f'] = 'Ce module est déjà installé:';